[Eisfair_dev] Update auf eiskernel 42e12e2 - auf einem USB-Datenträger

Stefan Puschek stefan.puschek at t-online.de
So Dez 1 16:21:33 CET 2019


Hallo Tom,

Du kannst von Glück reden, dass ich dieses Posting von Dir nicht 
übersehen habe in dem Wust Eurer Unterhaltung gestern...

>> Ich verstehe nicht:
>> In der initramfs für den 4.9er Kernel gibt es nicht einen expliziten 
>> Aufruf eines Treibers. Alles wird von udev erledigt.
> 
> Siehe
> 
> https://web.nettworks.org/wiki/pages/viewpage.action?pageId=37421194
> 
> Wenn Du Dir auf diese Art und Weise die Datei init ansiehst, dann siehst 
> Du bei einer initramfs für den Kernel 4.9.x folgende Zeilen:
> 
> # Start udevd.
> echo > /proc/sys/kernel/hotplug
> UDEVD=/sbin/udevd
> echo "Executing \"${UDEVD} --daemon --resolve-names=never\" ..."
> ${UDEVD} --daemon --resolve-names=never
> echo "Executing \"udevadm trigger --action=add    --type=subsystems\" ..."
> udevadm trigger --action=add    --type=subsystems
> echo "Executing \"udevadm trigger --action=add    --type=devices\" ..."
> udevadm trigger --action=add    --type=devices
> echo "Executing \"udevadm trigger --action=change --type=devices\" ..."
> udevadm trigger --action=change --type=devices
> echo "Executing \"udevadm settle\" ..."
> udevadm settle

ich "sehe" sie :)

> Wenn Du die nicht sehen solltest, hast Du überhaupt keine initramfs für 
> den Kernel 4.9.x auf Deinem Stick. Kläre das zuerst.

s.o.

> Wenn Du diese Zeilen siehst und damit immer noch nicht booten kannst, 
> könntest Du eine Pause vor der weiteren Verarbeitung des Skriptes 
> einfügen. Da usb_storage bis zu 2 Sekunden benötigen kann, bis er die 
> Medien erkennt und einbindet, könntest Du vor "udevadm settle" folgende 
> Zeile einfügen:
> 
> sleep 2
> 
> Damit würde der komplette Block so aussehen:
> 
> # Start udevd.
> echo > /proc/sys/kernel/hotplug
> UDEVD=/sbin/udevd
> echo "Executing \"${UDEVD} --daemon --resolve-names=never\" ..."
> ${UDEVD} --daemon --resolve-names=never
> echo "Executing \"udevadm trigger --action=add    --type=subsystems\" ..."
> udevadm trigger --action=add    --type=subsystems
> echo "Executing \"udevadm trigger --action=add    --type=devices\" ..."
> udevadm trigger --action=add    --type=devices
> echo "Executing \"udevadm trigger --action=change --type=devices\" ..."
> udevadm trigger --action=change --type=devices
> sleep 2
> echo "Executing \"udevadm settle\" ..."
> udevadm settle
> 
> Baue die initramfs danach wieder laut Beschreibung zusammen, kopiere sie 
> an ihren Platz, führe lilo aus und teste.

done

Ergebnis: klappt nicht :(

also war ich mir nicht sicher, ob mein sleep überhaupt drin ist; also 
habe ich vor dem sleep moch ein echo "XXXXXXXXXXXXXXXXXXXX" eingebaut - 
denn die Xe finde ich hoffemntlich im output...

die Xe sind erschienen wenn ich in der busybox zurückgescrollt habe - 
aber eine Pause von 2 Sekunden habe ich im durchscrollenden Output auch 
nicht bemerkt.

Also habe ich die Wartezeit verlängert; 5 Sekunden reichte nicht, erst 
bei 10 Sekunden klappts dauerhaft!

Was mich wundert: man merkt die 10 Sekunden nicht wirklich - beim 
Bootprozess stockt er lediglich einmal für 2-3 Sekunden - mehrfach getestet.

Ich denke wenn Du hier eine Pause von 10 Sekunden vorsiehst, wird das 
reichen. Und da der USB-Stick-Noot eh nicht der Schnellste ist, kann man 
das verschmerzen.

Vielen Dank für Deine Hilferstellung!

Groetjes
Stefan





Mehr Informationen über die Mailingliste Eisfair_dev