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多元的价格,的确值得。
说正事。
步骤:
- 下载 Realtek RTL8188GU 的 源代码。手动编译。
说明:源码 在 GitHub, 可能经常联不上。
幸好 国内 Gitee 码云,也同步了一个仓库。下载就快多了。
友情提示:找国内 Gitee 码云仓库的时候,多看一下。不少仓库是3年前的数据,现在编译时,会报错。
最新的仓库,是 2023 Jan 12 (即 2023-1-12 )更新的。显示时间是“1年前,或者 8个月前”。 这种仓库下载下来才能正常编译。
会用 git 的网友,可以直接 git clone 下载。
这里给出国内的 Gitee 码云仓库:
另外这里也下载了一份,zip 包只有 2.7M 。也可以直接下载、解压缩、编译。
- WiFi-Realtek-RTL8188GU_Linux:
https://url48.ctfile.com/d/30646948-57713802-fead36?p=6859
(访问密码: 6859)
重要说明:
在编译之前,必须安装一个 linux-headers-$(uname -r) 的软件包,否则,
后面 make 时,很可能会报错 build/ 目录找不到。
安装命令:
sudo apt install linux-headers-$(uname -r) bc build-essential
解压缩后,
先以普通用户,运行
make
再以 sudo 或者 root, 运行
sudo make install
- 这里还有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
- 检测并更新模块数据
命令:
sudo depmod -a $(uname -r)
说明:
- 同上面的作用一样,$(uname -r) 命令输出的结果,类似于 5.10.0-23-amd64
- 小写字母 -a 参数的作用,代表 检测 全部 (all) 模块。
技术细节:
-
上面的 sudo depmod -a $(uname -r),也有其他部分技术帖子写的是直接
sudo depmod -a
似乎也可以的。 -
命令操作完成后,数据库文件 modules.dep 会自动更新。如果查看文件内容,会看到有类似这样一行:
cd /lib/modules/$(uname -r)/
grep -i 8188gu modules.dep
kernel/drivers/net/wireless/8188gu.ko: kernel/net/wireless/cfg80211.ko
- 检测并启用新的 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.
- 选择一个有效的 WiFi, 输入密码。就能上网了。
可能用到的命令介绍:
-
检测 USB 接口的 realtek 系列的芯片(包括:无线网卡,蓝牙,有线网卡)
以普通用户,运行命令:
lsusb | grep -i realtek -
查看当前系统的内核版本:
以普通用户,运行命令:
uname -r
备注:
在 屏幕右下角,查看 无线网卡的“连接信息”时,显示这款无线网卡 (RTL8188GU),
使用的驱动程序是 rtl8710bu (见附图)
附效果图:
-.-.-.