Centos7VMware虛擬機最小化安裝後,安裝Tenda U12 USB無線網卡驅動

来源:https://www.cnblogs.com/feiquan/archive/2018/07/19/9333719.html
-Advertisement-
Play Games

參考網址:https://blog.csdn.net/heyuqian_csdn/article/details/78805029 ...


前幾天買下了Tenda U12 USB 無線網卡 ,想連接上無線玩玩,可惜買下折騰了一周才解決他它驅動問題,前後在VMware上裝了十多次,測試了好幾個內核版本才搞定,好了廢話不多說,分享下我安裝過程的經驗:

  原本是在CentOS7 最小化後安裝驅動的,沒想到遇到這麼多問題,只能現在圖形化界面先進行調試,完了再最小化安裝。

安裝環境:

  U12驅動官方下載:http://wifi.tenda.com.cn/

 

  我的CentOS7內核:

3.10.0-327.el7.x86_64(滿足2.6.18~4.4內核)

錯誤:

直接執行安裝目錄下的install時,在執行到make命令時報錯:

  由於字數限制,錯誤的詳細信息:鏈接https://pan.baidu.com/s/1DQsJyRuLPDxlwBLc2S39Aw 密碼:tcrj

關鍵錯誤信息:

/root/U12_linux_v5.1.5_19247.20160830/driver/rtl8812AU_linux_v5.1.5_19247.20160830/os_dep/linux/ioctl_cfg80211.c:87:13: 錯誤:‘IEEE80211_BAND_2GHZ’未聲明(不在函數內)
   .band   = IEEE80211_BAND_2GHZ,  \
             ^
/root/U12_linux_v5.1.5_19247.20160830/driver/rtl8812AU_linux_v5.1.5_19247.20160830/os_dep/linux/ioctl_cfg80211.c:145:2: 附註:in expansion of macro ‘CHAN2G’
  CHAN2G(1, 2412, 0),
  ^
/root/U12_linux_v5.1.5_19247.20160830/driver/rtl8812AU_linux_v5.1.5_19247.20160830/os_dep/linux/ioctl_cfg80211.c:96:13: 錯誤:‘IEEE80211_BAND_5GHZ’未聲明(不在函數內)
   .band   = IEEE80211_BAND_5GHZ,  \
             ^
/root/U12_linux_v5.1.5_19247.20160830/driver/rtl8812AU_linux_v5.1.5_19247.20160830/os_dep/linux/ioctl_cfg80211.c:162:2: 附註:in expansion of macro ‘CHAN5G’
  CHAN5G(34, 0),  CHAN5G(36, 0),
  ^
/root/U12_linux_v5.1.5_19247.20160830/driver/rtl8812AU_linux_v5.1.5_19247.20160830/os_dep/linux/ioctl_cfg80211.c:162:2: 錯誤:初始值設定元素不是常量
View Code

大意就是說:

  編譯時報錯,IEEE80211_BAND_2GHZ未定義,如之前分析,這是由於U12基於linux無線框架,需要內核中包含cfg80211和mac80211模塊,所以需要重新編譯內核。   解決辦法: 1.下載驅動和一會要編譯的內核(我這裡選擇的是4.1.8):   驅動下載:http://wifi.tenda.com.cn/     內核下載:https://mirrors.edge.kernel.org/pub/linux/kernel/v4.x/   

  1.1確保你的網卡已經插上並識別:

  如果你數最小化安裝,請先註冊lsusb命令

yum install usbutils

  然後使用lsusb命令:

lsusb

  這個就是TendaU12的設備信息:

Bus 001 : 指明設備連接到哪(哪條匯流排)
Device 002 : 表明這是連接到匯流排上的第二台設備
ID : 設備的ID
Broadcom Corp. Bluetooth Controller :生產商名字和設備名

 

2.編譯內核:

  在編譯之前,如果你是最小化安裝,你需要先安裝gcc,bc 編譯器

yum install gcc*,bc -y

  2.1 解壓內核到/usr/src/kernels/

tar -zxvf linux-4.1.8.tar.gz -C /usr/src/kernels/

  2.2 進入解壓的/usr/src/kernels/linux-4.1.8下,拷貝原有的配置文件

cp /boot/config-3.10.0-327.el7.x86_64  .config

  2.3 使用make menuconfig時檢查下cfg80211和mac80211是否有編譯到

make menuconfig

  這裡可能會報錯:

In file included from scripts/kconfig/lxdialog/checklist.c:24:0:

scripts/kconfig/lxdialog/dialog.h:31:20: fatal error: curses.h: 沒有那個文件或目錄

 #include CURSES_LOC

                    ^

compilation terminated.

make[2]: *** [scripts/kconfig/lxdialog/checklist.o] 錯誤 1

make[1]: *** [menuconfig] 錯誤 2

