Friday, 29 August 2014

Home multimedia center con raspberry

Hola!
Hoy vuelvo a escribirles para presentar un proyecto que armé utilizando una Raspberry Pi y un par de componentes más.
Como ya les habia comentado un poco en el post de Media Center Casero, tuve la idea de utilizar una Raspberry para eso.
El resultado de hacer esto es el siguiente:


El listado de componentes que estoy usando es el siguiente:

  1. Raspberry Pi Model B+ 
  2. 8GB MicroSD Kingston
  3. WifiDongle Usb
  4. Fuente
  5. Cable HDMI 

A este Kit lo compre via mercadolibre aquí


Por otra parte, ya disponía de lo siguiente:

  1. TV Samsung UN46F6100
  2. HDD 2TB SATA2
  3. HDD Enclosure USB (Una carcasa para conectar el disco SATA por USB)

La conexión fué fácil:

  1. El TV conectado por HDMI a la Raspberry
  2. El HDD conectado por USB a la Raspberry
  3. La Raspberry con Internet via WiFi
  4. SdCard como boot de OpenElec

Instrucciones:

  1. Instalar openelec en su raspberry
  2. Instalar los plugins que consideren necesarios.
  3. Mover /storage a un disco USB
  4. Configurar su router para que puedan entrar desde afuera.
  5. Leer este link donde se explica un poco mas sobre todo esto: http://www.raspberrypi.org/forums/viewtopic.php?t=60382 

Proxima version:

La idea es meterle boblight y un par de leds para hacer un ambilight. El unico problema es que no consigo tiras de leds o pixel led inteligentes en Argentina :( 
El resultado seria algo asi:


Que lindo es el software y hardware libre!

Nota importante: El televisor no soporta el protocolo Anynet+ o CEC por lo que no puedo manejar XBMC desde el control remoto del tele; tengo que utilizar el celular o una computadora :(

Labels: , , , , , , ,

Tuesday, 1 July 2014

Comandos, tips y programas en Linux

Hola! En este post vuelo a mis orígenes, compartiendo algunas cosas del mundo linuxero. En vez de poner el nombre de un comando y que es lo que hace, voy a poner preguntas cotidianas y con que comando pude encontrar la respuesta.
Espero que les sirva!

Mi distro:

Antes que nada, veamos que distro tengo.
Si ejecuto lsb_release -a van a ver lo siguiente:
  $ lsb_release -a
No LSB modules are available.
Distributor ID: LinuxMint
Description: Linux Mint 16 Petra
Release: 16
Codename: petra

Comandos útiles:

¿Como saber que esta haciendo el sistema? ¿Que le pasa a mi maquina?Algunas veces nos pasa que "sentimos" lento el sistema, o tenemos problemas para conectarnos a Wifi, algo no nos funciona, etc, y queremos saber que es lo que pasa por abajo. 
En linux podemos ver los mensajes del kernel mediante el comando dmesg que nos muestra algo parecido a esto:
Salida de dmesg
En ese log vamos a poder ver que esta haciendo el sistema (siempre y cuando las aplicaciones escriban en el log)

¿Como leer logs en tiempo real?

Tambien nos puede pasar que necesitemos ver el log de una aplicacion que no esta relacionada con el kernel, por lo que leemos su log. (La mayoria de los logs deben estar en /var/log) A la hora de debuggear una aplicacion, vamos a necesitar ver que hace en tiempo real, por lo que podemos recurrir al comando tail -f que nos permitirá hacerlo. De esta manera, visualizaremos el contenido del archivo a medida que es escrito.
leyendo un log

¿Que aplicacion esta consumiendo mi ancho de banda?

Eso mismo. Tengo tantas cosas corriendo en mi maquina que quiero saber cual se esta comiendo mi conexion. El comando iftop nos muestra el uso de ancho de banda por procesos.
iftop

¿Que aplicacion esta tonteando usando con mi disco duro?

Idem anterior pero para ver quien esta utilizando el disco duro. Para esto tenemos el comando iotop
iotop

Explorador del sistema de archivo desde command line

Si trabajaste con computadoras en la epoca del Windows 95 y 3.1, seguramente la imagen de mc te es familiar. La interfaz es muy parecida al Norton Comander, pero en Linux es Midnight Commander. Conserva los mismos atajos de teclado que el Norton: F5 para copiar archivos, F6 para moverlos, F8 para borrarlos y F9 para acceder al menu. Ahi podemos conectarnos a un servidor por SSH o FTP. Altamente recomendado.
mc

Editor de texto en consola

Fácil: nano. Mas fácil que usar vi o vim. También esta mcedit que viene con el Midnight Commander
nano
mcedit

¿Como puedo ver el "administrador de tareas" en consola?

Si bien con ps aux podemos ver todos los procesos que esta corriendo el sistema, top permite verlos en tiempo real. Lo mismo con htop pero éste ultimo es mas bonito y muestra los micros.
top

HTOP

¿Quiero conocer en que red estoy?

Para analizar nuestra red tenemos varios comandos. Los que mas utilizo son:
ifconfig para saber que ip tengo asignada
route para conocer mi puerta de enlace
cat /etc/resolv.conf para conocer los dns que tengo configurados
nmap para ver que puertos tiene abiertos el gateway
Conociendo la red

¿Como buscar un archivo? ¿Como buscar un archivo que contenga un texto determinado?

Para ambos casos usamos find
Si queremos buscar un archivo por nombre, la sintaxis es find . -name <nombre>
En el caso de que queremos buscar un archivo que contiene x texto, la sintaxis es: find . -type f | xargs grep -i <texto_a_buscar>
Find

¿Cuantas particiones tengo? ¿Como montarlas?

Como root, ejecutamos el comando fdisk -l. Ahi vamos a ver todas las particiones de nuestro disco.

fdisk

Tools gráficas:

¿Que esta pasando en mi red local?

Etherape permite ver de manera gráfica, que esta pasando en nuestra red.
etherape

¿Que dispositivos tengo en mi red local con UPNP y que puedo hacer con ellos?

Esta un poco mas explicado en el post del hacking al smart tv . Upnp-inspector es una tool escrita en python que permite ver que tenemos en nuestra red y como podemos interactuar con esos dispositivos.

upnp inspector

Pregunta para ustedes... ¿que comando utilizan y en que situaciones?

Labels: , , ,

Monday, 30 June 2014

Bajando muchos subtitulos para peliculas en Linux

Como ya comenté en el post de media center casero , utilizo XBMC para la gestión de mis archivos multimedia.
En cuanto a la parte de subtitulos, XBMC tiene un plugin llamado subtitles, que permite descargarlos desde diferentes fuentes (subdivx, opensubtitles, argenteam, etc) y en diferentes idiomas.
De todas maneras, tenia dos inconvenientes particulares con XBMC:
  1. Los subtitulos que XBMC descarga terminan con el formato .<idioma>.srt, lo que hacia que mi TV no pueda visualizarlo. Los TV Samsung necesitan que los subtitulos tengan el mismo nombre que el archivo de video. Lo único que cambia es la extensión.
  2. No podía descargar los subtitulos de todos los archivos. Mi colección actual es de mas de 1000 películas y con XBMC hacia falta descargar los subtitulos película por película.
Gracias a un poquito de research, encontré una solución para esto.
Periscope es un modulo de python que permite descargar subtitulos de internet. También soporta diferentes fuentes e idiomas y el formato en el cual escribe el subtitulo es compatible con la mayoría de dispositivos (solamente cambia la extensión del archivo).
La sintaxis del comando es muy fácil:
periscope <path> -l idioma
El <pathpuede ser un archivo de video o un directorio. La búsqueda es recursiva.
El idioma es el id del idioma: "es" español "en" ingles "es-ar" español argentina

Ejemplo:
Arrancando el comando


Salida del comando. Se puede ver como va bajando subtitulos y de donde 
Archivos
Espero que les sirva!

Labels: , , ,

Tuesday, 24 June 2014

Media center casero, utilizando upnp/dlna

Soy fanático de la música y el cine, de colgarme viendo varias películas en un dia. Usuario fiel de uTorrent y Transmission
En mi casa tengo un disco duro externo de 2TB conectado a un SmartTV; en el guardo películas, música y otros archivos multimedia.
Uno de los inconvenientes que tenia era que no podía acceder a mis archivos multimedia desde otro de mis dispositivos:  Si bajaba alguna película nueva, tenia que desconectar el disco del televisor, copiar la película, bajar los subtítulos, conectar el disco al televisor y de ahí comenzar la reproducción. Si quería hacer lo mismo desde una computadora o notebook, tenia que repetir todos esos pasos. Un embole.
Por otra parte, acceder a archivos en el disco desde el celular era imposible, hasta que armé mi red 100% compatible con UPNP.

UPNP es un protocolo que permite compartir datos en una red de manera transparente (entre otras cosas) 
La arquitectura de red que armé es así:
En primer lugar, tengo un router Linksys E900 300 MBPS con un firmware personalizado, basado en DDWRT. Este firmware me permite habilitar características avanzadas para mi red (vpn, firewall, etc) No obstante, no es necesario que ustedes lo hagan, ya que la mayoría de los routers soportan el protocolo uPnP.  
Como clientes tengo un SmartTV, celulares Android, la play 3 y la notebook. El software que utilizo varia segun el dispositivo:
  • El Smart TV Samsung y la PS3 utilizan el software de fabrica
  • Para los dispositivos android utilizo BubbleUPNP 
  • Para las computadoras utilizo XBMC que es multiplataforma.
Nota: Tanto Bubble como XBMC permiten compartir la libreria local con otros dispositivos. 

Veamos algunos ejemplos:
1- Smart TV mostrando los dispositivos que tenemos conectados por UPNP
2- Desde la PS3

3- Desde el celular

Lo bueno de tooodo esto es que ahora puedo poner una pelicula que descargue en el hdd externo al televisor utilizando el celular. Tambien puedo pausar, avanzar o retroceder el video, como asi tambien aumentar o bajar el volumen. 
Ademas, habilité el servidor web de Transmission y uTorrent, lo que me permite agregar descargas sin estar al frente de la pc.
Ejemplos aqui:


Espero que les sirva y puedan armar su red asi!
Saludos,

Labels: , , , , ,

Tuesday, 10 June 2014

Nostalgia Nerd

Un día como hoy, y calculo que fué a la misma hora, recibía el desafío de instalar Linux por primera vez.
No tenia ni idea de como comenzar, pero gracias a la oportunidad, disponía de un kit bastante completo. Estábamos arrancando el año 2000 por esa fecha.
Mi primera distribución? Conectiva Linux.


Con ningún dato mío por perder ) me puse a probar la instalación. Los manuales eran muy buenos y los terminaba leyendo como si fueran cuentos. No existía GRUB ni el automount, en su lugar se usaba LiLo y el mount era a manopla.
También comenzaba el boom de los cibers (por lo menos en Salta) y era común la proliferación de computadoras PCChips que a mas de uno le quemó la cabeza (la calidad de los componentes era muy mala)  Recuerdo haber tenido que compilar el kernel para poder hacer andar una placa de red SIS900.
Una de las cosas que me gustaba de Conectiva fue que permitia elegir entre varios entornos de escritorio: icewm, fluxbox, kde y otros.
Después de Conectiva siguieron pasando otras distribuciones: Debian Woody, Suse 7, Mandrake, Ututo y algún que otro Live Cd que me acercaba Gustavo Jimenes[1] en sus visitas por Salta.
Ahí me metí con el popular Knoppix y fue lo que elegí como distribución principal.
¿Por qué elegí como distribución Knoppix y no las otras? Porque no tenia computadora (recién en 2011 me compré una) Knoppix me permitia bootear mi entorno en cualquier maquina y me acostumbré a tener mis archivos en Cloud: Gmail File Extension, se acuerdan?
En fin, el post era para celebrar (?) y recordar el haber arrancando este camino de ida con GNU Linux hace mas de 14 años.
PD: Ahora tengo Linux Mint 16 como distro oficial.
Ya sé, Tux no es GNU

1 Gustavo es el hermano de José que mencione en este otro post. Estudiaba en Tucumán y cada tanto iba a visitar y compartíamos info

Labels: , , ,

Thursday, 10 February 2011

Hackeando Modem Pirelli (Arnet)

Aquí les dejo un video con algunas cositas que se pueden hacer con un módem de arnet, el Pirelli Wifi DRG A125G.
Como podran ver, el router tiene una distro de Linux embebida, por lo cual soporta un par de comandos.
Por lo menos disponemos de iptables y otros para jugar un rato.
Espero que les sirva.




P/D: En la parte que mostré el código fuente, ustedes pueden encontrar la contraseña y el usuario con el cual se conectan a Internet, lo mismo cuando hice el dump de la configuración: dumpcfg

Actualizado 19/Feb/2011
Dejo aquí la documentación y ejemplos de algunos comandos útiles.
Saludos





?
help
logout
reboot

adsl
> adsl
Usage: adsl start [--up] [--mod <a|d|l|t|2|p|e|m>] [--lpair <(i)nner|(o)uter>]
           [--trellis <on|off>] [--snr <snrQ4>] [--bitswap <on|off>] [--sesdrop
<on|off>] [--sra <on|off>]
           [--CoMinMgn <on|off>] [--i24k <on|off>] [--phyReXmt <on|off>]
       adsl stop
       adsl connection [--up] [--down] [--loopback] [--reverb]
           [--medley] [--noretrain] [--L3] [--diagmode] [--L0]
           [--tones]
       adsl configure [--mod <a|d|l|t|2|p|e|m>] [--lpair <(i)nner|(o)uter>]
           [--trellis <on|off>] [--snr <snrQ4>] [--bitswap <on|off>] [--sesdrop
<on|off>] [--sra <on|off>]
           [--CoMinMgn <on|off>] [--i24k <on|off>] [--phyReXmt  <on|off>]
       adsl bert [--start <#seconds>] [--stop] [--show]
       adsl afelb [--time (sec)] [--tones] [--signal <1/2/8>]
       adsl qlnmntr [--time (sec)][--freq (msec)]
       adsl info [--state] [--show] [--stats] [--SNR] [--QLN] [--Hlog] [--Hlin]
[--HlinS] [--Bits] [--linediag] [--reset][--vendor]
           [--cfg]
       adsl --version
       adsl --help

> adsl info --show
adsl: ADSL driver and PHY status
Status: ShowtimeRetrain Reason: 0
Channel: FAST, Upstream rate = 253 Kbps, Downstream rate = 3071 Kbps
Link Power State: L0
Mode:                   ADSL2
Channel:                Fast
Trellis:                U:ON /D:ON
Line Status:            No Defect
Training Status:        Showtime
                Down            Up
SNR (dB):       30.4            33.4
Attn(dB):       13.5            7.2
Pwr(dBm):       8.2             1.4
Max(Kbps):      11040           1281
Rate (Kbps):    3071            253
                        G.dmt framing
K:              96(0)           8
R:              0               0
S:              1               1
D:              1               1
                        ADSL2 framing
MSGc:           59              17
B:              95              7
M:              1               1
T:              1               3
R:              0               0
S:              0.9896          0.9696
L:              776             66
D:              1               1
                        Counters
SF:             28688           28814
SFErr:          0               0
RS:             0               0
RSCorr:         0               0
RSUnCorr:       0               0

HEC:            0               2267
OCD:            0               0
LCD:            0               0
Total Cells:    3347195         2242308208
Data Cells:     64423           2927128192
Drop Cells:     0
Bit Errors:     0               28075

ES:             0               102
SES:            0               71
UAS:            16              180625
AS:             462

INP:            0.00            0.00
PER:            16.08           16.72
delay:          0.24            0.24
OR:             32.33           11.00

Bitswap:        3               1



atm


brctl

> brctl
commands:
        addbr           <bridge>                add bridge
        delbr           <bridge>                delete bridge
        addif           <bridge> <device>       add interface to bridge
        delif           <bridge> <device>       delete interface from bridge
        setageing       <bridge> <time>         set ageing time
        setbridgeprio   <bridge> <prio>         set bridge priority
        setfd           <bridge> <time>         set bridge forward delay
        sethello        <bridge> <time>         set hello time
        setmaxage       <bridge> <time>         set max message age
        setpathcost     <bridge> <port> <cost>  set path cost
        setportprio     <bridge> <port> <prio>  set port priority
        setportsnooping <bridge> <port> <addr>  set port snooping
        clearportsnooping       <bridge> <port> <addr>  clear port snooping
        showportsnooping        <bridge>        show port snooping
        enableportsnooping      <enable>                enable port snooping
        show                                    show a list of bridges
        showmacs        <bridge>                show a list of mac addrs
        showstp         <bridge>                show bridge stp info
        stp             <bridge> <state>        turn stp on/off
> brctl show
bridge name     bridge id               STP enabled     interfaces
br0             8000.021018010002       no              usb0
                                                        eth0
                                                        wl0
                                                        nas_0_0_33


cat
ddns
> ddns
ddns add hostname --username username --password password --interface interface
--service tzo|dyndns
     remove hostname
     show

df
> df
Filesystem           1k-blocks      Used Available Use% Mounted on
/dev/mtdblock0            2752      2752         0 100% /
tmpfs                      320       148       172  46% /var

dumpcfg
echo
ifconfig
kill
arp
> arp show

IP address       HW type     Flags       HW address            Mask     Device
10.0.0.3         0x1         0x2         00:13:02:29:24:8E     *        br0
10.0.0.1         0x1         0x0         00:00:00:00:00:00     *        br0
10.0.0.6         0x1         0x2         00:26:B6:E4:80:39     *        br0
10.0.0.5         0x1         0x2         00:18:E7:76:A6:20     *        br0
10.0.0.4         0x1         0x2         00:23:CD:BB:85:FC     *        br0


defaultgateway
> defaultgateway

Usage: defaultgateway config auto
       defaultgateway config static <[<IP address>] [<interface>]>
       defaultgateway show
       defaultgateway --help
> defaultgateway show

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
200.3.60.21     *               255.255.255.255 UH    0      0        0 ppp_0_0_33_1
10.0.0.0        *               255.255.255.0   U     0      0        0 br0
default         200.3.60.21     0.0.0.0         UG    0      0        0 ppp_0_0_33_1

dhcpserver
> dhcpserver

Usage: dhcpserver config <start IP address> <end IP address> <leased time (hour)
>
       dhcpserver show
       dhcpserver --help
> dhcpserver show

start 10.0.0.3
end 10.0.0.99
interface br0
decline_file /var/udhcpd.decline
option lease 86400
option min_lease 30
option subnet 255.255.255.0
option router 10.0.0.2
option dns 10.0.0.2

dns
> dns

Usage: dns config auto

Usage: dns config static [<primary DNS> [<secondary DNS>]]
       dns show
       dns --help
> dns show

Primary   200.45.191.35
Secondary 200.45.48.233

lan
> lan

Usage: lan config [--ipaddr <primary|secondary> <IP address> <subnet mask>]
                  [--dhcpserver <enable|disable>]
       lan delete --ipaddr <primary|secondary>
       lan show [<primary|secondary>]
       lan --help
> lan show
br0             Link encap:Ethernet  HWaddr 02:10:18:01:00:02
                inet addr:10.0.0.2  Bcast:10.0.0.255  Mask:255.255.255.0
                UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
                RX packets:40838 errors:0 dropped:0 overruns:0 frame:0
                TX packets:67081 errors:0 dropped:0 overruns:0 carrier:0
                collisions:0 txqueuelen:0
                RX bytes:2779748 (2.6 MiB)  TX bytes:93515712 (89.1 MiB)

br0:0           Link encap:Ethernet  HWaddr 02:10:18:01:00:02
                UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

passwd
> passwd

Usage: passwd <admin|support|user> <password>
       passwd --help

ppp
> ppp

Usage: ppp config <port.vpi.vci> [<connection id>] <up|down>
       ppp --help
       connect or disconnect ppp

remoteaccess
> remoteaccess

Usage: remoteaccess <enable|disable> [--service <servicename>]
       remoteaccess show [--service <servicename>]
       remoteaccess --help
> remoteaccess show
remote access for FTP is disabled
remote access for HTTP is disabled
remote access for ICMP is enabled
remote access for SNMP is disabled
remote access for SSH is disabled
remote access for TELNET is disabled
remote access for TFTP is disabled

restoredefault

route
> route

Usage: route add <IP address> <subnet mask> <[<gateway>] [<interface>]>
       route delete <IP address> <subnet mask>
       route show
       route --help
> route show

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
200.3.60.21     *               255.255.255.255 UH    0      0        0 ppp_0_0_33_1
10.0.0.0        *               255.255.255.0   U     0      0        0 br0
default         200.3.60.21     0.0.0.0         UG    0      0        0 ppp_0_0_33_1

save

swversion
> swversion

Usage: swversion show
       swversion --help
> swversion show
1550_090908-3.10L.02.A2pB022e3.d20h
 DCWF_TA_4_0_1

logtrace
> logtrace
command NOT executed
command executed


testled
> testled
nothing done ...

changemac

> changemac
current num of mac: 13
current base mac address: 00:22:33:33:be:82
Enter number of mac address (def:11)  ....
Enter base mac address (def:02:10:18:01:00:02)  ....
NEW num of mac: 11
NEW base mac address: 02:10:18:01:00:02


        Done! ........... reboot


wan
> wan

Usage: wan config <port.vpi.vci> [<connection id>]
       [--protocol <bridge|pppoe|pppoa|mer|ipoa>] [--encap <llc|vcmux>]
       [--vlan <vlan id>] [--state <enable|disable>] [--service <servicename>]
       [--firewall <enable|disable>] [--nat <enable|disable>]
       [--igmp <enable|disable>] [--qos <enable|disable>]
       [--username <username> --password <password>]
       [--pppidletimeout <timeout>] [--pppipextension <disable|enable>]
       [--ipaddr <wanipaddress> <wansubnetmask]
       [--dhcpclient <enable|disable>]
       wan delete <port.vpi.vci> [<connection id>]
       wan show [<port.vpi.vci>]
       wan --help <bridge|pppoe|pppoa|mer|ipoa>
> wan show
VCC     Con.    Catego. Service         Interface       Proto.  IGMP    QoS
State   Status  IP
        ID              Name            Name
                address
0.0.33  1       UBR     Telecom Argentina       ppp_0_0_33_1    PPPoE   Disable
Enable  Enable  PPP Down

ping
ps
pwd

siproxd
siproxd <enable|disable|show>
siproxd --help
> siproxd show
siproxd: SIP proxy is enabled.

sntp
sntp -s server [ -s server2 ] -t "timezone"
     disable
     date
     zones
sntp --help>


sysinfo
> sysinfo
Number of processes: 23
 12:05am  up 5 min,
load average: 1 min:0.00, 5 min:0.05, 15 min:0.02
              total         used         free       shared      buffers
  Mem:        14144         8900         5244            0          476
 Swap:            0            0            0
Total:        14144         8900         5244

tftp
> tftp
BusyBox v1.00 (2008.09.09-13:53+0000) multi-call binary

Usage: tftp [OPTION]... tftp_server_ip

Update firmware image and configuration data from OR backup configuration
data to a tftp server.

Options:
-g      Get file. (Update image/configuration data)
-p      Put file. (backup configuration data)
-f      remote file name.
-t      i for image and c for configuration data.

wlctl

Labels: , , , , , ,