Torna indietro   Hardware Upgrade Forum > Networking e sicurezza > Networking > Guide e thread ufficiali

Microsoft Surface Pro 12 è il 2 in 1 più compatto e silenzioso
Microsoft Surface Pro 12 è il 2 in 1 più compatto e silenzioso
Basato su piattaforma Qualcomm Snapdragon X Plus a 8 core, il nuovo Microsoft Surface Pro 12 è un notebook 2 in 1 molto compatto che punta sulla facilità di trasporto, sulla flessibilità d'uso nelle differenti configurazioni, sul funzionamento senza ventola e sull'ampia autonomia lontano dalla presa di corrente
Recensione REDMAGIC Astra Gaming Tablet: che spettacolo di tablet!
Recensione REDMAGIC Astra Gaming Tablet: che spettacolo di tablet!
Il REDMAGIC Astra Gaming Tablet rappresenta una rivoluzione nel gaming portatile, combinando un display OLED da 9,06 pollici a 165Hz con il potente Snapdragon 8 Elite e un innovativo sistema di raffreddamento Liquid Metal 2.0 in un form factor compatto da 370 grammi. Si posiziona come il tablet gaming più completo della categoria, offrendo un'esperienza di gioco senza compromessi in mobilità.
Dopo un mese, e 50 foto, cosa abbiamo capito della nuova Nintendo Switch 2
Dopo un mese, e 50 foto, cosa abbiamo capito della nuova Nintendo Switch 2
Dopo un mese di utilizzo intensivo e l'analisi di oltre 50 scatti, l'articolo offre una panoramica approfondita di Nintendo Switch 2. Vengono esaminate le caratteristiche che la definiscono, con un focus sulle nuove funzionalità e un riepilogo dettagliato delle specifiche tecniche che ne determinano le prestazioni
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 17-12-2024, 09:19   #1
Bovirus
Senior Member
 
L'Avatar di Bovirus
 
Iscritto dal: Nov 2003
Città: Milano
Messaggi: 31347
[Thread ufficiale] Zyxel VMG8828-B50B - Modding

- Scopo di questo thread

Scopo di questo thread è di discutere espressamente ed esclusivamente del prodotto oggetto del thread:

Zyxel VMG8828-B50B

esclusivamente in rerlazione al modding.


- Thread uffciiale

Per discussioni in merito ai firmware stock fare riferimento al thread ufficiale

Zyxel VMG8828-B50B - Thread uffciiale


- Licenza Creative Commons

Il contenuto di questo post è rilasciato con licenza

Creative Commons Attribution-Noncommercial-Share Alike 2.5

..
Bovirus è offline   Rispondi citando il messaggio o parte di esso
Old 17-12-2024, 09:21   #2
Bovirus
Senior Member
 
L'Avatar di Bovirus
 
Iscritto dal: Nov 2003
Città: Milano
Messaggi: 31347
- Licenza Creative Commons

Il contenuto di questo post è rilasciato con licenza

Creative Commons Attribution-Noncommercial-Share Alike 2.5

..
Bovirus è offline   Rispondi citando il messaggio o parte di esso
Old 18-12-2024, 19:49   #3
vitpar
Junior Member
 
Iscritto dal: Oct 2024
Messaggi: 16
Caricare firmware con UART (risoluzione router)

Salve a tutti, ho brickato il router e se dovesse servire a qualcuno sono riuscito a recuperarlo tramite seriare con un adattatore uart usb-ttl.
Ecco come ho fatto dopo aver aperto il router individuato i pin per il seriale e collegato i cavi. nella foto di seguito vedete come ho collegato i cavi,
  • tra le dita ho il connettore usb dove vedete i colori dei cavi che partono dall'adattatore (nero=GRD, verde=TXD, blu=RXD)
  • sul foglietto giallo la leggenda in corrispondenza dei pin sulla scheda.
  • quindi ho collegato il nero sul gnd della scheda(quinto pin), il verde sull'RX della scheda (terzo pin) e il blu sul TX della scheda (secondo pin). Vedete che quello più vicino alla cpu resta libero.
  • ho installato putty e ho impostato la connesione seriale con baud 115200 acceso il router ho avuto subito la shell.
  • il mio era briccato quindi non ho dovuto interrompere la sequenza di boot e ho avuto subito la shell CFE
  • ho dato il comando ATEN 1
  • adesso prima di dare l'ultimo comando tramite seriale bisogna preparare sul computer il server TFTP, in questa foto vedete che ho usato Tftpd64 come software
  • ho creato dentro C: la cartella server in cui ho messo il file del firmware rinominato come fw.bin (perchè il nome non può avere caratteri speciali e al massimo un punto)
  • assicuratevi di non avere firewall a bloccarvi
  • impostate la vostra scheda di rete con un indirizzo ip statico ad esempio 192.168.1.2 e date come gateway 192.168.1.1
  • collegate il vostro pc via cavo ethernet al router alla prima porta come potete vedere nella porta precedente.
  • disattivate tutte le altre connessioni, ad esempio wifi etc
  • a questo punto sulla shell di puntty potete mandare via seriale il comando al router ATUR 192.168.1.2:fw.bin
  • e dovreste vedere che il server carica il file, potrebbe impiegare un minuto.
  • appena finito il download subito flasha autonomamente la rom e riparte, ma a me la prima volta ha avuto un errore, poi l'ho rifatto e ha funzionato.
