Spis treści
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.
Aktualizacje firmware dla modułu LB-856 dostępne na stronie WWW firmy LAB-EL: http://www.label.pl/po/get-lb856.html.
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ę.
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.
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.
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.
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
.
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
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