My keyboard does not work at boot time
Among other things, symptoms for this problem include:
- Not able to select a savefile from list of available save files.
- Not able to type anything when entering initrd's shell (either earlyshell or lateshell).
- Not able to type anything when dropping to the Fatdog's Bulldog rescue shell.
The main cause of this problem is that the driver (=module, in Linux parlance) for your keyboard is not loaded yet.
Drivers for most keyboards are built-into the kernel so that keyboards get recognised and work immediately; but a certain number of keyboards don't. Some supported keyboards could also be connected using proprietary USB hubs whose drivers are not built-in; and these end up having the same problem.
To expedite the boot process, the drivers for all system devices are loaded
__after__ boot time, not at initrd's time. This however is a problem if we need to use devices (e.g. these keyboards) that require drivers at initrd time, whose drivers are not loaded yet.
The solution is simple: use the
coldplug parameter. This parameter forces all drivers to be loaded at initrd time. It slows down the boot process a little bit, but it should make all your devices work. (If they still don't work then it is another problem altogether).
Of course, in order for this parameter to work, it assumes that the kernel can find the drivers. This is true for the standard
initrd as it contains all the drivers, but it is not true for
initrd-nano (the smallest variant of Fatdog's initrd). So it means that if your system requires coldplug to work, you will have to use the standard
initrd and cannot use
initrd-nano.
PS: This problem does not only involve keyboard. Sometimes your internal harddisks (or SSD) may require drivers which are not built-in as well; and in this case, you also need to use the
coldplug parameter. Otherwise, whatever you do, you cannot load a savefile created on your internal disks.