Требуется сделать обновление загрузчика и КФС в NAND с хоста на Linux. Соответственно, вариант с MFG_Tools мне не подходит.
Пробовал данный вариант. При подключении создается /dev/ttyACM0. Подключаюсь к нему через minicom. Если я правильно понял, в терминале будет либо приглашение linux, либо командная строка u-boot. По факту не происходит ничего: и не выводится ничего, и записать туда тоже ничего нельзя. Или я неправильно использую /dev/ttyACM0?
Настройки minicom: 115200 8N1.
Подключение: перемычка J1 на sk-imx6s-oem замкнута, SD-карта извлечена, подключен к хосту через USB (X20) разъем sk-imx6-mb.
конечно же неправильно вы поняли - это для связи с другим устройством, например с платой Hola у которых нет преобразователя уровней для отладочного уарта
В два этапа
1 записываете на SD через mk-sd.sh
2 запускаете скрипт /root/root2nand.sh
MFG для Linux у Freescale нет.
В принципе можно сделат сборку для обновления нанды, по началу я даже так и сделал но потом передумал - SD для начального старта универсальней и проще.
Все-таки это много ручных операций + нужна SD-карта, которую нужно будет перетыкать в каждую новую плату. Разово - нет проблем. Однако, при запуске изделий на базе этой платы в массы по ряду причин хотелось бы чтоб это выполнялось автоматически: подключил плату к хосту, подождал обновления, выдернул.
не вижу проблемы приобрести хотя бы БУ компьютер с Windows
вы не поверите - но это не менее просто с SD сделать - добавить скрипт с root2nand.sh в автозапуск на SD но не копировать его в корневую нанды или удалять после копирования.
Это все понятно, но в каждую плату перетыкать SD-карту для прошивки, как мне кажется не так удобно, как забирать КФС и u-boot для обновления с TFTP/NFS. Впрочем, ладно, пока и такой костыль сойдет.
Есть еще другая задача. Продукт, который мы разрабатываем будет иметь КФС в NAND, карты SD не будет. Задача - обеспечить возможность пользователю обновить КФС скачав обновление с сервера в Интернете.
Первый пришедший в голову вариант алгоритма обновления:
1. скачивается образ КФС с инета и разворачивается в отдельный раздел
2. производится перенос настроек раздела со старой КФС в раздел с новой КФС.
3. Средствами fw_setenv выбирается раздел загрузки, производится перезапуск.
Есть вариант проще/лучше?
Смотрел fw_printenv/fw_setenv, при работе с NAND на этой плате они выводят ошибку:
напридумывать можно кучу вариант но вам должно быть видней - что лучше/проще. Я бы сделал отдельный раздел для восставления и постоянный рутовый, /etc на свой отдельный раздел в RO. Если корневая небольшая то корень бы вообще в ramfs вынес.
чтобы эти переменные изменить из окружения Linux их сначала надо сохранить на носителе
saveenv
в консоли убута. Посмотрите в исходниках убута в конфиге для Hola (include/configs/) - там прописана команда загрузки которая сохраняет автоматом переменные при первом старте.