欢迎光临散文网 会员登陆 & 注册

Ubuntu20.04安装无线网卡驱动教程

2023-07-19 22:24 作者:碗仔粿  | 我要投稿

        因为目前能买到的网卡大部分都是免驱网卡,windows上可以即插即用。但是在ubuntu上免驱网卡仍然需要装驱动,因此需要自己到github上下载别人写好的驱动,然后在本地系统上进行编译。本人在arm64平台(树莓派4b)和x86 64(intel_nuc)上都安装了Ubuntu20.04系统。使用的无线网卡是mercury 的免驱网卡  如果用的其他品牌的无线网卡驱动,可以到相应的github上找。

          不管是arm平台还是x86 都可以按如下步骤操作,不过需要提前安装gcc编译器,且对内核进行提前编译,否则会报错  或者编译时缺失库文件。

        首先无线网卡插到主机上,使用 lsusb指令   在列出的usb设备中看到类似如下字样则识别到网卡。

    BUS 001 Device 007:ID 0bda:c811 Realtek Semiconductor Corp

        而输入 lsusb -tv   发现该设备 drive=      ,则缺失驱动。那么我们就可以进行驱动安装了

我使用的驱动包是用dkms 进行脚本编译的 ,因此需要先安装dkms编译环境

        sudo apt update 

   sudo apt install build-essential git dkms

然后去github上下载驱动包,可以使用git clone指令进行仓库克隆 也可以直接下载zip压缩包

   git clone https://github.com/brektrou/rtl8821CU.git

进入下载的安装包仓库中执行脚本编译

   chmod +x dkms-install.sh 

    sudo ./dkms-install.sh

编译完成后会生成驱动的可执行文件将其注册到驱动列表即可 

    sudo modprobe 8821cu

此时  lsusb -tv  指令查看网卡驱动情况     如果  drive = rtl8821cu  则成功 (其他驱动则会显示相应驱动的名字)


后记     

可能报错情况

1.modprobe: ERROR: could not insert '8821cu': exec format error

注册驱动时出现这个错误   ,我认为是内核版本问题  我在遇到这个问题的时候使用的编译内核版本是 linux5.1   但是  我在树莓派上成功编译并注册时 树莓派的linux内核版本是5.4  因此我将系统内核进行升级到5.4(注意只升级了内核,没升级系统)

   内核升级过程:

 uname -r     #查看内核版本

apt-get install linux-headers-5.4.0-144-generic linux-image-5.4.0-144-generic     #安装5.4内核

grub-mkconfig -o /boot/efi/EFI/ubuntu/grub.cfg  # 更新启动引导文件  将5.4内核加入引导列表

reboot    #重启 在boot界面 选择5.4内核启动

重启后将之前编译的文件删除     sudo  make clean

然后重启编译即可    然后插入      

如果还是不行则回到5.1内核 进行插入   (启动时你会看到两个内核版本可以选择)


2.缺失内核头文件

进入内核文件夹  make  重启编译即可






Ubuntu20.04安装无线网卡驱动教程的评论 (共 条)

分享到微博请遵守国家法律