Allgemeine Frage zu initrd
Allgemeine Frage zu initrd
Hallo
Ich habe nun meinen ersten eigenen, lauffähigen (!) Kernel gebaut. War gar nicht so einfach. Vor allem komme ich mit den verschiedenen Ansätzen etwas durcheinander. Sofern ich das richtig verstanden habe, kann ein initrd image erzeugen oder halt die modules in /lib/modules/{Kernel} nutzen.
Sofern ich ein initrd Image nutze, muss ich in /etc/mkinitr/modules, die Module angeben, die in das image geschrieben werden. Bei mir z.B. vesafb und fbcon.
Nutze ich kein initrd, dann werden die Module beim booten gestartet, die in /etc/modules aufgelistet sind.
Ist das so richtig?
Was ist dann die autoloader Funktion? Kann ich auch ohne initrd meherere unterschiedliche Kernel verwalten? Ich habe ja nur eine /etc/modules.
Irgendwie fehlt mir noch die letzte Erkenntnis
Gruß
mamars
PS: Außerdem habe ich das Problem, das nach dem Aufruf von /etc/init.d/console-screen.sh mein netter Pinguin verschwindet. Falls da jemand eine Idee hat... Bitte hier schauen.
Ich habe nun meinen ersten eigenen, lauffähigen (!) Kernel gebaut. War gar nicht so einfach. Vor allem komme ich mit den verschiedenen Ansätzen etwas durcheinander. Sofern ich das richtig verstanden habe, kann ein initrd image erzeugen oder halt die modules in /lib/modules/{Kernel} nutzen.
Sofern ich ein initrd Image nutze, muss ich in /etc/mkinitr/modules, die Module angeben, die in das image geschrieben werden. Bei mir z.B. vesafb und fbcon.
Nutze ich kein initrd, dann werden die Module beim booten gestartet, die in /etc/modules aufgelistet sind.
Ist das so richtig?
Was ist dann die autoloader Funktion? Kann ich auch ohne initrd meherere unterschiedliche Kernel verwalten? Ich habe ja nur eine /etc/modules.
Irgendwie fehlt mir noch die letzte Erkenntnis
Gruß
mamars
PS: Außerdem habe ich das Problem, das nach dem Aufruf von /etc/init.d/console-screen.sh mein netter Pinguin verschwindet. Falls da jemand eine Idee hat... Bitte hier schauen.
Nein. Die module die in /etc/modules stehen werden vom System geladen (wenn möglich), egal ob du eine initrd nutzt oder nicht.Nutze ich kein initrd, dann werden die Module beim booten gestartet, die in /etc/modules aufgelistet sind.
Ist das so richtig?
Die initrd enthält Module die der Kernel nicht fest drin hat, aber z.B. fürs mounten von / gebraucht werden. Es ist eine möglichkeit einem Kernel Module zu geben, bevor überhaut irgendwas anderes vom System gestartet wurde.
Hier mal ein HowTo:
http://www.neoberserker.de/phpBB2/viewt ... =3564#3564
Und hier noch was übers Kernel bauen:
http://www.neoberserker.de/phpBB2/viewt ... =2386#2386
gruss
Sebastian
_________________________________________________
Linux HowTo's, Programmierung, Wallpapers und 3D:
http://www.neoBerserker.de
Linux HowTo's, Programmierung, Wallpapers und 3D:
http://www.neoBerserker.de
Re: Allgemeine Frage zu initrd
eine initial ramdisk wird nur dazu benötigt um die rootpartition zu mounten, wenn diemamars hat geschrieben:Sofern ich das richtig verstanden habe, kann ein initrd image erzeugen oder halt die modules in /lib/modules/{Kernel} nutzen.
erforderlichen module nicht direkt in den kernel intergriert sind, sondern als module kompiliert
wurden.
abgesehen davon, dass seit dem kernel 2.6.14 yaird benutzt wird, kann man in /etc/mkinitrd/modulesSofern ich ein initrd Image nutze, muss ich in /etc/mkinitr/modules, die Module angeben, die in das image geschrieben werden. Bei mir z.B. vesafb und fbcon.
Nutze ich kein initrd, dann werden die Module beim booten gestartet, die in /etc/modules
aufgelistet sind.
Ist das so richtig?
explizit module angeben, die dann in die initrd mitaufgenommen werden sollen.
aber in den meisten fällen reicht wenn in der /etc/mkinitrd/mkinitrd.conf bei
modules= ein most oder all steht.
in der /etc/modules können module angegeben werden, die kernelunabhängig beim systemstartWas ist dann die autoloader Funktion? Kann ich auch ohne initrd meherere unterschiedliche Kernel verwalten? Ich habe ja nur eine /etc/modules.
Irgendwie fehlt mir noch die letzte Erkenntnis
geladen werden sollen
Erstmal ein herzliches Danke an euch..
Darum mußte ich also vesafb und fbcon in das image intigrieren. Ich hatte nämlich einen schwarzen Bildschirm, da beides als Modul konfiguriert war. Ansonsten ist das System sauber hochgefahren ist. Soweit so gut.
Habe jetzt nochmal sauber von vorne angefangen damit ich ein bißchen Übung bekomme. Die Autoloaderfunktion von Modulen sorgt aber schon dafür, dass Module die vorhanden sind (also als M kompiliert) und nicht in /etc/modules stehen trotzdem geladen werden, oder?
Dann habe ich noch eine kleine Frage zum patchen des Kernels. Habe mir mal den grsecurity2 Patch mittels apt-get installiert. Der liegt jetzt auch in /usr/src/kernel-patches. Diese Aussage
hier interpretiere ich als ich muss den Kernel backen während er gepatched wird
Oder kann ich einfach die patches die als diff vorliegen einspielen?
Gruß
Mamars
Darum mußte ich also vesafb und fbcon in das image intigrieren. Ich hatte nämlich einen schwarzen Bildschirm, da beides als Modul konfiguriert war. Ansonsten ist das System sauber hochgefahren ist. Soweit so gut.
Das muss ich mir mal anschauen... mal wieder was neuesabgesehen davon, dass seit dem kernel 2.6.14 yaird benutzt wird
Habe jetzt nochmal sauber von vorne angefangen damit ich ein bißchen Übung bekomme. Die Autoloaderfunktion von Modulen sorgt aber schon dafür, dass Module die vorhanden sind (also als M kompiliert) und nicht in /etc/modules stehen trotzdem geladen werden, oder?
Dann habe ich noch eine kleine Frage zum patchen des Kernels. Habe mir mal den grsecurity2 Patch mittels apt-get installiert. Der liegt jetzt auch in /usr/src/kernel-patches. Diese Aussage
hier interpretiere ich als ich muss den Kernel backen während er gepatched wird
Oder kann ich einfach die patches die als diff vorliegen einspielen?
Gruß
Mamars
HI!
Ich persoenlich finde eine initrd Quatsch!
Bis ich ewig versuche eine initrd zu erstellen, kann ich auch gleich im make menuconfig die benoetigten Module fest einkompilieren.
Dann hab ich einen festen Kernel und die Module, das wars. Ansonsten gammelt da noch so ne komische initrd rum, du fragst dich warum das Modul nicht geladen ist, obwohl es doch eigentlich muesste, bis du drauf kommst, dass es vll in der initrd drin sein koennte und dadurch shcon geladen wurde.
Oder irre ich mich?
Ich persoenlich finde eine initrd Quatsch!
Bis ich ewig versuche eine initrd zu erstellen, kann ich auch gleich im make menuconfig die benoetigten Module fest einkompilieren.
Dann hab ich einen festen Kernel und die Module, das wars. Ansonsten gammelt da noch so ne komische initrd rum, du fragst dich warum das Modul nicht geladen ist, obwohl es doch eigentlich muesste, bis du drauf kommst, dass es vll in der initrd drin sein koennte und dadurch shcon geladen wurde.
Oder irre ich mich?
- Snoopy
- Beiträge: 4297
- Registriert: 17.11.2003 18:26:56
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Rh.- Pflz.
Hi
Ganz wichtig dazu:
Die Treiber von dem Board und speziell dort, die IDE oder S-ATA oder SCSI Treiber.
Bedenke:
Um eine Partition zu lesen ( mit Deinem ext3 ) muss zuerstmal dem System klargemacht werden wo und wie diese Partition zu finden ist und mit welchem Treiber er das bewerkstelligen kann.
Also ... zusätzlich zu dem Filesystem müssen die jeweiligen Treiber fest rein.
Ganz wichtig dazu:
Die Treiber von dem Board und speziell dort, die IDE oder S-ATA oder SCSI Treiber.
Bedenke:
Um eine Partition zu lesen ( mit Deinem ext3 ) muss zuerstmal dem System klargemacht werden wo und wie diese Partition zu finden ist und mit welchem Treiber er das bewerkstelligen kann.
Also ... zusätzlich zu dem Filesystem müssen die jeweiligen Treiber fest rein.
Ich persönlich benutze bei eigenem Kernel auch keine initrd, aber das ding an sich hat sehr wohl Sinn. Wenn z.B. das komplette Dateisystem verschlüsselt ist enthält die initrd ein kleines mini-linux, das erstmal das cryptodevice hochfährt, damit dann das Dateisystem gemountet werden kann, und das normale System hochgefahren werden kann.Ich persoenlich finde eine initrd Quatsch!
Bis ich ewig versuche eine initrd zu erstellen, kann ich auch gleich im make menuconfig die benoetigten Module fest einkompilieren.
Dann hab ich einen festen Kernel und die Module, das wars. Ansonsten gammelt da noch so ne komische initrd rum, du fragst dich warum das Modul nicht geladen ist, obwohl es doch eigentlich muesste, bis du drauf kommst, dass es vll in der initrd drin sein koennte und dadurch shcon geladen wurde.
Oder irre ich mich?
Oder bei einer Installation wird ja auch ein Standartkernel genommen, der nach der Hardwareerkennung die zum Starten nötigen Module in eine initrd packt, und es damit umgeht beim installieren einen Kernel komplett kompilieren zu müßen.
Wie gesagt, mit eigenen Kernel finde ich das auch überflüssig, aber sinnlos ist das ganze sicherlich nicht.
_________________________________________________
Linux HowTo's, Programmierung, Wallpapers und 3D:
http://www.neoBerserker.de
Linux HowTo's, Programmierung, Wallpapers und 3D:
http://www.neoBerserker.de
-
- Beiträge: 556
- Registriert: 25.03.2005 08:34:35
- Lizenz eigener Beiträge: GNU Free Documentation License
-
Kontaktdaten:
So, ich hab jetzt mal SATA und sata_nv einkompiliert, leider kriegt der Kernel immer noch die Panik, ich habe jetzt mal meine config hochgeladen (http://nopaste.debianforum.de/2278), kann sich das jemand bitte mal anschauen, ich weiß langsam nicht mehr weiter.
Mfg
Hoshpak
Hoshpak
-
- Beiträge: 3472
- Registriert: 30.11.2005 10:32:22
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Wald
Laut deiner .config liegen die sata Treiber aber noch als Modul vor:
Code: Alles auswählen
CONFIG_SCSI=m (muss y sein)
CONFIG_BLK_DEV_SD=m (muss y sein)
CONFIG_SCSI_SATA=m (muss y sein)
CONFIG_SCSI_SATA_NV=m (muss y sein)