This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Linux/AM4379: Kernel Logo

Part Number: AM4379


Tool/software: Linux

Hello,

I am trying to enable the kernel logo (the penguin).  After I successfully enable it, I will try to modify it.


I have a layer that looks like this...

meta-mine/

├── conf
│   └── layer.conf
├── mine-config.txt
├── recipes-core
│   ├── images
│   │   └── mine.bb
│   └── psplash
│       ├── psplash
│       │   └── psplash-poky-img.h
│       └── psplash_git.bbappend
└── recipes-kernel
    └── linux
        ├── files
        │   └── logo.cfg
        └── linux-ti-staging_%.bbappend


Inside meta-mine/mine-config.txt you can see what environment gets used for the build...

# This file takes repo entries in the format
# repo name,repo uri,repo branch,repo commit[,layers=layer1:layer2...:layern]

bitbake,git://git.openembedded.org/bitbake,1.30,HEAD,layers=
meta-arago,git://arago-project.org/git/meta-arago.git,krogoth,HEAD,layers=meta-arago-distro:meta-arago-extras
meta-qt5,git://github.com/meta-qt5/meta-qt5.git,krogoth,HEAD,layers=
meta-openembedded,git://git.openembedded.org/meta-openembedded,krogoth,HEAD,layers=meta-networking:meta-ruby:meta-python:meta-oe
meta-ti,git://git.yoctoproject.org/meta-ti,krogoth,HEAD,layers=
meta-linaro,git://git.linaro.org/openembedded/meta-linaro.git,krogoth,HEAD,layers=meta-linaro-toolchain:meta-optee
oe-core,git://git.openembedded.org/openembedded-core,krogoth,HEAD,layers=meta
meta-mine,./sources/meta-mine,master,HEAD,layers=
OECORELAYERCONF=./sample-files/bblayers.conf.sample
OECORELOCALCONF=./sample-files/local-arago64.conf.sample


Inside meta-mine/recipes-kernel/linux/linux-ti-staging_%.bbappend...

FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
SRC_URI += "file://logo.cfg"

...and inside meta-mine/recipes-kernel/linux/files/logo.cfg...

CONFIG_LOGO=y
CONFIG_LOGO_LINUX_MONO=y
CONFIG_LOGO_LINUX_VGA16=y
CONFIG_LOGO_LINUX_CLUT224=y


It all built fine, but when I boot it up, no kernel logo :(  

To make sure my kernel changes made it to the SD card I run this on target...

~# cat /proc/config.gz | gunzip | grep LOGO
# CONFIG_LOGO is not set

...hmm, kernel changes did not make it to target. :(


So I find an alternative, I use menuconfig to edit it...

<build_dir># MACHINE=am437x-evm bitbake linux-ti-staging -c menuconfig

I navigate to Device Drivers --> Graphics Support, scroll to the bottom and enable 'Bootup logo', save/exit, and then...

<build_dir># MACHINE=am437x-evm bitbake linux-ti-staging

<out_dir># sudo cp zImage /media/adb/rootfs/boot && sync

Then I boot it up and... no kernel logo. :(

~# cat /proc/config.gz | gunzip | grep LOGO

CONFIG_LOGO=y
CONFIG_LOGO_LINUX_MONO=y
CONFIG_LOGO_LINUX_VGA16=y
CONFIG_LOGO_LINUX_CLUT224=y

:) Well at the changes got there, even though they didn't seem to do anything.


Q1: Why didn't my customizations from logo.cfg get picked up in my layer?

Q2: Why didn't the kernel logo get displayed even with the options configured in the kernel?

Thanks,

Nathan

  • Hi Nathan,

    You can use this approach to customize your splash screen:
    e2e.ti.com/.../325588

    Best Regards,
    Yordan
  • Thanks Yordan,

    That thread is about psplash, not the kernel logo.  

    Do you have any information about troubleshooting the kernel logo?  To be clear, I've already researched how to enable the kernel logo.  I'm posting here because it doesn't seem to work.

    Thanks,

    Nathan

  • An Update:

    I moved to the morty environment and tested menuconfig (kernel mod method #2 above) and got the same results. The target kernel was successfully modified, verified via "~# cat /proc/config.gz | gunzip | grep LOGO", but the Linux logo never appeared.

    Any help on this issue would be greatly appreciated.

    Thanks,
    Nathan
  • Q1: Why didn't my customizations from logo.cfg get picked up in my layer?

    It appears the meta-ti layer does their own thing with kernel fragments.  I guess it broke it for other layers (not really sure?).   So I had to create a config_append that did the same thing the meta-ti layer was doing.  Changing my bbappends file to the following allowed my customization to make it in to the kernel config.


    FILESEXTRAPATHS_prepend := "${THISDIR}/files:"

    SRC_URI += "file://logo.cfg"

    do_configure_append() {

       ( cd ${WORKDIR} && ${S}/scripts/kconfig/merge_config.sh -m -r -O ${B} ${B}/.config logo.cfg 1>&2 )

       yes '' | oe_runmake -C ${S} O=${B} oldconfig

    }


    Q2 is still open.