Deprecated: Creation of dynamic property Timber\Site::$pingback is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Site.php on line 180

Deprecated: Creation of dynamic property Timber\User::$name is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/User.php on line 118

Deprecated: Creation of dynamic property Timber\Post::$has_disclaimer is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_edit_lock is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_edit_last is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$onesignal_meta_box_present is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$onesignal_send_notification is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$onesignal_modify_title_and_content is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$onesignal_notification_custom_heading is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$onesignal_notification_custom_content is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_focuskw is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_linkdex is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_content_score is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_estimated-reading-time-minutes is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_wordproof_timestamp is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$tipologia is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_tipologia is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$attributi is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_attributi is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$in_evidenza_newsletter is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_in_evidenza_newsletter is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$inviato_in_newsletter is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_inviato_in_newsletter is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_primary_category is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_primary_blz_affiliation_attributes is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_primary_content_type is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_primary_attributes is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_primary_speciali is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_metadesc is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_thumbnail_id is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$response_body is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$status is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_oembed_f22fc1a8a07dbf90fb1785835e837da1 is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_oembed_time_f22fc1a8a07dbf90fb1785835e837da1 is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_oembed_db7292c621d5b385538cec4346bbe8dc is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_oembed_time_db7292c621d5b385538cec4346bbe8dc is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_date_gmt is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$comment_status is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$ping_status is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_password is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_name is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$to_ping is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$pinged is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_modified is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_modified_gmt is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_content_filtered is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$guid is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$menu_order is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_mime_type is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$comment_count is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$filter is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71
OpenIPC: aggiornare e migliorare il firmware delle telecamere IP | IlSoftware.it

OpenIPC: aggiornare e migliorare il firmware delle telecamere IP

OpenIPC permette di aprire le telecamere IP di molteplici produttori svincolandosi dal firmware proprietario che risulta preinstallato. Come aggiornare le videocamere e far tornare a nuova vita quelle anche quelle non più supportate.

Non si contano i modelli di telecamere IP di decine di produttori diversi, più o meno conosciuti, oggi disponibili sul mercato. Alcune di esse, tuttavia, utilizzano protocolli proprietari, altre – pur essendo ad esempio compatibili ONVIF – dopo qualche tempo non ricevono più aggiornamenti e sono abbandonate dalle aziende che le hanno realizzate. OpenIPC è un progetto che mira a offrire un firmware aggiornato e sicuro per le videocamere basate su SoC ARM e MIPS.

Il firmware di OpenIPC va a sostituirsi a quello originale del produttore permettendo di aggiornare una telecamera IP non più supportata, che comincia a sentire il peso del tempo oppure che, semplicemente, risulta poco versatile da configurare e gestire.

Tutto il software alla base del progetto OpenIPC è rilasciato sotto licenza aperta MIT: ciò significa che gli utenti possono usarlo gratuitamente e per qualunque scopo, applicando eventualmente modifiche sul codice sorgente stesso.

OpenIPC, firmware per videocamere

OpenIPC: dare nuova vita alle telecamere IP con la sostituzione del firmware

Il progetto OpenIPC nasce per riconsegnare nelle mani di ciascun utente la libertà di personalizzare i dispositivi acquistati e personalizzarne il funzionamento senza restrizioni. Gli autori sottolineano che l’intero ecosistema è aperto, sottraendo gli utenti finali dalla logica del software proprietario che impedisce di comprendere nel dettaglio, se non effettuando pesanti di attività di reverse engineering, come funziona ciascuna telecamera IP e quali dati raccoglie davvero.

Installando il firmware OpenIPC, è possibile trarre vantaggio dall’archiviazione cloud IPEYE esterna, attivare lo streaming video su YouTube e Telegram, creare tunnel virtuali (VPN) per proteggere meglio i flussi audio-video, utilizzare proxy SOCKS5. Il protocollo SOCKS (Socket Secure) è un protocollo di rete che funge da intermediario tra un client e un server, consentendo al client di instradare il proprio traffico attraverso il server. È utile in termini di supporto per l’autenticazione, instradamento del traffico, sicurezza, accesso remoto e bypassing di restrizioni geografiche.

In seno a OpenIPC sono nati anche “progetti satellite” che aiutano gli utenti a gestire al meglio le telecamere montate su un drone, sui caschi da cantiere, sugli strumenti di rilevamento, nelle apparecchiature per la ricerca medica, per la pesca subacquea e così via.

In passato, il firmware OpenIPC era compatibile solamente con i SoC prodotti da HiSilicon. Oggi, tuttavia, il supporto risulta notevolmente esteso: basti pensare che il progetto consente di gestire telecamere basate su chip a marchio Ambarella, Anyka, Fullhan, Goke, GrainMedia, Ingenic, MStar, Novatek, SigmaStar, XiongMai e si prevede che la lista sia significativamente ampliata nel prossimo futuro.

Come installare OpenIPC sulle proprie telecamere

