介绍
其实如果是新版内核如6.x以上的版本大抵不会遇到这个问题,该文针对的那些老的银河麒麟的龙芯系统内核版本还停留在5.4.18-35,在安装无线网卡驱动的时候会遇到一些问题。
准备
获取无线网卡驱动,通常购买的无线网卡包装会写支持 麒麟统信UOS 并告诉你在哪获取。
我意外发现一个有趣的地方在于,不同品牌做的无线网卡驱动文件竟然是一样的。
在它们的更新说明里都会特意说明 修复内核5.4.18编译错误。
1 | 7z l '.\TL-XDN7000H免驱版 V1.1 Linux系统驱动程序20260224.zip' |
1 | 7z l '.\UX9H(免驱版) V1.1 Linux系统驱动程序20260224.zip' |
问题
其实真正还额外存在一些别的问题,但这部分我放到最后,我先介绍主要问题。
众所周知国产系统有多种不同架构的处理器,如兆芯有x86,龙芯一般是mips,所以它的驱动为了兼容所有架构,它直接把源码放在了包里,安装的时候本质是自动本地编译驱动并安装。所以在安装说明文件里会要求安装 build-essential GCC编译套件。
当你按说明要求后,以为接下来直接安装驱动包就完事大吉的时候,输出给你泼了盆冷水:安装时出错,安装失败。
然后对linux不了解的你肯定在想怎么办,官方驱动不是说修复了内核5.4.18编译失败吗?为什么我还会遇到?
其实答案就在输出里:Makefile:696:arch/mips64/Makefile: 没有那个文件或目录
这时我们去查看内核源码目录查看就会发现,/usr/src/linux-headers-5.4.18-35-generic/arch下没有mips64只有mips,这是为什么呢?
首先,驱动包的Makefile通过系统环境变量获取到处理器的架构是mips64,这没有问题,所以我们可以合理猜测,银河麒麟v10内核5.4.18版本的系统,不知道为什么实际上把mips64和mips合并到同一个目录了。所以我们只需要让驱动包Makefile找到正确的目录即可,你可以硬编码Makefile并手动编译。或者这里我用一种非常偷懒但有效且优雅的方式解决这个问题:ln -sfn mips/ mips64即直接创建一个链接目录到mips64即可,然后重新安装。
之后会出现一大串编译输出,等待出现Install aic8800 wifi driver successful!!!!!为结束。给主机插上无线网卡后,通过ifconfig检查可以发现我们有了一个新的网卡,随后在任务栏托盘网络面板就可以开启无线网络面板。
额外问题
首先 银河麒麟v10内核5.4.18 无法读取U盘的exfat格式,所以你会发现想接入U盘复制驱动文件,能看到文件,但复制的文件字节为0无法使用。
其次,如果特殊的网络如单位专网,如果不配置固定IP,你虽然能联网,但是只有ipv6,而安装GCC编译套件需要的源服务器ipv4才能访问,不然只会出现一个 域名解析错误 archive.kylinos.cn 。