Hi Łukasz,
I've tested the bionic/cosmic-proposed packages with disk encryption.
Both the updates/proposed packages still show the password prompt,
and read it correctly, and move forward to the login screen.
* One caveat here, read on to the Cosmic's details.
I could reproduce the problem with plymouth in the initramfs with
Gert's tip of using 'DeviceTimeout 1' in /etc/plymouth/plymouthd.conf,
and forcing initramfs-tools hooks _not_ to copy gpu/drm modules.
All that in VMs with Bionic/Cosmic desktop installed from the ISO,
with disk encryption enabled in the installer.
e.g.,
$ virt-install --name plymouth-lp1794292-<bionic|cosmic> \
--vcpus 2 --memory 4096 --disk size=16 \
--network bridge=virbr0,model=virtio \
--graphics vnc,port=5911,listen=0.0.0.0 \
--cdrom ~/Downloads/ubuntu-<18.04.2|18.10>-desktop-amd64.iso
crypt disk setup:
$ lsblk --ascii /dev/vda
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda 252:0 0 16G 0 disk
|-vda1 252:1 0 731M 0 part /boot
|-vda2 252:2 0 1K 0 part
`-vda5 252:5 0 15.3G 0 part
`-vda5_crypt 253:0 0 15.3G 0 crypt
|-ubuntu--vg-root 253:1 0 14.3G 0 lvm /
`-ubuntu--vg-swap_1 253:2 0 976M 0 lvm [SWAP]
$ sudo dmsetup table
vda5_crypt: 0 32047104 crypt aes-xts-plain64 <...zeroes...> 0 252:5 4096 1
allow_discards
ubuntu--vg-swap_1: 0 1998848 linear 253:0 30025728
ubuntu--vg-root: 0 30023680 linear 253:0 2048
initramfs setup (see commented lines with leading '#copy...')
$ cat /etc/plymouth/plymouthd.conf
DeviceTimeout 1
$ sudo grep -r -e 'copy_modules.*gpu' -e 'copy_modules.*drm'
/usr/share/initramfs-tools/
/usr/share/initramfs-tools/hooks/framebuffer:#copy_modules_dir
kernel/drivers/gpu
/usr/share/initramfs-tools/hooks/plymouth:#copy_modules_dir
kernel/drivers/gpu/drm mga r128 savage sis tdfx via
And plymouth debugging enabled in kernel cmdline to check logs:
$ cat /proc/cmdline
BOOT_IMAGE=/vmlinuz-4.18.0-15-generic root=/dev/mapper/ubuntu--vg-root ro
quiet splash plymouth.debug=file:/run/plymouth.log vt.handoff=1
bionic-updates:
---
plymouth asks for encryption password, reads it,
goes on filling up to 3 progress-dots and freezes.
login screen didn't come up.
logged in via ssh, and checked plymouth logs,
it stopped in 'deactivating keyboards' as before.
$ dpkg -s plymouth | grep ^Version:
Version: 0.9.3-1ubuntu7.18.04.1
$ sudo tail /run/plymouth.log
[ply-boot-server.c:436] ply_boot_connection_on_request:got
update request
[main.c:218] on_update:updating status
to 'snapd.seeded.service'
[ply-event-loop.c:1060]
ply_event_loop_handle_disconnect_for_source:calling disconnected_handler
0x5641e79dad20 for fd 15
[ply-event-loop.c:1064] ply_event_loop_handle_disconnect_for_source:done
calling disconnected_handler 0x5641e79dad20 for fd 15
[ply-event-loop.c:1144]
ply_event_loop_free_destinations_for_source:freeing destination (1,
0x5641e79dae80, 0x5641e79dad20) of fd 15
[ply-event-loop.c:643] ply_event_loop_remove_source_node:failed
to delete fd 15 from epoll watch list: Bad file descriptor
[ply-boot-server.c:388]
print_connection_process_identity:connection is from pid 816 (/bin/plymouth
deactivate) with parent pid 807 (/usr/sbin/gdm3)
[ply-boot-server.c:494] ply_boot_connection_on_request:got
deactivate request
[main.c:1358] on_deactivate:deactivating
[ply-device-manager.c:967]
ply_device_manager_deactivate_keyboards:deactivating keyboards
bionic-proposed:
---
plymouth (still) asks for encryption password and reads it,
goes on filling up dots, then login screen comes up.
plymouth logs show successful completion/exit.
$ dpkg -s plymouth | grep ^Version:
Version: 0.9.3-1ubuntu7.18.04.2
$ sudo tail /run/plymouth.log
[sudo] password for ubuntu:
[ply-device-manager.c:551]
ply_device_manager_free:freeing device manager
[ply-renderer.c:92] ply_renderer_free:Unloading
renderer backend plugin
[ply-event-loop.c:965] ply_event_loop_stop_watching_for_timeout:no
matching timeout found for removal
[main.c:1254] quit_program:exiting event
loop
[ply-boot-server.c:350] ply_boot_connection_on_quit_complete:quit
complete
[main.c:2402] main:exited event
loop
[ply-boot-splash.c:388]
ply_boot_splash_free:freeing splash
[main.c:2412] main:freeing
terminal session
[ply-terminal-session.c:535]
ply_terminal_session_stop_logging:stopping logging of incoming console messages
[main.c:2418] main:exiting with
code 0
cosmic-updates:
---
same thing than bionic-updates, encryption password is read correctly,
but no gdm screen, plymouth logs shows it stopped in deactivating keyboards.
$ sudo tail /run/plymouth.log
[ply-event-loop.c:1144]
ply_event_loop_free_destinations_for_source:freeing destination (1,
0x555d116b0e60, 0x555d116b0d00) of fd 14
[ply-event-loop.c:643] ply_event_loop_remove_source_node:failed
to delete fd 14 from epoll watch list: Bad file descriptor
[ply-boot-server.c:388]
print_connection_process_identity:connection is from pid 1083 (/bin/plymouth
deactivate) with parent pid 1073 (/usr/sbin/gdm3)
[ply-boot-server.c:494] ply_boot_connection_on_request:got
deactivate request
[main.c:1360] on_deactivate:deactivating
[ply-device-manager.c:1013]
ply_device_manager_pause:ply_device_manager_pause() called, stopping watching
for udev events
[ply-event-loop.c:759]
ply_event_loop_stop_watching_fd:stopping watching fd 7
[ply-event-loop.c:775]
ply_event_loop_stop_watching_fd:removing destination for fd 7
[ply-event-loop.c:784] ply_event_loop_stop_watching_fd:no
more destinations remaing for fd 7, removing source
[ply-device-manager.c:993]
ply_device_manager_deactivate_keyboards:deactivating keyboards
cosmic-proposed:
---
this *should* be like bionic-proposed.
but there's no login screen likely due to a problem
with qemu video emulation/cirrus driver.
it looks like the cirrus driver after some point
stopped successful probing the emulated video device
at the first attempt:
$ dmesg | grep cirrus
[ 16.599610] fb: switching to cirrusdrmfb from EFI VGA
<first attempt, when module first loads>
[ 16.600809] [drm:cirrus_device_init [cirrus]] *ERROR* can't reserve
VRAM
[ 16.600814] cirrus 0000:00:02.0: Fatal error during GPU init: -6
<second attempt, when I manually bound the device to the driver>
< $ echo 0000:00:02.0 | sudo tee /sys/bus/pci/drivers/cirrus/bind >
[ 277.933564] fbcon: cirrusdrmfb (fb0) is primary device
[ 277.948868] cirrus 0000:00:02.0: fb0: cirrusdrmfb frame buffer device
[ 277.968224] [drm] Initialized cirrus 1.0.0 20110418 for 0000:00:02.0
on minor 0
when it works, from time to time, this is seen at first attempt
instead:
$ dmesg | grep cirrus
[ 14.571918] fbcon: cirrusdrmfb (fb0) is primary device
[ 14.665434] cirrus 0000:00:02.0: fb0: cirrusdrmfb frame buffer device
[ 14.688436] [drm] Initialized cirrus 1.0.0 20110418 for 0000:00:02.0
on minor 0
this causes the DRM device not to show up,
and in Cosmic the gdm systemd unit has this
'ExecStartPre=gdm-wait-for-drm' line, so it
keeps waiting forever until I rebind/reload
the cirrus driver to the adapter (then it works).
$ sudo systemctl status gdm
[sudo] password for ubuntu:
● gdm.service - GNOME Display Manager
Loaded: loaded (/lib/systemd/system/gdm.service; static; vendor
preset: enabled)
Active: active (running) since Mon 2019-04-15 18:00:30 -03; 11s ago
Process: 788 ExecStartPre=/usr/lib/gdm3/gdm-wait-for-drm
(code=exited, status=0/SUCCESS)
Process: 785 ExecStartPre=/usr/share/gdm/generate-config
(code=exited, status=0/SUCCESS)
Main PID: 1072 (gdm3)
Tasks: 5 (limit: 4671)
Memory: 4.1M
CGroup: /system.slice/gdm.service
├─1072 /usr/sbin/gdm3
└─1149 /bin/plymouth quit
after I went back to Bionic to double check it,
the same behavior started occuring on Bionic,
_which used to work before_, so I guess it's
more on the QEMU side.
since this is driver-related, I'd say plymouth
is not at fault. from time to time the cirrus
driver binds correctly, though, and it works.
plymouth goes past the 'deactivating keyboards'
point, and sometimes reaches the 'exit 0' mark.
$ sudo tail /run/plymouth.log
[main.c:1423] on_quit:system
initialized so saving boot-duration file
[ply-utils.c:728] ply_create_directory:directory
'/var/lib/plymouth/' already exists
[main.c:769] get_cache_file_for_mode:returning cache
file '/var/lib/plymouth//boot-duration'
[ply-progress.c:214] ply_progress_save_cache:saving
progress cache to /var/lib/plymouth//boot-duration
[main.c:1717] tell_systemd_to_stop_printing_details:telling systemd
to stop printing details
[main.c:1437] on_quit:closing log
[ply-device-manager.c:1022]
ply_device_manager_deactivate_keyboards:deactivating keyboards
[main.c:1443] on_quit:unloading splash
[main.c:1539] toggle_between_splash_and_details:toggling
between splash and details
[main.c:1541] toggle_between_splash_and_details:hiding and
freeing current splash
$ sudo tail /run/plymouth.log
[main.c:1253] quit_program:cleaning up
devices
[ply-device-manager.c:551]
ply_device_manager_free:freeing device manager
[ply-event-loop.c:965] ply_event_loop_stop_watching_for_timeout:no
matching timeout found for removal
[main.c:1256] quit_program:exiting event
loop
[ply-boot-server.c:350] ply_boot_connection_on_quit_complete:quit
complete
[main.c:2406] main:exited event
loop
[ply-boot-splash.c:388]
ply_boot_splash_free:freeing splash
[main.c:2416] main:freeing
terminal session
[ply-terminal-session.c:535]
ply_terminal_session_stop_logging:stopping logging of incoming console messages
[main.c:2422] main:exiting with
code 0
Hope this helps,
Mauricio
--
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1794292
Title:
plymouthd crashed with SIGSEGV in /sbin/plymouthd:11 in
ply_renderer_set_handler_for_input_source ->
ply_keyboard_stop_watching_for_renderer_input ->
ply_keyboard_stop_watching_for_input ->
ply_device_manager_deactivate_keyboards -> on_deactivate
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/plymouth/+bug/1794292/+subscriptions
--
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs