迅為iTOP-6818-開發板 QtE系統下的WiFi_mt6620移植方法筆記


平台:iTOP-6818開發板

 

 

 

     參考官網提供的移植文檔自己移植的WIFI,很有成就感 (^_^), 移植過程中的部分庫和工具,在源碼或者鏡像中可能已經存在,可以使用自己生成的覆蓋即可。提供的文件如下圖所示,分別為三個源碼壓縮包、編譯好的庫位於 lib 文件夾、wpa_supplicant 工具位

sbin 文件夾、6620_launcher和腳本 make_mt6620.sh

 

 

 

 

 

 

使用的驅動模塊對應在 Android源碼中的device/nexell/s5p6818_drone/mt6620_6818/

目錄下,用戶只要在內核將 WiFi設置為模塊方式(M),然后編譯 Android源碼之后可以

在該目錄找到可以使用的驅動模塊。同樣所需驅動我們在 wpa_driver 文件夾直接提供,以方便使用。

 

1 6620_launcher

6620_launcher 工具是作為后台的一個服務程序運行,該服務會配置串口的工作參數,下

載固件補丁到 MT6620 中,它位於開發板的“/usr/bin/”目錄下,在系統中內置,用戶可以直接覆蓋。

 

2 移植wpa_supplicant

在進行編譯之前要先修改編譯器為 4.3.2 版本,“Qt/E4.7.1 編譯器的安裝”。另外為了避免使用環境變量設置編譯器而可能出現的問題,文

檔中大部分編譯是使用編譯器的絕對路徑,用戶也應先找到自己編譯器的絕對路徑待用。下圖是本次編譯使用的編譯器以及編譯器壓縮包。

 

 

 

 

 

由上圖可知該編譯器的絕對路徑為/usr/local/arm/4.3.2/bin/ arm-none-linux-gnueabi-gcc”。

用戶需要將提供的源碼壓縮包拷貝到 Ubuntu 的工作目錄,分別解壓 ,如下圖所示。

 

 

 

 

 

 

 

2.1 移植OpenSSL

首先進入目錄 openssl-1.1.0g,內容如下圖所示。

 

 

 

 

 

 

 

執行下面指令,做相應配置。

./config no-asm shared --prefix=$(pwd)/__install

執行完成后如下圖所示。

 

 

 

 

no-asm: 是在交叉編譯過程中不使用匯編代碼代碼加速編譯過程,原因是它的匯編代碼

是不支持 arm 格式。

shared :生成動態連接庫。

 

--prefix :指定 make install 后生成目錄的路徑,不修改此項則默認為 OPENSSLDIR

(/usr/local/ssl)

使用命令vim Makefile”打開 Makefile,搜索 CFLAG,定位到下圖中所示位置。

 

 

 

 

 

刪除上圖中紅框中的-m64”,完成后 CFLAG 應如下圖所示。

 

 

 

 

 

 

執行以下命令,編譯 OpenSSL 庫,注意這里使用的是交叉編譯器的絕對路徑。

make CROSS_COMPILE=/usr/local/arm/4.3.2/bin/arm-none-linux-gnueabi-編譯完成后如下圖所示。

 

 

 

 

 

執行下面命令,將編譯好的庫文件拷貝到第一步指定的目錄make install如下圖所示在當前目錄下的__install 目錄下生成了頭文件和庫文件:

 

 

 

 

include 下文件在編譯程序的時候需要指定該 include 的路徑。而 lib 下在程序運行時會

用到,需要將 lib 下所有文件包括文件夾拷貝到開發板/lib 文件夾中。

 

2.2 移植libnl

libnl 是為了方便應用程序使用 netlink 接口而開發的一個庫。這個庫為原始 netlink 消息

傳遞以及不同的 netlink family 專用接口提供了一個統一的接口。進入目錄“libnl-1.1.4/”,如下圖所示。

 

 

 

 

 

 

執行下面的指令,配置編譯架構。

./configure --prefix=$(pwd)/__install --enable-shared --enable-static

其中--prefix=$(pwd)/__install 指定了編譯出來的庫存放的路徑,一般將其放在當前目錄

下的__install 目錄下,執行結果如下圖所示。

 

 

 

 

 

 

執行下面的命令,編譯庫

make CC=/usr/local/arm/4.3.2/bin/arm-none-linux-gnueabi-gcc

完成后如下圖所示。

 

 

 

 

 

 

使用命令make install, 將編譯好的庫文件拷貝到指定目錄。在當前目錄下的__install

目錄下生成了頭文件和庫文件 ,如下圖所示。

 

 

 

 

 

 

 

include 目錄下文件在編譯程序的時候會用到,而 lib 下在程序運行時會用到。故在移植

hostapd 的時候需要指定 include 的路徑,需要將 lib 目錄下所有文件包括文件夾拷貝到開發

板中的/lib 文件夾中。

 

 

2.3 移植wpa_supplicant

wpa_supplicant 是作為 hostap 的一部分,它位於 hostap 目錄中。使用命令“cd

hostap/wpa_supplicant/”進入 wpa_supplicant 目錄,如下圖所示。

 

 

 

 

 

 

使用命令cp defconfig .config”復制一份默認的配置文件。然后使用命令“vim

Makefile”修改 Makefile,如下圖所示。

 

 

 

 

 

 

ifndef CC CC=gcc  endif  修改為

CFLAGS += -I../../libnl-1.1.4/__install/include/

CFLAGS += -I../../openssl-1.1.0g/__install/include/

LIBS += -L../../libnl-1.1.4/__install/lib/

LIBS += -L../../openssl-1.1.0g/__install/lib/

#ifndef CC

CC=/usr/local/arm/4.3.2/bin/arm-none-linux-gnueabi-gcc

#endif

注意,CC 路徑為自己環境中的交叉工具鏈路徑。

修改完成后 Makefile如下圖所示。

 

 

 

 

 

接下來使用命令make”編譯,結果如下圖所示。

 

 

 

 

 

此時在當前目錄下出現了wpa_supplicant”工具,如下圖所示。

 

 

 

 

將編譯好的 wpa_supplicant 工具拷貝到開發板上的“/usr/sbin”目錄即可。

 

3 直接拷貝

跳過編譯步驟,可以直接拷貝壓縮包中 lib 文件夾中的庫文件到開發板的/lib 目錄,以及

復制 sbin 文件夾中的文件到開發板的/usr/sbin 目錄,復制 6620_launcher到開發板的

/usr/bin 目錄下,復制 wpa_driver 中的所有文件到/lib/modules/mt6620/目錄,以及復制

腳本 make_mt6620.sh 到開發板的任意目錄,然后進行下一章節的操作。

 

4 開發板連接WiFi

在開發板執行下面的指令,更新 WiFi開機啟動腳本。

 

cat << EOF > /etc/init.d/mt6620

#!/bin/sh

#support MT6620 WIFI Module

mknod /dev/stpwmt c 190 0

mknod /dev/stpgps c 191 0

mknod /dev/fm c 193 0

mknod /dev/wmtWifi c 194 0

insmod /lib/modules/mt6620/mtk_hif_sdio.ko

insmod /lib/modules/mt6620/mtk_stp_wmt.ko

insmod /lib/modules/mt6620/mtk_stp_uart.ko

insmod /lib/modules/mt6620/mtk_stp_gps.ko

#insmod /lib/modules/mt6620/hci_stp.ko

#insmod /lib/modules/mt6620/mt6620_fm_drv.ko

#insmod /lib/modules/mt6620/mtk_fm_priv.ko

insmod /lib/modules/mt6620/mtk_wmt_wifi.ko WIFI_major=194

insmod /lib/modules/mt6620/wlan_mt6620.ko

 

chmod 0666 /dev/stpwmt

chmod 0666 /dev/stpgps

chmod 0666 /dev/fm

chmod 0666 /dev/wmtWifi

chmod 0666 /dev/gps

chmod 0660 /dev/ttySAC2

/usr/bin/6620_launcher -m 1 -b 921600 -n /etc/firmware/mt6620_patch_hdr.bin -d /dev/ttySAC2 &

sleep 4

echo 1 > /dev/wmtWifi

wpa_supplicant -iwlan0 -Dnl80211 -c/etc/wpa_supplicant.conf &

sleep 3

udhcpc -i wlan0 >/var/udhcpc_log &

EOF

粘貼到開發板然后按回車,如下圖所示

 

 

 

 

 

 

 

 

或者在開發板上執行我們提供的make_mt6620.sh”,起到同樣效果。

然后執行以下指令

wpa_passphrase XXX "YYY" > /etc/wpa_supplicant.conf

其中 XXX 代表 WiF網絡名稱, YYY 代表 WPA-PSK 或者 WPA2-PSK加密的密碼。然后

執行命令./etc/init.d/mt6620 ”即可連接到 WiFi 網絡,配置時間大約 30 秒左右。

 

 

 

 

 

 

可以看到 wlan0 成功分配到 IP 地址,關閉了 eth0,執行命令“ping www.baidu.com -c 4,可以看到可以通過 WiFi 連通互聯網,如下圖所示。

 

 

 

 

 

 

本文轉自迅為論壇:http://www.topeetboard.com

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM