Come installare software aggiuntivo sul router di casa (DD-WRT)

Sommario:

Come installare software aggiuntivo sul router di casa (DD-WRT)
Come installare software aggiuntivo sul router di casa (DD-WRT)

Video: Come installare software aggiuntivo sul router di casa (DD-WRT)

Video: Come installare software aggiuntivo sul router di casa (DD-WRT)
Video: The Best Science Hoaxes, Spoofs, and Nerd Jokes (500k subs celebration) - YouTube 2024, Aprile
Anonim
Hai mai desiderato avere funzionalità aggiuntive come Email, Bit-torrent o anche MySQL direttamente sul tuo router? Bene, forse ora puoi. How-To Geek si tuffa su come installare il software Opkg su DD-WRT.
Hai mai desiderato avere funzionalità aggiuntive come Email, Bit-torrent o anche MySQL direttamente sul tuo router? Bene, forse ora puoi. How-To Geek si tuffa su come installare il software Opkg su DD-WRT.

Immagine di Jean Spector e Aviad Raviv

Se non lo hai già fatto, assicurati di controllare i precedenti articoli della serie:

  • Trasforma il tuo router di casa in un router Super-Powered con DD-WRT
  • Come rimuovere pubblicità con Pixelserv su DD-WRT

Supponendo che tu abbia familiarità con questi argomenti, continua a leggere. Tieni presente che questa guida è un po 'più tecnica e che i principianti dovrebbero prestare attenzione durante la modifica del router.

tribulations

Ho recentemente acquistato un nuovo Buffalo WZR-HP-AG300H che viene fornito con una versione re-branded di DD-WRT. Dato che questo router ha una porta USB, ho collegato immediatamente un HD e ho provato ad usare la guida wiki "Optware, The Right Way". Sfortunatamente ho scoperto rapidamente che il router che ho ottenuto, è basato su Atheros e lo script da quella pagina wiki, non lo supporta. Così ho iniziato a scavare (come faccio sempre) e ho trovato diverse guide (1, 2, 3 e 4) che miravano a spiegare come far funzionare Opkg manualmente. Mentre il loro contributo (tra le altre fonti sul web) a questa guida è stato inestimabile, alcune delle istruzioni sono (IMHO) semplicemente non abbastanza dirette. Ad esempio, darti i file "lib", ma non insegnarti a pescarli dalla fonte. Dovendo anche usare un HD formattato Linux o almeno una partizione di uno (che in realtà non funziona nemmeno sui firmware con cui ho provato). Ecco perché, ho sentito la necessità di creare la seguente procedura concisa, semplice da seguire e riproducibile per far funzionare il gestore di pacchetti Opkg di OpenWRT su tali router.

Aggiornamento: la capacità delle partizioni di montaggio è stata reintrodotta nella versione re-branded sulla build alpha 17798.

Cos'è Opkg?

Opkg è un gestore di pacchetti come apt / aptitude e yum. Funziona come un sostituto per il gestore di pacchetti Ipkg e può essere utilizzato per installare software come: il daemon Transmission BitTorrent, il ssmtp email sender e il demone Knockd a che eseguono script dopo una sequenza di attivazione della porta specificata, per citarne alcuni. Dal sito OpenWRT:

The opkg utility (an ipkg fork) is a lightweight package manager used to download and install OpenWrt packages from local package repositories or ones located on the Internet.

Opkg

tenta di risolvere le dipendenze con i pacchetti nei repository; in caso di errore, segnala un errore e interrompe l'installazione di quel pacchetto.

