Rozdział 12. Firmware

Spis treści

12.1. Aktualizacje firmware
12.2. Ładowanie firmware za pomocą programu lbnetcfg
12.3. Programowanie pamięci FLASH
12.4. Brak firmware
12.5. Zablokowanie firmware
12.6. Awaryjne ładowanie firmware
12.6.1. System UNIX i pochodne
12.6.2. System Windows

Firmware to wewnętrzne oprogramowanie urządzenia. Moduł LB-856 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.

12.1. Aktualizacje firmware

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

12.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ę.

12.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 ZASILANIE. 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.

12.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 za pomocą diody ZASILANIE/ALARM (SOS alfabetem Morse'a), ale pozwala na awaryjne załadowanie firmware.

12.5. Zablokowanie firmware

Moduł LB-856 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 S1 na płytce drukowanej modułu (dostępny po zdjęciu obudowy), trzymając wciśnięty przycisk włączyć zasilanie. Po zaświeceniu się na stałe diod ZASILANIE/ALARM i ETHERNET puścić przycisk, obydwie diody powinny zgasnąć. W tym stanie działanie firmware jest zablokowane, ale można awaryjnie załadować nowy firmware.

12.6. Awaryjne ładowanie firmware

Awaryjne załadowanie firmware jest możliwe tylko w sytuacji gdy bootloader urządzenia wykryje brak firmware lub firmware zostanie jawnie zablokowany przez użytkownika.

W takiej sytuacji urządzenie konfiguruje interfejs Ethernet w trybie 10 Mbit/s 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.

12.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

12.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