Перейти к содержанию

    

Buildroot: создание образа и перепрошивка i.MX6ULL

Всем привет.

Имеем плату с NXP i.MX6ULL Cortex-A7 32-bit processor + SD карта. От производителя установлен софт Uboot + Debian Stretch 9.2. Так же имеется Buildroot комплект с исходниками.

Хочу научиться пересобирать прошивку и обновлять по TFTP из Uboot'а.

 

После мейка в билдруте появляется папка build-visionsom-6ull включающая папку images:

rootfs.ext2
rootfs.ext4
rootfs.ubi
rootfs.ubifs
sdcard.img
somlabs-visionsom-6ul.dtb
u-boot.bin
u-boot.imx
zImage

 

Что делать с этими файлами?

Обычно TFTP клиент Uboot'а прости *.bin, а установленный на плате юбут захотел AC1FAEC9.img

 

Так же смущает что sdcard.img появившийся в папке билдрута значительно меньше того, что использовался для прошивки SD карты

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Хочу научиться пересобирать прошивку и обновлять по TFTP из Uboot'а.

Что делать с этими файлами?

Обычно TFTP клиент Uboot'а прости *.bin, а установленный на плате юбут захотел AC1FAEC9.img

в обратном порядке:

- да хоть горшком назовите, юбут по tftp тянет любые файлы с любым расширением (ядра, бинарники, прошивки фпга)

- зависит от того, что за файл - img это обычно образ, который накатывается на uSD/SD карту, всё внутри и ничего делать не надо, bin либо кладется в определенное место раздела или записывается в определенное место накопителя.. и тыды

- в чем проблема? взяли img или ubifs, втянули в юбут и накатили на SD или nand соответственно

 

Так же смущает что sdcard.img появившийся в папке билдрута значительно меньше того, что использовался для прошивки SD карты

значит что-то изменили в сборке и размер стокового имиджа и собираемого имеет право отличаться

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
- в чем проблема? взяли img или ubifs, втянули в юбут и накатили на SD или nand соответственно

Если я все верно понимаю, полученный мной sdcard.img - это образ всей системы (загрузчик, ядро, рутфс) который записывается на SD.

Если я его подтяну юбутом, что он с ним сделает, куда запишет (хотя бы теоретически) ?

 

В общем все сделал: ребутнулся, в юбуте выбрал загрузку по тфтп, скормил img файл, загрузился. однако после загрузки консоль выдала все ту же версию билда

Linux somlabs 4.1.15 #3 SMP PREEMPT Mon Oct 23 16:37:52 UTC 2017 armv7l

как будто и не обновлял ничего

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Если я все верно понимаю, полученный мной sdcard.img - это образ всей системы (загрузчик, ядро, рутфс) который записывается на SD.

Если я его подтяну юбутом, что он с ним сделает, куда запишет (хотя бы теоретически) ?

зачем теория? запускаете плату, останавливаете загрузку юбута любой клавишей и изучаете вывод команды

printenv

смотрите там, все что касается "mmc" - это прописанные скрипты работы с карточкой (их может не быть)

 

обычно делают так

tftp адрес-в-памяти имя файла

далее действия с накопителем - если nand/spi то предварительно чистят, потом пишут, а вот с uSD/SD я как-то не помню, что юбут умеет писать - это надо смотреть/проверять. наберите в юбуте:

mmc help

может там есть блочная запись, тогда пишете с "адрес-в-памяти" в карту с блока №..

 

Если я все верно понимаю, полученный мной sdcard.img - это образ всей системы (загрузчик, ядро, рутфс) который записывается на SD.

как правило да, это полный образ

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
..

Спасибо!

 

После введения следующей команды юбут стянул и записал образ. все получилось

 

setenv serverip 172.31.174.122; setenv bootfile sdcard.img; dhcp; mmc write $loadaddr 0 44000

 

После обновления ПО стал недоступен bash

 

-sh: bash: not found

 

Как переключиться?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
После обновления ПО стал недоступен bash

-sh: bash: not found

Как переключиться?

имидж из билдрута? зайти в меню билдрута и включить bash в конфиге, потом пересобрать билдрут (это быстро) и обновить имидж..

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
имидж из билдрута? зайти в меню билдрута и включить bash в конфиге, потом пересобрать билдрут (это быстро) и обновить имидж..

вот найти бы его еще в менюконфиге)) пунктов уйма, по ключевому слову в конфиге не ищется..

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
вот найти бы его еще в менюконфиге)) пунктов уйма, по ключевому слову в конфиге не ищется..

из корневого меню надо зайти в меню пакаджей и там вроде в системных утилитах..

 

из корневого меню->Target Packages->[*] Show package by busybox->Shell and Util->Bash

 

поиск по билдруту -> нажать "/" и большими буквами ввести BASH

Изменено пользователем Jury093

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
из корневого меню надо зайти в меню пакаджей и там вроде в системных утилитах..

если не найдете, то чуть позже уточню

спасибо, кажется нашел! да и в общем принцип понял.

 

с этим разбирусь.

 

следующий вопрос: теперь я хочу добавить в userspace какое то приложение, например web-сервер (goahead к примеру).

какие мои шаги?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
спасибо, кажется нашел! да и в общем принцип понял.

с этим разбирусь.

я там выше обновил

 

следующий вопрос: теперь я хочу добавить в userspace какое то приложение, например web-сервер (goahead к примеру).

какие мои шаги?

тут я пас - никогда такое не требовалось

вам варианты - подобрать альтернативу из того, что есть в билдруте или гуглить "buildroot how to add package"

Изменено пользователем Jury093

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

окей. такой вопрос: я изменил что то в исходнике пакета (/output/build/<pkg>), сделал make <pkg>-rebuild, как теперь пересобрать образ с учетом изменений? после make all изменений нет...

вопрос снимается. решение описано по ссылке https://buildroot.org/downloads/manual/manu...ing_development

Изменено пользователем k000858

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Проверьте все файлы командой file

 

rootfs.ext2 полагаю образ корневой файловой системы сформатированный в ехт2. Старая песня ext4 лучше.

rootfs.ext4

 

rootfs.ubi

rootfs.ubifs

 

sdcard.img Образ диска, на котором все остальные файлы из списка расставлены в нужные места. Достаточно его записать во флешку или SD карточку если есть место куда ее воткнуть.

 

somlabs-visionsom-6ul.dtb

u-boot.bin образ бут загрузчика uboot

u-boot.imx

zImage архивированнын образ ядра. Именно в таком виде он и используется при загрузке. tftp надо его скармливать.

 

Самое простое запишите во флешку или SD sdcard.img при помощи команды dd на любом Линукс компьютере. На винде тоже как-то делают, но я не знаю как.

 

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

Подключите терминал и смотрите как происходит процесс загрузки. Может надо будет конфигурацию юбуту подкрутить.

Успехов

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация