Kompilierung eines eigenen Debian Kernels

Welches Modul/Treiber für welche Hardware, Kernel compilieren...
Antworten
ccc
Beiträge: 1185
Registriert: 16.01.2005 01:08:53

Kompilierung eines eigenen Debian Kernels

Beitrag von ccc » 03.05.2011 14:07:14

Hallo

Da ich einen Treiber anpassen muss, möchte ich einen eigenen Debian Squeeze-Kernel kompilieren.

Ich habe gemäss:

http://www.debianadmin.com/step-by-step ... lenny.html

gemacht, aber nachdem ich /kernel/linux-source-2.6.32/drivers/gpu/drm/i915_drv.h manuell angepasst habe, "make menuconfig" habe ich übersprungen,
bzw. weiss nicht was ich da, in meinem Fall einstellen soll.

Code: Alles auswählen

# make-kpkg clean
und

Code: Alles auswählen

# make-kpkg --rootcmd fakeroot --initrd --revision=custom.001 kernel_image kernel_headers
aber es wurde kein Kernel *.deb File erstellt.
Ups, die Meldung am Schluss ist mir weggerutscht, anyway habe ich vielleicht was vergessen?
Debian Squeeze / Wheezy / Gnome2 / XFCE / LXDE, FreeBSD kde-lite

ccc
Beiträge: 1185
Registriert: 16.01.2005 01:08:53

Re: Kompilierung eines eigenen Debian Kernels

Beitrag von ccc » 03.05.2011 16:02:07

vielleicht werde:

Code: Alles auswählen

# cp /boot/config-$(uname -r) ./.config yes "" | make oldconfig
versuchen statt:

Code: Alles auswählen

# cp /boot/config-$(uname -r) ./.config
Debian Squeeze / Wheezy / Gnome2 / XFCE / LXDE, FreeBSD kde-lite

ccc
Beiträge: 1185
Registriert: 16.01.2005 01:08:53

Re: Kompilierung eines eigenen Debian Kernels

Beitrag von ccc » 03.05.2011 18:28:02

Ich bekomme folgende Fehlermeldung:

Code: Alles auswählen

