Перейти до основного вмісту

Відновлення за допомогою мережевої завантажувальної системи.

Використовуйте функцію Net Boot Recovery, коли вам потрібно завантажити DevKit через мережу замість завантаження з переносного носія. Це корисно в таких випадках:

  • Вам потрібно повернутися до попередньої версії DevKit і встановити старішу версію SDK.
  • Вам потрібно встановити версію, яка не є останньою офіційною версією (наприклад, попередню версію develop або внутрішню інженерну збірку).
  • Вам потрібно відновити роботу пристрою, на якому пошкоджено завантажувач або файлову систему, і при цьому немає можливості використати SD-карту.
  • Ви вводите в експлуатацію нову плату і хочете запобігти зношуванню внутрішніх пристроїв зберігання даних.
  • Ви перетворюєте Modalix DevKit з Yocto Linux на eLxr, або з eLxr назад на Yocto Linux. Перегляньте Перехід на eLxr, щоб дізнатися про конкретні вимоги до перетворення.

Використовуйте опцію --netboot разом із sima-cli bootimg. Вона завантажує образ завантаження для цільової плати та надає його через вбудований TFTP-сервер на хості. Потім ви налаштовуєте DevKit в U-Boot для завантаження з цього TFTP-сервера та запису нового образу в eMMC.

Крок 1. Фізичне налаштування
примітка

Ця процедура підтримує хости macOS і Ubuntu Linux.

Якщо ви ще не встановили sima-cli на вашому хості, встановіть його, перш ніж продовжувати.

Необхідно відкрити два термінали:

  1. Встановіть з’єднання з послідовною консоллю DevKit. Використовуйте це з’єднання, щоб змінити змінні середовища U-Boot, щоб DevKit завантажувався через мережу.
  2. Сеанс командного рядка хоста. Використовуйте цей сеанс для запуску сервера TFTP і ініціалізації флеш-пам’яті eMMC.
  1. Під’єднайте Ethernet-порт DevKit безпосередньо до хост-машини та налаштуйте мережевий інтерфейс хоста на статичну IP-адресу 192.168.1.10. На Modalix Early Access DevKit використовуйте Ethernet-порт 0.

  2. Під’єднайте UART порт DevKit до хоста для отримання доступу до консолі. Після встановлення sima-cli на хості відкрийте послідовний термінал:

    sima-user@sima-user-machine:~$ sima-cli serial
  3. На DevKit налаштуйте мережевий інтерфейс, встановивши для нього стандартну статичну IP-адресу 192.168.1.20, дотримуючись інструкцій Налаштування мережі в автономному режимі.

Крок 2. Запустіть сервер TFTP Netboot на хості.

Вимоги

  • Хост і DevKit повинні перебувати в одній фізичній мережі або бути з’єднані безпосередньо через Ethernet.
  • Підключення Ethernet має бути інтерфейсом Gigabit або швидшим (швидкість передачі даних має перевищувати 1000 Мбіт/с).
  • Для завантаження образу прошивки хосту потрібен доступ до Інтернету.
  • UDP-порт 69 (TFTP) не повинен бути заблокований брандмауером хоста.

Замініть <version> на цільову версію SDK (наприклад, 2.1.2), <boardtype> на modalix або mlsoc, а <fwtype> на yocto або elxr.

На macOS:

sima-user@sima-user-machine:~$ sima-cli bootimg --boardtype <boardtype> --fwtype <fwtype> -v <version> --netboot

На Linux:

попередження

Сервер TFTP прив’язується до порту 69, який має особливі права, тому потрібне використання команди sudo:

sima-user@sima-user-machine:~$ sudo ~/.sima-cli/.venv/bin/sima-cli bootimg --boardtype <boardtype> --fwtype <fwtype> -v <version> --netboot

Ця команда:

  1. Завантажує образ для завантаження, призначений для запитуваної версії SDK і типу плати.
  2. Витягує файли та поміщає їх до тимчасової робочої директорії.
  3. Запускає локальний TFTP-сервер і надає доступ до витягнутих файлів завантаження (Image, boot.scr, .dtb та інші файли).
Крок 3. Налаштуйте DevKit для завантаження по мережі

Перезавантажте DevKit, поки він підключений до хоста через послідовний порт. Якщо під час перезавантаження послідовний порт від’єднується, під’єднайте його знову. Зачекайте, поки не з’явиться повідомлення Hit any key to stop autoboot, а потім натисніть будь-яку клавішу, щоб перейти до оболонки U-Boot:

... ... ...

Address in DT is ff:ff:ff:ff:ff:ff
Address in environment is 68:e1:54:00:05:c6
eth0: ethernet@a800000 [PRIME]
Hit any key to stop autoboot: 0
sima$

Потім виконайте наступні команди в оболонці U-Boot:

sima:~$ setenv boot_targets net; saveenv; boot

Для цільових систем Modalix eLxr, також встановіть назву образу cpio перед завантаженням:

sima:~$ setenv cpio_name simaai-image-palette-modalix.cpio.gz; setenv boot_targets net; saveenv; boot

Це дає вказівку DevKit завантажуватися з TFTP-сервера хоста, підготовленого на етапі 2.

примітка

За замовчуванням, DevKit U-Boot налаштовано таким чином:

  • ipaddr=192.168.1.20 (Ethernet-інтерфейс DevKit, перший порт на платах з кількома портами).
  • serverip=192.168.1.10 (хост-машина, на якій працює сервер TFTP).

Щоб використовувати іншу мережу, оновіть значення serverip та ipaddr у U-Boot, щоб вони відповідали вашому середовищу. Переконайтеся, що DevKit може зв’язатися з хостом за вказаними IP-адресами:

sima:~$ setenv serverip 10.0.0.10; setenv ipaddr 10.0.0.1; saveenv; boot
Крок 4. Запишіть образ на eMMC

Оболонка --netboot на хості підтримує дві команди:

  • c — Відобразити всіх підключених клієнтів і версію програмного забезпечення, яка зараз на них працює.
  • f — Завантажте нову версію програмного забезпечення в eMMC обраного клієнта.

Зачекайте, поки DevKit завершить процес мережевої завантажувальної процедури. Це може зайняти кілька хвилин. Після того, як на послідовному інтерфейсі з’явиться запрошення до входу, плата буде готова до роботи. Ми рекомендуємо тримати послідовний інтерфейс підключеним протягом усього процесу, щоб спостерігати за повною послідовністю завантаження.

Поверніться до терміналу хоста та натисніть клавішу Enter, поки не з’явиться запрошення netboot>. За бажанням введіть c, щоб підтвердити, що DevKit підключено, і відобразити поточну версію його прошивки, а потім введіть f, щоб розпочати процес прошивання:

netboot> f

У вас мають відображатися журнали, схожі на наступні:

🔍 Checking SSH availability for 192.168.1.20...
✅ Board is online!
✅ SSH is available on 192.168.1.20
netboot> f
🔧 Initiating eMMC flash [...]

Розмір зображення становить приблизно 1,6 ГБ, а час передавання даних – кілька хвилин. Приклад відображення прогресу:

↦ 520093696 bytes (520 MB, 496 MiB) copied, 1 s, 515 MB/s
↦ 5368709120 bytes (5.4 GB, 5.0 GiB) copied, 163.331 s, 32.9 MB/s

Після завершення процесу прошивання вимкніть і знову ввімкніть DevKit. Пристрій завантажуватиметься із зазначеної версії, що зберігається в eMMC.

примітка

Якщо IP-адреса DevKit змінилася під час мережевої завантажувальної процедури (наприклад, тому що DHCP призначила іншу адресу, ніж стандартна 192.168.1.20), f не зможе самостійно встановити з’єднання з платою. Знайдіть нову IP-адресу в послідовній консолі DevKit. Вона відображається в журналі завантаження та показується командою ip addr в оболонці, що використовується під час мережевої завантажувальної процедури. Потім явно передайте її команді f:

netboot> f <new-ip>
Troubleshooting
  • Якщо DevKit не вдається завантажити через мережу, переконайтеся, що хост і пристрій знаходяться в одній підмережі (192.168.1.x).

  • На сторінці Modalix «Ранній доступ» підтримується лише порт Ethernet 0 для завантаження по мережі.

  • У системі Linux переконайтеся, що брандмауер хоста дозволяє використання UDP-порту 69 (TFTP).

  • Перевірте з’єднання з DevKit:

    modalix:~$ ping 192.168.1.10
  • Якщо f не зможе знайти образ, повторіть виконання команди sima-cli bootimg --netboot з кроку 2, щоб оновити шляхи TFTP.

  • Якщо після перетворення Modalix DevKit на eLxr на послідовному консольному інтерфейсі з’являються повідомлення про помилки, пов’язані з NFS, їх можна безпечно ігнорувати.