What am I missing?
It's not clear that you are missing anything. Unless you built in an initial ram disk (which is unnecessary and generally pointless on the pi), this at least indicates the kernel booted and accessed the root filesystem.
Did you try then logging in? You don't mention an OS, but having this happen on Raspbian might be a little awkward because if it requires root there.
I don't remember the last time I had to use "recovery mode" so I am not sure if it is asking for a log in name there, or just the root password. First try the Rasbian default user name
pi and password
raspberry. If that works you should be able to run the commands below that way, but if you still end up needing to login as root, keep reading (it will be clear if this is a username/password login, because after you enter something, it will ask for the password; if it does not and just says you failed, then it is just a root password, and you will need to set it first).
By default there isn't a root password, and you can't login as
root. If that's the case, you can set it up so there isn't a password but you can login (see here; that refers to a case where there is a root password set and it appears in
/etc/shadow as a long string, but in this case it is just
* -- remove that so you end up with the same undefined field,
::, then there is no password and just hitting enter should work). Note do not try and set a password this way, it will not work; you can just make it possible to log in without one (it might be possible if you understand the hashing method used, but let's not bother).
Anyway, if you can login one way or another, you can check what kernel is being used with:
If you added a string suffix to the version in configuration it should then be obvious. If you didn't and you build a different version than was otherwise available, it should be obvious. Otherwise, try:
This will show the kernel type (
Linux), the host name, that version string, then a build number (e.g.,
#2) and a date and time. That was from the machine it was built on during the time it was built, so that should be decisive.
An easy thing to forget especially if you are cross-compiling is to install the modules. The pi kernel's default configuration has enough drivers to access the root fs built in, but if you forgot to put the modules in the appropriate
/lib/modules directory it will have trouble right off the bat, which might explain "emergency mode".