Linux kernel boot splash

Splash Screen on U-Boot

This page has not been fully updated to reflect the changes made in Toradex Linux BSP 6. Some information may still apply to Toradex Linux BSP 6 configurations. If you encounter issues, please Send Feedback.
If you are using version 5 LTS, please visit the 5 LTS version documentation.

Introduction​

If U-Boot supports the framebuffer, U-Boot can be used to display a splash screen or a custom company logo.

TorizonCore​

The customization of the bootloader splash screen on Torizon is currently not covered as a use case. Although the instructions provided in this article might work, Toradex does not encourage you to re-build the components of TorizonCore from the source. We do support custom splash screen on TorizonCore as early as the initramfs is loaded, see the article Splash Screen Customization on TorizonCore for more details.

Toradex Reference Images for Yocto Project​

This article has been written with the customization of the Toradex Reference Images for Yocto Project in mind.

Creating a Custom Logo with GIMP​

Create a new file in GIMP and choose a dimension multiple of 8. As an example, a 324 x 64 pixels image was created, configured as seen in the picture below: Write some text or your company’s name.

Converting from PNG to BMP​

convert testlogo.png -type Palette -colors 224 -depth 8 -compress none -verbose BMP3:testlogo.bmp 

8-bit depth is a requirement. It has been reported that the parameter -depth 8 from the command above does not always work. Make sure that your image bit depth is correct manually. A possible workaround is to change one or more pixel colors, in a way that is is not perceptible but does change the image bit depth to 8 bits.

Adding our Image and Compiling U-Boot Source​

To get the source code, toolchain, and the instructions on how to build a custom U-boot, follow the U-Boot source article. Toradex has its own logo set in the U-boot source. The logo can be found at «u-boot-toradex/tools/logos/toradex.bmp». A simple option to have a custom logo is replacing toradex.bmp file. It is necessary to keep the same “toradex.bmp» file name for the build system to find the logo.

cp ~/testlogo.bmp ~/u-boot-toradex/tools/logos/toradex.bmp 

In BSP 5.0 video stack is disabled by default in U-Boot, so you have to enable it manually by adding CONFIG_DM_VIDEO=y to defconfig of the module you’re using. You can also revert this patch. Compile the U-boot according to the article quoted above. Prepare an SD card and update your module as described in the articles below (according to the module of interest): Flashing Embedded Linux to iMX6 Modules Flashing Embedded Linux to iMX7 Modules Flashing Embedded Linux to Vybrid Modules Flashing Embedded Linux to Tegra Modules After U-Boot is compiled and updated on the module, the result is the following:

When using RGB interfaces with Apalis iMX6 based modules the RESET_MOCI# signal must be released with the following command in the U-Boot console:

Manipulating Splash Screen in U-Boot at Runtime​

It is also possible to load custom images at runtime. The image can be read into memory from a variety of sources. Network TFTP:

mmc dev 0 mmc rescan load mmc 0 $ bmp file name> 
usb start load usb device number> $ bmp file name> 

Pre-load Splash Screen in U-Boot from eMMC/SD/USB​

You can also use a splash screen boot logo stored on a FAT partition of a eMMC/SD/USB drive, instead of using the one embedded in the U-Boot binary, and it will also be loaded and shown automatically. To achieve that set the splashsource variable to one of the supported storage devices for the splash image. For example, if the logo is stored in the /boot directory of the rootfs eMMC partition as logo.bmp, set these environment variables using the U-Boot shell:

setenv splashfile /boot/logo.bmp setenv splashsource mmc_fs saveenv reset 

Splash Screen position​

It is possible to adjust the position of the splash screen on the display by setting the splashpos variable. To set the logo position to x pixels and y lines:

Use the following configuration to set the splash screen position to the center of the screen:

Colibri iMX7 # setenv splashpos m,m 

Practical Example​

To show how U-Boot can be easily customized, we created a simple practical example where U-Boot changes the U-Boot splash screen when the module starts to update.

Create a PNG image in GIMP and convert it to BMP as explained above.

Store the image into a USB flash drive, SD Card, or TFTP server, in our case, the BMP file was stored on a TFTP server.

Create an environment variable that loads the image, displays it, and starts to update.

run setupdate setenv update_logo 'tftp $ updating.bmp && bmp display $ && run update' run update_logo 

As soon as ‘run update_logo’ is given, the image is first displayed and then the update process goes on.

The result is shown in the following video.

Источник

Linux kernel boot splash

Объяснение назначения некоторых важных параметров, которые передаются ядру при его загрузке (boot parameters).

[nomodeset, quiet и splash]

Все эти параметры загрузчик GRUB (GRand Unified Bootloader) передает ядру системы (kernel), когда ядро запускается на выполнение.

nomodeset . В самых свежих дистрибутивах Linux установка видеорежима перенесена в ядро системы (kernel). Так что все программирование аппаратуры видеокарты, относящееся к установке определенных тактовых частот, настройке регистров и т. п. происходят в ядре вместо X-драйвера, когда запускается X-сервер. Это делает возможным отображать красивые логотипы с высоким разрешением во время загрузки, так называемые splash (boot) screens, и плавно, без мерцаний экрана, перейти к графическому приглашению входа в систему (ввод логина и пароля, login screen). К сожалению, некоторые видеокарты неправильно работают при загрузке, и по этой причине демонстрируют черный экран в течение довольно долгого времени, пока не произойдет полная загрузка системы. Добавление параметра nomodeset инструктирует ядро, что не надо загружать драйверы видео до момента, пока не будет загружена графическая система X. В результате система загружается в текстовом виде, можно видеть сообщения процесса загрузки, проблема «черного экрана загрузки» устраняется.

