Ich versuche, ein In-Tree-Kernelmodul, mgag200, zu installieren, das in den Ubuntu apt-Repositorys anscheinend nicht vorhanden ist. Die Konfiguration für meinen Kernel zeigt, dass er nicht zum Erstellen festgelegt wurde
$ grep MGAG200 /boot/config-$(uname -r)
# CONFIG_DRM_MGAG200 is not set
modprobe
findet es nicht
$ modprobe -n mgag200
modprobe: FATAL: Module mgag200 not found in directory /lib/modules/4.8.0-42-generic
Es erscheint nicht als eingebaut
$ grep mgag200 /lib/modules/$(uname -r)/modules.builtin
Bei der Suche nach einem Paket, das die Datei enthält, werden nur Header angezeigt
$ 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
Ich habe alle Repositorys im auskommentiert /etc/apt/sources.list
und den Cache für alle Suchvorgänge synchronisiert. Ich verwende eine vollständig aktualisierte Version
$ 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.
Sollen solche Module fehlen? Was ist der reguläre Ansatz, um sie zu bekommen? Obwohl ich erwäge, es bei Bedarf zu erstellen, dachte ich, dass In-Tree-Kernelmodule bereits erstellt und verfügbar sind.
Antworten:
Die Module, die nicht aktiviert
.config
sind, werden nicht erstellt und sind nicht "verfügbar".Es gibt eine Menge In-Tree-Module, die in Ubuntu nicht aktiviert sind
.config
. Der springende Punkt bei a.config
ist nicht, jedes einzelne Kernelmodul zu kompilieren. Jeder Distributionsbetreuer wählt aus, welche Module eingeschlossen werden sollen.Sie müssen einen benutzerdefinierten Kernel erstellen, um dieses Modul zu erhalten, oder es separat erstellen.
Wenn Sie ein benutzerdefiniertes Modul benötigen, das Kernel-Upgrades überlebt, können Sie mithilfe des Kernel-Quellcodes ein DKMS-Paket erstellen. Es sollten jedoch einige zusätzliche Aktionen ausgeführt werden, um es zu erstellen, wenn es nicht aktiviert ist
.config
.quelle
ko
Datei) ist, können Sie ein DKMS-Deb-Paket erstellen. Es wird Kernel-Upgrades Ihres Systems überleben. Das Problem mit dem Kernelmodul ist, dass sie für jeden Kernel aus dem Quellcode erstellt werden müssen. DKMS macht das automatisch.