===== Firmware ===== Firmware (tj. software fungující uvnitř hardwaru) je významnou součástí našich produktů (s výjimkou Unipi 1.1). Neustále jsou do něj přidávány nové funkce či opravovány chyby, firmware se proto průběžně aktualizuje. Firmware pro produkty Unipi je součástí všech našich OS obrazů a rovněž je distribuován skrze náš repozitář coby součást balíčku //unipi-firmware6//. Instalací / aktualizací balíku //unipi-firmware6// se neprovede jeho nahrání do HW. Nahrání je potřeba provést manuálně. ==== Připojení přes SSH ==== Prvním nutným krokem je připojení se k zařízení přes SSH. Jak se připojit přes SSH je popsáno v [[cs:automation:unipi-ssh-connect-hidden]]. Jak najít nebo nastavit heslo pro SSH můžete také nalézt v článku [[.:02-passwords]]. ==== Získání balíčků pro aktualizace firmwaru ==== Pro aktualizace firmware je nutné nejdříve získat potřebné balíčky. Výrazně doporučujeme online aktualizaci, protože offline aktualizace vyžaduje hlubší znalost systému Debian. === Online aktualizace === - Získejte nejnovější verzi firmware sudo apt update && sudo apt upgrade - Je velice důležité systém **RESTARTOVAT**, aby se aktualizované moduly kernelu použily sudo reboot === Offline aktualizace === {{ :files:img_warning-line_b.png?nolink |}} {{ :en:hw:09_safety-instructions_pseudo-ISO-7010-attention.png?nolink |(!)}} **Upozornění:** \\ Online instalace je vždy preferována, neboť firmware balíčky mohou vyžadovat jiné balíčky (např. firmware-tools, kernel driver,...). Online instalaci proto využívejte kdykoliv, kdy je to možné. * 1. Stáhněte poslední verzi balíčku **unipi-firmware6** dostupného na [[https://repo.unipi.technology/debian/pool/]]. Tento balíček je pak nutné nahrát do jednotky - to lze provést dvěma způsoby: * 2.a - Přes SCP * Zkopírujte balíček z Vašeho PC do jednotky pomocí SCP (WinSCP, Filezilla či jiný podobný software). Balíček umístěte do složky /tmp/ * Nainstalujte balíček pomocí dpkg, například tímto příkazem: dpkg -i /tmp/unipi-firmware_5.50_all.deb * 2.b - Pomocí USB flash disku * Zkopírujte balíček z Vašeho PC na USB flashdisk ve formátu FAT32 a vložte jej do jakéhokoliv USB portu na kontroléru * Přepněte se do root uživatelského účtu sudo su * Zjistěte jméno vloženého USB disku (obvyklé je //sda1//) fdisk -l * Vytvořte složku pro připojení disku mkdir /media/usbflash * Připojte disk do nově vytvořené složky mount /dev/sda /media/usbflash * Nainstalujte balíček pomocí dpkg, například takto dpkg -i /media/usbflash/unipi-firmware_5.50_all.deb ==== Aktualizace firmwaru ==== Existují dva nástroje pro správu firmware v produktech Unipi: * //fwspi// - používá se pro vnitřní desky vstupů a výstupů v PLC od Unipi * //fwserial// - používá se pro rozšiřující moduly od Unipi Tyto nástroje jsou k nalezení ve složce /opt/unipi/tools/ a musí být spouštěny jako root. Verzi firmwaru pro první sekci I/O zobrazíte tímto příkazem: sudo /opt/unipi/tools/fwspi -u 1 {{ :files:img_warning-line_b.png?nolink |}} {{ :en:hw:08_safety-instructions_pseudo-ISO-7010-info.png?nolink |(!)}} **Poznámka:** \\ Pro kontrolu firmwaru ostatních I/O sekcí zadejte příkaz sudo /opt/unipi/tools/fwspi -u 2 případně sudo /opt/unipi/tools/fwspi -u 3 /* {{ :files:img_warning-line_b.png?nolink |}} {{ :en:hw:08_safety-instructions_pseudo-ISO-7010-info.png?nolink |(!)}} **Poznámka:** \\ Kroky uvedené níže popisují aktualizaci firmwaru pouze pro sekci 1 (číslo 0 pro parametr -i). Firmware na všech sekcích lze aktualizovat automaticky příkazem /opt/unipi/tools/fwspi -v --auto */ === Vnitřní I/O desky === Vnitřní I/O desky jsou pevně dané, takže jediná potřebná infromace je číslo sekce. - Zkontrolujte současnou verzi FW instalovaného na každé I/O desce sudo /opt/unipi/tools/fwspi -u 1 - Pokud je verze firmware 5.x nebo starší, je nutné nejdříve provést [[#upgrade_firmwaru|upgrade firmwaru]], viz sekce níže. - Aktualizujte firmware na jeho poslední staženou verzi sudo /opt/unipi/tools/fwspi -av - Na výstup se vypíšou čísla staré verze a nově instalovaná verze. === Rozšiřující desky připojené přes RS-485 === Sériové řady rozšiřujících modulů xS/xG jsou aktualizovány obdobným způsobem. Pokud nejsou parametry shodné s výchozími, tak se kromě Modbus adresy také zadává port a ostatní parametry RS-485. {{ :files:img_warning-line_b.png?nolink |}} {{ :en:hw:01_safety-instructions_ISO-7010-W001.png?nolink |/!\}} **Upozornění:** \\ Před přehrátím Firmware se ujistěte, že daný port nepoužívá žádná jiná služba a po zahájení neodpojujte z napájení jednotku, ani Extension. Dojde k nenávratnému poškození Firmware. {{ :files:img_warning-line_b.png?nolink |}} {{ :en:hw:08_safety-instructions_pseudo-ISO-7010-info.png?nolink |(!)}} **Poznámka:** \\ Nutností je specifikovat parametr -p (path), který určuje, který port má nástroj použít pro komunikaci s Extension. Přehled mapování fyzických sériových portů na porty systému Linux je k dispozici na [[cs:hw:004-edge:06-peripherals:01-rs485#mapovani_seriovych_portu|Edge]], [[cs:hw:007-patron:portmap|]](Patron), [[cs:hw:02-neuron:portmap|]](Neuron) a [[cs:hw:01-axon:portmap|]](Axon) Příklad použití, kdy je Extension připojen do portu //RS485-1/RS485-1.1//: sudo /opt/unipi/tools/fwserial -p /run/unipi-plc/by-sys/rs485-1/tty -P Dále je třeba určit rychlost, paritu a modbusovou adresu zařízení. Ve výchozím stavu se počítá s **rychlostí 19200, žádnou paritou, jedním stop bitem a adresou 15**. %% -b, --baud baudrate/přenosovou rychlost, výchozí hodnota 19200%%\\ %% -o, --stopbits stop bity (1|2), výchozí hodnota 1%%\\ %% -r*, --parity parita (N|E|O), výchozí hodnota N%% * -r lze použít pouze na systémech s Debian 13 a novější Pokud je rozšiřující modul na portu **/run/unipi-plc/by-sys/rs485-1/tty**, Modbus adresa **6**, přenosová rychlost **9600** a parita je **sudá**: - Zkontrolujte současnou verzi FW instalovaného na rozšiřujícím modulu sudo /opt/unipi/tools/fwserial -p /run/unipi-plc/by-sys/rs485-1/tty -u 6 -b 9600 --parity E - Pokud je verze firmware 5.x nebo starší, je nutné nejdříve provést [[#upgrade_firmwaru|upgrade firmwaru]], viz sekce níže. - Aktualizujte firmware na jeho poslední staženou verzi sudo /opt/unipi/tools/fwserial -p /run/unipi-plc/by-sys/rs485-1/tty -u 6 -b 9600 --parity E -Pv - Na výstup se vypíšou čísla staré verze a nově instalovaná verze. ==== Upgrade firmwaru ==== Přímý přechod ze staré verze firmware (5.x a nižší) není možný a musí být proveden upgrade. Jediná změna je použití parametru //-U// (nebo namísto //-a// a pro příkaz pro každou desku zvlášť) namísto parametru //-P// viz ukázkové příkazy: sudo /opt/unipi/tools/fwspi -u 1 -Uv sudo /opt/unipi/tools/fwserial -p /run/unipi-plc/by-sys/rs485-1/tty -u 15 -Uv ==== Další užitečné parametry ==== === Resetování konfigurace === Konfiguraci I/O sekce lze obnovit zpět do výchozího nastavení. Lze tak učinit během aktualizace firmwaru zavoláním na nástroj fwspi s parametrem -R, tj. např. sudo /opt/unipi/tools/fwspi -u 1 -PRv