Quindi usando Opkg possiamo installare cose come abbiamo fatto con Ipkg nella guida "Scatena ancora più potenza dal tuo router domestico". Le principali differenze sono:

  1. Al fine di fornire gli esempi di SSMTP e Knockd, il sottoscritto ha dovuto capire manualmente le dipendenze. La procedura per eseguire questa operazione manualmente è fastidiosa e non molto semplice. Opkg lo fa automaticamente.
  2. Questa volta saremo aggiungendo software in cima al firmware installato, piuttosto che sostituirlo. Mentre la sostituzione era un esercizio geek eccellente, era senza dubbio: pericoloso, incline a problemi, irreversibile e peggiore di tutti i router specifici. Inutile dire che questo è molto più semplice e sicuro.

Prerequisiti

Per completare questa guida, osserva quanto segue:

  1. Come indicato sopra, questa guida è stata creata e testata su Buffalo WZR-HP-AG300H con la versione firmware "Pro" di Buffalo 17135. Dovrebbe funzionare su qualsiasi router Atheros (ar71xx) con qualsiasi versione di DD-WRT della stessa revisione o superiore, ma il tuo percorso potrebbe molto.
  2. È necessario abilitare SSH sul router, nonché installare e utilizzare WinSCP per connettersi ad esso. Questo è stato spiegato nella guida "How to Remove Advertisements with Pixelserv on DD-WRT". In effetti, si presumerà che tu sia in grado di fare tutto ciò che è spiegato in quella guida.
  3. È necessario essere in grado di connettersi al router utilizzando un terminale (si consiglia SSH). Alcuni suggerimenti su come farlo, sono sul wiki DD-WRT.
  4. Spazio per JFFS e circa 4 MB di spazio post-formattato per l'impostazione di base. Lo spazio JFFS non è solo un prerequisito, è uno stopper. Questo perché, se il tuo router non ha almeno i 4MB di spazio post-formattato sopra menzionati, non otterrai alcun beneficio reale da questa guida e starai meglio usando "Scatena ancora più energia dal tuo router di casa" guida per installare i pacchetti Ipkg direttamente nel firmware o installare manualmente i pacchetti Ipkg. Segui le istruzioni sulla guida "Come rimuovere gli annunci pubblicitari con Pixelserv su DD-WRT" per abilitare JFFS e vedere quanto spazio hai effettivamente dopo è formattato.

Nota: È possibile farlo con solo 2MB di spazio per l'installazione, ma in questo caso si perderebbe il risultato di "/ etc" diventando scrivibile in lettura e si dovrebbe richiamare Opkg, specificando il file di configurazione manualmente ogni volta … che è come mooooolto zoppo …

Lasciamo scoppiare

A questo punto dovresti aver abilitato JFFS e sei in grado di SSH / WinSCP nel router.

  1. Aprire una sessione terminale sul router.
  2. Crea una directory temporanea in cui lavoreremo:

    mkdir /tmp/1 cd /tmp/1

Usa Ipkg per installare Opkg Mentre sostituiremo Ipkg come gestore pacchetti, lo useremo per installare manualmente il pacchetto di installazione Opkg.

  1. Per fare ciò, scarica il pacchetto di installazione Opkg per l'architettura ar71xx dal trunk del progetto OpenWRT:

    wget https://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/opkg_618-2_ar71xx.ipk

    Nota 1: Al momento della stesura di questo documento, 618 è l'ultima versione, questo potrebbe essere soggetto a modifiche in futuro, quindi regolare di conseguenza. Nota 2: Potrebbe essere possibile che l'unica differenza nel far funzionare questa guida per altre architetture sia quella di ottenere il programma di installazione di Opkg dall'architettura applicabile per il tuo router … tuttavia questo non è mai stato verificato da te.

  2. Richiama Ipkg per installare manualmente Opkg usando:

    ipkg install opkg_618-2_ar71xx.ipk

    Nota: È possibile, se lo si desidera anche, installare ogni pacchetto nel repository manualmente in questo modo. Tuttavia questo significherebbe che dovrai risolvere le dipendenze da solo … e quale sarebbe il divertimento in questo?

