Fehler beim kompilieren vom eigenen Kernel

Welches Modul/Treiber für welche Hardware, Kernel compilieren...
Antworten
tcash
Beiträge: 3
Registriert: 08.05.2008 21:25:46

Fehler beim kompilieren vom eigenen Kernel

Beitrag von tcash » 08.05.2008 21:47:41

Hallo,

beim kompilieren meines eigenen Kernels erhalte ich eine Fehlermeldung und ich komme nicht mehr weiter.
Ich habe folgende Schritte durchgeführt.

download der kernelquellen von http://www.kernel.org/pub/linux/kernel/v2.6/?C=S;O=D linux-2.6.23.17.tar.gz

entpacken nach /usr/src/ und ln -s /usr/src/linux-2.6.23.17 /usr/src/linux

cp /boot/config-2.6.18-6-amd64 ./.config

make oldconfig

make menuconfig

make-kpkg kernel_image modules_image

der erste Teil make-kpkg kernel_image wird noch ausgeführt, doch bei modules_image erhalte ich die Fehler

make-kpkg modules_image
exec debian/rules DEBIAN_REVISION=2.6.23.17-10.00.Custom modules_image
for module in ; do \
if test -d $module; then \
(cd $module; \
if ./debian/rules KVERS="2.6.23.17" KSRC="/usr/src/linux" \
KMAINT="Unknown Kernel Package Maintainer" KEMAIL="unknown@unconfigured.in.etc.kernel-pkg.conf" \
KPKG_DEST_DIR="/usr/src/linux/.." \
KPKG_MAINTAINER="Unknown Kernel Package Maintainer" \
KPKG_EXTRAV_ARG="" \
ARCH="x86_64" \
KDREV="2.6.23.17-10.00.Custom" kdist_image; then \
echo "Module $module processed fine"; \
else \
echo "Module $module failed."; \
if [ "X" != "X" ]; then \
echo "Perhaps $module does not understand --rootcmd?"; \
echo "If you see messages that indicate that it is not"; \
echo "in fact being built as root, please file a bug "; \
echo "against $module."; \
fi; \
echo "Hit return to Continue"; \
read ans; \
fi; \
); \
else \
echo "Module $module does not exist"; \
echo "Hit return to Continue?"; \
fi; \
done


Ich habe schon mal im Forum gesucht, aber ich finde keine passenden Eintrag, wer kann helfen, danke schon im Voraus.

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Re: Fehler beim kompilieren vom eigenen Kernel

Beitrag von gms » 08.05.2008 22:10:27

tcash hat geschrieben: der erste Teil make-kpkg kernel_image wird noch ausgeführt, doch bei modules_image erhalte ich die Fehler

Code: Alles auswählen

make-kpkg modules_image
exec debian/rules  DEBIAN_REVISION=2.6.23.17-10.00.Custom  modules_image
for module in  ; do                       \
...
es werden anscheinend keine Sourcen in "/usr/src/modules" genfunden, welche externen Module möchtest du eigentlich über modules_image erzeugen ?

Gruß
gms

tcash
Beiträge: 3
Registriert: 08.05.2008 21:25:46

Re: Fehler beim kompilieren vom eigenen Kernel

Beitrag von tcash » 08.05.2008 22:52:05

Ich habe vorher mit Gentoo gearbeitet und bei meinen manuell erstellten Kernel musste ich für alle mit M belegten Kernel optionen beim kompilieren folgendes Kommando absetzen

make && make modules_install

wobei der 2. Teil make modules_install die Kernelmodule erzeugt hat.

Ich hoffe ja nun nicht, dass ich völlig falsch liege und das Kommando modules_image auch die Kernelmodule erzeugt.


Gruß tcash

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Re: Fehler beim kompilieren vom eigenen Kernel

Beitrag von gms » 08.05.2008 22:57:37

die Module die aus den Kernel-Sourcen erzeugt werden, werden schon mit dem "kernel_image" erzeugt und auch beim Installieren des Pakets mitinstalliert
Mit "modules_image" könntest du für zusätzliche Treiber von Fremdherstellern ( z.B nVidia Grafiktreiber, usw ) eigene Debianpakete bauen.

Dein neuer Kernel müßte daher mit "dpkg -i /usr/src/linux-image...usw" installierbar sein.

Gruß
gms

edit: Ich habe es erst jetzt geschnallt, also spät aber doch, auch dir ein "Willkommen im Forum!"

tcash
Beiträge: 3
Registriert: 08.05.2008 21:25:46

Re: Fehler beim kompilieren vom eigenen Kernel

Beitrag von tcash » 08.05.2008 23:11:15

Peinlich, ich sollte mich doch ein wenig besser einarbeiten, aber man hat ja wenig Zeit, meistens abends ein paar Stunden und dann möchte man es ja auch schnell fertig bekommen, danke!

Ich habe gerade im Wiki folgendes zum Kernel kompilieren gelesen


make bzImage
make modules
make modules_install
cp /usr/src/linux/arch/i386/boot/bzImage /boot/NEWKERNEL

Das kommt mir bekannt vor, aber es scheinen ja alte Befehle zum kompilieren vom Kernel zu sein, wo besteht eigentlich der Vorteil zu den neuen Befehlen?

make-kpkg kernel_image
dpkg -i /usr/src/linux-image...usw"

