configurar la Raspberry Pi como un Media Server “headless” (con SSH + dlna + FTP + NFS + torrent)

Deja un comentario

Ahora voy a explicar como usar una raspberry pi como un servidor “headless” (sin teclado, mouse o monitor), pequeño pero eficiente (consume realmente poca electricidad), para hacer lo siguiente:

  1. Un media server (usando dlna), esto nos permitirá trasmitir imágenes, audio y vídeo desde la raspberry pi, para verlos en otros dispositivos (como por ejemplo una PS3)
  2. Tener un servidor FTP, así podemos copiar de manera fácil archivos desde/hacia la raspberry pi y usarla como almacenamiento.
  3. Que cumpla la función de NAS, o sea que comparta algunos directorios con otros equipos en la red interna. En este caso vamos a usar NFS), que nos va a permitir ver y usar archivos/directorios que estén almacenados en la raspberry pi, como si estuvieran físicamente en los equipos clientes.
  4. Que funcione como una especie de seedbox, así tener un programa en las raspberry pi que descarge torrent por si mismo y los comparta hasta alcanzar un ratio establecido. Ideal para dejar descargando cosas mientras duermes.
  5. Por ultimo que sea un servidor donde podamos ejecutar nuestros propios script o instalar lo que queramos. Para acceder a el lo haremos por ssh.

Para ello necesitamos un router para tener una red interna y suficientes “clientes” (laptops, PS3, smartphones, etc.) conectados a esa red, como para que valga la pena el esfuerzo.

Para configurar la raspberry necesitamos, de manera permanente:

  • Una raspberry pi obiamente (yo voy a usar una modelo B que ya tenia)
  • Una tarjeta SD (o microSD + SD adapter) de 4 o más GB (para el o los sistemas instalados en la raspberry)
  • Un cable Ethernet para conectarla a la red interna (yo desempolve uno que tenia guardado hace años en la caja del router)
  • Uno (o mas) disco externo USB (yo voy a usar uno externo de 2.5 de 1TB)
  • Una fuente de poder o HUB USB alimentado (yo voy a usar un HUB USB dlink DUB-H7 que ya tenia, este va a alimentar a la raspberry y al disco USB)

Ademas de manera temporal neceitamos un lector de tarjetas SD (yo use el de mi notebook) para copiar los archivos a la SD, un monitor o pantalla de TV (con el respectivo cable) y un teclado USB, estos solo lo ocupamos solo para la instalación inicial.

Nota: en este post hay varios comandos que hay que utilizar como root, obiamente pueden usar sudo o ingresar como root para hacer lo mismo si quieren.

Más

Cambiar la contraseña y nombre de usuario por defecto y del root en raspbian

1 comentario

Hace tiempo que tengo una raspberry pi (modelo B) asi que voy a publicar algo de utilidad para los que usan raspbian (la version de debian para la raspberry pi) es activar la cuenta root y cambiar el nombre/contraseña de la cuenta por defecto.

1) cambiar la contraseña del root

Para el root nos logeamos con el usuario por defecto (Usuario=pi Contraseña=raspberry) y usamos sudo su

pi@raspberry ~ $ sudo su

Ahora simplemente cambiamos la contraseña a la que queramos con passwd

root@raspberry:/home/pi# passwd

Alli nos preguntara la nueva contraseña para el root

nota: Tambien se podia hacer todo esto en una sola linea haciendo $sudo passwd root

2) Cambiar el nombre y contraseña del usuario por defecto (pi)

En este caso nos desloqueamos del usuario pi (con exit) y nos logeamos como root y usamos el comando usermod -l para cambiar el nombre del usuario y luego el usermod -m -d para cambiar el home de este usuario (la -d es para establecer el nuevo home y la -m es para mover el viejo al nuevo home), o sea hacemos esto:

# usermod -l nuevonombre pi
# usermod -m -d /home/nuevonombre nuevonombre
# groupmod -n nuevonombre pi

