Mostrando entradas con la etiqueta Raspberry Pi. Mostrar todas las entradas
Mostrando entradas con la etiqueta Raspberry Pi. Mostrar todas las entradas

17 de febrero de 2013

XBMC advancedsettings.xml para RaspberryPi

Partiendo del advancedsettings.xml de Raspbmc y alguna modificacion del plugin de pelisalacarta ire creando el mio propio.

# nano /usr/share/xbmc/system/advancedsettings.xml

<advancedsettings>
    <cputempcommand>/opt/vc/bin/vcgencmd measure_temp | sed -e 's/temp=\([0-9]*\).*/\1 C/'< /cputempcommand>
  <gputempcommand>/opt/vc/bin/vcgencmd measure_temp | sed -e 's/temp=\([0-9]*\).*/\1 C/'< /gputempcommand>
  <video>
    <defaultplayer>omxplayer</defaultplayer>
    <defaultdvdplayer>omxplayer</defaultdvdplayer>
  </video>
  <audio>
    <defaultplayer>omxplayer</defaultplayer>
    <streamsilence>false</streamsilence>
  </audio>
  <network>
   <autodetectpingtime>30</autodetectpingtime>
   <curlclienttimeout>60</curlclienttimeout>
   <curllowspeedtime>60</curllowspeedtime>
   <curlretries>2</curlretries>
   <disableipv6>true</disableipv6>
   <cachemembuffersize>0</cachemembuffersize> 
  </network>
  <imageres>540</imageres>
  <fanartres>720</fanartres>
</advancedsettings>

Samba para una red local casera

Para montarme mi pequeña red local e interactuar entre la RaspberryPi y los windows de casa he configurado un pequeño servicio samba que comparte y ve archivos sin necesidad de usuario/contraseña.

Lo primero instalar samba
# pacman -S samba

Ahora vamos a configurarlo
# nano /etc/samba/smb.conf
[global]
   workgroup = GRUPO_DE_TRABAJO
   server string = NOMBRE_EN_RED_LOCAL
   netbios name = NOMBRE_EN_RED_LOCAL

   security = share
   usershare allow guests = yes

   load printers = no
   log file = /var/log/samba/%m.log
   max log size = 50
   dns proxy = no

   socket options = SO_RCVBUF=65536 SO_SNDBUF=65536 TCP_NODELAY IPTOS_LOWDELAY

   unix extensions = no
   wide links = yes

[homes]
   comment = Home Directories
   browseable = yes
   writable = yes

[RaspberryPi]
   comment = RaspberryPi
   path = /RUTA/AL/DIRECTORIO
   public = yes
   guest ok = yes
   writable = yes
   read only = no
   browsable = yes

Para probar el archivo de configuracion

# testparm -s

Si nos muestra el mensaje "rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)" podemos incrementar ese valor con

# ulimit -n 16384

Con esto ya tendríamos listo nuestro servidor samba , ahora solo te falta pegarte con el windows jeje












2 de febrero de 2013

Liberar memoria en RaspberryPi

Para liberar memoria podemos ejecutar el siguiente comando:

# sync ; echo 3 > /proc/sys/vm/drop_caches

En mi caso he incluido la instruccion en un alias

# nano /etc/bash.bashrc 
alias memoria="free -h ; sudo sync ; echo 3 > /proc/sys/vm/drop_caches ; free -h"

y en el cron para que se ejecute cada hora

# nano /etc/cron.hourly/memoria
#!/bin/bash
sync 
echo 3 > /proc/sys/vm/drop_caches
# chmod +x /etc/cron.hourly/memoria







Configuracion basica SSH con acceso desde Internet

Dos cosas muy basicas que deberiamos hacer si abrimos acceso SSH para Internet son:
  • Cambiar el puerto .
  • No permitir el login de root.
Para cambiar estas dos cosillas basta con :

# nano /etc/ssh/sshd_config
Port 38
PermitRootLogin no

9 de octubre de 2012

Temperatura , voltaje, frecuencia CPU y modos de video en RaspberryPi

Comandos para averiguar temperatura, voltaje, frecuencia de CPU  y modos de video en RaspberryPi
  • Temperatura
 # /opt/vc/bin/vcgencmd measure_temp
  • Voltaje
 # /opt/vc/bin/vcgencmd measure_volts
  • Frecuencia CPU
 #  /opt/vc/bin/vcgencmd measure_clock arm
  • Modos de video
 # /opt/vc/bin/tvservice
Espero que os sea de utilidad ;)

Para mi lo mas util ha sido incluirme unos pequeños alias para poder ver el resultado en cada momento sin recordar esos nombrecitos:

# nano /etc/bash.bashrc
alias temperatura="/opt/vc/bin/vcgencmd measure_temp"
alias voltaje="/opt/vc/bin/vcgencmd measure_volts"
alias frecuencia="/opt/vc/bin/vcgencmd measure_clock arm"
alias tvservice="/opt/vc/bin/tvservice"



27 de septiembre de 2012

Lighttpd en Raspberry Pi

Una de las posibles utilidades de la RaspberryPi es tener servidor web casero.

La instalación es sencilla :

# pacman -S lighttpd (Servidor web)

La configuración tambien :

# nano /etc/lighttpd/lighttpd.conf
server.port             = 80
server.username         = "http"
server.groupname        = "http"
server.document-root    = "/RUTA/AL/INDEX"
server.errorlog         = "/var/log/lighttpd/error.log"
dir-listing.activate    = "enable"
index-file.names        = ( "index.html")
mimetype.assign             = (
  ".pdf"          =>      "application/pdf",
  ".sig"          =>      "application/pgp-signature",
  ".spl"          =>      "application/futuresplash",
  ".class"        =>      "application/octet-stream",
  ".ps"           =>      "application/postscript",
  ".torrent"      =>      "application/x-bittorrent",
  ".dvi"          =>      "application/x-dvi",
  ".gz"           =>      "application/x-gzip",
  ".pac"          =>      "application/x-ns-proxy-autoconfig",
  ".swf"          =>      "application/x-shockwave-flash",
  ".tar.gz"       =>      "application/x-tgz",
  ".tgz"          =>      "application/x-tgz",
  ".tar"          =>      "application/x-tar",
  ".zip"          =>      "application/zip",
  ".mp3"          =>      "audio/mpeg",
  ".m3u"          =>      "audio/x-mpegurl",
  ".wma"          =>      "audio/x-ms-wma",
  ".wax"          =>      "audio/x-ms-wax",
  ".ogg"          =>      "application/ogg",
  ".wav"          =>      "audio/x-wav",
  ".svg"          =>      "image/svg+xml",
  ".gif"          =>      "image/gif",
  ".jpg"          =>      "image/jpeg",
  ".jpeg"         =>      "image/jpeg",
  ".png"          =>      "image/png",
  ".xbm"          =>      "image/x-xbitmap",
  ".xpm"          =>      "image/x-xpixmap",
  ".xwd"          =>      "image/x-xwindowdump",
  ".css"          =>      "text/css",
  ".html"         =>      "text/html",
  ".htm"          =>      "text/html",
  ".js"           =>      "text/javascript",
  ".asc"          =>      "text/plain",
  ".c"            =>      "text/plain",
  ".cpp"          =>      "text/plain",
  ".log"          =>      "text/plain",
  ".conf"         =>      "text/plain",
  ".text"         =>      "text/plain",
  ".txt"          =>      "text/plain",
  ".spec"         =>      "text/plain",
  ".dtd"          =>      "text/xml",
  ".xml"          =>      "text/xml",
  ".mpeg"         =>      "video/mpeg",
  ".mpg"          =>      "video/mpeg",
  ".mov"          =>      "video/quicktime",
  ".qt"           =>      "video/quicktime",
  ".avi"          =>      "video/x-msvideo",
  ".asf"          =>      "video/x-ms-asf",
  ".asx"          =>      "video/x-ms-asf",
  ".wmv"          =>      "video/x-ms-wmv",
  ".bz2"          =>      "application/x-bzip",
  ".tbz"          =>      "application/x-bzip-compressed-tar",
  ".tar.bz2"      =>      "application/x-bzip-compressed-tar",
  ".odt"          =>      "application/vnd.oasis.opendocument.text",
  ".ods"          =>      "application/vnd.oasis.opendocument.spreadsheet",
  ".odp"          =>      "application/vnd.oasis.opendocument.presentation",
  ".odg"          =>      "application/vnd.oasis.opendocument.graphics",
  ".odc"          =>      "application/vnd.oasis.opendocument.chart",
  ".odf"          =>      "application/vnd.oasis.opendocument.formula",
  ".odi"          =>      "application/vnd.oasis.opendocument.image",
  ".odm"          =>      "application/vnd.oasis.opendocument.text-master",
  ".ott"          =>      "application/vnd.oasis.opendocument.text-template",
  ".ots"          =>      "application/vnd.oasis.opendocument.spreadsheet-template",
  ".otp"          =>      "application/vnd.oasis.opendocument.presentation-template",
  ".otg"          =>      "application/vnd.oasis.opendocument.graphics-template",
  ".otc"          =>      "application/vnd.oasis.opendocument.chart-template",
  ".otf"          =>      "application/vnd.oasis.opendocument.formula-template",
  ".oti"          =>      "application/vnd.oasis.opendocument.image-template",
  ".oth"          =>      "application/vnd.oasis.opendocument.text-web",

# make the default mime type application/octet-stream.
  ""              =>      "application/octet-stream",
)

