Plymouth splash screen crashing on boot

Hello, I’m trying to configure plymouth so I can display a splash screen on boot up but I just see a blank screen and evidence of a crash in my logs. I believe plymouth is having trouble connecting to the /dev/fb0 but I’m unsure of where to start. I want a minimal image so I started with the latest Jessie console snapshot from elinux.org. I have the latest plymouth 0.9.0-9 installed as well. I have added the following to my /boot/uEnv.txt file:

`
optargs=splash plymouth:debug plymouth.ignore-serial-consoles

`

Without “ignore-serial-consoles” I see the “details” theme displayed on boot as I expect since it falls back to details when it detects a serial console. When changing to a different theme, the boot hangs for quite a while and I notice plymouth errors. Also, looking at the debug log that it created, it looks like plymouth found my screen and connected to it properly but it just crashed…

`
[main.c:1943] check_logging:checking if console messages should be redirected and logged

[main.c:1952] check_logging:logging will be enabled!

[main.c:2031] initialize_environment:source built on Nov 17 2014

[main.c:2040] initialize_environment:Making sure /run/plymouth exists

[ply-utils.c:709] ply_create_directory:directory ‘/run/plymouth’ already exists

[main.c:2044] initialize_environment:initialized minimal work environment

[main.c:1741] attach_to_running_session:creating new terminal session

[ply-terminal-session.c:372] ply_terminal_session_attach:ptmx not passed in, creating one

[ply-terminal-session.c:237] open_pseudoterminal:opening device ‘/dev/ptmx’

[ply-terminal-session.c:243] open_pseudoterminal: opened device ‘/dev/ptmx’

[ply-terminal-session.c:245] open_pseudoterminal:creating pseudoterminal

[ply-terminal-session.c:254] open_pseudoterminal:done creating pseudoterminal

[ply-terminal-session.c:256] open_pseudoterminal:unlocking pseudoterminal

[ply-terminal-session.c:264] open_pseudoterminal:unlocked pseudoterminal

[ply-terminal-session.c:383] ply_terminal_session_attach:redirecting system console to terminal device

[ply-terminal-session.c:393] ply_terminal_session_attach:done redirecting system console to terminal device

[ply-terminal-session.c:526] ply_terminal_session_start_logging:logging incoming console messages

[main.c:687] get_cache_file_for_mode:returning cache file ‘/var/lib/plymouth//boot-duration’

[main.c:273] load_settings:Trying to load /etc/plymouth//plymouthd.conf

[ply-key-file.c:171] ply_key_file_load_group:trying to load group Daemon

[ply-key-file.c:268] ply_key_file_load_groups:key file has no more groups

[main.c:295] load_settings:Splash delay is set to 5.000000

[main.c:411] find_system_default_splash:System configured theme file is ‘/usr/share/plymouth/themes/solar/solar.plymouth’

[main.c:273] load_settings:Trying to load /usr/share/plymouth//plymouthd.defaults

[ply-key-file.c:171] ply_key_file_load_group:trying to load group Daemon

[ply-key-file.c:268] ply_key_file_load_groups:key file has no more groups

[main.c:426] find_distribution_default_splash:Distribution default theme file is ‘/usr/share/plymouth/themes/text/text.plymouth’

[main.c:844] plymouth_should_show_default_splash:checking if plymouth should show default splash

[main.c:877] plymouth_should_show_default_splash:using default splash because kernel command line has option “splash”

[ply-device-manager.c:675] create_seats_from_terminals:checking for consoles

[ply-device-manager.c:680] create_seats_from_terminals:ignoring all consoles but default console because explicitly told to.

[ply-device-manager.c:394] watch_for_udev_events:watching for udev graphics device add and remove events

[ply-device-manager.c:759] watch_for_coldplug_completion:udev coldplug completed already

[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:303] create_seats_for_subsystem:found device /sys/devices/platform/ocp/4830e000.lcdc/drm/card0

[ply-device-manager.c:311] create_seats_for_subsystem:device is initialized

[ply-device-manager.c:322] create_seats_for_subsystem:found node /dev/dri/card0

[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 drm

[ply-device-manager.c:195] create_seat_for_udev_device:found DRM device /dev/dri/card0

[ply-device-manager.c:641] create_seat_for_terminal_and_renderer_type:creating seat for /dev/dri/card0 (renderer type: 1) (terminal: none)

[ply-renderer.c:234] ply_renderer_open_plugin:trying to open renderer plugin /usr/lib/arm-linux-gnueabihf/plymouth/renderers/drm.so

[./plugin.c:379] create_backend:creating renderer backend for device /dev/dri/card0

[./plugin.c:464] load_driver:Opening ‘/dev/dri/card0’

[./plugin.c:581] find_controller_for_encoder:Found already lit monitor

[./plugin.c:669] get_index_of_active_mode:Looking for connector mode index of active mode 800x480

[./plugin.c:648] find_index_of_mode:Found connector mode index 0 for mode 800x480

[./plugin.c:149] ply_renderer_head_add_connector:Adding connector with id 20 to 800x480 head

[./plugin.c:192] ply_renderer_head_new:Creating 800x480 renderer head

[./ply-renderer-generic-driver.c:177] ply_renderer_buffer_new:returning 1x1 buffer with stride 4

[ply-renderer.c:256] ply_renderer_open_plugin:opened renderer plugin /usr/lib/arm-linux-gnueabihf/plymouth/renderers/drm.so

[ply-seat.c:80] add_pixel_displays:Adding displays for 1 heads
`

