Siduction Forum
Siduction Forum => Scripting & Kernelhacking => Topic started by: brummer on 2012/10/10, 11:51:58
-
Heute habe ich mir den gestern erschienen 3.6.1-rt1 gebaut, dazu habe ich erstmals
make localmodconfig
benutzt. Wow, der build ging dermaßen schnell, das ich garnicht glauben konnte das der kernel fertig ist.
Das resultierende linux-image ist gerade mal 6,4MB groß (im vergleich mein älterer 3.4-rt hatte 34MB), und läuft 1a.
Also, für die, die gerne ihre kernel selber bauen, und ein auf das eigene system angepassten kernel wollen, localmodconfig bringt's. :D
-
Kannst du das ein bissel mehr ausführen wie du mit dem Bau vorgehst?
Wäe vielleicht auch fürs Wiki interessant .. ;)
-
Na-gut, hier mein RT-Kernel Quicky:
Ich downloade die sourcen von kernel.org
http://www.kernel.org/pub/linux/kernel/
http://www.kernel.org/pub/linux/kernel/v3.x/linux-3.6.1.tar.bz2
und den rt-patch von projects/rt/
http://www.kernel.org/pub/linux/kernel/projects/rt/
http://www.kernel.org/pub/linux/kernel/projects/rt/3.6/patches-3.6.1-rt1.tar.bz2
im $Home habe ich einen Ordner /Kernel
in dem entpacke ich die kernel sourcen und den rt-patch.
dann patche ich den Kernel
patch -p1 <../patch-3.6.1-rt1.patch
sonst habe ich meine kernel config mit
make oldconfig
erstellt, dieses mal eben mit
make localmodconfig
einige neue kernel optionen werde dabei nochmal abgefragt, im Norm-Fall kann man die alle bejahen (Enter)
Danach überprüfe ich nochmal mit
make menuconfig
die Einstellungen,
Processor type and features
Preemption Model (Fully Preemptible Kernel (RT))
(X) Fully Preemptible Kernel (RT)
das war's auch schon, jetzt den kernel bauen mit
fakeroot make-kpkg --initrd kernel_image kernel_headers
dann zum installieren
cd ../
dpkg -i linux-image-3.6.1-rt1_3.6.1-rt1-10.00.Custom_i386.deb
dpkg -i linux-header-3.6.1-rt1_3.6.1-rt1-10.00.Custom_i386.deb
fertig. :lol:
-
@reddark, make help
in /usr/src/linux sagt dir, dass es darum geht nur die Module zu aktivieren, die gerade laufen.
@brummer, denk dran, dass es auch Module gibt, die gerade nicht laufen, aber vielleicht gebraucht werden, zB microcode load Feature wird von Debian wieder entladen nach Gebrauch! Oder bei mir: ein Dvb-Stick, der gerade nicht eingesteckt ist, etc ...
-
make localmodconfig erstellt dir eine minimal configuration für dein system, weitere module, kannst du dann ja mit make menuconfig einbinden und nachbauen, wenn du sie brauchst.
soweit ich weiß, erstellt localmodconfig die configuration so, das alle gefundene hardware unterstützt wird, microcode. z.b. funst mit dem so erstellten kernel übrigens.
-
@brummer: danke ;)
Weil hatte schon ein paarmal mit kernelbau gespielt, aber nie wirklich irgendwie unterschiede zwischen standardkernel und meinen angepassten gespürt .., aber mensch lernt ja nie aus und wollte mal sehen, wie das andere so angehen ;)
@ralul, danke, gut zuwissen. Also doch mit vorsicht zugeniessen.....
-
fakeroot make-kpkg --initrd kernel_image kernel_headers
Nö
make -jN deb-pkg
So macht man das heute, kernel-package is obsolet.
-
fakeroot make-kpkg --initrd kernel_image kernel_headers
Nö
make -jN deb-pkg
So macht man das heute, kernel-package is obsolet.
Da bin ich wohl noch nen bisschen hinter der Zeit. Werde ich mir mal anschauen. :)
@brummer, denk dran, dass es auch Module gibt, die gerade nicht laufen, aber vielleicht gebraucht werden, zB microcode load Feature wird von Debian wieder entladen nach Gebrauch! Oder bei mir: ein Dvb-Stick, der gerade nicht eingesteckt ist, etc ...
Naja, USB Unterstützung musste ich nachbauen, sowie vfat Unterstützung um meinen Androiden zu mounten, , , ma sehen was ich im verlauf noch so vermisse :wink:
Die module sind aber sehr schnell nach-gebaut/installiert,
-
Ja genau, 16 statt 60 Minuten Kernel backen sind kein Akt. Und
@reddark, ich wollte keinesfalls meinen, dass localmodconfig unsicher wäre: Du verlierst halt vfat, wenn es nicht geladen war. Aber der Kernel startet!
Ich benutze statt patch lieber quilt, das ist einfacher:
/usr/src/linux > quilt {push|pop} -a
Wie:
Wenn du /usr/src/patches36 hast, machst du einen Symlink:
ln -s /usr/src/patches36 /usr/src/linux/patches
In der /usr/src/patches36/series Datei müssen die gewollten Patches aufgelistet sein.