make: *** [menuconfig] 錯誤 2
View Code

 這是因為CentOS7系統中缺少一個套件 ncurses-devel

yum install ncurses-devel -y

  註冊後,重新執行進入圖形化界面:

  在“networking support”-》“wireless”下。如果沒有按下“M”表示編譯成模塊,然後保存。如果已經有了這兩個模塊也要保存,否則接下來make時,沒法編譯。

  2.4 開始編譯內核 (時間比較長大概30多分鐘左右,看會電影啥的)

make ; make modules_install ; make install ;

  2.5 設置預設啟動內核為4.1.8

查看啟動項 cat /boot/grub2/grub.cfg | grep 3.10.69
設置預設啟動項 grub2-set-default "CentOS Linux (3.10.69) 7 (Core)"
查看預設啟動項 grub2-editenv list
生成配置 grub2-mkconfig -o /boot/grub2/grub.cfg

  2.6 重啟系統,安裝相關模塊,並編譯無線驅動

insmod /lib/modules/4.1.8/kernel/net/rfkill/rfkill.ko
insmod /lib/modules/4.1.8/kernel/net/wireless/cfg80211.ko 
insmod
/lib/modules/4.1.8/kernel/net/mac80211/mac80211.ko
insmod 8812au.ko

  先註冊前3個模塊,之後的8812au.ko 模塊如果沒有,在執行驅動下的install.sh文件時會自動註冊。

3.安裝驅動

這時候如果你直接執行install.sh文件,會沒有上面的錯誤,但是結尾還會有2個errors .這是它在驅動中沒有添加網卡的ID值。

  3.1 添加網卡ID

  選用任意編輯器,打開os_dep/linux/usb_intf.c,在其中加入上面lsusb結果:

  找到CONFIG_8812A, 在下麵加入如圖所示欄位。如果你們的lsusb結果與此不同,請加入自己lsusb看到的vendor id 和 device id。

  例如,我這裡lsusb會發現插上usb網卡後出現 ID 2604:0012,這就是對應的vendor id 和device id. 把這個id插入usb_intf.c

   3.2執行網卡驅動 install.sh或者直接在驅動目錄下執行make ;make install;

  如果你要是執行./install.sh 那麼,你需要將原始的驅動包刪除,然後將修改後的文件重新打包,但是文件名要相同。因為在install.sh 中會對這個驅動壓縮包解壓,解壓後會將你就修改的文件又替換為原文件。

  刪除後重行打包:

  打包:

./install.sh

 

 

  如果你直接在驅動目錄下執行

make ;make install;

  則沒有上述重行打包要求

 

  3.3 如果在執行install.sh後還有報錯的信息,那麼不用管,它之後又重行註冊了8812au.ko。

  此時,如果你是圖形化界面,那麼在網路管理中就會有wifi的標識,執行ifconfig可以看到自己網卡的名字;

  如果你是最小化安裝時,則建議先安裝第5步,之後使用iwconfig查看:

 

4.wpa_supplicant配置

  在執行完上述的步驟後,你如果點擊你要的熱點後,並輸入正確的密碼的密碼顯示無法連接,那麼你就需要進行wpa_supplicant配置

新建文件(如果沒有) /etc/wpa_supplicant/wpa_supplicant.conf

ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=wheel
network={
    ssid="T你要連接的wifi名"
    psk="密碼"
}

我這裡是

 

5.安裝wireless_tools

之後我們會使用iwconfig,wpa* 等命令 ,所以先註冊一下:

進入驅動目錄下的wireless_tools解壓後:

執行:

make;make install;

 6.無線掃描

  6.1先安裝工具iw:

yum install iw -y

  6.2、iw dev(非必要步驟)

查看無線網口,interface後面即為無線網口號

phy#0
   Interface wls35u1
       ifindex 3
       wdev 0x1
       addr a4:db:30:84:4b:1c
       type managed

如果連接成功會多出下麵的兩行,顯示 SSID 和通道

ssid CMCC
channel 11 (2462 MHz), width: 40 MHz, center1: 2452 MHz

  6.3、ip link set wls35u1 up(必要)

激活無線網路介面

  6.4、ip link show wls35u1(非必要步驟)

檢驗介面是否激活成功

wlp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state DOWN mode DORMANT group default qlen 1000
    link/ether 00:11:22:33:44:55 brd ff:ff:ff:ff:ff:ff 

<BROADCAST,MULTICAST,UP,LOWER_UP> 中的UP 表明該介面激活成功,後面的 state DOWN 無關緊要。

  6.5、iw wls35u1 link(非必要步驟)

查看無線網路連接情況(剛開始是沒有連接的,不用管)

  6.6、iwlist wls35u1 scan | grep SSID(如果知道 Wifi 名字,就不需要)

