- Ich werde evtl. einen Kernel kompilieren und es in den Bios flashen müssen. Dieser Bios hat bei mir aber nur 16 mb (ROM). Da jetzt evtl. noch einige zusätzliche Dateien notwendig sind, wollte ich Dich wissen, wie groß kann den ein Kernel maximal, bei mittlerer und voller „Modulität“ werden?
16Mb sind schon eine Menge, ich weiß auch keine genauen Zahlen, aber zwischen Linux-2.4 und Linux-2.6 ist irgendwann der Punkt gekommen, wo du probleme hattest ein Kernel image auf eine Diskette zu geben (1.44Mb), aber du brauchst auch nicht alle Kernelmodule im initrd.
- Kann ich volle „USB-Erkennung“ mit hinein kompilieren, welche Module wären da am wichtigsten?
Ich nehm an du meinst usb disks, das wäre usb 2.0 support + scsi disks, also CONFIG_USB_EHCI_HCD + CONFIG_BLK_DEV_SD
- Kann das sein, dass man keine /lib/modules braucht, wenn alles in den Kernel kompiliert wird?
Ja, Kernel Module sind nicht zwingend Notwendig, aber wenn du keine Module verwenden willst muss alles, was du überhaupt an kernel Modulen hättest immer geladen haben.
- Die bzImage-Datei liegt doch gezippt auf der Platte. Ganz am Anfang, wenn es bootet, wer und was weiß dass diese Datei entzippt werden soll und wo wird das Programm dafür angezogen bzw. wer weiß wo es liegt?
Du übergibst dem Kernel beim booten gewisse Parameter, unter anderem auch die Position von deinem / filesystem, das kann auch in komprimierter Form vorliegen, das entpacken kann der kernel selber mit CONFIG_RD_GZIP, CONFIG_RD_BZIP2, CONFIG_RD_LZMA, ...
- Kommt man im Grunde genommen ohne eine initrd aus?
Dein initrd brauchst du nur, um Kernel Module zu laden, die du brauchst, um auf die Festplatte zuzugreifen, zb das Kernelmodul für ext4 support kannst du schwer von einer ext4 Parititon laden, sata support von einer Sata Platte usw. Zusätzlich hast du noch gerne solche Programme, wie lvm, cryptsetup und mdadm im initrd file, dass du nur ein initrd brauchst, um von einem zb raid 5 zu booten.