Woher kommen die Pfade zu den Kernel-Modulen für Treiber?

15/06/2014 - 01:59 von Marcel Müller | Report spam
Hallo,

ich habe eine DVB-Karte, für die ich den Treiber selber Compilieren
muss, weil ein Teil im Standard-Kernel fehlt (cx24120). Das muss ich
natürlich nach jedem Kernel-Update wiederholen.
Bisher hat das geklappt, aber diesmal (Wheezy) funktioniert es nicht
mehr. Kompilieren und Installieren geht zwar, aber er làdt dann trotzdem
noch die alten Module.

Jetzt habe ich eine Weile gewühlt, dabei ist mir aufgefallen, dass im
Baum /lib/modules/3.2.0.4... einige Dateinamen doppelt vorkommen.
Offensichtlich hat make install, die Dateien in ein anderes Verzeichnis
installiert, und jetzt sind sie doppelt.

Wie komme ich denn aus der Nummer wieder raus? Wie kann ich die
Unterverzechnisse beeinflussen, in denen die Treiber abgelegt werden?
Muss ich wirklich für jede einzelne Datei suchen, wo die jetzt ist, und
sie per Hand kopieren?

Der tar-file mit den Treiber nennt sich im übrigen media_build_s2. Keine
Ahnung wo ich den Treiber seinerzeit her hatte.


Marcel
 

Lesen sie die antworten

#1 Thomas PointedEars Lahn
20/06/2014 - 01:11 | Warnen spam
Marcel Müller wrote:

ich habe eine DVB-Karte, für die ich den Treiber selber Compilieren
muss, weil ein Teil im Standard-Kernel fehlt (cx24120). Das muss ich
natürlich nach jedem Kernel-Update wiederholen.
Bisher hat das geklappt, aber diesmal (Wheezy) funktioniert es nicht
mehr. Kompilieren und Installieren geht zwar, aber er làdt dann trotzdem
noch die alten Module.



Na lego. Dein Kernel hat keine Ahnung, dass Du eigentlich was anderes von
ihm willst als ihm der Distributor früher mal gesagt hat.

Jetzt habe ich eine Weile gewühlt, dabei ist mir aufgefallen, dass im
Baum /lib/modules/3.2.0.4... einige Dateinamen doppelt vorkommen.
Offensichtlich hat make install, die Dateien in ein anderes Verzeichnis
installiert, und jetzt sind sie doppelt.

Wie komme ich denn aus der Nummer wieder raus? Wie kann ich die
Unterverzechnisse beeinflussen, in denen die Treiber abgelegt werden?



Vermutlich gibt es einen mir nicht nàher bekannten Weg; möglicherweise über
Aliases. Siehe modules(5) pp. Dann wàre es vermutlich gut, wenn Kernel und
Modul mit derselben gcc-Version kompiliert und gegen dieselbe glibc-Version
gelinkt wàren.

Am besten machst Du das aber so nicht, sondern baust einen eigenen Kernel
(das ist einfacher, als es sich liest: “aptitude install linux-source…” oder
ketchup(1) von kernel.org, bestehende Konfiguration übernehmen/anpassen,
make-kpkg …, fertig). Ein solcher für das eigene System spezifische Kernel
ist ohnehin meist besser als der für maximale Kompatibilitàt
Kompatibilitàtsgründen mit ungenutzten Features und Treibern vollgestopfte,
aufgeblàhte Distributionskernel.

Muss ich wirklich für jede einzelne Datei suchen, wo die jetzt ist, und
sie per Hand kopieren?



Im Prinzip kannst Du das entsprechende Unterverzeichnis von /lib/modules/…
löschen/umbenennen und das entsprechende Kernelpaket neu installieren
(“aptitude reinstall …”), um den ursprünglichen Zustand wiederherzustellen.

Mit per make-kpkg(1) gebautem und mit dpkg(1) installiertem eigenen Kernel
statt einem “make install” am Paketsystem vorbei wàre das gar nicht erst
passiert.

Der tar-file mit den Treiber nennt sich im übrigen media_build_s2. Keine
Ahnung wo ich den Treiber seinerzeit her hatte.



Entpacken in /usr/src/modules/ und dann “make-kpkg … modules_image”.

PointedEars

Twitter: @PointedEars2
Please do not Cc: me. / Bitte keine Kopien per E-Mail.

Ähnliche fragen