Discussion:
Kernel-Module kompilieren / Vorgehensweise
(zu alt für eine Antwort)
David Rummel
2004-03-05 07:25:11 UTC
Permalink
Hallo NG,

ich bin, was Kernelkompilierung unter linux und alles drumherum betrifft
noch Newbie und hab deswegen eine Frage: Ich habe bei mir zu Hause (wo
ich momentan leider keinen Internetanschluss habe) mir Debian 3.0r2 von
CDs installiert und probiert den selbst mitgebrachten NVIDIA-Installer
für meine Grafikkarte zu installieren. Das ging natürlich nicht ganz
reibungsfrei, weil der Installer probierte, ein passendes Modul von der
NVIDIA-FTP-Site runterzuladen, was natürlich fehlschlug. Also musste ich
das Modul selber kompilieren, fand aber leider nicht die Sourcen für
meinen Kernel (2.4.18-BF24) und hab deswegen mit dselect die Sourcen des
Kernels 2.4.18 installiert und meinen ersten Kernel selbstkompiliert,
was zu meiner Verwunderung ( ;) ) auch problemlos klappte, das
anschließende erstellen des Kernelmoduls für meine Grafikkarte klappte
auch und es lies sich auch laden, allerdings ist das momentan noch dass
einzige Modul, dass ich für meinen Kernel besitze, was wiederumg dazu
führt, dass eine ganze Reihe Sachen nicht mehr klappen :) Jetzt deswegen
zu meiner eigentlichen Frage, und zwar suche ich eine Doku, die
beschreibt, wie ich jetzt vorgehen muss, um meine Kernel-Module wieder
zu kriegen.
Danke schonmal...

David.
Christoph Wegscheider
2004-03-05 08:02:17 UTC
Permalink
Post by David Rummel
Kernels 2.4.18 installiert und meinen ersten Kernel selbstkompiliert,
Gratulation
Post by David Rummel
was zu meiner Verwunderung ( ;) ) auch problemlos klappte, das
anschließende erstellen des Kernelmoduls für meine Grafikkarte klappte
auch und es lies sich auch laden, allerdings ist das momentan noch dass
einzige Modul, dass ich für meinen Kernel besitze, was wiederumg dazu
führt, dass eine ganze Reihe Sachen nicht mehr klappen :) Jetzt deswegen
zu meiner eigentlichen Frage, und zwar suche ich eine Doku, die
beschreibt, wie ich jetzt vorgehen muss, um meine Kernel-Module wieder
zu kriegen.
du machst in etwa folgendes:
# cd /usr/src/kernel-sources-2.4.18 (oder so ähnlich)
# make mrproper
# cp /boot/config-2.4.18-bf2.4 .config
# make menuconfig (um ihn umzu konfigurieren evt. auch xconfig)
# make-kpkg --revision 1 kernel_image
# dpkg -i ../kernel-image-2.4.18-1.deb (oder so ähnlich)

Jedes Debian Kernel Paket legt unter /boot die jeweilige config ab, die du
dann nur noch in das Kernel source Verzeichnis copieren musst. mit
make-kpkg erstellst du dann ein deb des neuen Kernels mit allen Modulen.
lilo nicht vergessen, oder besser grub installieren.

Externe Module wie der nvidia treiber installierst du am besten mit dem
entsprechenden deb (evt. von backports.org)
danach:

# cd /usr/src
# tar xzf module.tar.gz (z.b.: nvidia-kernel-source.tar.gz)
# cd kernel-sources-2.4.18
# make-kpkg --revision 1 modules_image
# dpkg -i ../nvidia-module.deb (oder so ähnlich)


Das gezeigte schema läßt sich auf alle kernels und debian module anwenden.
Auch auf Kernels von kernel.org

Viel Glück

Christoph
David Rummel
2004-03-05 08:41:21 UTC
Permalink
Post by Christoph Wegscheider
Gratulation
Danke!
Post by Christoph Wegscheider
# cd /usr/src/kernel-sources-2.4.18 (oder so ähnlich)
# make mrproper
# cp /boot/config-2.4.18-bf2.4 .config
Bedeutet das, dass ich meine alte Konfiguration übernehme, also den
2.4.18 Kernel mit den "Einstellungen" des 2.4.18-BF24 kompiliere?
Post by Christoph Wegscheider
# make menuconfig (um ihn umzu konfigurieren evt. auch xconfig)
Kann ich dann ja wahrscheinlich überspringen, oder?
Post by Christoph Wegscheider
# make-kpkg --revision 1 kernel_image
# dpkg -i ../kernel-image-2.4.18-1.deb (oder so ähnlich)
OK, wenn ich das .deb installiere, werden nun vermutlich der Kernel und
die Module installiert, richtig?
Post by Christoph Wegscheider
Externe Module wie der nvidia treiber installierst du am besten mit dem
entsprechenden deb (evt. von backports.org)
Das Problem war ja, das ich momentan zu Hause keinen Internet-Zugang
habe, allerdings, wenn ich einen funktionierenden Kernel mitsamt Modulen
und Sourcen habe, kann ich ja mein NVIDIA-Kernel Modul
selberkompilieren, das hat ja geklappt :)
Post by Christoph Wegscheider
# cd /usr/src
# tar xzf module.tar.gz (z.b.: nvidia-kernel-source.tar.gz)
# cd kernel-sources-2.4.18
^^^^^^^^^^^^^^^^^^^^^

