Hallo!
habe mir aus Busybox und der c`t Vorlage glaube aus 12/09 ein bisher komplettes Mini System gebaut. Netzwerk, Festplatten laufen. SSHD Server, DHCP Client, cryptsetup läuft auch und funktioniert.
Gerätedateien werden über udev erstellt.
Jedoch lade ich bisher die Module für Festplatte und Netzwerkkarte von "Hand" per modprobe. Wie macht das eigentlich die originale initrd von Debian? Habe mal die Scripte ein wenig untersucht und sehe, dass eigentlich nur ide_generic per modprobe geladen wird.
Ich habe das udev Script aus der c`t genommen. Das originale aus der Debian inird habe ich nicht genutzt! Und wie bekannt ist lädt udev ja nicht die Gerätetreiber selber. Jedoch wie klappt das denn in der Debian initrd mit den Treibern/Modulen?
Initrd Hardwareerkennung
Re: Initrd Hardwareerkennung
Das müsste über den Befehl klappen. Du startest dein System ganz normal, lädst alle benötigten Module und führst dann den Befehl update-initramfs aus. Beim nächsten Start hast du dann alle benötigten Module dabei.
grüße
Code: Alles auswählen
update-initramfs -u
grüße
------------
Dieses verdammte Linux holt mir nicht mal ein Bier aus dem Kühlschrank!
Dieses verdammte Linux holt mir nicht mal ein Bier aus dem Kühlschrank!
-
- Beiträge: 375
- Registriert: 07.06.2005 09:48:43
Re: Initrd Hardwareerkennung
Glaube wir haben uns da falsch verstanden. Ich nutze die BusyBox und baue meine initrd mit cpio und lzma, bin also komplett unabhängig von den Debian Tools.
Ich wollte nur wissen welchen Mechanismus die Debianeigene initrd, welche mit mkinitramfs erzeugt wird nutzt um Treiber passend zur Hardware zu laden, oder ob die initrd wild alles lädt was bei 5 nicht auf dem Baum ist...
Ich wollte nur wissen welchen Mechanismus die Debianeigene initrd, welche mit mkinitramfs erzeugt wird nutzt um Treiber passend zur Hardware zu laden, oder ob die initrd wild alles lädt was bei 5 nicht auf dem Baum ist...
Re: Initrd Hardwareerkennung
Helfen dir da die man-Pages von mkinitramfs nicht weiter? Da stehtKingBonecrusher hat geschrieben:Ich wollte nur wissen welchen Mechanismus die Debianeigene initrd, welche mit mkinitramfs erzeugt wird nutzt um Treiber passend zur Hardware zu laden, oder ob die initrd wild alles lädt was bei 5 nicht auf dem Baum ist...
Code: Alles auswählen
FILES
/etc/initramfs-tools/initramfs.conf
The default configuration file for the script. See initramfs.conf(5) for a description of the available configuration parameter.
/etc/initramfs-tools/modules
Specified modules will be put in the generated image and loaded when the system boots. The format - one per line - is identical to that
of /etc/modules, which is described in modules(5).
/etc/initramfs-tools/conf.d
The conf.d directory allows to hardcode bootargs at initramfs build time via config snippets. This allows to set ROOT or RESUME. This is
especially useful for bootloaders, which do not pass an root bootarg.
/etc/initramfs-tools/DSDT.aml
If this file exists, it will be appended to the initramfs in a way that causes it to be loaded by ACPI.
------------
Dieses verdammte Linux holt mir nicht mal ein Bier aus dem Kühlschrank!
Dieses verdammte Linux holt mir nicht mal ein Bier aus dem Kühlschrank!
Re: Initrd Hardwareerkennung
Mehr oder minder wild. Entpacke dir doch mal eine Initrd und schaue dir die morpdobe Aufrufe an. Das Interessanteste passier im scripts-Verzeichnis.KingBonecrusher hat geschrieben:Ich wollte nur wissen welchen Mechanismus die Debianeigene initrd, welche mit mkinitramfs erzeugt wird nutzt um Treiber passend zur Hardware zu laden, oder ob die initrd wild alles lädt was bei 5 nicht auf dem Baum ist...
Beispiel:
Code: Alles auswählen
gunzip < /boot/initrd.img-2.6.30-1-amd64 | cpio -i --make-directories
Formerly known as Trigger.
HP 8510p - Debian Sid
Mitglied des Debian-KDE-Teams
HP 8510p - Debian Sid
Mitglied des Debian-KDE-Teams
-
- Beiträge: 375
- Registriert: 07.06.2005 09:48:43
Re: Initrd Hardwareerkennung
Hoffe habe die passenden Scripts in /usr/share/initramfs-tools/scripts gefunden. Hatte ausserdem nur /bin/udevd in meine initrd kopiert. Werde das später gleich mal probieren.
Code: Alles auswählen
#!/bin/sh -e
PREREQS=""
prereqs() { echo "$PREREQS"; }
case "$1" in
prereqs)
prereqs
exit 0
;;
esac
echo > /sys/kernel/uevent_helper
mkdir -p /dev/.udev/db/
udevd --daemon
mkdir -p /dev/.udev/queue/ /dev/.udev/rules.d/
udevadm trigger
udevadm settle || true
# If the rootdelay parameter has been set, we wait a bit for devices
# like usb/firewire disks to settle.
if [ "$ROOTDELAY" ]; then
if [ -x /sbin/usplash_write ]; then
/sbin/usplash_write "TIMEOUT $(($ROOTDELAY + 5))"
fi
sleep $ROOTDELAY
if [ -x /sbin/usplash_write ]; then
/sbin/usplash_write "TIMEOUT 15"
fi
fi