Obiamente tienes que reemplazar el “nuevonombre” por el nombre de usuario que quieres. La ultima linea es opcional y lo que hace se renombrar el grupo “pi” al nuevo nombre

Luego deslogea y prueba si los cambios se aplicaron

Si no puedes usar sudo es porque no se actualizo el sudoers, en ese caso tienes que editar (como root) la ultima lina de /etc/sudoers dejandola asi:
nuevonombre ALL=(ALL) NOPASSWD: ALL

3) desactivar la cuenta root (opcional)

En mi caso prefiero mantener activada la cuenta root ya que estoy acostumbrado a trabajar de esta manera en gnu/linux y tengo larga experiencia, pero hay personas que prefieren hacer todo con sudo y en ese caso prefieren desactivar el logueo del root (para disminuir el riesgo de cargarse el sistema), lo cual se puede hacer con sudo passwd -l root:

$ sudo passwd -l root

Nota: tecnicamente esto solo bloquea la contraseña, no desactiva la cuenta root :).

xmms ha muerto; larga vida a xmms2

2 comentarios

Durante mucho tiempo utilice a xmms como mi reproductor preferido, ya que se asemejaba a WinAmp aunque mas ligero, sencillo, reproducía prácticamente todo archivo de audio y tenia plugins para hacer casi de todo. Pero lo malo es que estaba bastante viejo (usaba gtk1 ) y últimamente estaba desapareciendo de muchas distros (debian incluida), así que decidí probar xmms2 (ante que alguien mencione amarok, intento evitar las librerías qt en mi sistema).
xmms2_logo
Lo bueno es que casi no consume recursos del sistema, aunque la primera vez cuesta entender como funciona, ya que sigue un modelo de cliente/servidor, o sea el XMMS2 funciona similar a un daemon sin interfaz gráfica y uno se conecta a él a travez de un cliente. En un principio esto parece raro, pero tiene su gracia, ya que permite hacer cosas como que si estas fuera de casa desde otro equipo puedas escuchar la musica que hay en tu pc.

Siguiendo con el tema, uno puede controlar directamente xmms2 desde una terminal, o usar algún cliente que sirva de frontend (como gxmms2, esperanza, o cualquier otro de la lista), en lo personal aun no encuentro ninguno que me convenza al 100% pero solo es cuestión de tiempo (mientras voy a seguir controlándolo desde una terminal, ya que no me importa demasiado que quede funcionando en el fondo)

Otra cosa bastante agradable es que al igual que su antecesor tiene muchos plugins, como uno para karaoke aunque entre ellos destaca el xmms2-scrobbler que envía la lista temas escuchados a lastfm (para configurarlo miren por aquí)

En definitiva me gusto bastante (va a ser el remplazo de mi antiguo reproductor), lo único malo es que aun no encuentro un frontend que me convenza completamente, aunque eso se puede arreglar. Lo destacable es que funciona en varios sistemas (incluso el de las ventanas)

crear una manpage

9 comentarios

Este pequeño post es para explicar una manera rápida y fácil para escribir paginas de manual (mas conocidas como manpage).

Para ello necesitamos:

Que en debian se pueden instalar fácilmente haciendo:

aptitude install asciidoc xmlto

Ahora abrimos un editor de texto cualquiera y escribimos la manpage, por ejemplo voy escribir esta pagina inventada (la voy a guardar con el nombre ejemplo.txt):

EJEMPLO(1)
=========
John Doe <johndoe@loquesea.com>

NAME
----
ejemplo - Un ejemplo de manpage

SYNOPSIS
--------
*ejemplo* ['OPCION']

DESCRIPCION
-----------
Este es un ejemplo de como escribir una manpage usando asciidoc,
por lo tanto este texto no tiene mucho sentido y solo sirve de
ejemplo.

BUGS
----
Si descubre bugs, intente avisarlos

AUTOR
-----
Escrito por John Doe, <johndoe@loquesea.com>


