hisi3559的usb無線網卡驅動(rtl8192cu)(一條龍服務:內核編譯、驅動編譯、iw等工具編譯)

来源:https://www.cnblogs.com/LuoboGan/archive/2019/02/21/10411837.html
-Advertisement-
Play Games

usb無線網卡驅動(rtl8192cu) 內核編譯、驅動編譯、iw等工具編譯 環境 板卡:hi3559av100(arm64) 交叉編譯鏈:aarch64-himix100-linux- usb無線網卡:rtl8192cu(ID 0bda:8178) 1、內核編譯 在內核中,不僅要包含相應無線驅動、 ...


usb無線網卡驅動(rtl8192cu)

內核編譯、驅動編譯、iw等工具編譯

  環境 板卡:hi3559av100(arm64) 交叉編譯鏈:aarch64-himix100-linux- usb無線網卡:rtl8192cu(ID 0bda:8178)   1、內核編譯 在內核中,不僅要包含相應無線驅動、還有包含其他一些項,否則iw等等工具無法使用; 進入內核配置:make ARCH=arm64 CROSS_COMPILE=aarch64-himix100-linux- menuconfig ① 搜索:rtl8192cu(註意依賴項); ② RNDIS的API驅動和gadget driver(https://blog.csdn.net/zhenglie110/article/details/80223167): Device Drivers —>      [*] USB support —>        <*> USB Gadget Support —>               Ethernet Gadget (with CDC Ethernet support)              [*] RNDIS support 如下圖:   ③ 內核關於wireless部分80211部分:cfg80211 wireless extension(https://blog.csdn.net/faihung/article/details/82497378) Networking support ------> Wireless-----------------> cfg80211 wireless extensions compatibility   ④ 這個不太清楚是做啥的,只是看到網上寫著(https://wenku.baidu.com/view/f2d2d7ea0975f46527d3e14b.html) Device Drivers ---------> Network device support----------- > Wireless LAN---------------------> IEEE 802.11 for Host AP (Prism2/2.5/3 and WEP/TKIP/CCMP)   2、驅動編譯 一開始在內核中沒有加③和④,以為是驅動的問題,所以找到了無線驅動源碼交叉編譯,在這個編譯過程中經歷比較痛苦,中間出了好多錯誤,但都是一開始不規範導致;除了需要驅動源代碼,還需要板卡對應內核源代碼,並且源代碼內核中一定不可以包含該驅動,否則驅動不會進行編譯; ①內核准備 .config要準備好,並且放入內核目錄下(可以看板卡對應文檔);  make ARCH=arm64 CROSS_COMPILE=aarch64-himix100-linux- menuconfig make ARCH=arm64 CROSS_COMPILE=aarch64-himix100-linux- prepare   make ARCH=arm64 CROSS_COMPILE=aarch64-himix100-linux- scripts 如果不按照這三步走,在內核編譯時可能會有以下提示錯誤:
  • asm/types.h不存在;
  • 提示警告:Module.symvers不存在;
②驅動源代碼 makefile: 增加CONFIG_PLATFORM_HISI3559 = y,改CONFIG_PLATFORM_I386_PC = n 增加: ifeq ($(CONFIG_PLATFORM_HISI3559), y) EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN ARCH := arm64 CROSS_COMPILE :=/opt/hisi-linux/x86-arm/aarch64-himix100-linux/bin/aarch64-himix100-linux- KVER := 4.9.37 #內核版本 KSRC ?= /home/deepglint/linux-4.9.37 #內核位置(該位置不要太過複雜,最好複製出來) endif 編譯:make 提示錯誤:implicit declaration of function ‘csum_ipv6_magic’ 處理:在提示該錯誤的文件中增加相應的頭文件,頭文件位置通過命令在內核中:find /home/deepglint/linux-4.9.37 -name "*" | xargs grep "csum_ipv6_magic" >> 1.txt,在1.txt中搜索頭文件,net/ip6_checksum.h,增加出現錯誤的完呢建在增加 include<net/ip6_checksum.h>   ③載入驅動: 將生成的rtl8192cu.ko複製到板卡中,使用命令:insmod rtl8192cu.ko載入;如果出現錯誤:wiless_send_event未定義錯誤,則為內核中③沒有配置;   3、iw等工具交叉編譯 主要編譯內容包含:iw、iwlist、iwconfig、dhcpd ①dhcpd 用於無線網卡連接後分配IP;(來源:https://www.cnblogs.com/helloworldtoyou/p/5457504.html)
  • 下載:ftp://roy.marples.name/pub/dhcpcd(我下載的版本是:dhcpcd-6.9.4.tar.xz)
  • 配置:./configure
  • 編譯:make CC=aarch64-himix100-linux-gcc
  • 生成:直接複製dhcpd即可使用(./dhcpd wlan0)
  ②wireless_tool(包含iwlist、iwconfig)(https://blog.csdn.net/weixin_42432281/article/details/86524808)
  • 用於掃描、連接;
  • 下載:https://hewlettpackard.github.io/wireless-tools/Tools.html,如下圖(或者:https://hewlettpackard.github.io/wireless-tools/wireless_tools.29.tar.gz)
  • 編譯:Makefile ,修改:CC = aarch64-himix100-linux-gcc AR = aarch64-himix100-linux-ar RANLIB = aarch64-himix100-linux-ranlib
  • make;
  • 將生成的命令複製過去就可以直接使用;
  ③ iw(https://blog.csdn.net/lidroid/article/details/46725675) 需要提前安裝好libnl libnl:
  • 下載:http://www.infradead.org/~tgr/libnl/files/ 我這裡選擇的是libnl-3.2.25.tar.gz
  • 配置編譯:./configure --host=aarch64-himix100-linux --prefix=$PWD/tmp 
make( 如果出現錯誤:  sudo apt-get install bison sudo apt-get install flex) make install
  • 生成:最終文件在當前目錄下的TMP;
  iw:
  • 下載:https://www.kernel.org/pub/software/network/iw/(註意下載4.0版本,其他版本沒有編譯通過)
  • export PKG_CONFIG_PATH=/home/deepglint/Hi3559AV100R001C02SPC010/iw/libnl-3.2.25/TMP/lib/pkgconfig:$PKG_CONFIG_PATH
  • 修改:NL3xFOUND := Y
  • make 便可生成iw;
  openssl(https://blog.csdn.net/shunrenwang/article/details/80440647)
  • 下載 https://www.openssl.org/(openssl-1.0.2h)
  • ./config no-asm shared --prefix=$(pwd)/__install
  • make depend
  • 修改Makefile:
將下麵 CC= gcc AR= ar $(ARFLAGS) r NM= nm 修改為 CC= aarch64-himix100-linux-gcc AR= aarch64-himix100-linux-ar $(ARFLAGS) r NM= aarch64-himix100-linux-nm   刪除-m64
  •  make clean
  •  make
  •  make install
  libnl(為編譯wpa_supplicant.conf https://blog.csdn.net/shunrenwang/article/details/80439876)
  • 下載: http://www.infradead.org/~tgr/libnl/(libnl-3.2.25.tar.gz )
  • ./configure CC=aarch64-himix100-linux-gcc --host=aarch64-himix100-linux --enable-static --enable-shared LIBS=-lpthread --prefix=$(pwd)/__install
  •  make clean
  •  make
  •  make install
    wpa_supplicant(https://blog.csdn.net/shunrenwang/article/details/80448959)
  • 下載http://w1.fi/wpa_supplicant/(wpa_supplicant-2.5.tar.gz )
  • cd wpa_supplicant-2.5/wpa_supplicant/
  • cp defconfig .config
  • 修改.config
將#CONFIG_LIBNL32=y 修改為 CONFIG_LIBNL32=y
  • 修改Makefile
增加下麵幾行(地址需要根據實際編譯的地址改變) #openssl  CFLAGS += -I/home/deepglint/8192cu/wpa_supplication/openssl-1.0.2h/__install/include/ LIBS += -L/home/deepglint/8192cu/wpa_supplication/openssl-1.0.2h/__install/lib LIBS_p += -L/home/deepglint/8192cu/wpa_supplication/openssl-1.0.2h/__install/lib #libnl CFLAGS += -I/home/deepglint/Hi3559AV100R001C02SPC010/iw/libnl-3.2.25/TMP/include/libnl3/ CFLAGS += -I/home/deepglint/Hi3559AV100R001C02SPC010/iw/libnl-3.2.25/TMP/include/ LIBS += -L/home/deepglint/Hi3559AV100R001C02SPC010/iw/libnl-3.2.25/TMP/lib/  
  •  make clean
  •  make CC=aarch64-himix100-linux-gcc(有些列印 No package 'libnl-3.0' found,可以忽略)
  wpa_supplicant使用配置: 設置配置文件:vi /etc/wpa_supplicant.conf 內容(ctrl_interface為文件夾,update_config表示wpa_cli可以更新該配置文件): update_config=1 ctrl_interface=/etc/wpa_supplicant network={     ssid="DG"     proto=WPA RSN     key_mgmt=WPA-PSK WPA-EAP     pairwise=CCMP     group=CCMP     psk="On1shiuva4" } 運行: wpa_supplicant -iwlan0 -c/etc/wpa_supplicant.conf -d &  
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1、curl -X POST “http://XXXXXXX”這種請求方式參數直接寫在URL裡面的,而不是body ...
  • 本周,運維告知部署的服務被掃描發現漏洞,涉及的軟體分別為 ,`ZooKeeper Elasticsearch`. 因為最近任務繁重,人力資源緊張,因此無法抽出更多時間調整代碼,添加許可權認證. 與軟體部署人員確認,上述三個軟體均為內網訪問,因此採用以下方式進行處理: (1) 設置訪問 地址,即僅允許同 ...
  • wc wc命令用於報告文本文件的一些統計計數,例如行數、單詞數、位元組數等。 語法如下。 --files0-from=F:這個選項幾乎沒見過有人使用,我也看不懂,因此就忽略掉了。 預設情況下顯示3個計數,從左往右分別是行數、單詞數和位元組數。 如果被統計的文件數大於1,那麼還會顯示一行總計。 可以通過選 ...
  • 內核版本:Linux 4.19 操作系統通過系統調用為運行於其上的進程提供服務。 那麼,在應用程式內,調用一個系統調用的流程是怎樣的呢? 我們以一個假設的系統調用 xyz() 為例,介紹一次系統調用的所有環節。 如上圖所示,系統調用執行的流程如下: ~~~ 1. 應用程式代碼調用 xyz(),該函數 ...
  • 一、Linux操作系統版本 二、背景:在項目中當我們配置好JDK環境變數、Tomcat環境變數,通過 使環境變數生效時,發現會報錯,如圖 三、解決 個人尚不知出現原因,只知道註釋掉下麵這兩行後即可使環境生效 ...
  • 一、LCD顯示圖像的過程如下: 其中,VSYNC和HSYNC是有寬度的,加上後如下: 參數解釋: HBP(Horizontal Back Porch)水平後沿:在每行或每列的象素數據開始輸出時要插入的象 素時鐘周期數 HFP(Horizontal Front Porch )水平前沿:在每行或每列的象 ...
  • mysql配置文件 mysql的配置文件為/etc/my.cnf 配置文件查找次序:若在多個配置文件中均有設定,則最後找到的最終生效 mysql常用配置文件參數: 參數 |說明 : |: port = 3306 | 設置監聽埠 socket = /tmp/mysql.sock | 指定套接字文件位 ...
  • 摘要 通過前面的基礎學習,本章進入最為激動的機器人自主導航的學習。在前面的學習鋪墊後,終於迎來了最大樂趣的時刻,就是賦予我們的miiboo機器人能自由行走的生命。本章將圍繞機器人SLAM建圖、導航避障、巡航、監控等內容展開。本章內容: 1.在機器人上使用感測器 2.google-cartograph ...
一周排行
    -Advertisement-
    Play Games
  • 前言 本文介紹一款使用 C# 與 WPF 開發的音頻播放器,其界面簡潔大方,操作體驗流暢。該播放器支持多種音頻格式(如 MP4、WMA、OGG、FLAC 等),並具備標記、實時歌詞顯示等功能。 另外,還支持換膚及多語言(中英文)切換。核心音頻處理採用 FFmpeg 組件,獲得了廣泛認可,目前 Git ...
  • OAuth2.0授權驗證-gitee授權碼模式 本文主要介紹如何筆者自己是如何使用gitee提供的OAuth2.0協議完成授權驗證並登錄到自己的系統,完整模式如圖 1、創建應用 打開gitee個人中心->第三方應用->創建應用 創建應用後在我的應用界面,查看已創建應用的Client ID和Clien ...
  • 解決了這個問題:《winForm下,fastReport.net 從.net framework 升級到.net5遇到的錯誤“Operation is not supported on this platform.”》 本文內容轉載自:https://www.fcnsoft.com/Home/Sho ...
  • 國內文章 WPF 從裸 Win 32 的 WM_Pointer 消息獲取觸摸點繪製筆跡 https://www.cnblogs.com/lindexi/p/18390983 本文將告訴大家如何在 WPF 裡面,接收裸 Win 32 的 WM_Pointer 消息,從消息裡面獲取觸摸點信息,使用觸摸點 ...
  • 前言 給大家推薦一個專為新零售快消行業打造了一套高效的進銷存管理系統。 系統不僅具備強大的庫存管理功能,還集成了高性能的輕量級 POS 解決方案,確保頁面載入速度極快,提供良好的用戶體驗。 項目介紹 Dorisoy.POS 是一款基於 .NET 7 和 Angular 4 開發的新零售快消進銷存管理 ...
  • ABP CLI常用的代碼分享 一、確保環境配置正確 安裝.NET CLI: ABP CLI是基於.NET Core或.NET 5/6/7等更高版本構建的,因此首先需要在你的開發環境中安裝.NET CLI。這可以通過訪問Microsoft官網下載並安裝相應版本的.NET SDK來實現。 安裝ABP ...
  • 問題 問題是這樣的:第三方的webapi,需要先調用登陸介面獲取Cookie,訪問其它介面時攜帶Cookie信息。 但使用HttpClient類調用登陸介面,返回的Headers中沒有找到Cookie信息。 分析 首先,使用Postman測試該登陸介面,正常返回Cookie信息,說明是HttpCli ...
  • 國內文章 關於.NET在中國為什麼工資低的分析 https://www.cnblogs.com/thinkingmore/p/18406244 .NET在中國開發者的薪資偏低,主要因市場需求、技術棧選擇和企業文化等因素所致。歷史上,.NET曾因微軟的閉源策略發展受限,儘管後來推出了跨平臺的.NET ...
  • 在WPF開發應用中,動畫不僅可以引起用戶的註意與興趣,而且還使軟體更加便於使用。前面幾篇文章講解了畫筆(Brush),形狀(Shape),幾何圖形(Geometry),變換(Transform)等相關內容,今天繼續講解動畫相關內容和知識點,僅供學習分享使用,如有不足之處,還請指正。 ...
  • 什麼是委托? 委托可以說是把一個方法代入另一個方法執行,相當於指向函數的指針;事件就相當於保存委托的數組; 1.實例化委托的方式: 方式1:通過new創建實例: public delegate void ShowDelegate(); 或者 public delegate string ShowDe ...