Linux 中的 ASUS USB wifi 驱动程序 - AC53 nano - EW-7811Un - Realtek RTL8188CUS

Linux 中的 ASUS USB wifi 驱动程序 - AC53 nano - EW-7811Un - Realtek RTL8188CUS

我有一个华硕 AC53 Nano wifi 接收器,我正在尝试让它在 Solus Linux 上运行。以下是一些基本信息:

$ lsusb

Bus 001 Device 004: ID 7392:7811 Edimax Technology Co., Ltd EW-7811Un 802.11n Wireless Adapter [Realtek RTL8188CUS]

$ uname -r

5.0.7-114.current

我正在关注路线指引请点击这里据说他们正在为这个人这是目前为止我得到的最佳线索。但我想知道他们是否在比我更旧的内核上。我添加了以下行:

{USB_DEVICE(0x0B05, 0x184C), .driver_info = RTL8822B}, /* ASUS USB AC53 */

按照说明添加到 os_dep/linux/usb_intf.c 文件并尝试运行make。输出如下:

$ make make ARCH=x86_64 CROSS_COMPILE= -C /lib/modules/5.0.7-114.current/build M=/home/morgan/rtl8822bu modules make[1]: Entering directory '/usr/src/linux-headers-5.0.7-114.current' CC [M] /home/morgan/rtl8822bu/os_dep/linux/os_intfs.o In file included from /home/morgan/rtl8822bu/include/drv_types.h:35, from /home/morgan/rtl8822bu/os_dep/linux/os_intfs.c:22: /home/morgan/rtl8822bu/include/wifi.h:1005: warning: "IEEE80211_MAX_AMPDU_BUF" redefined #define IEEE80211_MAX_AMPDU_BUF 0x40 In file included from /home/morgan/rtl8822bu/include/osdep_service_linux.h:84, from /home/morgan/rtl8822bu/include/osdep_service.h:41, from /home/morgan/rtl8822bu/include/drv_types.h:32, from /home/morgan/rtl8822bu/os_dep/linux/os_intfs.c:22: ./include/linux/ieee80211.h:1444: note: this is the location of the previous definition #define IEEE80211_MAX_AMPDU_BUF 0x100

/home/morgan/rtl8822bu/os_dep/linux/os_intfs.c:1170:22: error: initialization of ‘u16 (*)(struct net_device *, struct sk_buff *, struct net_device *, u16 (*)(struct net_device *, struct sk_buff *, struct net_device *))’ {aka ‘short unsigned int (*)(struct net_device *, struct sk_buff *, struct net_device *, short unsigned int (*)(struct net_device *, struct sk_buff *, struct net_device *))’} from incompatible pointer type ‘u16 (*)(struct net_device *, struct sk_buff *, void *, u16 (*)(struct net_device *, struct sk_buff *, struct net_device *))’ {aka ‘short unsigned int (*)(struct net_device *, struct sk_buff *, void *, short unsigned int (*)(struct net_device *, struct sk_buff *, struct net_device *))’} [-Werror=incompatible-pointer-types] .ndo_select_queue = rtw_select_queue, ^~~~~~~~~~~~~~~~ /home/morgan/rtl8822bu/os_dep/linux/os_intfs.c:1170:22: note: (near initialization for ‘rtw_netdev_ops.ndo_select_queue’) cc1: some warnings being treated as errors make[2]: *** [scripts/Makefile.build:277: /home/morgan/rtl8822bu/os_dep/linux/os_intfs.o] Error 1 make[1]: *** [Makefile:1576: _module_/home/morgan/rtl8822bu] Error 2 make[1]: Leaving directory '/usr/src/linux-headers-5.0.7-114.current' make: *** [Makefile:1318: modules] Error 2

我真的不知道该怎么做(哈哈)!有谁能帮我吗?提前谢谢了!

答案1

我在尝试安装 ASUS AC53 Nano 时遇到了同样的错误。对于我的机器,我使用的是 POP!_os,Linux 内核为 5.0.0。尝试后几个仓库对于适用于 Linux 的 RTL8822BU 无线驱动程序,jeremyb31/rtl8822burepo 完美地完成了这个任务。

我的机器上没有互联网,所以我将它克隆到有互联网的机器上,通过 USB 将 repo 传输到我的 PC,将其复制到我的 PC 上,通过 cd 进入我 PC 上的 repo,然后运行make编译并sudo make install安装固件,然后sudo modprobe 8822bu。我没有对 repo 中的文件进行任何编辑。说明在 repo 的 README 中。

之后它开始为我工作(您可能需要重新启动)。希望有帮助!

答案2

无论我尝试哪个 repo,一开始它都无法编译。但是,一旦我安装了gccbinutils包,它就可以正常工作。因此请尝试以下操作:

sudo apt-get update
sudo apt-get install binutils
sudo apt-get install gcc

(按照终端给出的说明进行操作)

然后使用该make命令。

相关内容