Tdx-reference-multimedia-image stop device tree overlay(s)

Hi,
I am using the kirkstone 6.2 tdx-reference-multimedia-image on colibri imx6 as the basis for a build with a custom carrier board having a 24bit WVGA lcd screen and touch panel. I am building the whole system with the Toradex Yocto build following the on line Tutorials. Following the turorials I have my kernel configuration loading modules for my hardware components and I have my device tree with the lcd screen. I can boot the system and see the screen all good.
Two things I am not able to resolve in the yocto build which I would like advice on please:

1 The tdx-reference-multimedia-image build automatically includes setting up an overlays.txt file in the bootfs which points to a Toradex overlay specifying a rgb666 screen which is not mine. Currently I get rid of the overlay by emptying the overlays.txt file so the booting stays with my device tree settings.
I would like help to turn off the overlay at build time.

2 I have added a quiet to the kernel boot to supress the output from appearing on the screen. I have added a plymouth splash which appears ok during the middle of the kernel boot. The kernel logo of two side by side tux penguins appears right at the start of the kernel boot and I want to change this to an appropriate corporate image. At present I can only change the logo by using the linux-toradex%.bbappend so that it copies my monochrome image over the logo_linux_mono.pbm
I would like help to set only one logo to appear and to have it in colour within the yocto build process.

Many thanks
Ian

Hi @ianatise ,

During a default build of our BSP reference images we setup and enable some DT overlays.

You should be able to build an image with an empty overlays.txt by unsetting TEZI_EXTERNAL_KERNEL_DEVICETREE_BOOT:use-mainline-bsp. The use-mainline-bsp override is used in the upstream version of BSP 6, which is the case for the Colibri iMX6.

To do this you can create a device-tree-overlays-mainline_git.bbappend file and reset the variable:

TEZI_EXTERNAL_KERNEL_DEVICETREE_BOOT:use-mainline-bsp = ""

You can check toradex-devicetree.bbclass for more details on how we process DT overlays during build:


If after putting the quiet kernel argument and following the plymouth article in our developer page you still get some level of console output you can try disabling CONFIG_DRM_FBDEV_EMULATION as suggested here:

Best regards,
Lucas Akira

Hi Lucas,
Thanks for that. The information on device tree overlays is correct and your solution worked for me.

My second question was not answered by your directions. I think possibly I did not make my question clear enough.
I have the kernel booting and part of its boot process is to display two monochrome tux penguins above the boot messages. If the boot messages are turned off with the ‘quiet’ argument then the tux penguins still appear. I am happy with this but…

I would like to know how to set the kernel to only show one penguin logo, rather than two.
The penguin logo(s) are monochrome. I can overwrite the build source with a monochrome logo of my choice using a bbappend, but I would like to be able to have a custom logo in colour.

Thanks
Ian

Hi @ianatise ,

I misread your second question, sorry about that.

The tux logos you’re referring to appear during boot, similar to the image below?

That’s the framebuffer bootup logo, and by default the number of logos shown correspond to the number of online CPUs. I’m assuming your Colibri iMX6 is the dual core version, given that you see two logos.

According to the kernel framebuffer console documentation you can override the number of logos shown by adding a kernel argument:

fbcon=logo-count:n

Where n is the desired number. You can test this by entering the following command on U-Boot before booting the OS:

env set tdxargs 'fbcon=logo-count:1'

As for the monochrome logo being used, I’m not really sure what could be the cause. I couldn’t find much information about this. Maybe the framebuffer gets the wrong color depth for your display?

Best regards,
Lucas Akira

Thanks Lucas. That did the trick on the logos.
I will do some more testing on the monochrome problem. It might be ok now as I have sorted some display problems with my device tree since posting. I will post an update if I get it working. There are lots of other postings about custom logos so I think I am not alone :slight_smile:

Hi @ianatise ,

Glad I was able to help! Let us know if you have any updates on this.

Best regards,
Lucas Akira

Just to close this one off. I rebuilt my image and the logo behaves correctly.
In colour if I specify it to be so.

Thanks for your help. Ian

Hi @ianatise ,

Glad you were able to solve the problem!

If you don’t mind, could you elaborate on what changes you made to the build?

Best regards,
Lucas Akira

Hi Lucas,
My task was to take an eight year old carrier board with a Colibri imx6dl and a new haven 800x480 touch screen on it and update the operating system from an open-embedded special to one of your more recent releases. I also needed to migrate an X11 based full screen GUI application from an x86 debian system to this hardware as my (your !) customer wanted to keep using the old hardware to replace the x86 installations.

I started with your Kirkstone 6.2 multimedia release and downloaded and built the full source version (120Gig !)
I followed your tutorials:
To created an SDK from the build.
To modify the device tree for the screen, the touch chip (not yours) and an rtc chip (not yours).
To create a kernel module for the rtc chip.
To modify the kernel config file appropriately.
To compile the GUI application(s) outside Yocto and then bring the executable(s) into the build.
To include i2c and CAN code in the application build.
To use recipies and bbappends to alter the system and uboot configuration. To start up weston and Xwayland from boot. Set up my own config of weston.ini , the app launch service , install the old X11 font files, install a lot of graphics files for the application.
All now secure within the yocto build with the variation in my github repos.

I had to do a lot of searching on the internet for clues on the device tree and the yocto stuff but your tutorials and this support channel really helped. I set up Eclipse to do target system debugging based on one of your old web site tutorials. The only thing different was the new name of the cross compiler.
The CAN code is still a bit under development but I am using the same process as I have for other things, which is to start from the example source code of things like cansend and candump and merge the bits I need into my app. Having all the source downloaded makes things like this easy to find and examine.

Thanks again for your help.
Ian

2 Likes

Hi @ianatise !

Thanks a lot for your feedback! This really helps us to make the community better :slight_smile:

We are glad to read that. Thanks again :slight_smile:

Have a nice day!

Best regards,