Debian 10.11和 11.7 amd64 安装 Realtek RTL8188GU 无线网卡驱动

Debian 10.11和 11.7 amd64 安装 Realtek RTL8188GU 无线网卡驱动
2023.8.29 发布
2023.9.3 更新

两台电脑:

  • 联想笔记本 Thinkpad E470, 自带高通无线网卡。Debian 11.7 amd64。
    内核:5.10.0-23-amd64

  • 很多年以前的台式机,2G+4G DDR3 内存,Debian 10.11 amd64,
    装了2个内核: 4.19.0-16-amd64 和 4.19.0-21-amd64

无线网卡型号:

  • 腾达 U2,带天线。天线信号 6dB (很多其它品牌型号,信号只有 5dB 或者 3dB)
    官方没有标注芯片类型。查了下资料,是 realtek RTL8188GU
    某宝价格约 22元。买了一个。

顺便提前说下效果:

  • 之前有个 水星 U3 的无线网卡,没有天线的那种(也是20元左右),在装了最新版本的 firmware-realtek DEB 包后,能被两台机自动识别、能连网。
    但是因为蹭的邻居的 wifi, 15米左右,还隔了一堵墙,信号很差。
    apt update 到阿里云 的镜像,连接速度刚开始是 100k 左右;
    半分钟后,网速下降到 10 k 以下。预估完成时间:2个多小时。等得没脾气了。

  • 后来成功用这个 腾达 U2,带天线 连网后速度稳定在 100k - 300k, apt update 只用 7分钟左右就完成了。

看来,6dB 的天线,20多元的价格,的确值得。


说正事。

步骤:

  1. 下载 Realtek RTL8188GU 的 源代码。手动编译。
    说明:源码 在 GitHub, 可能经常联不上。
    幸好 国内 Gitee 码云,也同步了一个仓库。下载就快多了。
    友情提示:找国内 Gitee 码云仓库的时候,多看一下。不少仓库是3年前的数据,现在编译时,会报错。
    最新的仓库,是 2023 Jan 12 (即 2023-1-12 )更新的。显示时间是“1年前,或者 8个月前”。 这种仓库下载下来才能正常编译。

会用 git 的网友,可以直接 git clone 下载。

这里给出国内的 Gitee 码云仓库:

另外这里也下载了一份,zip 包只有 2.7M 。也可以直接下载、解压缩、编译。


重要说明:
在编译之前,必须安装一个 linux-headers-$(uname -r) 的软件包,否则,
后面 make 时,很可能会报错 build/ 目录找不到。

安装命令:

sudo apt install linux-headers-$(uname -r) bc build-essential


解压缩后,
先以普通用户,运行
make

再以 sudo 或者 root, 运行
sudo make install


  1. 这里还有2个 amd64 平台,编译好的 8188gu.ko 驱动文件。
    把根据指定内核版本,编译生成的 8188gu.ko 文件,复制到指定目录,再运行两个命令,就可以驱动成功了。

sudo cp -pv 8188gu.ko /lib/modules/$(uname -r)/kernel/net/wireless

或者以安装的方式来复制:

sudo install -p -m 644 8188gu.ko /lib/modules/$(uname -r)/kernel/drivers/net/wireless/

说明:$(uname -r) 命令,会自动检测并输出当前使用的内核版本号。
示例:5.10.0-23-amd64


  1. 检测并更新模块数据
    命令:
    sudo depmod -a $(uname -r)

说明:

  1. 同上面的作用一样,$(uname -r) 命令输出的结果,类似于 5.10.0-23-amd64
  2. 小写字母 -a 参数的作用,代表 检测 全部 (all) 模块。

技术细节:

  1. 上面的 sudo depmod -a $(uname -r),也有其他部分技术帖子写的是直接
    sudo depmod -a
    似乎也可以的。

  2. 命令操作完成后,数据库文件 modules.dep 会自动更新。如果查看文件内容,会看到有类似这样一行:

cd /lib/modules/$(uname -r)/
grep -i 8188gu modules.dep

kernel/drivers/net/wireless/8188gu.ko: kernel/net/wireless/cfg80211.ko


  1. 检测并启用新的 RTL8188GU 无线网卡芯片

sudo modprobe 8188gu

说明:8188gu, 对应编译生成的驱动文件名 8188gu.ko

特别提醒:
一般情况下,只要运行这个命令成功(没有输出,就代表成功。如果有文字输出,就是报错信息,即驱动加载不成功。)
屏幕右上角,或者右下角,会弹出窗口,提示发现新的 WiFi 信号。


技术细节:

如果这时,还没有正确识别这个 无线网卡。原因可能是,Debian 10, 或者更早的 Linux 系统,(也可能是太老的电脑主板),把这个 USB 无线网卡,识别成了普通的 U盘或者光盘。

如果运行 lsusb | grep -i Realtek
输出结果中,硬件 ID 会显示为 1a2b 之类。
(说明:ID 字样后面的 0bda,即厂商代码, 对应 Realtek 公司)
示例:


Bus 001 Device 011: ID 0bda:1a2b Realtek Semiconductor Corp.

解决方法:运行命令,弹出光盘

sudo eject /dev/cdrom

然后再次运行 lsusb | grep -i Realtek

输出结果中,硬件 ID 会变成了 b711 。示例:


Bus 001 Device 011: ID 0bda:b711 Realtek Semiconductor Corp.

  1. 选择一个有效的 WiFi, 输入密码。就能上网了。

可能用到的命令介绍:

  1. 检测 USB 接口的 realtek 系列的芯片(包括:无线网卡,蓝牙,有线网卡)
    以普通用户,运行命令:
    lsusb | grep -i realtek

  2. 查看当前系统的内核版本:
    以普通用户,运行命令:
    uname -r


备注:

在 屏幕右下角,查看 无线网卡的“连接信息”时,显示这款无线网卡 (RTL8188GU),
使用的驱动程序是 rtl8710bu (见附图)


附效果图:

8818-2d3
-.-.-.

1 个赞

学习了。。。。