Allgemeine Frage zu initrd

Welches Modul/Treiber für welche Hardware, Kernel compilieren...
Antworten
Benutzeravatar
mamars
Beiträge: 16
Registriert: 10.01.2006 14:11:43

Allgemeine Frage zu initrd

Beitrag von mamars » 14.01.2006 15:45:14

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

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... :arrow: Bitte hier schauen.

Benutzeravatar
knecht
Beiträge: 1214
Registriert: 08.01.2004 15:33:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von knecht » 14.01.2006 16:43:32

Nutze ich kein initrd, dann werden die Module beim booten gestartet, die in /etc/modules aufgelistet sind.
Ist das so richtig?
Nein. Die module die in /etc/modules stehen werden vom System geladen (wenn möglich), egal ob du eine initrd nutzt oder nicht.

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

Benutzeravatar
uljanow
Beiträge: 529
Registriert: 20.09.2005 21:14:00

Re: Allgemeine Frage zu initrd

Beitrag von uljanow » 14.01.2006 16:49:57

mamars hat geschrieben:Sofern ich das richtig verstanden habe, kann ein initrd image erzeugen oder halt die modules in /lib/modules/{Kernel} nutzen.
eine initial ramdisk wird nur dazu benötigt um die rootpartition zu mounten, wenn die
erforderlichen module nicht direkt in den kernel intergriert sind, sondern als module kompiliert
wurden.
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?
abgesehen davon, dass seit dem kernel 2.6.14 yaird benutzt wird, kann man in /etc/mkinitrd/modules
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.
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 :roll:
in der /etc/modules können module angegeben werden, die kernelunabhängig beim systemstart
geladen werden sollen

Benutzeravatar
mamars
Beiträge: 16
Registriert: 10.01.2006 14:11:43

Beitrag von mamars » 15.01.2006 16:56:49

Erstmal ein herzliches Danke an euch.. :D

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.
abgesehen davon, dass seit dem kernel 2.6.14 yaird benutzt wird
Das muss ich mir mal anschauen... mal wieder was neues 8O

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

darkday
Beiträge: 71
Registriert: 03.11.2005 14:58:03

Beitrag von darkday » 16.01.2006 10:13:32

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?

Hoshpak
Beiträge: 556
Registriert: 25.03.2005 08:34:35
Lizenz eigener Beiträge: GNU Free Documentation License
Kontaktdaten:

Beitrag von Hoshpak » 16.01.2006 14:24:00

welche Module sind es eigentlich, die einkompiliert werden müssen, um keine Initrd mehr zu brauchen? Ich habe ext3 auf der Rootpartition und habe ext3 und 2 sowie reiserfs einkompiliert, trotzdem bekomme ich ohne Initrd eine Kernelpanik.
Mfg
Hoshpak

Benutzeravatar
Snoopy
Beiträge: 4297
Registriert: 17.11.2003 18:26:56
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Rh.- Pflz.

Beitrag von Snoopy » 16.01.2006 14:41:19

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.

Hoshpak
Beiträge: 556
Registriert: 25.03.2005 08:34:35
Lizenz eigener Beiträge: GNU Free Documentation License
Kontaktdaten:

Beitrag von Hoshpak » 16.01.2006 14:46:40

Ah ja, danke ich habe die IDE-Treiber zwar schon lange fest drin, aber die S-ATA habe ich wohl tatsächlich vergessen, werde ich mal zur nächsten Kernelversion ausprobieren.
Mfg
Hoshpak

Benutzeravatar
knecht
Beiträge: 1214
Registriert: 08.01.2004 15:33:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von knecht » 16.01.2006 18:17:09

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

Benutzeravatar
mamars
Beiträge: 16
Registriert: 10.01.2006 14:11:43

Beitrag von mamars » 18.01.2006 12:23:13

Wenn z.B. das komplette Dateisystem verschlüsselt ist
Das muss ich auch mal ausprobieren! :D

Danke auf jeden Fall für die Ausführungen. Wieder was gelernt! :hail:
Gruß
mamars

darkday
Beiträge: 71
Registriert: 03.11.2005 14:58:03

Beitrag von darkday » 18.01.2006 13:11:33

Jo, klar, Sinnlos ist es net, das mit dem Standardkernel beim booten is scho ne feine Sache.
Ich habe mit meiner Aussage ja auch wirklich wie du schon angedeutet hast aufs selbstkompilieren abgezielt!

Hoshpak
Beiträge: 556
Registriert: 25.03.2005 08:34:35
Lizenz eigener Beiträge: GNU Free Documentation License
Kontaktdaten:

Beitrag von Hoshpak » 23.01.2006 21:52:28

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

Spasswolf
Beiträge: 3472
Registriert: 30.11.2005 10:32:22
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Wald

Beitrag von Spasswolf » 24.01.2006 00:23:12

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)


Hoshpak
Beiträge: 556
Registriert: 25.03.2005 08:34:35
Lizenz eigener Beiträge: GNU Free Documentation License
Kontaktdaten:

Beitrag von Hoshpak » 24.01.2006 15:07:34

Hab wohl irgendwie eine falsche config ausgewählt, SCSI und SATA war schon drin, aber CONFIG_BLK_DEV_SD hat noch gefehlt, jetzt läufts, vielen Dank.
Mfg
Hoshpak

Antworten