spero di aver aiutato qualcuno
qualora qualcuno dovesse avere il firmware di andreock versione 5.17 se me lo mandasse sarei molto grato 🙂
vitpar è offline   Rispondi citando il messaggio o parte di esso
Old 18-12-2024, 19:54   #4
vitpar
Junior Member
 
Iscritto dal: Oct 2024
Messaggi: 16
compilare firmware vmg8828

Dopo tanta agonia sto iniziando a vedere qualche risultato, sono riuscito a compilare il firmware e di conseguenza ad avere l'SDK e la toolchain per compilare programmi per il VMG8828b50b. Ho letto tanto e fatto tanti esperimenti e alla fine sono riuscito ad avere la versione di dropbear 2024.86 (l'ultima) funzionante sul router. Sono appena riuscito quindi non ho ancora giocato con le configurazioni e non ho ancora creato il pacchetto ipk ma ho eseguito il programma sul router e finalmente posso usare le nuove chiavi ed25519.
Scrivo questo post con quello che ho fatto fino ad ora sperando possa tornare utile a qualcun altro o a me stesso in futuro come pro memoria. La guida non è esaustiva, riporto le mie note quindi potrebbe capitare di dover fare qualche altro passo come ad esempio installare git per il quale non ho dato indicazioni.

Prima cosa preparare l'ambiente!
ho usato da mac UTM ma le macchine virtuali dovrebbero funzionare più o meno allo stesso modo su ogni piattaforma.
  1. scaricare ed installare UTM https://mac.getutm.app/
  2. scaricare l'immagine di ubuntu-12.04-alternate-i386.iso da https://old-releases.ubuntu.com/releases/12.04/
  3. aprire UTM crea nuova -> emula -> altro -> seleziona cd/dvd image e poi da scegli selezionare l'immagine scaricata al punto 2 -> continua
  4. [IMPORTANTE] scegliere Architettura i386, almeno 20GB disco, esattamente 2GB ram e 1 solo core
  5. andare avanti fino alla fine
  6. sarà sempre importante poter copiare/incollare dal vostro sistema a quello emulato e viceversa quindi andare nelle impostazioni della macchina appena creata selezionare la voce condivisione e abilitare condivisione appunti. Anche condividere file con il sistema principale è importante perchè UBUNTU è talmente vecchio che non riuscirete ad usare internet per questione di certificati. Quindi scegliere anche la modalità di condivisione cartella che per MacOs è VirtFs e scegliere nella stessa scermata la cartella che si vuole condividere (poi bisognerà montare in ubuntu questa cartella)
  7. nel menu rete scegliete VLAN Emulata
  8. avviate la macchina e procedete con l'installazione fino alla fine
  9. consiglio, in fase di installazione quando scegliete l'utente usate il nome "builder". al completamento dell'installazione dovrete riavviare il sistema virtuale. In realtà lo dovete arrestare e rimuovere l'immagine..punto 10
  10. a sistema arrestato andate nelle impostazioni in fondo dove trovate dischi ide e rimuovete il disco contenente l'immagine del sistema operativo. assicuratevi anche che nella scheda Qemu sia flaggato solo il checkbox "Dispositivo RNG"
  11. ora potete avviare, accedete al desktop et voila! finito?! NO!
  12. è necessario scaricare un pò di programmi con apt-get ma il file /etc/apt/sources.list è obsoleto e i link rotti quindi cancellate tutto e salvatelo con questi link:
    Codice:
    deb http://old-releases.ubuntu.com/ubuntu/ precise main universe
    deb-src http://old-releases.ubuntu.com/ubuntu/ precise main universe
    
    deb http://old-releases.ubuntu.com/ubuntu/ precise-updates main universe
    deb-src http://old-releases.ubuntu.com/ubuntu/ precise-updates main universe
    
    deb http://old-releases.ubuntu.com/ubuntu precise-security main universe
    deb-src http://old-releases.ubuntu.com/ubuntu precise-security main universe
  13. Intenet potrebbe non funzionare subito.. la prima cosa da provare è di cambiare nel file /etc/network/interfaces auto in dhcp e creare una connessione wired dal network manager in dhcp e riavviare se non dovesse funzionare si può provare questo https://askubuntu.com/questions/1986...n-ubuntu-12-04
    ecco il file dopo la modifica:
    Codice:
    # This file describes the network interfaces available on your system
    # and how to activate them. For more information, see interfaces(5).
    
    # The loopback network interface
    auto lo
    iface lo inet loopback
    
    # The primary network interface
    auto eth0
    #NetworkManager
    iface eth0 inet dhcp
  14. adesso si dovrebbe riuscire ad installare un pò di software da shell:
    Codice:
    #aggiornate il sistema con
    sudo apt-get update
    #aggiornare i certificate per https
    sudo apt-get upgrade openssl
    sudo dpkg-reconfigure dash*#(e rispondi NO alla richiesta).
    sudo apt-get install --reinstall ca-certificates
    #Bisogna installare spice per poter fare copia incolla
    apt-get install spice-*
  15. per montare la cartella condivisa del sistema ospitante (MacOs nel mio caso):
    Codice:
    builder@ubuntu:~$ sudo nano /etc/fstab
    E nel file aggiungere 
    # UTM Shared Folder
    share /mnt/utm 9p trans=virtio,version=9p2000.L,rw,_netdev,nofail,auto 0 0
    builder@ubuntu:~$ sudo mkdir /mnt/utm
    #e creiamo un link sul desktop 
    builder@ubuntu:~$ ln -s /mnt/utm ~/Desktop/utm_link
  16. ho anche collegato al router una chiavetta usb e condivisa tramite l'interfaccia web del router in modo da poter gestire i file da dare al router direttamente con una cartella sul desktop:
    Codice:
    #per montare la dir usb del router
    sudo apt-get install smbclient
    sudo apt-get install cifs-utils
    sudo mkdir -p /mnt/router_usb_folder
    #verifica le cartelle condivise disponibili 192.168.1.1 dovrebbe essere lìip del router
    smbclient -L //192.168.1.1 -U guest
    #usb1_sda1 dovrebbe essere l'unità montata nel router verificate da WebUI
    sudo mount -t cifs //192.168.1.1/usb1_sda1 /mnt/router_usb_folder -o guest
    #sempre nella webui verificate che il livello di accesso sia pubblico
    ln -s /mnt/router_usb_folder /home/builder/Desktop/router_usb_folder
    sudo chown -R builder:builder /mnt/router_usb_folder
    sudo chmod -R 755 /mnt/router_usb_folder
    echo "//192.168.1.1/usb1_sda1 /mnt/router_usb_folder cifs guest,uid=$(id -u),gid=$(id -g) 0 0" | sudo tee -a /etc/fstab && sudo mount -a

