linux下移植wifi之编译驱动模块(二)

第一节 编译驱动模块

1.	确定无线网卡芯片rt3070的 VID,PID 为 :0x148f, 0x3070。 
2.	cd linux-3.4.2/drivers/net/wireless/

3.	grep "0x3070" * -nR
		得:rt2x00/rt2800usb.c:1077:	{ USB_DEVICE(0x148f, 0x3070) },
	
4.	打开源码所在目录的Makefile进而确定配置项的名称
	obj-$(CONFIG_RT2800USB)                 += rt2800usb.o
	make menuconfig
	/CONFIG_RT2800USB 		//注释:(/查找符号)
	得:
	  Symbol: RT2800USB [=m]                                                                                                                         │  
	  │ Type  : tristate                                                                                                                               │  
	  │ Prompt: Ralink rt27xx/rt28xx/rt30xx (USB) support                                                                                              │  
	  │   Defined at drivers/net/wireless/rt2x00/Kconfig:128                                                                                           │  
	  │   Depends on: NETDEVICES [=y] && WLAN [=y] && RT2X00 [=m] && USB [=y]                                                                          │  
	  │   Location:                                                                                                                                    │  
	  │     -> Device Drivers                                                                                                                          │  
	  │       -> Network device support (NETDEVICES [=y])                                                                                              │  
	  │         -> Wireless LAN (WLAN [=y])                                                                                                            │  
	  │           -> Ralink driver support (RT2X00 [=m])                                                                                               │  
	  │   Selects: RT2800_LIB [=m] && RT2X00_LIB_USB [=m] && RT2X00_LIB_FIRMWARE [=y] && RT2X00_LIB_CRYPTO [=y] && CRC_CCITT [=y]


5.  根据上面查看的Depends,和https://blog.csdn.net/happygrilclh/article/details/81020372博客这里面讲的依赖,配置内核如下:
		
[*] Networking support  --->
	-*-   Wireless  --->
		<*>   cfg80211 - wireless configuration API   
		<*>   cfg80211 - wireless configuration API  
		
Library routines  ---> 
	{*} CRC-CCITT functions		


Device Drivers  --->
	[*] Network device support  --->
		[*]   Wireless LAN  --->
			<*>   IEEE 802.11 for Host AP (Prism2/2.5/3 and WEP/TKIP/CCMP)
			[*]     Support downloading firmware images with Host AP driver
			[*]       Support for non-volatile firmware download
			   Ralink driver support  --->
				   Ralink rt27xx/rt28xx/rt30xx (USB) support     
				[*]     rt2800usb - Include support for rt33xx devices
				

			
6. 编译内核 和 模块
方法一: 
编译内核:make uImage 或者 make zImage
编译模块:make modules

方法二:
编译内核和模块:make all


7. 将生成的模块复制进根文件系统 
cp drivers/net/wireless/rt2x00/*.ko /opt/rootfs/     /*注释:/opt/rootfs/ 是根文件系统nfs挂载点*/
8. 更新新生成的内核

9.设置nfs启动模式下的,uboot环境参数

#nand erase params //清除uboot环境参数
#reset
setenv ipaddr 192.168.0.89
setenv serverip 192.168.0.104
setenv bootcmd 'nfs 32000000 192.168.0.104:/opt/kernel; bootm 32000000'
setenv bootargs noinitrd root=/dev/nfs nfsroot=192.168.0.104:/opt/rootfs ip=192.168.0.89:192.168.0.104:192.168.0.1:255.255.255.0::eth0:off init=/linuxrc console=ttySAC0,115200
saveenv

10.	启动文件里,加上加载模块的命令,为了内核启动之后,自动加载模块,不用手动一行行输入命令去加载模块。 
	vim  etc/init.d/rcS
	加入:
	insmod /rt2x00lib.ko  
	insmod /rt2x00usb.ko
	insmod /rt2800lib.ko  
	insmod /rt2800usb.ko
	
11. 内核启动之后,可以通过lsmod去查看一下,是否加载内核成功。
	/ # lsmod
	rt2800usb 11173 0 - Live 0xbf025000
	rt2800lib 44842 1 rt2800usb, Live 0xbf015000
	rt2x00usb 8105 1 rt2800usb, Live 0xbf00f000
	rt2x00lib 33292 3 rt2800usb,rt2800lib,rt2x00usb, Live 0xbf000000
	
	加载内核成功。
	
12. 固件
	内核启动之后,虽然模块加载成功了,但是会弹出一句话。phy0 -> rt2x00lib_request_firmware: Error - Failed to request Firmware.
	这句话的意思是,模块没有固件。那就将固件rt2870.bin 放在根文件系统的lib/firmware下。
	
	到此处rt3070的驱动就算加载成功了。
        这讲,讲的是,如何成功加载无线模块。
        下一讲,讲如何用iw管理无线网络,iw 管理 open 或者 wep 无线网络。 不对,再讲无线管理网络方法之前,应该先讲如何安装无线管理工具的依赖 libnl and openssl。


  
	

细节:

linux下移植wifi之编译驱动模块(二)_第1张图片

linux下移植wifi之编译驱动模块(二)_第2张图片linux下移植wifi之编译驱动模块(二)_第3张图片

linux下移植wifi之编译驱动模块(二)_第4张图片


你可能感兴趣的:(移植wifi)