Website-Icon .: blog cscholz.io :.

Debian: Kernel 2.6.28-1 und linux-kbuild-2.6 installieren

Da im Kernel 2.6.26 im Debian Lenny ein Bug (Bug-ID 12687) enthalten ist, der auf einigen Maschinen das System kurzzeitig zum einfrieren bringt habe ich mich dazu entschieden, der Kernel 2.6.28-1 zu installieren.

INFO: task cron:19767 blocked for more than 120 seconds.
echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
cron          D 3b30efd5     0 19767   2884
        c1cd72c0 00000082 00000000 3b30efd5 0000750f c1cd744c c17cbfa0 00000000
        00000000 c01dcca6 00000001 00000000 f1269f24 0485cae6 c17cbfa0 c013604c
        7fffffff 7fffffff f1269f68 00000002 c02b84f1 c01344c2 00000000 00000000
 Call Trace:
  [<c01dcca6>] __next_cpu+0x12/0x21
  [<c013604c>] getnstimeofday+0x37/0xbc
  [<c02b84f1>] schedule_timeout+0x13/0x86
  [<c01344c2>] ktime_get_ts+0x22/0x49
  [<c01344f6>] ktime_get+0xd/0x21
  [<c01190e6>] hrtick_start_fair+0xeb/0x12c
  [<c02b7c15>] wait_for_common+0xaf/0x10f
  [<c011b682>] default_wake_function+0x0/0x8
  [<c0121b89>] do_fork+0x17f/0x1dc
  [<c0102173>] sys_vfork+0x18/0x1c
  [<c01038ce>] syscall_call+0x7/0xb
  =======================
 INFO: task cron:19768 blocked for more than 120 seconds.
 "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
 cron          D cd1314a4     0 19768   2884
        c1cd6ea0 00000082 00000000 cd1314a4 0000751a c1cd702c c17cbfa0 00000000
        00000000 c01dcca6 000020d4 00000000 c6381f24 04866280 c17cbfa0 c013604c
        7fffffff 7fffffff c6381f68 00000002 c02b84f1 c01344c2 00000000 00000000

Da ich jedoch auch einen VMWare Server auf dem System laufen haben, muss ich die header Dateien ebenfalls herunteralden um die VMWare Module neu zu kompilieren. Die Header-Dateien sind wiederrum vom entsprechenden linux-kbuild-2.6 Paket abhängig, was nicht über apt-get installiert werden kann, selbst compiliert werden muss.

Um dieses Paket nun zu kompilieren, müssen als erstes die entsprechenden Server in die sources.list aufgenommen werden, sowie der entsprechenden Schlüssel für die neuen Quellen importiert werden.

wget -q -O - http://kernel-archive.buildserver.net/key | apt-key add -

Prüfen ob der Schlüssel hinzugefügt wurde

apt-key list

sources.list erweitern

echo "deb http://kernel-archive.buildserver.net/debian-kernel/ trunk main" >> /etc/apt/sources.list
echo "deb-src http://kernel-archive.buildserver.net/debian-kernel/ trunk main" >> /etc/apt/sources.list

Um nun das linux-kbuild Paket compilieren und installieren zu können, sollte folgendes Paket bereits installiert sein

apt-get update && apt-get install build-essential

anschließend werden die sources heruntergeladen

cd /usr/src
apt-get source -t kernel-dists-trunk linux-kbuild-2.6
cd linux-kbuild-2.6-2.6.28

Vor dem compilieren sollten die Abhängigkeiten geprüft werden um evtl. fehlende Pakete nach zu installieren.

dpkg-checkbuilddeps
dpkg-checkbuilddeps: Nicht erfüllte Bauabhängigkeiten: debhelper (>= 4.1.0)
apt-get install debhelper

Nun kann das Paket compiliert werden

dpkg-buildpackage -us -uc

um es anschließend zu installieren

cd ..
dpkg -i linux-kbuild-2.6.28_2.6.28-1~snapshot.12595_amd64.deb

Jetzt kann auch der entsprechende Kernel installiert werden.

apt-get install linux-headers-2.6.28-1-amd64 linux-image-2.6.28-1-amd64

PGP Schlüssel fehlt – nur zur Information

Sollte das compilieren mit nachfolgende Meldung abbrechen, so haben die dpkg-buildpackage ohne die Parameter -us -uc ausgeführt.

[...]
make[2]: Leaving directory `/usr/src/linux-kbuild-2.6-2.6.28'
make[1]: Leaving directory `/usr/src/linux-kbuild-2.6-2.6.28'
 signfile linux-kbuild-2.6_2.6.28-1~snapshot.12595.dsc
gpg: Übersprungen "Bastian Blank <waldi@debian.org>": Geheimer Schlüssel ist nicht vorhanden
gpg: [stdin]: clearsign failed: Geheimer Schlüssel ist nicht vorhanden
[...]

Der Versuch den entsprechenden PGP Schlüssel zu importieren scheiterte bei mir…

gpg --keyserver hkp://subkeys.pgp.net --keyserver-options verbose --search-keys "waldi@debian.org"

Wer nicht über die console nach PGP Schlüsseln suchen möchte, kann dies auch per Webinterface tun.

Wer die Signatur des Schlüssels bereits kennt, kann diesen auch direkt hinzufügen

gpg --keyserver wwwkeys.eu.pgp.net --recv-keys 45DAFAFC && apt-key add /root/.gnupg/pubring.gpg

Abschließend sollte man prüfen ob der zu installierende Schlüssel auch installiert wurde und gültig ist

gpg --list-keys

Links:

Die mobile Version verlassen