Como instalar un sistema operativo a un Raspberry Pi

En el año 2011 me compré un Raspberry Pi (por $35 USD), el proyecto estaba en sus inicios y tuve que mandar pedir la mía desde el Reino Unido, la intención era que llegara para mi cumpleaños pero tardó varios meses más en llegar. Hoy ya es posible conseguirlos en México en tiendas de electrónica.
Cuando finalmente la tuve empecé a jugar un poco con el sistema Linux preinstalado basado en Debian y llamado Raspbian, simplemente la usaba como una computadora más de vez en cuando, no tenía un propósito definido para mi Raspberry.
Hace poco me vi en la necesidad instalar un sistema operativo en una tarjeta SD para una Raspberry nueva. Como tengo un poco de experiencia instalando Linux desde dispositivos USB lo primero que se me ocurrió fue usar el comando dd. Y no andaba tan perdido pues es el método que recomiendan en el sitio oficial.
Así que descargué Raspbian desde el sitio oficial de Raspberry Pi y extraje el archivo comprimido ZIP para quedarme finalmente con un archivo IMG, inserté la tarjeta SD a mi laptop con Slackware y fue reconocida como /dev/mmcblk0p1. Este nombre se puede identificar usando el comando fdisk -l. En el terminal accedí hasta el directorio donde se encontraba el archivo IMG de Raspbian y ejecuté como usuario root:

umount /dev/mmcblk0p1 
dd bs=4M if=2014-09-09-wheezy-raspbian.img of=/dev/mmcblk0
sync

El comando dd termina exitosamente después de un rato, entonces ejecuté sync y extraje la tarjeta. Luego inserté la tarjeta SD en el Raspberry Pi y el sistema arrancó correctamente.
Enjoy!

syslogd e irq4/mei_me consumiendo el CPU después de suspensión

Hace tiempo que tenía este problema en mi laptop (Asus X401A), pasaba que al inciar Linux después de una suspensión, aparecían los procesos syslogd e irq4/mei_me consumiendo la totalidad del CPU entre los dos.

Mi sistema está configurado para suspenderse (en RAM) al cerrar la tapa de la laptop, al usar la combinación de teclas Fn+F2 o después de un cierto tiempo de inactividad, lo normal. Sin embargo al iniciar Linux después de la suspensión y pasar un tiempo trabajando normal, se notaba cierta lentitud en el sistema y el ventilador del equipo girando a tope unos minutos más tarde. Me di cuenta de que el problema eran los procesos syslogd e irq4/mei_me, pues tengo un widget de SuperKaramba en mi escritorio para monitorear el sistema y esos dos procesos aparecían comiéndose la totalidad del CPU. Además pude observar que el disco duro raíz (/) se llenaba poco a poco. Incluso una vez tuve que borrar algunos de los archivos del directorio /var/log/ pues un par de ellos llenaba la totalidad del disco duro y no podía iniciar las X (gráficos).

¿Qué causaba el problema?

Pues un par de módulos o controladores llamados mei y mei-me (más información en INTEL_MEI_ME y HECI) para hardware de Intel.
En complemento a su mal funcionamiento en mi sistema, syslogd empezaba a llenar de mensajes ciertos archivos que al ir creciendo terminaban llenando mi partición raíz, de 50 GB. Para saber como funciona syslogd y ver cuales son los archivos que hay que borrar, se debe consultar el archivo syslog.conf. El mío se encuentra en:

$ file /etc/syslog.conf
/etc/syslog.conf: ASCII text

Y su contenido es este:

$ cat /etc/syslog.conf
# /etc/syslog.conf
# For info about the format of this file, see "man syslog.conf"
# and /usr/doc/sysklogd/README.linux.  Note the '-' prefixing some
# of these entries;  this omits syncing the file after every logging.
# In the event of a crash, some log information might be lost, so
# if this is a concern to you then you might want to remove the '-'.
# Be advised this will cause a performation loss if you're using
# programs that do heavy logging.

# Uncomment this to see kernel messages on the console.
#kern.*                                                 /dev/console

# Log anything 'info' or higher, but lower than 'warn'.
# Exclude authpriv, cron, mail, and news.  These are logged elsewhere.
*.info;*.!warn;\
        authpriv.none;cron.none;mail.none;news.none     -/var/log/messages

# Log anything 'warn' or higher.
# Exclude authpriv, cron, mail, and news.  These are logged elsewhere.
*.warn;\
        authpriv.none;cron.none;mail.none;news.none     -/var/log/syslog

# Debugging information is logged here.
*.=debug                                                -/var/log/debug

# Private authentication message logging:
authpriv.*                                              -/var/log/secure

# Cron related logs:
cron.*                                                  -/var/log/cron

# Mail related logs:
mail.*                                                  -/var/log/maillog

# Emergency level messages go to all users:
*.emerg                                                 *

# This log is for news and uucp errors:
uucp,news.crit                                          -/var/log/spooler

# Uncomment these if you'd like INN to keep logs on everything.
# You won't need this if you don't run INN (the InterNetNews daemon).
#news.=crit                                     -/var/log/news/news.crit
#news.=err                                      -/var/log/news/news.err
#news.notice                                    -/var/log/news/news.notice

¿Cómo solucionarlo?

Lo primero que hacía era reiniciar el equipo, para evitar el sobrecalentamiento del mismo y la molestia de tener que usarlo con lentitud y ruido. Luego antes de iniciar las X borraba los archivos generados por syslogd para liberar espacio, por el contenido de syslog.conf se que los indicados son:

/var/log/messages
/var/log/syslog

Y todos los demás archivos en /var/log que aparezcan con la terminación *.1, *.2, etc.

Para localizar los controladores hice:

# locate mei
# ls -l /lib/modules/3.10.17/kernel/drivers/misc/mei | grep mei
-rw-r--r-- 1 root root 21018 oct 23 16:30 mei-me.ko
-rw-r--r-- 1 root root 77477 oct 23 16:30 mei.ko

Y luego de leer un poco por la web encontré algunos threads de Arch Linux (1, 2 y 3), donde leí que la solución podría ser poner los controladores mei en blacklist.

Así que creé un archivo de blacklist:

# vim /etc/modprobe.d/blacklist.conf

Y agregué las siguientes líneas:

blacklist mei
blacklist mei-me

INTEL_MEI_ME

Reincié el equipo y listo. Hasta ahora ya no he tenido ese problema de nuevo y puedo suspender a RAM mi laptop sin problemas.

TrueCrypt: problemas con Nautilus en Slackware

Pues como dice el título, al intentar abrir un directorio montado con TrueCrypt desde el menú contextual del ícono de la bandeja del sistema aparece el siguiente error:

TrueCrypt: No existe el fichero o el directorio

TrueCrypt: No existe el fichero o el directorio

Esto solo en Xfce por que en KDE me funciona a la perfección. La causa del error mostrado es fácil de adivinar: en mi instalación de Slackware no se encuentra Nautilus, así que vamos a solucionarlo.

Las opciones que se me ocurren son:

  1. Instalar Nautilus.
  2. Hacer un enlace simbólico de Thunar – Nautilus.
  3. Hacer un script con el nombre de Nautilus que cargue Thunar.

Como no deseo instalar Nautilus en Slackware (eso me suena muy raro), elijo la opción 2 simple, astuto y elegante… pues no tanto porque TrueCrypt llama a Nautilus con la siguiente instrucción:

/usr/bin/nautilus --no-default-window --no-desktop /media/truecrypt1

Lo cual nos provocará otro error:

Thunar: Unknown option --no-default-window

Así que para solucionarlo vamos por la opción 3. Este sería el script:

#!/bin/bash
exec thunar $3
exit 0

Para que funcione hay que llamarlo “nautilus” y colocarlo en el directorio de ejecutables:

/usr/bin/nautilus

Script que reemplaza a /usr/bin/nautilus

Script que reemplaza a /usr/bin/nautilus

Problema resuelto.

Fuente:

Thread de ArchLinux

Amarok con MySQL

Amarok es un programa excelente, es sin duda uno de los más populares reproductores entre la comunidad de linuxeros y es de esas pocas aplicaciones que los usuarios de Windows desean sin poder tenerla.

Aquellos que como yo usen Amarok para administrar y reproducir su colección de mp3, se habrán dado cuenta de que corre bastante lento con una colección de tamaño muy grande, incluso hay quien dice que con unas 3,000 pistas Amarok ya empieza a tener problemas. Esto debido a que por omisión utiliza una base de datos SQLite para manejar los datos, y cuando estos son muchos el programa empieza a volverse lento.

En mi caso Amarok tardaba unos dos minutos en iniciar y en general todo el sistema se volvía un poco lento, con mi colección de unos 77 GB.

Una solución para a esto es hacer que Amarok use MySQL para administrar la colección de música, para ello lo primero que hay que hacer es tener instalado Amarok y MySQL, en el caso de una instalación completa de Slackware 14 ambos vienen instalados. Yo estoy utilizando Slackware 14 con KDE 4.9.2, Amarok 2.6 y MySQL 5.5.27.

Luego hay que ejecutar MySQL en el caso de que no se esté ejecutando ya, para ello primero se le dan los permisos de ejecución y luego se inicia:

# chmod +x /etc/rc.d/rc.mysqld
# /etc/rc.d/rc.mysqld start

Luego entrar en el prompt de MySQL:

# mysql -u root -p

En mi caso salió el siguiente error:

error: 'Can't connect to local MySQL server through socket '/var/run/mysql/mysql.sock' (2)'
Check that mysqld is running and that the socket: '/var/run/mysql/mysql.sock' exists!

Para solucionarlo utilicé el script que viene el el sistema para instalar base de datos en el directorio /usr/bin:

# /usr/bin/mysql_install_db

Hay que darle los permisos correctos a los directorios que utiliza, haciendo que el directorio pertenezca al grupo y usuaio mysql, lo hice con los dos directorios siguientes solo para estar seguros :).

# chown -R mysql:mysql /var/run/mysql/
# chown -R mysql:mysql /var/lib/mysql/

Iniciando MySQL:

# mysqld_safe &

Ahora hay que crear una contraseña para el usuario root:

# mysqladmin -u root password 'aquí_la_contraseña'

La contraseña debe ir entre comillas sencillas. Ahora si iniciar y si todo va bien, aparecerá un mensaje de bienvenida:

# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.5.27-log MySQL Community Server (GPL)

Ejecutar los comandos siguientes, el primero es para crear una base de datos que se llame amarokdb, luego especificar que se usará mysql, crear un usuario llamado amarokuser asignarle una contraseña y los permisos necesarios en el servidor local. Finalmente salir y el programa tan educadamente se despedirá.

mysql> CREATE DATABASE amarokdb;
mysql> USE mysql;
mysql> GRANT ALL ON amarokdb.* TO amarokuser@localhost IDENTIFIED BY 'contraseña_de_amarokuser';
mysql> FLUSH PRIVILEGES;
mysql> quit
Bye

Y para segurarnos de que ya está el archivo que faltaba…

# ls -l /var/run/mysql/

Aparecerá:

srwxrwxrwx 1 mysql mysql 0 oct 28 00:36 mysql.sock

Finalmente hay que abrir Amarok e ir a Preferencias > Configurar Amarok > Base de datos y marcar la casilla que dice Utilizar base de datos MySQL externa. Con los comandos del promt de MySQL la configuración de Amarok coincide, solo hay que ponerle la contraseña que utilizamos para amarok user y listo, reiniciar Amarok para que los cambios tengan efecto.

Amarok con MySQL

Como resultado tenemos que Amarok sigue tardando un poco al iniciar aunque ya es menos que antes, y hay un a considerable mejoría en la estabilidad del programa una vez iniciado todo fluye como el agua y los cambios hechos en el directorio de la colección se reconocen al instante.

NOTA: Si cada vez que se inicia Amarok toda la lista de canciones vuelve a cargarse, hay que asegurarse de que el directorio de Colección esté marcado ;).

Saludos.

Fuentes:

Mini Turoriales GNU
Viva o Linux

Reproducción en Amarok se detiene después de cada canción

Amarok es mi reproductor preferido a la hora de escuchar mi musica, tengo (como muchos) una gran colección de archivos en mp3 y otros formatos de música. Sin embargo, como también le sucedió a muchos, al actualizar a Slackware -current Amarok 2.5 empezó a dar problemas pues únicamente reproducía una canción y se detenía.

El problema en sí consiste en el motor (phonon), por lo que pude leer los de xine y mplayer ya no son desarrollados y no deberían usarse en Slackware, el único que está en desarrollo es gstreamer. Sin embargo ninguno de éstos realmente funcionaba en mi sistema, pues o reproducían una canción y se detenían o simplemente no daban sonido.

Para seleccionar el motor en Amarok hay que hacer:

Preferencias > Configurar Amarok > Reproducción > (Botón) Configurar Phonon > (Pestaña) Motor y con las flechas dar “Preferir” para subir y colocar en primer lugar de la lista al que se desea usar.

Amarok 2.5 en Slackware -current

Amarok 2.5 en Slackware -current

Configurar Amarok 2.5

Configurar Amarok 2.5

Seleccionar Phonon

Seleccionar Phonon

Phonon gstreamer

Una forma de arreglar este “error” es mediante la instalación de los siguientes paquetes y usar el gstreamer como phonon predeterminado:

gst-plugins-ugly
gst-plugins-bad
gst-ffmpeg

Que yo como es usual instalé con sbopkg:

# sbopkg -i "gst-plugins-ugly gst-ffmpeg gst-plugins-bad"

Phonon VLC

Otra forma de solucionar este conflicto consiste en usar el phonon de VLC. Existe un paquete de esta versión de phonon para Slackware creada por alienBOB, sin embargo, parecer ser algo obsoleta y por lo mismo una recomendación que encontré por la red fue instalar el phonon VLC desde las fuentes.

Cabe señalar que utilicé el paquete de alienBOB pero no me dio resultados exitosos, pues no producia sonido al reproducir canciones, así que decidí instalarlo desde las fuentes para probar, el procedimiento es el siguiente.

Primero descargar el paquete desde KDE Projects. Esto se puede hacer de diferentes formas, en mi caso escribí lo siguiente en el terminal:

$ git clone http://anongit.kde.org/phonon-vlc

Cuando se haya terminado de descargar se creará un directorio llamado phonon-vlc/ al cual hay que entrar haciendo:

$ cd phonon-vlc/

Se crea un nuevo directorio llamado build:

$ mkdir build
$ cd build/

Finalmente, ejecutar el comando cmake para posteriormente instalar como root:

$ cmake -DCMAKE_INSTALL_PREFIX=`kde4-config --prefix` -DCMAKE_BUILD_TYPE=Release ..

Todo el comando tiene que ir en una sola línea. Ahora instalar.

# make install

Conclusiones

Reiniciar Amarok después de seleccionar el phonon GStreamer o VLC para aplicar los cambios y listo.

Cabe mencionar que el procedimiento que me sirvió para solucionar todo problema fue con el VLC, pues con GStreamer a veces Amarok se congela, no reproduce música y tengo que terminar el proceso.

Saludos Salckers y espero que les sirva.

Fuentes:

Phonon VLC
VLC Backend en Myriam’s blog

VideoLAN Forums

Thread en LQ

Actualizaciones en Slackware -current (Calligra y openSSL)

Esta semana Patrick Volkerding ha hecho nuevas actualizaciones a Slackware -current. La primeras que voy a mencionar de ellas son actualizaciones de seguridad de openSSL y wicd. La primera con una vulnerabilidad que es un exploit de buffer overflow y la segunda con escalada de privilegios. Además se actualizó el paquete gdb.

Otra de las actualizaciones importantes es el rebuilt de Calligra que incluye un parche con el cual debería solucionarse el problema que daba al abrir un documento .odt.

Este es Calligra Words ejecutándose en Slackware -current:

Calligra en Slackware

Calligra en Slackware

Y este es el error que da al intentar abrir un documento .odt creado con esta misma aplicación:

El archivo manifest parece estar dañado. No se puede abrir el documento.

Error de Calligra Words

Error de Calligra Words

No fue posible abrir /home/eduardo/Documents/Documento Calligra.odt
Razón: No es un archivo de Calligra válido: /home/eduardo/Documents/Documento Calligra.odt

No se puede abrir el archivo con Calligra

No se puede abrir el archivo con Calligra

Bueno despues de los muy ya conocidos:

slackpkg update
slackpkg install-new
slackpkg upgrade-all
slackpkg clean-system

El problema con Calligra queda solucionado y las actualizaciones de seguridad se aplican al sistema.

NOTA: Al usar slackpkg clean-system hay que tener cuidado de desmarcar o deseleccionar los paquetes que se deseen conservar en el sistema.

NOTA 2: Después de actualizar, si se está usando NetworkManager en vez de Wicd hay que volver a desactivar el inicio del cliente de wicd agregando la línea “NotShowIn=KDE” (sin incluir las comillas) al final de los siguientes dos archivos:

/etc/xdg/autostart/wicd-tray.desktop
/usr/share/autostart/wicd-tray.desktop

¡Saludos!

Fuente:

Hilo en LQ

Cannot enter home directory. Using /.

Bueno este post lo tenía como borrador desde hace tiempo, lo que sucede es que uso mi blog como un repertorio de notas que me sirven a veces para recordar lo que hice para solucionar un error o alguna configuración de mi sistema, a veces confío mas en internet que en mi memoria.

Lo que sucede es que siempre guardo mi directorio /home/usuario en una partición de mi disco duro, así si necesito reinstalar el sistema (lo cual era frecuente con Slackware) mis archivos personales y del trabajo no se perdían. Solo volvía a montar el directorio en la misma ruta y todo listo otra vez… hasta que un día me pasó lo siguiente al encender mi máquina:

Cannot enter home directory. Using /.
Could not start kstartupconfig4. Check your installation.

Para solucionarlo andube buscando por la red (no recuerdo el sitio que consulté) y encontré que se debe a un problema de permisos, ya que todo pertenece a root y por ello otro usuario no puede hacer uso de estos archivos, para solucionarlo simplemente hay que entrar en modo texto y en el terminal ejecutar lo siguiente para darle permisos a la Carpeta personal.

Primero entrar a la carpeta personal, en mi caso es:

# cd /home/eduardo/

Luego por mis necesidades le doy permisos totales a todos con el comando siguiente, supongo que todos los lectores sabrán lo que significan los tres “7” y conozcan los riesgos que ello implica (sino pues hay mucha información que lo explica como por ejemplo éste blog), la opción -R es para recursividad:

# chmod -R 777 *

Finalmente usé el comando chown que sirve para cambiar el propietario (owner) y grupo de cierto archivo o directorio, lo cual tuve que hacer pues como ya dije antes todo estaba como propiedad de root y el sistema no me permitía accesar a nada en mi partición. La opción -R es para que se procesen archivo y directorios recursivamente, la opción que sigue es el usuario:grupo al que se desean cambiar los archivos y directorios finalmente se introduce la dirección.

# chown -R eduardo:users /home/eduardo

Por alguna parte vi que alguien además colocaba un asterisco al final así:

# chown -R eduardo:users /home/eduardo/*

Supongo que también es para procesar todos los archivos pero no veo la diferencia entre lo primero, si alguien por ahi sabe cual es la forma correcta por favor ilumíneme.

Bueno espero haber recordado todo bien. Saludos