The service file output shows that it seems to have ended rather abruptly:

Feb 09 22:58:38 beaglebone plymouthd[230]: [main.c:1902] check_verbosity:redirecting debug output to /dev/tty7 Feb 09 22:58:38 beaglebone plymouth[235]: [ply-event-loop.c:775] ply_event_loop_stop_watching_fd:stopping watching fd 6 Feb 09 22:58:38 beaglebone plymouth[235]: [ply-event-loop.c:792] ply_event_loop_stop_watching_fd:removing destination for fd 6 Feb 09 22:59:08 beaglebone plymouth[235]: [ply-event-loop.c:1088] ply_event_loop_handle_disconnect_for_source:calling disconnected_handler 0x129b1 for fd 6 Feb 09 22:59:08 beaglebone plymouth[235]: [ply-event-loop.c:775] ply_event_loop_stop_watching_fd:stopping watching fd 6 Feb 09 22:59:08 beaglebone plymouth[235]: [ply-event-loop.c:785] ply_event_loop_stop_watching_fd:source for fd 6 is already disconnected Feb 09 22:59:08 beaglebone plymouth[235]: error: unexpectedly disconnected from boot status daemon Feb 09 22:59:08 beaglebone plymouth[235]: [./plymouth.c:453] on_disconnect:disconnect Feb 09 22:59:08 beaglebone plymouth[235]: [ply-event-loop.c:1092] ply_event_loop_handle_disconnect_for_source:done calling disconnected_handler 0x129b1 for fd 6 Feb 09 22:59:08 beaglebone plymouth[235]: [ply-event-loop.c:1175] ply_event_loop_free_destinations_for_source:freeing destination (0, (nil), 0x129b1) of fd 6 Feb 09 22:59:08 beaglebone plymouth[235]: [ply-event-loop.c:1175] ply_event_loop_free_destinations_for_source:freeing destination (1, 0x12469, (nil)) of fd 6 Feb 09 22:59:08 beaglebone systemd[1]: plymouth-start.service: main process exited, code=killed, status=11/SEGV Feb 09 22:59:08 beaglebone plymouth[235]: [./ply-boot-client.c:830] ply_boot_client_detach_from_event_loop:detaching from event loop Feb 09 22:59:08 beaglebone systemd[1]: Failed to start Show Plymouth Boot Screen. Feb 09 22:59:08 beaglebone systemd[1]: Unit plymouth-start.service entered failed state.