REFERENCIAS
-----------
Asciidoc: http://www.methods.co.nz/asciidoc/

xmlto: http://cyberelk.net/tim/xmlto/

COPYING
-------
Normalmente se colocar en este lugar una nota sobre la licencia
del programa, pero como es un ejemplo lo dejo a su inmaginacion

Como ven se trata de un simple texto plano, sin ninguna gran complicación, ahora la vamos a transformar a un xml (formato DocBook) para ello hacemos:

asciidoc -b docbook -d manpage ejemplo.txt

Con eso generamos el clásico xml (DocBook) que se usa para escribir manpages.

Finalmente creamos el archivo en formato manpage a partir del xml haciendo:

xmlto man ejemplo.xml

y listo tenemos nuestra manpage, podemos visualizarla haciendo

man -l ejemplo.1

Eso es todo, así de fácil.

Si quieren ver verdaderas manpages creadas con asciidoc pueden revisar la manpage del mismo asciidoc o la de fluxbox

Nota: Si quisiéramos tener la pagina creada en nuestro como parte del sistema como predeterminado, simplemente tendremos que moverla a la ubicación en donde están alojados todos los manpages disponibles, en mi sistema (que es una debian) los manuales/manpages están ubicados en /usr/share/man

Casi se me olvidaba, si alguien quiere usar xsltproc en vez de xmlto para generar el manpage, se hace de la siguiente manera

xsltproc --nonet /usr/share/xml/docbook/stylesheet/nwalsh/manpages/docbook.xsl ejemplo.xml

Broadcom con el modulo b43

6 comentarios

Hace un par de días (el 14 de febrero para ser mas exactos) apareció la nueva versión de Debian y como ya actualice mi sistema (en realidad lo volví a instalar desde cero), voy a explicar como hacer funcionar la tarjeta wireless Broadcom que tiene mi laptop usando el modulo del kernel b43 en vez del ndiswrapper que había usado anteriormente, si se preguntan el porque del cambio, es simplemente porque se hace más estables las conexiones inalámbricas aparte de poder hacer algunas cosas que no permite el ndiswrapper.

Primero hay que saber cual tarjeta es la que tenemos exactamente, Para saber el modelo de la tarjeta hacemos un:
$ lspci | grep Network
Y nos responde:
03:00.0 Network controller: Broadcom Corporation BCM4311 802.11b/g WLAN (rev 02)

Y por las dudas un:
$ lspci -n | grep 43
También nos dice:
03:00.0 14e4:4311 (rev 02)

Obviamente se trata de la Broadcom 4311 (rev2), si revisamos la documentación, este modelo esta soportado. Antes había que parchar el kernel con este patch, pero esto ya no es necesario ya que el kernel que tiene Debian Lenny tiene el patch incluido

Normalmente el kernel detecta la placa wireless y carga el módulo b43, pero en caso de que por alguna razón no lo cargue lo podemos hacer con

# modprobe b43

Ahora que sabemos el modelo, instalamos la aplicación que extrae el firmware de la tarjeta (hay que activar el contrib en los repositorios) y cuando nos pregunte si queremos descargar el firmware, le decimos que si.

aptitude install b43-fwcutter

Para evitar problema con los módulos antiguos hay que dejar en el blacklist el modulo ndiswrapper y bcm43xx (que es la antigua versión del b43) en caso que existan en el sistema (en una instalación limpia no deberían estar). Para ello al final del archivo /etc/modprobe.d/blacklist debería añadirse estas lineas:

blacklist bcm43xx
blacklist ndiswrapper

NOTA: si por alguna razón no se carga el módulo b43 en el inicio del sistema podemos ejecutar en consola
# echo "b43" >> /etc/modules

Ahora solo tenemos que reiniciar y la red debería estar funcionando. para comprobar se puede hacer # iwconfig wlan0 (si es necesario sustituye wlan0 por el que sea necesario) y debería mostrar la información de la conexión

