測試平台
宿主機平台:Ubuntu 16.04.6
目標機:iMX6ULL
目標機內核:Linux 4.1.15
rtl8188eu 驅動移植
在網上下載Linux版的驅動源碼;
wifi驅動的實現有兩種:
1)將驅動源碼交叉編譯為內核模塊ko文件,拷貝到目標機,通過 insmod 指令安裝,在開機腳本中添加模塊安裝機wifi配置即可實現開機自動聯網,本方法較為簡單在此不做贅述;
2)將驅動移植到內核中,后面通過配置內核實現wifi支持,下面對內核驅動的移植進行詳細描述;
移植步驟:
1.將驅動源碼解壓,並修改為 rtl8188eu ,對於移植的驅動我一般都放在 drivers/staging/ 這個暫存目錄下;
2.修改 drivers/staging/Makefile 加入 支持 rtl8188eu 的驅動編譯
obj-$(CONFIG_R8188EU) += rtl8188eu/
3.添加 Kconfig 支持,修改 drivers/staging/Kconfig
source "drivers/staging/rtl8188eu/Kconfig"
至此內核驅動移植完畢。
內核配置及驅動使用
在內核目錄
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig
因為使用板載wifi情況較多,所以直接編譯進內核;
然后
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- zImage
更新內核
查看無線網絡,對於wlan0 已經支持
wpa_supplicant是一個連接、配置WIFI的工具,下面使用該工具對wifi網絡進行配置和連接
使用 wpa_passphrase wifi配置文件 wifi.conf
網絡名和密碼
wpa_passphrase "HTGW-Guest" >> wifi.conf
67106002
查看配置文件
啟動wlan0
wpa_supplicant -D wext -B -i wlan0 -c wifi.conf
-D 驅動程序名稱(可以是多個驅動程序:nl80211,wext)
-i 接口名稱
-c 配置文件
-B 在后台運行守護進程
自動獲取IP地址
udhcpc -b -i wlan0 -R