Ad oggi, purtroppo, non esistono ancora telecamere IP che montano il firmware OpenIPC per impostazione predefinita. A seconda delle telecamere IP che si posseggono, è possibile valutare l’eventuale aggiornamento del firmware applicando OpenIPC. L’installazione del firmware su una videocamera IP richiede diversi passaggi ma i possibili metodi sono essenzialmente due.

Metodi di installazione disponibili

  • Utilizzo di Coupler. Il progetto Coupler rende disponibili immagini firmware che possono essere installate utilizzando i meccanismi di aggiornamento integrati nel software fornito da molte telecamere IP. In questo caso non si utilizzano trucchi o “vie traverse”: l’aggiornamento del firmware avviene dall’interfaccia del produttore della videocamera.
  • Flashing con U-Boot. Questo metodo interrompe il normale processo di avvio del firmware del fornitore e indica invece di caricare il firmware OpenIPC scrivendolo nella memoria flash del dispositivo in sostituzione del firmware originale. L’approccio richiede l’apertura del case o involucro della telecamera per collegare un adattatore UART alla porta seriale/debug interna. Un adattatore FTDI USB TTL è acquistabile anche su Amazon Italia.

Installare il firmware OpenIPC con Coupler

Nella pagina GitHub dei rilasci, bisogna innanzi tutto cercare il firmware adatto alla telecamera IP che si desidera aggiornare. Gli sviluppatori suggeriscono di verificare l'”etichetta” che descrive il firmware in uso sul dispositivo ed estrarre la corrispondente System version. Ad esempio, supponendo che il firmware originale della telecamera sia V5.00.R02.000059A8.10010.040400.0020000, il dato d’interesse è 000059A8 (si chiama Device ID). La stringa così ottenuta va cercata nell’elenco pubblicato sulla pagina GitHub.

La System version può essere estratta dall’interfaccia del software del produttore portandosi nelle impostazioni di configurazione quindi nella sezione Info, Version o similare. In alternativa, si può ricorrere al software ipctool oppure a IPCam_DMS per Windows.

Molti firmware in elenco (Find your image sensor) sono compatibili con diversi tipi di sensori di immagine (CCD) e devono essere configurati prima di poter effettivamente acquisire immagini o video. Per questo motivo, il Device ID trovato in precedenza riveste un ruolo essenziale.

Eseguire il flashing del firmware

Utilizzando il software specifico messo a disposizione dal produttore della telecamera, il già citato IPCam_DMS o il server Web integrato nella fotocamera (non tutti i modelli supportano gli aggiornamenti tramite browser), si può installare subito il firmware OpenIPC.

Dopo il flashing del nuovo firmware e il conseguente riavvio della telecamera, questa richiederà un indirizzo IP al server DHCP locale. A questo punto, è possibile gestire la videocamera tramite interfaccia Web digitando l’indirizzo IP locale del dispositivo seguito da :85 nella barra degli indirizzi del browser (ad esempio 192.168.1.200:85 supponendo che alla telecamera sia stato assegnato IP 192.168.1.200).

Collegandosi alla telecamera tramite terminale, ad esempio via SSH, si deve digitare firstboot per eliminare la overlay partition. Si tratta di una parte della memoria di archiviazione del dispositivo che viene sovrapposta (da qui il suo  nome) a un’altra parte della memoria, consentendo di apportare modifiche o aggiornamenti senza dover riscrivere l’intera memoria.

Se non fosse possibile configurare il sensore della telecamera tramite interfaccia Web, potrebbe essere necessario accedere via SSH quindi impartire il comando fw_printenv -n sensor.

Aggiornare il firmware con U-Boot e un adattatore UART

Ciascun SoC utilizzato in ogni telecamera IP, integra la CPU nonché una serie di moduli necessari per il funzionamento del dispositivo. Per vari motivi (tra cui anche il limitato quantitativo di spazio di archiviazione disponibile sulla maggior parte delle videocamere), il progetto OpenIPC attualmente offre firmware separati per ciascun tipo di SoC.

Il primo passo consiste quindi nell’aprire il case della telecamera IP e identificare il SoC da essa utilizzato. Per superare questo scoglio, basta leggere la sigla stampata sul chip collegato al circuito stampato della telecamera oppure servirsi di un software come ipctool.

Per stabilire la connessione UART, è necessario trovare e collegare i pin GND, RX e TX della telecamera all’adattatore. Dopo essersi assicurati che l’adattatore UART funzioni con una tensione operativo di 3,3V, si può collegarlo con il PC quindi usare un emulatore di terminale (va bene anche il conosciutissimo PuTTY) per collegarsi con la telecamera. È necessario specificare, nelle impostazioni del software di connessione, la porta UART corretta (di solito COMx), scegliere Serial, impostare 115200 baud (ovvero bit per secondo) come velocità di trasferimento dati e selezionare None in corrispondenza di Flow control.

Aggiornare firmware telecamera IP con PuTTY