adesso il sistema è pronto

POSSIAMO INIZIARE
con git potete scaricare nella home nella directory vmg8828 il codice https://gitlab.com/Andrea055/vmg8828
e installare il software necessario:
Codice:
sudo apt-get install -y g++ flex bison gawk make autoconf zlib1g-dev libncurses-dev git subversion gettext
poi entrate nella cartella e modificate il file feeds.default perchè anche esso è obsoleto sostituite i link con questi:
Codice:
src-git packages https://git.openwrt.org/feed/packages.git
src-git xwrt https://github.com/stgerrard008/OpenWRT-missing-file
src-git bmx6 https://github.com/stgerrard008/OpenWRT-missing-file
adesso make menuconfig e poi make dovrebbero creare l'sdk

lascio un buon link su come funziona il menuconfig https://oldwiki.archive.openwrt.org/doc/howto/build
nel prossimo post condivido qualche nota su come ho compilato dropbear

Ultima modifica di vitpar : 20-12-2024 alle 17:02. Motivo: apt-get upgrade openssl
vitpar è offline   Rispondi citando il messaggio o parte di esso
Old 18-12-2024, 19:56   #5
vitpar
Junior Member
 
Iscritto dal: Oct 2024
Messaggi: 16
Comandy busybox cambiare passwords

