Ubuntu22.04一键安装无线网卡驱动(保姆教程含弯路经过)
羽洁Ptrel
编辑于 2023年04月23日 04:22
收录于文集
共6篇

前情提要

一星期前新买了一台二手笔记本准备装linux来学习用。但是新装上后就遇到了第一个问题:没有wifi。

此专栏为该问题解决方法,wifi确实是大事,希望对大家有用,为了解决这个问题,我花了1周的时间在走弯路。

wifi啊

先说解决方法,再说我所走过的弯路

先只提如何解决,关于安装依赖等问题默认大家都能解决。

  1. 查询网卡驱动型号

代码块
Shell
自动换行
复制代码
root@1:/home/a# lshw -C network
  *-network                 
       description: Wireless interface
       product: QCA6174 802.11ac Wireless Network Adapter
       vendor: Qualcomm Atheros
       physical id: 0
       bus info: pci@0000:01:00.0
       logical name: wlp1s0
       version: 32
       serial: e4:aa:ea:4f:a3:a1
       width: 64 bits
       clock: 33MHz
       capabilities: pm msi pciexpress bus_master cap_list ethernet physical wireless
       configuration: broadcast=yes driver=ath10k_pci driverversion=5.19.0-40-generic firmware=WLAN.RM.2.0-00180-QCARMSWPZ-1 latency=0 link=no multicast=yes wireless=IEEE 802.11
       resources: irq:61 memory:c0200000-c03fffff
  *-network
       description: Ethernet interface
       physical id: 8
       bus info: usb@2:3.4
       logical name: enx00e04c8074fc
       serial: 00:e0:4c:80:74:fc
       size: 1Gbit/s
       capacity: 1Gbit/s
       capabilities: ethernet physical mii 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation
       configuration: autonegotiation=on broadcast=yes driver=r8152 driverversion=v2.16.3 (2022/07/06) duplex=full ip=192.168.3.148 link=yes multicast=yes port=MII speed=1Gbit/s
复制成功

查询到的是上面这个QCA6174(结尾有另一个查询方法)

2.到GitHub上查询QCA6174

3.找到编程语言为Shell的包(不要下载c以及其他的)

下载(linux连接有线网,或者先用20块钱的免驱网卡,或者先在Win上下载好)

4.下载完后解压

可以看到文件中有一个.sh的文件

右键打开位于该文件夹中的终端

然后输入命令

代码块
Shell
自动换行
复制代码
sudo su
./ath10k-firmware-fixer.sh
复制成功

./  后面可以直接tab补全

5.管理员模式下直接运行这个文件,电脑重启后wifi就好了。

这里附上我的笔记本信息

Redmi Book14 瑞龙R7 3700U

AMD


接下来为要来讲为所走的弯路了。

刚开始时找到的解决办法是使用lsusb来查询网卡

查询到的是8152,之后又查询到的变成了8153,跟着教程走,在GitHub上能找到驱动程序,官网也有的下载,但只有.c格式的包,需要编译。

然后就是处理依赖问题,错误。

中间我还在b站看到了玄学方法,登陆回win10装驱动,再登陆ubuntu就好了,所以我把从win11刷成全盘的ubuntu又装回win10,再装了ubuntu双系统,然后发现还是一样,没用。所以就准备在ubuntu死磕了,同样网上有许多人也遇到了同样的问题。


依赖问题是最好解决的,在很多教程中都有这么一条指令sudo apt install --fix-broken,甚至终端有时候也会提示这个指令,然后就是装各种需要的软件。

接下来是编译文件不对,根据终端提示来修改.c文件解决了

然后是编译器与用于构造内核的编译器不同,什么.map找不到,通过文件映射解决

还有Key was rejected by service 需要签名的问题,这个问题先是走弯路手动签名,然后发现运行自动编译脚本的时候手动加没用,之后是通过这个教程https://blog.csdn.net/chuansailang4709/article/details/104157206

代码块
JavaScript
自动换行
复制代码
https://blog.csdn.net/chuansailang4709/article/details/104157206
复制成功

关闭了Sercure Boot(安全引导)后解决的签名问题。

这时make编译的报错已经全部解决,但是又出现一个新报错

modprobe: ERROR: could not insert 'r8152&#​39;: Exec format error

翻译过来是modprobe:错误:无法插入“r8152”:Exec格式错误

问题报错同下

代码块
JavaScript
自动换行
复制代码
https://askubuntu.com/questions/950883/modprobe-error-could-not-insert-rtl8723be-exec-format-error-wifi
复制成功

但是我没解决。

之后我发现那个手动签名的教程里用了一个为没见过的查询网络命令lshw -C network。之前在win10上查到的网卡驱动是QCA61x4A,ubuntu上的lsusb查到的是RTL8152和RTL8153。但是这个指令查到的是QCA6174,在GitHub上发现有shell的文件就试了一下,就运行重启一下就装上了。

win任务管理器

然后发现插入免驱网卡后在这里也可以看到

所以一张笔记本自带的网卡我查出来了4个名字

1.RTL8152

2.RTL8153

3.QCA61x4A

4.QCA6174

总结:前三个在GitHub上的项目都需要编译,只有搜到第四个的时候出现了shell的脚本安装方式。所以对于没有wifi的正解是把所有名字都在GitHub上搜一遍,找shell语言。