我正在尝试安装树内内核模块 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
。