Прошивання образу на eMMC
Використовуйте цю сторінку, щоб записати повний образ на eMMC плати, наприклад на виробничій лінії, на платі власної розробки або з образом, який не є опублікованим випуском. Усі кроки ви виконуєте самостійно, тож процедура працює з будь-яким наявним у вас файлом образу.
Щоб оновити DevKit до опублікованого випуску SiMa.ai, натомість скористайтеся розділом Оновлення прошивки. Щоб замінити лише ядро, дерева пристроїв або U-Boot на платі, яка вже завантажується, див. Встановлення артефактів.
Перед початком роботи
-
Плата, яка доходить до запрошення U-Boot.
-
Послідовне з’єднання з UART U-Boot/Linux плати на швидкості 115200 бод із вимкненим апаратним керуванням потоком. Див. Налаштування послідовного з’єднання.
-
Образ для прошивання:
Образ Файли eLxr elxr-palette-modalix-<version>-arm64.imgYocto simaai-image-minimal-modalix.rootfs.wic.gzіsimaai-image-minimal-modalix.rootfs.wic.bmapНазви файлів Yocto — це ті, які створює Збирання повного образу за допомогою Yocto. Інший рецепт образу дає інші назви.
-
Хост з Ethernet і сервером TFTP або SD-карта.
Як плата вибирає джерело завантаження
Плата не може перезаписати eMMC, поки працює з неї, тому спершу вона завантажується
з мережі або з SD-карти. U-Boot перебирає джерела зі змінної boot_targets у
заданому порядку:
| Ціль | Завантаження з |
|---|---|
mmc1 | SD-карти |
mmc0 | eMMC |
dhcp | сервера TFTP, знайденого через DHCP |
net | сервера TFTP зі статичною IP-адресою |
Порядок за замовчуванням — mmc1 mmc0 dhcp net. Щоб змінити його, перервіть автоматичне завантаження в
послідовній консолі, а потім задайте й збережіть порядок:
sima$ env set boot_targets mmc1 mmc0 net dhcp; saveenv
Saving Environment to FAT... OK
sima$ printenv boot_targets
boot_targets=mmc1 mmc0 net dhcp
sima$ boot
Крок 1. Завантаження з мережі або з SD-карти
На тестовій станції краще завантажуватися з SD-карти, оскільки тоді порти Ethernet залишаються вільними для навантажувальних тестів мережі.
Завантаження з мережі
У цьому варіанті використовується ваш власний сервер TFTP, тож ви самі обираєте, що він надає.
Відновлення за допомогою мережевого завантаження робить
те саме за допомогою sima-cli, який завантажує та надає опублікований випуск за вас.
-
Скопіюйте файли завантаження до кореневого каталогу сервера TFTP:
netboot.scr.uimgImage- двійкові файли дерев пристроїв (
*.dtb) - архів кореневої файлової системи:
elxr-palette-modalix-arm64.cpio.gzдля eLxr абоsimaai-image-palette-modalix.cpio.gzдля Yocto
-
Під’єднайте хост до першого порту Ethernet плати (
eth0). Плата використовує192.168.1.20, тож призначте хосту адресу в мережі192.168.1.0/24:sima-user@sima-user-machine:~$ sudo ifconfig <interface_name> 192.168.1.10 up -
Увімкніть живлення плати, перервіть автоматичне завантаження та зробіть
netпершим джерелом завантаження:sima$ env set boot_targets net mmc0 mmc1 dhcp; saveenvsima$ boot -
Після завантаження Linux перевірте збірку та те, що коренева файлова система розміщена в RAM (
root=/dev/ram0):root@modalix:~# cat /etc/buildinforoot@modalix:~# cat /proc/cmdline
Завантаження з SD-карти
-
Запишіть образ на SD-карту. Це можна зробити з хоста за допомогою Створення завантажувального образу або з плати, завантаженої з мережі, зі вставленою SD-картою (
/dev/mmcblk1):Для eLxr:
root@modalix:~# dd if=/tmp/elxr-palette-modalix-<version>-arm64.img of=/dev/mmcblk1 bs=4M status=progress conv=fsyncДля Yocto скопіюйте обидва файли
.wic.gzі.wic.bmap, а потім виконайте:root@modalix:~# bmaptool copy /tmp/simaai-image-minimal-modalix.rootfs.wic.gz /dev/mmcblk1Потім виправте таблицю розділів. Образ менший за карту, тому резервний заголовок GPT не розташований у кінці пристрою, доки
partedйого не перемістить:root@modalix:~# printf "fix\n" | parted ---pretend-input-tty /dev/mmcblk1 print -
Перезавантажте плату, перервіть автоматичне завантаження та переконайтеся, що
mmc1стоїть першим. За замовчуванням так і є:sima$ env set boot_targets mmc1 mmc0 dhcp net; saveenvsima$ boot -
Після завантаження Linux перевірте
/etc/buildinfo, а також переконайтеся, що/proc/cmdlineміститьroot=/dev/mmcblk1p*.
Крок 2. Запис образу на eMMC
Виконайте ці кроки на платі від імені root, поки вона завантажена з мережі або з SD-карти.
-
Скопіюйте образ із хоста до
/tmpна платі.Для eLxr:
sima-user@sima-user-machine:~$ scp elxr-palette-modalix-<version>-arm64.img root@192.168.1.20:/tmp/Для Yocto скопіюйте обидва файли,
.wic.gzі.wic.bmap:sima-user@sima-user-machine:~$ scp simaai-image-minimal-modalix.rootfs.wic.* root@192.168.1.20:/tmp/ -
Запишіть образ на eMMC (
/dev/mmcblk0).Для eLxr:
root@modalix:~# dd if=/tmp/elxr-palette-modalix-<version>-arm64.img of=/dev/mmcblk0 bs=4M status=progress conv=fsyncДля Yocto:
root@modalix:~# bmaptool copy /tmp/simaai-image-minimal-modalix.rootfs.wic.gz /dev/mmcblk0 -
Виправте таблицю розділів:
root@modalix:~# printf "fix\n" | parted ---pretend-input-tty /dev/mmcblk0 print
Крок 3. Завантаження з eMMC
-
Якщо ви завантажувалися з мережі, відновіть порядок завантаження за замовчуванням:
sima$ env set boot_targets mmc1 mmc0 dhcp net; saveenvЯкщо ви завантажувалися з SD-карти, вийміть її.
-
Перезавантажте плату або вимкніть і знову ввімкніть її живлення та переконайтеся, що вона завантажується з eMMC.