My keyboard does not work at boot time

Among other things, symptoms for this problem include:
  1. Not able to select a savefile from list of available save files.
  2. Not able to type anything when entering initrd's shell (either earlyshell or lateshell).
  3. 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.