U-Boot использует образы, создаваемые программой mkimage
, сборка которой выполнятся при сборке U-Boot (см. <u-boot>/tools/mkimage
) и которую, вероятно, можно поставить из пакета uboot-mkimage
вашего дистрибутива GNU/Linux.
mkimage
добавляет 64 байта информации: название, контрольную сумму и пр.
Для отображения информации об образе:
mkimage -l <img>
, где <img>
— название файла образа.<addr>
:iminfo <addr>
imls
mkimage
из пакета uboot-mkimage
вашего дистрибутива GNU/Linuxmkimage
полученную при сборке U-Boot в одну из директорий указанных в переменной окружения PATH
(см. echo $PATH
) или измените её значение (например, export PATH+=:/path/to/mkimage_dir
).
После этого вы можете для сборки ядра и создания из собранного ядра образа U-Boot выполнять make uImage
.
Также вы можете создать образ из командной строки, см. встроенную помощь mkimage -h
.
mkimage -n 'Ramdisk name' -C gzip -A arm -O linux -T ramdisk -d ramdisk.gz uramdisk.gz
,
где 'Ramdisk name
' — название КФС, ramdisk.gz
— название файла сжатого образа КФС, uramdisk.gz
— название создаваемого образа U-Boot.
Для записи созданного образа ядра или КФС во Flash требуется:
Для получения из образа U-Boot оригинального файла у файла образа нужно убрать начальные 64 байта, например:
dd if=uImage of=zImage bs=1 skip=64
Список переменных и их значения отображаются командой printenv
.
Для вывода значения отдельной переменной используйте команду printenv <var>
, где <var>
— название переменной.
При запуске U-Boot, после задержки, выполняет команды содержащиеся в переменной bootcmd
.
Несколько команд могут быть разделены символом ';'.
Задержка при загрузке задаётся переменной bootdelay
.
Параметры передаваемые ядру (cmdline
) задаются переменной bootargs
.
Идентификатор ядра machid задаётся переменной machid
, указывается шестнадцатеричное значение без префикса.
Сохранение переменных во Flash выполняется командой saveenv
. При её выполнении автоматически снимается и устанавливается защита от записи сектора Flash, в котором хранятся переменные.
Пример вывода команды:
$ saveenv Saving Environment to Flash... . done Un-Protected 1 sectors Erasing Flash... . done Erased 1 sectors Writing to Flash... done . done Protected 1 sectors
При загрузке ядра и КФС U-Boot проверяет контрольную сумму (КС, CRC). Если подсчитанная КС не совпадает с КС подсчитанной при создании образа, выполняется перезагрузка.
Проверка КС может быть отключена установкой переменой verify
значения no
.
Заметьте, что при отключённой проверке КС и программной перезагрузке из ОС вы можете получить нерабочую систему (или с очень странным поведением), так как может быть выполнен запуск с повреждённым образом ядра и/или КФС.
Проверка КС кода самого U-Boot не выполняется.
Прочесть переменные U-Boot из Linux можно программой fw_printenv
, см. <u-boot>/tools/env
. Конфигурация задается файлом /etc/fw_env.config
.
Пример файла конфигурации для Тион, Тион-Про:
# MTD dev name Dev. offset Env. size Flash sector size /dev/mtd0 0x40000 0x40000 0x40000
Пример чтения переменой ethaddr
:
fw_printenv 2>/dev/null | grep ethaddr | grep -o -E ".{2}:.{11}:.{2}"
Если на плате есть наклейка "MAC: …", то это плата с IAB (JSC Electrical Equipment Factory) MAC-адресом, который можно смело использовать на этой плате.
Для плат на базе процессора:
download
(параметр -n), читается из неё в U-Boot (начиная с svn890 задаёт значение переменной ethaddr
) и в драйвере Ethernet в Linuxethaddr
переменной окружения U-Boot и передаётся Linux через serial number tag
(начиная с svn886)
Отображение информации о Flash – команда flinfo
.
Идентификатор Flash задаётся переменной mtdids
, например, значением nor0=flash
.
Разделы задаются переменной mtdparts
, например, три раздела 512 kB, 4 MB и оставшееся место: mtdparts=flash:512k(u-boot)ro,4m(kernel)ro,-(fs)
.
Команда mtdparts
выводит список текущих разделов, например:
$ mtdparts device nor0 <flash>, # parts = 3 #: name size offset mask_flags 0: u-boot 0x00080000 0x00000000 1 1: kernel 0x00400000 0x00080000 1 2: fs 0x01b80000 0x00480000 0 active partition: nor0,2 - (fs) 0x01b80000 @ 0x00480000
Команда ls
выводит содержимое ФС JFFS2 для раздела указанного командой chpart
(в переменной partition
), например, nor0,2
.
Командой protect off
выполняется снятие программной или аппаратной защиты от записи или стирания Flash. Например, защиту с раздела nor0,2
можно снять командой:
protect off nor0,2
Командой erase
выполняется стирание содержимого Flash. Например, перед записью КФС размещённой на разделе nor0,2
требуется стереть содержимое этого раздела полностью командой:
erase nor0,2
См. также команды fsinfo
, fsload
.
Для заставки используется изображение в формате bmp
с индексированной палитрой из 256 цветов.
Для преобразования изображения можно воспользоваться GIMP.
Адрес изображения указывается в переменой splashimage
.
Если по указанному адресу изображение не распознано, то отображается логотип.
Экран очищается командой cls
, при этом отображается логотип вместо заставки, но палитра остаётся без изменения.
Перенаправление вывода консоли на экран:
setenv stdout lcd
При использовании (U-Boot 2010.09 из Git-репозитория ниже и U-Boot 1.3.3 начиная с svn598 патчей для плат на основе EP93xx) тип дисплея
задаётся переменной panel
:
Дисплей | <val> |
---|---|
VGA | vga |
3.5" (320x240) | 3.5 |
5.7" (640x480) | 5.7 |
8" (640x480) | 8 |
8" (800x600) | 8-800x600 |
8" (800x600) A080SN01 | 8-800x600n |
Указанный дисплей используется после сброса (переменную panel
следует сохранить).
Для отображения фона и символов используется нулевой и 15-ый цвета палитры, соответственно.
Для Тион-Про2.
Git репозиторий: http://zao-zeo.ru/media/files/u-boot/u-boot-2010.09-zeo.git
Бинарный файлы загрузчика.
Файл | Размер | Изменение |
---|---|---|
u-boot-2010.09_tion-pro2_ga313ade6e1922212cf2c4ea83e3bb0e7ff4a2210.bin | 167980 | 2011/11/25 17:02 |
md5.sum | 105 | 2011/11/25 17:03 |
Для Тион270, Тион-Про270 (rev.2 и ранее).
Бинарные файлы загрузчика.
Файл | Размер | Изменение |
---|---|---|
u-boot-2010.03_tion270-pxa270-series_zeo551b5cfb539639540ccf7a0fc6f1d02516d8347f_bin.tar.gz | 660000 | 2013/09/25 16:21 |
Файл | Размер | Изменение |
---|---|---|
u-boot-2010.03_zeo551b5cfb539639540ccf7a0fc6f1d02516d8347f.patch.gz | 14963 | 2013/09/25 16:24 |
Для Тион-Про28.
Файл | Размер | Изменение |
---|---|---|
u-boot_2009.8_tion-pro28_svn2200.tar.gz | 1220 | 2013/03/25 20:58 |
u-boot_2009.8_tion-pro28_freescale_svn2200.tar.gz | 506187 | 2013/03/25 20:58 |
Бинарные файлы загрузчика.
Файл | Размер | Изменение |
---|---|---|
u-boot-1.3.3_svn894_tion-ep93xx-series_bin.tar.gz | 246667 | 2010/03/05 15:28 |
u-boot-1.3.3_svn886_tion270-pxa270-series_bin.tar.gz | 1648126 | 2010/06/25 14:22 |
u-boot-1.3.3_svn602_tion-ep93xx-series_bin.tar.gz | 242691 | 2010/01/31 19:21 |
u-boot-1.3.3_svn381_tion270-pxa270-series_bin.tar.gz | 340419 | 2010/01/31 19:21 |
u-boot-1.3.3_svn349_tion-ep93xx-series_bin.tar.gz | 174072 | 2010/01/31 19:21 |
Патчи для исходных кодов. Файл логотипа zeo.bmp
следует скопировать в директорию tools/logos
исходных кодов.
Файл | Размер | Изменение |
---|---|---|
u-boot-1.3.3_tion-tion270-series_svn894_201002151634.tar.gz | 49724 | 2010/02/15 18:57 |
u-boot-1.3.3_tion-tion270-series_svn775_200910071153.tar.gz | 47060 | 2010/01/31 19:21 |
u-boot-1.3.3_tion-tion270-series_svn602_200906161802.tar.gz | 45192 | 2010/01/31 19:21 |
Файл | Размер | Изменение |
---|---|---|
zeo.bmp | 15542 | 2010/01/31 19:21 |
Оригинальный исходный код U-Boot 1.3.3.
Скрипты для упрощения записи Linux и КФС. В файле скрипта должно использоваться Unix-разделение строк, см. статью "новая строка" в Wikipedia
Файл | Размер | Изменение |
---|---|---|
u-boot_scripts_svn402.tar.gz | 1189 | 2010/01/31 19:21 |
1. Проблема с работой по 10 Мбитной сети (таймауты), по крайней мере с платами на основе Marvell PXA270.
2. Если в bootargs
указывать переменную, например, bootargs '${nfsroot}
', то
вместо этой переменной не подставляется её значение при передачи параметров ядру.
Требуемое можно сделать указав дополнительно в переменной bootcmd setenv bootargs ${bootargs} ${nfsroot}