Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru
Партнеры:
otladka.com.ua - г.Киев

Способы оплаты

User Info


Добро пожаловать,
Guest

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

ПользователейПользователей:0
Поисковых ботовПоисковых ботов:3
ГостейГостей:1

ОбновитьПодробнееВсегоВсего:4
Форум » starterkit.ru » Процессорные модули » SK-iMX6S-OEM(-WiFi)
Обновление NAND с хоста Linux
afilis
Добавлено 04.12.2015 12:22
0
Сообщение: 1
afilis
0

Пункты: 326
Регистрация: 17.07.2014
Требуется сделать обновление загрузчика и КФС в NAND с хоста на Linux. Соответственно, вариант с MFG_Tools мне не подходит.

Цитата
Если нет на хост-системе картридера или нет возможности грузиться с SD на SODIMM, в корне buildroot есть архив с подобием MFG для Linux, только круче :) разархивируйте

sudo tar xf imx-usb-loader.tar.gz -C /

теперь если подключить любую плату через USB OTG порт в режиме serial downloader (смотрите мануал для своей платы - как переводить ее в режим обновления из MFG) в нее автоматом зальется прошивка с initramfs и на хост-системе появятся два устройства USB - коммуникационное (ttyACM0) через которое ее можно использовать
как преобразователь USB <-> Serial 3.3 В (сделано перенаправление ttyGS0 <--> ttymxc0) и как USB mass storage для записи образа на SD (вставьте карту после присоединения USB кабеля) или в случае sodimm на встроенную eMMC.


Пробовал данный вариант. При подключении создается /dev/ttyACM0. Подключаюсь к нему через minicom. Если я правильно понял, в терминале будет либо приглашение linux, либо командная строка u-boot. По факту не происходит ничего: и не выводится ничего, и записать туда тоже ничего нельзя. Или я неправильно использую /dev/ttyACM0?

Настройки minicom: 115200 8N1.
Подключение: перемычка J1 на sk-imx6s-oem замкнута, SD-карта извлечена, подключен к хосту через USB (X20) разъем sk-imx6-mb.

Вывод команды imx_usb:

Цитата

No "_" environment variable
argc == 2, argv == 0xbff02e44
base == 0x806c9e8:./imx_usb
trailing slash == 0x806c9e9:/imx_usb
conf_path == ./
config file <./imx_usb.conf>
No "_" environment variable
argc == 2, argv == 0xbff02e44
base == 0x806c9e8:./imx_usb
trailing slash == 0x806c9e9:/imx_usb
conf_path == ./
config file <./mx6_usb_work.conf>
parse mx6_usb_work.conf
15a2:0061(mx6_qsb) bConfigurationValue =1
Interface 0 claimed
report 1, wrote 16 bytes, err=0
report 3, read 4 bytes, err=0
read=56 78 78 56
uImage.imx6dl 0 0 1 0 1 2
main dcd length 310
sub dcd length 30c
dcd_ptr=0x177ff42c

loading binary file(uImage.imx6dl) to 177ff400, skip=0, fsize=353c00 type=aa

<<<3488768, 3488768 bytes>>>
jumping to 0x177ff400
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 04.12.2015 12:43 Редактировалось 04.12.2015 12:46 Сообщение: 2
sasamy
4.70

Пункты: 76882
Регистрация: 14.08.2009
Цитата

преобразователь USB <-> Serial 3.3 В (сделано перенаправление ttyGS0 <--> ttymxc0)


Цитата

Если я правильно понял, в терминале будет либо приглашение linux, либо командная строка u-boot.


конечно же неправильно вы поняли - это для связи с другим устройством, например с платой Hola у которых нет преобразователя уровней для отладочного уарта
Спуститься к концу Подняться к началу
Персональная информация
afilis
Добавлено 04.12.2015 13:38 Сообщение: 3
afilis
0

Пункты: 326
Регистрация: 17.07.2014
Цитата
конечно же неправильно вы поняли - это для связи с другим устройством, например с платой Hola у которых нет преобразователя уровней для отладочного уарта


Ясно, спасибо.
И, все-таки, по теме: есть ли способ обновить загрузчик и КФС с хоста на Linux?
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 04.12.2015 13:46 Сообщение: 4
sasamy
4.70

Пункты: 76882
Регистрация: 14.08.2009
В два этапа
1 записываете на SD через mk-sd.sh
2 запускаете скрипт /root/root2nand.sh

MFG для Linux у Freescale нет.
В принципе можно сделат сборку для обновления нанды, по началу я даже так и сделал но потом передумал - SD для начального старта универсальней и проще.
Спуститься к концу Подняться к началу
Персональная информация
afilis
Добавлено 04.12.2015 15:39 Сообщение: 5
afilis
0

Пункты: 326
Регистрация: 17.07.2014
Цитата
В два этапа
1 записываете на SD через mk-sd.sh
2 запускаете скрипт /root/root2nand.sh

