Come installare software aggiuntivo sul router di casa (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 a usare la guida wiki "Optware, The Right Way". Sfortunatamente ho scoperto rapidamente che il router che ho ricevuto, è basato su Atheros e lo script di 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" pesce, 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 sostituto del 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:
L'utility opkg (un fork ipkg) è un gestore di pacchetti leggero usato per scaricare e installare i pacchetti OpenWrt dai repository di pacchetti locali o quelli che si trovano su Internet.
opkg
tenta di risolvere le dipendenze con i pacchetti nei repository - se fallisce, 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:
- Per dare 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.
- 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:
- 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.
- È 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". Di fatto, si supporrà che tu sia in grado di fare tutto ciò che è spiegato in quella guida.
- È necessario essere in grado di connettersi al router usando un terminale (si consiglia SSH). Alcuni suggerimenti su come farlo sono sul wiki DD-WRT.
- 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 pubblicità con Pixelserv su DD-WRT" per abilitare JFFS e vedere quanto spazio hai effettivamente dopo è formattato.
Nota: È possibile farlo con solo 2 MB di spazio per l'installazione, ma in tal caso si perderebbe il risultato di "/ etc" che diventa in lettura e dovrebbe richiamare Opkg, specificando manualmente il file di configurazione ogni volta ... che è come mooooolto zoppo ...
Lasciamo scoppiare
A questo punto dovresti aver abilitato JFFS e sei in grado di SSH / WinSCP nel router.
- Aprire una sessione terminale sul router.
- 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 di Opkg.
- Per fare ciò, scarica il pacchetto di installazione Opkg per l'architettura ar71xx dal trunk del progetto OpenWRT:
wget http://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 regolarlo 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 è assolutamente testato da te. - 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.
- Per fare ciò, scaricare l'ultimo "Root FileSystem" di base per la distrebution openWRT che contiene le "lib" richieste dal trunk del progetto OpenWRT:
wget http://downloads.openwrt.org/snapshots/trunk/ar71xx/openwrt-ar71xx-generic-rootfs.tar.gz
- Estrai usando:
tar xvzf openwrt-ar71xx-generic-rootfs.tar.gz
- Copia i file "libs" dal "rootfs" che abbiamo estratto sopra 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.
Correzione del "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.
- 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 "PERCORSO":
esporta LD_LIBRARY_PATH = / jffs / usr / lib: $ LD_LIBRARY_PATH
Read-writable "/ etc"
Copieremo "/ etc" su JFFS e quindi creeremo 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.
- Crea la directory che conterrà "/ etc":
mkdir -p / jffs / geek / ecc
- Copia ricorsivamente l'interezza di "/ etc" mentre conserva tutte le sottodirectory, gli attributi di file ei collegamenti simbolici.
cp -a / etc / * / jffs / geek / etc /
- 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. Ecco perché il file di configurazione di Opkg punta ai pacchetti da installare nella "root" (/) di FileSystem. Tuttavia, stiamo usando Opkg dopo il firmware è stato compilato e installato sul router e, poiché non è possibile modificare la radice del filesystem in modo che sia leggibile, faremo puntare 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.
- Per fare ciò, crea la directory che conterrà i pacchetti Optware:
mkdir -p / jffs / opt
- 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ù avanzati potrebbero voler cambiare 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 corretto per l'installazione in "/ opt".
- 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 /
- 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:
snapshot di src / gz http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages
dest root / opt
dest ram / tmp
lists_dir ext / var / opkg-lists
opzione overlay_root / overlayNota: È possibile modificare la direttiva "lists_dir" in modo che faccia riferimento a un percorso che non si trova 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.
- 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:
aggiornamento opkg; elenco opkg
- 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.
- Scarica, quindi estrai e posizionalo in "/ jffs / geek / etc /". (Considerare di fare questo con WinSCP).
- Rendi eseguibile lo script andando nelle sue proprietà con WinSCP o eseguendo:
chmod + x /jffs/geek/etc/geek-init.sh
- Fai eseguire lo script all'avvio del router, utilizzando la WebGUI. Sotto 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 utilizzare 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, dicendo "-sh: netstat: not found".
- Il tuo primo passo sarà sempre, aggiornare gli elenchi Opkg, in modo da avere gli ultimi pacchetti elencati dal repository:
aggiornamento opkg
- Se non sai quale pacchetto contiene il comando "netstat", puoi filtrare i risultati usando.
elenco opkg | grep netstat
- E ora installa "netstat" usando:
opkg installa 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 macchina del genere è un'impossibilità virtuale, deve essere logicamente un'improbabilità finita. Quindi tutto quello che devo fare per farne uno è capire come è esattamente improbabile, dare quella figura al generatore di improbabilità finita, dargli una tazza di tè caldo e accenderlo ... ... ... L'unica cosa che hanno Davvero non mi piace, è un "Smart-Ass".