das soll sicherlich "cd nvidia-sources" heißen, oder?
Post by Christoph Wegscheider
# make-kpkg --revision 1 modules_image
# dpkg -i ../nvidia-module.deb (oder so ähnlich)
Dankeschön schonmal für Deine Antwort.

Grüße

David.
Eike Sauer
2004-03-05 09:59:46 UTC
Permalink
[nvidia-Treiber]
Post by David Rummel
Post by Christoph Wegscheider
# cd /usr/src
# tar xzf module.tar.gz (z.b.: nvidia-kernel-source.tar.gz)
# cd kernel-sources-2.4.18
^^^^^^^^^^^^^^^^^^^^^
das soll sicherlich "cd nvidia-sources" heißen, oder?
Nein, das stimmt so. Der sucht sich dann die Module unter
/usr/src/modules/...

Ciao,
Eike
David Rummel
2004-03-05 12:35:37 UTC
Permalink
Post by Eike Sauer
Post by David Rummel
das soll sicherlich "cd nvidia-sources" heißen, oder?
Nein, das stimmt so. Der sucht sich dann die Module unter
/usr/src/modules/...
OK, danke für den Hinweis, dann werd ich das wohl heute Nachmittag mal
ausprobieren...

Grüße
David.
Christoph Wegscheider
2004-03-05 14:11:05 UTC
Permalink
Post by David Rummel
Post by Christoph Wegscheider
# cp /boot/config-2.4.18-bf2.4 .config
Bedeutet das, dass ich meine alte Konfiguration übernehme, also den
2.4.18 Kernel mit den "Einstellungen" des 2.4.18-BF24 kompiliere?
Genau, nur zur Ergänzung wenn du auf eine neue Version umsteigst geht es
auch aber du solltest zusätzlich noch ein make oldconfig machen damit evt.
veränderte Optionen angepasst werden. Bei großen Sprüngen (2.4->2.6) sollte
man das aber vermeiden.
Post by David Rummel
Post by Christoph Wegscheider
# make menuconfig (um ihn umzu konfigurieren evt. auch xconfig)
Kann ich dann ja wahrscheinlich überspringen, oder?
Ja, aber du wirst in deiner Linuxkariere sicher einmal die eine oder ander
Option setzen müssen darum hab ich es mal angeführt
Post by David Rummel
Post by Christoph Wegscheider
# make-kpkg --revision 1 kernel_image
# dpkg -i ../kernel-image-2.4.18-1.deb (oder so ähnlich)
OK, wenn ich das .deb installiere, werden nun vermutlich der Kernel und
die Module installiert, richtig?
Kernel und config nach /boot die Module nach /lib/modules/2.4.18. Als
Anmerkung zur revision die solltest du jedesmal erhöhen wenn du an der
Config was änderst, dann kannst du das neue deb einfach drüber
installieren, dpkg mekert zwar aber wenn du danach gleich einen Neustart
machst sollte es keine Probleme geben.
Post by David Rummel
Post by Christoph Wegscheider
Externe Module wie der nvidia treiber installierst du am besten mit dem
entsprechenden deb (evt. von backports.org)
Das Problem war ja, das ich momentan zu Hause keinen Internet-Zugang
habe, allerdings, wenn ich einen funktionierenden Kernel mitsamt Modulen
und Sourcen habe, kann ich ja mein NVIDIA-Kernel Modul
selberkompilieren, das hat ja geklappt :)
Selber kompilieren ist fein, aber ich bevorzuge die angebotenen debs da du
dich nicht mit Abhängigkeiten usw. herumschalgen musst. Außerdem sollte man
IMHO auf eine strikte Trennung zwischen Packetsystem und selbstkompiliertem
Zeug achten, da sonst ersteres leicht inkonsistent wird (z.B.:
selbstkompilierte Programme nach /user/local und nicht nach /usr).
Post by David Rummel
Post by Christoph Wegscheider
# cd /usr/src
# tar xzf module.tar.gz (z.b.: nvidia-kernel-source.tar.gz)
# cd kernel-sources-2.4.18
^^^^^^^^^^^^^^^^^^^^^
das soll sicherlich "cd nvidia-sources" heißen, oder?
Wie Eike schon sagte nein das stimmt.
Post by David Rummel
Post by Christoph Wegscheider
# make-kpkg --revision 1 modules_image
# dpkg -i ../nvidia-module.deb (oder so ähnlich)
Man sollte übrigens kein make-kpkg clean | make clean | make mrproper
zwischen Kernel und Modul kompilieren machen, aber meistens funktioniert es
trotzdem. bevor du eine neue --revision startest musst du make-kpkg clean
ausführen.
Post by David Rummel
Dankeschön schonmal für Deine Antwort.
Grüße
David.
Bitte sehr

Christoph

Loading...