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
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 manager. c:284] create_ seats_for_ subsystem: creating seats for drm devices manager. c:284] create_ seats_for_ subsystem: creating seats for frame buffer devices manager. c:303] create_ seats_for_ subsystem: found device /sys/devices/ platform/ uvesafb. 0/graphics/ fb0 manager. c:311] create_ seats_for_ subsystem: device is initialized manager. c:329] create_ seats_for_ subsystem: device doesn't have a seat tag manager. c:303] create_ seats_for_ subsystem: found device /sys/devices/ virtual/ graphics/ fbcon manager. c:334] create_ seats_for_ subsystem: it's not initialized
[ply-device-
[ply-device-
[ply-device-
[ply-device-
[ply-device-
[ply-device-
[ply-device-
... 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 manager. c:641] create_ seat_for_ terminal_ and_renderer_ type:creating seat for /dev/tty7 (renderer type: 4294967295) (terminal: /dev/tty7)
[ply-device-
[...]
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 manager. c:178] create_ seat_for_ udev_device: device is for local console: no manager. c:191] create_ seat_for_ udev_device: device subsystem is graphics manager. c:200] create_ seat_for_ udev_device: found frame buffer device /dev/fb0 manager. c:135] fb_device_ has_drm_ device: trying to find associated drm node for fb device (path: platform-uvesafb.0) manager. c:161] fb_device_ has_drm_ device: no card entry! manager. c:641] create_ seat_for_ terminal_ and_renderer_ type:creating seat for /dev/fb0 (renderer type: 2) (terminal: none) c:234] ply_renderer_ open_plugin: trying to open renderer plugin /usr/lib/ i386-linux- gnu/plymouth/ renderers/ frame-buffer. so backend: creating renderer backend for device /dev/fb0 head:initializi ng 800x600 head c:256] ply_renderer_ open_plugin: opened renderer plugin /usr/lib/ i386-linux- gnu/plymouth/ renderers/ frame-buffer. so displays: Adding displays for 1 heads displays: seat->terminal == NULL
[ply-device-
[ply-device-
[ply-device-
[ply-device-
[ply-device-
[ply-device-
[ply-renderer.
[./plugin.c:259] create_
[./plugin.c:515] query_device:32 bpp (8, 8, 8, 8) with rowstride 3200
[./plugin.c:275] initialize_
[ply-renderer.
[ply-seat.c:80] add_pixel_
[ply-seat.c:123] add_text_
Regards,
Lukas