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