I hacked a bit on mkinitcpio to try and fix some bugs and instabilities.
This version work much better when devices are not created right away.
Please read through the diffs and review this. It boots here.
TODO: Some adjustments in the encrypt hook (use poll_device), maybe also
in mdadm/raid, I don't really know about those. Any other hooks that
might need fixing?
commit 0e6bd9d12ca52650892ffa1b33ed2267c98a72d9
Author: Thomas Bächler
Date: Sun Jun 7 00:25:20 2009 +0200
Don't only check for block devices, but also for symbolic links.
If we have a symlink, we don't check further if it points to a
block device, partially due to klibc's readlink being broken.
commit 1a26b2e49863cb3f010bc7b798fdbe3b8511ddfa
Author: Thomas Bächler
Date: Sun Jun 7 00:01:39 2009 +0200
Fix an 'elif' that should have been an 'if'
commit fe2ca57793f5f8461084d69e69939d8e0bb42b2b
Author: Thomas Bächler
Date: Sat Jun 6 23:44:09 2009 +0200
Use poll_device before resuming, continue if the device doesn't exist
commit e97bdaad85ad0c272dcd111045815e5a2628b4f3
Author: Thomas Bächler
Date: Sat Jun 6 23:34:28 2009 +0200
Remove the usb and fw runtime hooks, as a default delay is now
always set
commit 25a0acd3f4e7932445612e919f92c48815f9c587
Author: Thomas Bächler
Date: Sat Jun 6 23:22:07 2009 +0200
Rework the root device detection / creation stage
- Set rootdelay to 10 by default
- Skip the whole detection stage if we use root on nfs
- Use the new poll_device function to wait for at most $rootdelay
seconds
- Always pass rootdelay=0 to kinit, as we ensure the existence of
the root device
- Don't reboot after the fallback. This allows a user to fix a
problem and continue booting
- Rely on kinit to detect the root filesystem type. The rootfstype=
option can still be used to override
Our old method would have failed as well, as the code for
filesystem detection is the same
commit 2f7a21aaf71ba7b603666de181586bb7453bbf10
Author: Thomas Bächler
Date: Sat Jun 6 22:56:12 2009 +0200
Remove the filesystems runtime hook: Detection is done by kinit,
don't duplicate code here
commit 61f6d3a913354572192f2b31ad380cb410988300
Author: Thomas Bächler
Date: Sat Jun 6 22:51:59 2009 +0200
Remove the modload hook. It is untested and unmaintained.
commit 13825315ff94fd35c8cd604eeecf125ebd76e8b0
Author: Thomas Bächler
Date: Sat Jun 6 22:50:53 2009 +0200
Add common poll_device function
commit 7a4bc6aaf49eb55df3e19fb09260ac97023bc901
Author: Thomas Bächler
Date: Sat Jun 6 22:47:53 2009 +0200
Add a new file init_functions that contains common functions used
in /init and the hooks
commit 35fea002c27f6c1124a28535e379d7edf34a127e
Author: Thomas Bächler
Date: Sat Jun 6 22:31:35 2009 +0200
Add support for lzma and bzip2 compression for the image
commit 822a88700e3aeb7432c1a4dc0ede4c20494f6fcb
Author: Thomas Bächler
Date: Sat Jun 6 22:23:18 2009 +0200
Add all hid modules for now, as we cannot autodetect them using sysfs