最近有個項目,需要在 Ubuntu20.04 LTS 下開發,首先是安裝 Linux,我們可以從下面的網址下載:
- https://releases.ubuntu.com/20.04/
本以為一切順利,結果剛開始就給我整不會了。我的電腦是聯想設計師GeekPro7,優盤啟動鏡像用的是ventoy,從優盤啟動直接報錯“ERROR Verification failed: (0x1A) Security Violation”,無法進入鏡像選擇頁面。可以參考下面的方法解決。
- https://www.mculoop.com/thread-201-1-1.html
好不容易裝好系統,我的環境沒有有線網,只有無線網。結果發現并沒有 WiFi 選項。哦豁,居然沒有網卡驅動。沒辦法,只能離線安裝無線網卡驅動,可坑爹的是驅動還有依賴,依賴要離線安裝。真是沒苦硬吃,沒有困難創造困難。
安裝無線網卡驅動
安裝無線網卡驅動按以下步驟執行。
1)確定是網卡驅動的問題
首先我們用顯示網絡硬件配置信息的命令查看下網卡信息:
~$ sudo lshw -c network*-network UNCLAIMED description: Network controllerproduct: Realtek Semiconductor Co., Ltd.vendor: Realtek Semiconductor Co., Ltd.physical id: 0bus info: pci@0000:03:00.0version: 00width: 64 bitsclock: 33MHzcapabilities: cap_listconfiguration: latency=0resources: ioport:2000(size=256) memory:80500000-805fffff*-networkdescription: Ethernet interfacephysical id: bbus info: usb@1:1logical name: enxeaa730017396serial: ea:a7:30:01:73:96capabilities: ethernet physicalconfiguration: broadcast=yes driver=ipheth driverversion=5.15.0-35-generic ip=172.20.10.8 link=yes multicast=yes
命令列出了兩個網卡的信息,其中第一個就是我們的無線網卡, *-network
后面有個 UNCLAIMED
就表示雖然有硬件設備,但是沒有找到驅動。
這里要注意我們有兩個網卡,無線網卡沒有驅動,有線網卡有驅動。所以在裝驅動的時候千萬不要裝錯了。
2)查看網卡型號
接下來我們用查看PCI設備的命令產看網卡型號:
~$ lspci -nn | grep -i net
03:00.0 Network controller [0280]: Realtek Semiconductor Co., Ltd. Device [10ec:b852]
04:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8125 2.5GbE Controller [10ec:8125] (rev 05)
我們的兩個網卡都是 Realtek 的,其中第一個是無線網卡,它的型號是 [10ec:b852]
,但這并不是它的真正型號,我們打開下面的網址。
- https://admin.pci-ids.ucw.cz/mods/PC/10de?action=help?help=pci
在下面的輸入框中輸入方括號內的字符串,然會回車(或則點擊”jump”)。
然后我們會跳轉到詳情頁,可以看到它的真正型號是 RTL8852BE
。
3)下載驅動源碼
從GitHub上下載驅動源碼:
- https://github.com/HRex39/rtl8852be
下載完以后用優盤考到Ubuntu機器上,我們需要在Ubuntu上編譯源碼。
4)安裝依賴
要編譯啟動源碼需要依賴 gcc
, cc
和 make
,剛裝的系統是沒有這些我,我們需要手動安裝它們。我是參考下面的內容安裝的這些依賴,只需要安裝 gcc 和 make 就可以了。
- https://zhuanlan.zhihu.com/p/466440088
- https://pan.baidu.com/s/1TKqwDiSNEtNyZVbuLqkfGg?pwd=qvca
gcc 目錄下有一個 do.sh
腳本,可以用它一把梭,不用自己一個一個安裝,但是要加上 sudo
。
5)安裝驅動
安裝驅動其實就是按照驅動源碼的 ReadMe 安裝就好了。解壓之后進入源碼目錄執行下面三條命令:
make -j8
sudo make install
sudo modprobe 8852be
最后一行可能會報權限錯誤,這時我們需要進入BIOS 把 secure boot 選項關掉,如果 BIOS 是中文界面就找“安全啟動”。我這臺電腦要找這個選項還挺麻煩的,有兩種方式可以找到,注意我在裝 Ubuntu 時選擇的是裝雙系統。
第一種方式是開機按 F2 進入 Boot 以后選擇“疑難解答”,然后選擇”高級選項”,再選擇”UEFI固件設置”。
第二種方式是啟動Ubuntu,進入系統之前有個選擇頁面,按下方向鍵選擇 UEFI Firmware Setting 可以進入。
有線網卡驅動安裝
如果不幸需要離線安裝有線網卡驅動,可以使用下面的驅動:
- https://github.com/awesometic/realtek-r8125-dkms
參考 ReadMe 安裝即可,安裝依賴的話和前面是一樣的。運行 dkms-install.sh
腳本安裝 DKMS 時可能會 secure boot 的錯,同樣是把”安全啟動”關掉就可以了。
修復
前面安裝 gcc
、 make
等依賴時使用的安裝包版本有點低,在安裝的時候就會看到很多庫版本降級的日志,在連上網之后,我們要將這些庫版本升級回來,否則用 apt-install
安裝軟件的時候會報錯。執行下面的命令即可。
~$ sudo apt --fix-broken install
參考文檔
[1] https://askubuntu.com/questions/1412450/network-driver-for-realtek-10ecb852 👍
[2] https://blog.csdn.net/FrankXCR/article/details/135910594
[3] https://blog.csdn.net/shuziyiminhuyidao/article/details/128225826
[4] https://www.cnblogs.com/xuyaowen/p/linux-secure-boot-disable.html
[5] https://zhuanlan.zhihu.com/p/466440088