unable to open initial console (ENODEV) (WAS: problem w/ kernel init (rootfs vs initial console / init process))

From: mtx
Date: Sun Sep 10 2017 - 11:03:09 EST


On 10.09.2017 11:09, mtx wrote:

it tries to open the initial console, before even attempt to mount the > root fs, which obviously is doomed to fail. (directly passing root=>
via cmdline - no initrd etc)
Solved it. For the record: the uart2 node was still disabled, so the
kernel did allocate a console for the port, but no tty_driver assigned.

tty_lookup_driver() (tty_io.c) is called on opening tty devices (such as
/dev/console). it asks console_device() (in printk.c), which scans the
consoles list for one with a tty_driver.

As my DT left the console's uart port disabled, the corresponding device
wasn't initialized, thus leaving the console w/o assigned tty_driver.

BTW: maybe we should think about some logic which spits out a warning,
or maybe implement an own special tty_driver for /dev/console, which
goes to the active console(s), just like printk() does.

--mtx