I am really struggling to get Plymouth to work on the Khadas Ubuntu firmware. After spending hours I’m no closer. Has anyone managed to get Plymouth working?
So far I have:
Added “quiet splash plymouth:debug” to the kernel command line arguments
Created the missing plymouth environment variables
It seems as if the graphics drivers are not loaded and the kernel boot messages shown like normal. Even when testing with plymouth show-splash only boot messages are shown.
I have no idea about the Plymouth, and the image has some difference with the standard ubuntu image for PC. So I’m not sure whether Plymouth can work on Edge…
Yes, Plymouth is the standard way in which the boot messages are suppressed in replaced by a logo during boot. The Rockchip wiki also makes reference to Plymouth as if it should be able to work. As far as I can tell, the Mali drivers are DRM compatible so I think something in the image isn’t configured correct maybe. Oddly, the Firefly RK3399 board seems to be able to handle Plymouth.
EDIT: I’ve also noticed that both fbi and fim give the following error (mmap: Invalid Argument) when used in a terminal environment. It’s almost as if the frame buffer isn’t properly initialized.
@numbqq Plymouth is the default splash screen that displays the ubuntu logo during the ubuntu-desktop boot process. I understand the Khadas-Ubuntu-Server is a modified version, but based on my research, the RockChip3399 with it’s bootloader can very well handle Plymouth succesfully: http://blog.iotwrt.com/tips/2017/06/15/rockchip-linux-logo-display/
In fact, it’s the recommended way to do it.
Please talk to your team members with in-depth ubuntu knowledge to put some effort to address this issue. My intention is to use the Edge-V in a professional environment and not for hobby-- I hope I am in the right place?
I did actually get it to work - the problem is relatively simple, but the solution is arduous. It required using Khadas’s fenix build tool to rebuild the entire uboot. Basically, plymouth decides not to show the boot screen because it detects a serial console. You can force plymouth to ignore the serial consoles using a boot argument, but this requires the bootargs of the uboot to be modified which can only be done by building uboot. Maybe the khadas team can include the arguments as standard in future distros?
In anycase, I wrote up a document for myself on how I did it, so it’s not very detailed. Hopefully you an understand it.
Thanks, @recre8. Hopefully, I can make sense of it. I’m still a novice with Linux config scriptings and may need your kind assistance if necessary.
by the way, did you replace your Khadas boot logo? If yes, how did you successfully do it?
Following your instruction on how to enable Plymouth on Edge-V, I broke it into two parts for clarification:
------------------------------------------------------------------------------------- EDIT 1
-------------------------------------------------------------------------------------
on fenix edit ~/fenix/config/bootscripts/rk3399_autoscript.cmd
Search for line containing setenv condev
and console=FIQ0 Remove: console=tty1
Add: splash quiet plymouth.ignore-serial-consoles vt.handoff=7
------------------------------------------------------------------------------------- EDIT 2
-------------------------------------------------------------------------------------
Also edit ~fenix/config/functions/build-board-deb and comment the following at the end of the file to keep the built files # rm -rf ${pkgdir}.deb # rm -rf $pkgdir
make board-deb cd ~/fenix/build/images/.tmp/linux-board-package-bionic-edge_0.7_arm64/boot
copy and replace boot.scr to /boot on the target Khadas
-------------------------------------------------------------------------------------
In “EDIT 1”, the console=tty1 is not available. Instead, it’s been replaced by console=tty0:
“EDIT 2” seem to be necessary if you already have a working Ubuntu without Plymouth installed on your Edge board. If my assessment is correct, I can as well skip this phase since I’m just building Ubuntu with Fenix and haven’t installed it yet, right?
If you are building a complete distribution image then you don’t need to perform Edit 2 since it will be integrated into the build.
If you want to patch an existing installation on your Edge, you will need to do Edit 2. Reason being, the changes made in Edit 1 are compiled to a binary (boot.scr).
Tip: You can verify that the command line arguments you modified in Step 1 is applied on the target by checking checking the contents of /proc/cmdline (e.g. cat /proc/cmdline).