DEBIAN KERNEL BAUEN: Unterschied zwischen den Versionen

Aus OPPServer.net Wiki | OPPs Wiki
Zur Navigation springen Zur Suche springen
KKeine Bearbeitungszusammenfassung
K (SOliver verschob Seite Debian Kernel bauen nach DEBIAN KERNEL BAUEN)
 
(Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt)
Zeile 13: Zeile 13:
Nach /usr/src wechseln:
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):
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
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
wget http://kernel.org/pub/linux/kernel/v3.x/linux-3.8.10.tar.gz




Die Sourcen nun entpacken:
Die Sourcen nun entpacken:


tar xvfj /usr/src/linux-3.8.10.tar.bz2
tar xvfj /usr/src/linux-3.8.10.tar.bz2


oder
oder


tar xvfz /usr/src/linux-3.8.10.tar.gz
tar xvfz /usr/src/linux-3.8.10.tar.gz




Zeile 37: Zeile 37:
Rechte auf root setzen:
Rechte auf root setzen:


chown -R root:root /usr/src/linux-3.8.10
chown -R root:root /usr/src/linux-3.8.10




Umbenennen des entpackten Ordners:
Umbenennen des entpackten Ordners:


mv linux-3.8.10 linux-3.8.10-1-686-opp
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
mv linux-3.8.10 linux-3.8.10-1-amd64-opp




Zeile 52: Zeile 52:
Symlink zum alten Kernel entfernen:
Symlink zum alten Kernel entfernen:


unlink linux
unlink linux




Zeile 58: Zeile 58:
Neuen Symlink erstellen:
Neuen Symlink erstellen:


ln -s /usr/src/linux-3.8.10-1-686-opp /usr/src/linux
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
ln -s /usr/src/linux-3.8.10-1-amd64-opp /usr/src/linux




Zeile 68: Zeile 68:
Nach linux wechseln:
Nach linux wechseln:


cd linux
cd linux




Zeile 74: Zeile 74:
Geben Sie folgende Befehle immer ein bevor Sie mit einem neuen Kernel anfangen:
Geben Sie folgende Befehle immer ein bevor Sie mit einem neuen Kernel anfangen:


make clean && make mrproper
make clean && make mrproper




Zeile 80: Zeile 80:
Config von altem Kernel uebernehmen:
Config von altem Kernel uebernehmen:


cp /boot/config-`uname -r` /usr/src/linux/.config
cp /boot/config-`uname -r` /usr/src/linux/.config




Zeile 90: Zeile 90:




VERSION = 3
VERSION = 3
 
PATCHLEVEL = 8
PATCHLEVEL = 8
 
SUBLEVEL = 10
SUBLEVEL = 10
 
EXTRAVERSION = -1
EXTRAVERSION = -1




Zeile 106: Zeile 106:




CONFIG_LOCALVERSION="-default"
CONFIG_LOCALVERSION="-default"




Zeile 112: Zeile 112:




CONFIG_LOCALVERSION="-opp"
CONFIG_LOCALVERSION="-opp"




Was nun zusammen eine Kernel Version wie folgt ergibt:
Was nun zusammen eine Kernel Version wie folgt ergibt:


3.8.10-1-opp
3.8.10-1-opp




Zeile 123: Zeile 123:
Als naechstes wird die .config fein eingestellt (darauf achten das unter Security die default Kernel capabilities auf * stehen und nich auf M):
Als naechstes wird die .config fein eingestellt (darauf achten das unter Security die default Kernel capabilities auf * stehen und nich auf M):


make menuconfig
make menuconfig




Zeile 129: Zeile 129:




make oldconfig
make oldconfig


(Um alle neuen Module angezeigt zu bekommen und zu konfigurieren, weitere Beschreibung siehe am Ende dieser Anleitung.)
(Um alle neuen Module angezeigt zu bekommen und zu konfigurieren, weitere Beschreibung siehe am Ende dieser Anleitung.)
Zeile 138: Zeile 138:
Nun kommen wir zum bauen der Debian Pakete:
Nun kommen wir zum bauen der Debian Pakete:


make-kpkg buildpackage --initrd --revision `date +%Y%m%d`
make-kpkg buildpackage --initrd --revision `date +%Y%m%d`




Zeile 144: Zeile 144:




linux-doc
linux-doc
 
linux-headers
linux-headers
 
linux-image
linux-image
 
linux-manual
linux-manual
 
linux-source
linux-source




Zeile 158: Zeile 158:




make-kpkg linux-image --initrd --revision `date +%Y%m%d`
make-kpkg linux-image --initrd --revision `date +%Y%m%d`




Zeile 164: Zeile 164:




make-kpkg linux-headers --initrd --revision `date +%Y%m%d`
make-kpkg linux-headers --initrd --revision `date +%Y%m%d`




Zeile 171: Zeile 171:




cd /usr/src
cd /usr/src
 
dpkg -i linux-(doc|headers|image|manual|source)-3.8.10-1-opp_*.deb)
dpkg -i linux-(doc|headers|image|manual|source)-3.8.10-1-opp_*.deb)




Zeile 183: Zeile 183:




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-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
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




Zeile 211: Zeile 211:




default=linux-3.8.10-1-opp
default=linux-3.8.10-1-opp




Zeile 224: Zeile 224:
Fuer Grub muessen Sie nur folgenden Befehl ausfuehren:
Fuer Grub muessen Sie nur folgenden Befehl ausfuehren:


update-grub
update-grub





Aktuelle Version vom 29. April 2013, 09:56 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