Ottenere i file di libreria dinamici ("lib" s) I file "lib" richiesti per far funzionare Opkg, fanno parte della distribuzione OpenWRT. Per ottenerli, bisogna estrarli dal "Root FileSystem" di detta distribuzione.

  1. Per fare ciò, scaricare l'ultimo "Root FileSystem" di base per la distribuzione di openWRT che contiene le "lib" richieste dal trunk del progetto OpenWRT:

    wget https://downloads.openwrt.org/snapshots/trunk/ar71xx/openwrt-ar71xx-generic-rootfs.tar.gz

  2. Estrai usando:

    tar xvzf openwrt-ar71xx-generic-rootfs.tar.gz

  3. Copia i file "libs" dal "rootfs" che abbiamo estratto in precedenza nella directory "libs" sul nostro JFFS, preservando i loro attributi e collegamenti simbolici:

    cp -Pp /tmp/1/lib/* /jffs/usr/lib/

    Nota: Riceverai messaggi che dicono che le sottodirectory sono state omesse. Dato che non abbiamo bisogno di altro che dei file "lib", questo va bene e puoi tranquillamente ignorare questi messaggi.

Correggere il "PATH" LD_LIBRARY Dobbiamo dire al router, dove cercare le librerie condivise (libs) che abbiamo appena "installato" e che ha bisogno di fare questo prima quelli forniti con il firmware.

  1. Per fare ciò imposta manualmente la variabile d'ambiente LD_LIBRARY (per ora), in modo che la posizione in cui abbiamo copiato i nuovi file lib sia la prima nel "PATH":

    export LD_LIBRARY_PATH=/jffs/usr/lib:$LD_LIBRARY_PATH

Read-writable "/ etc" Copieremo "/ etc" su JFFS e quindi eseguiremo il normale punto di mount "/ etc", puntandoci sopra. In questo modo, entrambi apriranno un mondo di possibilità, perché "/ etc" diventerà read-writeable (che personalmente ho aspettato per dare o fare 7 anni) e abilitare i pacchetti che si aspettano questo comportamento, per funzionare correttamente.

  1. Crea la directory che conterrà "/ etc":

    mkdir -p /jffs/geek/etc

  2. Copia ricorsivamente l'interezza di "/ etc" mentre conserva tutte le sottodirectory, gli attributi di file ei collegamenti simbolici.

    cp -a /etc/* /jffs/geek/etc/

  3. Manualmente (per ora) "bind mount" la directory "/ etc" su quella JFFS:

    mount -o bind /jffs/geek/etc/ /etc/

Imposta la directory Optware ("/ opt") Opkg da OpenWRT, si aspetta di essere usato quando il firmware del router è costruito. Poiché in quel momento, FileSystem non si trova ancora sul router e quindi è soggetto a modifiche, non ci sono problemi di installazione in qualsiasi posizione su FileSystem. Questo è il motivo per cui il file di configurazione di Opkg punta ai pacchetti da installare nella "root" (/) di FileSystem. Tuttavia, stiamo usando Opkg dopo il firmware è stato costruito e installato sul router e, poiché non possiamo modificare la radice del filesystem in modo che sia scrivibile da una scrittura, punteremo tutte le installazioni su "/ opt". Tuttavia attualmente "/ opt" indica anche una posizione di sola lettura sul firmware del router. Per superare questo, faremo "/ opt" puntare su JFFS, che è in lettura-scrittura.

  1. Per fare ciò, crea la directory che conterrà i pacchetti Optware:

    mkdir -p /jffs/opt

  2. Manualmente (per ora) "bind mount" la directory "/ opt" su quella JFFS:

    mount -o bind /jffs/opt/ /opt/

    Nota: oltre lo scopo di questa guida, gli utenti più esperti potrebbero voler modificare questo punto di montaggio, per puntare a un HD.

Regolazione del file delle configurazioni Opkg Vogliamo che il file di configurazione di Opkg sia dove Opkg lo cerca per impostazione predefinita (che è "/ etc") e modificato per l'installazione in "/ opt".

  1. Per fare ciò, sposta il file di configurazione di opkg installato dal pacchetto Opkg nella posizione "/ etc" read-writable:

    mv /jffs/etc/opkg.conf /etc/

  2. Cambia la destinazione per le installazioni di Optware come "/ opt" invece di "root" (/). Per fare ciò, con l'editor "vi" o WinSCP vai a "/ etc /" e crea il contenuto del file "opkg.conf":

    vi /etc/opkg.conf

    Assomigli a:

    src/gz snapshots https://downloads.openwrt.org/snapshots/trunk/ar71xx/packages dest root /opt dest ram /tmp lists_dir ext /var/opkg-lists option overlay_root /overlay

    Nota: È possibile modificare la direttiva "lists_dir" in modo che faccia riferimento a una posizione che non è nella RAM, ma piuttosto su JFFS. Mentre questo ti solleva dall'aggiornare gli elenchi, prima di poter installare software aggiuntivo (se il tuo router viene riavviato dall'ultima volta), perdi circa 1.5MB dello spazio JFFS scarso e dovresti aggravare la sua erosione.

Ciao Baby Dovresti essere in grado di vedere che Opkg funziona emettendo l'aggiornamento e elenca i comandi.

  1. Se tutto è andato bene, dovresti vedere che gli elenchi di Opkg sono stati aggiornati senza errori e sei pronto per implementare lo script nel passaggio successivo:

    opkg update; opkg list

  2. Prenditi il tempo per iniziare ad esplorare i pacchetti disponibili sul repository ….

Script di avvio Ora dobbiamo fare in modo che tutto il montaggio e il percorso richiesti avvengano automaticamente all'avvio del router. A tal fine, abbiamo creato per te questo script di inizializzazione geek-init.

  1. Scarica, quindi estrai e posizionalo in "/ jffs / geek / etc /". (Considerare di fare questo con WinSCP).
  2. Rendi eseguibile lo script andando nelle sue proprietà con WinSCP o eseguendo:

    chmod +x /jffs/geek/etc/geek-init.sh

  3. Fai eseguire lo script all'avvio del router, utilizzando la WebGUI. In Amministrazione -> Comandi, nella casella di testo, inserisci:

    /jffs/geek/etc/geek-init.sh web-gui

    E fai clic su "Salva avvio".

Calci le gomme Se tutto è andato bene, ora dovresti essere in grado di riavviare il router e usare ancora il gestore di pacchetti Opkg. Vale a aggiornare, elencare e installare applicazioni. Consente di verificare che tutto funzioni correttamente installando il comando "netstat", che per qualche motivo è stato omesso di recente dalle build DD-WRT. Prima di farlo, esegui il comando netstat nel terminale e vedrai che ti viene grattato un errore dalla shell, che dice "-sh: netstat: not found".

  1. Il tuo primo passo sarà sempre, per aggiornare gli elenchi Opkg, in modo da avere gli ultimi pacchetti elencati dal repository:

    opkg update

  2. Se non sai quale pacchetto contiene il comando "netstat", puoi filtrare i risultati usando.

    opkg list | grep netstat

  3. E ora installa "netstat" usando:

    opkg install net-tools-netstat

    E ora, quando esegui di nuovo il comando netstat, funziona … pulito?:)

Fino agli articoli futuri in cui installeremo e configureremo i pacchetti software utilizzando questo metodo, potresti avere tonnellate di geek che esplorano la grande quantità di software che ora è a portata di mano.

Se una tale macchina è un'impossibilità virtuale, deve logicamente essere un'improbabilità finita. Quindi tutto quello che devo fare per farne uno è capire quanto sia esattamente improbabile, dare quella figura al generatore di improbabilità finita, dargli una tazza di tè caldo e accenderlo … … …… ……. L'unica cosa che a loro non piace, è un "Smart-Ass".

Consigliato: