27 de juliol del 2013

Comprar a Amazon al millor preu amb Keepa

Si com a mi us agrada anar tafanejant per Amazon i seguir l'evolució de preus d'algun article per tal de comprar al millor preu possible, no us podeu perdre l'extensió Keepa del Firefox (disponible també pel Chrome).

Amb Firefox, descarreguem l'extensió Keepa, instal·lem i reiniciem el navegador:



I ja ho tenim, realment. Ara, simplement anem a Amazon per xafardejar com sempre, i quan estiguem en la fitxa d'un producte tenim una nova gràfica amb indicacions de l'evolució de preus del producte al llarg del temps:


I us podeu trobar amb alguna sorpresa. En la imatge de l'exemple, aquest Xperia T va passa de poc més de 300€ a més de 415€ durant uns dies. Com per comprar-lo en el moment equivocat, no creieu?

Amb Keepa podem:
  • Visualitzar ràpidament l'evolució de preus d'un producte.
  • Comparar el preu entre els diferents Amazons (.es .de .uk .com ...).
  • Fixar preus objectius per un producte i deixar que ens avisi quan s'hi arribi.
En fi, si us decidiu a provar-la, segur que li traureu rendiment. Ja m'ho direu!

20 de juliol del 2013

WDR3600: Apagar la xarxa sense fils quan ningú l'utilitzi

Fa uns dies comentava com poder activar/desactivar la xarxa sense fils amb un botó en un encaminador WDR3600. Ara bé, no seria millor encara que es desactivés automàticament quan ningú l'utilitzi?

Anem a veure com ho podem aconseguir. En primer lloc, hem de poder detectar si la xarxa sense fils està activada o no, i si hi ha algú connectat. Accedim a l'encaminador i provem les comandes:
$ ssh root@gargoyle
root@gargoyle password: xxxxxxx
root@Gargoyle:~# iwconfig wlan0
root@Gargoyle:~# iwconfig wlan1
root@Gargoyle:~# iw dev wlan0 station dump
root@Gargoyle:~# iw dev wlan1 station dump
Les dues primeres comandes verifiquen l'estat de la xarxa sense fils de 2.4GHz (wlan0) i la de 5GHz (wlan1). Les dues següents ens informes dels ordinadors connectats, si n'hi ha cap.

Amb això ja estem en condicions d'escriure un petit script per la nostra tasca. La idea de base la vaig agafar d'un missatge dels fòrums d'Openwrt. El resultat és aquest:
#!/bin/sh

LOG=/tmp/autowifi.log
SW=$(iwconfig wlan0 2>/dev/null | grep IEEE)

echo $(date) >> ${LOG}

if [ -z "$SW" ] # check if wifi is on
then
  echo "Wifi is already OFF" >> ${LOG}
else
  echo "Wifi is ON" >> ${LOG}
  if [ -z "$(iw dev wlan0 station dump | tr -d '\n')" ] # Anyone here? 
  then 
  if [ -z "$(iw dev wlan1 station dump | tr -d '\n')" ] # Anyone here?
  then
    echo "No-one is connected" >> ${LOG}
    case "$(cat /var/autowifi)" in # Someone connected before?
      1) 
        echo "No-one was connected. Turning wireless OFF" >> ${LOG}
        /sbin/wifi down 2>/dev/null
        cat /var/autowifi
      ;;
      *)
        echo "Someone was connected. Leaving wireless ON" >> ${LOG}
        echo 1 > /var/autowifi
      ;;
    esac
  else
    echo "Someone is connected to wlan1 (5GHz)" >> ${LOG}
    cat  /var/autowifi
  fi
  else
    echo "Someone is connected wlan0 (2.4GHz)" >> ${LOG}
    cat  /var/autowifi
  fi
fi
Aquest fitxer s'ha de guardar a /sbin amb el nom autowifi (/sbin/autowifi).

Tot seguit l'hem de fer executable, també crearem el fitxer auxiliar /var/autowifi (que serveix per indicar si hi havia algú connectat la darrera vegada) i editarem el crontab per tal d'executar el codi autowifi cada cert temps (15 minuts en aquest cas):
root@Gargoyle:~# chmod +x /sbin/autowifi
root@Gargoyle:~# touch /var/autowifi
root@Gargoyle:~# vi /etc/crontabs/root
Afegim la línia següent al crontab:
*/15 * * * * /sbin/autowifi
I ja ho tenim. La xarxa sense fils s'apagarà automàticament si ningú si ha connectat en la darrera mitja hora. Evidentment, podeu baixar l'interval a uns pocs minuts simplement modificant el valor indicat en el crontab.

15 de juliol del 2013

TP-Link WDR3600: Wifi ON/OFF amb un botó

Fa un temps ja vaig explicar com activar/desactivar amb un botó la xarxa sense fils a Openwrt (o Gargoyle). L'encaminador TP-Link WDR3600 té un interruptor per això, però la seva utilització no està prevista en Openwrt.

Ho podem veure entrant en l'encaminador i editant un petit fitxer per tal de registrar les accions que fem amb els butons:
$ ssh root@gargoyle
root@gargoyle password: xxxxxxx
root@Gargoyle:~# mkdir -p /etc/hotplug.d/button
root@Gargoyle:~# vi /etc/hotplug.d/button/button_log
El contingut del fitxer ha de ser el següent:
#!/bin/sh    
        logger $BUTTON    
        logger $ACTION            
