Comment 34 for bug 1370707

Revision history for this message
In , Lukas Anzinger (lukas0907) wrote :

So the question is why seat->terminal can be NULL.

A seat is created in create_seats_from_udev() which calls create_seats_for_subsystem().

Digging through the log file ...

[ply-device-manager.c:705] create_seats_from_udev:Looking for devices from udev
[ply-device-manager.c:284] create_seats_for_subsystem:creating seats for drm devices
[ply-device-manager.c:284] create_seats_for_subsystem:creating seats for frame buffer devices
[ply-device-manager.c:303] create_seats_for_subsystem:found device /sys/devices/platform/uvesafb.0/graphics/fb0
[ply-device-manager.c:311] create_seats_for_subsystem:device is initialized
[ply-device-manager.c:329] create_seats_for_subsystem:device doesn't have a seat tag
[ply-device-manager.c:303] create_seats_for_subsystem:found device /sys/devices/virtual/graphics/fbcon
[ply-device-manager.c:334] create_seats_for_subsystem:it's not initialized

... we can see that a frame buffer device is found and device is initialized but it doesn't have a seat tag so create_seats_for_subsystem() ignores it (the latest patch in plymouth 0.9.0-3 kind of addresses that problem, see also https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=751726 but in this build the patch is not applied).

Then non-graphical seat for /dev/tty7 is created.

[ply-device-manager.c:713] create_seats_from_udev:Creating non-graphical seat, since there's no suitable graphics hardware
[ply-device-manager.c:641] create_seat_for_terminal_and_renderer_type:creating seat for /dev/tty7 (renderer type: 4294967295) (terminal: /dev/tty7)

[...]

And after some time (in run level S and not in the initramfs) a seat for /dev/fb0 with no terminal attached (-> seat->terminal == NULL).

[ply-device-manager.c:357] on_udev_event:got add event for device fb0
[ply-device-manager.c:178] create_seat_for_udev_device:device is for local console: no
[ply-device-manager.c:191] create_seat_for_udev_device:device subsystem is graphics
[ply-device-manager.c:200] create_seat_for_udev_device:found frame buffer device /dev/fb0
[ply-device-manager.c:135] fb_device_has_drm_device:trying to find associated drm node for fb device (path: platform-uvesafb.0)
[ply-device-manager.c:161] fb_device_has_drm_device:no card entry!
[ply-device-manager.c:641] create_seat_for_terminal_and_renderer_type:creating seat for /dev/fb0 (renderer type: 2) (terminal: none)
[ply-renderer.c:234] ply_renderer_open_plugin:trying to open renderer plugin /usr/lib/i386-linux-gnu/plymouth/renderers/frame-buffer.so
[./plugin.c:259] create_backend:creating renderer backend for device /dev/fb0
[./plugin.c:515] query_device:32 bpp (8, 8, 8, 8) with rowstride 3200
[./plugin.c:275] initialize_head:initializing 800x600 head
[ply-renderer.c:256] ply_renderer_open_plugin:opened renderer plugin /usr/lib/i386-linux-gnu/plymouth/renderers/frame-buffer.so
[ply-seat.c:80] add_pixel_displays:Adding displays for 1 heads
[ply-seat.c:123] add_text_displays:seat->terminal == NULL

Regards,

Lukas