Per fare in modo che l’adattatore funzioni a 3,3V spesso è necessario agire su un semplice jumper. In alcuni casi potrebbe invece essere necessario saldare un filo, un resistore da zero Ohm o collegare due contatti con una semplicissima saldatura. Nel caso degli adattatori che supportano solo i 5V, è necessario un convertitore di livello logico aggiuntivo collegato tra l’adattatore e la porta UART della telecamera. Maggiori informazioni sulle modalità di connessione tra PC e telecamera tramite adattatore UART sono pubblicate sul Wiki di OpenIPC.

Accesso al bootloader della telecamera IP

Una volta stabilita la connessione UART con la videocamera, è necessario interrompere la sequenza di avvio per accedere alla console del bootloader. Di solito è necessario premere una sequenza di tasti sulla tastiera del PC in modo da frapporsi tra il caricamento del bootloader e quello del kernel Linux.

La combinazione di tasti da premere varia da produttore a produttore: nella maggior parte dei casi è CTRL+C; meno spesso Invio, ESC o altre opzioni. Il suggerimento sulla combinazione di tasti da utilizzare è di solito contenuto nella schermata di boot della telecamera. Alcune telecamere non offrono invece alcun indizio: in questo caso è bene cercare online.

Non appena si ottiene l’accesso a una riga di comando, significa che si è preso possesso del bootloader della telecamera e si ha pieno controllo su di esso.

Impostazioni di rete e predisposizione di TFTP

Impartendo il comando help, una volta ottenuto l’accesso alla riga di comando della telecamera, si può ottenere l’elenco dei comandi disponibili. Se, digitando tftp, si ottiene risposta è già tutto pronto.

Basta collegarsi con la pagina contenente l’elenco dei SoC supportati da OpenIPC, scegliere il chip di proprio interesse quindi cliccare sull’icona Docs. Qui vanno inseriti diversi dati come il tipo e la dimensione del chip di memoria (lo si può rilevare dal registro del bootloader), l’indirizzo IP locale della telecamera, il corrispondente MAC address, l’indirizzo del server TFTP, la tipologia del firmware che si desidera caricare, indicare le interfacce (Ethernet e WiFi) utilizzate dalla videocamera e la presenza o meno di uno slot per le schede di memoria.

Lato telecamera, i comandi ipaddr, netmask, gatewayip e serverip permettono di impostare i parametri di rete corretti: i primi tre definiscono l’indirizzo IP, la subnet mask della telecamera e l’IP del gateway di rete per l’accesso alla rete locale (di solito è il router). Il quarto parametro corrisponde all’indirizzo IP del server TFTP.

Per scaricare il firmware e caricare OpenIPC, è infatti necessario configurare un server TFTP su un computer collegato alla stessa rete LAN utilizzata per la connessione della telecamera. Su una macchina Linux basta impartire i comandi che seguono per impostare il server TFTP:

sudo apt install tftpd-hpa
sudo sed -i '/^TFTP_OPTIONS/s/"$/ --create"/' /etc/default/tftpd-hpa
sudo systemctl restart tftpd-hpa.service

I comandi seguenti impostano i parametri di rete sulla telecamera IP. Al posto degli indirizzi IP specificati, vanno ovviamente indicati quelli corretti:

setenv ipaddr 192.168.1.200
setenv netmask 255.255.255.0
setenv gatewayip 192.168.1.1
setenv serverip 192.168.1.100
saveenv

Nell’esempio, alla telecamera IP è assegnato l’indirizzo IP privato 192.168.1.200 (verificare da router che non ci siano conflitti con altri dispositivi). Si indica inoltre che, in questo caso, il router  gateway di rete ha IP 192.168.1.1. L’indirizzo IP della macchina sulla quale è in ascolto il server TFTP è invece 192.168.1.100.

Installazione OpenIPC

Backup del firmware originale e installazione di OpenIPC

A questo punto, cliccando su Generate Installation Guide sul sito di OpenIPC, si ottengono i passaggi per creare il backup del firmware originale e installare il nuovo firmware.

È importante attenersi scrupolosamente alle indicazioni riportate. Qualcuno potrebbe ritenere superfluo creare una copia del firmware del produttore. In realtà, è un passaggio che non dovrebbero mai essere saltato. Il firmware originale, infatti, potrebbe essere necessario per ripristinare alcune impostazioni, per l’installazione di alcuni driver o per svolgere ulteriori verifiche.

Istruzioni aggiornamento firmware telecamera

Applicando tutti i passaggi in modo corretto, la telecamera IP dovrebbe avviarsi con il nuovo firmware. Dopo il primo avvio con il nuovo firmware è necessario pulire la cosiddetta overlay partition. Per sbarazzarsi del suo contenuto, basta digitare ciò che segue nella finestra del terminale e premere Invio:

firstboot

Come abbiamo visto nel caso del flashing con Coupler, anche in questo caso è possibile collegarsi con l’interfaccia Web della telecamera aggiornata con OpenIPC digitando il suo IP e :85.

Ti consigliamo anche

Link copiato negli appunti