×

ArchLinux Tenda AX300 无线网卡驱动安装教程

hqy hqy 发表于2025-01-22 16:02:52 浏览4 评论0

抢沙发发表评论


今天买了一个Tenda AX300 (型号W311MI v6)无线网卡,但是直接插上没有成功驱动,且是以USB的模式显示的,里面是个setup.exe,很显然是没有驱动。

在Tenda官网上下载驱动

但是这是个deb包,而且官网标注最高只支持到6.8的kernel版本,ArchLinux上已经是6.11.3了。

无妨,先操作,解压这个deb包,将其中的data.tar.xz解压出来,复制其中的/usr/src/tenda到本机的/usr/src下

这里先附上安装脚本

#!/bin/bash
Main_version=`uname -r |awk -F'.' '{print $1}'`
Minor_version=`uname -r |awk -F'.' '{print $2}'`
cp /usr/src/tenda/aic8800/aic.rules /etc/udev/rules.d
udevadm trigger
udevadm control --reload
echo "udev done"
if [ -L /dev/aicudisk ]; then
echo "device exist"
eject /dev/aicudisk
else
echo "device not exist"
fi
cd /usr/src/tenda/aic8800/fw/
rm -rf /lib/firmware/aic8800DCcp -rf /usr/src/tenda/aic8800/fw/aic8800DC /lib/firmware/
echo "cp fw done"
cd /usr/src/tenda/aic8800/drivers/aic8800/
make
if [ $? -ne 0 ]; then
    echo "make failed, install aic8800 wifi drvier failed"
    exit 1
fi
make install
if [ $? -ne 0 ]; then
    echo "make install failed, install aic8800 wifi driver failed"
    exit 1
fi
modprobe cfg80211
insmod /usr/src/tenda/aic8800/drivers/aic8800/aic_load_fw/aic_load_fw.ko
if [ $? -ne 0 ]; then
    echo "insmode aic_load_fw failed, install aic8800 wifi driver failed"
    exit 1
fi
insmod /usr/src/tenda/aic8800/drivers/aic8800/aic8800_fdrv/aic8800_fdrv.ko
if [ $? -ne 0 ]; then
    echo "insmod aic8800_fdrv failed, install aic8800 wifi drvier failed"
    exit 1
fi
echo "insmod done"
cd /usr/src/tenda/aic8800/aicrf_test/
make
if [ $? -ne 0 ]; then
    echo "make failed, install aic8800 wifi driver failed"
    exit 1
fi
make install
if [ $? -ne 0 ]; then
    echo "make install failed, install aic8800 wifi driver failed"
    exit 1
fi
echo "Install aic8800 wifi driver successful!!!!!"
exit 0

真正开始的是第三行,前面两行可以不管,这个脚本是deb包里的control.tar.xz里的postinst,你也可以直接用这个

看脚本里的名字驱动是aic8800,AUR有这个dkms,虽然我也安装了,但不知道为什么没起作用,这里就先不管了。

接下来当执行脚本到cd /usr/src/tenda/aic8800/drivers/aic8800/ & make的时候,我遇到了两个报错

第一个错误是struct cfg80211_csa_settings没有名为“punct_bitmap”的成员,代码中可以看到有params->punct_bitmap这个东西,删除它

sudo vim /usr/src/tenda/aic8800/drivers/aic8800_fdrv/rwnx_main.c #在5968行

第二个错误是提供给函数“cfg80211_ch_switch_started_notify”的实参太多,这里没有截图具体位置,我已经忘记了,总之在提示报错的行数的这个函数这里最后有两个参数0,删除其中一个就可以了

然后就是正常编译并加载模块

大功告成!


编译错误说实参太少


打赏

本文链接:https://www.kinber.cn/post/4723.html 转载需授权!

分享到:


推荐本站淘宝优惠价购买喜欢的宝贝:

image.png

 您阅读本篇文章共花了: 

群贤毕至

访客