[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