我正在尝试安装 RT3290 wifi 驱动程序,因为我的笔记本电脑上的 wifi 可以使用,但有时会随机断开连接。
我在这里下载了驱动程序https://forum.ubuntuusers.de/topic/nach-update-kein-wlan-mehr-433/2/#post-5561332因为其他来源不再可用。
当我运行make
命令时,我得到以下输出:
make -C tools
make[1]: Entering directory '/home/marco/Downloads/DPO_RT3290_LinuxSTA_V2600_20120508/tools'
gcc -g bin2h.c -o bin2h
make[1]: Leaving directory '/home/marco/Downloads/DPO_RT3290_LinuxSTA_V2600_20120508/tools'
/home/marco/Downloads/DPO_RT3290_LinuxSTA_V2600_20120508/tools/bin2h
cp -f os/linux/Makefile.6 /home/marco/Downloads/DPO_RT3290_LinuxSTA_V2600_20120508/os/linux/Makefile
make -C /lib/modules/4.10.0-14-generic/build SUBDIRS=/home/marco/Downloads/DPO_RT3290_LinuxSTA_V2600_20120508/os/linux modules
make[1]: Entering directory '/usr/src/linux-headers-4.10.0-14-generic'
CC [M] /home/marco/Downloads/DPO_RT3290_LinuxSTA_V2600_20120508/os/linux/../../sta/sta_cfg.o
In file included from /home/marco/Downloads/DPO_RT3290_LinuxSTA_V2600_20120508/include/rtmp_os.h:42:0,
from /home/marco/Downloads/DPO_RT3290_LinuxSTA_V2600_20120508/include/rtmp_comm.h:56,
from /home/marco/Downloads/DPO_RT3290_LinuxSTA_V2600_20120508/include/rt_config.h:36,
from /home/marco/Downloads/DPO_RT3290_LinuxSTA_V2600_20120508/os/linux/../../sta/sta_cfg.c:31:
/home/marco/Downloads/DPO_RT3290_LinuxSTA_V2600_20120508/os/linux/../../sta/sta_cfg.c: In function ‘RTMPQueryInformation’:
/home/marco/Downloads/DPO_RT3290_LinuxSTA_V2600_20120508/os/linux/../../sta/sta_cfg.c:3956:30: warning: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘long unsigned int’ [-Wformat=]
DBGPRINT(RT_DEBUG_TRACE, ("sizeof UCHAR=%d, channel=%d \n", sizeof(UCHAR), p
^
/ home/marco/Downloads/DPO_RT3290_LinuxSTA_V2600_20120508/include/os/rt_linux.h:656:16: note: in definition of macro ‘DBGPRINT_RAW’
printk Fmt; \
^
/home/marco/Downloads/DPO_RT3290_LinuxSTA_V2600_20120508/os/linux/../.. /sta/sta_cfg.c:3956:4: note: in expansion of macro ‘DBGPRINT’
DBGPRINT(RT_DEBUG_TRACE, ("sizeof UCHAR=%d, channel=%d \n", sizeof(UCHAR), p
^
/home/marco/Downloads/DPO_RT3290_LinuxSTA_V2600_20120508/os/linux/../.. /sta/sta_cfg.c: In function ‘RTMPIoctlShow
/home/marco/Downloads/DPO_RT3290_LinuxSTA_V2600_20120508/os/linux/../../sta/sta_cfg.c:4899:85: error: macro "__DATE__" might prevent reproducible builds [-Werror=date-time]
intf(extra, size, "Driver version-%s, %s %s\n", STA_DRIVER_VERSION, __DATE__, _
^
/home/marco/Downloads/DPO_RT3290_LinuxSTA_V2600_20120508/os/linux/../../sta/sta_cfg.c:4899:95: error: macro "__TIME__" might prevent reproducible builds [-Werror=date-time]
, size, "Driver version-%s, %s %s\n", STA_DRIVER_VERSION, __DATE__, __TIME__ );
^
/home/marco/Downloads/DPO_RT3290_LinuxSTA_V2600_20120508/os/linux/../../sta/sta_cfg.c: In function ‘RtmpIoctl_rt_private_get_statistics’:
/home/marco/Downloads/DPO_RT3290_LinuxSTA_V2600_20120508/os/linux/../../sta/sta_cfg.c:7220:30: warning: format ‘%x’ expects argument of type ‘unsigned int’, but argument 3 has type ‘EEPROM_NIC_CONFIG3_STRUC {aka union _EEPROM_NIC_CINFIG3_STRUC}’ [-Wformat=]
sprintf(extra+strlen(extra), "pAd->NicConfig3.field.CoexAnt == 0x%x\n\n",pAd->N
^
cc1: some warnings being treated as errors
scripts/Makefile.build:294: recipe for target '/home/marco/Downloads/DPO_RT3290_LinuxSTA_V2600_20120508/os/linux/../../sta/sta_cfg.o' failed
make[2]: *** [/home/marco/Downloads/DPO_RT3290_LinuxSTA_V2600_20120508/os/linux/../../sta/sta_cfg.o] Error 1
Makefile:1524: recipe for target '_module_/home/marco/Downloads/DPO_RT3290_LinuxSTA_V2600_20120508/os/linux' failed
make[1]: *** [_module_/home/marco/Downloads/DPO_RT3290_LinuxSTA_V2600_20120508/os/linux] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-4.10.0-14-generic'
Makefile:380: recipe for target 'LINUX' failed
make: *** [LINUX] Error 2 </code>
有人知道如何修复此错误或成功安装驱动程序吗?谢谢
答案1
由于内核使用 rt2800pci 模块,因此没有必要构建不同的驱动程序。但是,此模块在启用 wifi 电源管理的情况下无法正常工作,请检查结果iwconfig
您可以使用以下方式禁用 wifi 电源管理
sudo sed -i 's/wifi.powersave = 3/wifi.powersave = 2/' /etc/NetworkManager/conf.d/default-wifi-powersave-on.conf
重启