前邊已經實現村里通了4g網,可是▄█▀█●流量太貴,看片傷不起,那必須上wifi呀!
一、資料獲取
二、修改MAKEFILE
在211行的位置,修改LINUX_SRC為內核目錄源碼的位置,
修改LINUX_COMPILE為交叉編譯器的位置。如下圖所示。
修改完成后執行make編譯。
想改加載的無線網卡名字可以在include/rtmp_def.h里修改,修改如下所示。
不想修改的話默認編譯出來網卡名字為ra0.
編譯完成,因為我們沒有修改makefile設置為arm系列,所以編譯出來在os/linux 目錄下。
如圖所示,我們編譯出來的驅動為mt7601Usta.ko。拷貝到開發板上。我這里放到了/mylib目錄下,其他目錄也可以。
加載驅動,使用 ismod mt7601Usta.ko 既可以加載驅動,加載完成,執行ifconfig -a 可以看到ra0。說明無線網卡驅動已經加載成功。
和4g模塊驅動同樣的,驅動加載成功還沒有連接wifi。這里就要請出 wpa_supplicant了
wpa_supplicant是wifi客戶端(client)加密認證工具,wpa_supplicant支持wep、wpa、wpa2等完整的加密認證
繼續移植,交叉編譯
官網獲取源碼
我這里使用的是wpa_supplicant-2.7.tar.gz
1、解壓源碼包tar xvzf wpa_supplicant-2.7.tar.gz
2、cd wpa_supplicant-2.7/wpa_supplicant
3、拷貝默認配置cp defconfig .config
4、打開.config 需要修改的配置如下
CONFIG_DRIVER_WEXT=y //使用WEXT通過ioctl和驅動通信,典型工具ifconfig等
CONFIG_DRIVER_NL80211=y //使用NL80211通過一個特殊的socket和驅動打通信,典型工具包括 iwconfig等,使能該選項時應指定libnl庫,移植libnl請參考libnl3.2 移植。
CFLAGS += -I../../libnl-3.2.25/install/include/ // CONFIG_DRIVER_NL80211=y時。需指定libnl頭文件
LIBS += -L../../libnl-3.2.25/install/include/ // CONFIG_DRIVER_NL80211=y時,需指定libnl庫
CONFIG_LIBNL32=y // CONFIG_DRIVER_NL80211=y時,需指定libnl庫版本
CC = arm-hisiv300-linux-gcc // 配置編譯器
CONFIG_TLS = internal // 配置TLS實現,可選有openssl、internal,選擇penssl時需指定openssl庫,移植步驟請參考Openssl 移植,由於開發板flash空間較小,出於節省空間的考慮,選擇 internal
CONFIG_INTERNAL_LIBTOMMATH = y //CONFIG_TLS = internal時,需使能
CFLAGS += -I../../openssl-1.1.1/install/include/ // CONFIG_TLS = openssl時。需指定openssl頭文件
LIBS += -L../../lopenssl-1.1.1/install/include/ // CONFIG_TLS = openssl時,需指定openssl庫
5、執行make編譯
6、將可執行程序wpa_supplicant、wpa_cli拷貝到開發板文件系統/usr/bin/目錄下,使用chmod命令修改可執行權限
7、在開發板/etc 目錄下建立開發板的配置文件。
內容如下,填寫對應的wifi名字和密碼。
ctrl_interface=/var/run/wpa_supplicant
network={
proto=WPA
key_mgmt=WPA-PSK
ssid="wifi名"
psk="wifi密碼"
}
8、執行wpa_supplicant -i ra0 -B -c /etc/wpa_supplicant.conf。既可以連接wifi。
9、實現開機自動加載驅動,並啟動wifi連接。修改/etc/init.d 下的配置
如圖所示。最后一個udhcpc為dhcp,自動獲取ip。需要在busybox配置dhcp功能。