美文网首页
在Ubuntu主机上使用USB无线网卡

在Ubuntu主机上使用USB无线网卡

作者: LittleMagic | 来源:发表于2023-04-16 02:02 被阅读0次

    前言

    上个月冲动消费攒了一台华擎DeskMini X300小主机,装了Ubuntu 22.04,用来解决M1芯片MacBook Pro上无法编译x86_64架构的StarRocks和ClickHouse的问题。

    因为没什么特殊需求所以没用Zen 3的5600G / 5700G

    当时图便宜买了不带无线网卡的版本(书房有网线,并且自带的AC3168比较emm)。但是最近想把它拿到卧室使用,又不想拆机装M.2网卡,就用闲置的USB无线网卡(型号是水星UD6H)凑合一下。

    根据设备ID寻找驱动

    将USB无线网卡插入接口,打开终端,运行lsusb命令,定位到网卡对应的那一行:

    Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
    Bus 003 Device 004: ID 0bda:c811 Realtek Semiconductor Corp. 802.11ac NIC ## 这里
    Bus 003 Device 002: ID 05e3:0608 Genesys Logic, Inc. Hub
    Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
    Bus 001 Device 002: ID 046d:c534 Logitech, Inc. Unifying Receiver
    Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    

    浏览器打开https://linux-hardware.org/,点击右上角Find Parts,输入Vendor ID和Device ID,点击Find按钮。

    点击搜索结果进入详情页,就可以找到第三方驱动在GitHub上的地址。可见网卡芯片的型号是RTL8821CU。

    注意:如果通过lsusb命令返回的设备ID(如1a2b)不能找到驱动,说明系统没有将这个设备识别成网卡,而是当成了USB存储。这就需要再次进入终端,执行usb_modeswitch命令切换设备模式:

    sudo usb_modeswitch -KW -v 0bda -p 1a2b
    

    此后设备ID会发生变化,变为无线网卡真实的设备ID(如c811),再次搜索即可。

    下载并安装驱动

    先安装必要的依赖:

    sudo apt install -y linux-headers-$(uname -r) build-essential bc git libelf-dev rfkill iw dkms
    

    拉取驱动源码:

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

    注意这个repo只对内核版本<5.19的系统有效,>=5.19则会出现编译错误。爬Issues区发现,>=5.19的内核应该使用:

    git clone https://github.com/morrownr/8821cu-20210916.git
    

    进入源码目录,执行:

    make
    sudo make install
    

    完成之后,检查驱动文件是否正确安装:

    ll /lib/modules/$(uname -r)/kernel/drivers/net/wireless/8821cu.ko
    -rw-r--r--  1 root root 4985928  4月 17 00:01 8821cu.ko
    

    然后重启主机,就会出现选择无线网络的菜单,大功告成。

    注意如果前面执行过usb_modeswitch命令,为了避免每次开机重复此步骤,需要编辑usb_modeswitch的规则文件:

    sudo vim /lib/udev/rules.d/40-usb_modeswitch.rules
    

    在最后一行前面添加:

    # Realtek 8821CU Wifi AC USB
    ATTR{idVendor}=="0bda", ATTR{idProduct}=="1a2b", RUN+="/usr/sbin/usb_modeswitch -K -v 0bda -p 1a2b"
    

    保存退出即可。

    The End

    晚安。

    相关文章

      网友评论

          本文标题:在Ubuntu主机上使用USB无线网卡

          本文链接:https://www.haomeiwen.com/subject/nqlfjdtx.html