第一: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热点信息。