linux内核wifi,8192DU双频wifi模块移植到linux3.6.0内核

1.1 下载驱动代码

官方网站()上需找自己匹配的型号的驱动,这里我们使用的是8192du型号的wifi芯片,所以下载匹配的wifi驱动,还有就是使用的linux内核要在官方所指定的版本范围内,这部分多于供应商的技术支持多沟通。

这里我们使用的linux内核为linux3.6.0的高版本内核,Realtek上支持的RTL8192DE-VC支持的linux版本Linux Driver for Kernel 2.6.18~2.6.38 and 3.0.2 ,而我们的linux3.6.0在linux支持的版本外,最终跟供应商沟通后获得新版本的驱动代码rtl8192DU_linux_v4.0.2_9377.20131113.tar.gz。

1.2 Wifi驱动的交叉编译

参考文档Quick_Start_Guide_for_Driver_Compilation_and_Installation.pdf

步骤如下:

1,进入rtl8192DU_linux_v4.0.2_9377.20131025_beta目录下的Makefile,并了解框架

2,修改CONFIG_PLATFORM_I386_PC = n,添加CONFIG_PLATFORM_NEW_ARM = y

3,在合适的位置添加:

ifeq ($(CONFIG_PLATFORM_NEW_ARM), y)

EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN//支持小端

ARCH := arm//平台

CROSS_COMPILE := /home/guo/High-speed_Project/Tools/bin/arm-xilinx-linux-gnueabi-

//编译器路径

KVER  := 3.6.0    //内核版本

KSRC ?= /home/guo/High-speed_Project/kernel/linux-digilent-master   //内核路径

endif

4:保存退出,make,生成8192du.ko。

这样就生成了支持linux3.6内核的wifi驱动模块了。

1.3 应用程序交叉编译

1.3.1  wpa_supplicant_hostapd-0.8_rtw_r6747.20130222交叉编译

1,进入wpa_supplicant_hostapd-0.8_rtw_r6747.20130222/wpa_supplicant目录下打开Makefile

2,在第4行添加CC = /home/guo/High-speed_Project/Tools/bin/arm-xilinx-linux-gnueabi-gcc

3,保存退出,make,生成wpa_cli,wpa_passphrase,wpa_supplicant。

1.3.2  wireless_tools.30.rtl交叉编译

1,进入wireless_tools.30.rtl目录下打开Makefile

2,修改如下:

CC = /home/guo/High-speed_Project/Tools/bin/arm-xilinx-linux-gnueabi-gcc

AR = /home/guo/High-speed_Project/Tools/bin/arm-xilinx-linux-gnueabi-ar

RANLIB = /home/guo/High-speed_Project/Tools/bin/arm-xilinx-linux-gnueabi-ranlib

3,保存退出,make,生成iwconfig,iwlist。

1.3.3  dhclient命令的交叉编译

源码下载地址

下载dhcp-3.1-ESV-R3, 解压后生成dhcp-3.1-ESV-R3目录,

进入该目录执行./configure,该命令生成work.linux-2.2目录。(这部分对机器的配置有要求)

进入这个work.linux-2.2目录后,在编译时指定我们的交叉编译器,

make "CC = /home/guo/High-speed_Project/Tools/bin/arm-xilinx-linux-gnueabi-gcc  -static"

生成的dhclient就是我们想要的了。

[root@localhost client]# file dhclient

dhclient: ELF 32-bit LSB executable, ARM, version 1 (ARM), for GNU/Linux 2.0.0, statically linked, not stripped

要使用到的文件有 命令dhclient,配置文件/dhcp-3.1-ESV-R3/client/dhclient.conf,

脚本文件/dhcp-3.1-ESV-R3/client/scripts/linux

修改 /dhcp-3.1-ESV-R3/client/scripts/linux为dhclient-script。

1.4 生成文件系统

拷贝驱动,命令,配置文件,脚本文件到文件系统下。

1,在根文件系统下创建一个目录wifi

2,把8192du.ko拷贝到/wifi目录下

把wpa_cli,wpa_passphrase,wpa_supplicant,iwconfig,iwlist,dhclient拷贝到/bin目录

把dhclient.conf,dhclient-script拷贝到/sbin目录下

3,创建/var/run

在/home/guo/High-speed_Project/script#下执行make rootfs,会在target目录下生成ramdisk8M.image.gz。

1.5 Wifi移植

1.5.1  配置linux3.6.0的内核

在linux源码目录下make menuconfig。

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

1.5.2  启动开发板测试

在启动的文件系统上会在/bin,/sbin,/wifi目录可以看到刚才放进去的配置文件,命令文件,脚本文件。

WEP模式

操作步骤如下:

1,进入/wifi目录下:insmod 8192du.ko

2,

ifconfig eth0 down //关掉eth0

ifconfig wlan0 up//打开wlan0

iwconfig wlan0 essid "Dragonwake" key 1111111111   //使用WEP密码,输入ssid及key

dhclient wlan0//动态获取wlan0的ip

ifconfig wlan0 192.168.1.103 netmask 255.255.255.0//配置ip与子网掩码

route add default gw 192.168.1.1//添加默认网关

3,测试:

ping

47298389de379483a7429ca6fd4a72cd.png

说明wifi模块已经连接上了无线路由,可以上网了

WPA模式:

操作步骤如下:

1,进入/wifi目录下:insmod 8192du.ko

2,加载驱动,配置网络设备

insmod 8192du.ko

ifconfig eth0 down

ifconfig wlan0 up

3,添加配置文件

touch /etc/wpa_supplicant.conf

在wpa_supplicant.conf文件中添加如下:

9eec19f641c632f708e887da87bf9865.png

SSID为用户名,psk为密码。

4,后台运行程序

./wpa_supplicant -iwlan0 -c /etc/wpa_supplicant.conf -B

5,动态获取wlan0 ip

dhclient wlan0

6,收到设置网络参数

ifconfig wlan0 192.168.1.103 netmask 255.255.255.0

route add default gw 192.168.1.1

7,测试网络ping

dc105576c2e87311c5a427c41e58d806.png

这样wifi的安全模式下的WPE,WPA加密都实现了,wifi移植到此完成了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值