① /include/linux/目录,wireless.h、skbuff.h、textsearch.h、netdevice.h、slab.h、ip.h、icmp.h、socket.h;
② /include/net/目录,iw_handler.h、sock.h;
③ /include/sound/目录,core.h;
④ /net/core/目录,dev.c、skbuff.c、wireless.c、neighbour.h;
⑤ /net/ipv4/目录,ip_output.c、devinet.c、socket.c;
⑥ /net/netlink目录,af_netlink.c;
⑦ /mm/目录,slab.c。
文件替换完毕进行内核编译:
make zImage
生成内核zImage后下载到目标板。在内核编译的过程中,还会出现许多错误,主要是C90语法错误、所调用函数数据类型不匹配、段符号未定义等问题。主要的修改内容:
① 内核编译时若出现C90语法和C99语法错误,只需按照本编译系统所采用的编译标准进行语法修改。例如,/net/core/dev.c中函数“net_rx_action”的第1713~1729行提示有语法错误。其中,第1713行的错误按照C90语法修改即可消除,其他错误为所调用函数数据类型不匹配所致,修改所调用函数的数据类型即可。
② 出现提示“.data=&no_cong_thresh”未定义之类的错误时,在相应源码中将其注释即可。
③ Wireless_seq_show函数错误直接采用2.6.24版本替换2.6.12版本即可。
④ net_sysctl_strdup类错误和警告一定要消除,消除方法是替换neighbour.h文件及相关文件。
① 解压。
tar zxvf wireless_tools.29.tar.gz
② 修改Makefile。
修改第8行,设置可执行文件安装路径:
PREFIX=/usr/local/wireless
修改第12行,设置gcc交叉编译器:
CC=/usr/local/arm/3.4.1/bin/armlinuxgcc
修改第15行,设置ar交叉编译器:
AR=/usr/local/arm/3.4.1/bin/armlinuxar
修改第16行,设置ranlib交叉编译器:
RANLIB=/usr/local/arm/3.4.1/bin/armlinuxranlib
③ 运行make命令。
④ 运行make install命令。可执行文件安装于/usr/local/wireless目录下。
⑤ 拷贝两个库libiw.so和libiw.so.29到文件系统/test/rootfs/lib目录下,运行chmod 777命令后重新生成压缩根文件rootfs.cramfs,并下载到ARM板。
⑥ 将安装目录下的iwconfig、iwlist等下载到目标板。主要使用的命令及功能:
◆ iwconfig,回车,查看所有无线网卡;
◆ iwconfig wlan0,查看wlan0;
◆ iwconfig wlan0 essid "xx",配置网卡SSID为xx;
◆ iwlist wlan0 scan|grep ESSID,搜索周边所有无线网卡的ESSID。
2.6 无线网卡测试
(1) 插入无线网卡,自动安装USB host驱动
[root@(none) tmp]# uname a
Linux(none) 2.6.12h1940 #59 Tue May 3 13:12:53 CST 2011 armv4tl unknown
[root@(none) tmp]# usb 11:new full speed USB device using s3c2410ohci and address 4
usb 11: Product: RTL8188S WLAN Adapter
usb 11: Manufacturer: Manufacturer Realtek
usb 11: SerialNumber: 00e04c000001
(5) 配置wlan0的SSID
iwconfig wlan essid TPLINK_717E24
配置成功后利用iwconfig回显:
[root@(none) tmp]# uname a
Linux (none) 2.6.12h1940 #59 Tue May 3 13:12:53 CST 2011 armv4tl unknown
[root@(none) tmp]# iwconfig wlan0
wlan0IEEE 802.11bg ESSID:"TPLINK_717E24"
Mode: Managed Frequency: 2.437 GHz Access Point: 00:25:86:71:7E:24
Bit Rate: 54 Mb/s
Encryption key:off
Power Management: off
Link Quality=52/100 Signal level=52/100 Noise level=0/100
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0
(6) IP动态分配
自动申请动态IP:
udhcpc i wlan0
显示如下信息:
[root@(none) tmp]# uname a
Linux (none) 2.6.12h1940 #59 Tue May 3 13:12:53 CST 2011 armv4tl unknown
[root@(none) tmp]# udhcpc i wlan0
udhcpc (v0.9.9pre) started
udhcpc[490]: udhcpc (v0.9.9pre) started
Sending discover...
udhcpc[490]: Sending discover...
Sending select for 172.16.51.9...
udhcpc[490]: Sending select for 172.16.51.9...
Lease of 172.16.51.9 obtained, lease time 691200
udhcpc[490]: Lease of 172.16.51.9 obtained, lease time 691200
deleting routers
route: SIOC[ADD|DEL]RT: No such process
adding dns 61.153.216.99
adding dns 61.153.216.104
运行ifconfig命令后,显示最终配置:
[root@(none) tmp]# uname a
Linux (none) 2.6.12h1940 #59 Tue May 3 13:12:53 CST 2011 armv4tl unknown
[root@(none) tmp]# ifconfig wlan0
wlan0 Line encap: Ethernet HWaddr 00:0F:10:54:0E:1B
inet addr: 172.16.51.9 Bcast:172.16.255.255 Mask: 255.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:618 errors:0 dropped:0 overruns:0 frame:0
TX packets:2 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
(7) ping测试
ping测试时需要加c参数控制ping次数,否则会一直不停测试,并且无法kill。
[root@(none) tmp]# ping c 2 172.16.51.9
PING 172.16.51.9 (172.16.51.9): 56 data bytes
64 bytes from 172.16.51.9: icmp_seq=0 ttl=64 time=1.4 ms
64 bytes from 172.16.51.9: icmp_seq=1 ttl=64 time=0.7 ms
---172.16.51.9 ping statistics
2 packets transmitted, 2 packets received, 0% packet loss
roundtrip min/avg/max=0.7/1.0/1.4 ms