Quote:
Warm boot!! I'll try it.
Another thought:
After I get the auto-boot done can I tell the motherboard to ignore the keyboard error and have Linux find the keyboard?
If the warm boot works, try editing your nvramrc ("nvedit" command) and doing the following (this is entirely off the top of my head so please do not kill me if your system never boots again):
Code:
probe-all
0xf00000208 dup l@ \ read breadcrumb register
0x123 = if \ if it is set to 0x123 then we have only booted once
d# 51966 l! \ set breadcrumb to this value
d# 1000 ms reset-all \ wait 1 second and reset
then
install-console banner
In theory it'll mark the "warm reboot" register in the SoC to another non-zero value. When the system boots the HAL sets it to "123" so that it knows it is doing a warm or cold boot at any time (it is reset to 0 on a cold boot). However the check is set or unset, not for any particular value. It is also not set unless the register is 0, so any value you set will persist across many reboots.
By setting it to the other value means you can check if you have booted before, and if not, wait a second, reset the system, and boot again. Hopefully this is enough to get the system to warm reboot automatically and then detect your keyboard without too much of a delay..
Like I said I wrote this off the top of my head just now, it may not work, I have have misremembered the breadcrumb value. I offer the opportunity for developers to play around and work out if I got it right :)
There are some other alternatives; look for the keyboard node under /builtin/usb at the position you expect. If it does not exist, reboot.. this is probably a hell of a lot safer, but my code is generic for any device to force a reboot just once (it would help hard disk spinups too) and you could even remove probe-all and put it after the "then" with mine for an even quicker reset.