quiet , splash . Параметр splash (который часто встречается в /boot/grub/grub.cfg) разрешает отображение splash-скрина (красивая графическая заставка при загрузке ядра).

В то же самое время Вы возможно хотели бы, чтобы не выводились сообщения загрузки, которые портят splash-скрин. Такая загрузка без сообщений называется «тихой» (quiet). Для тихой загрузки как раз и используется параметр quiet. Когда указана опция quiet, ядро не будет выводить никаких информационных сообщений о загрузке. Если ядро будет загружаться без этой опции, то Вы увидите набор некоторых сообщений, показывающих процессы активации драйверов и модулей системы, проверки файловой системы. Удаление параметра quiet может быть полезным, когда Вы хотите обнаружить ошибку, проявляющуюся при загрузке.

Хотя параметры nomodeset, quiet и splash, передаваемые ядру, указываются в конфигурационном файле GRUB, они никак не влияют на работу самого GRUB. Подробнее см. документацию по GRUB_CMDLINE_LINUX_DEFAULT и CMDLINE_LINUX.

[Параметры ядра acpi, noapic и nolapic]

Обычно эти параметры загрузки не нужны, за исключением случаев, когда наблюдается проблема BIOS и поддержкой этих стандартов. Так бывает, когда железо слишком старое, и эти стандарты не имеют полной и правильной поддержки.

ACPI (Advanced Configuration and Power Interface) это стандарт для управления питанием (power management). Старые системы могут не поддерживать ACPI полностью, так что иногда следует дать подсказку ядру не использовать эту функцию «acpi=off».

APIC (Advanced Programmable Interrupt Controller) это функция, которая встречается в новых системах. «Локальная» (local) версия называется «LAPIC». Когда этот контроллер настроен для генерации и обработки прерываний, он используется для передачи сообщений о событиях аппаратуры. И опять, некоторые реализации APIC на старых системах могут создавать проблемы, так что полезно это запретить, для чего используются параметры noapic и nolapic.

Иногда APIC работает, но замедляет работу системы, вклиниваясь в процесс передачи сообщений. Например, это может мешать обработке звука и видео. По этой причине хорошо также отключить APIC.

[Другие параметры ядра]

3 — запускает систему в runlevel 3 (по умолчанию 5). Если добавлен этот параметр, что система попадет в рабочее окружение командной строки (текстовая консоль). Режим runlevel 5 нужен для загрузки GUI.

init — указывает место нахождения скрипта «init». Этот скрипт первый процесс, запускаемый в Unix-like системе, и он отвечает за запуск всех других процессов. Синтаксис: init=/path/to/script.

Дополнительную информацию по параметрам ядра см. по ссылке [1].

Источник

What do the nomodeset, quiet and splash kernel parameters mean?

What do Kernel command line parameters (also also known as boot options) mean? When you go to Ubuntu (or better, GRUB) options, you have things like nomodeset , quiet and splash . What do these options mean? I am also interested in other parameters and would be interested to see descriptions of any kernel parameter (like acpi ), but these are not essential.

There are thousands upon thousands of them, you have init, init-options, vga, systemd, dkms, modules, etc. etc. etc. etc..-related options that you can configure

Please rest your case about users voting to close this as too broad, avoid cluttering the question with explanations about why the question itself is not too broad. As you can see many users found the question interesting and voted it up, so don’t ruin the question with irrelevant (to the question) discourses. Instead make it very clear that you want to know only about those three options, so that people won’t vote to close it again.

@StarOS you didn’t make it not too broad: it’s too broad because you don’t tell exactly which parameter you want to know about, but let answerers decide that for you. The list David Foersters share gives enough characters for about 300 answers, considering character limits. To make your question not too broad, you should narrow it down.

6 Answers 6

The newest kernels have moved the video mode setting into the kernel. So all the programming of the hardware specific clock rates and registers on the video card happen in the kernel rather than in the X driver when the X server starts.. This makes it possible to have high resolution nice looking splash (boot) screens and flicker free transitions from boot splash to login screen. Unfortunately, on some cards this doesn’t work properly and you end up with a black screen. Adding the nomodeset parameter instructs the kernel to not load video drivers and use BIOS modes instead until X is loaded.

The splash (which eventually ends up in your /boot/grub/grub.cfg ) causes the splash screen to be shown.

At the same time you want the boot process to be quiet, as otherwise all kinds of messages would disrupt that splash screen.

Although specified in GRUB these are kernel parameters influencing the loading of the kernel or its modules, not something that changes GRUB behaviour. The significant part from GRUB_CMDLINE_LINUX_DEFAULT is CMDLINE_LINUX

This answer covers acpi , noapic and nolapic :

In general, such boot parameters are not needed unless there is a problem with your BIOS and how it handles these standards, or it just might be old enough where these standards were not fully implemented properly.

ACPI (Advanced Configuration and Power Interface) is a standard for handling power management. Older systems may not support ACPI full, so sometimes it helps to give the kernel a hint to not use it. «acpi=off»

APIC (Advanced Programmable Interrupt Controller) is a kind of feature found on newer systems. The «local» version is called «LAPIC». What this controller can do is be set up to generate and handle interrupts, a signal the hardware uses to pass messages. Again, some implementations of APIC can have problems on older system, and so it is useful to disable it. «noapic» and «nolapic».

Sometimes the APIC is working, but it slows things down by getting in the middle of messages being passed around. This can mess with audio and video processing, for example. Folks might disable it for that reason as well.

Additional parameters can be found here.

Источник

Читайте также:  1с бухгалтерия под линукс
Оцените статью
Adblock
detector