# 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:
- 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:
- 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:
- 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
Brak komentarzy.