第五季1:AP模式USB-WIFI网卡移植与测试
以下內(nèi)容源于朱有鵬課程,如有侵權(quán),請(qǐng)告知?jiǎng)h除。
1、WIFI接口
- WIFI模塊與SoC的接口有多種,如SDIO、USB、串口(低帶寬)等。
2、AP、STA
- AP(Access Poin,接入點(diǎn)t),一般指(有線或者無線的)路由器。
- STA(Station,站點(diǎn)),指的是連接到路由器的終端設(shè)備,比如手機(jī)筆記本等等。
3、USB-WIFI網(wǎng)卡選作AP模式、STA模式
- USB-WIFI的模式選項(xiàng),就是讓你選擇,你這(擁有USB-WIFI模塊的)設(shè)備,是作為站點(diǎn)還是作為接入點(diǎn)。如果它作為站點(diǎn),那么它聯(lián)網(wǎng)的時(shí)候就會(huì)去尋找一個(gè)接入點(diǎn)來接入網(wǎng)絡(luò)。如果是作為接入點(diǎn),那么局域網(wǎng)中其他設(shè)備在聯(lián)網(wǎng)的時(shí)候會(huì)接入它。
4、移植起點(diǎn)
(1)前置課程《USB-WIFI網(wǎng)卡在x210板子上的移植》
- 此課程見https://blog.csdn.net/oqqHuTu12345678/article/details/78945699
- 此課程中USB-WIFI網(wǎng)卡僅作station模式,它接入房間里的無線路由器來上網(wǎng)。
(2)USB WIFI網(wǎng)卡官方提供的驅(qū)動(dòng)
(3)基于海思SDK中已經(jīng)編譯過的內(nèi)核源碼樹來編譯驅(qū)動(dòng)
- 因?yàn)?span style="color:#fe2c24;">板載系統(tǒng)的內(nèi)核和用來編譯驅(qū)動(dòng)的內(nèi)核源碼樹必須對(duì)應(yīng)一致,這樣編譯出來的驅(qū)動(dòng)才能在板載系統(tǒng)上安裝與工作。
5、本課程內(nèi)容
- HI3518E+WIFI做AP,PC做STA,實(shí)現(xiàn)局域網(wǎng)內(nèi)ortp視頻傳輸
- HI2518E+WIFI做STA,PC做STA,外部路由器做AP,實(shí)現(xiàn)局域網(wǎng)內(nèi)ortp視頻傳
- HI2518E+WIFI做STA,PC做STA,外部路由器做AP,實(shí)現(xiàn)全程無線調(diào)試(不用有線網(wǎng)卡)
6、USB-WIFI驅(qū)動(dòng)源碼
- 網(wǎng)盤資源【提取碼: p3e7】
- 將Makefile替換掉壓縮包里的Makefile。
7、假設(shè)的IP地址
| 無線 | 有線 | |
| windows | 192.168.0.30 | 192.168.1.20 |
| 開發(fā)板 | 192.168.0.100 | ?192.168.1.10 |
| ubuntu | 192.168.0.50 | 192.168.1.141 |
? ??
一、AP模式USB-WIFI網(wǎng)卡移植與測(cè)試
1、在虛擬機(jī)中合適目錄解壓
2、修改移植工作很簡(jiǎn)單
(1)在include/rtmp_def.h中1627行左右,修改網(wǎng)絡(luò)名始終為:wlan。
- 但其實(shí)不改也行,只是將來網(wǎng)絡(luò)名字不叫wlan而是叫ra。
(2)將提供的Makefile替換掉原來的Makefile;
- 注意路徑問題,如果你自己的內(nèi)核源碼樹的路徑不是所提供的Makefile中規(guī)定的,則需要將所提供的Makefile里的內(nèi)核源碼樹的路徑修改下。
(3)此時(shí)執(zhí)行make時(shí)報(bào)錯(cuò)(注意分析錯(cuò)誤的過程,挺受啟發(fā)的)。
- 需要在./os/linux/config.mk中添加EXTRA_FLAGS;(即添加1044~1046所示的內(nèi)容)
- 報(bào)錯(cuò)原因是找不到某些頭文件,但實(shí)際上在include目錄中有這些頭文件,為何還是找不到呢?在Make文件中有下面一句,即包含配置文件config.mk,進(jìn)入到config.mk文件中查看,發(fā)現(xiàn)是flag的問題。因此要添加。
(4)執(zhí)行make時(shí)依然出錯(cuò),原因是缺少autoconf.h文件。
- 海思SDK直接解壓后得到的kernel中并沒有包含此文件,因?yàn)?#xff08;猜想的)在執(zhí)行make distclean時(shí)刪除了此文件。解決方法是重新單獨(dú)編譯kernel,可以獲得此文件。
- 解釋見https://www.cnblogs.com/Suzkfly/p/11763948.html
(5)修改Makefile。
- 因?yàn)镸akefile文件規(guī)定將得到xx.ko文件放在/tftpboot中,但我們想用NFS將驅(qū)動(dòng)拷貝到板載系統(tǒng),因此修改Makefile,使其將生成的ko文件放到/root/all_qianrushi/rootfs/hisrootfs中。
(6)執(zhí)行make。
- 生成的驅(qū)動(dòng)是./os/linux/*.o所示的文件(主要mt7601Uap.ko文件)。
- /root/all_qianrushi/rootfs/hisrootfs中也有一份(即mt7601Uap.ko)。
3、部署USB-WIFI驅(qū)動(dòng)使之工作為AP
(1)確認(rèn)模塊被識(shí)別。
- 先lsusb,然后插入U(xiǎn)SB WIFI模塊,再lsusb,確認(rèn)模塊被識(shí)別了
(2)在開發(fā)板中部署 /etc/Wireless/RT2870AP/RT2870AP.dat,并修改以下幾個(gè)配置。
此配置文件在虛擬機(jī)的源碼中,將之拷貝到板載目錄/etc/Wireless/RT2870AP/(板載系統(tǒng)無此目錄而需要自己創(chuàng)建)并作修改。
- SSID=WIFI_XJH(此名字是在pc機(jī)上看到的wifi名字)?
- AuthMode=WPA2PSK(加密方式)
- EncrypType=TKIP;AES
- WPAPSK=123456789(這個(gè)是密碼)
(3)insmod mt7601Uap.ko安裝USB WIFI驅(qū)動(dòng)模塊
(4)ifconfig -a看是否有wlan0
- 如果只ifconfig命令,只能看到打開狀態(tài)下的網(wǎng)卡。所以用ifconfig -a
(5)ifconfig wlan0 up, ifconfig wlan0 192.168.0.100來啟動(dòng)wlan0并設(shè)置其IP。
(6)ifconfig查看,確認(rèn)wlan0工作正常
(7)用PC或手機(jī)的WIFI搜索是否有一個(gè)名為:MT7601AP_WPA的網(wǎng)絡(luò)了,有了就成功了
(8)給PC強(qiáng)制分配靜態(tài)IP
設(shè)置無線網(wǎng)卡的IP為:192.168.0.30
設(shè)置有線網(wǎng)卡的IP為:192.168.1.20
4、測(cè)試用例準(zhǔn)備
(1)在ORTP版本的sample中,在/common/sample_common_venc.c中,修改LOCAL_HOST_IP為192.168.0.30
(2)在sample/venc/下執(zhí)行make clean,再執(zhí)行make,得到sample_venc。
這步居然出現(xiàn)了問題,折騰大半天死活得不到sample_venc文件。
1)首先make clean和make的時(shí)候,出現(xiàn)一個(gè)提示說缺少文件。
ls: cannot access ‘./hiwork/osdrvhi3518e.C01’: No such file or directory
由于編譯得不到sample_venc文件,我以為是缺少該文件導(dǎo)致的。復(fù)制粘貼上網(wǎng)查詢,有人說不影響編譯結(jié)果的,的確如此,但得不到我需要的sample_venc文件,只得到sample_venc.o文件。
與我一樣有強(qiáng)迫癥的網(wǎng)友提供了方法:https://blog.csdn.net/PecoHe/article/details/89528018,即修改mpp目錄下的那個(gè)Makefile.param,如圖注釋掉部分代碼。
2)經(jīng)過上面步驟后,執(zhí)行make clean 和make時(shí)不再提示缺少文件,而且也得到了想要的文件。但將其放在板載系統(tǒng)上運(yùn)行時(shí)出現(xiàn)下面圖片所示的錯(cuò)誤。
根據(jù)提示是初始化失敗了。為何會(huì)失敗呢?我只是在sample_venc.c 修改了通道數(shù)目為1,然后在common/sample_common_venc.c中修改了主機(jī)IP,而之前的RTP傳輸視頻實(shí)驗(yàn)是成功的,對(duì)比之下,這次只是修改了主機(jī)IP,為何就出錯(cuò)了呢?我回到之前的實(shí)驗(yàn),發(fā)現(xiàn)自己缺失一個(gè)步驟,這個(gè)步驟在之前的RTP傳輸視頻實(shí)驗(yàn)中我做過了,因此之前的實(shí)驗(yàn)可以成功,但是因?yàn)槲以?jīng)重新執(zhí)行過./sdk.cleanup和./sdk.unpack,所以那步驟的修改丟失了,而這次我修改了其他內(nèi)容而唯獨(dú)忘記這個(gè)步驟,因此出錯(cuò)。步驟是:由sample目錄下的readme的第三點(diǎn)可知,需要對(duì)sample目錄下的Makefile.param進(jìn)行修改。如圖箭頭所示。
這兩個(gè)參數(shù)的值會(huì)影響其他參數(shù),從而影響結(jié)果。
這番折騰花費(fèi)我蠻多時(shí)間的,只因?yàn)槿笔б粋€(gè)修改步驟,得到教訓(xùn):做實(shí)驗(yàn)時(shí),如果沒有沿用之前的設(shè)置,而是新建立項(xiàng)目?jī)?nèi)容時(shí),要注意新舊文件內(nèi)容對(duì)比,注意步驟是否完成。
(3)復(fù)制得到的sample_venc到/root/all_qianrushi/rootfs/hisrootfs。
5、測(cè)試實(shí)驗(yàn)
(1)開發(fā)板端:cp /mnt/sample_venc /home/,然后cd /home
- 拔掉網(wǎng)線后不能再通過/mnt訪問虛擬機(jī)的內(nèi)容,所以要將用到的文件拷貝到板載系統(tǒng)中。
(2)拔掉網(wǎng)線
- 證明是無線傳輸
(3)PC端WIFI連接WIFI-XJH,輸入密碼123456789
(4)PC端設(shè)置無線網(wǎng)絡(luò)的靜態(tài)IP地址為:192.168.0.30
(5)PC端cmd去ping 192.168.0.100,或者反過來開發(fā)板端ping PC的無線IP
- 開發(fā)板ping PC端的時(shí)候,記得關(guān)掉PC端的防火墻(在cmd輸入control選擇關(guān)閉),否則ping不通的。
(6)開發(fā)板端執(zhí)行 ./sample_venc
(7)PC端打開VLC,使用第3季中的sdp配置,注意修改c=IN IP4 192.168.0.100,就能播放了。
總結(jié)
以上是生活随笔為你收集整理的第五季1:AP模式USB-WIFI网卡移植与测试的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: cnnvd爬取漏洞信息
- 下一篇: vivo android 刷机教程,vi