# iwconfig wlan0
wlan0 IEEE 802.11 ESSID:"****Censurado****"
Mode:Managed Frequency:2.427 GHz Access Point: :****Censurado****
Bit Rate=54 Mb/s Tx-Power=20 dBm
Retry min limit:7 RTS thr: off Fragment thr=2352 B
Encryption key :****Censurado****
Link Quality=86/100 Signal level=-45 dBm Noise level=-73 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0

activar el escalado de frecuencia de cpu

2 comentarios

Ahora voy a escribir un mini tutorial de como activar el escalado de frecuencia de CPU, en otras palabras que se ajuste la frecuencia de la CPU segun la carga que tenga el sistema. Al disminuir la velocidad de la CPU (y por consecuencia el voltaje que usa) se tienen dos ventajas: Por un lado al funcionar parte del tiempo bajo máxima capacidad del procesador el sistema no se calienta como si estuviera corriendo a toda velocidad durante todo el tiempo y la otra ventaja es que se consume menos energía ya que no se esta siempre al máximo (bastante importante si usamos bateria). Claro que al disminuir la velocidad del procesador se pierde un poco de rendimiento (aunque no siempre estamos usando toda la capacidad, así que es conveniente hacerlo cuando el sistema no esta tan cargado).

Como es costumbre lo probé en una debian (si la de mi laptop, que tiene etch) 😉 así que a continuación el mini-tutorial.

Más

Compilando paquetes con apt-get

1 comentario

Necesitaba transformar unas imágenes .img .ccd (archivos de CloneCD) a una .iso, para ello se utiliza el programa ccd2iso, el problema es que solo estaba para debian testing y sid. Así que aprovechando que voy a tener que compilarlo para etch, les voy a explicar una forma muy sencilla de compilar usando apt y los repositorios de debian (y aprovechando que estos ya están debianizados), usando de ejemplo el ccd2iso

Ates de comenzar es bueno comprobar que tengamos algunos paquetes que normalmente se usan al compilar (build-essential, fakeroot) y luego hacemos lo siguiente:

1. Abrimos un terminal o consola y creamos un directorio de trabajo dentro de tu home (para que no tengas los archivos que se irán formando desordenados), en este ejemplo el directorio se llamara “lab”:

daniel@skynet:$ mkdir lab

2. ingresamos al directorio con la siguiente orden:

daniel@skynet:$ cd lab

3. Luego ingresando como root (usado su en debian, o anteponiendo sudo las ordenes que corresponden en ubuntu, o sea las que tienen # ) editamos el sources.list, para ello:

# nano /etc/apt/sources.list

Agregamos al final del fichero sources.list una linea que apunte al código fuente (sources) del paquete (en este caso agregare la de debian testing, aunque también sirve la de sid) :

deb-src http://ftp.cl.debian.org/debian/ testing main non-free contrib

Y luego guardamos Ctrl+O y salimos del editor Ctrl+X

4. Actualizamos la lista de paquetes con:

# apt-get update

5. Instalamos un par de paquetes muy útiles para compilar:

# apt-get install build-essential fakeroot

Nota: build-essential son una serie de herramientas que se usan al compilar y fakeroot permite emular al usuario administrador, ya que no es recomendable compilar como root porque en caso de algún error puedes afectar al sistema

6. Luego le indicamos a apt-get que instale los demás paquetes que se van a necesitar para compilar el ccd2iso:

# apt-get build-dep ccd2iso

7. Nos desloguemos de la cuenta root (o dejan de usar sudo en ubuntu) y le indicamos a apt-get que descargue las fuentes y luego las compile con:

daniel@skynet:~/lab$ fakeroot apt-get -b source ccd2iso

Listo, ahora dentro del directorio lab que creaste en tu home hay una serie de archivos, entre ellos el paquete .deb creado, el que puedes instalar usando gdebi o en un terminal haciendo # dpkg -i nombre_paquete.deb

eso es todo 🙂

Older Entries