è molto insicuro lasciare le password originali condivido come ho fatto a cambiarle:
  • per prima cosa fare l'accesso con ssh
  • per avere un prompt più informativo:
    Codice:
    export PS1='${USER}@$(uname -n) $(pwd) $ '
    se si vuole rendere permanente:
    Codice:
    mount -o remount,rw /
    e salvare la linea in /etc/profile
  • prima di fare qualsiasi modifica permanente verifichiamo che il filesystem non sia montato in sola lettura
    Codice:
    mount | grep "on / "
  • se è in sola lettura ro (read-only) rimontiamolo in scrittura :
    Codice:
    mount -o remount,rw /
  • potrebbe essere necessario:
    Codice:
    nvram commit
  • usare passwd per cambiare le password degli utenti che si vuole
  • il sistema ad ogni riavvio crea una copia di una porzione del filesystem modificabile var quando cambiate le password vengono quindi salvate in una partizione temporanea.
    Codice:
    #Check how /var is mounted:
    mount | grep /var
    infatti se dopo il cambio password verifichiamo la data dell'ultima modifica dei file in etc questi non cambiano:
    Codice:
    ls -l /etc/shadow
    ls -l /etc/passwd
    le nuove password sono in var e verranno perse al riavvio
  • per risolvere definitivamente il problema rimuovere il link simbolico dal shadow e passwd di /var/ .
    Codice:
     
    rm /etc/shadow
    rm /etc/passwd
  • E copiare i file di var in etc
    Codice:
     
    root@VMG8828-B50B /etc $ cp -f /var/shadow /etc/shadow 
    root@VMG8828-B50B /etc $ cp -f /var/passwd /etc/passwd
questo dovrebbe risolvere il problema delle password da questo momento in poi ogni volta che sarammo cambiate saranno permanenti

Ultima modifica di vitpar : 11-02-2025 alle 18:28. Motivo: added code to permanently set more informative shell
vitpar è offline   Rispondi citando il messaggio o parte di esso
Old 18-12-2024, 19:59   #6
vitpar
Junior Member
 
Iscritto dal: Oct 2024
Messaggi: 16
Come compilare dropbear 2024.86

LINK IMPORTANTE! SPIEGA BENISIMO COME FUNZIONA BUILDROOT: https://buildroot.org/downloads/manu...#rootfs-custom

