Archivo

Archivo para la categoría ‘Raspberry Pi’

Instalar modulo RTC en el Raspberry Pi

sábado, 10 de enero de 2015 2 comentarios

Un Raspberry Pi no cuenta con la capacidad de mantener la fecha y hora cuando está apagado. Para suplir esto al iniciar el Sistema Operativo obtiene vía Internet (por NTP) la fecha y hora, pero si no hay conexión a Internet se debe introducir estos datos manualmente.

Un computador común puede mantener la hora ya que cuenta con un módulo RTC que hace esta función, pero el Raspberry no cuenta con este módulo, por eso no puede mantener la hora.

Sin embargo este módulo se puede instalar aparte por los pines GPIO que trae el raspberry, esto es útil para cuando el raspberry no tenga Internet o sea un modelo sin red integrada como el A.

El módulo que compré es como el de la imagen en DealExtreme por US$ 2.99, link: http://www.dx.com/p/ds3231-raspberry-pi-rtc-board-real-time-clock-module-for-arduino-black-277258#.VLFjZNW-97Y

image

Su instalación es muy sencilla, además no sobresale de la placa del raspberry por lo que no afecta a la carcasa del raspberry.

Imagen del raspberry sin el módulo

RPI-SinModulo

Primero hay que apagar y desconectar el raspbery, luego el módulo debe colocarse en los conectores GPIO del raspberry como muestra la siguiente imagen

RPI-ConModulo

Aquí el raspberry con el módulo instalado y la carcasa

RPI-ConCase

Una vez que se instaló el módulo se enciende el raspberry y se debe configurar el Sistema Operativo para que la utilice, para ello se debe realizar lo siguiente:

Primero se debe editar el archivo /etc/modprobe.d/raspi-blacklist.conf y comentar la línea “blacklist i2c-bcm2708” dejándola así “#blacklist i2c-bcm2708”. Una vez habilitado el módulo se puede reiniciar o también cargarlo inmediatamente con “modprobe i2c-bcm2908”.

Luego se debe notificar al SO del nuevo módulo con el comando

echo ds1307 0x68 > /sys/class/i2c-adapter/i2c-1/new_device

Ahora se puede probar si funciona el módulo corriendo “hwclock”

image

En mi caso aparece la hora correcta, pero en tu caso puede que salga una fecha y hora incorrecta debido a que aún no se ha establecido en el módulo, para ello se debe tener la fecha y hora correcta en el sistema y luego actualizar el módulo ejecutando “hwclock –w”

Finalmente para que al iniciar el sistema active el módulo y actualice la fecha/hora desde éste se debe editar el archivo /etc/rc.local y antes de donde dice “exit 0” agregar

echo ds1307 0x68 > /sys/class/i2c-adapter/i2c-1/new_device
hwclock –s

image

Categories: Raspberry Pi Tags:

Instalar rtorrent + rutorrent en Debian

viernes, 8 de agosto de 2014 Sin comentarios

Rtorrent es un cliente bittorrent por terminal disponible en los repositorios de varias distribuciones de linux, mientras que rutorrent es una aplicación web que se conecta a rtorrent para que se puedan manejar vía navegador los torrents.

image

La versión de los repositorios no cuenta con soporte para ser controlado remotamente, por lo que es necesario descargar el código fuente de rtorrent, libtorrent y xmlrpc-c para compilarlos manualmente y luego instalarlos.

Antes de comenzar debes instalar los programas requeridos para compilar

apt-get install gcc pkg-config libssl-dev g++ make libncurses5-dev libsigc++-2.0-dev libcurl4-openssl-dev subversion screen nano

Primero debes compilar XMLRPC-C

svn co http://svn.code.sf.net/p/xmlrpc-c/code/advanced xmlrpc-c
cd xmlrpc-c
./configure
make
make install

Luego libtorrent

wget http://libtorrent.rakshasa.no/downloads/libtorrent-0.13.3.tar.gz
tar zxvf libtorrent-0.13.3.tar.gz
cd libtorrent-0.13.3
./configure
make
make install

Posteriormente rtorrent, el que se instalará con soporte de xmlrpc-c compilado anteriormente