# systemctl enable lighttpd.service

OwnCloud sobre Lighttpd en Raspberry Pi (Arch)

Una de las posibles utilidades de la RaspberryPi es tener un servicio de alojamiento de ficheros en "la nube" ( en mi caso un disco duro externo ).

La instalación es sencilla :

# pacman -S lighttpd (Servidor web)
# pacman -S fcgi (Plugin)
# pacman -S php-cgi (Plugin)
# pacman -S php-sqlite (Plugin)
# pacman -S owncloud (Gestor de ficheros)

La configuración ya es algo mas complicada :

# nano /etc/lighttpd/lighttpd.conf
server.port             = 80
server.username         = "http"
server.groupname        = "http"
server.document-root    = "/usr/share/webapps"
server.errorlog         = "/var/log/lighttpd/error.log"
dir-listing.activate    = "enable"
index-file.names        = ( "index.html","index.php")
mimetype.assign             = (
  ".pdf"          =>      "application/pdf",
  ".sig"          =>      "application/pgp-signature",
  ".spl"          =>      "application/futuresplash",
  ".class"        =>      "application/octet-stream",
  ".ps"           =>      "application/postscript",
  ".torrent"      =>      "application/x-bittorrent",
  ".dvi"          =>      "application/x-dvi",
  ".gz"           =>      "application/x-gzip",
  ".pac"          =>      "application/x-ns-proxy-autoconfig",
  ".swf"          =>      "application/x-shockwave-flash",
  ".tar.gz"       =>      "application/x-tgz",
  ".tgz"          =>      "application/x-tgz",
  ".tar"          =>      "application/x-tar",
  ".zip"          =>      "application/zip",
  ".mp3"          =>      "audio/mpeg",
  ".m3u"          =>      "audio/x-mpegurl",
  ".wma"          =>      "audio/x-ms-wma",
  ".wax"          =>      "audio/x-ms-wax",
  ".ogg"          =>      "application/ogg",
  ".wav"          =>      "audio/x-wav",

  ".svg"          =>      "image/svg+xml",
  ".gif"          =>      "image/gif",
  ".jpg"          =>      "image/jpeg",
  ".jpeg"         =>      "image/jpeg",
  ".png"          =>      "image/png",
  ".xbm"          =>      "image/x-xbitmap",
  ".xpm"          =>      "image/x-xpixmap",
  ".xwd"          =>      "image/x-xwindowdump",
  ".css"          =>      "text/css",
  ".html"         =>      "text/html",
  ".htm"          =>      "text/html",
  ".js"           =>      "text/javascript",
  ".asc"          =>      "text/plain",
  ".c"            =>      "text/plain",
  ".cpp"          =>      "text/plain",
  ".log"          =>      "text/plain",
  ".conf"         =>      "text/plain",
  ".text"         =>      "text/plain",
  ".txt"          =>      "text/plain",
  ".spec"         =>      "text/plain",
  ".dtd"          =>      "text/xml",
  ".xml"          =>      "text/xml",
  ".mpeg"         =>      "video/mpeg",
  ".mpg"          =>      "video/mpeg",
  ".mov"          =>      "video/quicktime",
  ".qt"           =>      "video/quicktime",
  ".avi"          =>      "video/x-msvideo",
  ".asf"          =>      "video/x-ms-asf",
  ".asx"          =>      "video/x-ms-asf",
  ".wmv"          =>      "video/x-ms-wmv",
  ".bz2"          =>      "application/x-bzip",
  ".tbz"          =>      "application/x-bzip-compressed-tar",
  ".tar.bz2"      =>      "application/x-bzip-compressed-tar",
  ".odt"          =>      "application/vnd.oasis.opendocument.text",
  ".ods"          =>      "application/vnd.oasis.opendocument.spreadsheet",
  ".odp"          =>      "application/vnd.oasis.opendocument.presentation",
  ".odg"          =>      "application/vnd.oasis.opendocument.graphics",
  ".odc"          =>      "application/vnd.oasis.opendocument.chart",
  ".odf"          =>      "application/vnd.oasis.opendocument.formula",
  ".odi"          =>      "application/vnd.oasis.opendocument.image",
  ".odm"          =>      "application/vnd.oasis.opendocument.text-master",
  ".ott"          =>      "application/vnd.oasis.opendocument.text-template",
  ".ots"          =>      "application/vnd.oasis.opendocument.spreadsheet-template",
  ".otp"          =>      "application/vnd.oasis.opendocument.presentation-template",
  ".otg"          =>      "application/vnd.oasis.opendocument.graphics-template",
  ".otc"          =>      "application/vnd.oasis.opendocument.chart-template",
  ".otf"          =>      "application/vnd.oasis.opendocument.formula-template",
  ".oti"          =>      "application/vnd.oasis.opendocument.image-template",
  ".oth"          =>      "application/vnd.oasis.opendocument.text-web",

# make the default mime type application/octet-stream.
  ""              =>      "application/octet-stream",
)

# MODULOS #
server.modules = (
                   "mod_fastcgi",
                 )

# CONFIG MODULOS #
fastcgi.server = ( ".php" => ((
                     "bin-path" => "/usr/bin/php-cgi",
                     "socket" => "/tmp/php.socket"
                 )))

# OWNCLOUD # Disable access to data folder
$HTTP["url"] =~ "^/owncloud/data/" {
     url.access-deny = ("")
   }

# OWNCLOUD # Disable directory listing

$HTTP["url"] =~ "^/owncloud($|/)" {
     dir-listing.activate = "disable"
   }
  

# systemctl enable lighttpd.service

# nano /etc/php/php.ini
...
open_basedir = /srv/http/:/home/:/tmp/:/usr/share/pear/:/usr/share/webapps/
...
default_charset = "UTF-8"
cgi.fix_pathinfo = 1
...
extension=gd.so
extension=zip.so
extension=pdo_sqlite.so 
extension=sqlite3.so

extension=xmlrpc.so
...
[sqlite3]
sqlite3.extension_dir = /usr/lib/php/modules/



# systemctl start lighttpd.service

Abrimos nuestro navegador en http://IP.SERVER/owncloud y seguimos las instrucciones ;)



26 de septiembre de 2012

Particiones de memoria en Raspberry Pi

Para repartir la memoria de CPU:GPU de la Raspberry Pi tenemos las siguientes opciones:
  • 3D y descodificación de vídeo (128M ARM, 128M GPU)
# cp /boot/arm128_start.elf /boot/start.elf
  • Por defecto (192M ARM, 64M GPU)
# cp /boot/arm192_start.elf /boot/start.elf
  •  Linux sin 3D y video (224M ARM, 32M GPU)
# cp /boot/arm224_start.elf /boot/start.elf
  • Sin video (240M ARM, 16M GPU)
# cp /boot/arm240_start.elf /boot/start.elf 

Segun nuestras opciones ejecutamos el comando y reiniciamos

# reboot

25 de septiembre de 2012

Overclock en Raspberry Pi

Las instrucciones para overclockear la Raspberry Pi son muy sencillas.
Tan solo tenemos que editar el archivo config.txt del /boot con una serie de parámetros.

Para editar el config.txt

# nano /boot/config.txt

Y elegimos una de estas configuraciones segun el tipo de overclock:

  • Normal
force_turbo=0
arm_freq=700
core_freq=250
sdram_freq=400
over_voltage=0
  • Modest
force_turbo=0
arm_freq=800
core_freq=300
sdram_freq=400
over_voltage=0
  • Medium
force_turbo=0
arm_freq=900
core_freq=333
sdram_freq=450
over_voltage=2
  • High
force_turbo=0
arm_freq=950
core_freq=450
sdram_freq=450
over_voltage=6
  • Turbo
turbo_mode=0
arm_freq=1000
core_freq=500
sdram_freq=500
over_voltage=6

Simple y rapido ;)

24 de septiembre de 2012

Archlinux en Raspberry Pi

Esta va a ser una guía de instalación de Archlinux en mi Raspberry Pi a mi "manera" , sirviéndome de guia/backup para futuras instalaciones/reinstalaciones.
Puede haber otras mejores o peores pero esta es la mía ;)

Para quien no tenga claro que es un Raspberry Pi , le invito a consultar la wikipedia.

El hardware de que dispongo es el siguiente:
  • Raspberry Pi ( Model B - 256MB )
  • Tarjeta SD Transcend 8GB Clase10
  • USB Wifi Ralink 5370
  • Disco duro 2.5" 500GB en una caja USB (EXT4)
  • TV Sony KDL32-EX700
Necesitaremos lo siguiente:
En principio el proyecto para mi RaspberryPi tendrá las siguientes funciones:
  • XBMC
  • Tunel SSH
  • Cliente IRC remoto
INSTALACIÓN
  • Averiguamos la IP que ha sido asignada por el DHCP del router al RaspberryPi 
  • Abrimos el Putty y conectamos por SSH
  • Introducimos usuario "root" y contraseña "root"
  • Una vez dentro lo primero que debemos hacer es cambiar la contraseña de root
 # passwd
  •  Actualizamos el repositorio de paquetes y el sistema base usando pacman (gestor de paquetes de Archlinux)
# pacman -Syu
  • Activamos el soporte de firmas para pacman
# pacman-key --init
  • Ahora pasaremos a configurar pacman
# nano /etc/pacman.conf
GPGDir      = /etc/pacman.d/gnupg/
CleanMethod = KeepInstalled
SigLevel = Optional TrustAll
  • Sigamos con la configuración general del sistema
  • Cambiemos el hostname del RaspberryPi
# nano /etc/hostname
RaspberryPi
  • Cambiamos el hostname en el archivo de hosts
 # nano /etc/hosts
127.0.0.1       localhost.localdomain  RaspberryPi

  • Cambiemos la zona horaria
# nano /etc/timezone
Europe/Madrid
  • Cambiemos el localtime
# rm /etc/localtime
# ln -s /usr/share/zoneinfo/Europe/Madrid /etc/localtime
  • Generemos las locales del sistema
# nano /etc/locale.gen
es_ES ISO-8859-1
es_ES@euro ISO-8859-15
es_ES.UTF-8 UTF-8

# locale-gen
  • Configuremos las locales del sistema
# nano /etc/locale.conf
LANG=es_ES.UTF-8
LC_COLLATE=C

  • Configuremos las locales de la consola
# nano /etc/vconsole.conf
KEYMAP=es
FONT=lat9w-16
FONT_MAP=8859-15_to_uni
  • Creamos una partición swap de intercambio
# fallocate -l 512M /swapfile
# chmod 600 /swapfile
# mkswap /swapfile
# swapon /swapfile
  • Incluimos la swap en el fstab
# nano /etc/fstab
/swapfile                      none                 swap     defaults                                  0      0
  • Instalamos el soporte para NTFS y FAT
# pacman -S ntfs-3g ntfsprogs dosfstools
  • Ahora vamos a configurar el sistema para que cargue el modulo de sonido en el inicio
# echo "snd-bcm2835" >> /etc/modules-load.d/snd-bcm2835.conf
  • Configuramos un poco el sistema de logs
# nano /etc/logrotate.conf
rotate 1
compress
  • Ahora vamos a instalar unas herramientas basicas y reiniciar el sistema. Si , ya se que queda muy poco linuxer pero creo que es la mejor comprobación que podemos hacer antes de continuar con la instalación de paquetes y demás
# pacman -S bash-completion mlocate pkgfile namcap base-devel rsync
# reboot
  • Y volvemos a conectar por SSH ( recuerda que has cambiado el pass de root anteriormente )
  • Vamos a iniciar la configuración de la red wifi
  • Instalamos los paquetes necesarios
# pacman -S dialog wpa_actiond wireless_tools
  • Configuramos la red inalambrica con el asistente de netcfg
# wifi-menu
  • Conectamos y guardamos la configuración para un próximo inicio automático del sistema
# systemctl enable netctl-auto@wlan0.service
  •  Reiniciamos y comprobamos que funciona correctamente
# reboot
  • Ahora ya vamos con la instalación de los programas que quiero para mi sistema. Iré poniendo los archivos de configuración si necesitan algún tipo de configuración especial.

# pacman -S irssi udisks2 unrar zip unzip p7zip arj vsftpd xbmc-rbp xorg-server xf86-video-fbdev xorg-xinit upower acpid yaourt ttf-freefont

# yaourt -S omxplayer-git 
  • Como ya hemos instalado los programas pasamos a comprobar los grupos que se han creado para asi poder incluir a nuestro nuevo usuario
# cat /etc/group
  • Investigamos en que grupos queremos incluir a nuestro USUARIO. Para ayudarnos tenemos una descripción de los grupos mas comunes en el wiki de Archlinux
  • Creamos nuestro nuevo USUARIO y le incluimos en los grupos que creamos
# useradd -m -G users,games,lp,optical,audio,storage,disk,floppy,video,scanner,wheel,power,ftp,uucp,log -s /bin/bash USUARIO
  • Ponemos una contraseña a nuestro usuario
# passwd USUARIO
  • Instalaremos sudo para hacer la gestión de root mas cómoda (al menos para mi)
# pacman -S sudo
  • Configuramos sudo para que nos pida el password de root , recuerde el "login" durante 5 minutos y nos insulte si nos equivocamos al introducir la contraseña (xD)
# nano /etc/sudoers
## 5 MINUTOS / PASS ROOT /  INSULTOS                    
USUARIO ALL=(ALL) ALL                      
Defaults timestamp_timeout=5,rootpw,insults  
  • Lo siguiente sera configurar el arranque automatico del sistema en xbmc.
# systemctl enable xbmc.service

Y con esto se puede decir que ya tengo mi sistema. Ahora solo es cuestión de reiniciar y personalizarlo ;)

# reboot 

Mis alias son los siguientes:

# nano /etc/bash.bashrc
alias memoria="free -h ; sudo sh -c 'sync ; echo 3 > /proc/sys/vm/drop_caches' ; free -h"
alias temperatura="/opt/vc/bin/vcgencmd measure_temp"
alias voltaje="/opt/vc/bin/vcgencmd measure_volts"
alias frecuencia="/opt/vc/bin/vcgencmd measure_clock arm"
alias tvservice="/opt/vc/bin/tvservice"
alias reinicia="sudo sh -c 'reboot'"
alias cpProgress="rsync --progress -ravz"
alias peli="/usr/bin/omxplayer -w -o hdmi"
alias portatil="sudo mount -t cifs //I.P.WIN.2/DIRECTORIO /PUNTO/MONTAJE"


Continuare la personalización con pequeñas entradas en el blog ;)

Un saludo!
Ultima actualización : 02/02/2013