日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

第五季1:AP模式USB-WIFI网卡移植与测试

發(fā)布時(shí)間:2023/12/20 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 第五季1:AP模式USB-WIFI网卡移植与测试 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

以下內(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地址

無線有線
windows192.168.0.30192.168.1.20
開發(fā)板192.168.0.100?192.168.1.10
ubuntu192.168.0.50192.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)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。