wget http://libtorrent.rakshasa.no/downloads/rtorrent-0.9.3.tar.gz
tar zxvf rtorrent-0.9.3.tar.gz
cd rtorrent-0.9.3
./configure –with-xmlrpc-c
make
make install
ldconfig

Ahora se debe configurar rtorrent, crearemos un usuario y las carpetas requeridas

useradd torrent
mkdir –p /home/torrent/rtorrent/{.session,download}
cp rtorrent-0.9.3/doc/rtorrent.rc /home/torrent/.rtorrent.rc
chown –R torrent:torrent /home/torrent/rtorrent

Luego debes editar la configuración

nano /home/torrent/.rtorrent.rc

Y cambiar

directory = /home/torrent/rtorrent/download
session = /home/torrent/rtorrent/.session
scgi_port = localhost:5000

Como servidor web usaré nginx en lugar de apache, por ocupar menos recursos, lo que es más apropiado para el Raspberry PI.

apt-get install nginx php5-fpm apache2-utils

(apache2-utils es para el comando htpasswd mencionado más adelante, no incluye el servidor web)

mkdir /var/www
cd
wget http://dl.bintray.com/novik65/generic/rutorrent-3.6.tar.gz
wget http://dl.bintray.com/novik65/generic/plugins-3.6.tar.gz
tar xvf rutorrent-3.6.tar.gz -C /var/www
tar xvf plugins-3.6.tar.gz -C /var/www/rutorrent
chown www-data:www-data -R /var/www/rutorrent
tar xvf rutorrent-3.6.tar.gz -C /var/www
tar xvf plugins-3.6.tar.gz -C /var/www/rutorrent
htpasswd -c /var/www/rutorrent/.htpasswd (nombreusuario)
chown www-data:www-data -R /var/www
nano /etc/nginx/sites-available/default

Donde dice nombreusuario reemplaza por el nombre de usuario deseado para ingresar a rutorrent, luego introduce dos veces una contraseña.

En el archivo default edita lo siguiente

root /var/www;
index index.php index.html index.htm;

Descomenta las líneas para activar PHP

location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        # NOTE: You should have «cgi.fix_pathinfo = 0;» in php.ini

        # With php5-cgi alone:
#       fastcgi_pass 127.0.0.1:9000;
#       # With php5-fpm:
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
}

Luego de estas líneas agregar

location /RPC2 {
        include scgi_params;
        scgi_pass 127.0.0.1:5000;
}

location /rutorrent {
        auth_basic «Restricted»;
        auth_basic_user_file /var/www/rutorrent/.htpasswd;
}