Boot record below:

`
U-Boot 2016.01-00001-g4eb802e (Jan 13 2016 - 11:14:31 -0600), Build: jenkins-github_Bootloader-Builder-313

Watchdog enabled

I2C: ready

DRAM: 512 MiB

Reset Source: Global warm SW reset has occurred.

Reset Source: Power-on reset has occurred.

MMC: OMAP SD/MMC: 0, OMAP SD/MMC: 1

Using default environment

Net: not set. Validating first E-fuse MAC

cpsw, usb_ether

Press SPACE to abort autoboot in 2 seconds

Card did not respond to voltage select!

gpio: pin 56 (gpio 56) value is 0

gpio: pin 55 (gpio 55) value is 0

gpio: pin 54 (gpio 54) value is 0

gpio: pin 53 (gpio 53) value is 1

Card did not respond to voltage select!

Card did not respond to voltage select!

switch to partitions #0, OK

mmc1(part 0) is current device

Scanning mmc 1:1…

gpio: pin 56 (gpio 56) value is 0

gpio: pin 55 (gpio 55) value is 0

gpio: pin 54 (gpio 54) value is 0

gpio: pin 53 (gpio 53) value is 1

switch to partitions #0, OK

mmc1(part 0) is current device

gpio: pin 54 (gpio 54) value is 1

Checking for: /uEnv.txt …

Checking for: /boot.scr …

Checking for: /boot/boot.scr …

Checking for: /boot/uEnv.txt …

gpio: pin 55 (gpio 55) value is 1

1857 bytes read in 16 ms (113.3 KiB/s)

Loaded environment from /boot/uEnv.txt

Using: dtb=am335x-boneblack.dtb …

Checking if uname_r is set in /boot/uEnv.txt…

gpio: pin 56 (gpio 56) value is 1

Running uname_boot …

loading /boot/vmlinuz-4.1.15-ti-rt-r43 …

7800752 bytes read in 445 ms (16.7 MiB/s)

loading /boot/dtbs/4.1.15-ti-rt-r43/am335x-boneblack.dtb …

60524 bytes read in 42 ms (1.4 MiB/s)

loading /boot/initrd.img-4.1.15-ti-rt-r43 …

8769888 bytes read in 499 ms (16.8 MiB/s)

debug: [console=ttyO0,115200n8 splash plymouth:debug plymouth.ignore-serial-consoles bone_capemgr.disable_partno= bone_capemgr.enable_partno=BB-UART4 root=UUID=76ef0a60-1241-4d76-ab30-4deff1dc1a24 ro rootfstype=ext4 rootwait coherent_pool=1M quiet cape_universal=enable] .

debug: [bootz 0x82000000 0x88080000:85d160 0x88000000] …

Kernel image @ 0x82000000 [ 0x000000 - 0x7707b0 ]

Flattened Device Tree blob at 88000000

Booting using the fdt blob at 0x88000000

Loading Ramdisk to 8f7a2000, end 8ffff160 … OK

Loading Device Tree to 8f790000, end 8f7a1c6b … OK

Starting kernel …

[ 3.735696] wkup_m3_ipc 44e11324.wkup_m3_ipc: could not get rproc handle

[ 4.047902] cpu cpu0: cpu0 clock notifier not ready, retry

[ 4.193422] bone_capemgr bone_capemgr: slot #0: No cape found

[ 4.253395] bone_capemgr bone_capemgr: slot #1: No cape found

[ 4.313394] bone_capemgr bone_capemgr: slot #2: No cape found

[ 4.373393] bone_capemgr bone_capemgr: slot #3: No cape found

Loading, please wait…

[main.c:1902] check_verbosity:redirecting debug output to /dev/tty7

fsck from util-linux 2.25.2

BOOT: clean, 56826/236176 files, 460535/943872 blocks

[./ply-boot-client.c:188] ply_boot_client_connect:could not connect to /org/freedesktop/plymouthd: Connection refused

[./ply-boot-client.c:189] ply_boot_client_connect:trying old fallback path /ply-boot-protocol

[./ply-boot-client.c:196] ply_boot_client_connect:could not connect to /ply-boot-protocol: Connection refused

[./plymouth.c:1196] main:daemon not running

[./ply-boot-client.c:830] ply_boot_client_detach_from_event_loop:detaching from event loop

[ 39.724733] remoteproc1: failed to load am335x-pru0-fw

[ 39.735290] remoteproc1: request_firmware failed: -2

[ 39.740370] pru-rproc 4a334000.pru0: rproc_boot failed

[ 39.834528] remoteproc1: failed to load am335x-pru1-fw

[ 39.841812] remoteproc1: request_firmware failed: -2

[ 39.889199] pru-rproc 4a338000.pru1: rproc_boot failed

[FAILED] Failed to start Show Plymouth Boot Screen.

See ‘systemctl status plymouth-start.service’ for details.

[ OK ] Started Tell Plymouth To Write Out Runtime Data.

[ OK ] Reached target Paths.

[ OK ] Started LSB: Raise network interfaces…

Starting ifup for eth0…

[ OK ] Started ifup for eth0.

[ OK ] Reached target Network.

[ OK ] Reached target Network is Online.

[ OK ] Reached target System Initialization.

[ OK ] Listening on D-Bus System Message Bus Socket.

[ OK ] Reached target Sockets.

[ OK ] Reached target Timers.

[ OK ] Reached target Basic System.

Starting Modem Manager…

Starting Generic Board Startup…

Starting Regular background program processing daemon…

[ OK ] Started Regular background program processing daemon.

Starting Cape Manager Service…

Starting OpenBSD Secure Shell server…

[ OK ] Started OpenBSD Secure Shell server.

Starting /etc/rc.local Compatibility…

Starting Login Service…

Starting LSB: SANE network scanner server…

Starting LSB: Start NTP daemon…

Starting LSB: Load kernel modules needed to enable cpufreq scaling…

Starting LSB: Start busybox udhcpd at boot time…

Starting D-Bus System Message Bus…

[ OK ] Started D-Bus System Message Bus.

Starting System Logging Service…

Starting Permit User Sessions…

[ OK ] Started Cape Manager Service.

[ OK ] Started /etc/rc.local Compatibility.

[ OK ] Started LSB: SANE network scanner server.

[ OK ] Started LSB: Start NTP daemon.

[ OK ] Started LSB: Start busybox udhcpd at boot time.

[ OK ] Started Permit User Sessions.

[ OK ] Started System Logging Service.

[ OK ] Started LSB: Load kernel modules needed to enable cpufreq scaling.

[ OK ] Started Login Service.

Starting Authorization Manager…

Starting LSB: set CPUFreq kernel parameters…

Starting Wait for Plymouth Boot Screen to Quit…

Starting Terminate Plymouth Boot Screen…

[ OK ] Started Wait for Plymouth Boot Screen to Quit.

[ OK ] Started Terminate Plymouth Boot Screen.

[ OK ] Started LSB: set CPUFreq kernel parameters.

Starting Getty on tty1…

[ OK ] Started Getty on tty1.

Starting Serial Getty on ttyS0…

[ OK ] Started Serial Getty on ttyS0.

[ OK ] Started Authorization Manager.

[ OK ] Started Modem Manager.

Stopping LSB: Start busybox udhcpd at boot time…

[ OK ] Stopped LSB: Start busybox udhcpd at boot time.

Starting LSB: Start busybox udhcpd at boot time…

[ OK ] Started LSB: Start busybox udhcpd at boot time.

[ OK ] Started Generic Board Startup.

Stopping LSB: Start NTP daemon…

[ OK ] Stopped LSB: Start NTP daemon.

Starting LSB: Start NTP daemon…
`