1. 程式人生 > 實用技巧 >海思3518E開發——移植wifi模組到開發板(聯發科7601)

海思3518E開發——移植wifi模組到開發板(聯發科7601)

前邊已經實現村裡通了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功能。