Gruß tcash

Benutzeravatar
cirrussc
Beiträge: 6582
Registriert: 26.04.2007 19:47:06
Lizenz eigener Beiträge: MIT Lizenz

Re: Fehler beim kompilieren vom eigenen Kernel

Beitrag von cirrussc » 08.05.2008 23:33:16

Hi,
tcash hat geschrieben:make bzImage
make modules
make modules_install
cp /usr/src/linux/arch/i386/boot/bzImage /boot/NEWKERNEL
Das sind keine alten, das ist der klassische Weg.
tcash hat geschrieben:Das kommt mir bekannt vor, aber es scheinen ja alte Befehle zum kompilieren von Kernel zu sein, wo besteht eigentlich der Vorteil zu den neuen Befehlen?
Debian way [1].

Btw sieht mein make-kpkg Aufruf so aus:

Code: Alles auswählen

CONCURRENCY_LEVEL=2 make-kpkg --uc --us --initrd --revision=0.3 --append-to-version=-ibm2g --arch-in-name kernel_image modules 2>&1 | tee make3.log
Das target "modules" muss also auch mit dazu. Bin mir aber nicht sicher, ob es nicht doch im kernel_image drin ist.

[1] http://wiki.debianforum.de/DebianizedLinuxKernel
Gruß cirrussc
--------------------
„Der Mensch steigert zur Zeit die Nutzung dessen, was seiner Willkür unterliegt - und kommt sich sehr klug dabei vor.“ H. Gruhl

Spasswolf
Beiträge: 3472
Registriert: 30.11.2005 10:32:22
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Wald

Re: Fehler beim kompilieren vom eigenen Kernel

Beitrag von Spasswolf » 09.05.2008 00:02:02

Bei mir war ein immer

Code: Alles auswählen

make-kpkg --initrd kernel_image
vollkommen ausreichend.

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Re: Fehler beim kompilieren vom eigenen Kernel

Beitrag von gms » 09.05.2008 00:07:46

ja, so wie es bei Debian das "make-kpkg" Kommando gibt, gibt es bei Gentoo das "genkernel" Kommando. Das sind im Prinzip Wrapper für die altbewährte Methode:

Code: Alles auswählen

make bzImage modules && make modules_install install
Mit "make-kpkg" werden allerdings die gebauten Kernel noch zusätzlich in das Debian-Paketmanagement integriert und können daher sehr leicht auch wieder deinstalliert werden. Wenn die Option "--initrd" verwendet wird, dann wird auch bei der Installation automatisch eine "initrd" erzeugt, der installierte Kernel kann auch automatisiert in die Grub-Konfiguration eingetragen werden, ein zusätzliches Paket mit den Kernel-Headern kann erzeugt werden, ....usw.
cirrussc hat geschrieben: Das target "modules" muss also auch mit dazu. Bin mir aber nicht sicher, ob es nicht doch im kernel_image drin ist.
ohne die Module könnte kaum ein vernünftiges "linux-image" Debianpaket erzeugt werden, das Target "modules" ist also im "kernel_image" enthalten und braucht nicht extra angegeben werden

Gruß
gms

Benutzeravatar
cirrussc
Beiträge: 6582
Registriert: 26.04.2007 19:47:06
Lizenz eigener Beiträge: MIT Lizenz

Re: Fehler beim kompilieren vom eigenen Kernel

Beitrag von cirrussc » 09.05.2008 00:25:43

gms hat geschrieben:ohne die Module könnte kaum ein vernünftiges "linux-image" Debianpaket erzeugt werden, das Target "modules" ist also im "kernel_image" enthalten und braucht nicht extra angegeben werden
Ja, irgend wie leuchtet das ein.
Gruß cirrussc
--------------------
„Der Mensch steigert zur Zeit die Nutzung dessen, was seiner Willkür unterliegt - und kommt sich sehr klug dabei vor.“ H. Gruhl

katzenfan
Beiträge: 651
Registriert: 19.04.2008 22:59:51

Re: Fehler beim kompilieren vom eigenen Kernel

Beitrag von katzenfan » 09.05.2008 03:04:08

tcash hat geschrieben: der erste Teil make-kpkg kernel_image wird noch ausgeführt, doch bei modules_image erhalte ich die Fehler

Code: Alles auswählen

make-kpkg modules_image
Warum machst Du ein "modules_image"? Benötigst Du doch für einen funktionierenden Kernel nicht. Das ist eine bessere Variante

Code: Alles auswählen

make-kpkg kernel_image --initrd
Da wird Dir eine installierbare Debian-Datei erstellt, die alles enthält, such die Module, sofern Du diese via "make menuconfig" vorgesehen hast.

ciao
katzenfan

PS:. Das steht dazu im Anwenderhandbuch:
--initrd
Wenn make-kpkg die Option kernel-image übergeben wurde, so werden durch diese Option alle zusätzlichen Aktionen aufgerufen, die notwendig sind, um eine passende Init-RAM-Disk zu erzeugen.
Hierbei ist zu beachten, dass ein zusätzlicher Patch benötigt wird, der bereits in den Debian-Kernel-Sourcen enthalten ist. Wird dieser „cramfs“-Patch nicht verwendet, so muss die Konfiguration von mkinird so angepasst werden, dass cramfs nicht benutzt wird.

Antworten