Si deseas activar HTTPS repite los pasos anteriores en la sección “server { listen 443; …”

Reinicia los servicios

service nginx restart
service php5-fpm restart

Finalmente debes ajustar unos parámetros de la configuración de rutorrent

nano /var/www/rutorrent/conf/config.php

Edita las siguientes líneas para especificar las rutas de curl y stat

«curl» ==> ‘/usr/bin/curl’, // Something like /usr/bin/curl. If empty, will be found in PATH.
«stat» ==> ‘/usr/bin/stat’, // Something like /usr/bin/stat. If empty, will be found in PATH.

Si ingresas a rutorrent aparecerá que no se pudo conectar a rtorrent, porque aún no se ha iniciado. Para iniciarlo inicia sesión como torrent, corre el comando screen y luego rtorrent. El comando screen permitirá cerrar la terminal y dejar rtorrent ejecutándose en segundo plano.

Fuentes:

rtorrent + rutorrent con nginx: http://vassie.me/rtorrent-and-rutorrent-on-ubuntu-server-with-nginx/

rtorrent + rutorrent con apache: http://www.adminsehow.com/2013/11/installing-rtorrentrutorrent-on-debian-7-wheezy/

Permission Denied al montar cifs en Linux Raspberry PI

viernes, 8 de agosto de 2014 1 comentario

Al montar una unidad cifs en el Raspberry PI me salía el error “mount error(13): Permission denied”, siendo que la carpeta compartida no requería autenticación y al ingresar desde un computador lo hacía directamente sin solicitar identificación. La unidad compartida era el puerto USB de un router Dlink DIR-626L (alias rollo de papel confort).

root@mastodon:~# mount.cifs //IP/usb_A1 /mnt -o guest
mount error(13): Permission denied

Al consultar el registro dmesg aparecía esto referente al error de montaje:

[47912.021716] CIFS VFS: cifs_mount failed w/return code = –13

Luego de una búsqueda por internet hallé que era un bug en el proceso de autenticación, el que se resuelve especificando que realice la autenticación por NTLM con el siguiente comando:

mount.cifs //IP/usb_A1 /mnt -o guest,sec=ntlm

Con esto el montaje se realizó correctamente, se puede comprobar al consultar con el comando mount

root@mastodon:~# mount
/dev/root on / type ext4 (rw,noatime,data=ordered)
(…)
/dev/mmcblk0p1 on /boot type vfat (rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,errors=remount-ro)
//IP/usb_A1 on /mnt type cifs (rw,relatime,vers=1.0,sec=ntlm,cache=strict,uid=0,noforceuid,gid=0,noforcegid,addr=IP,unix,posixpaths,…)

Para que se monte automáticamente al inicio del sistema agregué esta línea al archivo /etc/fstab

//IP/usb_A1   /mnt    cifs    guest,sec=ntlm,file_mode=0777,dir_mode=0777     0 0

Además del parámetro sec=ntlm agregué los parámetros file_mode y dir_mode para que todos los archivos y carpetas tengan permisos 777.

Agregar soporte MPEG2 al Raspberry Pi

sábado, 28 de diciembre de 2013 3 comentarios

El Raspberry Pi cuenta con aceleración por hardware para varios codecs de video, como H264, VP6, VP8, entre otros. Gracias a esto se puede reproducir videos HD 1080p de forma fluida a pesar de que sólo cuenta con una CPU de 700mhz y 512 MB de RAM.

Por defecto el Raspberry cuenta con el soporte para los codecs MPEG2 y VC1, pero están deshabilitados por defecto ya que deben adquirirse por separado. Esto para disminuir el costo del Raspberry ya que sólo sirven si se va a utilizar para reproducir video.

¿Para que sirve el códec MPEG2?

Principalmente si se van a reproducir DVD’s de video (o los archivos .vob extraídos de ellos) y algunos videos descargados de Internet. Sin el códec al tratar de reproducir un DVD o un archivo codificado con este códec tratará de reproducirse por software en lugar de hardware, que por las características que tiene del Raspberry no será posible, lo que en  XBMC hará que sólo se escuche el audio sin video.

image

¿Como adquirir el códec?

Primero debes obtener el número de serie de la CPU, el código de activación está asocuado a este número.

Para obtenerlo debes entrar por SSH o terminal al Raspberry y ejecutar el comando “cat /proc/cpuinfo”

image

La última línea “Serial: 000000008b6a6de4” contiene la serial de la CPU.

Posteriormente debes visitar http://www.raspberrypi.com/mpeg-2-license-key/, ahí debes ingresar el serial completo obtenido en el paso anterior incluyendo los ceros y poner “Add to cart”, luego debes completar el pago con Paypal.

Una vez confirmado recibirás inmediatamente un email de Paypal y otro del sitio, ambos indicando que el pago fue confirmado y un link de descarga a un pdf con instrucciones de cómo ingresar la licencia cuando la recibas.

Luego de unas horas (en mi caso fue despues de 3 horas aprox) recibí otro correo con la licencia

image

Ahora para ingresarla en la terminal o SSH debes poner “nano /boot/config.txt” y pega la línea “decode_MPG2=0xabcdef01”, luego guardar con CTRL+O y salir con CTRL+X.

image

Luego debes reiniciar poniendo “reboot”.

Una vez reiniciado para verificar la activación del códec puedes reproducir un DVD o un video o poner el comando “vcgencmd codec_enabled MPG2” que debe decir “enabled”

image

Para verificar el estado de todos los códecs puede ejecutar este comando:

for codec in VP8 VP6 H264 MPG2 WVC1 MPG4 MJPG WMV9 ; do echo -e «$codec:\t$(vcgencmd codec_enabled $codec)» ; done

image

Categories: Raspberry Pi Tags: ,