MFG для Linux у Freescale нет.
В принципе можно сделат сборку для обновления нанды, по началу я даже так и сделал но потом передумал - SD для начального старта универсальней и проще.


Все-таки это много ручных операций + нужна SD-карта, которую нужно будет перетыкать в каждую новую плату. Разово - нет проблем. Однако, при запуске изделий на базе этой платы в массы по ряду причин хотелось бы чтоб это выполнялось автоматически: подключил плату к хосту, подождал обновления, выдернул.
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 04.12.2015 15:47 Редактировалось 04.12.2015 16:18 Сообщение: 6
sasamy
4.70

Пункты: 76882
Регистрация: 14.08.2009
Цитата

Однако, при запуске изделий на базе этой платы в массы


не вижу проблемы приобрести хотя бы БУ компьютер с Windows

Цитата

подключил плату к хосту, подождал обновления, выдернул.


вы не поверите - но это не менее просто с SD сделать - добавить скрипт с root2nand.sh в автозапуск на SD но не копировать его в корневую нанды или удалять после копирования.
Спуститься к концу Подняться к началу
Персональная информация
afilis
Добавлено 07.12.2015 13:50 Сообщение: 7
afilis
0

Пункты: 326
Регистрация: 17.07.2014
Это все понятно, но в каждую плату перетыкать SD-карту для прошивки, как мне кажется не так удобно, как забирать КФС и u-boot для обновления с TFTP/NFS. Впрочем, ладно, пока и такой костыль сойдет.


Есть еще другая задача. Продукт, который мы разрабатываем будет иметь КФС в NAND, карты SD не будет. Задача - обеспечить возможность пользователю обновить КФС скачав обновление с сервера в Интернете.

Первый пришедший в голову вариант алгоритма обновления:
1. скачивается образ КФС с инета и разворачивается в отдельный раздел
2. производится перенос настроек раздела со старой КФС в раздел с новой КФС.
3. Средствами fw_setenv выбирается раздел загрузки, производится перезапуск.

Есть вариант проще/лучше?

Смотрел fw_printenv/fw_setenv, при работе с NAND на этой плате они выводят ошибку:
Цитата
Unsupported flash type 8 on /dev/mtd0
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 07.12.2015 16:37 Редактировалось 07.12.2015 16:38 Сообщение: 8
sasamy
4.70

Пункты: 76882
Регистрация: 14.08.2009
Цитата

Есть вариант проще/лучше?


напридумывать можно кучу вариант но вам должно быть видней - что лучше/проще. Я бы сделал отдельный раздел для восставления и постоянный рутовый, /etc на свой отдельный раздел в RO. Если корневая небольшая то корень бы вообще в ramfs вынес.

Цитата

Смотрел fw_printenv/fw_setenv, при работе с NAND на этой плате они выводят ошибку:


положите патч
https://yadi.sk/d/SRH9Wwbqm3sd4

в директорию буилдрута
package/uboot-tools

добавьте конфиг для нанды
board/starterkit/imx6sk-min/fw_env.config

/dev/mtd0 0x800000 0x100000 0x100000

и пересоберите uboot-tools
rm -r output/build/uboot-tools-2014.07
make
Спуститься к концу Подняться к началу
Персональная информация
afilis
Добавлено 08.12.2015 11:05 Редактировалось 08.12.2015 11:20 Сообщение: 9
afilis
0

Пункты: 326
Регистрация: 17.07.2014
Цитата

положите патч
https://yadi.sk/d/SRH9Wwbqm3sd4

в директорию буилдрута
package/uboot-tools

добавьте конфиг для нанды
board/starterkit/imx6sk-min/fw_env.config

/dev/mtd0 0x800000 0x100000 0x100000

и пересоберите uboot-tools
rm -r output/build/uboot-tools-2014.07
make


Выполнил по инструкции.
Ошибка о неподдерживаемом формате пропала, но появилась другая:

Цитата

# fw_printenv
Warning: Bad CRC, using default environment
bootcmd=bootp; setenv bootargs root=/dev/nfs nfsroot=${serverip}:${rootpath} ip=
${ipaddr}:${serverip}:${gatewayip}:${netmask}:${hostname}::off; bootm
bootdelay=5
baudrate=115200


пробовал для mmc, та же ошибка.

Собрал для конфигурации imx6sk_min_defconf, правки в сам u-boot не вносил.

Логи загрузки и сама сборка:
https://drive.google.com/folderview?id=0B7Vf_H9ZD5AqNF9WamRPT0ZIMUE&usp=sharing
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 08.12.2015 12:36 Сообщение: 10
sasamy
4.70

Пункты: 76882
Регистрация: 14.08.2009
Цитата
Warning: Bad CRC, using default environment


чтобы эти переменные изменить из окружения Linux их сначала надо сохранить на носителе

saveenv

в консоли убута. Посмотрите в исходниках убута в конфиге для Hola (include/configs/) - там прописана команда загрузки которая сохраняет автоматом переменные при первом старте.
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Процессорные модули » SK-iMX6S-OEM(-WiFi)