如何获取缺失的树内内核模块?

如何获取缺失的树内内核模块?

我正在尝试安装树内内核模块 mgag200,但该模块似乎不存在于 Ubuntu apt 存储库中。我的内核配置显示它未设置为构建

$ grep MGAG200 /boot/config-$(uname -r)
# CONFIG_DRM_MGAG200 is not set

modprobe找不到

$ modprobe -n mgag200
modprobe: FATAL: Module mgag200 not found in directory /lib/modules/4.8.0-42-generic

它没有显示为内置

$ grep mgag200 /lib/modules/$(uname -r)/modules.builtin

搜索包含该文件的包只会显示标题

$ apt-file search mgag200
linux-headers-4.8.0-22: /usr/src/linux-headers-4.8.0-22/drivers/gpu/drm/mgag200/Kconfig
linux-headers-4.8.0-22: /usr/src/linux-headers-4.8.0-22/drivers/gpu/drm/mgag200/Makefile
linux-headers-4.8.0-42: /usr/src/linux-headers-4.8.0-42/drivers/gpu/drm/mgag200/Kconfig
linux-headers-4.8.0-42: /usr/src/linux-headers-4.8.0-42/drivers/gpu/drm/mgag200/Makefile

我已取消注释所有存储库,/etc/apt/sources.list并同步所有搜索的缓存。我正在使用完全升级的版本

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 16.10
Release:        16.10
Codename:       yakkety
$ sudo apt dist-upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

这样的模块是否应该缺失?获取它们的常规方法是什么?虽然我正在考虑在必要时构建它,但我认为树内内核模块已经构建并可用。

答案1

未启用的模块.config不会被构建并且不“可用”。

Ubuntu 中有大量未启用的树内模块.config。拥有的全部目的.config不是编译每个内核模块。每个发行版维护者都会选择要包含哪些模块。

您需要构建一个自定义内核来获取该模块,或者单独构建它。

如果您想要一个可以在内核升级后继续使用的自定义模块,您可以使用内核源代码制作一个 DKMS 包。但是,如果 中未启用,则需要执行一些额外操作才能构建它.config

相关内容