Dropbear non è aggiornato e la versione 2019 ha molte, molte, molte vulnerabilità per cui ho ritenuto importante spenderci molto tempo per cercare di aggiornarlo all'ultima versione.
partendo dal presupposto che l'ambiente sia pronto e l'SDK compilato come ho indicato nei post precedenti bisogna scaricare i sorgenti del programma
  • verificate di avere dentro home -> builder -> staging_dir le cartelle toolchain-arm_v7-a_gcc-4.6.2_uClibc-0.9.32_eabi e target-arm_v7-a_uClibc-0.9.32_eabi
  • nel caso in cui dovessero mancare dalla directory principare vmg8828
    Codice:
    make clear
    make
    make tools/install
    make toolchain/install
  • creare una cartella in home -> customdevelop ed entrarci da shell
  • scaricare e spacchettare dropbear ad esempio con i seguenti comandi:
    Codice:
    curl -O https://matt.ucc.asn.au/dropbear/releases/dropbear-2024.86.tar.bz2
    tar xvjf dropbear-2024.86.tar.bz2
  • adesso bisognerà risolvere il problema di una libreria (zlib) mancante nella toolchain quindi creare una cartella zlibincludes all'interno della directory appena spacchettata (customdevelop->dropbear-2024.86) ed entrarci con la shell. Il programma è compilato staticamente con uClibc seguendo le indicazioni in questa pagina https://github.com/mkj/dropbear/blob/master/INSTALL.md (ho caricato qui i files già pronti https://github.com/VittorioParagallo...n/zlibincludes )
  • con questo comando vediamo in quali posizioni è disponibile un eventuale header:
    Codice:
    find /home -name zconf.h
  • copiare l'header
    Codice:
    cp /home/builder/vmg8828/staging_dir/target-arm_v7-a_uClibc-0.9.32_eabi/usr/include/zconf.h zconf.h
  • stessa cosa per il file zlib.h:
    Codice:
    find /home -name zlib.h
  • scegliamo quale prendere e copiamolo:
    Codice:
    cp /home/builder/vmg8828/staging_dir/target-arm_v7-a_uClibc-0.9.32_eabi/usr/include/zlib.h zlib.h
  • adesso caricare la libreria vera e propria libz.a dentro target-arm_v7-a_uClibc-0.9.32_eabi/usr/lib/ (non ricordo da quale altra cartella l'ho presa, comunque ho salvato una copia qui https://github.com/VittorioParagallo...G8828-B50B-Mod ) e dentro /home/builder/vmg8828/staging_dir/toolchain-arm_v7-a_gcc-4.6.2_uClibc-0.9.32_eabi/lib/
  • aprire una shell entrare nella cartella appena spacchettata e impostare de variabili d'ambiente:
    Codice:
    export PATH=$PATH:/home/builder/vmg8828/staging_dir/toolchain-arm_v7-a_gcc-4.6.2_uClibc-0.9.32_eabi/bin
    export CC=/home/builder/vmg8828/staging_dir/toolchain-arm_v7-a_gcc-4.6.2_uClibc-0.9.32_eabi/bin/arm-openwrt-linux-uclibcgnueabi-gcc
    
    export STAGING_DIR=/home/builder/vmg8828/staging_dir
    export TOOLCHAIN_DIR='/home/builder/vmg8828/toolchain' 
    
    export CFLAGS="-fstack-protector-all -Izlibincludes -I../zlibincludes"
    
    export LDFLAGS="-fstack-protector-all $STAGING_DIR/target-arm_v7-a_uClibc-0.9.32_eabi/usr/lib/libz.a"
     ./configure --host=arm-openwrt-linux-uclibcgnueabi --build=x86_64-linux-gnu --enable-static --prefix=/home/builder/vmg8828/staging_dir/toolchain-arm_v7-a_gcc-4.6.2_uClibc-0.9.32_eabi
  • siamo pronti per compilare, per controllo riporto prima la situazione delle variabili d'ambiente prima della compilazione ottenuta con printenv (ho eliminato quelle che non ci interessano):
    Codice:
    Questa è la situazione env var:
    builder@ubuntu:~/customdevelop/dropbear-2024.86$ printenv
    LDFLAGS=/home/builder/vmg8828/staging_dir/target-arm_v7-a_uClibc-0.9.32_eabi/usr/lib/libz.a
    SHELL=/bin/bash
    USER=builder
    PATH=/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/builder/vmg8828/staging_dir/toolchain-arm_v7-a_gcc-4.6.2_uClibc-0.9.32_eabi/bin:/home/builder/vmg8828/staging_dir/toolchain-arm_v7-a_gcc-4.6.2_uClibc-0.9.32_eabi/bin
    PWD=/home/builder/customdevelop/dropbear-2024.86
    HOME=/home/builder
    CFLAGS=-Izlibincludes -I../zlibincludes
    STAGING_DIR=/home/builder/vmg8828/staging_dir
    LOGNAME=builder
    TOOLCHAIN_DIR=/home/builder/vmg8828/toolchain
    CC=/home/builder/vmg8828/staging_dir/toolchain-arm_v7-a_gcc-4.6.2_uClibc-0.9.32_eabi/bin/arm-openwrt-linux-uclibcgnueabi-gcc
  • infine possiamo fare il config:
    Codice:
    ./configure --host=arm-openwrt-linux-uclibcgnueabi --build=x86_64-linux-gnu --enable-static --prefix=/home/builder/vmg8828/staging_dir/toolchain-arm_v7-a_gcc-4.6.2_uClibc-0.9.32_eabi
  • e il
    Codice:
    make
  • a questo punto nella cartella dropbear-2024.86 ci saranno i programmi dropbear e dropbearkey. li possiamo trascinare nella cartella condivisa del router e collegarci al router via ssh navigando il filesystem fino al programma caricato diamo da shell ./dropbear --version e vedremo che il numero di versione è corretto e funziona

adesso proverò a compilare impostando delle opzioni riguardo le possibili chiavi e poi troverò un modo per sostituire dropbear del firmware o sovrascrivendo o impacchettando con ipk. vi tengo aggiornati

cito questo sito che mi è stato molto utile https://dvblog.soabit.com/building-c...omplete-guide/
e anche quest altro https://www.gargoyle-router.com/old-openwrt-coding.html

Ultima modifica di vitpar : 28-04-2025 alle 17:05.
vitpar è offline   Rispondi citando il messaggio o parte di esso
Old 20-12-2024, 23:28   #7
vitpar
Junior Member
 
Iscritto dal: Oct 2024
Messaggi: 16
problemi SSL per scaricare

Con la versione 14.04 di ubuntu può risultare problematico scaricare pacchetti a causa della mancanza di chiavi crittografiche. Perciò per scaricare ad esempio dropbear dal repository originale ( https://matt.ucc.asn.au/dropbear/rel...020.79.tar.bz2) è necessario aggiornare wget:
Codice:
sudo apt-get install wget
se questo non dovesse essere sufficiente potrebbe essere necessario aggiornare anche OpenSSL:
Codice:
$ wget https://launchpad.net/ubuntu/+archive/primary/+sourcefiles/openssl/3.0.13-0ubuntu3/openssl_3.0.13.orig.tar.gz
$ tar -xvzf openssl_3.0.13.orig.tar.gz 
$ cd openssl-3.0.13/
$ sudo ./config
$ sudo make
]# then Create symbolic link from ‘which openssl’ and restart the shell
vitpar è offline   Rispondi citando il messaggio o parte di esso
Old 18-02-2025, 14:36   #8
vitpar
Junior Member
 
Iscritto dal: Oct 2024
Messaggi: 16
Come avviare un programma all'avvio del router

Siccome non sono riuscito a compilare il firmware con dropbear aggiornato ho studiato come avviare un qualunque script all'avvio del router e riporto qualche nota:
la sequenza di avvio chiama in ordine:
  • Viene prima lanciato /etc/preinit
    Codice:
    root@VMG8828-B50B /etc $ cat preinit
    #!/bin/sh
    # Copyright (C) 2006 OpenWrt.org
    # Copyright (C) 2010 Vertical Communications
    
    export PATH=/bin:/sbin:/usr/bin:/usr/sbin
    export PATH=/home/bin:/home/scripts:/opt/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/jamvm/bin:/opt/scripts
    export LD_LIBRARY_PATH=/lib/public:/lib/private:/lib/gpl:/lib
    
    #set the head of the shell to be more informative (added by Vittorio Paragallo)
    export PS1='${USER}@$(uname -n) $(pwd) $ '
    
    # Generate device node
    mount -t tmpfs -o noatime,mode=0755,size=512K tmpfs /dev
    mount -t tmpfs -o noatime,mode=0755,size=512K tmpfs /tmp
    sh /etc/init.d/makeDevs.sh
    
    # Clean input/output
    exec >/dev/console </dev/console 2>&1
    exec /sbin/init </dev/console >/dev/console 2>&1
    
    root@VMG8828-B50B /etc $
    che chiama /sbin/init che diventa PID1. Init è un link simbolico a busybox
    Codice:
    root@VMG8828-B50B /etc $ ls -l /sbin/init
    lrwxrwxrwx    1 root     0               14 Jan 30 17:06 /sbin/init -> ../bin/busybox
    init legge il suo file di configurazione
    * Nei sistemi SysVinit, questo è /etc/inittab
    * Nei sistemi BusyBox, usa /etc/init.d/ e i symlink in /etc/rc*.d/
    Determina il runlevel o la fase di avvio
    * Esegue gli script in /etc/rcS.d/ per le operazioni iniziali
    * Poi esegue quelli in /etc/rc3.d/ se il runlevel è 3 (multi-user mode)
    Avvia i servizi di sistema
    * In base agli script in /etc/init.d/, avvia servizi come:
    * Rete (dnsmasq, zywifid)
    * Logging (syslog-ng)
    * Crontab (crond)
    * Servizi personalizzati (bcm-base-drivers, zyinetled)
    c'è anche inittab che sembrerebbe essere usato da busybox (forse viene chiamato proprio da init), ma non ho capito bene se e quando, comunque non è importante appena sarà più chiaro aggiornerò il post.
  • quindi l'inizializzazione chiama in ordine alfabetico tutti gli script in init.d e poi in Rc3.d

Quindi se si vuole avviare un programma all'avvio del router si può inserire lo script in Rc3.d (notare che tutti gli script già presenti sono link simbolici agli script in init.d).
All avvio verranno chiamati tutti gli script in ordine alfabetico dandogli il paramentro start. Quindi gli script che andiamo ad aggiungere conviene prefissarli con S99 in modo che vengano eseguiti per ultimi.

Questo codice può fungere da template per tutti i servizi che vogliamo avviare, è un semplice helloworld arricchito con la possibilità di gestire i parametri start, stop, fare logrotate e avere processi singleton (come nel mio caso con dropbear):
Codice:
root@VMG8828-B50B /etc/rc3.d $ pwd
/etc/rc3.d
root@VMG8828-B50B /etc/rc3.d $ ls -l S99helloworldv2.sh 
-rwxr-xr-x    1 root     0             2109 Feb 18 14:46 S99helloworldv2.sh
root@VMG8828-B50B /etc/rc3.d $ cat S99helloworldv2.sh 
#!/bin/sh

export PATH=/home/bin:/home/scripts:/opt/bin:/bin:/sbin:/usr/bin:/usr/sbin
export LD_LIBRARY_PATH=/lib/public:/lib/private:/usr/lib:/lib:/usr/lib/ebtables:/usr/lib/iptables

EXEC_NAME=helloworldv2
EXEC_PATH=/usr/sbin
LOGROTATE_CONF=/var/log/${EXEC_NAME}.conf
LOGROTATE_FILE=/var/log/${EXEC_NAME}.log


if [ ! -f "$LOGROTATE_FILE" ]; then
  touch "$LOGROTATE_FILE"
fi
  
  
if [ ! -f $LOGROTATE_CONF ]; then
  echo "${LOGROTATE_FILE} {   
  size 50k
  rotate 3
  compress
  missingok
  notifempty
  copytruncate
 }" > $LOGROTATE_CONF
