Ubuntu20.04安裝無線網(wǎng)卡驅(qū)動教程
????????因為目前能買到的網(wǎng)卡大部分都是免驅(qū)網(wǎng)卡,windows上可以即插即用。但是在ubuntu上免驅(qū)網(wǎng)卡仍然需要裝驅(qū)動,因此需要自己到github上下載別人寫好的驅(qū)動,然后在本地系統(tǒng)上進行編譯。本人在arm64平臺(樹莓派4b)和x86 64(intel_nuc)上都安裝了Ubuntu20.04系統(tǒng)。使用的無線網(wǎng)卡是mercury 的免驅(qū)網(wǎng)卡? 如果用的其他品牌的無線網(wǎng)卡驅(qū)動,可以到相應的github上找。
????????? 不管是arm平臺還是x86 都可以按如下步驟操作,不過需要提前安裝gcc編譯器,且對內(nèi)核進行提前編譯,否則會報錯? 或者編譯時缺失庫文件。
????????首先無線網(wǎng)卡插到主機上,使用 lsusb指令? ?在列出的usb設備中看到類似如下字樣則識別到網(wǎng)卡。
????BUS 001 Device 007:ID 0bda:c811 Realtek Semiconductor Corp
????????而輸入 lsusb -tv? ?發(fā)現(xiàn)該設備 drive=? ? ? ,則缺失驅(qū)動。那么我們就可以進行驅(qū)動安裝了
我使用的驅(qū)動包是用dkms 進行腳本編譯的 ,因此需要先安裝dkms編譯環(huán)境
????????sudo apt update?
? ?sudo apt install build-essential git dkms
然后去github上下載驅(qū)動包,可以使用git clone指令進行倉庫克隆 也可以直接下載zip壓縮包
? ?
git clone https://github.com/brektrou/rtl8821CU.git
進入下載的安裝包倉庫中執(zhí)行腳本編譯
? ?chmod +x dkms-install.sh?
? ? sudo ./dkms-install.sh
編譯完成后會生成驅(qū)動的可執(zhí)行文件將其注冊到驅(qū)動列表即可?
? ? sudo modprobe 8821cu
此時? lsusb -tv? 指令查看網(wǎng)卡驅(qū)動情況? ? ?如果? drive = rtl8821cu? 則成功 (其他驅(qū)動則會顯示相應驅(qū)動的名字)
后記? ? ?
可能報錯情況
1.modprobe: ERROR: could not insert '8821cu': exec format error
注冊驅(qū)動時出現(xiàn)這個錯誤? ?,我認為是內(nèi)核版本問題? 我在遇到這個問題的時候使用的編譯內(nèi)核版本是 linux5.1? ?但是? 我在樹莓派上成功編譯并注冊時 樹莓派的linux內(nèi)核版本是5.4? 因此我將系統(tǒng)內(nèi)核進行升級到5.4(注意只升級了內(nèi)核,沒升級系統(tǒng))
? ?內(nèi)核升級過程:
?uname -r? ? ?#查看內(nèi)核版本
apt-get install linux-headers-5.4.0-144-generic linux-image-5.4.0-144-generic? ? ?#安裝5.4內(nèi)核
grub-mkconfig -o /boot/efi/EFI/ubuntu/grub.cfg??#?更新啟動引導文件? 將5.4內(nèi)核加入引導列表
reboot? ? #重啟 在boot界面?選擇5.4內(nèi)核啟動
重啟后將之前編譯的文件刪除? ? ?sudo? make clean
然后重啟編譯即可? ? 然后插入? ? ??
如果還是不行則回到5.1內(nèi)核 進行插入? ?(啟動時你會看到兩個內(nèi)核版本可以選擇)
2.缺失內(nèi)核頭文件
進入內(nèi)核文件夾? make? 重啟編譯即可