Hey, sorry for the slow reply with this. So I think what's probably happening is device_is_for_local_console() in ply-device-manager.c is probably failing, so create_seat_for_udev_device() is creating a seat with a NULL terminal, and then we're failing to handle a NULL terminal seat very well.
There's more to the story though. device_is_for_local_console() is a function that checks if the video device is the "boot_vga" device, the one that was active at boot time. I think the idea in my mind was to avoid opening a terminal more than once if there were multiple video cards associated with the machine. This idea has two failings:
1) There may be a case where no video device has boot_vga, I guess, in which case a terminal won't ever get opened and so password input won't work
2) if conceptually, a seat is a "monitor and a keyboard" then the abstraction is just wrong.
Hey, sorry for the slow reply with this. So I think what's probably happening is device_ is_for_ local_console( ) in ply-device- manager. c is probably failing, so create_ seat_for_ udev_device( ) is creating a seat with a NULL terminal, and then we're failing to handle a NULL terminal seat very well.
I've pushed this commit to master:
http:// cgit.freedeskto p.org/plymouth/ commit/ ?id=84eb4381db8 5877a9a56b35994 e6c10d43e46ebe
to try to handle the NULL terminal case better.
There's more to the story though. device_ is_for_ local_console( ) is a function that checks if the video device is the "boot_vga" device, the one that was active at boot time. I think the idea in my mind was to avoid opening a terminal more than once if there were multiple video cards associated with the machine. This idea has two failings:
1) There may be a case where no video device has boot_vga, I guess, in which case a terminal won't ever get opened and so password input won't work
2) if conceptually, a seat is a "monitor and a keyboard" then the abstraction is just wrong.
So I need to rework this a bit...