掃描可連接的wifi(這裡有個坑,網上好多是iw ,其實這裡應該使用 iwlist,不然沒結果)

 

7. 連接wls35ul到網路,並以daemon方式運行

  方法一:編寫配置文件

wpa_supplicant -B -i wls35u1 -c /etc/wpa_supplicant/wpa_supplicant.conf

-B Background 在後臺以daemon 運行
-i interface 
-c 配置文件

  註意:此時如果重新執行此命令,則需要使用kill命令殺死對應的wpa*進程後。然後再執行

 執行以上命令後,執行ifconfig就可以看到無線網卡,這在之前是看不到的,而且此時,U12的指示燈開始亮起,表示開始工作。

   方法二:不編寫配置文件

wpa_supplicant -B -i wls35u1 -c <(wpa_passphrase "ssid" "psk")

連接指定的SSID,將ssid 替換為實際的網路名稱,psk 替換為無線密碼,請保留引號。

 

8.ip獲取

  8.1 用dhcp 獲得 IP 分配:
  # dhclient wls35ul

  測試是否成功地從路由器獲取了ip(重要)

  #ip addr  show wls35ul

  如果分配有ip,即可上網,也可以有ping直接測試

  8.2如果你要使用靜態的IP配置,使用nmcli命令來配置(參考我的:Linux 最小化安裝後IP的配置(手動獲取靜態IP地址)

  

9. 相關命令

  關閉連接
  wpa_cli terminate
  連接狀態
  wpa_cli status

18.上網試試(有圖形化界面的試試):

 

  

 

參考網址:

  在Linux下安裝Tenda U12驅動 https://jingyan.baidu.com/article/2fb0ba40884e1500f2ec5fd3.html

  Centos7 Virtualbox虛擬機安裝Tenda U12 11AC USB無線網卡驅動  https://blog.csdn.net/heyuqian_csdn/article/details/78805029

  make menuconfig時出現 #include CURSES_LOC錯誤  https://blog.csdn.net/lvkunfeng07/article/details/51191938

  Linux 手動無線網卡 WiFi 配置 https://www.jiangmiao.org/blog/1781.html

  在 Linux 中安裝使用 lsusb 查看 USB 設備  http://www.wilf.cn/post/lsusb.html

   Linux 無線網卡配置    https://www.cnblogs.com/zhangjiankun/p/4888956.html

   CentOS 7 命令行版初次安裝網路配置  https://www.jianshu.com/p/f9e14e50a28a

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • smart qqC#開發總結: 整個開發下來其實一點都不是很難,從一開始二維碼 獲取到最終的收發消息,基本上都是模擬瀏覽器的操作。都是基於http通訊。一下就是 本次新手學習http協議的最關鍵的一個類 /// <summary> /// HTTP網路通信類 /// </summary> publi ...
  • 發送 poll包 public static void Login_PostPoll() { try { string url = "http://d1.web2.qq.com/channel/poll2"; string dat = "{\"ptwebqq\":\"#{ptwebqq}\",\"c ...
  • 首先從post一下 http://s.web2.qq.com/api/get_user_friends2 這個鏈接獲取分組categories ,好友信息 friends,info。 string url = "http://s.web2.qq.com/api/get_user_friends2"; ...
  • 一、WCF配置 1 Address 將服務端發佈地址和客戶端訪問地址都配置為https開始的安全地址。參考如下。 2 Bingding 為適應WCF自寄宿的模式,應採用WSHttpBinding作為綁定模式,並選擇Transport安全模式,此模式下支持由伺服器SSL證書保證的信息完整性、保密性、服 ...
  • 委托概述 將方法調用者和目標方法動態關聯起來,委托是一個類,所以它和類是同級的,可以通過委托來掉用方法,不要誤以為委托和方法同級的,方法只是類的成員。委托定義了方法的類型(定義委托和與之對應的方法必須具有相同的參數個數,並且類型相同,返回值類型相同),使得可以將方法當作另一個方法的參數來進行傳遞,這 ...
  • public static void Login_GetPHV() { string urldata = "{\"ptwebqq\":\"#{ptwebqq}\",\"clientid\":53999199,\"psessionid\":\"\",\"status\":\"online\"}".Re ...
  • 原文地址: "https://www.codeproject.com/Articles/57984/WPF Loading Wait Adorner" 界面遮罩 等待動畫全局顏色 等待動畫中的小圓 後臺業務代碼,添加了幾項屬性、動畫控制、小圓的位置設置 ...
  • 概念: MongoDB分片是使用多個伺服器存儲數據的方法,以支持巨大的數據存儲和對數據進行存儲 優勢: 1、減少了每個分片需啊喲處理的請求數,群集可以提高自己的存儲容量和吞吐量 2、減少了每個分片存儲的數據 三個主要組件: 如何部署MongoDB分片群集!!! 編輯mongodb1.conf配置文件 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...