Wie bekomme ich ein fehlendes In-Tree-Kernel-Modul?


7

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.listund 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.


Hallo und willkommen bei AskUbuntu! Vielen Dank, dass Sie sich die Zeit genommen haben, eine qualitativ hochwertige Frage zu schreiben!
You'reAGitForNotUsingGit

Antworten:


4

Die Module, die nicht aktiviert .configsind, 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 .configist 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.


Vielen Dank, ich dachte, Distributionen verpacken normalerweise weniger benötigte In-Tree-Module in optionalen Paketen. Wenn dies nicht vorhanden ist, denke ich darüber nach, ein Debian-Paket zu erstellen, indem ein vorhandenes Paket für ein anderes In-Tree-Modul angepasst wird. Meine Suchfähigkeiten sind jedoch nicht sehr gut. Kennen Sie gute Kandidaten?
Luis Marsano

Wenn dies ein separates Modul ( koDatei) 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.
Pilot6

@ Pilot6, haben Sie also eine DKMS-Lösung, die CONFIG_ aktiviert und ein fehlendes Modul erstellt? Dies sollte ein häufiger Anwendungsfall sein.
Velkan

@Velkan Ich habe nichts Besonderes. Es ist nicht schwer, ein Modul als DKMS-Deb zu erstellen.
Pilot6

@ Pilot6, der Unterschied besteht darin, dass Sie normalerweise den Quellcode in diese Debatte aufnehmen. Ja, das Einfügen von Kopien ist einfach, aber das automatische Abrufen von Quellen vom aktuell installierten Kernel ist vorzuziehen.
Velkan
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.