30 may 2014

Raspberry Pi como servidor de hora con ntp

NTP (Network Time Protocol) es un protocolo IP para mantener sincronizados los relojes de diferentes equipos informáticos que escucha en el puerto 123.

NTP define una jerarquía de estratos de reloj, donde:
  • Los sistemas de estrato 1 se encuentran sincronizados con un reloj externo como un reloj atómico o un reloj GPS.
  • Los sistemas de estrato 2 se encuentran sincronizados con sistemas de estrato 1.
  • Y así sucesivamente.
En este post vamos a ver cómo configurar:
  • Un servidor ntp en nuestra Raspberry Pi.
  • Un cliente ntp Debian de nuestra red.
Configurar un servidor ntp.-
En Debian utilizamos el demonio ntp tanto para el cliente como para el servidor. Disponer de este demonio es muy sencillo. Tan sólo tenemos que instalar el paquete ntp:
# apt-get install ntp
Una vez instalado, vamos a configurarlo. Para ello, paramos el servidor ntp:
# service ntp stop
Y editamos el fichero de configuración:
# nano /etc/ntp.conf
# /etc/ntp.conf, configuration for ntpd; see ntp.conf(5) for help

driftfile /var/lib/ntp/ntp.drift

# Enable this if you want statistics to be logged.
#statsdir /var/log/ntpstats/

statistics loopstats peerstats clockstats
filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day enable
filegen clockstats file clockstats type day enable

# You do need to talk to an NTP server or two (or three).
#server ntp.your-provider.example

# pool.ntp.org maps to about 1000 low-stratum NTP servers. Your server will
# pick a different set every time it starts up. Please consider joining the
# pool:
server hora.roa.es iburst
server 0.debian.pool.ntp.org iburst
server 1.debian.pool.ntp.org iburst
server 2.debian.pool.ntp.org iburst
server 3.debian.pool.ntp.org iburst

# Local clock para que continue sirviendo su hora aunque no tenga acceso a internet
server 127.127.1.0
fudge 127.127.1.0 stratum 10

# Access control configuration; see /usr/share/doc/ntp-doc/html/accopt.html for
# details. The web page
# might also be helpful.
#
# Note that "restrict" applies to both servers and clients, so a configuration
# that might be intended to block requests from certain clients could also end
# up blocking replies from your own upstream servers.

# By default, exchange time with everybody, but don't allow configuration.
restrict -4 default kod notrap nomodify nopeer noquery
restrict -6 default kod notrap nomodify nopeer noquery

# Local users may interrogate the ntp server more closely.
restrict 127.0.0.1
restrict ::1

# Clients from this (example!) subnet have unlimited access, but only if
# cryptographically authenticated.
#restrict 192.168.123.0 mask 255.255.255.0 notrust

# If you want to provide time to your local subnet, change the next line.
# (Again, the address is an example only.)
#broadcast 192.168.123.255

# If you want to listen to time broadcasts on your local subnet, de-comment the
# next lines. Please do this only if you trust everybody on the network!
#disable auth
#broadcastclient
Para que funcione, tan sólo tenéis que configurar los servidores de hora a los que vuestro servidor va a consultar. Podéis obtener una lista de servidores de hora en la siguiente página: http://www.pool.ntp.org/

Una vez configurado, arrancamos de nuevo el servicio:
# service ntp start

Para comprobar  que el servicio está bien configurado y los servidores de hora responden, ejecutamos:
root@raspberrypi:~# ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
hora.roa.es .INIT. 16 u - 64 0 0.000 0.000 0.001
147.83.123.133 .INIT. 16 u - 64 0 0.000 0.000 0.001
guti.uc3m.es 130.206.3.166 2 u 1 64 1 64.854 0.273 0.182
i2t15.i2t.ehu.e .GPS. 1 u 2 64 1 86.872 8.485 0.001
mx.saviacr.com 130.206.3.166 2 u 1 64 1 115.776 7.900 0.001
*LOCAL(0) .LOCL. 10 l - 64 1 0.000 0.000 0.001
Como podéis ver en la salida anterior, el servidor funciona y puede contactar con los servidores de hora que le hemos configurado.

Configurar un cliente ntp.-
El siguiente paso será configurar un cliente de nuestra red. Para ello:
Instalamos el paquete ntp en el cliente:
# apt-get install ntp
Editamos el fichero ntp.conf del cliente y le añadimos la siguiente línea:
server raspberrypi.local iburst
Asumimos que tenemos instalado avahi (para poder utilizar el nombre de máquina raspberrypi.local)y que el nombre de host de nuestra Raspberry es: raspberrypi.

Por último, reiniciamos el demonio ntp en el cliente:
# service ntp restart
Una vez reiniciado, ejecutamos en el cliente:
ldap:~# ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
raspberrypi.loc 150.214.94.5 2 u - 64 1 0.735 -1.966 0.001
fw1.engloba.net .INIT. 16 u - 64 0 0.000 0.000 0.001
ns1.indaloweb.n .INIT. 16 u - 64 0 0.000 0.000 0.001
evl1900860-pip. .INIT. 16 u - 64 0 0.000 0.000 0.001
guti.uc3m.es .INIT. 16 u - 64 0 0.000 0.000 0.001

Como podéis comprobar en la primera línea de los resultados, nuestra Raspberry Pi está sirviendo su hora.
Publicado por primera vez en http://enavas.blogspot.com.es

Perchero con Cubo de Rubik - Material preferido del mes.


Este es un tutorial: Bueno, bonito, barato, súper fácil y recontra útil!
Siempre he querido tener un perchero en la pared, sin la necesidad de tener que taladrar, ya de por sí es súper fastidioso tener que taladrar, clavar, poner tarugos, el polvo, etc.

 Así que si quieren tener un perchero donde no van a colocar cosas muy pesadas, este es!

Materiales:

  • Un cubo de Rubik.
  • Cintas doble contacto y Montaje  3M . Este es mi material preferido del mes! me parece que en el empaque indica que aguanta hasta 20 kilos, yo lo he usado para pegar estos cuadros, la cabeza del Eva 01, y adornos no muy pesados. Hasta el momento no me falla, nada se cae.
  • Y una tijera.


Este paso depende del tipo de cubo que tengan, en mi caso es un cubo barato que estaba pegado con stickers. Si tienen el mismo despeguen los stickers de la cara que irá en la pared.

Si están usando un cubo pintado, obvien este paso.

Luego cortan un pedazo de la cinta de doble contacto, el tamaño depende del cubo.

Lo pegan en el centro del cubo, si desean pueden rellenar todo el cubo con la cinta, eso ayudará a que se pegue mas fuerte a la pared. Para fijar bien la cinta al cubo, deben aplastarla con una tijera.

Retirar la cinta protectora.

Y lo pegan en la pared, deben aplastarlo muy bien para que la cinta se pueda adherir a la pared, y el cubo no se caiga.

Y listo

 Así quedo el mio!!
Lo recomendable es poner carteras vacías o con una billetera y llaves, no con algo pesado como una enciclopedia. También lo pueden usar para colocar collares, correas, etc.
No se olviden de seguirme y ver los avances de los tutoriales e imágenes bonitas
            

28 may 2014

El shell de linux: Obtener una lista de los paquetes expresamente instalados en el sistema

En un post anterior os mostré cómo podemos obtener una lista de todos los paquetes instalados en el sistema utilizando dpkg --get-selections, algo realmente útil para rellenar el fichero musthave de pkgsync y mantener el software uniforme en una serie de equipos. Ahora bien, en esta lista irán incluidos los paquetes que se instalan como dependencias de otros que hayamos instalado explícitamente, como por ejemplo librerías. 

Para instalar los paquetes del sistema, ya sea con pkgsync o dpkg --set-selections, no es necesario especificar la lista de librerías, puesto que, al fin y al cabo, éstas se van a instalar de todos modos, cuando instalemos los paquetes que nosotros queremos.

La forma más óptima de construir la lista de paquetes para pkgsync o dpkg --set-selections es creando una lista en la que se incluyan sólo los paquetes que expresamente queramos instalar. Para construir esta lista, lo mejor es apoyarnos en aptitude, que puede darnos mucha información y usar la siguiente combinación de comandos:

# aptitude show "?installed ?not(?priority(required)) ?not(?essential) ?not(?automatic)" | grep -e ^Package -e ^Paquete | cut -f 2 -d " " | sort > /etc/pkgsync/musthave

Esta combinación obtiene una lista de los paquetes instalados: ?installed , excluyendo:
  • Aquellos paquetes cuya prioridad sea required: ?not(?priority(required)), es decir, paquetes necesarios para el funcionamiento del sistema. 
  • Aquellos paquetes que no sean esenciales: ?not(?essential)
  • Aquellos paquetes no instalados automáticamente: ?not(?automatic)
Para que veáis lo reducida y "limpia" que queda la lista de paquetes, os diré que en un equipo workstation, he obtenido una lista de 682 paquetes de un total de 2372 paquetes instalados.

Publicado por primera vez en http://enavas.blogspot.com.es

27 may 2014

Establecer ajustes predeterminados y bloquear ajustes en GNOME3

En Debian Squeeze teníamos GNOME2 y utilizábamos gconf para definir ajustes predeterminados para todos los usuarios y bloquear aquellos que no queríamos que el usuario pudiera modificar.

Debian Wheezy trae instalado GNOME3 y éste utiliza dconf para estos fines.

Y como cambiamos de sistema, del mismo modo, cambiamos de herramientas. Por ejemplo:
  • Si en GNOME2 utilizábamos gconftool-2 para realizar ajustes desde el terminal, en GNOME3 utilizamos una nueva herramienta: gsettings.
  • Del mismo modo, si en GNOME2 usábamos gconf-editor para realizar ajustes desde el entorno gráfico, en GNOME3 usamos la herramienta: dconf-editor.
Como lo que me interesa en este caso es establecer ajustes para todos los usuarios de forma predeterminada a nivel de máquina, nos vamos a centrar en dos cosas:
  • Cómo establecer ajustes predeterminados.
  • Cómo bloquear determinados ajustes.
Primero.- Creamos un directorio /etc/dconf/ donde guardaremos los ajustes:
# mkdir /etc/dconf
Dentro de este directorio crearemos otros dos:
# mkdir /etc/dconf/profile
# mkdir /etc/dconf/db
Dentro del directorio /etc/dconf/profile, crearemos un fichero de perfil: user
# nano /etc/dconf/profile/user
user-db:user
system-db:local
Cada línea del fichero de perfil /etc/dconf/profile/user especifica una base de datos dconf. La primera línea indica la base de datos usada para guardar los cambios y el resto de líneas indican bases de datos de sólo lectura.

Una línea "system-db" especifica una base de datos de sistema. Estas bases de datos se encuentran almacenadas en /etc/dconf/db. Como a la base de datos de sistema la hemos llamado local, dentro del directorio /etc/dconf/db crearemos un nuevo directorio al que llamaremos local.d:
# mkdir /etc/dconf/db/local.d
Bien, pues con ésto, ya tenemos preparada la infraestructura.

Segundo.- Una vez creada la estructura de carpetas, establecer ajustes predeterminados es muy sencillo porque tan sólo tendremos que crear ficheros con ajustes dentro del directorio /etc/dconf/db/local.d/. Veamos un ejemplo que he usado en la realidad:

Supongamos que los portátiles se suspenden al cerrar la tapa, tanto cuando están conectados a la corriente como cuando están alimentados sólo con la batería y quiero cambiar este comportamiento para que no se suspendan en ningún caso.

Sé que existe una clave para controlar el comportamiento cuando se cierra la pantalla y el portátil está conectado a la corriente: lid-close-ac-action. Y otra para controlar el comportamiento cuando se cierra la pantalla y el portátil no está conectado a la corriente: lid-close-battery-action.

Podéis comprobar que ambas claves tienen 'suspend' como valor por defecto con gsettings:
# gsettings get org.gnome.settings-daemon.plugins.power lid-close-ac-action
'suspend'
# gsettings get org.gnome.settings-daemon.plugins.power lid-close-battery-action
'suspend'
Para conseguir que los portátiles no se suspendan al cerrar la tapa, cambiaremos el valor 'suspend' por 'blank'.  Esto lo lograremos creando un fichero al que llamaré 00-power dentro del directorio /etc/dconf/db/local.d/ con el siguiente contenido:
[org/gnome/settings-daemon/plugins/power]
lid-close-ac-action='blank'
lid-close-battery-action='blank'
Una vez creado el fichero /etc/dconf/db/local.d/00-power, ejecutamos en un terminal:
# dconf update
Y ya tendremos configurados los ajustes por defecto para todos los usuarios.

Tercero.- Ahora que ya tenemos definidos los ajustes por defecto, vamos a bloquear ambos ajustes para que el usuario no pueda cambiarlos. Para ello, creo un directorio locks dentro del directorio /etc/dconf/db/local.d/:
# mkdir /etc/dconf/db/local.d/locks
Dentro de él crearemos archivos con diferentes ajustes de bloqueo. Siguiendo con el ejemplo anterior, voy a bloquear los ajustes lid-close-ac-action y lid-close-battery-action para que el usuario no pueda cambiarlos. Creo un archivo power dentro del directorio /etc/dconf/local.d/locks:
# nano /etc/dconf/db/local.d/locks/power
/org/gnome/settings-daemon/plugins/power/lid-close-ac-action
/org/gnome/settings-daemon/plugins/power/lid-close-battery-action
Una vez creado el fichero /etc/dconf/db/local.d/locks/power, ejecutamos en un terminal:
# dconf update
Y con ésto, ambos ajustes quedarán bloqueados, de manera que el usuario no podrá modificarlos. Publicado por primera vez en http://enavas.blogspot.com.es

Script addFNMTfirefox: Añadir el certificado de la FNMT a los perfiles de Firefox de alumnos y profesores

En mi cuenta de GitHub he dejado un script para añadir el certificado de la FNMT a los perfiles de Firefox de alumnos y profesores. Aquí tenéis el código, por si queréis echarle un vistazo:


Y el enlace de descarga directa:
https://raw.githubusercontent.com/algodelinux/addFNMTfirefox/master/addFNMTfirefox.sh

También he añadido el archivo con el certificado actual de la FNMT, por si lo queréis utilizar.
Publicado por primera vez en http://enavas.blogspot.com.es

El shell de linux: Obtener la lista de particiones de un dispositivo de almacenamiento

Ésta es la combinación de comandos que uso habitualmente cuando estoy haciendo algún script en el que necesito detectar las particiones de un dispositivo de almacenamiento conectado al ordenador, ya sea un disco duro o dispositivo USB:
# fdisk -l /dev/sdX | grep -v -e 'Disk' -e 'Disco' | grep '/dev/sd' | awk '{print $1}'
Publicado por primera vez en http://enavas.blogspot.com.es

El shell de linux: Obtener la lista de dispositivos de almacenamiento detectados

Ésta es la combinación de comandos que uso habitualmente cuando estoy haciendo algú script en el que necesito detectar los dispositivos de almacenamiento conectados al ordenador, ya sean discos duros o dispositivos USB:
# fdisk -l 2>/dev/null | grep -i -e "Disk \/" -e "Disco \/" | grep -v "\/dev\/dm" | awk '{print $2}' | sed -e 's/://g'
Publicado por primera vez en http://enavas.blogspot.com.es

26 may 2014

Raspberry Pi como servidor de e-books con Calibre

Calibre es una excelente aplicación de gestión de bibliotecas de e-books que, entre otras cosas, nos va a permitir convertir nuestra Raspberry Pi en un servidor de e-books.

¿Y para qué queremos tener un servidor de ebooks? Simplemente para disponer de una plataforma que nos permita el acceso a los libros electrónicos de nuestra colección o la descarga a cualquiera de nuestros dispositivos: ordenador, tablet o smartphone.

Para instalar calibre y todas sus dependencias, abrimos un terminal y ejecutamos:
# apt-get install calibre
Supondremos que tenéis instalado avahi-daemon en vuestra Raspberry Pi para acceder a ella por su nombre. Si no lo habéis configurado aún, os recomiendo echar un vistazo al siguiente post.

Una vez instalado, vamos a copiar el siguiente script de inicio al que llamaremos calibre en /etc/init.d/:
#!/bin/bash
### BEGIN INIT INFO
# Provides: calibre
# Required-Start: networking
# Required-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Controls the Calibre content server
# Description: Controls the Calibre content web server
#
### END INIT INFO
# Original author: Alexandrdos Schillings
# Modifications: K-Light
#
# UPDATES:
# - Added USERNAME and PASSWORD to DAEMON_ARGS
# - In version 0.7.27+ of calibre, the "auto reload" command has been unbundled from "--develop"
#
# Modifications: Marco Antonio Blanco (04/2012)
#
# UPDATES:
# - Changed "network" for "networking" in Required-Start field so it installs in Debian
#
# Please remove the "Author" lines above and replace them
# with your own name if you copy and modify this script.
# Do NOT "set -e"
# PATH should only include /usr/* if it runs after the mountnfs.sh script
#
#
PATH=/sbin:/usr/sbin:/bin:/usr/bin
DESC="Servidor de Libros Calibre"
NAME=calibre-server
DAEMON=/usr/bin/$NAME
PIDFILE=/var/run/$NAME.pid
# Edit the CONTENT variable below to point it to your library directory.
# Edit the PORT variable below to change the port the server will run on.
# Edit the MAX_COVER variable below to change the maximum size of a book cover image.
# Edit the USERNAME variable below to your desired username
# Edit the PASSWORD variable below to your desired password
CONTENT=/media/MULTIMEDIA/Calibre
PORT=8080
MAX_COVER=300x400
USERNAME=
PASSWORD=


DAEMON_ARGS="--auto-reload --with-library=$CONTENT --pidfile=$PIDFILE --port=$PORT --max-cover=$MAX_COVER --username=$USERNAME --password=$PASSWORD --daemonize"
SCRIPTNAME=/etc/init.d/$NAME

# Exit if the package is not installed
[ -x "$DAEMON" ] || exit 0

# Read configuration variable file if it is present
[ -r /etc/default/$NAME ] && . /etc/default/$NAME

# Load the VERBOSE setting and other rcS variables
. /lib/init/vars.sh

# Define LSB log_* functions.
# Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
. /lib/lsb/init-functions

#
# Function that starts the daemon/service
#
do_start()
{
# Return
# 0 if daemon has been started
# 1 if daemon was already running
# 2 if daemon could not be started
start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null || return 1
start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- $DAEMON_ARGS || return 2
}

#
# Function that stops the daemon/service
#
do_stop()
{
# Return
# 0 if daemon has been stopped
# 1 if daemon was already stopped
# 2 if daemon could not be stopped
# other if a failure occurred
start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE
RETVAL="$?"
[ "$RETVAL" = 2 ] && return 2

# Wait for children to finish too if this is a daemon that forks
# and if the daemon is only ever run from this initscript.
# If the above conditions are not satisfied then add some other code
# that waits for the process to drop all resources that could be
# needed by services started subsequently. A last resort is to
# sleep for some time.
start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON
[ "$?" = 2 ] && return 2

# Many daemons don't delete their pidfiles when they exit.
rm -f $PIDFILE
return "$RETVAL"
}

#
# Function that sends a SIGHUP to the daemon/service
#
case "$1" in
start)
[ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
do_start
case "$?" in
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
esac
;;
stop)
[ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
do_stop
case "$?" in
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
esac
;;
status)
status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $?
;;
restart)
#
# If the "reload" option is implemented then remove the
# 'force-reload' alias
#
log_daemon_msg "Restarting $DESC" "$NAME"
do_stop
case "$?" in
0|1)
do_start
case "$?" in
0) log_end_msg 0 ;;
1) log_end_msg 1 ;; # Old process is still running
*) log_end_msg 1 ;; # Failed to start
esac
;;
*)
# Failed to stop
log_end_msg 1
;;
esac
;;
*)
echo "Usage: $SCRIPTNAME {start|stop|status|restart}" >&2
exit 3
;;
esac
:
En este script debéis modificar las variables que os he resaltado en color amarillo:
  • DESC permite definir una descripción que se mostrará a la hora de iniciar y parar el servicio.
  • CONTENT sirve para indicarle al servidor de calibre en qué ubicación se encuentran los ebooks. En el ejemplo anterior hemos indicado que los libros están  en /media/MULTIMEDIA/Calibre, una carpeta de mi disco duro USB. 
  • PORT  nos permite indicar el puerto en el que escuchará calibre. Por defecto, veréis que hemos definido el puerto 8080, pero podéis cambiarlo por otro sin ningún problema.
  • USERNAME y PASSWORD: Nos van a permitir restringir el acceso al interfaz web de Calibre, de tal forma que el usuario tendrá que introducir ambos datos para poder ver el catálogo.  En el caso anterior, lo he dejado en blanco porque me interesa que cualquier usuario pueda verlo.
Una vez configurado el script de inicio, vamos a crear los enlaces que iniciarán y pararán el servidor automáticamente:
# insserv calibre
Para comprobar si funciona, podemos iniciar el servicio manualmente:
# service calibre start
A continuación, abrimos un navegador y escribimos la siguiente dirección: http://raspberrypi.local:8080
Si todo ha ido bien, veréis la pantalla de inicio de Calibre:

Publicado por primera vez en http://enavas.blogspot.com.es

Wolfenstein Free Game Download





Download Game Wolfenstein: The New Order - PC Game - Full Version

Wolfenstein: The New Order
Release Date: 2014
Platform: PC
Developer: MachineGames
Publisher: Bethesda Softworks
Language: English, Russian
SIZE: 38.44GB
Genre: Action / FPS




DOWNLOAD LINKS:

Download Wolfenstein Free Game

25 may 2014

Instagram ♥ @galletitadejengibre


 Hola!
Desde hace tiempo uso la aplicación instagram, sirve para subir y editar (con filtros) fotos y vídeos, siempre subo los avances de los tutoriales, ideas de DIY, inspiraciones y mi día a día. 
Los invito a seguirme, esta es mi cuenta instagram.com/galletitadejengibre

Algunas de las imágenes que he subido últimamente:


No se olviden de seguirme y ver los avances de los tutoriales e imágenes bonitas
            

Touchpad demasiado sensible en Debian

Llevaba un tiempo que me resultaba incomodísimo trabajar con el touchpad del portátil en Debian Squeeze y es que a partir de un determinado momento se había vuelto demasiado sensible y me costaba hacer cosas tan sencillas como hacer clic en el botón de cierre de una ventana. 

La solución ha sido descargar e instalar el módulo psmouse desde la siguiente web: http://www.dahetral.com/public-download 

Una vez descargado, el proceso de instalación es muy sencillo: 

Primero, instalamos dkms, si no lo tenemos instalado:
# apt-get install dkms
A continuación descomprimimos el archivo con el driver, y lo instalamos:
# tar xvf psmouse-alps-1.3-alt.tbz -C /usr/src/
# dkms add -m psmouse -v alps-1.3
# dkms build -m psmouse -v alps-1.3
# dkms install -m psmouse -v alps-1.3
Por último, quitamos el driver anterior y cargamos el nuevo:
# rmmod psmouse
# modprobe psmouse
Publicado por primera vez en http://enavas.blogspot.com.es

24 may 2014

Actualizar paquetes Debian desde un mirror en un disco duro usb

Si váis a realizar una actualización completa de vuestro sistema Debian desde una versión a otra puede que tardéis mucho tiempo hasta que se descarguen todos los paquetes que se deben instalar. También puede ocurrir que simplemente queráis instalar paquetes en un equipo que no tiene conexión a internet. Estos problemas son muy fáciles de resolver si contáis con un mirror de un repositorio en un disco local.

Como en nuestros centros tenemos un mirror de diferentes repositorios Debian, tengo por costumbre realizar copias del mismo en un disco duro USB, utilizando rsync. De este modo:
  • Si por alguna razón cayera el disco duro del servidor donde se encuentra el mirror, podría restaurarlo fácilmente. 
  • Y si necesito realizar una instalación de paquetes o actualización de una máquina que no tiene conexión a internet o ésta es lenta, siempre puedo utilizar el disco duro USB.
¿Cómo lo hago? Muy sencillo. Veamos un ejemplo: Suponiendo que he almacenado el mirror de wheezy/wheezy-backports en un directorio llamado wheezy del disco duro externo:

Primero.- Conecto el disco duro y lo monto, si no se monta automáticamente. 

Segundo.- Suponiendo que el disco duro se ha montado en /media/EXT4, edito el archivo /etc/apt/sources.list de la máquina en la que quiero instalar paquetes:
# nano /etc/apt/sources.list
Y le añado las siguientes líneas:
deb file:/media/EXT4/wheezy/debian wheezy main contrib non-free
deb file:/media/EXT4/wheezy/debian wheezy-backports main contrib non-free
De este modo, ya puedo instalar los paquetes que quieras desde el mirror almacenado en el disco duro.
Cuando termine, edito de nuevo el archivo /etc/apt/sources.list y comento las líneas de los repositorios, por si volviera a necesitar instalar paquetes desde allí más adelante y quisiera utilizarlo de nuevo:
# deb file:/media/EXT4/wheezy/debian wheezy main contrib non-free
# deb file:/media/EXT4/wheezy/debian wheezy-backports main contrib non-free
Publicado por primera vez en http://enavas.blogspot.com.es

23 may 2014

Suspender servidores LTSP para reducir el consumo de energía y evitar un calentamiento innecesario

Lo más habitual en los centros es encender los servidores LTSP de forma automática a primera hora y mantenerlos encendidos durante la mañana para evitar esperas cada vez que un profesor quiera iniciar sesión. El problema es que los servidores de terminales no van a estar en uso el 100% de la jornada y una parte del tiempo se encontrarán ociosos, consumiendo energía innecesariamente.

Para intentar reducir este consumo de energía y evitar que los equipos se calienten estando encendidos sin utilizarse, he preparado un script que, con una tarea cron, se ejecutará cada 15 minutos y comprobará si hay un usuario logueado en el entorno gráfico, de manera que:
  • Si hay un usuario en el entorno gráfico, no hará nada.
  • Si no hay ningún usuario, comprobará el tipo de aula: 
    • all: Aula con terminales y/o portátiles.
    • thinclients: Aula con terminales.
    • laptops: Aula con thinclients.
    • Si es un aula de terminales, ejecutará el script /usr/sbin/apagaterminales.sh que apaga los thinclients antes de suspender el servidor LTSP.
    • Suspenderá el servidor LTSP.
El código del script es muy sencillo, fundamentalmente porque utiliza otro script que ya tengo en el sistema para apagar los terminales (/usr/sbin/apagaterminales.sh) y aprovecha facter para comprobar el tipo de aula (En mi centro tengo definida una "variable" a la que he llamado clients en el fichero /etc/escuela2.0 para comprobar si el aula tiene thinclients o portátiles).

Para apagar los terminales utilizo pm-suspend, que se encuentra instalado en los servidores LTSP.
cat /usr/local/sbin/suspende.sh
#!/bin/bash
# Esteban M. Navas
# IES Valle del Jerte - Plasencia
# Fecha creación: 20/05/2014
# Fecha última modificación: 23/05/2014

# suspende.sh -> Apaga los terminales de un aula y suspende el equipo. Para apagar los terminales
# utilizamos el script /usr/sbin/apagaterminales.sh y la herramienta pm-suspend que se encuentra instalada en los
# servidores LTSP
#
# La idea es utilizar este script como tarea cron de forma que se ejecute cada cierto tiempo

# Si hay un usuario logueado en el terminal :0, no hacemos nada y finalizamos
if [ $(/usr/bin/w|/bin/grep ":0" | /usr/bin/cut -f1 -d" ") ]; then
exit 0
fi

clientes=`facter clients`

# Si no hay un usuario logueado, apagamos los terminales
if [ $clientes = "all" ] || [ $clientes = "thinclients" ]; then
/usr/sbin/apagaterminales.sh
fi

# Si no hay un usuario logueado en el terminal :0 suspendemos el equipo
/usr/sbin/pm-suspend &
La tarea cron que ejecuta el script es muy simple y se puede poner vía puppet:
cat /etc/cron.d/suspende

# Check every 15 minutes if no user logged and suspend
*/15 * * * * root /usr/local/sbin/suspende.sh

He estado haciendo pruebas en un servidor y parece que todo funciona correctamente. Así que probaré en algún aula más y si todo va bien, pasaré la tarea para todos los servidores LTSP.

Tan sólo me he encontrado con un inconveniente: Por alguna razón, a la hora de reanudar el equipo, si queréis hacerlo pulsando el teclado, es necesario que éste se encuentre conectado mediante PS2. Mediante USB, por defecto, no funciona la reanudación. Supongo que habría que hacer pruebas y configurarlo, pero por no perder más tiempo y tener el sistema operativo lo antes posible, sobre todo ahora que comienza a hacer calor, he conectado todos los teclados de los servidores LTSP mediante PS2.
Publicado por primera vez en http://enavas.blogspot.com.es

Procedimiento para flashear la BIOS de un equipo


En el post de ayer, os expliqué cómo preparar un pendrive de arranque FreeDOS (basado en el trabajo de esta web: http://chtaube.eu/computers/freedos/bootable-usb/) para flashear la BIOS de un equipo, aunque no deja de ser un disco de FreeDOS que podéis utilizar para cualquier otra cosa que se os ocurra. Hoy lo he utilizado para flashear las BIOS de unos cuantos servidores LTSP y me ha venido fenomenal. 

Es cierto que podría haber automatizado el procedimiento para flashear automáticamente las BIOS nada más arrancar con el dispositivo, porque es tan sencillo como modificar el AUTOEXEC.BAT, pero he preferido dejarlo como venía originalmente para poder utilizarlo para otras cosas que se me están ocurriendo. 

Éste es el procedimiento que he seguido para flashear la BIOS de un servidor LTSP con placa base P5Q Deluxe:
  1. Apagamos el equipo o lo reiniciamos si estaba encendido.
  2. Introducimos el pendrive.
  3. Lo encendemos de nuevo y pulsamos F8. Esta opción es la que permite seleccionar el dispositivo de arranque en esta placa base.
  4. De la lista de dispositivos que aparecen en pantalla, seleccionamos el que corresponde a nuestro pendrive USB.
  5. El pendrive iniciará inmendiatamente y nos mostrará un menú de opciones. Escribimos fdos y pulsamos ENTER.
  6. Una vez elegido que queremos arrancar FreeDOS, nos mostrará un nuevo menú para elegir entre diferentes posibilidades de arranque de FreeDOS con/o sin drivers. Seleccionamos la última: Freedos without drivers.
  7. He creado un fichero llamado p5qflash.bat para iniciar el proceso de flasheo. Escribimos p5qflash y pulsamos ENTER para iniciarlo.
Y comenzará el proceso de flasheo. Cuando termine, nos informará de que es necesario reiniciar el equipo. Lo reiniciamos y arrancará con la nueva BIOS actualizada.

Publicado por primera vez en http://enavas.blogspot.com.es

Consultar las dependencias de un paquete en Debian

Cuando queremos consultar las dependencias de un paquete que se encuentra en los repositorios, utilizamos el siguiente comando:
apt-cache show paquete
Ahora bien, si el paquete lo tenemos descargado en el equipo, utilizaremos otro comando:
dpkg-deb -I paquete.deb
Publicado por primera vez en http://enavas.blogspot.com.es

Papercraft - Disney Villains by Gus Santome

Ya saben que amo los papercraft ( aquí pueden ver los post que hice) Son buenos, bonitos y baratos (3B). Lo más chévere es que puedes decorar con ellos, y los moldes están gratuitos en internet.

Uno de mis favoritos es minipapercraft porque tiene diseños geniales, sacó una colección de las villanas de Disney  de las cuales me enamoré 

De ahí nació la idea de usarlas para decorar, en mi caso hice un óvalo, pero pueden hacer: círculos, cuadrados, rectángulos,etc.

Así me quedaron! 




Imprimí el molde en papel couché a láser.

Maléfica!!!!

Estas son las instrucciones que vienen con el molde.


Este es el detalle que verán en el vídeo!!

Moldes:  El diseño de los moldes ha sido realizado por el genial Gus Santome, gracias infinitas por compartir gratuitamente tu arte


Vídeo-Tutorial con varios tips para armarlos y decorarlos!



Así quedaron en mi pared ♥


Vine

No se olviden de seguirme y ver los avances de los tutoriales e imágenes bonitas
            

22 may 2014

Preparar un pendrive de arranque FreeDOS para flashear la BIOS

En muchas ocasiones necesitamos flashear la BIOS de un equipo y alguno de los procedimientos de flasheo requiere utilizar una herramienta que corre en DOS. Esto es, básicamente, porque antiguamente el procedimiento de flasheo se hacía desde un disquete. Pero, claro, hoy en día es raro encontrarse una máquina con diskette.

Muchas veces, curiosamente, el fabricante proporciona una herramienta de flasheo sólo para sistemas operativos propietarios, algo que no nos vale a los que trabajamos con sistemas operativos libres; o suministra una herramienta incorporada en la BIOS que requiere un sistema de archivos de un sistema operativo propietario, cosa que tampoco nos sirve. 

Entonces, no nos queda más que una opción: Utilizar las herramientas que corren en DOS.

Como tenía por ahí aparcado un pendrive de 256Mb que no utilizaba para nada, pensé en convertirlo en un dispositivo FreeDOS arrancable que pudiera utilizar fácilmente cada vez que tuviera que flashear una BIOS. 

Para no reinventar la rueda, os recomiendo utilizar las imágenes de arranque de esta web:

El autor ha publicado tres versiones:
Utilizad la que mejor se adapte a vuestras necesidades.

Son imágenes creadas con dd. Por lo tanto es muy fácil montarlas en nuestro pendrive.

Primero.- Descargad la imagen que queráis: http://chtaube.eu/computers/freedos/bootable-usb/#download

Segundo.- Una vez descargada, la descomprimís. Por ejemplo, supongamos que habéis descargado la imagen: FreeDOS-1.1-memstick-3-30M.img.bz2:
# bunzip2 FreeDOS-1.1-memstick-3-30M.img.bz2
Una vez descomprimida, tendréis un fichero FreeDOS-1.1-memstick-3-30M.img.

Tercero.- Introducís el pendrive, os fijáis en el nombre de dispositivo que tiene y ejecutáis:
# dd if=FreeDOS-1.1-memstick-3-30MB.img of=/dev/sdX bs=512k

En el nombre del dispositivo, debéis sustituir la X por la letra con la que se identifique.

Cuando termine el proceso, tendréis un "disco" Freedos grande en el que podréis añadir muchas roms y modificar a vuestro gusto los archivos del mismo. Una de las cosas que yo he hecho es añadir la siguiente línea al fichero AUTOEXEC.BAT para que cargue el idioma de teclado español:
KEYB SP,,C:\FDOS\BIN\KEYBOARD.SYS
También podéis crear diferentes ficheros .BAT que os permitan flashear las diferentes ROMS que tengáis guardadas en él o crear un menú que os permita escoger la ROM.
Publicado por primera vez en http://enavas.blogspot.com.es

21 may 2014

DosEmu: Un emulador de DOS en Linux

Aunque parezca que ya nadie trabaja en DOS, todavía somos unos cuantos los que lo hacemos. No penséis que es por nostalgia, no; sino porque en algunas ocasiones nuestro trabajo lo requiere. Si bien es verdad que nos sentimos muy cómodos en un entorno en el que en su día echamos muchas horas y que quizás sea lo que nos ha llevado a sentirnos aún más cómodos en la línea de comandos de Linux.

DosEmu es un emulador de DOS en Linux que suelo usar con cierta frecuencia para preparar imágenes de diskette de arranque que me permitan flashear la BIOS de equipos desde un pendrive o desde CDROM si el equipo no arranca desde pendrive o incluso a través de la red.


Instalarlo es muy fácil porque se encuentra en los repositorios de Debian:
# apt-get install dosemu

Una vez instalado, se nos creará un acceso directo en el menú, aunque naturalmente, también podremos lanzarlo desde un terminal.

La primera vez que lo ejecutamos, se crea un directorio .dosemu en el HOME del usuario donde se guardarán todos sus archivos. Podéis comprobarlo:
ldap:~# tree .dosemu/
.dosemu/
├── boot.log
├── disclaimer
├── drive_c
│   ├── autoexec.bat
│   ├── config.sys
│   └── tmp
├── drives
│   ├── c -> /root/.dosemu/drive_c
│   └── d -> /usr/lib/dosemu/drive_z
└── run
└── dosemu-midi

6 directories, 5 files

Si os fijáis en la imagen de más arriba, se configuran las siguientes unidades virtuales:
  • A: Para la unidad de disquete (si existe).
  • C: Apunta a la unidad C virtual que hay dentro del home del usuario, dentro del directorio ~/.dosemu/drive_c
  • D: Apunta al directorio HOME del usuario que ha iniciado DosEmu.
  • E: Apunta a la unidad de CDROM. 
  • Z: Apunta al directorio del sistema. Este directorio es de sólo lectura.
Si queréis crear alguna unidad virtual más que apunte a algún determinado lugar del sistema de archivos, podéis usar el comando LREDIR de DosEmu. Y si queréis que la unidad virtual se cree cada vez que arranquéis DosEmu, añadís el comando al archivo c:\autoexec.bat, por ejemplo.

Para reinstalar DOS en vuestro HOME, no tenéis más que iniciar dosemu con el parámetro -i:
$ dosemu -i

Os ofrecerá diferentes opciones de instalación, como instalar el sistema con un FreeDOS en modo de escritura, sólo lectura, instalarlo en otro directorio distinto del directorio por defecto, etc...

Como ya os decía al principio, suelo utilizar DosEmu para crear/modificar imágenes de disquete que luego voy a poder arrancar desde un dispositivo USB, CD o a través de la red. Veamos un ejemplo:

Supongamos que tengo una imagen de un disquete de arranque: dosdisk144.img y quiero modificarla para añadirle una imagen de la bios de un equipo para actualizarlo.

Creo un directorio dentro del HOME de root:
# mkdir /root/floppy
Monto la imagen del Floppy en dicho directorio:
# mount -o loop /root/floppies/dosdisk144.img /root/floppy
E inicio DosEmu:
# dosemu
Se iniciará DosEmu en la unidad C:\>
Recordad que hemos montado la imagen del disquete en /root/floppy y el directorio HOME es la unidad D:\>
Por lo tanto, en la ventana de DosEmu tendremos que cambiar a la unidad D:\> y entrar dentro del directorio floppy para modificar, copiar archivos y todo lo que queramos.
Cuando terminemos, cerramos la ventana de DosEmu y desmontamos la imagen del Floppy:
# umount /root/floppy

Luego ya tan sólo será cuestión de copiar la imagen al USB, al CD o al directorio tftp y realizar los ajustes necesarios para poder arrancarla.

Publicado por primera vez en http://enavas.blogspot.com.es

20 may 2014

Raspberry Pi como Punto de Acceso con hostapd

En un post anterior, vimos cómo conectar nuestra Raspberry Pi a la red usando un interfaz wifi. En este post, vamos a ver justo lo contrario: Cómo convertir nuestra Raspberry Pi en un Punto de Acceso que permita a otros clientes conectarse a la red vía wifi.

Lo primero que haremos será conectar el interfaz usb wifi a uno de los puertos de la Raspberry. Una vez conectado, abrimos un shell y ejecutamos el comando lsusb:
pi@raspberrypi:~$ lsusb 
Bus 001 Device 014: ID 0424:9512 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 015: ID 0424:ec00 Standard Microsystems Corp.
Bus 001 Device 016: ID 046d:c52b Logitech, Inc. Unifying Receiver
Bus 001 Device 017: ID 1a40:0101 Terminus Technology Inc. 4-Port HUB
Bus 001 Device 018: ID 048d:1336 Integrated Technology Express, Inc. SD/MMC Cardreader
Bus 001 Device 019: ID 148f:5370 Ralink Technology, Corp. RT5370 Wireless Adapter
Bus 001 Device 020: ID 152d:2338 JMicron Technology Corp. / JMicron USA Technology Corp. JM20337 Hi-Speed USB to SATA & PATA Combo Bridge

Con este comando detectaremos todos los dispositivos usb conectados a la Raspberry, y en particular, el interfaz wifi usb que hemos conectado. Como podéis ver, en mi caso es un Ralink con chipset RT5370.

Instalamos el firmware para dispositivos con ralink y realtek. El primero lo instalo porque es el firmware de mi dispositivo y el segundo porque es muy común y me serviría en caso de que conecte un dispositivo Realtek:
pi@raspberrypi:~$ sudo -i root@raspberrypi:~# apt-get install firmware-ralink firmware-realtek
Instalamos también el paquete wireless-tools:
root@raspberrypi:~# apt-get install wireless-tools
A continuación, editamos el fichero /etc/network/interfaces para asignar una dirección IP estática al interfaz wlan0 (nuestro interfaz wifi):
auto lo

iface lo inet loopback
iface eth0 inet dhcp

iface wlan0 inet static
address 192.168.2.1
netmask 255.255.255.0

#allow-hotplug wlan0
#iface wlan0 inet manual
#wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
#iface default inet dhcp
Observad que he comentado la parte de configuración dinámica de la wifi en lugar de borrarla, más que nada para no perderla.

He marcado en negrita las líneas que definen la configuración de IP estática en este fichero. Resaltar que nuestra Raspberry estará conectada en cada interfaz a una red diferente:
  • Interfaz eth0 (conecta la Raspberry a nuestra LAN): 192.168.1.0/24
  • Interfaz wlan0 (hace de interfaz de acceso wifi): 192.168.2.0/24
Si os fijáis en la configuración del fichero /etc/network/interfaces, la asignación de dirección IP en la interfaz eth0 se hace por DHCP y en wlan0 de forma estática.

Una vez configurada la red, vamos a necesitar un servidor dhcp y, para ello, usaremos dnsmasq. No vamos a entrar en muchos detalles de configuración de dnsmasq porque lo trataremos en un artículo más adelante. Así que lo instalamos:
root@raspberrypi:~# apt-get install dnsmasq
Una vez instalado, vamos a configurarlo. Para ello, creamos un fichero en /etc/dnsmasq.d/, como por ejemplo: /etc/dnsmasq.d/mired con la siguiente configuración mínima:
interface=wlan0
dhcp-range=192.168.2.50,192.168.2.254,12h
dhcp-option=3,192.168.2.1
server=8.8.8.8
server=8.8.4.4
Con esta configuración mínima, le estamos indicando a dnsmasq:
  • Que escuche peticiones tan sólo en la interfaz wlan0.
  • Que asigne direcciones IP de forma dinámica en el rango 192.168.2.50 - 192.168.2.254.
  • Que la puerta de enlace es la 192.168.2.1 (la interfaz wlan0 de nuestra Raspberry Pi).
  • Que utilice los servidores DNS de Google: 8.8.8.8 y 8.8.4.4
Una vez realizados los cambios, reiniciamos el servicio:
root@raspberrypi:~# service dnsmasq restart
A continuación, instalamos el paquete hostapd:
root@raspberrypi:~# apt-get install hostapd
El siguiente paso será configurar hostapd. Para ello creamos un archivo de configuración /etc/hostapd/hostapd.conf:
# interface used by access point
interface=wlan0

# firmware driver
driver=nl80211

# access point SSID
ssid=MiWifi

# operation mode (a = IEEE 802.11a, b = IEEE 802.11b, g = IEEE 802.11g)
hw_mode=g

# access point channel
channel=6

# options
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0

# key management algorithm
wpa_key_mgmt=WPA-PSK
wpa_passphrase=miclavewpa
wpa=2

# set ciphers
wpa_pairwise=TKIP
rsn_pairwise=CCMP

En este archivo es suficiente con que cambiéis los parámetros que os he marcado en negrita:
  • El nombre de la red: ssid
  • El canal: channel
  • La clave de acceso: wpa_passphrase
El siguiente paso será editar el archivo /etc/default/hostapd para añadir una línea que indique a hostapd cual es el fichero de configuración:
root@raspberrypi:~# echo 'DAEMON_CONF="/etc/hostapd/hostapd.conf"' >> /etc/default/hostapd 
A continuación reiniciamos el sistema para aplicar los cambios realizados en la configuración de red:
root@raspberrypi:~# reboot
Reinicio el sistema y no solo el servicio de red porque estoy conectado vía ssh y voy a perder la conexión al reiniciar el servicio.
Cuando vuelva a arrancar de nuevo, activo el IP Forwarding:
root@raspberrypi:~# nano /etc/sysctl.conf
Añadiendo la siguiente línea:
net.ipv4.ip_forward=1
Y aplico las reglas IPTABLES que me van a permitir redirigir el tráfico entre las dos interfaces:
root@raspberrypi:~# iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT 
root@raspberrypi:~# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
root@raspberrypi:~# iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
Si os conectáis ahora a la red Wifi que hemos creado, comprobaréis que ya podéis navegar. No obstante, las reglas de IPTABLES aplicadas se perderán cuando apaguemos el sistema. Para que se apliquen cada vez que se encienda el sistema vamos a hacer una cosa: 

Guardaremos las reglas aplicadas en este momento en un fichero:
root@raspberrypi:~# iptables-save > /etc/network/iptables.default
Y modificaremos el archivo /etc/network/interfaces para que se activen cada vez que se levante el interfaz de red, añadiendo la línea que os marco en negrita al archivo:

auto lo

iface lo inet loopback
iface eth0 inet dhcp

iface wlan0 inet static
address 192.168.2.1
netmask 255.255.255.0
up iptables-restore < /etc/network/iptables.default

#allow-hotplug wlan0
#iface wlan0 inet manual
#wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
#iface default inet dhcp

Y eso es todo. A partir de este momento, ya podéis utilizar vuestra Raspberry Pi como punto de acceso de cualquier red a la que la conectéis mediante ethernet.
Publicado por primera vez en http://enavas.blogspot.com.es

Cambio de caja al servidor ldap para bajar la temperatura

Como la caja del servidor ldap es pequeña no tiene buena refrigeración y los componentes se calientan demasiado, sobre todo los discos duros, algo muy lógico porque al fin y al cabo es un equipo diseñado para uso de escritorio. Además el ventilador que tiene es pequeño: 40x40 mm. Por este motivo decidí cambiar los componentes a otra con más espacio y, de paso, con mayor número de ventiladores para mover el aire del interior. 

Por lo que veo, el cambio ha dado buen resultado porque he conseguido bajar la temperatura de ambos discos duros una barbaridad:
  • La temperatura del disco /dev/sda ha bajado de 48ºC a 28ºC.
  • La temperatura del disco /dev/sdb ha bajado de 53ºC a 30ºC.


Aparte de tener más espacio, la caja disponía de dos ventiladores de chasis traseros de 80x80mm y le he montado otros dos delanteros también de 80x80mm.

Publicado por primera vez en http://enavas.blogspot.com.es

19 may 2014

Conectar Raspberry Pi a la red usando un interfaz wifi

Como ya sabéis una Raspberry Pi dispone de conexión de red ethernet pero no tiene wifi. Si queremos lograr que nuestra Raspberry se conecte a nuestra red de área local vía wifi o queremos que se comporte como punto de acceso, tendremos que conectarle un interfaz wifi usb.


En este post vamos a ver cómo conectar nuestra Raspberry Pi a la red vía wifi desde la línea de comando. Configurarlo desde el interfaz gráfico es muy sencillo en Raspbian y está muy bien, pero puede que no tengamos interfaz gráfica y no tengamos más remedio que realizar una configuración mediante comandos.

Lo primero que haremos será conectar el interfaz usb wifi a uno de los puertos de la Raspberry. Una vez conectado, abrimos un shell y ejecutamos el comando lsusb:
pi@raspberrypi:~$ lsusb
Bus 001 Device 014: ID 0424:9512 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 015: ID 0424:ec00 Standard Microsystems Corp.
Bus 001 Device 016: ID 046d:c52b Logitech, Inc. Unifying Receiver
Bus 001 Device 017: ID 1a40:0101 Terminus Technology Inc. 4-Port HUB
Bus 001 Device 018: ID 048d:1336 Integrated Technology Express, Inc. SD/MMC Cardreader
Bus 001 Device 019: ID 148f:5370 Ralink Technology, Corp. RT5370 Wireless Adapter
Bus 001 Device 020: ID 152d:2338 JMicron Technology Corp. / JMicron USA Technology Corp. JM20337 Hi-Speed USB to SATA & PATA Combo Bridge

Este comando detectará todos los dispositivos usb conectados a la Raspberry, y en particular, el interfaz wifi usb que hemos conectado. Como podéis ver, en mi caso es un Ralink con chipset RT5370.

Como tengo un Ralink, instalaré el firmware para dispositivos con firmware ralink. También instalaré el firmware realtek porque también es muy común:
pi@raspberrypi:~$ sudo -i
root@raspberrypi:~# apt-get install firmware-ralink firmware-realtek
Instalaré también el paquete wireless-tools:
root@raspberrypi:~# apt-get install wireless-tools

A continuación vamos a configurar el archivo /etc/network/interfaces para que se conecte a nuestra red wifi. Si tenéis instalado Raspbian y no habéis tocado la configuración, vuestro /etc/network/interfaces tendrá el siguiente contenido:
auto lo

iface lo inet loopback
iface eth0 inet dhcp

iface wlan0 inet manual
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp
Para no perder la configuración por defecto, vamos a comentar las líneas que he resaltado en negrita en el bloque anterior.

Y vamos a añadir las que permitan realizar la conexión a nuestra red wifi cuando se conecte el interfaz de red. Suponiendo que vuestra red wifi se llama WLAN_C54A y vuestra clave wifi es miClave, el archivo os quedará así:
auto lo

iface lo inet loopback
iface eth0 inet dhcp

allow-hotplug wlan0
iface wlan0 inet dhcp
wpa-ssid "WLAN_C54A"
wpa-psk "miClave"

# iface wlan0 inet manual
# wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
# iface default inet dhcp

Si os dáis cuenta, estamos configurando el interfaz wlan0 con allow-hotplug, de manera que se permita la conexión/desconexión en caliente del dispositivo. Además, lo configuramos de manera que se obtenga una dirección IP vía DHCP.

Una vez hecho ésto, reinciad la Raspberry:
root@raspberrypi:~# reboot
Si estáis conectados localmente, sería suficiente con reiniciar el servicio de red, pero si estáis conectados de forma remota por ssh, perderíais la conexión. Por eso reiniciamos el sistema completo.

Publicado por primera vez en http://enavas.blogspot.com.es

Error /usr/sbin/grub-probe: error: Couldn't find PV pv1. Check your device.map

Hace tiempo monté un segundo disco duro en el servidor ldap y lo configuré con lvm como un volúmen físico del grupo de volúmenes. El caso es que en estos días, al actualizarse el kernel, recibía una y otra vez el mismo error:

"Error /usr/sbin/grub-probe: error: Couldn't find PV pv1. Check your device.map" 

Eché un vistazo al archivo /boot/grub/device.map y observé que tan sólo aparecía el primer disco.

Para solucionar el problema, renombré el archivo device.map:
# mv /boot/grub/device.map /boot/grub/device.map.old
Para que se volviera a regenerar device.map ejecuté:
# update-grub
Eché un vistazo al contenido del device.map y ahora sí aparecía el segundo disco duro.

Hice un:
# dpkg --configure -a
Y el problema quedó resuelto.

Publicado por primera vez en http://enavas.blogspot.com.es

18 may 2014

Papercraft Eva 01


De hecho este es un post bien esperado, por  facebook / instagram y twitter  he posteado las fotos y avances del Eva 01, y creo que este es el papercraft más difícil que he hecho. Pero es el que más me ha gustado.

Como pueden ver, es gigante! sin contar el cuerno debe medir: 53 x 53 cm, al parecer no es el tamaño real del papercraft, porque cuando encontré los moldes originales era para realizar uno chiquito ( 10 x 10 cm quizás)

Los primeros moldes que descargué fueron ampliados, por eso algunos vienen partidos para tener que unirlos. De todas maneras tienen que bajarse los moldes originales " los pequeños"  para que puedan ver como son las piezas reales.

Aquí pueden descargar el molde chico que viene la cabeza del Eva 01 versión berserk y  también un Eva 01 completo, en total son 24 hojas A4, la cabeza debe ser 8 hojas. DESCARGAR MOLDE CHICO AQUI!

Para hacer la versión grande (la que hice) deben imprimir: 19 hojas A3 (El doble de una A4) de 200 gramos. La verdad es que no me salió nada barato, fue más de 60 soles ($21), pero el resultado lo valía.
Los que deseen hacer la versión gigante escríbanme a: anasofia.casaverde@gmail.com para enviarles los archivos por correo, porque pesa mucho.

Aquí están los moldes impresos:


Estas son las instrucciones:



He tratado de tomar fotos a todas las partes que iba armando, pero como pueden ver son muchísimas!! y me pase 2 días sin dormir por terminarlo.

Lo bueno: Las piezas vienen enumeradas, para poder guiarnos a la hora de armar.
Lo malo: Las pocas instrucciones están en japonés.

Partes:
Cabeza, cuerno y ojos.

La parte que voltea de la "nariz", la boca y los dientes.

Viene un fondo negro (la garganta) para darle profundidad a la boca.


Para la parte del cráneo se tienen que unir las piezas,  están separadas porque no entraban en la hoja.
OJO: Esto es para la versión gigante, la versión chiquita viene todo listo para armar.

Cuello.

Volado, alero?, como existen partes que se tienen que unir, he pintado los bordes, para que no se vea blanco.

Escudo de Nerv, yo recomiendo que esto lo refuercen con cartulina dúplex, cartones, etc. porque es aquí donde se sostiene la cabeza y se engancha a la pared.

Aquí lo colgué, necesitaba un colgador grande así que use cinta de doble contacto y un cubo de rubik!
La cinta de doble contacto que uso es ESTA!

Así está en mi taller

Y se alimenta de galletas jaja #okno
No se olviden de seguirme y ver los avances de los tutoriales e imágenes bonitas