No Keyboard for LUKS at initramfs boot

We've been plagued with this issue on and off for a little while now, after spending some time talking to dreisner on IRC I've now understood how to root cause and solve the problem.

On some of our servers we won't have keyboard support at early boot when it's required to type in the password for the LUKS prompt. There is an alternative method for connecting and typing in the password that requires dropbear/tinyssh and for some systems we use this. However most of our actual servers have out of band management systems.

This has manifested on:

When this happens you should boot into your -fallback initramfs so that you can get the system up and running. This is easiest to troubleshoot if you're not using out of band management, and instead using a phsical keyboard... so we'll run through this scenario for my home server where I have an older generic microsoft keyboard that I'm plugging in to type the LUKS password.

# connected over ssh in the -fallback initramfs post install
[root@vault ~]# mkinitcpio -M >> without_keyboard.txt
# plugs in keyboard to system
[root@vault ~]# mkinitcpio -M >> with_keyboard.txt
[root@vault ~]# diff with_keyboard.txt without_keyboard.txt 
20d19
< hid_microsoft

From here you'd want to go add hid_microsoft to the MODULES directive of your /etc/mkinitcpio.conf to ensure that the keyboard will be available without the fallback initramfs.

On iDRAC and IPMI we've found that hid-generic is required.