[gentoo]Sourcen wechseln und neuen Kernel bauen?

den neuen kernel zu erstellen ist längst nicht so kompliziert.

wenn du mit
make menuconfig
im menu alles eingestellt und gespeichert hast:
make all
make install
make modules install

make install kopiert den kernel, system.map und config nach /boot und verlinkt vmlinuz auf den erstellten kernel(welcher im format vmlinuz-2.6.xxx vorliegt), system.map und die config. in grub muss also als kernel immer nur vmlinuz angegeben sein, dann braucht man ausser den drei befehlen oben nichts zu machen.
falls lilo installiert ist wird dieses bei make install aufgerufen (should I run /sbin/lilo now? [Yes/no] ).
somit wird auch in lilo der neue kernel übernommen(wenn vmlinuz in der lilo.conf eingetragen ist)


in meinem /boot verzeichnis tummeln sich so einige kernel verschiedenster versionen, mit dieser methode brauche ich aber nur diese drei befehle ausführen und egal welchen kernel oder bootloader ich habe: es kommt immer der kernel bei dem ich zuletzt make install ausgeführt habe, da alles automatisch verlinkt wird.

zur initrd: die ist bei mir nur zu optischen zwecken, da da mein bootsplash drin ist, mehr nicht. ob man die jetzt angibt oder nicht ist schnuppe - es sieht nur schöner aus und die initrd funzt mit jedem 2.6er kernel, dh ich habe seit monaten meine grub/lilo config nicht mehr angerührt(weiss garnicht was ich zur zeit drin hab :rolleyes: )
 
karuso schrieb:
make menuconfig
make all
make install
make modules install
Dann kann ich doch ein Skript machen, welches ungefähr so aussieht:
nano -w /bin/make_kernel
#.bin-bash (oder wie das heißt)
make menuconfig && make all && make install && make modules install
echo "Reboot ist immer gut!"
reboot

Dann kann ich meinen Kernel machen, nach dem Speichern wird er mit den && Befehlen installiert und es wird auch noch automatisch rebootet. Stimmt das?
 
#Script zum erstellen eines Kernels!
#/bin/make_kernel/
#
#!/bin/bash

echo "Bitte Konfigurieren sie ihren Kernel..Symlink muss vorhanden sein"
sleep 2
cd /usr/src/linux
make menuconfig && echo "kernel wird gebaut.."
sleep 2
su -c make all && make install && make modules_install
sleep 5
echo "Fertig, bitte neustarten"
shutdown -r now

Bin kein Profi, aber vielleicht gehts ja so.

mfg
 
Ja, das Skript wird ausgeführt. Habs in nem Texteditor einfügt, unter /bin/make_kernel gespeichert und ausführbar gemacht.
Jetzt kann ich von überall auf der Konsole "make_kernel" eingeben, und meinen Kernel bauen.
Wenn es ein anderer Kernel sein soll, brauche ich also vorher nur noch den Symlink /usr/src/linux anzupassen, und die ".config" und "System.map" aus boot dorthin kopieren und fertig.
Jetzt gehe ich mal rüber ins Programmier-Forum und frag mal, wie man das Ändern des Symlinks auf die neuen Sourcen und das Kopieren der Konfigurationsdateien grafisch hinbekommt.
Wenn das klappen sollte, hätten wir ein schönes Sourceforgeprojekt mit Namen z.B.:
Fast Kernel Choose And Built And Install Programm (FKCABAIP) - was zugegebenermaßen ziemlich dämlich klingt. :lol:
Aber vielleicht hat Boron ja Lust und ne Idee da mitzumachen? :) :) *mitSnickersundMarsbestech*

*edit*
sieht nicht so aus, als wär das Programmier-Forum die richtige Anlaufstelle für bash oder X.
 
Zuletzt bearbeitet:
mahdi schrieb:
Nein. Eine Ramdisk kann zu jeder Zeit als Ersatz fuer eine Festplatte benutzt werden, unabhaengig davon, ob dein Kern-"Format" zImage oder bzImage ist. Der Vorteil ist schnellerer Zugriff, weil Festplatte im Speicher, Nachteil logischerweise der Speicherverbrauch.
Wenn dein Linuxkern (an kritischen Stellen, wie Beginn des Bootens) Module benutzt, musst du eine Ramdisk haben, um diese laden zu koennen.

das steht im netz aber anders. der loader der ein vmlinuz entpackt ist ziemlich alt und kennt sich daher wie dos nur mit 64k ram aus. deswegen kann er den kernel net direkt in den ram laden sondern es muss erstmal einne 64k ramdisk erstellt werden damit der kernel geladen werden kann. ein bzImage braucht das nicht da da der entpacker schon mit größerem ram kla kommt.
selbst wenn das alles nicht stimmt was da steht: für module braucht man definitiv keine ramdisk, hab ich selber hier so laufen...
 
Siberian..Husky schrieb:
das steht im netz aber anders. der loader der ein vmlinuz entpackt ist ziemlich alt und kennt sich daher wie dos nur mit 64k ram aus. deswegen kann er den kernel net direkt in den ram laden sondern es muss erstmal einne 64k ramdisk erstellt werden damit der kernel geladen werden kann. ein bzImage braucht das nicht da da der entpacker schon mit größerem ram kla kommt.
beinahe, aber nicht ganz. der zImage loader konnte den Kern nicht direkt ueber die 1 MB Grenze schieben, deswegen waren zImages auf 512 KByte limitiert. Fuer die, die schon ein paar Jahre laenger dabei sind (mit Linux) sollten sich noch daran erinnern, das man normalerweise den Kern so oft neu gebaut hat, bis er kleiner als 512 KByte war :)
So ab 1997/1998 war es fast nicht mehr moeglich, den Kern so klein zu halten, aber dank den bzImages eigentlich auch nicht mehr noetig (siehe auch hier: http://elserv.ffm.fgan.de/~lermen/announce.txt [ja, der Link ist von 1996, aber trotzdem fast noch komplett gueltig]).
Eine Ramdisk wird initial benutzt, um das komprimierte Image zu entpacken, danach wird es auf das echte root-Dateisystem verlagert.
 

Ähnliche Themen

Zurück
Oben