大家好,今天主要和大家聊一聊,如何使用linux系统中的WIFI驱动完成相应的实验。
目录
第一:WIFI驱动添加与编译方法
第二:将驱动代码添加到linux内核中
第三:配置Linux内核
第四:编译WIFI驱动
第一:WIFI驱动添加与编译方法
目前常见的wifi模块支持两种接口:USB和SDIO,其中 USB WIFI 使用的芯片为RTL8188EUS或 RTL8188CUS,SDIO 接口的WIFI 使用芯片为 RTL8189FS, 也叫做 RTL8189FTV。这两个都是 realtek 公司出品的 WIFI 芯片。WIFI 驱动不需要我们编写, 因为 realtek 公司提供了 WIFI 驱动源码,因此我们只需要将 WIFI 驱动源码添加到 Linux 内核 中,然后通过图形化界面配置,选择将其编译成模块即可。
第二:将驱动代码添加到linux内核中
将realtek整个目录复制到ubuntu下,linux内核源码中的dirvers/net/wireless目录下,此目录下存放着所有的WIFI驱动文件。
打开drivers/net/wireless/Kconfig,在里面加入下面所示的内容:
#
# Wireless LAN device configuration
#
menuconfig WLAN
......
source "drivers/net/wireless/rsi/Kconfig"
source "drivers/net/wireless/realtek/Kconfig"
打卡drivers/net/wireless/Makefile,在里面添加下面一行。
# Makefile for the Linux Wireless network device drivers.
#
obj-$(CONFIG_IPW2100) += ipw2x00/
......
obj-$(CONFIG_CW1200) += cw1200/
obj-$(CONFIG_RSI_91X) += rsi/
obj-y += realtek/
编译 realtek 中的内容,至此,Linux 内核要修改的内容就全部完成了。
第三:配置Linux内核
在编译RTL8188 和 RTL8189 驱动之前需要先配置 Linux 内核。
1、配置USB支持设备
-> Device Drivers
-> <*> USB support
-> <*> Support for Host-side USB
-> <*> EHCI HCD (USB 2.0) support
-> <*> OHCI HCD (USB 1.1) support
-> <*> ChipIdea Highspeed Dual Role Controller
-> [*] ChipIdea device controller
-> [*] ChipIdea host controller
2、配置WIFI设备
配置路径如下:
-> 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
第四:编译WIFI驱动
执行“make menuconfig”命令,打开 Linux 内核配置界面,然后按照如下路径选择将 rtl81xx
驱动模块的编译。
-> Device Drivers
-> Network device support (NETDEVICES [=y])
-> Wireless LAN (WLAN [=y])
-> Realtek wifi (REALTEK_WIFI [=m])
-> rtl8189ftv sdio wifi
-> rtl8188eus usb wifi
-> Realtek 8192C USB WiFi
配置界面就是添加进去WIFI配置界面,选中“rtl8189fs/ftv sdio wifi”、 “rtl8188eus usb wifi”和“Realtek 8192C USB WiFi”,将其编译为模块。
输入命令:make modules -j12 //编译驱动模块
编译完成以后就会在 rtl8188EUS、rtl8189FS 和 rtl8192CU 文件夹下分别生成 8188eu.ko、 8189fs.ko 和 8192cu.ko 这三个.ko 文件。
总结:wifi的驱动要学会移植方法,想要上网的话,还需要移植其他的库文件,才能更好的连接wifi热点信息。