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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.