以前买的USB无线网卡,在飞牛加入无线功能时候试过没找到驱动
这两天没事研究了一下
网上公开的驱动试了一些,有些编译问题,或者安装后不能识别网卡。
最后用GitHub上星最多的这个McMCCRU/rtl8188gu(开始试过编译报错pass掉了,试了一圈回来的)。
基本信息
- 驱动名称: RTL8188GU Linux驱动
- 芯片型号: Realtek RTL8188GU (RTL8710B)
- 设备ID: VID:PID = 0x0BDA:0xB711
- 源码来源: GitHub - McMCCRU/rtl8188gu
- 内核版本: 6.12.18-trim
ID 0bda:b711 Realtek Semiconductor Corp. RTL8188GU 802.11n WLAN Adapter (After Modeswitch)

编译过程
我是直接编译的,建议使用虚拟机或者docker编译(推荐docker)。
1、安装依赖
#先提权
sudo su
apt update
apt install build-essential git
apt install linux-headers-$(uname -r)
2、克隆和编译驱动
git clone https://github.com/McMCCRU/rtl8188gu.git
cd rtl8188gu
make
我在编译过程中遇到两次错误,内核API不兼容问题需要修改。
问题1: USB驱动结构体不兼容
error: ‘struct usb_driver’ has no member named ‘drvwrap’
修改 os_dep/linux/usb_intf.c文件中的 struct rtw_usb_drv usb_drv代码:
修改前:.drvwrap.driver.shutdown = rtw_dev_shutdown,
修改后:
.usbdrv.driver.shutdown = rtw_dev_shutdown,
问题2: CFG80211 API变更
error: initialization of ‘int (*)(struct wiphy *, struct net_device *, struct cfg80211_ap_update *)’ from incompatible pointer type
修改 os_dep/linux/ioctl_cfg80211.c文件中的 cfg80211_rtw_change_beacon函数:
static int cfg80211_rtw_change_beacon(struct wiphy *wiphy, struct net_device *ndev,
struct cfg80211_ap_update *info)
{
int ret = 0;
_adapter *adapter = (_adapter *)rtw_netdev_priv(ndev);
struct cfg80211_beacon_data *beacon = &info->beacon;
RTW_INFO(FUNC_NDEV_FMT"\n", FUNC_NDEV_ARG(ndev));
ret = rtw_add_beacon(adapter, beacon->head, beacon->head_len, beacon->tail, beacon->tail_len);
return ret;
}
3、清理并重新编译
make clean
make
4、安装加载驱动
# 安装驱动模块
sudo make install
# 加载驱动模块
sudo modprobe 8188gu
# 更新模块依赖
sudo depmod -a
5、安装成功
使用lsusb -tv查看驱动加载情况

网络设置中已经正常显示
