今天买了一个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 转载需授权!
推荐本站淘宝优惠价购买喜欢的宝贝: