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.