Re: 7.0.3-beta2 won't boot
Erich Titl <[email protected]>
| Newsgroups | gmane.linux.leaf.user |
|---|---|
| Message-ID | <[email protected]> |
Hi JRB Am 28.05.2021 um 22:53 schrieb Jean-Roch Blais: > Hello everyone ... > >> On May 28, 2021, at 09:22, Erich Titl <[email protected]> wrote: >> ... >> >> Indeed, the problem is caused by the fact that _real_ block devices are recognized by the kernel at boot whereas the USB connected block devices needed a nudge to somehow awake the creation of device nodes. The drivers themselves were compiled in but still they somehow were just asleep. As most people, like myself, boot from other media than USB this slipped through. > > Erich this USB drivers sleeping spell sounds a bit Voodoo like !!!, I know you like to hang close to the Antilles and the rhum, that might explain your choice of words ..., but my curiosity and thirst for knowledge is pique… :-)… Considering beta1 works fine, could you elaborate what changed in beta2’s initdr that prompted you to send a new one to Tim ? Unless you don’t want to share your black magic !!! White magic.... I removed a very crummy shell script, a so called uevent helper, which was registered with the kernel, and this script was responsible to build the device nodes. This task was delegated to the mdev utility itself running in daemon mode and the uevent helper was removed from the kernel as suggested by the kernel developers. Now the kernel communicates with the mdev daemon directly using the netlink protocol. All this was done because we realized that we could not get real hotplugging because this would need the modules to be present at the time the device was plugged in. We hold the modules in a squashfs for size, which is only mounted at boot time and later when an application needs to install modules. We orignally tried to mount/umount the modules in the old script but it crashed the system at boot because the kernel would just spawn dozens of processes and it resulted in a mount/umount race. With mdev in daemon mode there is a setting which allows to serialize the uevents so there is a chance that a script called this way could succeeed. Currently this is not implemented yet as I wanted to see a stable release with this serialized uevent handling before digging further. We did all this because we realized that on systems with a small memory footprint, e.g. an old WRAP with 64M, would not boot with 7.x because there was a sequence error in init, which caused the whole system being copied twice at init. So much for the magic. Its quite a code bummer and it is not done completely yet, neither is it clean. I hope to be able to clean up this mess some more. cheers ET ------------------------------------------------------------------------ leaf-user mailing list: [email protected] https://lists.sourceforge.net/lists/listinfo/leaf-user Support Request -- http://leaf-project.org/
OpenPGP_signature
(application/pgp-signature, 840 B) - not displayed