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