Buenas a todos !!
Ya tengo algo parecido a lo que quería montarme con un ARV7518PW ! Aunque aún tenga algún problemilla con ello (son cosas secundarias que después comento), he aquí una foto


Os cuento:
- Pivot overlay con usb de 16 GB (ext3). Partición de sistema de 450 MB, algo de swap (unos 80 MB) por si las moscas, y el resto "para cositas". Poca cosa que contar:
root@OpenWrt:~# df -h
Filesystem Size Used Available Use% Mounted on
rootfs 504.4M 38.6M 440.2M 8% /
/dev/root 2.8M 2.8M 0 100% /rom
tmpfs 30.2M 1.9M 28.3M 6% /tmp
tmpfs 512.0K 0 512.0K 0% /dev
/dev/sda1 504.4M 38.6M 440.2M 8% /overlay
overlayfs:/overlay 504.4M 38.6M 440.2M 8% /
/dev/sda2 14.1G 4.2G 9.1G 32% /home
root@OpenWrt:~# cat /proc/swaps
Filename Type Size Used Priority
/dev/sda3 partition 80892 676 -1
- Tuve problemas de corriente, así que tuve que poner alimentación al hub USB ... Hasta que descubrí una cosa: el transformador que me dieron con el router era de 12W. Puse un transformador de 18W y todo funcionó de maravilla. Añadir que los altavoces (unos conceptronic USB'n go alimentados por USB o pilas) los tengo puestos a esa cutrebatería solar porque si los pongo al mismo hub de la tarjeta de sonido hacen ruido (por compartir masa?), pero el USB del ARV7518PW puede con todo. Haciendo cuenta de consumos, aquí están (el lápiz USB se traga 200mA, el hub 100mA y la tarjeta de sonido otros 100mA)
root@OpenWrt:~# cat /proc/bus/usb/devices | grep mA
C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr= 0mA
C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=100mA
C:* #Ifs= 4 Cfg#= 1 Atr=a0 MxPwr=100mA
C:* #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=200mA
- Servicios funcionando: Transmission, MPD, OpenVPN y uhttp. Tuve que tunear los dos primeros, concretamente bajar la download queue del Transmission (y algo más que ahora no recuerdo), de MPD tuve que subir el rate (el sonido a 44100Hz tragaba más CPU que a 48KHz

), etc. Aquí un top para ver cómo está el trasto (he cortado la línea de parámetros de OpenVPN porque ... a nadie le gusta enseñar el nombre de sus certificados

). Edito para decir que hice un usuario para mpd y otro para transmission, no me fio de correr todo como root. De pequeñito me dijeron: como root sólo lo imprescindible, porque si no como te cuelen un exploit te vas a divertir mucho...
root@OpenWrt:/home/transmission/done# top -b -n1
Mem: 44916K used, 16908K free, 0K shrd, 3768K buff, 12760K cached
CPU: 28% usr 21% sys 0% nic 50% idle 0% io 0% irq 0% sirq
Load average: 0.49 0.38 0.42 1/67 19100
PID PPID USER STAT VSZ %VSZ %CPU COMMAND
5964 1 mpd S 22328 36% 21% /usr/bin/mpd
19100 4692 root R 1496 2% 14% top -b -n1
9340 1 transmis S 13096 21% 0% /usr/bin/transmission-daemon -g /home/transmission
1886 1 root S 7408 12% 0% /sbin/dsl_cpe_control -i00_00_00_00_00_01_00_00 -n /sbin/dsl_notify.sh -f /lib/firmware/dsl-fw-a.bin
7814 1 root S 6800 11% 0% /usr/sbin/openvpn --syslog openvpn(VPN_Domestica) ...
4691 4690 root S 1636 3% 0% {screen} SCREEN
4690 502 root S 1548 3% 0% screen
1665 1 root S 1516 2% 0% /usr/sbin/crond -c /etc/crontabs -l 8
796 1 root S 1516 2% 0% /sbin/netifd
502 1 root S 1512 2% 0% /bin/ash --login 0.8.32re
657 1 root S 860 1% 0% /sbin/ubusdn/udevtrigger --maxrsistent
1902 2 root SW 0 0% 0% [autbtex]/br2684ctl -c 0 -e 0 -p 1 -a
1904 2 root SW 0 0% 0% [pmex_ne]P /var/run/wifi-phy0.pid -B /
1903 2 root SW 0 0% 0% [ceocex_ne]
1905 2 root DW 0 0% 0% [pmex_fe]
3 2 root SW 0 0% 0% [ksoftirqd/0]
448 2 root SW 0 0% 0% [usb-storage]
116 2 root SW 0 0% 0% [mtdblock2]
131 2 root SW 0 0% 0% [mtdblock5]
121 2 root SW 0 0% 0% [mtdblock3]
111 2 root SW 0 0% 0% [mtdblock1]
136 2 root SW 0 0% 0% [mtdblock6]
94 2 root SW 0 0% 0% [kswapd0]
106 2 root SW 0 0% 0% [mtdblock0]
5 2 root SW 0 0% 0% [kworker/u:0]
7 2 root SW 0 0% 0% [kworker/u:1]
126 2 root SW 0 0% 0% [mtdblock4]
760 2 root SW 0 0% 0% [jbd2/sda2-8]
61 2 root SW 0 0% 0% [sync_supers]
438 2 root SW 0 0% 0% [khubd]
19061 2 root SW 0 0% 0% [kworker/0:2]
2 0 root SW 0 0% 0% [kthreadd]
475 2 root SW 0 0% 0% [jbd2/sda1-8]
6 2 root SW< 0 0% 0% [khelper]
476 2 root SW< 0 0% 0% [ext4-dio-unwrit]
65 2 root SW< 0 0% 0% [kblockd]
537 2 root SW< 0 0% 0% [cfg80211]
63 2 root SW 0 0% 0% [bdi-default]
2481 2 root SW 0 0% 0% [flush-8:0]
545 2 root SW< 0 0% 0% [TAPIevents]
447 2 root SW 0 0% 0% [scsi_eh_0]
95 2 root SW 0 0% 0% [fsnotify_mark]
544 2 root SW 0 0% 0% [TAPIkpi_in]
19080 2 root SW 0 0% 0% [kworker/0:1]
19095 2 root SW 0 0% 0% [kworker/0:0]
762 2 root SW< 0 0% 0% [ext4-dio-unwrit]
Me he dado cuenta que la RAM es un recurso MUUUUY preciado en estos trastos cuando empiezas a sodomi... Digooo, a intentar hacerles dar de sí. Me hice un cutrescript (que comparto aquí) para hacer paradas y arranques de servicios rápidos (desde el móvil). Es una cutrez, pero hoygan, que haces ssh desde el móvil y, tras poner la password, arrancas o paras lo que quieres. Y desde el móvil ya controlas el transmission y el MPD.
#!/bin/sh
SERVICES="mpd openvpn transmission uhttp"
ACTIONS="start stop restart "
show_options(){
let i=0;
for aux in $@; do
let i++;
echo $i - $aux;
done
echo
}
get_options(){
echo -ne "Select an option (1-$#): "
read num_opt
if [ $num_opt -lt 1 ] || [ $num_opt -gt $# ] ; then
echo "Invalid option, getting out";
exit ;
fi
let i=1;
for aux in $@; do
if [ $i -eq $num_opt ]; then
result=$aux;
fi;
let i++;
done;
}
get_service(){
echo "Which service you want to manage? "
echo
show_options $SERVICES;
get_options $SERVICES;
name_svc=$result;
}
get_long_service_status(){
top -b -n1 | grep $1 | grep -v grep | awk '{print "PID: "$1 "\nPPID: "$2 "\nUSER: " $3 "\nSTATUS: " $4 "\nVSIZE MEMORY: " $5 " KB - "$6 "\nCPU USAGE: " $7 "\nCMDLINE: "$8;}';
}
get_action(){
echo "Which action do you want to perform?"
echo
show_options $ACTIONS;
get_options $ACTIONS;
name_action=$result;
}
echo "#########################"
echo "# Service management #"
echo "#########################"
echo ""
get_service
echo "Status of service $name_svc";
echo
echo -----------------
get_long_service_status $name_svc;
echo -----------------
echo
get_action
echo -ne "Are you sure you want to $name_action $name_svc? [y/N] "
read confirm
if [ $confirm = y ]; then
echo Executing /etc/init.d/$name_svc $name_action
/etc/init.d/$name_svc $name_action
else
echo Exiting;
fi
exit
- He pasado de usar el software de Dynamic DNS de OpenWRT, lo he hecho con un Curl en una entrada de cron. Son 1,6 MB de RAM a salvar. Parece poca cosa pero como he dicho por ahí arriba... Me daba cosica tener el daemon del cron ocupando memoria para nada.
Y ahora... Vienen las cosas con las que he tenido problemas. Nunca es todo de color de rosa, ya sabéis

- El primero, referente a la potencia de la wireless... Con iwconfig y similares no la consigo subir de 3dBm, y me toca la moral porque, aun viviendo en 30m^2, no tengo cobertura de wireless en el móvil en la esquina opuesta de la casa (con visión directa a la antena del router).
Así que.. me hice una solución casi tan cutre como la BimboUart. Se llama "Antena energética Hacendado", y para hacerla son necesarias una lata de bebida energética hacendado (muy rica cuando se mezcla con whisky), unas tijeras, un poco de cinta aislante para no cortarse y NINGUNA vergüenza:

Alguien sabe si puedo resolver esto de alguna manera que no sea al estilo "brunorro Gotera y Otilio" ?
- El segundo, referente a la dichosa configuración de la VoIP de ya.com, que ya no es ya.com, sino orange, y cuyo password no te da el servicio técnico, sino que tienes que sacarlo descifrando el firmware del router original. Eso es lo de menos, el problema es que no he conseguido configurar el sofia-sip con esto, así que al final he instalado el zoiper (cliente SIP y asterisk) en el móvil para ello. Funciona, pero entonces el problema de la cobertura de la wireless influye en la calidad de la llamada y mucho, hasta el punto que si me alejo a más de 3 metros del router la calidad de la llamada es ****pénica.
- El tercero, fácilmente "workaroundeable", es que dropbear hay momentos en los que haciendo un scp tiene poco de "drop" y mucho de "bear" y se come el 90% de CPU, llegándome a colgar el router si lo tengo haciendo alguna otra cosa "interesante". Además, la velocidad de transmisión rara vez pasaba del MByte/s (MegaBytes/segundo, ojo)
La chapuza ha sido añadir al uhttp un enlace a los directorios de los que quiero bajar ficheros "gordos" (fundamentalmente lo que se acaba de bajar del transmission) y santas pascuas. Iba a unos 2.1 MBytes/s y tragaba menos memoria que un "cat | netcat " de cada fichero (ligeramente más rápido, a unos 2.3 MBytes/s). La solución menos "chapuza" sería decir a transmission que por cada fichero finalizado ejecute un script que haga un enlace a un directorio bajo el uhttpd, pero... Eso lo dejo para otro día

Bueno, pues esto vienen a ser mis andaduras con el ARV7518PW. Debo reconocer que he aprendido un huevo y la mitad del otro de cositas que a lo mejor algún día son útiles, pero que no me lo convalidarán como curso del paro... Y de nuevo, gracias a todos los aquí presentes !