fi

run_logrotate() 
{
 logrotate $LOGROTATE_CONF  
}
                            
start()
{
 while true; do
   run_logrotate
   echo "$(date '+%d-%m-%y %H:%M:%S') helloworldv2" > /dev/pts/0
   echo "$(date '+%d-%m-%y %H:%M:%S') helloworldv2" >> $LOGROTATE_FILE
   sleep 120  # Pausa di 2 minuti
 done &
}

stop()
{
 PID=$(pgrep -f "$EXEC_NAME") 
 for pid in $PID; do
   if [ "$pid" != "$$" ]; then
     echo "$(date '+%d-%m-%y %H:%M:%S') killing $EXEC_NAME with PID $pid !!!" 
     echo "$(date '+%d-%m-%y %H:%M:%S') killing $EXEC_NAME with PID $pid !!!" >> $LOGROTATE_FILE
     kill -9 "$pid"
     exit 0
   fi
 done
}



case "$1" in
        start)
                PID=$(pgrep -f "$EXEC_NAME")
                if [ -z "$PID" ] || [ "$PID" = "$$" ] ; then
                  echo "$(date '+%d-%m-%y %H:%M:%S') Avvio di $EXEC_NAME..." >> $LOGROTATE_FILE
                  start
                else
                  echo "$(date '+%d-%m-%y %H:%M:%S') $EXEC_NAME is already running wiyh PID $PID !!!"
                  echo "$(date '+%d-%m-%y %H:%M:%S') $EXEC_NAME IS ALREADY running with PID $PID" >> $LOGROTATE_FILE
                fi
                exit 0
                ;;

        stop)
                echo "$(date '+%d-%m-%y %H:%M:%S') Arresto di $EXEC_NAME..." >> $LOGROTATE_FILE
                stop
                exit 0
                ;;

        restart)
                stop
                start
                exit 0
                ;;

        *)
                echo "$0: unrecognized option $1"
                exit 1
                ;;

