DEBIAN KERNEL BAUEN: Unterschied zwischen den Versionen
(Die Seite wurde neu angelegt: „NEUEN DEBIAN KERNEL BAUEN (Stand 26.05.2011) [ © Oliver Schuetz aka OppTupacShakur | http://OPPServer.net | http://unix.oppserver.net] sudo aptitude instal…“) |
KKeine Bearbeitungszusammenfassung |
||
Zeile 1: | Zeile 1: | ||
NEUEN DEBIAN KERNEL BAUEN (Stand | NEUEN DEBIAN KERNEL BAUEN (Stand 29.04.2013) [ © Oliver Schuetz aka OppTupacShakur | http://OPPServer.net | http://unix.oppserver.net] | ||
Alle folgenden Befehle sind als Benutzer root auszufuehren: | |||
Benoetigte Pakete installieren: | |||
aptitude install kernel-package build-essential libc6-dev gcc debianutils make libncurses5-dev initrd-tools | |||
Nach /usr/src wechseln: | |||
cd /usr/src | cd /usr/src | ||
( | Hierher nun die Kernel Sourcen laden (Version 3.8.10 sollte nach Bedarf angepasst werden): | ||
wget http://kernel.org/pub/linux/kernel/v3.x/linux-3.8.10.tar.bz2 | |||
oder | oder | ||
wget http://kernel.org/pub/linux/kernel/v3.x/linux-3.8.10.tar.gz | |||
Die Sourcen nun entpacken: | |||
tar xvfj /usr/src/linux-3.8.10.tar.bz2 | |||
oder | oder | ||
tar xvfz /usr/src/linux-3.8.10.tar.gz | |||
Rechte auf root setzen: | |||
chown -R root:root /usr/src/linux-3.8.10 | |||
Umbenennen des entpackten Ordners: | |||
mv linux-3.8.10 linux-3.8.10-1-686-opp | |||
oder | oder | ||
mv linux-3.8.10 linux-3.8.10-1-amd64-opp | |||
Symlink zum alten Kernel entfernen: | |||
unlink linux | |||
Neuen Symlink erstellen: | |||
ln -s /usr/src/linux-3.8.10-1-686-opp /usr/src/linux | |||
oder | oder | ||
ln -s /usr/src/linux-3.8.10-1-amd64-opp /usr/src/linux | |||
Nach linux wechseln: | |||
cd linux | cd linux | ||
Geben Sie folgende Befehle immer ein bevor Sie mit einem neuen Kernel anfangen: | |||
make clean && make mrproper | |||
Config von altem Kernel uebernehmen: | |||
cp /boot/config-`uname -r` /usr/src/linux/.config | |||
(oder eine alte gesicherte config benutzen.) | |||
Nun bearbeiten wir das Makefile, dies sollte dann wie folgt aussehen: | |||
VERSION = 3 | |||
PATCHLEVEL = 8 | |||
PATCHLEVEL = | |||
SUBLEVEL = 10 | |||
EXTRAVERSION = -1 | EXTRAVERSION = -1 | ||
Wir haben fuer unsere erste Version dieses Kernels eine -1 bei der EXTRAVERSION hinzugefuegt. | |||
Dann bearbeiten wir die .config Datei: | |||
CONFIG_LOCALVERSION="-default" | CONFIG_LOCALVERSION="-default" | ||
Dies aendere ich zb in: | |||
CONFIG_LOCALVERSION="-opp" | CONFIG_LOCALVERSION="-opp" | ||
Was nun zusammen eine Kernel Version wie folgt ergibt: | |||
3.8.10-1-opp | |||
Als naechstes wird die .config fein eingestellt (darauf achten das unter Security die default Kernel capabilities auf * stehen und nich auf M): | |||
make menuconfig | |||
oder per: | |||
make oldconfig | |||
(Um alle neuen Module angezeigt zu bekommen und zu konfigurieren, weitere Beschreibung siehe am Ende dieser Anleitung.) | |||
Nun kommen wir zum bauen der Debian Pakete: | |||
make-kpkg buildpackage --initrd --revision `date +%Y%m%d` | |||
Mit dem Parameter buildpackage geben wir an, dass wir alle Pakete bauen lassen wollen: | Mit dem Parameter buildpackage geben wir an, dass wir alle Pakete bauen lassen wollen: | ||
linux-doc | linux-doc | ||
linux-headers | linux-headers | ||
linux-image | linux-image | ||
linux-manual | linux-manual | ||
linux-source | linux-source | ||
Natuerlich kann man auch zb nur das linux-image und linux-headers bauen (reicht in den meisten Faellen auch aus), z.B. so: | |||
make-kpkg linux-image --initrd --revision `date +%Y%m%d` | |||
Wenn fertig dann weiter mit: | |||
make-kpkg linux-headers --initrd --revision `date +%Y%m%d` | |||
Jetzt kann man das in /usr/src liegende Debian-Archiv bequem mit dpkg installieren, je nachdem welches Paket man gebaut hat und installieren moechte: | |||
cd /usr/src | cd /usr/src | ||
dpkg -i linux-(doc|headers|image|manual|source)-3.8.10-1-opp_*.deb) | |||
Dann evtl noch Aenderungen an Lilo/Grub wie folgt anpassen. | Dann evtl noch Aenderungen an Lilo/Grub wie folgt anpassen. | ||
LiLo (/etc/lilo.conf): | |||
image = /boot/vmlinuz | image = /boot/vmlinuz | ||
label = linux | label = linux | ||
root = /dev/hdax | root = /dev/hdax | ||
vga = 791 | vga = 791 | ||
initrd = /boot/initrd | initrd = /boot/initrd | ||
image = /boot/vmlinuz- | |||
label = linux- | image = /boot/vmlinuz-3.8.10-1-opp | ||
label = linux-3.8.10-1-opp | |||
root = /dev/hdax | root = /dev/hdax | ||
vga = normal | vga = normal | ||
Anschliessend fuehren Sie noch /sbin/lilo aus | initrd = /boot/initrd.img-3.8.10-1-opp | ||
Anschliessend fuehren Sie noch /sbin/lilo aus. | |||
Falls alles wie gewuenscht klappt kann man anschliessend auch am Anfang der /etc/lilo.conf die Zeile | Falls alles wie gewuenscht klappt kann man anschliessend auch am Anfang der /etc/lilo.conf die Zeile | ||
default=linux-3.8.10-1-opp | |||
eintragen, womit der Kernel zum Standard-Kernel des Rechners wird. | |||
Anschliessend fuehren Sie nochmals /sbin/lilo aus. | |||
Grub: | |||
Fuer Grub muessen Sie nur folgenden Befehl ausfuehren: | |||
update-grub | |||
make menuconfig | Anmerkungen zu "make menuconfig": | ||
Wie schon bei xconfig haben sie eine gewisse Grafik und Sie koennen nach | Wie schon bei xconfig haben sie eine gewisse Grafik und Sie koennen nach | ||
Zeile 208: | Zeile 236: | ||
stellen. Die Maus funktioniert hier nicht. Stattdessen arbeitet man hier mit | stellen. Die Maus funktioniert hier nicht. Stattdessen arbeitet man hier mit | ||
den Pfeiltasten. | den Pfeiltasten. | ||
Anmerkung: Fuer make menuconfig muessen Sie X normalerweise nicht starten. Der | Anmerkung: Fuer make menuconfig muessen Sie X normalerweise nicht starten. Der | ||
Zeile 213: | Zeile 242: | ||
Wenn er also einen Fehler diesbezueglich meldet, benutzen Sie es in X unter z.B. | Wenn er also einen Fehler diesbezueglich meldet, benutzen Sie es in X unter z.B. | ||
xterm. | xterm. | ||
Jedenfalls kommt nun der Teil bei dem ich Ihnen auch nicht viel sagen kann. | Jedenfalls kommt nun der Teil bei dem ich Ihnen auch nicht viel sagen kann. | ||
Egal welches der Werkzeuge Sie benutzen, Sie muessen selbst wissen was Sie nun | Egal welches der Werkzeuge Sie benutzen, Sie muessen selbst wissen was Sie nun | ||
einstellen muessen. Ein paar Tipps kann ich Ihnen aber geben : | einstellen muessen. Ein paar Tipps kann ich Ihnen aber geben : | ||
* Wenn Sie X benutzen koennen Sie einfach mehrere xterm oeffnen und so die | * Wenn Sie X benutzen koennen Sie einfach mehrere xterm oeffnen und so die | ||
neue und alte Konfiguration gleichzeitig ansehen: | neue und alte Konfiguration gleichzeitig ansehen: | ||
o Wechseln sie nach /boot und suchen sie den config File der alten | o Wechseln sie nach /boot und suchen sie den config File der alten | ||
Zeile 231: | Zeile 263: | ||
damit Sie ihn in Zukunft einfacher laden koennen. Also z.B. von | damit Sie ihn in Zukunft einfacher laden koennen. Also z.B. von | ||
config-2.4.3-20 nach config243. | config-2.4.3-20 nach config243. | ||
o Sie koennen nun die Konfiguration Ihres aktuellen Kernels sehen und | o Sie koennen nun die Konfiguration Ihres aktuellen Kernels sehen und | ||
Zeile 239: | Zeile 272: | ||
keine Radio oder TV Karte oder kein USB haben oder wollen, dann | keine Radio oder TV Karte oder kein USB haben oder wollen, dann | ||
braucht Ihr neuer Kernel dies alles auch nicht. | braucht Ihr neuer Kernel dies alles auch nicht. | ||
* Schauen Sie sich an welche Hardware Sie haben und ueberpruefen Sie Ihre | * Schauen Sie sich an welche Hardware Sie haben und ueberpruefen Sie Ihre | ||
Zeile 244: | Zeile 278: | ||
geladen werden. Was Sie nicht haben (oder wollen), das brauchen Sie nicht | geladen werden. Was Sie nicht haben (oder wollen), das brauchen Sie nicht | ||
auszuwaehlen. | auszuwaehlen. | ||
* Wichtig sind vor allem die Filesysteme: ext2, ReiserFS, MS Dos, Vfat, / | * Wichtig sind vor allem die Filesysteme: ext2, ReiserFS, MS Dos, Vfat, / | ||
Zeile 250: | Zeile 285: | ||
Sie hierzu mit ihrer alten Konfiguration und uebernehmen Sie alles von dem | Sie hierzu mit ihrer alten Konfiguration und uebernehmen Sie alles von dem | ||
Sie nicht genau wissen das Sie es nicht brauchen. | Sie nicht genau wissen das Sie es nicht brauchen. | ||
* Einige Auswahlmoeglichkeiten koennen Sie nur aktivieren wenn Sie vorher | * Einige Auswahlmoeglichkeiten koennen Sie nur aktivieren wenn Sie vorher | ||
Zeile 255: | Zeile 291: | ||
irgendetwas. Sie koennen z.B. keinen SCSI Low Level Treiber installieren | irgendetwas. Sie koennen z.B. keinen SCSI Low Level Treiber installieren | ||
wenn Sie keinen SCSI Support aktiviert haben. | wenn Sie keinen SCSI Support aktiviert haben. | ||
* Wenn in Ihrem alten Kernel etwas mit einem Modul kompiliert wurde, dann | * Wenn in Ihrem alten Kernel etwas mit einem Modul kompiliert wurde, dann | ||
Zeile 264: | Zeile 301: | ||
aendern muessen, damit es funktioniert, dann koennen Sie das | aendern muessen, damit es funktioniert, dann koennen Sie das | ||
selbstverstaendlich machen wie Sie es fuer Richtig halten. | selbstverstaendlich machen wie Sie es fuer Richtig halten. | ||
* Wenn Sie alles konfiguriert haben, dann speichern Sie ihre Einstellungen | * Wenn Sie alles konfiguriert haben, dann speichern Sie ihre Einstellungen | ||
Zeile 273: | Zeile 311: | ||
Sie es unter dem Namen config247-1 oder so aehnlich ab. So koennen Sie | Sie es unter dem Namen config247-1 oder so aehnlich ab. So koennen Sie | ||
nachher wieder darauf zurueck greifen | nachher wieder darauf zurueck greifen | ||
* Beim beenden von menuconfig werden Sie gefragt ob gespeichert werden | * Beim beenden von menuconfig werden Sie gefragt ob gespeichert werden |
Version vom 29. April 2013, 01:09 Uhr
NEUEN DEBIAN KERNEL BAUEN (Stand 29.04.2013) [ © Oliver Schuetz aka OppTupacShakur | http://OPPServer.net | http://unix.oppserver.net]
Alle folgenden Befehle sind als Benutzer root auszufuehren:
Benoetigte Pakete installieren:
aptitude install kernel-package build-essential libc6-dev gcc debianutils make libncurses5-dev initrd-tools
Nach /usr/src wechseln:
cd /usr/src
Hierher nun die Kernel Sourcen laden (Version 3.8.10 sollte nach Bedarf angepasst werden):
wget http://kernel.org/pub/linux/kernel/v3.x/linux-3.8.10.tar.bz2
oder
wget http://kernel.org/pub/linux/kernel/v3.x/linux-3.8.10.tar.gz
Die Sourcen nun entpacken:
tar xvfj /usr/src/linux-3.8.10.tar.bz2
oder
tar xvfz /usr/src/linux-3.8.10.tar.gz
Rechte auf root setzen:
chown -R root:root /usr/src/linux-3.8.10
Umbenennen des entpackten Ordners:
mv linux-3.8.10 linux-3.8.10-1-686-opp
oder
mv linux-3.8.10 linux-3.8.10-1-amd64-opp
Symlink zum alten Kernel entfernen:
unlink linux
Neuen Symlink erstellen:
ln -s /usr/src/linux-3.8.10-1-686-opp /usr/src/linux
oder
ln -s /usr/src/linux-3.8.10-1-amd64-opp /usr/src/linux
Nach linux wechseln:
cd linux
Geben Sie folgende Befehle immer ein bevor Sie mit einem neuen Kernel anfangen:
make clean && make mrproper
Config von altem Kernel uebernehmen:
cp /boot/config-`uname -r` /usr/src/linux/.config
(oder eine alte gesicherte config benutzen.)
Nun bearbeiten wir das Makefile, dies sollte dann wie folgt aussehen:
VERSION = 3
PATCHLEVEL = 8
SUBLEVEL = 10
EXTRAVERSION = -1
Wir haben fuer unsere erste Version dieses Kernels eine -1 bei der EXTRAVERSION hinzugefuegt.
Dann bearbeiten wir die .config Datei:
CONFIG_LOCALVERSION="-default"
Dies aendere ich zb in:
CONFIG_LOCALVERSION="-opp"
Was nun zusammen eine Kernel Version wie folgt ergibt:
3.8.10-1-opp
Als naechstes wird die .config fein eingestellt (darauf achten das unter Security die default Kernel capabilities auf * stehen und nich auf M):
make menuconfig
oder per:
make oldconfig
(Um alle neuen Module angezeigt zu bekommen und zu konfigurieren, weitere Beschreibung siehe am Ende dieser Anleitung.)
Nun kommen wir zum bauen der Debian Pakete:
make-kpkg buildpackage --initrd --revision `date +%Y%m%d`
Mit dem Parameter buildpackage geben wir an, dass wir alle Pakete bauen lassen wollen:
linux-doc
linux-headers
linux-image
linux-manual
linux-source
Natuerlich kann man auch zb nur das linux-image und linux-headers bauen (reicht in den meisten Faellen auch aus), z.B. so:
make-kpkg linux-image --initrd --revision `date +%Y%m%d`
Wenn fertig dann weiter mit:
make-kpkg linux-headers --initrd --revision `date +%Y%m%d`
Jetzt kann man das in /usr/src liegende Debian-Archiv bequem mit dpkg installieren, je nachdem welches Paket man gebaut hat und installieren moechte:
cd /usr/src
dpkg -i linux-(doc|headers|image|manual|source)-3.8.10-1-opp_*.deb)
Dann evtl noch Aenderungen an Lilo/Grub wie folgt anpassen.
LiLo (/etc/lilo.conf):
image = /boot/vmlinuz
label = linux
root = /dev/hdax
vga = 791
initrd = /boot/initrd
image = /boot/vmlinuz-3.8.10-1-opp
label = linux-3.8.10-1-opp
root = /dev/hdax
vga = normal
initrd = /boot/initrd.img-3.8.10-1-opp
Anschliessend fuehren Sie noch /sbin/lilo aus.
Falls alles wie gewuenscht klappt kann man anschliessend auch am Anfang der /etc/lilo.conf die Zeile
default=linux-3.8.10-1-opp
eintragen, womit der Kernel zum Standard-Kernel des Rechners wird.
Anschliessend fuehren Sie nochmals /sbin/lilo aus.
Grub:
Fuer Grub muessen Sie nur folgenden Befehl ausfuehren:
update-grub
Anmerkungen zu "make menuconfig":
Wie schon bei xconfig haben sie eine gewisse Grafik und Sie koennen nach
belieben einstellen wie Sie wollen und koennen jederzeit wieder etwas zurueck
stellen. Die Maus funktioniert hier nicht. Stattdessen arbeitet man hier mit
den Pfeiltasten.
Anmerkung: Fuer make menuconfig muessen Sie X normalerweise nicht starten. Der
Kernel sollte in der Lage sein auch ohne X die Farben und Menues darzustellen.
Wenn er also einen Fehler diesbezueglich meldet, benutzen Sie es in X unter z.B.
xterm.
Jedenfalls kommt nun der Teil bei dem ich Ihnen auch nicht viel sagen kann.
Egal welches der Werkzeuge Sie benutzen, Sie muessen selbst wissen was Sie nun
einstellen muessen. Ein paar Tipps kann ich Ihnen aber geben :
- Wenn Sie X benutzen koennen Sie einfach mehrere xterm oeffnen und so die
neue und alte Konfiguration gleichzeitig ansehen:
o Wechseln sie nach /boot und suchen sie den config File der alten
Kernel Version, z.B. config-2.4.3-20 und kopieren Sie ihn in das
Verzeichnis Ihrer alten (!!) Kernel Quellen, also z.B. /usr/src/
linux-2.4.3. Wechseln Sie dann in dieses Verzeichnis und rufen Sie
dort "make xconfig" oder besser "make menuconfig" auf. Waehlen sie
dann den Punkt "Load ..." um Ihre alte Konfiguration zu laden und
geben Sie hier den eben kopierten Configfile an.
Anmerkung: Es empfiehlt sich dann auch ihn eventuell umzubenennen,
damit Sie ihn in Zukunft einfacher laden koennen. Also z.B. von
config-2.4.3-20 nach config243.
o Sie koennen nun die Konfiguration Ihres aktuellen Kernels sehen und
ihn teilweise (!) als Vergleich fuer den neuen Kernel benutzen.
Einfach alles zu uebernehmen wird jedoch nicht funktionieren und
macht zudem auch keinen Sinn. Denn z.B. fuer ihre Netzwerkkarte
brauchen sie nur dieses eine Modul und nicht alle. Und wenn Sie
keine Radio oder TV Karte oder kein USB haben oder wollen, dann
braucht Ihr neuer Kernel dies alles auch nicht.
- Schauen Sie sich an welche Hardware Sie haben und ueberpruefen Sie Ihre
aktuelle Konfiguration (modules.conf, lsmod usw.) welche Module dort geladen werden. Was Sie nicht haben (oder wollen), das brauchen Sie nicht auszuwaehlen.
- Wichtig sind vor allem die Filesysteme: ext2, ReiserFS, MS Dos, Vfat, /
dev/pts sollten auf jeden Fall drin sein, sonst koennen Sie nachher nicht richtig booten. Moeglicherweise sind auch noch weitere noetig. Vergleichen Sie hierzu mit ihrer alten Konfiguration und uebernehmen Sie alles von dem Sie nicht genau wissen das Sie es nicht brauchen.
- Einige Auswahlmoeglichkeiten koennen Sie nur aktivieren wenn Sie vorher
einen andern Menuepunkt ausgewaehlt haben. Meist ist dies der Support fuer irgendetwas. Sie koennen z.B. keinen SCSI Low Level Treiber installieren wenn Sie keinen SCSI Support aktiviert haben.
- Wenn in Ihrem alten Kernel etwas mit einem Modul kompiliert wurde, dann
ist es ratsam dies auch im neuen Kernel zu tun. Anmerkung: Der Grund ist einfach, das die Konfiguration dann dieses Modul mit entsprechenden Optionen laedt. Packen Sie es nun in den Kernel, dann laeuft es zwar grundsaetzlich, die Optionen sind eventuell aber trotzdem notwendig und werden dann nicht mehr gesetzt. Wenn Sie wissen was Sie aendern muessen, damit es funktioniert, dann koennen Sie das selbstverstaendlich machen wie Sie es fuer Richtig halten.
- Wenn Sie alles konfiguriert haben, dann speichern Sie ihre Einstellungen
auf jeden Fall unter einem anderen Namen noch mal ab. Bei menuconfig und xconfig kann man das auswaehlen. Wenn Sie config benutzt haben, kopieren Sie sich den File .config oder laden Sie diesen noch mal mit menuconfig und speichern damit ab. So koennen Sie dann auch gleich noch mal eventuelle Fehler waehrend make config korrigieren. Am besten speichern Sie es unter dem Namen config247-1 oder so aehnlich ab. So koennen Sie nachher wieder darauf zurueck greifen
- Beim beenden von menuconfig werden Sie gefragt ob gespeichert werden
soll. Hier waehlen sie natuerlich "Ja". Dadurch wird die Datei .config erstellt mit der kompiliert wird. Wenn sie "Nein" waehlen und weiter machen, dann wird nur eine Standard Konfiguration benutzt die vermutlich nicht lauffaehig ist. Bei xconfig kaennen Sie einfach "save and exit" waehlen, nachdem Sie vorher wie gesagt noch zusaetzlich unter anderem Namen gespeichert haben