Ara, premem el botó WPS i movem l'interruptor d'activar/desactivar la xarxa sense fils.Tot seguit mirem el que ha quedat registrat amb la comanda:
root@Gargoyle:~# logread
De seguida podem veure com queda registrat quan premem (pressed) i deixem anar (release) el botó 'wps'. En canvi, no hi ha res sobre l'interruptor. De fet, podem comprovar l'estat d'aquest amb una comanda com:
root@Gargoyle:~# cat /sys/kernel/debug/gpio | grep 17
El problema és que no hi ha una manera senzilla d'enllaçar-hi comandes. Per tant, utilitzarem el botó WPS per activar/desactivar la xarxa sense fils.Per això modifiquem el fitxer /etc/config/system per tal que inclogui:
config button 'wifion_button'
 option button 'wps'
 option action 'released'
 option handler '/sbin/wifi ;'
 option min '0'
 option max '1'

config button 'wifioff_button'
 option button 'wps'
 option action 'released'
 option handler '/sbin/wifi down;'
 option min '2'
 option max '10'

config button 'reboot_button'
 option button 'wps'
 option action 'released'
 option handler 'logger reboot ; /usr/lib/gargoyle/reboot.sh ;'
 option min '15'
 option max '30'
De fet, aquest botó ja s'utilitzava per reiniciar l'encaminador, així que el que he fet és separar el tipus d'acció segons el temps que premem el botó:
  • Entre 0 i 1 segons: activar la xarxa sense fils.
  • Entre 2 i 10 segons: apagar la xarxa sense fils.
  • De 15 a 30 segons: reiniciar l'aparell.
D'aquesta manera no es perd funcionalitat i difícilment ens equivocarem d'opció.

12 de juliol del 2013

Recuperant un TP-Link WDR3600 al qual no s'hi té accés

En el meu canvi d'encaminador (router), vaig voler córrer massa. Vaig copiar la configuració del meu antic TP-Link WR1043ND directament al nou TP-Link WDR3600 i el resultat var ser que ja no hi podia accedir per xarxa. És perillós treballar amb presses just abans d'anar a dormir...

Per sort, Openwrt disposa d'una opció de recuperació a prova de fallades (failsafe). De fet, en casos més radicals s'hi pot accedir també usant una consola sèrie, però ja cal obrir l'aparell i fer unes soldadures. Simples, però soldadures.

En tot cas, sempre és millor provar primer amb la solució simple. Per això, primer ens haurem de connectar per cable a l'encaminador i configurar manualment la IP de l'ordinador a la xarxa que el WDR3600 utilitza per defecte:


Tot seguit apaguem el WDR3600 i l'encenem de nou. Esperem que el segon led (el del sol), comenci a parpellejar [1]. Just en aquest moment premem el botó de Reset/WDS [2] que l'aparell té al darrera, entre els connectors de xarxa i l'antena esquerra. Si ho hem fet correctament, veurem que el led comença a parpellejar ara més ràpid. Senyal que hem entrat en el mode correcte:


La confirmació definitiva la tindrem si podem connectar al router:
$ telnet 192.168.1.1

Amb sort, veurem la consola de Gargoyle:



Tot seguit podrem procedir a esborrar la partició de dades, on hi ha la configuració errònia:
# mount_root
# mtd erase rootfs_data

Ja podem apagar el WDR3600 i quan engegui de nou, hi podrem accedir normalment des de la seva interfície web:

I ara, a configurar-lo amb més calma...

9 de juliol del 2013

Gargoyle en un TP-Link WDR3600

Aprofitant el meu pas a la fibra òptica vaig decidir canviar el meu antic encaminador (router) TP-Link TL-WR1043ND. A l'època ja em vaig quedar amb ganes d'agafar-ne un de doble banda, i ara he tingut l'excusa perfecte.


Us resumeixo els motius de la tria:
  • Suporta el firmware de codi obert Openwrt i el seu derivat Gargoyle.
  • Preu ajustat (menys de 56€ des d'Amazon, més transport).
  • 4 ports Gigabit.
  • Wireless N, 600Mbps, doble banda (2.4Ghz i 5GHz).
  • Estèticament agradable.
  • Dos Ports USB.
Per 70€ hi ha un model superior, el WDR4300, que bàsicament porta el mateix maquinari, però arriba fins a 750Mbps (amb tres antenes). També es pot considerar el WDR4900, amb millor processador, però ja amb un preu de més de 80€.

Bàsicament, m'interessava la doble banda (el WR1043ND només suporta 2.4Ghz, la banda més "ocupada"), els 128MB de memòria (enlloc dels 32MB del wr1043ND) i un processador millor (560Mhz enlloc de 400MHz del germà petit).

En resum, crec que és una bona opció a un preu raonable.

Ràpidament hi he instal·lat el Gargoyle (un derivat del Openwrt) seguint les passes que ja vaig indicar en l'article dedicat al WR1043ND, pel que no les repetiré aquí. Si teniu cap dubte, pregunteu i miraré de donar-vos un cop de mà.

En fi, ja aniré explicant com va !


7 de juliol del 2013

Ati HD 4670 a Ubuntu 12.04 LTS: No Carrega [SOLUCIONAT]

Avui he instal·lat Ubuntu en un ordinador que té una targeta gràfica Ati HD4670. Ja hem feia patir, perquè no és la primera vegada que em barallo amb targetes gràfiques Ati, que no li acaben d'agradar gaire a Ubuntu.

Tal com em temia, un cop instal·lat Ubuntu, l'ordinador es quedava mostrant la pantalla d'inici i no acabava la càrrega de l'escriptori:


La solució ha consistit en passar a mode consola (Alt+F1). Des d'allà, he pogut editat el fitxer de configuració d'arrencada, grub:
$ sudo vi /etc/default/grub
Es tracta d'afegir l'opció nomodeset. Editem la línia d'opcions del grub per tal que quedi com segueix:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nomodeset"
Tot seguit guardem el fitxer, i actualitzem el grub per tal que consideri les noves opcions amb:
$ sudo update-grub
Tot llest per reiniciar i comprovar si tot ha anat bé.

A mi m'ha funcionat!