esac
root@VMG8828-B50B /etc/rc3.d $
Come potete vedere questo script può gestire:
  • start quando il router viene avviato il sistema chiama helloworld2.sh start
  • stop quando il router viene arrestato il sistema chiama helloworld2.sh stop
  • reload
  • * nei casi in cui venga ricevuto un parametro diverso dai precedenti

questo permette quando viene lanciato con start di verificare se il processo non è già in esecuzione.
inonltre all'inizio crea i file conf e log per logrotate se non ci sono.
Questo script può fungere da template per qualunque script semplicemente sostituendo
Codice:
EXEC_NAME=helloworldv2
con il nome del nostro script.
Infine non bisogna dimenticare di rendere lo script eseguibile:
Codice:
chmod +x /etc/Rc3.d/helloworldv2.sh
il path del log è impostato per scrivere i file su /var/log che è il file system temporaneo creato all'avvio, bisogna comunque tenere presente che è di dimensioni ridotte. Nel caso si volesse conservare grandi log, consiglio di sostituire con il path su una chiave usb e si risolvono i problemi di spazio, ad esempio:
Codice:
LOGROTATE_CONF= /mnt/usb1_sda1log/${EXEC_NAME}.conf
LOGROTATE_FILE= /mnt/usb1_sda1/log/${EXEC_NAME}.log
vitpar è offline   Rispondi citando il messaggio o parte di esso
Old 27-04-2025, 14:53   #9
vitpar
Junior Member
 
