Archivi categoria: nrddd

TP-Link TL-WR703N – Flash da TFTP

Scrivo questo post come promemoria, magari sarà utile a qualcuno.

Nel mio caso, ho comprato due TL-WR703N da Aliexpress per usarli con OpenWrt.

Qualche anno fa ne avevo già comprati alcuni versione 1.6 e non ho avuto nessun problema con OpenWrt. Ma attenzione! Dalla versione 1.7 sembra che l’upload di firmware alternativi via Web Gui cinese sia bloccata.

Puo’ succedere anche che, patrocchiando con vari firmware, ci si ritrovi con un router che non fa piu’ il boot.

In entrambi i casi, questa procedura puo’ essere utile.

Come prima cosa sarà necessario rendere disponibili i pin per la porta seriale: +5v, GND, TX, RX

Sul sito di OpenWrt https://wiki.openwrt.org/toh/tp-link/tl-wr703n ci sono quasi tutte le istruzioni, ma preferisco ripotarle qui per maggiore chiarezza.

703retro 703fronte

Poi ho collegato questi pin ad un adattatore RS232 <-> TTL (MAX232, tipo questo)

703insieme

E mi sono collegato dal PC con Tera Term (115200 8n1).

Digitando “tpl” durante i primi secondi di boot, si puo’ accedere al prompt del bootloader:

hornet>

A questo punto:

  • Ho scaricato dal sito di OpenWrt un vecchio firmware originale per il TL-WR703N.
    Nel caso non fosse piu’ disponibile sul sito OpenWrt, basta cercare su Google: wr703nv1_cn_3_12_11_up(110926).bin
  • Ho preparato un server TFTP sul mio computer, usando tftpd32.
    Le impostazioni di default vanno benissimo.
    Nella stessa cartella di tftpd32 ho copiato il file wr703nv1_cn_3_12_11_up(110926).bin

Tornando a Tera Term e al prompt del bootloader:

  • Il mio PC ha IP 192.168.1.32, quindi ho impostato cambiato l’indirizzo del server:
setenv serverip 192.168.1.32
  • Poi ho riportato i comandi trovati sul sito OpenWrt
tftpboot 0x81000000 wr703nv1_cn_3_12_11_up(110926).bin
erase 0x9f020000 +0x3c0000
cp.b 0x81000000 0x9f020000 0x3c0000
bootm 9f020000

Et voilà.

Il TPLINK farà il boot con un vecchio firmware SENZA blocco di firmware alternativi.

Basterà flashare dall’interfaccia web cinese il classico https://downloads.openwrt.org/chaos_calmer/15.05/ar71xx/generic/openwrt-15.05-ar71xx-generic-tl-wr703n-v1-squashfs-factory.bin, e OpenWrt sarà ancora una volta up and running.

E’ già il 2016!

E’ da un po’ (2 anni?) che non scrivo. E’ un po’ brutto in effetti. Mi faccio perdonare con un resoconto sulla situazione:

frabMsgGet è andato nel dimenticatoio. Le API di Facebook cambiano, cambiano le regole, i limiti di utilizzo.. Basta! E’ brutto fare così tanto lavoro per 1) niente ricompensa 2) rifare nuovamente il lavoro appena cambia qualcosa

Lo sviluppo software è andato un po’ in calando. Martina, Amici, moto, e (news!) ferrate hanno avuto la meglio.

In realtà non sono a zero per quanto riguarda la programmazione, ma mi sono concentrato su Arduino & compagnia per alcune innovazioni in casa (IoT).

Il Frab Server non fa piu’ da WebServer per questo sito, ma ha sempre piu’ responsabilità: router con pfSense, Server FTP, File Server, “server” per l’IoT… La cosa buffa è che proprio recentemente ho spostato la “logica” di alcuni automatismi di casa su una VM, e dopo 2 giorni si è rotta la scheda madre (una Intel tra l’altro).

Risultato: non si accendeva piu’ la tv (maledetti automatismi IoT su cui basi la tua vita!), niente internet, niente archivio file, niente stampante condivisa, è stata una bella botta.

Però l’ho affrontato di petto: Nuova MB, aggiunta di un SSD, e stavolta si riparte da zero con XenServer, un bare-metal hypervisor che ancora non conosco. Sarà un’ottima occasione per approfondire.

 

Rilasciare software gratuitamente

Durante il rilascio della nuova versione di frabMsgGet, mi sono loggato su Facebook Developers e ho buttato un occhio alle statistiche.insights

148 Utenti nell’ultimo “quasi mese” (12/12/2013 – 10/01/2014) +120 rispetto al mese precedente.

Caspita. Non mi aspettavo un successo simile.

Navigando nel passato ho avuto anche picchi di 200 utenti mensili. Non so quanto siano affidabili le statistiche di Facebook, ma dopotutto è Facebook stessa a gestire il login, quindi non vedo molte opzioni per confondersi.

Bello, ho costruito qualcosa e piace alla comunità. Stupendo! – NO.

Il database MySQL sta spuntando sangue, la mia Adsl ha il ping ballerino (specialmente quando l’utente scarica il file da qualche MB). Apache genera log da 2 mb al giorno.

Dopotutto sto usando una Alice 7 MB e un processore Atom 1.6 Ghz.

Prima di proseguire: se a qualcuno è venuta in mente la domanda “Chi ti ha obbligato a farti un server? Perchè non ti sei comprato un hosting?“, rispondo subito:

