华硕WL-167G USB 无线网卡ARM移植 (2:配置: 版本RT.1036 )

 

 

配置(前面的步骤见编译

1.       修改

modules/ifcfg-rausb0

DEVICE=rausb0

ONBOOT=yes

## Confirm your AP supports dhcp or connects up the ethernet

## before set-up as a dynamic IP

BOOTPROTO=dhcp

## static for fixed ip

#BOOTPROTO=static

#IPADDR=192.168.0.31

#NETMASK=255.255.255.0

#GATEWAY=192.168.0.1

 

2.       安装模块

修改modules/Makefile

ifdef NDDIR前增加下面的行

## Revision History by mike

##Configuration files on ARM busybox

BASE_DIR := /opt/s3c-2416/rootfs/custom

NDDIR = $(BASE_DIR)/etc/sysconfig/network

MOD_CONF = $(BASE_DIR)/etc/modprobe.d/module-renames

## Revision History end

 

ifdef NDDIR

NDDIR := $(NDDIR)

else

NDDIR := /etc/sysconfig/network-scripts

Endif

 

注意:BASE_DIR 为你busybox的根目录

为了保证安装不会出错,先创建/验证目录:

root@zanget:~# cd /opt/s3c-2416/rootfs/custom/etc

root@zanget:etc# mkdir -p sysconfig/network

root@zanget:etc# mkdir -p modprobe.d

root@zanget:etc# ls

fstab init.d inittab modprobe.d sysconfig

root@zanget:etc#cd modprobe.d/

root@zanget:etc#touch module-renames

安装:

root@zanget:modules# make install

make -C /opt/s3c-2416/linux-2.6.21 /

        INSTALL_MOD_DIR=extra SUBDIRS=/opt/s3c-2416/usb-wireless/linux/rt73_Linux_STA_Drv1.0.3.6/modules /

        modules_install

make[1]: 正在进入目录 `/opt/s3c-2416/linux-2.6.21'

  INSTALL /opt/s3c-2416/usb-wireless/linux/rt73_Linux_STA_Drv1.0.3.6/modules/rt73.ko

  DEPMOD  2.6.21.5-cfs-v19

make[1]:正在离开目录 `/opt/s3c-2416/linux-2.6.21'

Network device directory /opt/s3c-2416/rootfs/custom/etc/sysconfig/network

Module configuration file /opt/s3c-2416/rootfs/custom/etc/modprobe.d/module-renames

Create 'ifcfg-rausb0' in /opt/s3c-2416/rootfs/custom/etc/sysconfig/network/

append 'alias rausb0 rt73' to /opt/s3c-2416/rootfs/custom/etc/modprobe.d/module-renames

/sbin/depmod -a

验证文件是否安装到对应目录:

root@zanget:modprobe.d# cat module-renames

alias rausb0 rt73

root@zanget:network# ls

ifcfg-rausb0

root@zanget:network# cat ifcfg-rausb0

DEVICE=rausb0

ONBOOT=yes

 

## Confirm your AP supports dhcp or connects up the ethernet

## before set-up as a dynamic IP

BOOTPROTO=dhcp

 

 

## static for fixed ip

#BOOTPROTO=static

#IPADDR=192.168.0.31

#NETMASK=255.255.255.0

#GATEWAY=192.168.0.1

 

 

3.       拷贝配置文件

由于modules/rt_config.h

 

00038: #ifndef __RT_CONFIG_H__

00039: #define __RT_CONFIG_H__

00040:

00041: #define PROFILE_PATH "/etc/Wireless/RT73STA/rt73sta.dat"

00042: #define NIC_DEVICE_NAME "RT73STA"

00043: #define RT2573_IMAGE_FILE_NAME "/etc/Wireless/RT73STA/rt73.bin"

 

的定义,需要手动拷贝:

root@zanget:modprobe.d# cd /opt/s3c-2416/rootfs/custom/etc

root@zanget:modprobe.d# mkdir -p Wireless/RT73STA

拷贝

root@zanget:modules# cp rt73.bin /opt/s3c-2416/rootfs/custom/etc/Wireless/RT73STA

root@zanget:modules# cp rt73sta.dat /opt/s3c-2416/rootfs/custom/etc/Wireless/RT73STA/

安装dos2unix

root@zanget:modprobe.d# apt-get install tofrodos

converting file rt73sta.dat to UNIX format:

root@zanget:modprobe.d#dos2unix rt73sta.dat

 

 

4.       动态加载模块

用相关命令确认模块加载成功

[root@dding Module]# insmod rt73.o

[root@dding Module]# cat /var/log/messages | tail

 

 

 

5.       移植命令包:

下载iwconfig iwlist 等相关命令源码:点我进入下载页面:

 

Wireless Tools latest versions

 

The latest stable version of Wireless Tools is version 29, it is stable, most of the stupid bugs have been removed and it supports all Wireless Extensions (from version v11 to v21).

You can download Wireless Tools on this server :

  • Download the latest wireless tools package

修改wireless_tools.29/Makefile,注意是红色加粗(开头)部分:

 

 

##

## Please check the configurion parameters below

##

## Installation directory. By default, go in /usr/local.

## Distributions should probably use /, but they probably know better...

ifndef PREFIX

PREFIX = /opt/s3c-2416/rootfs/custom/wireless

endif

## Compiler to use (modify this for cross compile).

CC = arm-linux-gcc

## Other tools you need to modify for cross compile (static lib only).

AR = arm-linux-ar

RANLIB = arm-linux-ranlib

## Uncomment this to build tools using static version of the library.

## Mostly useful for embedded platforms without ldd, or to create

## a local version (non-root).

BUILD_STATIC = y

## Uncomment this to build without using libm (less efficient).

## This is mostly useful for embedded platforms without maths.

BUILD_NOLIBM = y

## Uncomment this to strip binary from symbols. This reduce binary size.

## by a few percent but make debug worse...

BUILD_STRIPPING = y

## Uncomment this to build with only essential functionality.

## This leaves out the less used features and cut in half the tools.

## This is mostly useful for embedded platforms without limited feature needs.

BUILD_WE_ESSENTIAL = y

# ***************************************************************************

# ***** Most users should not need to change anything beyond this point *****

# ***************************************************************************

# Version of the Wireless Tools

WT_VERSION := $(shell sed -ne "/WT_VERSION/{s:/([^0-9]*/)::;p;q;}" < iwlib.h )

# Version of Wireless Extensions.

WE_VERSION := $(shell sed -ne "/WE_VERSION/{s:/([^0-9]*/)::;p;q;}" < iwlib.h )

# Always use local header for wireless extensions

WEXT_HEADER = wireless.$(WE_VERSION).h

# Targets to build

STATIC=libiw.a

DYNAMIC=libiw.so.$(WT_VERSION)

PROGS= iwconfig iwlist iwpriv iwspy iwgetid iwevent ifrename

MANPAGES8=iwconfig.8 iwlist.8 iwpriv.8 iwspy.8 iwgetid.8 iwevent.8 ifrename.8

MANPAGES7=wireless.7

MANPAGES5=iftab.5

EXTRAPROGS= macaddr iwmulticall

# Composition of the library :

OBJS = iwlib.o

# Select which library to build and to link tool with

ifdef BUILD_STATIC

IWLIB=$(STATIC)

IWLIB_INSTALL=install-static

else

IWLIB=$(DYNAMIC)

IWLIB_INSTALL=install-dynamic

endif

# Standard name for dynamic library so that the dynamic linker can pick it.

# We will just create a symbolic link to the real thing.

DYNAMIC_LINK= libiw.so

# Install directories

INSTALL_DIR= $(PREFIX)/sbin/

INSTALL_LIB= $(PREFIX)/lib/

INSTALL_INC= $(PREFIX)/include/

INSTALL_MAN= $(PREFIX)/man/

# Various commands

RM = rm -f

RM_CMD = $(RM) *.BAK *.bak *.d *.o *.so ,* *~ *.a *.orig *.rej *.out

LDCONFIG = ldconfig

# Do we want to build with or without libm ?

ifdef BUILD_NOLIBM

LIBS=

WELIB_FLAG= -DWE_NOLIBM=y

else

LIBS= -lm

endif

# Stripping or not ?

ifdef BUILD_STRIPPING

STRIPFLAGS= -Wl,-s

else

STRIPFLAGS=

endif

# Do we want to build with only essential functionality ?

ifdef BUILD_WE_ESSENTIAL

WEDEF_FLAG= -DWE_ESSENTIAL=y

endif

# Other flags

CFLAGS=-Os -W -Wall -Wstrict-prototypes -Wmissing-prototypes -Wshadow /

-Wpointer-arith -Wcast-qual -Winline -I.

#CFLAGS=-O2 -W -Wall -Wstrict-prototypes -I.

DEPFLAGS=-MMD

XCFLAGS=$(CFLAGS) $(DEPFLAGS) $(WARN) $(HEADERS) $(WELIB_FLAG) $(WEDEF_FLAG)

PICFLAG=-fPIC

# Standard compilation targets

all:: $(IWLIB) $(PROGS)

%: %.o

$(CC) $(LDFLAGS) $(STRIPFLAGS) $(XCFLAGS) -o $@ $^ $(LIBS)

%.o: %.c wireless.h

$(CC) $(XCFLAGS) -c $<

%.so: %.c wireless.h

$(CC) $(XCFLAGS) $(PICFLAG) -c -o $@ $<

iwconfig: iwconfig.o $(IWLIB)

iwlist: iwlist.o $(IWLIB)

iwpriv: iwpriv.o $(IWLIB)

iwspy: iwspy.o $(IWLIB)

iwgetid: iwgetid.o $(IWLIB)

iwevent: iwevent.o $(IWLIB)

ifrename: ifrename.o $(IWLIB)

macaddr: macaddr.o $(IWLIB)

# Always do symbol stripping here

iwmulticall: iwmulticall.o

$(CC) $(LDFLAGS) -Wl,-s $(XCFLAGS) -o $@ $^ $(LIBS)

# It's a kind of magic...

wireless.h:

cp $(WEXT_HEADER) wireless.h

# Compilation of the dynamic library

$(DYNAMIC): $(OBJS:.o=.so)

$(CC) -shared -o $@ -Wl,-soname,$@ $(STRIPFLAGS) $(LIBS) -lc $^

# Compilation of the static library

$(STATIC): $(OBJS:.o=.so)

$(RM) $@

$(AR) cru $@ $^

$(RANLIB) $@

# Installation : So crude but so effective ;-)

# Less crude thanks to many contributions ;-)

install:: $(IWLIB_INSTALL) install-bin install-hdr install-man

# Install the dynamic library

install-dynamic:: $(DYNAMIC)

install -m 755 -d $(INSTALL_LIB)

install -m 755 $(DYNAMIC) $(INSTALL_LIB)

ln -sfn $(DYNAMIC) $(INSTALL_LIB)/$(DYNAMIC_LINK)

@echo "*** Don't forget to add $(INSTALL_LIB) to /etc/ld.so.conf, and run ldconfig as

root. ***"

@$(LDCONFIG) || echo "*** Could not run ldconfig ! ***"

# Install the static library

install-static:: $(STATIC)

install -m 755 -d $(INSTALL_LIB)

install -m 644 $(STATIC) $(INSTALL_LIB)

# All the binaries. Careful, no dependancy on install-dynamic

install-bin:: all

install -m 755 -d $(INSTALL_DIR)

install -m 755 $(PROGS) $(INSTALL_DIR)

# Headers to go with the wireless lib (dev)

install-hdr:: wireless.h

install -m 755 -d $(INSTALL_INC)

install -m 644 iwlib.h $(INSTALL_INC)

install -m 644 wireless.h $(INSTALL_INC)

# How could you live without those manapages ?

install-man::

install -m 755 -d $(INSTALL_MAN)/man8/

install -m 644 $(MANPAGES8) $(INSTALL_MAN)/man8/

install -m 755 -d $(INSTALL_MAN)/man7/

install -m 644 $(MANPAGES7) $(INSTALL_MAN)/man7/

install -m 755 -d $(INSTALL_MAN)/man5/

install -m 644 $(MANPAGES5) $(INSTALL_MAN)/man5/

install-iwmulticall:: iwmulticall

install -m 755 -d $(INSTALL_DIR)

install -m 755 $< $(INSTALL_DIR)/iwconfig

( cd $(INSTALL_DIR) ; /

ln -f -s iwconfig iwlist ; /

ln -f -s iwconfig iwspy ; /

ln -f -s iwconfig iwpriv ; /

ln -f -s iwconfig iwgetid )

clean::

$(RM_CMD)

realclean::

$(RM_CMD)

$(RM) $(STATIC) $(DYNAMIC) $(PROGS) $(EXTRAPROGS) libiw* wireless.h

uninstall::

for f in $(PROGS); do /

$(RM) $(INSTALL_DIR)/$$f; /

done

$(RM) $(INSTALL_LIB)/$(STATIC)

$(RM) $(INSTALL_LIB)/$(DYNAMIC)

$(RM) $(INSTALL_LIB)/$(DYNAMIC_LINK)

$(RM) $(INSTALL_INC)/iwlib.h

$(RM) $(INSTALL_INC)/wireless.h

for f in $(MANPAGES8); do /

$(RM) $(INSTALL_MAN)/man8/$$f; /

done

for f in $(MANPAGES7); do /

$(RM) $(INSTALL_MAN)/man7/$$f; /

done

for f in $(MANPAGES5); do /

$(RM) $(INSTALL_MAN)/man5/$$f; /

done

# Include dependancies

-include *.d

 

[root@dding Module]# make && make install

 

编译成功后,将在/opt/s3c-2416/rootfs/custom/wireless目录下生成相关的文件。

以后发布只需要将wireless/sbin下面的发布到usr/sbin下即可。

 

6.         配置问题

使用iwconfig rausb0 essid "TP-LINK"无法设置ESSID:

/wireless/sbin #iwconfig rausb0 essid "TP-LINK"

/wireless/sbin # iwconfig rausb0

rausb0    RT73 WLAN  ESSID:""                #ESSID依然为空

          Mode:Auto  Frequency=1 MHz  Bit Rate:54 Mb/s  

          Encryption key:0000-0000-00

 

解决(参看页面There are two ways to manually configure the dongle, iwconfig and iwpriv. Note that iwpriv must be used to set the SSID when compiling against kernel 2.6.19 and above):

 

要使用iwpriv命令来配置:

/wireless/sbin # iwpriv rausb0 set SSID="asus-test"

 

 

7.       附加信息

Then you can check for wireless networks around you by asking the driver to give you a site survey with:

/wireless/sbin # iwpriv rausb0 get_site_survey

rausb0    get_site_survey:

Channel RSSI    SSID              BSSID               Enc       Auth    etworkType

1       -42     asus-test         00:17:31:ae:29:97   NONE        OPEN        Infra

1       -82     2fast4u           00:14:d1:c4:d1:60   AES         WPA2-PSK    Infra

6       -82     00:26:5a:2a:ed:7a   TKIP        WPA2-PSK    Infra

6       -76     CMCC(ZJ)          00:0b:0e:79:30:80   NONE        OPEN      Infra      

6       -76     ChinaNet          00:0b:0e:79:30:82   NONE        OPEN      Infra      

6       -76     ChinaUnicom       00:0b:0e:79:30:84   NONE        OPEN      Infra      

6       -76     00:0b:0e:79:30:86   WEP         OPEN        Infra      

6       -74     00:0b:0e:79:30:88   TKIP        WPA-PSK     Infra      

6       -74     00:0b:0e:79:30:8a   TKIP        WPA-PSK     Infra      

6       -74     WASU            00:0b:0e:79:30:8c   NONE   OPEN        Infra

6       -74     00:0b:0e:79:30:8e   NONE        OPEN        Infra      

6       -76     

 

 

8.         手动测试

/ # ifconfig rausb0 inet 192.168.1.2 netmask 255.255.255.0 up

/ # iwlist rausb0 scan | grep ESSID

/ # iwlist rausb0 scan | grep ESSID

                    ESSID:"asus-test"

                    ESSID:"TP-LINK_517572"

可看到测试的网络"asus-test"

下面就将其设置:

/ # iwpriv rausb0 set SSID="asus-test"

ping百度

/ # ping 119.75.218.45

不通

/ # route add default gw 192.168.1.1

/ # ping 119.75.218.45

等几秒,通过

 

9.       配置以使用DHCP

编译Busybox  make menuconfig,添加以下选项:

Networking Utilities --->
udhcp Server/Client --->
       [ ] udhcp Server (udhcpd)       //
在此不作服务端,故不选。生成udhcpd
命令
udhcp Client (udhcpc)              //生成udhcpc命令     

重启板子:

/ # ifconfig rausb0 up

 

/ # iwlist rausb0 scan | grep ESSID

                    ESSID:"asus-test"

                    ESSID:"TP-LINK_517572"

/ # iwpriv rausb0 set SSID="asus-test"

 

 

问题1

 

/ # udhcpc rausb0

udhcpc (v1.17.3) started

udhcpc: socket: Address family not supported by protocol

 

解决(参看文章):

Networking --->

Networking support  

Networking options --->

需要选择下面红色部分:

  +---------------------- Networking options ----------------------+

  |  Arrow keys navigate the menu.  selects submenus --->. | 

  |  Highlighted letters are hotkeys.  Pressing includes,   | 

  |  excludes, modularizes features.  Press to      | 

  |  exit, for Help, for Search.  Legend: [*] built-in     | 

  | +------------------------------------------------------------+ | 

  | |    [ ] Network packet debugging                            | | 

  | |    < > Packet socket    【注:此处漏选】                                  | |

  | |    <*> Unix domain sockets                                 | | 

  | |    < > Transformation user configuration interface         | | 

  | |    [ ] Transformation sub policy support (EXPERIMENTAL)    | | 

  | |    [ ] Transformation migrate database (EXPERIMENTAL)      | | 

  | |    < > PF_KEY sockets                                      | | 

  | |    [*] TCP/IP networking                                   | | 

  | |    [ ]   IP: multicasting                                  | | 

  | |    [ ]   IP: advanced router                               | | 

  | |    [*]   IP: kernel level autoconfiguration                | | 

  | |    [*]     IP: DHCP support                       | | 

  | |    [*]     IP: BOOTP support                      | | 

//…

  | |    [*] Network packet filtering framework (Netfilter)  --->       | | 

 

 

10.  DHCP测试

下载新的内核,重启板子后

/ #ifconfig rausb0 up

/ # iwlist rausb0 scan | grep ESSID

                    ESSID:"asus-test"

/ # iwpriv rausb0 set SSID="asus-test"

 

几秒后就出现oop:

 

/ # skb_over_panic: text:bf046f48 len:14 put:14 head:c3b68c12 data:c3b68c20 tail:c3b68c00 end:c3b68c60 dev:rausb0

kernel BUG at net/core/skbuff.c:93!

Unable to handle kernel NULL pointer dereference at virtual address 00000000

pgd = c0004000

[00000000] *pgd=00000000

Internal error: Oops: 817 [#1]

Modules linked in: rt73 gpio_keys s3c_g2d s3c_lcd fbcon bitblit softcursor font fb lcd backlight

CPU: 0

PC is at __bug+0x20/0x2c

LR is at release_console_sem+0x1f0/0x22c

pc : []    lr : []    Not tainted

sp : c0321db0  ip : c0321ce8  fp : c0321dbc

r10: c3641030  r9 : c3200000  r8 : c0321e80

r7 : c3b68c60  r6 : c3b68c00  r5 : c3b68c20  r4 : c3b68c12

r3 : 00000000  r2 : 00000000  r1 : 0000206f  r0 : 00000027

Flags: nZCv  IRQs on  FIQs on  Mode SVC_32  Segment kernel

Control: 5317F

Table: 33550000  DAC: 00000017

Process swapper (pid: 0, stack limit = 0xc0320258)

Stack: (0xc0321db0 to 0xc0322000)

1da0:                                     c0321df4 c0321dc0 c0206f14 c002bec4

1dc0: c3b68c12 c3b68c20 c3b68c00 c3b68c60 c3200000 c0321e80 c3c35580 0000002e

1de0: c3b68c12 c3200340 c0321e24 c0321df8 bf046f54 c0206ed0 c3e72800 c0321e80

1e00: 00000000 c3200340 0000002e c3641030 c3641018 c3641000 c0321ebc c0321e28

1e20: bf047c78 bf046ed0 c3200000 c0322a80 0000002a c3641036 c321e6f0 c364101c

1e40: c3641028 00000000 c3200000 c0321e58 c0063738 c0062ef4 0000002a c0322a80

1e60: c0321f40 c0354220 c0321e94 c0321e78 c0028bdc c0047970 c3d3d800 ffffffff

1e80: 00c28001 17000000 9729ae31 2e002e00 c0027830 00000000 c0354244 c0354220

1ea0: c0354220 00000001 c0355cf8 00000000 c0321edc c0321ec0 c0047734 bf047030

1ec0: 00000000 c0354284 00000001 0000000a c0321f0c c0321ee0 c00475e4 c00476b4

1ee0: c03568a0 0000002a c0322a80 00000000 c03428a8 30021f3c 41069265 30021ed4

1f00: c0321f1c c0321f10 c00479a4 c004758c c0321f3c c0321f20 c0028bdc c0047970

1f20: c0321f4c ffffffff f0000000 04000000 c0321f94 c0321f40 c0027830 c0028ba4

1f40: 00000000 0005317f 0005217f a0000013 c002940c c0320000 c002940c c03428a8

1f60: 30021f3c 41069265 30021ed4 c0321f94 c0321f88 c0321f88 c00321e0 c0029474

1f80: a0000013 ffffffff c0321fb4 c0321f98 c00291c0 c002941c c0356a48 c0342468

1fa0: c00235a8 c036fa88 c0321fc4 c0321fb8 c0027148 c0029194 c0321ff4 c0321fc8

1fc0: c0008ca4 c0027124 c0008554 00000000 00000000 c00235a8 00000000 00053175

1fe0: c0342924 c0325884 00000000 c0321ff8 30008030 c0008a40 00000000 00000000

Backtrace:

[] (__bug+0x0/0x2c) from [] (skb_over_panic+0x54/0x60)

[] (skb_over_panic+0x0/0x60) from [] (REPORT_ETHERNET_FRAME_TO_LLC+0x94/0x160 [rt73])

 r7 = C3200340  r6 = C3B68C12  r5 = 0000002E  r4 = C3C35580

[] (REPORT_ETHERNET_FRAME_TO_LLC+0x0/0x160 [rt73]) from [] (RTUSBRxPacket+0xc58/0xd80 [rt73])

[] (RTUSBRxPacket+0x0/0xd80 [rt73]) from [] (tasklet_action+0x90/0xe4)

[] (tasklet_action+0x0/0xe4) from [] (__do_softirq+0x68/0xd0)

 r6 = 0000000A  r5 = 00000001  r4 = C0354284

[] (__do_softirq+0x0/0xd0) from [] (irq_exit+0x44/0x4c)

[] (irq_exit+0x0/0x4c) from [] (asm_do_IRQ+0x48/0x60)

[] (asm_do_IRQ+0x0/0x60) from [] (__irq_svc+0x30/0xc0)

 r6 = 04000000  r5 = F0000000  r4 = FFFFFFFF

[] (default_idle+0x0/0x74) from [] (cpu_idle+0x3c/0x58)

[] (cpu_idle+0x0/0x58) from [] (rest_init+0x34/0x3c)

 r7 = C036FA88  r6 = C00235A8  r5 = C0342468  r4 = C0356A48

[] (rest_init+0x0/0x3c) from [] (start_kernel+0x274/0x2e0)

[] (start_kernel+0x0/0x2e0) from [<30008030>] (0x30008030)

Code: e1a01000 e59f000c eb005c98 e3a03000 (e5833000)

Kernel panic - not syncing: Aiee, killing interrupt handler!

 

 重启后,企图先手动配置:

/ # ifconfig rausb0 up && iwpriv rausb0 set SSID="asus-test" && udhcpc rausb0

rt73 driver version - 1.0.3.6

udhcpc (v1.17.3) started

udhcpc: socket: Address family not supported by protocol

 

一会就又出现oop

/ # skb_over_panic: text:bf046f48 len:14 put:14 head:c3b7bc12 data:c3b7bc20 tail:c3b7bc00 end:c3b7bc60 dev:rausb0

kernel BUG at net/core/skbuff.c:93!

Unable to handle kernel NULL pointer dereference at virtual address 00000000

pgd = c0004000

[00000000] *pgd=00000000

Internal error: Oops: 817 [#1]

Modules linked in: rt73 gpio_keys s3c_g2d s3c_lcd fbcon bitblit softcursor font fb lcd backlight

CPU: 0

PC is at __bug+0x20/0x2c

LR is at release_console_sem+0x1f0/0x22c

pc : []    lr : []    Not tainted

sp : c0321db0  ip : c0321ce8  fp : c0321dbc

r10: c36ed030  r9 : c3200000  r8 : c0321e80

r7 : c3b7bc60  r6 : c3b7bc00  r5 : c3b7bc20  r4 : c3b7bc12

r3 : 00000000  r2 : 00000000  r1 : 00002039  r0 : 00000027

Flags: nZCv  IRQs on  FIQs on  Mode SVC_32  Segment kernel

Control: 5317F

Table: 33510000  DAC: 00000017

Process swapper (pid: 0, stack limit = 0xc0320258)

Stack: (0xc0321db0 to 0xc0322000)

1da0:                                     c0321df4 c0321dc0 c0206f14 c002bec4

1dc0: c3b7bc12 c3b7bc20 c3b7bc00 c3b7bc60 c3200000 c0321e80 c3c358a0 0000002e

1de0: c3b7bc12 c3200340 c0321e24 c0321df8 bf046f54 c0206ed0 c0321e24 c0321e80

1e00: 00000000 c3200340 0000002e c36ed030 c36ed018 c36ed000 c0321ebc c0321e28

1e20: bf047c78 bf046ed0 c3200000 c0322a80 0000002a c36ed036 c321e54c c36ed01c

1e40: c36ed028 00000000 c3200000 c0321e58 c0063738 c0062ef4 0000002a c0322a80

1e60: c0321f40 c0354220 c0321e94 c0321e78 c0028bdc c0047970 c3d3d800 ffffffff

1e80: 00c28001 17000000 9729ae31 2e002e00 c0027830 00000000 c0354244 c0354220

1ea0: c0354220 00000001 c0355cf8 00000000 c0321edc c0321ec0 c0047734 bf047030

1ec0: 00000000 c0354284 00000001 0000000a c0321f0c c0321ee0 c00475e4 c00476b4

1ee0: c03568a0 0000002a c0322a80 00000000 c03428a8 30021f3c 41069265 30021ed4

1f00: c0321f1c c0321f10 c00479a4 c004758c c0321f3c c0321f20 c0028bdc c0047970

1f20: c0321f4c ffffffff f0000000 04000000 c0321f94 c0321f40 c0027830 c0028ba4

1f40: 00000000 0005317f 0005217f a0000013 c002940c c0320000 c002940c c03428a8

1f60: 30021f3c 41069265 30021ed4 c0321f94 c0321f88 c0321f88 c00321e0 c0029474

1f80: a0000013 ffffffff c0321fb4 c0321f98 c00291c0 c002941c c0356a48 c0342468

1fa0: c00235a8 c036fa88 c0321fc4 c0321fb8 c0027148 c0029194 c0321ff4 c0321fc8

1fc0: c0008ca4 c0027124 c0008554 00000000 00000000 c00235a8 00000000 00053175

1fe0: c0342924 c0325884 00000000 c0321ff8 30008030 c0008a40 00000000 00000000

Backtrace:

[] (__bug+0x0/0x2c) from [] (skb_over_panic+0x54/0x60)

[] (skb_over_panic+0x0/0x60) from [] (REPORT_ETHERNET_FRAME_TO_LLC+0x94/0x160 [rt73])

 r7 = C3200340  r6 = C3B7BC12  r5 = 0000002E  r4 = C3C358A0

[] (REPORT_ETHERNET_FRAME_TO_LLC+0x0/0x160 [rt73]) from [] (RTUSBRxPacket+0xc58/0xd80 [rt73])

[] (RTUSBRxPacket+0x0/0xd80 [rt73]) from [] (tasklet_action+0x90/0xe4)

[] (tasklet_action+0x0/0xe4) from [] (__do_softirq+0x68/0xd0)

 r6 = 0000000A  r5 = 00000001  r4 = C0354284

[] (__do_softirq+0x0/0xd0) from [] (irq_exit+0x44/0x4c)

[] (irq_exit+0x0/0x4c) from [] (asm_do_IRQ+0x48/0x60)

[] (asm_do_IRQ+0x0/0x60) from [] (__irq_svc+0x30/0xc0)

 r6 = 04000000  r5 = F0000000  r4 = FFFFFFFF

[] (default_idle+0x0/0x74) from [] (cpu_idle+0x3c/0x58)

[] (cpu_idle+0x0/0x58) from [] (rest_init+0x34/0x3c)

 r7 = C036FA88  r6 = C00235A8  r5 = C0342468  r4 = C0356A48

[] (rest_init+0x0/0x3c) from [] (start_kernel+0x274/0x2e0)

[] (start_kernel+0x0/0x2e0) from [<30008030>] (0x30008030)

Code: e1a01000 e59f000c eb005c98 e3a03000 (e5833000)

Kernel panic - not syncing: Aiee, killing interrupt handler!

 

看来只有 下周再继续战斗了。。。(见下篇文章)

 

你可能感兴趣的:(linux内核自学笔记,linux驱动,linux,学习笔记)