Iscritto dal: Oct 2024
Messaggi: 16
Come compilare dropbear 2025.87

I passaggi sono gli stessi del 2024.86 ma non funzionerà perchè lo sviluppatore ha inserito in nel file mlkem768.c degli static assert che non sono supportati da uclib così vecchio. Però lo sviluppatore ha già risolto il rpoblema nel master su github quindi la prossima release dovrebbe funzionare, intanto se si vuole compilare quindi bisogna scaricare il master ad oggi 27/04/25 corrisponde alla v2025.87 con la patch necessaria per la compilazione su uclib.
La versione già compilata per armv7 è qui https://github.com/VittorioParagallo...opbear/2025.87

Ultima modifica di vitpar : 27-04-2025 alle 14:56.
vitpar è offline   Rispondi citando il messaggio o parte di esso
Old 01-05-2025, 07:08   #10
Crimsom
Senior Member
 
Iscritto dal: Dec 2003
Messaggi: 4488
Ciao a tutti! Un amico ha questo router brandizzato 3 (firmware 5.13 (abrf.0)b5 , che da un po’ di tempo a questa parte spesso dà problemi: lo usa e in Wi-Fi e i video molte volte si bloccano e deve aspettare o refreshare più volte le
Pagine per farli ripartire. Non riesce spesso a scaricare le mail ecc …

Mi garantisce che lo fa con qualsiasi dispositivo, che sia telefono tablet o pc.

Alla Wind gli garantiscono sia tutto ok.

Volendo fare una cosa carina, ho trovato un firmware 5.17 debrandizzato. non su questo forum ma sul forum di fibraclick.

non essendoci istruzioni DETTAGLIATE come poi trovare (troppo tardi) in questa spendida pagina, ho semplicemente disabilitato il controllo firmware tramite ssh , fatto backup dalla pagina del sito e flashato il firmware.

il router non si collega piu ad internet, inoltre seppur risultando un nuovo firmware. non pare minimamente debrandizzato.

anche caricando il backup, continua a non andare. SICURAMENTE PERCHE' HA PERSO PARAMETRI VITALI CONFIGURAZIONE.


cosa posso fare? riflashare un firmware stock? un firmware diverso? o cosa? Grazie
Crimsom è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Microsoft Surface Pro 12 è il 2 in 1 più compatto e silenzioso Microsoft Surface Pro 12 è il 2 in 1 pi&u...
Recensione REDMAGIC Astra Gaming Tablet: che spettacolo di tablet! Recensione REDMAGIC Astra Gaming Tablet: che spe...
Dopo un mese, e 50 foto, cosa abbiamo capito della nuova Nintendo Switch 2 Dopo un mese, e 50 foto, cosa abbiamo capito del...
Gigabyte Aero X16 Copilot+ PC: tanta potenza non solo per l'IA Gigabyte Aero X16 Copilot+ PC: tanta potenza non...
vivo X200 FE: il top di gamma si è fatto tascabile? vivo X200 FE: il top di gamma si è fatto ...
Il decimo lancio del razzo spaziale Spac...
Nuova immagine per la cometa interstella...
Usi la 'melanzana' su Tinder? Ecco perch...
AWS annuncia molte novità legate ...
Il lato oscuro della speculazione immobi...
Glyph Matrix e design asimmetrico: ...
Il sasso più costoso di sempre: p...
Ericsson punta sull'IA: arrivano nuove s...
Iliad: GIGA 200 e GIGA 150 tra le offert...
Questo power bank wireless ricarica alla...
iPhone 17 Pro e Pro Max: il nu...
Riunioni su Teams direttamente dall'auto...
È record: il nuovo orologio atomi...
Giochi per adulti cancellati da Steam: i...
Lefant M330Pro crolla a 127,49€, offerta...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 01:51.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v