Werden Linux-Treiber auf Kernel-Ebene unterstützt?

0

Bisher dachte ich, dass Linux-Treiber auf Kernel-Ebene sind. Das bedeutet, dass die Treiber im Kernel gepackt sind. Daher sollten verschiedene Distributionen dieselbe Hardware unterstützen, solange sie dieselbe Kernelversion ausführen. Natürlich gibt es dkmsTreiber, die nach der Installation des Kernels installiert werden, aber ich spreche nicht über diese.

Heute habe ich einen Artikel gelesen , in dem stand: "Unterschiedliche Distributionen packen unterschiedliche Treiber in ihre Installer, was bedeutet, dass je nach verwendeter Distribution unterschiedliche Hardware-Komponenten sofort funktionieren oder nicht."

Was vermisse ich? Wie verpacken verschiedene Distributionen verschiedene Treiber? Wie ist es möglich, wenn Treiber im Kernel gepackt sind?

khajvah
quelle

Antworten:

2

Während die Verfügbarkeit von Treibern in der Linux-Community in der Tat ziemlich einheitlich ist, tragen verschiedene Faktoren dazu bei, dass dieses allgemeine Bild nicht perfekt ist.

Die Einheitlichkeit der Treiberverfügbarkeit, auf die Sie sich beziehen, gilt sicherlich für diejenigen, die in den Kernelbaum eintreten. Sobald dies entschieden ist, liegt die Unterstützung für die Entwicklung von Treibern mit sich entwickelnder Kernelstruktur direkt bei der Linux-Kernelgruppe, und Sie können sicher sein, dass diese Treiber ab einer ersten Kernelversion verfügbar sind.

Es gibt jedoch auch eine große Gruppe proprietärer Treiber, die aus offensichtlichen Gründen möglicherweise nicht in den Kernelbaum gelangen. Oder es gibt Treiber, die proprietäre Firmware erfordern, die nicht unbedingt automatisch installiert werden, je nachdem, wie streng sich die Entwickler der Distribution an die Prinzipien von FOSS (Free Open Source Software) halten. Für beide Arten von Fahrern ist der Grad der Unterstützung (ganz zu schweigen von ihrer technischen Angemessenheit) durch ihre rechtmäßigen Eigentümer zeitlich nicht konstant, wie im Fall der Broadcom-WLAN-Fahrer. daher die Notwendigkeit der Entwicklung von FOSS-Alternativen. Ein berühmter Fall, abgesehen von Broadcom, ist der der OpenSource NVidia-Treiber. Wenn es keine Open Source-Alternative gibt, stellen Sie möglicherweise fest, dass einige Laufwerke mit älteren Kernelversionen kompatibel sind, jedoch nicht mit neueren.

Außerdem wird normalerweise zwischen verschiedenen Kernelversionen neue Hardware eingeführt, die von vorhandenen Treibern (trivial oder nicht) unterstützt werden kann. Dies ist beispielsweise bei vielen WLAN-Adaptern der Fall, die die Hersteller zu einem bestimmten Zeitpunkt als brandneu präsentieren, sondern die auf bereits vorhandenen Chipsätzen basieren, für die bereits ein Linux-Treiber vorhanden ist. In einigen Fällen kann das Problem durch eine geringfügige Änderung des Codes und eine erneute Kompilierung dauerhaft behoben werden. In anderen Fällen sind komplexere Änderungen am Treiber oder sogar die Einführung eines völlig neuen Treibers erforderlich. Zum Glück stellen uns in diesem Fall die großzügigen Mitarbeiter von Linux Backports Versionen neuer oder geänderter Treiber zur Verfügung, die mit älteren Kerneln kompatibel sind. Also, selbst wenn Sie sich zurückgelassen fühlen, laden Sie Backports von dieser Site herunter ermöglicht es Ihnen, die neuesten Fahrer rund um Sport.

Mit anderen Worten, es ist ein wenig Arbeit erforderlich (Herunterladen und Kompilieren der Linux-Backports), um die von Ihnen angesprochene nahezu Einheitlichkeit wiederherzustellen.

MariusMatutiae
quelle
3

Nun, eine ganze Reihe von Treibern sind ladbare Kernelmodule, die zwar im Kernelbaum enthalten sind, jedoch möglicherweise nicht kompiliert werden. Sie können diese Module später jederzeit kompilieren, installieren und neu starten. Im Allgemeinen werden Sie, sofern Sie nicht von Grund auf neu kompilieren, diese wahrscheinlich zusätzlich zu einer Reihe von Standardeinstellungen verwenden. Auf diese Weise können einem Kernel Module hinzugefügt werden, ohne dass ein Neustart erforderlich ist (mithilfe von "insmod"), und Module werden überhaupt nicht geladen, wenn sie nicht benötigt werden.

DKMS fügt nur einige nette Dinge hinzu, wie das automatische Neukompilieren von Modulen bei einem Kernel-Update.

Geselle Geek
quelle
0

Versuchen Sie, Kernelquellen herunterzuladen und auszuführen make menuconfig. Sie werden eine Vielzahl von Optionen sehen, von denen viele Kernelmodule sind, die Sie entweder kompilieren können (sie werden Teil des generierten Kernel-Images), als Module kompilieren (sie können von der Festplatte geladen werden, wenn der Kernel bereits gestartet wurde) oder überhaupt nicht kompilieren.

Darüber hinaus können Distributionen unterschiedliche Kernelversionen und Patches für die offizielle (Vanille-) Kernelversion verwenden. Bei einigen Installationsprogrammen für Distributionen können Sie auch Closed-Source-Treiber / -Firmware verwenden, die nicht Teil der offiziellen Quellen sein können.

Insgesamt erhalten Sie jedoch ungefähr dieselbe Hardwareunterstützung mit Allzweckdistributionen, die ungefähr dieselbe Kernelversion verwenden.

Pavel Šimerda
quelle