PER FARE ESPERIENZA.  Costruire e mantenere un server mi aiuta a conoscere problemi che un “programmatore-e-basta” non vedrebbe mai nella sua vita. Utilizzare risorse ridotte mi aiuta a sviluppare MEGLIO e non FREGANDOMENE di quanta CPU utilizzerà il mio host. Non voglio essere un programmatore con i paraocchi.

La situazione però sta diventando critica. La linea Adsl si sta intasando, e figuriamoci quando inizierà a spargersi la voce.

Temo per il futuro di frabMsgGet, e non vorrei essere costretto a chiuderlo.

L’unica opzione che ho è spostare il programma (o l’intero sito) su un hosting dedicato, e per far questo servono SOLDI. Circa 50 € / anno per Hosting Linux (Apache + PHP + MySQL) su Aruba.it

  • Potrei togliere alcune funzionalità e fare una versione “Pro”, con donazione obbligatoria di almeno 5 euro (lato negativo: tutti potrebbero semplicemente fregarsene)
  • Potrei renderlo completamente a pagamento (lato negativo: nessuno lo userebbe piu’)
  • Potrei semplicemente tirarlo giù e fine dei giochi (lato negativo: nessuno lo userebbe piu’)
  • Potrei semplicemente chiedere “Per favore donate”.

donate

Attualmente, dato che non voglio un lato negativo, ho scelto l’ultima opzione, chiedere soldi PER FAVORE.

Ed è qui che mi incazzo.

Perchè m’incazzo? A metà 2013 ricevetti una donazione da un’azienda di consulenza informatica dell’Illinois, senza che io chiedessi assolutamente NIENTE (questo per un altro software, Unravel).

Hanno tratto beneficio dal mio lavoro, mi hanno detto grazie. Senza che chiedessi niente.

Torniamo a frabMsgGet, dove praticamente tutti gli utenti sono italiani – o almeno, i loro indirizzi ip sembrano italiani ;) – sto chiedendo PER FAVORE DONATE; e non ho ricevuto niente.

SIAMO PROPRIO ITALIANI.

Lo dirò chiaro e tondo: il feedback che sto ricevendo non è dei migliori. Specialmente quando la linea Adsl va a singhiozzo per una cosa che ho deciso di rilasciare gratuitamente.

Spero in un miglioramento futuro.

Intanto, per quei pochi temerari che hanno letto tutto questo articolo: avete consigli?

New life for a USR9105

Non buttare via niente: è questo alla base del disordine che ho in casa e dei principali hack ben riusciti.

Frugando tra le mie cianfrusaglie, ho incontrato lo sguardo di un vecchio US Robotics USR9105 che mi diceva “usami usami usami usami”. Lo usai per qualche anno ma poi si ruppe il modem adsl, non si allineava più (attualmente il mio gateway è un Linksys AG241V2, acceso e dimenticato lì dal 2007).

Subito penso: ci piazzo DDWRT e ci gioco: Non è compatibile. Ci sono dei vecchi progetti per Linux su BroadCom96345, qui e qui, ma si limitano al compilare qualcosa di ridotto e uploadarlo sul router (ok, limitano non è il termine adatto, IN TEORIA compilando e uploadando si puo’ fare piu’ o meno tutto, ma ci vorrebbe mooolto moooolto tempo).

Boh, mi telnetto.


USR ADSL Gateway
Login: admin
Password:
> help

? help logout reboot adsl atm brctl cat df echo ifconfig kill arp defaultgateway dhcpserver dnsrelay lan passwd ppp remoteaccess restoredefault route save swversion wan ping ps pwd sysinfo traceroute

Niente di speciale, insomma. Provo sh.

BusyBox v0.60.4 (2005.04.21-17:46+0000) Built-in shell (msh)
Enter 'help' for a list of built-in commands.

#

Già meglio, ma non ho accesso a niente di interessante. ls non funziona.

# ls
ls: not found
#

Non so come o perchè ci sono arrivato, ma ho provato echo /*

# echo /*
/CVS /bin /dev /etc /lib /linuxrc /mnt /proc /sbin /upnp /usr /var /webs
#

AAAAHHH. Iniziamo a ragionare.

/bin è piena di cose interessanti, tra cui spiccano:


# dumpmem
usage: dumpmem <address_in_hex> <length_in_decimal>

(ma è per veri hax0rz)

e

# ledctrl
Usage: ledctrl led_name led_state

Supported led names:
Adsl
Wireless
Usb
Hpna
WanData
PPP
Voip

Supported led states:
Off
On
BlinkOnce
SlowBlinkContinues
FastBlinkContinues

Ahm. Controllare led quindi? Benissimo. Userò il led ADSL dato che è rotto il modem.

Raccatto un ULN2003A (altamente inutile, bastava un transistor darlington, ma quello l’avevo già in casa, il transistor no – forse) e uno stabilizzatore 7812, e un relè.

Led + collegato a IN1 dell’ULN2003A
Led – collegato a GND

12 V+ collegato a COMMON FREE WHEELING DIODES dell’ULN2003A
12 V- collegato a GND

OUT1 collegato a – Relè
12 V+ collegato a + Relè

Il mini circuito l’ho incollato nello spiazzo dedicato al modulo wireless assente (per quello c’era il fratellino maggiore USR9106). In questo modo si riesce a richiudere il tutto.

Beh, risultato:

Un interruttore attivabile da TCP/IP (basta telnettarsi, fare il login, e usare ledctrl)

Posso comandarlo via SMS (sms gateway sul frab server)
Posso comandarlo con PHP (sito internet)
Posso comandarlo con WinLIRC (telecomando della tv)
Posso comandarlo con qualsiasi programma (pc, notebook, win, linux)

Cosa ci attacco? :S

(“il cazzo” non è una risposta carina, seriously.)