Plymouth crashes at startup BeagleBoneBlack

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 [http://elinux.org/Beagleboard:BeagleBoneBlack_Debian#Jessie_Snapshot_console](http://elinux.org/Beagleboard:BeagleBoneBlack_Debian#Jessie_Snapshot_console) <[http://elinux.org/Beagleboard:BeagleBoneBlack_Debian#Jessie_Snapshot_console](http://elinux.org/Beagleboard:BeagleBoneBlack_Debian#Jessie_Snapshot_console)>.  I have the latest plymouth 0.9.0-9 installed as well.  I have added the following kernel parameters 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:   <ethaddr> 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...

Thanks for any help that you may be able to provide.

Zach