Comment 39 for bug 1370707

Revision history for this message
In , Rstrode (rstrode) wrote :

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.freedesktop.org/plymouth/commit/?id=84eb4381db85877a9a56b35994e6c10d43e46ebe

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...