Rozdział 13. Firmware

Spis treści

13.1. Aktualizacje firmware
13.2. Ładowanie firmware za pomocą programu lbnetcfg
13.3. Programowanie pamięci FLASH
13.4. Brak firmware
13.5. Zablokowanie firmware
13.6. Awaryjne ładowanie firmware
13.6.1. System UNIX i pochodne
13.6.2. System Windows

Firmware to wewnętrzne oprogramowanie urządzenia. Moduł LB-489 przechowuje firmware w pamięci typu FLASH i pozwala na zmianę tego oprogramowania przez użytkownika, za pomocą stosownych mechanizmów. Daje to możliwość samodzielnej aktualizacji urządzenia, gdy nowo wypuszczane wersje firmware zawierają poprawki błędów ujawnionych we wcześniejszych wersjach lub zupełnie nowe funkcje.

Załadowanie nowszej wersji firmware zawsze skutkuje zachowaniem wszystkich dotychczasowych ustawień konfiguracyjnych. Załadowanie starszej wersji firmware w miejsce nowszej również jest bezpieczne - konfiguracja nie ulegnie zmianie, choć niektóre parametry mogą uzyskać wartości sprzed momentu wcześniejszego załadowania nowszej wersji firmware.

Proces aktualizacji firmware jest całkowicie bezpieczny i ewentualne problemy wynikłe w procesie ładowania (przerwanie transmisji danych, zanik zasilania, itd.) nigdy nie spowodują utraty firmware w urządzeniu i tym samym nie spowodują zablokowania urządzenia. Proces jest bezpieczny dzięki ładowaniu nowego firmware do specjalnej osobnej pamięci, całkowicie niezależnej od głównego firmware używanego do działania. W czasie ładowania firmware urządzenie całkowicie zachowuje swoją funkcjonalność. Po zakończeniu ładowania następuje restart programu, który sprawdza pamięć potencjalnie zawierającą nowy firmware - jeżeli okaże się że nowy firmware jest prawidłowy (wymagane są odpowiednie sygnatury i sumy kontrolne), jest on programowany do głównej pamięci. Jeżeli ten proces zostanie przerwany z dowolnego powodu (np. zanik zasilania), programowanie jest wznawiane. W każdej chwili przynajmniej jedna z pamięci zawiera prawidłowy firmware, co daje gwarancję że urządzenie nie pozostanie bez oprogramowania.

13.1. Aktualizacje firmware

Aktualizacje firmware dla modułu LB-489 dostępne na stronie WWW firmy LAB-EL: http://www.label.pl/po/get-lb489.html.

13.2. Ładowanie firmware za pomocą programu lbnetcfg

Załadowanie firmware do urządzenia możliwe jest za pomocą programu lbnetcfg. W tym celu należy uruchomić program lbnetcfg i znaleźć w sieci właściwe urządzenie (patrz opis sposobu uruchomienia programu lbnetcfg). Następnie z listy wybrać właściwe urządzenie, wydać polecenie Firmware, wybrać odpowiedni plik do załadowania (pliki mają rozszerzenie .fw) i potwierdzić operację.

13.3. Programowanie pamięci FLASH

Po załadowaniu firmware następuje proces programowania pamięci FLASH. W tym czasie urządzenie nie ma swojej nominalnej funkcjonalności. Proces sygnalizowany jest szybkim mruganiem diody READY. Cały proces trwa nie dłużej niż kilkanaście sekund, po czym urządzenie wznawia swoje działanie z użyciem nowo załadowanego firmware.

13.4. Brak firmware

W toku normalnej eksploatacji sytuacja w którym urządzenie pozbawione jest firmware zasadniczo nie ma prawa wystąpić. Jednakże w wyniku nieoczekiwanych czynników zewnętrznych (np. bardzo silne zakłócenia elektromagnetyczne) może się okazać że pamięć FLASH w urządzeniu zawierająca program została rozprogramowana. W takiej sytuacji są dwie możliwości (o ile nie nastąpiło faktyczne uszkodzenie elektryczne): nastąpiła całkowita utrata zawartości pamięci FLASH lub tylko częściowa i ocalał podstawowy program ładujący (bootloader). W pierwszej sytuacji urządzenie będzie całkowicie "martwe" i wymaga ingerencji serwisu. W drugiej sytuacji urządzenie sygnalizuje brak właściwego firmware równoczesnym mruganiem wszystkich diod wejść INPUT1..INPUT4 (patrz sygnalizacja błędów), ale pozwala na awaryjne załadowanie firmware.