make[1]: Leaving directory `/save/kernel/linux-source-2.6.32'
/usr/bin/make    ARCH=i386 \
			     -C Documentation/lguest
make[1]: Entering directory `/save/kernel/linux-source-2.6.32/Documentation/lguest'
cc -m32 -Wall -Wmissing-declarations -Wmissing-prototypes -O3 -I../../include -I../../arch/x86/include -U_FORTIFY_SOURCE    lguest.c   -o lguest
lguest.c:37:18: error: zlib.h: No such file or directory
make[1]: *** [lguest] Error 1
make[1]: Leaving directory `/save/kernel/linux-source-2.6.32/Documentation/lguest'
make: *** [debian/stamp/build/kernel] Error 2
Debian Squeeze / Wheezy / Gnome2 / XFCE / LXDE, FreeBSD kde-lite

Benutzeravatar
towo
Beiträge: 4546
Registriert: 27.02.2007 19:49:44
Lizenz eigener Beiträge: GNU Free Documentation License

Re: Kompilierung eines eigenen Debian Kernels

Beitrag von towo » 03.05.2011 18:46:35

apt-get install zlib1g-dev ??

ccc
Beiträge: 1185
Registriert: 16.01.2005 01:08:53

Re: Kompilierung eines eigenen Debian Kernels

Beitrag von ccc » 04.05.2011 00:05:04

Ja danke, das hat gefehlt.
Debian Squeeze / Wheezy / Gnome2 / XFCE / LXDE, FreeBSD kde-lite

ccc
Beiträge: 1185
Registriert: 16.01.2005 01:08:53

Re: Kompilierung eines eigenen Debian Kernels

Beitrag von ccc » 04.05.2011 19:16:16

BTW ich möchte „Kernel module loader“ unter „Loadable module support“ gemäss:

http://www.debian.org/releases/stable/i ... 06.html.de

Code: Alles auswählen

Vergessen Sie nicht, den „Kernel module loader“ unter „Loadable module support“ zu aktivieren (diese Option ist standardmäßig nicht aktiv). Tun Sie dies nicht, wird Ihr Debian-System Probleme machen. 
aktivieren, aber ich finde kein „Kernel module loader“ in "make menuconfig".
Zuletzt geändert von ccc am 05.05.2011 04:07:42, insgesamt 1-mal geändert.
Debian Squeeze / Wheezy / Gnome2 / XFCE / LXDE, FreeBSD kde-lite

cosmac
Beiträge: 4576
Registriert: 28.03.2005 22:24:30

Re: Kompilierung eines eigenen Debian Kernels

Beitrag von cosmac » 05.05.2011 03:50:03

hi,

das ist doch gleich der zweite Punkt auf der ersten Seite :?

Code: Alles auswählen

+---------------------- Linux Kernel Configuration -----------------------+

| |        General setup  --->                                          | |  
| |    [*] Enable loadable module support  --->                         | |  
| |    [*] Enable the block layer  --->
Oder meinst du "Automatic kernel module loading"¹? Das war nur bis 2.6.28 eine eigene Option, jetzt ist das gratis mit dabei sobald man "Enable loadable module support" ankreuzt.

1) http://cateee.net/lkddb/web-lkddb/KMOD.html
Beware of programmers who carry screwdrivers.

ccc
Beiträge: 1185
Registriert: 16.01.2005 01:08:53

Re: Kompilierung eines eigenen Debian Kernels

Beitrag von ccc » 07.05.2011 14:59:07

Vielen Dank, sind aber diese Schritte richtig, um die Driver Datei manuell anzupassen?

1.) cd linux-source-2.6.32
2.) cp /boot/config-$(uname -r) ./.config
3.) make-kpkg clean
4.) driver Datei /mykernel/linux-source-2.6.32/drivers/gpu/drm/i915/i915_drv.h manuell anpassen
5.) make-kpkg --rootcmd fakeroot --initrd --revision=custom.001 kernel_image kernel_headers
6.) dpkg -i *.deb
Debian Squeeze / Wheezy / Gnome2 / XFCE / LXDE, FreeBSD kde-lite

WEARENOTALONE
Beiträge: 278
Registriert: 19.04.2009 18:55:05

Re: Kompilierung eines eigenen Debian Kernels

Beitrag von WEARENOTALONE » 05.07.2011 15:08:42

Hallo,
deine Schritte sehen eigentlich ganz in Ordnung aus. Generell würde ich den Schritt 4 vor Schritt 2 machen, aber in diesem Fall (ohne make menuconfig oder großen Sourcecode Änderungen) sollte es auch so funktioneren.

Falls zu zufällig ein i386 System verwendest, aber einen *-amd64 Kernel (wie der reguläre Debian Kernel) haben möchtest, kannst du es auch so machen:

Code: Alles auswählen

#Kernel Sourcen installieren & extrahieren und Build-Variablen setzen
apt-get install linux-source-2.6
umask 022 #Default umask
export CONCURRENCY_LEVEL=4 # Vier parallele Threads (?!?), siehe http://forums.debian.net/viewtopic.php?t=33960
tar --preserve -xjf linux-source-2.6.32.tar.bz2
cd /usr/src/linux-source-2.6.32

#Jetzt Patches anwenden / Sourcen verändern etc, bspw:
cat /pfad/zu/kernel.patch | patch -p1
make clean && make mrproper

#Kernel konfigurieren
cp /boot/config-`uname -r` .config
make ARCH=x86_64 menuconfig

#Kernel bauen
make-kpkg --cross-compile - --arch=amd64 clean
time fakeroot make-kpkg --initrd binary --cross-compile - --arch=amd64 --revision "2.6.32-35~mein-kernel-v11" --append_to_version "-5-amd64-foobar"
Danach musst du den Kernel nur noch installieren: dpkg -i /usr/src/linux-image-2.6.32-5-amd64-foobar_2.6.32-35~mein-kernel-v11_i386.deb

Auf diese Weise kompilierst du den Linux Kernel inkl. der Kernel Patches von Debian. Wenn du kein Cross-Compile willst, dann lass einfach --cross-compile - und --arch=amd64 weg.

Gruß,
WANA
PS: Wenn ich irgendwo ein Fehler eingebaut habe, bitte melden!

ccc
Beiträge: 1185
Registriert: 16.01.2005 01:08:53

Re: Kompilierung eines eigenen Debian Kernels

Beitrag von ccc » 09.07.2011 19:16:21

Vielen herzlichen Dank!
Debian Squeeze / Wheezy / Gnome2 / XFCE / LXDE, FreeBSD kde-lite

Antworten