На imx6 так и происходит, на imx6ull не проверял т.к. на всех изделиях есть джампер для M2 (который его точно в режим загрузки по USB переводит не обращая внимания на FUSE).
Можно подробный мануал по загрузке с sd карты?
Ядро пересобрал, в папке target лежит нужная фс. Создал на карте ext4 раздел и записал туда фс. Но загружается все равно дефолтное ядро.
В mfgtools менял zimage и перепрошивал QSPI.
Что я делаю не так?
Беда в том, что не получается остановить загрузку. А qspi сбрасывается каждый раз после перезагрузки. Т.е. после программного ребута после перепрошивки нормально загружается и отрабатывает загруженное ядро, но после аппаратного ребута снова загружается штатное ядро.
Беда в том, что не получается остановить загрузку.
В момент старта загрузчика, в терминальной программе многократно нажимайте ESC или Ctrl+C.
Если не успеваете, можно исправить прямо в бинарнике uboot.imx - найти "bootdelay=" и исправить значение (в секундах).
можно подробнее как из uboot с SF загрузить Linux с SD хотя бы вручную
остановить загрузку нажатиями любой клавиши - даже с нулевой задержкой можно остановить, надо сразу несколько раз нажимать как только питание подключили. Далее я напишу как загрузить если SD карта размечена стандартно - корневая на первом разделе, ФС ext4, ядро и dtb в директории /boot в корневой, модуль NANO с родной MB
setenv mmcdev 0
setenv mmcroot '/dev/mmcblk0p1 rootwait rootfstype=ext4'
run mmcargs
run loadfdt
run loadimage
bootz ${loadaddr} - ${fdt_addr}
Получилось загрузиться таким образом, но изменения в фс не пишутся на карточку. В чем может быть причина?
И еще в строку аргументов ядра не передается (Или не используется?) значение bootargs из загрузчика. Это удалось побороть указанием строки по умолчанию при сборке ядра, но все равно ведь не норма.
чтобы загрузиться с SD теперь достаточно остановить загрузку и выполнить
run sdboot
чтобы это выполнялось автоматически при каждой загрузке
setenv bootcmd "run sdboot"
saveenv
Дефолтный конфиг buildroot для NANO с qspi flash собирает ядро с initramfs поэтому даже если его записать на SD и загрузить оттуда ничего не изменится - корневая будет находиться в JPE и изменения не сохранятся. Вам нужно ядро и корневую на SD. Для этого соберите обычный минимальный конфиг
make imx6ullsk_min_defconfig
и допишите DTB своей платы чтобы он в корневой был
чтобы загрузиться с SD теперь достаточно остановить загрузку и выполнить
run sdboot
чтобы это выполнялось автоматически при каждой загрузке
setenv bootcmd "run sdboot"
saveenv
Дефолтный конфиг buildroot для NANO с qspi flash собирает ядро с initramfs поэтому даже если его записать на SD и загрузить оттуда ничего не изменится - корневая будет находиться в JPE и изменения не сохранятся. Вам нужно ядро и корневую на SD. Для этого соберите обычный минимальный конфиг
make imx6ullsk_min_defconfig
и допишите DTB своей платы чтобы он в корневой был
если все по шагам делали как у меня - не должно висеть, я пишу то что я у себя сделал перед этим. Попробуйте в директории buildroot
make clean
make imx6ullsk_min_defconfig
make menuconfig
Kernel --->
(imx6ull-sk-lcd-mb imx6ull-sk-mb imx6ull-sk-sb imx6ull-sk-nano) Device Tree Source file names
make
после сборки
sudo ./mk-sd.sh /dev/sdb
или как у вас диск назыыватся на хост-системе
дальше вот мой лог
U-Boot 2017.03 (Oct 15 2020 - 01:29:37 +0300)
CPU: Freescale i.MX6ULL rev1.1 696 MHz (running at 396 MHz)
CPU: Industrial temperature grade (-40C to 105C) at 30C
Reset cause: POR
Model: Starterkit i.MX6 ULL Board
Board: SK-IMX6ULL-NANO
DRAM: 256 MiB
MMC: FSL_SDHC: 0, FSL_SDHC: 1
SF: Detected mx25l12805 with page size 256 Bytes, erase size 64 KiB, total 16 MiB
In: serial
Out: serial
Err: serial
Net: eth0: ethernet@02188000 [PRIME]
Normal Boot
Hit any key to stop autoboot: 0 => run sdboot
30012 bytes read in 82 ms (357.4 KiB/s)
4113192 bytes read in 264 ms (14.9 MiB/s)
Kernel image @ 0x80800000 [ 0x000000 - 0x3ec328 ]
## Flattened Device Tree blob at 83000000
Booting using the fdt blob at 0x83000000
Using Device Tree in place at 83000000, end 8300a53b
Modify /soc/aips-bus@02200000/epdc@0228c000:status disabled
ft_system_setup for mx6
Starting kernel ...
Booting Linux on physical CPU 0x0
Linux version 4.9.11 (sasa@sasa-Q500A) (gcc version 6.3.1 20170109 (Linaro GCC 6.3-2017.02) ) #1 PREEMPT Thu Oct 15 00:08:26 MSK 2020
CPU: ARMv7 Processor [410fc075] revision 5 (ARMv7), cr=10c53c7d
CPU: div instructions available: patching division code
CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
OF: fdt:Machine model: Starterkit i.MX6 ULL Board
Все так и делал, на чистой виртуалке из архива. Только карточку писал через mfgtools. Это может быть связано с версией buildroot? Сегодня попробую скачать последнюю версию и собирать уже на хостовой машине