13.5. Zablokowanie firmware

Moduł LB-489 pozwala na zablokowanie działania firmware, pozostawiając jedynie aktywny podstawowy program ładujący (bootloader). W toku normalnej eksploatacji nie ma takiej potrzeby, ale mogą wydarzyć się różne nietypowe zjawiska wymagające takiej interwencji. Przykładowo, w firmware może objawić się błąd, skutkujący brakiem komunikacji sieciowej i uniemożliwiający załadowanie firmware wcześniej opisanymi sposobami. W takim wypadku należy zablokować firmware i załadować nowy.

Zablokowanie firmware możliwe jest za pomocą odpowiedniej funkcji awaryjnej. W skrócie: wyłączyć zasilanie modułu, następnie wcisnąć przycisk znajdujący się na tylnej ściance, trzymając go wciśniętego włączyć zasilanie. Poczekać aż zaświecą się wszystkie diody, wtedy puścić przycisk. Powinna zgasnąć dioda READY i wszystkie INPUT1..INPUT4, diody ETH LINK i ACT sygnalizują stan podłączenia do sieci Ethernet i ewentualną transmisję danych. Nie należy wciskać więcej dolnego przycisku - spowodowałoby to uruchomienie firmware z wywołaniem funkcji awaryjnej.

13.6. Awaryjne ładowanie firmware

Awaryjne załadowanie firmware jest możliwe tylko w sytuacji gdy bootloader urządzenia wykryje brak firmware (mrugają wszystkie diody INPUT1..INPUT4) lub firmware zostanie jawnie zablokowany przez użytkownika.

W takiej sytuacji urządzenie polega na autonegocjacji parametrów sieci Ethernet i nie dysponuje żadną konfiguracją sieciową (adresy IP). Obsługiwany jest wyłącznie protokół IPv4 i usługa TFTP. W celu nawiązania komunikacji z urządzeniem wymagane jest zastosowanie specjalnych środków, polegających na manipulacji tablicą ARP w systemie operacyjnym na którym uruchamiany będzie proces ładowania firmware. Zwykle do tego celu wymagane są uprawnienia administracyjne.

Założenia są następujące:

  • znany jest adres MAC urządzenia (wydrukowany na naklejce na tylnej ściance urządzenia, w dalszym przykładzie użyty będzie adres 00:50:C2:56:E0:00, ale oczywiście należy użyć stosownego adresu danego urządzenia,

  • przydzielony został tymczasowy adres IPv4, który należy do używanej podsieci, ale nie jest przyznany żadnemu istniejącemu urządzeniu albo komputerowi, w dalszym przykładzie użyty będzie adres 10.11.12.13,

  • do dyspozycji jest plik zawierający firmware dla urządzenia, w dalszym przykładzie użyta będzie nazwa firmware.fw.

13.6.1. System UNIX i pochodne

Dodać tymczasowy adres IP i MAC urządzenia do tablicy ARP (zastąpić adresy właściwymi):

arp -s 10.11.12.13 00:50:C2:56:E0:00

Załadować firmware (zastąpić adres IP i nazwę pliku właściwymi):

tftp 10.11.12.13

W odpowiedzi na zgłoszenie programu tftp podać komendy:

binary

put firmware.fw

quit

Usunąć tymczasowy adres IP z tablicy ARP:

arp -d 10.11.12.13

13.6.2. System Windows

Uruchomić okno linii poleceń.

Dodać tymczasowy adres IP i MAC urządzenia do tablicy ARP (zastąpić adresy właściwymi), w adresie MAC należy zastąpić dwukropki średnikami:

arp -s 10.11.12.13 00-50-C2-56-E0-00

Załadować firmware (zastąpić adres IP i nazwę pliku właściwymi):

tftp -i 10.11.12.13 put firmware.fw

Usunąć tymczasowy adres IP z tablicy ARP:

arp -d 10.11.12.13