解决Arch Linux构建内核模块时报报模块缺失的警告

写在前面

这是来自我的B站视频的文字教程,因为硬件设备有限,所以当时视频的制作水平也不是很高,所以,如果你能容忍我的啰嗦的话,那么请接着往下看吧。

Tips:

朋友,你是否和我一样是个Arch狂热粉,又是否和我一样,对计算机系统有着高级的洁癖。每当我怀着激动的心,用颤抖的手,敲下更新的命令,看着一条条成功的文本提示,心中欣喜万分。直到,那三条消息的出现:

  • ==> WARNING: Possibly missing firmware for module: wd719x
  • ==> WARNING: Possibly missing firmware for module: aic94xx
  • ==> WARNING: Possibly missing firmware for module: xhci_pci

这能忍吗?这忍不了,在极致的计算机美学里怎么能出现这种警告(虽然是很久以来的正常现象的说)。咳咳,但如果你和我一样,有着这样的洁癖的话,接下来,我来带你解决这个问题。

wd719x && aic94xx模块的安装

这两个模块在官方的仓库里是找不到的,但所幸的是arch4edu收录了这两个软件儿包。所以,解决思路也很明确:

贴加源

在Arch上,要使用第三方源,需要将他添加到/etc/pacman.conf文件里。

这里,我们使用清华开源镜像站的arch4edu源,可以到官方去查看使用方法,这里贴出官方教程

但是呢,在本人使用过程中,官方的推荐方法是无法正常使用的,会给出无法正确从远端取回密钥的报错,所以,我们使用它不推荐的方法。

安装

在源添加完成后,我们便可以使用如下的命令进行安装:

1
sudo pacman -Sy wd719x-firmware aic94xx-firmware

ok,这两个包安装完成之后,我们就成功的给我们的傲娇Arch娘加上了aic94xx与wd719x这两个小玩具

xhci_pci模块安装

安装

至于这个模块的话,既然我单拎出来讲,那肯定是与其他两个有所不同的。因为不论官方仓库,还是第三方仓库都没有这个软件包。直到我在Arch的论坛上搜索这个警报,才找到了这个内核模块的软件包。

我们需要使用我们强大的aur来安装。再次之前,你需要一项aur helper,贴加archlinuxcn软件源,然后执行:

1
sudo pacman -Sy yay

接着,我们就可以使用yay这个工具来打上这个模块:

1
yay -S upd72020x-fw

如果遇到提示一路回车安装即可。

但是你很有可能会由于网络问题出现无法下载的问题,如下:

1
2
==> 错误: 无法下载 https://raw.githubusercontent.com/denisandroid/uPD72020x-Firmware/master/UPDATE.mem
==> 错误: 无法下载 https://raw.githubusercontent.com/denisandroid/uPD72020x-Firmware/master/License.rtf

从提示来看,就是由于网络的问题,无法get到这份文件,那既然无法直接下载,那我们就先git下载,在把文件投喂给yay不就好了

命令如下:

1
2
3
git clone https://github.com/denisandroid/uPD72020x-Firmware ~/Desktop/firmware
cp ~/Desktop/firmware/UPDATE.mem ~/.cache/yay/upd72020x-fw
cp ~/Desktop/firmware/License.rtf ~/.cache/yay/upd72020x-fw

tips

这里其实也是使用系统过程中的一个小思路,其他aur软件包的下载问题其实都可以尝试用这个思路解决。

然后重新执行安装命令,就可以成功安装了,好耶!

接着静待她重新生成内核模块,便不见了之前的警报,是不是超级赞。

总结

这篇文章到这里就结束了,字数不多,但是自己的经历总结。如果你没有这些固件的话,其实这些模块的安装是非必要的,仅仅是为了自己舒服。

笔者乃高中狗一枚,所以精力和学识都有限,请各位多多包涵。