Kernel kompiliert, aber wo ist build/ ?
Kernel kompiliert, aber wo ist build/ ?
Hallo,
ich habe nach dem Weg, der in dem Paket newbiedoc steht, einen Kernel erzeugt und mit dpkg -i installiert. Da ich Kernelmodule programmieren will brauche ich auch das Verzeichnis /lib/modules/kernelversion/build.
Jetzt habe ich das Problem, dass in /lib/modules/ 2 Verzeichnisse sind.
einmal 2.6.8 und einmal 2.6.8-2-386.
Mein System (uname -r) ist 2.6.8-2-386. aber in diesem entsprechendem verzeichnis ist kein "build"ordner, sondern nur in 2.6.8
Wenn ich aber das hallowelt kernelmodul mit diesem buildverzeichnis kompiliere, sagt er was von "invalid module format".
Was kann ich denn jetzt tun, damit 2.6.8-2-386 (vermutlich erst nach dem neuen kernelbau) ein build verzeichnis enthält? Ich weiss atm wirklich nicht weiter.
Weiss einer von euch einen Tip`?
Ich habe keine Ahnung woran das liegen könnte, und leider daher auch keinen Ansatzpunkt :/
Danke, mfG, menace
ich habe nach dem Weg, der in dem Paket newbiedoc steht, einen Kernel erzeugt und mit dpkg -i installiert. Da ich Kernelmodule programmieren will brauche ich auch das Verzeichnis /lib/modules/kernelversion/build.
Jetzt habe ich das Problem, dass in /lib/modules/ 2 Verzeichnisse sind.
einmal 2.6.8 und einmal 2.6.8-2-386.
Mein System (uname -r) ist 2.6.8-2-386. aber in diesem entsprechendem verzeichnis ist kein "build"ordner, sondern nur in 2.6.8
Wenn ich aber das hallowelt kernelmodul mit diesem buildverzeichnis kompiliere, sagt er was von "invalid module format".
Was kann ich denn jetzt tun, damit 2.6.8-2-386 (vermutlich erst nach dem neuen kernelbau) ein build verzeichnis enthält? Ich weiss atm wirklich nicht weiter.
Weiss einer von euch einen Tip`?
Ich habe keine Ahnung woran das liegen könnte, und leider daher auch keinen Ansatzpunkt :/
Danke, mfG, menace
- meandtheshell
- Beiträge: 4054
- Registriert: 14.01.2005 17:51:30
naja - das build verzeichnis ist eben "da" wo kompiliert wird - wo das ist hängt davon ab wie du kompilierst und was du deinem ./config mitgibst bzw. wenn du sonst welche wege wählst zu kompilieren wo du den make aufruf machst, wo die sourcen liegen etc.
das das kompilieren nicht funkt. wenn modul source nicht zur kernel version passt ist dann klar - den es gibt seit einiger zeit eine versions kontrolle - nicht nur beim laden der module
markus
info bezüglich arten zu kompilieren usw.
standart way
http://de.gentoo-wiki.com/Kernel_manuell_kompilieren (I recommend this one)
http://www.digitalhermit.com/linux/Kern ... HOWTO.html
http://www.tabr.org/projekte/kernel.html
the debian way
http://debiananwenderhandbuch.de/kernelbauen.html
das das kompilieren nicht funkt. wenn modul source nicht zur kernel version passt ist dann klar - den es gibt seit einiger zeit eine versions kontrolle - nicht nur beim laden der module
markus
info bezüglich arten zu kompilieren usw.
standart way
http://de.gentoo-wiki.com/Kernel_manuell_kompilieren (I recommend this one)
http://www.digitalhermit.com/linux/Kern ... HOWTO.html
http://www.tabr.org/projekte/kernel.html
the debian way
http://debiananwenderhandbuch.de/kernelbauen.html
Zuletzt geändert von meandtheshell am 07.11.2005 10:03:35, insgesamt 1-mal geändert.
- KBDCALLS
- Moderator
- Beiträge: 22455
- Registriert: 24.12.2003 21:26:55
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Dortmund
-
Kontaktdaten:
Das ist eh ein Link auf das Verzeichnis der Kernel-headers , Das könntest du per Hand anlegen. Wenn die Sourcen unverändert sind, (so wie nach dem kompilieren) könnte der Link auch dahin zeigen.
Wenn dann kompiliere ich so
Und so um die neuen Namen zu berücksichtigen
Wenn dann kompiliere ich so
Code: Alles auswählen
make-kpkg --append-to-version=-1-k7 --revision 1 debian
make-kpkg --append-to-version=-1-k7 --revision 1 kernel-image kernel-headers
Und so um die neuen Namen zu berücksichtigen
Code: Alles auswählen
make-kpkg --stem linux --append-to-version -0-k7 --revision 2.6.13-0 debian
make-kpkg --stem linux --append-to-version -0-k7 --revision 2.6.13-0 kernel-headers kernel-image
Was haben Windows und ein Uboot gemeinsam?
Kaum macht man ein Fenster auf, gehen die Probleme los.
EDV ist die Abkürzung für: Ende der Vernunft
Bevor du einen Beitrag postest:
Kaum macht man ein Fenster auf, gehen die Probleme los.
EDV ist die Abkürzung für: Ende der Vernunft
Bevor du einen Beitrag postest:
- Kennst du unsere Verhaltensregeln
- Lange Codezeilen/Logs gehören nach NoPaste, in Deinen Beitrag dann der passende Link dazu.
Hallo,
danke für die Tips. Allerdings habe ich nochmal versucht den Kernel zu kompilieren, und die config mit make config neu gemacht, mit dem Ergebnis, dass weder dhclient eth0 nicht findet, der XServer nicht startet und eine Reihe weiterer Sachen.
LearningbyDoing ist halt nicht immer von Erfolg gekrönt *seufz*
Gibt es evtl. für PCs oder Laptops (Thinkpad t20) irgendwo Standardconfigs, die ich laden kann, damit dieser funktioniert?
danke für die Tips. Allerdings habe ich nochmal versucht den Kernel zu kompilieren, und die config mit make config neu gemacht, mit dem Ergebnis, dass weder dhclient eth0 nicht findet, der XServer nicht startet und eine Reihe weiterer Sachen.
LearningbyDoing ist halt nicht immer von Erfolg gekrönt *seufz*
Gibt es evtl. für PCs oder Laptops (Thinkpad t20) irgendwo Standardconfigs, die ich laden kann, damit dieser funktioniert?
- meandtheshell
- Beiträge: 4054
- Registriert: 14.01.2005 17:51:30
gibt es sicher - ask google - aber du möchtest ja was lernen oder - siehe gentoo link oben (da wird erklärt was du bei menuconfig aktivierst wenn du diese oder jene hardware hast) - statt emerge musst du eben apt verwendenmenace hat geschrieben:
Gibt es evtl. für PCs oder Laptops (Thinkpad t20) irgendwo Standardconfigs, die ich laden kann, damit dieser funktioniert?
BTW - du sagst du konfigurierst mittels make config - da bist du aber ein ausgewachsener masochist - mache es mit make menuconfig
markus
Zuletzt geändert von meandtheshell am 07.11.2005 11:40:26, insgesamt 1-mal geändert.
- KBDCALLS
- Moderator
- Beiträge: 22455
- Registriert: 24.12.2003 21:26:55
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Dortmund
-
Kontaktdaten:
Du könntest erst mal versuchen mit
Eine Konfiguration zu erstellen die ohne Intrd auskommt.
Oder du nimmst dir ein Debianimage einens 2.6.xx Kernels und nimmt davon die Configdatei, Allerdings brauchst du dann eine Initrd. Option --initrd . Damit das funktioniniert müssen yaird oder initramfs-tools installiert sein bei einem Kernel 2.6.14
Code: Alles auswählen
make defconfig
Oder du nimmst dir ein Debianimage einens 2.6.xx Kernels und nimmt davon die Configdatei, Allerdings brauchst du dann eine Initrd. Option --initrd . Damit das funktioniniert müssen yaird oder initramfs-tools installiert sein bei einem Kernel 2.6.14
Was haben Windows und ein Uboot gemeinsam?
Kaum macht man ein Fenster auf, gehen die Probleme los.
EDV ist die Abkürzung für: Ende der Vernunft
Bevor du einen Beitrag postest:
Kaum macht man ein Fenster auf, gehen die Probleme los.
EDV ist die Abkürzung für: Ende der Vernunft
Bevor du einen Beitrag postest:
- Kennst du unsere Verhaltensregeln
- Lange Codezeilen/Logs gehören nach NoPaste, in Deinen Beitrag dann der passende Link dazu.
du hattest aber schon nen kernel laufen, der funktioniert hat?
dann kopier dir die config dieses kernels in dein kernel-source verzeichnis. die configs liegen (mit etwas glück ) unter /boot/config-[kernelversion].
anschliessend benennst du diese config im source verzeichnis in .config um, machst einmal ein make oldconfig und anschliessend make menuconfig. stellst dann noch ein, was du so brauchst und kannst dann make-kpkg benutzen.
beispielsweise: make-kpkg --append-to-version=.meinkernel1 kernel_image modules_image
anschliessend kannst du das .deb mittels dpkg -i installieren.
die ganzen how-tos sind natürlich ausführlicher. aber vielleicht hilft mal eine reduktion auf den einfachsten weg weiter
dann kopier dir die config dieses kernels in dein kernel-source verzeichnis. die configs liegen (mit etwas glück ) unter /boot/config-[kernelversion].
anschliessend benennst du diese config im source verzeichnis in .config um, machst einmal ein make oldconfig und anschliessend make menuconfig. stellst dann noch ein, was du so brauchst und kannst dann make-kpkg benutzen.
beispielsweise: make-kpkg --append-to-version=.meinkernel1 kernel_image modules_image
anschliessend kannst du das .deb mittels dpkg -i installieren.
die ganzen how-tos sind natürlich ausführlicher. aber vielleicht hilft mal eine reduktion auf den einfachsten weg weiter