Powrót do strony głównej

Sieciowe flashowanie Raspberry CM4/CM5 — przewodnik techniczny

Przewodnik techniczny po organizacji sieciowego masowego flashowania przemysłowych komputerów AntexGate na bazie Raspberry CM4/CM5. Szczegółowa analiza architektury, przygotowania obrazów i automatyzacji za pomocą skryptów. Rozwiązanie skraca czas flashowania partii 50 urządzeń z 12 godzin do 45 minut.

Masowe flashowanie przemysłowych komputerów przez sieć: realizacja dla CM4/CM5
Advertisement 728x90

# Sieciowa masowa prowizja przemysłowych komputerów opartych na Raspberry CM4/CM5: realizacja techniczna

Proces aktualizacji firmware'u dla przemysłowych komputerów AntexGate opartych na Raspberry CM4/CM5 tradycyjnie wymaga ręcznego podłączenia przez USB, co wydłuża czas wdrożenia i zwiększa ryzyko uszkodzenia komponentów przez wyładowania elektrostatyczne. Przedstawiamy rozwiązanie techniczne do sieciowej masowej prowizji, umożliwiające jednoczesne przetwarzanie do 50 urządzeń za pośrednictwem interfejsu webowego z weryfikacją sum kontrolnych.

Problemy ręcznej prowizji i wymagania dla rozwiązania przemysłowego

Standardowa procedura prowizji przez kabel USB i Win32Imager nie spełnia wymagań produkcji przemysłowej. Podczas pracy z otwartymi płytami CM4/CM5 występują:

  • Ryzyko uszkodzenia układów eMMC przez wyładowania elektrostatyczne
  • Ograniczenie prędkości prowizji (do 15 minut na urządzenie)
  • Brak automatycznej weryfikacji obrazu
  • Brak możliwości przetwarzania równoległego

Kluczowe wymagania dla systemu:

Google AdInline article slot
  • Obsługa protokołu sieciowego TFTP do transmisji obrazów
  • Integracja z serwerem DHCP do dynamicznego przydzielania IP
  • Automatyczna weryfikacja sum kontrolnych SHA-256
  • Obsługa skompresowanych obrazów w formacie .img.xz

Architektura rozwiązania sieciowego

System CM Provisioner jest oparty na zmodyfikowanym Raspberry Pi OS Lite z preinstalowanym oprogramowaniem. Główne komponenty:

  • Węzeł serwerowy: AntexGate z CM4/CM5, podłączony do przełącznika 1GbE
  • Urządzenia klienckie: Przemysłowe komputery AntexGate w trybie network boot
  • Interfejs webowy: Zrealizowany za pomocą Nginx z podstawową autentykacją HTTP
  • Usługi: dnsmasq (DHCP/TFTP), niestandardowy demon prowizji

Ważne jest użycie oddzielnych VLAN dla:

  • Interfejsu zarządzającego (10/100Mb)
  • Ruchu prowizji (1GbE)

Przygotowanie obrazu: od utworzenia kopii po optymalizację

Jakość przygotowania obrazu jest kluczowa dla prędkości prowizji. Zalecana sekwencja:

Google AdInline article slot
  • Utworzenie źródłowego obrazu za pomocą rpiboot z aktywacją trybu masowego przechowywania
  • Zastosowanie PiShrink do obcięcia niewykorzystanej przestrzeni
  • Kompresja za pomocą 7-Zip z algorytmem XZ (współczynnik 5-6x)
  • Generowanie sumy kontrolnej SHA-256
# Example skripta szhatiya
xz -9 -v --check=sha256 source.img -o compressed.img.xz
sha256sum compressed.img.xz > checksum.sha256

Uwaga: obrazy dla Astra Linux lub QNX wymagają dodatkowej adaptacji partycji. Przy przenoszeniu na nośniki o mniejszej pojemności należy korygować rozmiar partycji głównej za pomocą resize2fs.

Automatyzacja za pomocą skryptów użytkownika

System obsługuje wykonywanie skryptów post-install za pośrednictwem sekcji Scripts w interfejsie webowym. Przykładowy skrypt do aktywacji SSH i utworzenia użytkownika:

#!/bin/sh
mkdir -p /mnt/boot
mount -t vfat $PART1 /mnt/boot
touch /mnt/boot/ssh
echo 'pi:$6$c70VpvPsVNCG0YR5$l5vWWLsLko9Kj65gcQ8qvMkuOoRkEagI90qi3F/Y7rm8eNYZHW8CY6BOIKwMH7a3YYzZYL90zf304cAHLFaZE0' > /mnt/boot/userconf.txt
umount /mnt/boot

Cechy implementacji:

Google AdInline article slot
  • Zmienne środowiskowe $PART1/$PART2 wskazują na partycje
  • Skrypty są wykonywane przed pierwszym uruchomieniem systemu
  • Obsługa wieloliniowych poleceń za pomocą heredoc
  • Logowanie do /var/log/provisioner/

Praktyczne wdrożenie: od podłączenia po weryfikację

Typowy schemat podłączenia:

  • Serwer: Port LAN 1GbE → przełącznik
  • Klienci: Porty 1GbE przełącznika
  • Urządzenie zarządzające: Port 10/100Mb serwera

Po załadowaniu obrazu do sekcji Images należy:

  • Utworzyć projekt z podaniem:

- Źródła obrazu

- Listy skryptów

- Flag weryfikacji

  • Aktywować projekt za pomocą Set Active
  • Podłączyć zasilanie do urządzeń klienckich

System automatycznie:

  • Przydziela IP za pomocą DHCP
  • Ładuje jądro za pomocą TFTP
  • Rozpakowuje obraz na eMMC
  • Weryfikuje sumę kontrolną

W sekcji CMs wyświetlają się adresy MAC i numery seryjne wykrytych modułów. Logi prowizji zawierają szczegóły błędów, w tym niezgodności sum kontrolnych i timeouty transmisji.

Co ważne

  • Wymagania sprzętowe: Przełącznik 1GbE jest obowiązkowy — użycie portów 100Mb obniża prędkość prowizji 8-10 razy
  • Optymalizacja obrazu: Kompresja XZ jest kluczowa dla prędkości transmisji — niekompresowany obraz 8GB prowizowany jest przez 35+ minut
  • Weryfikacja: Zawsze włączaj sprawdzanie sum kontrolnych — 92% błędów objawia się jako uszkodzone sektory po 2-3 tygodniach
  • Skrypty: Testuj skrypty na pojedynczym urządzeniu przed masowym zastosowaniem
  • Skalowanie: Dla partii >30 urządzeń używaj dysku NVMe na serwerze — zwiększa prędkość zapisu 2,3x

Podczas pracy z już prowizowanymi urządzeniami nie jest wymagany demontaż obudowy. Wystarczy usunąć partycję boot za pomocą SSH i zrestartować urządzenie w trybie network boot. System automatycznie wykryje brak bootloadera i uruchomi proces prowizji.

Ograniczenia techniczne:

  • Obsługa tylko eMMC i NVMe (karty SD nieobsługiwane)
  • Maksymalny rozmiar obrazu — 32GB
  • Wymagany statyczny adres IP serwera (DHCP nieobsługiwany)

— Editorial Team

Advertisement 728x90

Czytaj dalej