Archive for Linux

Instalar Debian Linux en el Asus N56VM

Hace poco me compré un nuevo portátil y decidí cambiar de distro de Linux, pasé de Kubuntu a Debian. Tras unos meses usando Debian, puedo decir que es bastante estable y funciona bien, pero al final he decido volver a Kubuntu, principalmente por la ausencia de algo equivalente a los PPA de Ubuntu en Debian, y la dificultad para instalar la últime versión de algunos programas por no estar en los repos oficiales de Debian.

De todas maneras, como la instalación de Debian no fue trivial, pongo por aquí los pasos que seguí al realizar la instalación, por si a alguien le resultan de utilidad

Preparando la instalación

La distribución escogida para esta instalación es Debian Wheezy (actual rama testing de Debian) debido a que ofrece un equilibrio entre estabilidad y software reciente, y también porque no sé si Debian Squeeze (actual rama estable) soporta la instalación de la versión de GRUB con soporte UEFI.

Para aquellos que no lo sepan UEFI es un nuevo estándar que viene a sustituir a la obsoleta BIOS que llevan usando desde hace años todos los PCs, y como tecnología nueva que es, la distro que instalemos tiene que tener soporte para UEFI o de lo contrario no podremos arrancar el sistema o incluso en el peor de los casos no podríamos ni instalarlo.

El primer paso que tendremos que hacer será bajar una ISO de Kubuntu, que usaremos para arrancar el equipo y redimensionar las particiones del disco para hacerle hueco a Debian.  La versión usada en este articulo es la última disponible en el momento de escribirlo, es decir Kubuntu 12.10.

Una vez que tengamos la ISO de Kubuntu, la grabamos en un pendrive (de 2GB como mínimo) usando un programa como Unetbootin (yo usé la versión 583) y arrancamos el portátil desde el pendrive.

IMPORTANTE: Durante el proceso de instalación que se describe en esta guía, se arrancará diversas veces desde un pendrive. Para arrancar correctamente desde el pendrive, tendremos que pulsar la tecla Esc durante el inicio del portátil con el pendrive ya enchufado. Nos aparecerá un menú de arranque que mostrará diversas opciones, y podremos ver que la opción para arrancar el pendrive sale 2 veces, una como “General USB Flash Disk” (o algo similar) y otra como “UEFI: General USB Flash Disk”. Debemos escoger SIEMPRE la segunda opción, es decir, la que empieza por “UEFI:” ya que sino nos dará problemas durante el proceso de instalación.

Una vez arrancado Kubuntu, tenemos que redimensionar las particiones del disco para hacerle sitio a Debian, y para hacerlo simplemente tendremos que usar el “Gestor de particiones” que está disponible en “Preferencias del sistema”.

El esquema de particiones inicial del N56VM es el siguiente:

Partición EFI -- 200 MB
Partición reservada de Microsoft -- 128MB
Partición de Windows
Partición de datos de usuario
Partición de recuperación de Windows -- 25GB

No puse los tamaños de las particiones de Windows y datos de usuario porque pueden variar dependiendo de la capacidad del disco duro. En mi caso el disco duro es de 1TB, pero se que existen otras versiones e N56VM que traen disco de otros tamaños, como por ejemplo 750GB.

De todas las particiones que tiene el disco, las únicas con las que vamos a trabajar son la partición de Windows y la partición de datos de usuario. Antes de continuar con el proceso, es necesario asegurarse de que la partición de Windows está desfragmentada y que la partición de datos está vacía. Dicho esto, lo que haremos será redimensionar la partición de Windows a un tamaño de por ejemplo 100GB y eliminaremos la partición de datos de usuario. Con el espacio que nos queda libre crearemos una partición de tipo swap de 2GB, seguida de una ext3 de 10GB. Por último, creamos una ultima partición de tipo ext3 con el espacio sobrante y escribimos los cambios en el disco. Si lo hicimos todo bien deberíamos tener el siguiente esquema de particiones:

Partición EFI -- 200 MB
Partición reservada de Microsoft -- 128MB
Partición de Windows -- 100GB
Partición swap -- 2GB
Partición ext3 -- 10GB
Partición ext3 -- Espacio restante
Partición de recuperación de Windows -- 25GB

Ahora apagamos el equipo y formateamos el pendrive. Luego bajamos la imagen ISO debian-testing-amd64-kde-CD-1.iso y la grabamos en el pendrive con Unetbootin. Después bajamos el paquete firmware-iwlwifi.deb y lo guardamos en la carpeta /firmware del pendrive, tanto en formato .deb como descomprimido (puedes usar 7zip para descomprimir un paquete .deb). Con esto lo que conseguimos es que Debian reconozca y pueda usar la tarjeta WiFi durante el proceso de instalación. Esto es necesario porque la tarjeta de red cableada del N56VM es todavía muy nueva y su driver aún no está incluído en el kernel, por lo que no la podremos usar durante el proceso de instalación, así que necesitaremos usar una red WiFi durante el proceso de instalación.

Instalando Debian

Llegados a este punto, arrancamos el portatil desde el pendrive e iniciamos la instalación de Debian. Cuando lo solicite, nos conectaremos a la red WiFi, y llegado un punto de la instalación nos dará un error diciendo que no se pudo encontrar un kernel compatible. Simplemente lo ignoramos y proseguimos con la instalación. Cuando lleguemos al punto de definir el esquema de particiones, haremos uso de la opción manual y configuraremos la partición ext3 de 10GB como punto de montaje / y la partición ext3 que hicimos con el espacio sobrante como punto de montaje /home. Proseguimos con la instalación hasta que esta termine y reiniciamos el equipo, pero debido a un error en el instalador no podremos arrancar Debian, y en su lugar arrancará Windows, pero tranquilos que hay solución

Arreglando el arranque de Debian

Una vez mas, tendremos que acudir a Kubuntu para que nos eche un cable, asi que lo que toca ahora es formatear otra vez el pendrive y volver a cargarle la ISO de Kubuntu y luego arrancar Kubuntu desde el pendrive.

Una vez arrancado Kubuntu, abrimos Konsole y escribimos lo siguiente:

sudo parted /dev/sda
print

Esto nos mostrará el esquema actual de particiones del portátil. Deberemos anotar el número de la partición EFI (que debería ser 1) y el número de la partición ext3 de 10GB donde instalamos la raíz del sistema (que en mi caso era el 6). Luego escribimos quit y pulsamos enter para salir de parted. Lo siguiente será escribir los siguientes comandos:

sudo modprobe efivars
sudo mkdir /mnt/root
sudo mount /dev/sda6 /mnt/root

Recordad cambiar el 6 por el número de vuestra particion ext3 de 10GB

sudo mount -o bind /proc /mnt/root/proc
sudo mount -o bind /dev /mnt/root/dev
sudo mount -o bind /sys /mnt/root/sys
sudo chroot /mnt/root
mkdir /boot/efi
mount /dev/sda1 /boot/efi

Aquí también hay que cambiar el 1 por el número de la partición EFI, en caso de que fuera distinto

apt-get install linux-image-amd64
apt-get install grub-efi-amd64
grub-install /dev/sda
update-grub
umount /dev/sda1

Otra vez, cambiad el 1 por el número de la partición EFI

exit
sudo umount /mnt/root/sys
sudo umount /mnt/root/dev
sudo umount /mnt/root/proc
sudo reboot

Hecho esto, el portátil se reinicia y ya debería arrancar Debian

Configurar sudo

Por defecto, Debian no configura nuestro usuario principal para que podamos hacer uso de sudo, pero lo podemos arreglar de una manera muy sencilla:

su
gpasswd -a nombre_usuario sudo

Obviamente, en el último comando tenemos que cambiar “nombre_usuario” por el nombre de nuestro usuario

Actualizando el kernel

Ya tenemos Debian instalado y funcionando, pero resulta que el kernel que se instala por defecto (el 3.2) tiene un par de problemas con nuestro portátil: las teclas de subir y bajar brillo no funcionan y el equipo se cuelga tras aproximadamente 2 horas de uso. Para resolverlo tendremos que actualizar a un kernel superior (el 3.5 como mínimo) así que vamos a actualizar al último kernel disponible (el 3.7 en el momento de escribir estas líneas). El problema es que dicho kernel no está en la rama testing de Debian, que es la que estamos usando, asi que tendremos que hacer apt-pinning, o lo que es lo mismo, mezclar dos ramas de Debian, en concreto testing y experimental. De esta manera podremos tener un sistema base Debian testing, pero podremos instalar algunos paquetes de experimental cuando nos interese (como el kernel en este caso o Iceweasel si queremos tener la última versión disponible). Como no me gusta reecribir lo que otros ya escribieron antes que yo, aquí os dejo un tutorial de como hacer apt-pinning:

http://debianfacil.wordpress.com/2009/10/12/apt-pinning-mezclar-diferentes-ramas-de-debian/

Como ejemplo, os dejo aqui mis ficheros de configuración por si alguno se lia:

/etc/apt/sources.list

deb http://ftp.es.debian.org/debian/ testing main non-free contrib
deb-src http://ftp.es.debian.org/debian/ testing main non-free contrib
deb http://security.debian.org/ testing/updates main contrib non-free
deb-src http://security.debian.org/ testing/updates main contrib non-free
deb http://ftp.es.debian.org/debian/ experimental main non-free contrib
deb-src http://ftp.es.debian.org/debian/ experimental main non-free contrib

/etc/apt/preferences

Package: *
Pin: release a=testing
Pin-Priority: 800

Package: *
Pin: release a=experimental
Pin-Priority: 700

/etc/apt/apt.conf

APT::Default-Release "testing";
APT::Cache-Limit 30000000;
Apt::Get::Purge;
APT::Clean-Installed;
APT::Get::Fix-Broken;
APT::Get::Fix-Missing;
APT::Get::Show-Upgraded "true";

Una vez que terminamos con el apt-pinning, solo queda actualizar el kernel:

sudo apt-get install -t experimental linux-image-3.7-trunk-amd64

Habilitar tarjeta de red

Como ya vimos antes, esta versión de Debian no reconoce la tarjeta de red cableada del portátil. El problema es que es un hardware muy reciente, y su driver aún no está integrado en el kernel de manera oficial. Sin embargo, existe el driver experimental “alx” que podemos instalar y habilitará la tarjeta de red. Básicamente hay dos manera de instalarlo, cada una con sus pros y sus contras:

Instalando el módulo alx mediante DKMS

El sistema DKMS tiene la ventaja de que instala los módulos de manera que sobreviven a las actualizaciones del kernel y por tanto no hay que reinstalarlos al actualizar. En teoría es el mejor método, pero de momento el driver alx que vamos a instalar con DKMS habilitado, tiene el inconveniente de que impide que el portátil pueda entrar en suspensión. Más adelante explicaré “soluciones” a esto, pero de momento vamos con el proceso de instalación:

Lo primero es descargarse el paquete alx-dkms_0.2_all.deb y luego instalarlo con estos comandos

sudo aptitude install dkms
sudo dpkg -i alx-dkms_0.2_all.deb

Si no te importa no poder suspender el portátil, no tienes que hacer nada más. Si te interesa poder suspender el portátil, es muy sencillo hacerlo, simplemente tienes que deshabilitar el módulo con este comando:

sudo modprobe -r alx

Y si en cualquier momento necesitas usar la tarjeta de red, sólo tienes que volver a cargar el módulo usando este comando

sudo modprobe alx

De todas maneras, hay que tener en cuenta que al deshabilitar el módulo con el primer comando, se volverá a habilitar automáticamente en el próximo reinicio. Para hacer que se deshabilite cada vez que se enciende el equipo (y así poder habilitarlo manualmente cuando nos interese) hay que escribir el siguiente comando:

sudo nano /etc/modprobe.d/alx.conf

Y añadir en una nueva linea al final el siguiente texto:

blacklist alx

Luego simplemente pulsamos Ctrl+X y luego S. Ahora solo queda ejecutar los siguientes comandos y habremos terminado:

sudo depmod -ae
sudo update-initramfs -u

Compilar manualmente el módulo alx

Al compilar manualmente el módulo alx, nos libramos del problema que impide al equipo entrar en suspensión, todo ello sin necesidad de estar habilitando y deshabilitando el módulo constantemente. Como desventaja, cada vez que actualicemos el kernel, tendremos que volver  compilar el módulo.Para compilar manualmente alx, abrimos un terminal y escribimos estos comandos:

su
apt-get install build-essential linux-headers-amd64 linux-headers-`uname -r`
wget -O- http://linuxwireless.org/download/compat-wireless-2.6/compat-wireless-2012-09-25-pc.tar.bz2 | tar -xj
cd compat-wireless-2012-09-25-pc
./scripts/driver-select alx
make
make install
modprobe alx
rm -rf compat-wireless-2012-09-25-pc
exit

Habilitando el bluetooth

Para hacer que el bluetooth funcione en KDE, primero tendremos que instalar el soporte de bluetooth de KDE:

sudo apt-get install bluedevil rfkill

Ahora que ya tenemos soporte de bluetooth, pero el adaptador de bluetooth no está encendido, así que tendremos que encenderlo con este comando:

sudo rfkill unblock bluetooth

Si en algún momento queremos desactivar el bluetooth (por ejemplo, para evitar que consuma batería) basta con ejecutar este comando:

sudo rfkill block bluetooth

Deshabilitar el touchpad

A veces puede ser interesante deshabilitar el touchpad, por ejemplo si estamos usando un raton USB y queremos evitar tocar accidentalmente el touchpad al escribir. Para ello simplemente tendremos que crear un fichero de texto llamado “touchpadtoggle.sh” con el siguiente contenido:

#!/bin/sh
ENABLED=$(( `synclient -l | grep TouchpadOff | cut -d\=  -f 2 | cut -d ' ' -f 2` ))
if [ $ENABLED = 1 ]; then
ENABLE=0
else
ENABLE=1
fi
synclient TouchpadOff=$ENABLE

Luego tenemos que darle permisos de ejecución con este comando:

chmod +x ./touchpadtoggle.sh

Ahora cada vez que hagamos click en el archivo touchpadtoggle.sh activará o desactivará el touchpad dependiendo de su estado

Poner todas las aplicaciones en español

A veces pasa que algunas aplicaciones del sistema muestran la interfaz en inglés. Para solucionarlo escibimos el siguiente comando:

su dpkg-reconfigure locales

y en el menu que sale seleccionamos “es_ES.UTF8”

Habilitar InstantKey

La tecla InstantKey es la que se encuentra en la parte superior izquierda del teclado. Para poder usarla en KDE, tendremos que crear en nuestra carpeta de usuario un archivo de texto llamado .Xmodmap que contenga lo siguiente

keycode 248 = XF86Launch2

Ahora creamos el archivo ~/.xprofile (también en nuestra carpeta de usuario) y lo rellenamos con lo siguiente

xmodmap ~/.Xmodmap

Reiniciamos y ya podremos usar esta tecla para asignarle la función que queramos en Preferencias del sistema > Accesos rápidos y gestos

Podeis encontrar mas información sobre el tema en: https://wiki.archlinux.org/index.php/Extra_Keyboard_Keys#Step_2:_Map_keycodes

Solucionar problemas con los pendrives

Si notáis que los pendrives no funcionan correctamente (no sois capaces de montarlos), esto se debe a un bug de la instalación. Simplemente hay que ejecutar este comando:

sudo nano /etc/fstab

y eliminar cualquier referencia a /dev/sdb (o /dev/sdc si el portátil tiene dos discos duros). Para que veáis un ejemplo, este es el aspecto de mi archivo /etc/fstab justo despues de instalar

# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/sda6 during installation
UUID=fdfefe0e-3eba-4c28-a506-e3332fd1b753 /               ext3    errors=remount-ro 0       1
# /boot/efi was on /dev/sda1 during installation
UUID=0233-E3FA  /boot/efi       vfat    defaults        0       1
# /home was on /dev/sda7 during installation
UUID=970fa0f3-e4b5-4748-a019-4dc43666dcf1 /home           ext3    defaults        0       2
# swap was on /dev/sda5 during installation
UUID=db9dea14-cc7c-4d30-bf84-0d087b1653a4 none            swap    sw              0       0
/dev/sr0        /media/cdrom0   udf,iso9660 user,noauto     0       0
/dev/sdb1       /media/usb0     auto    rw,user,noauto  0       0

En este caso, como podéis ver, hay que eliminar la última línea, guardar el archivo y reiniciar. Problema resuelto

Instalación de programas básicos

Por último os dejo un comando para instalar algunas cosas bastante necesarias:

sudo apt-get install kde-config-touchpad gtk2-engines-oxygen gtk3-engines-oxygen kde-config-gtk-style flashplugin-nonfree partitionmanager chromium chromium-l10n kolourpaint4 ktorrent skanlite unrar

Este comando instala lo siguiente:

  • Configuración del touchpad
  • Soporte para aplicaciones GTK
  • Adobe Flash
  • Gestor de particiones
  • Chromium
  • KolourPaint
  • KTorrent
  • Skanlite (soporte para escáneres)
  • Unrar

Creo que lo único que me quedó por hacer fue instalar y habilitar Bumblebee, para poder usar la gráfica NVidia o deshabilitarla completamente para que no consuma batería innecesariamente.

Cómo instalar Dropbox e integrarlo en KDE

Un día descubres por casualidad un servicio tan útil como Dropbox. Vas a su página web y ves que soportan casi cualquier plataforma, Linux incluido. Es entonces cuando ves que los paquetes que hay para descarga están concebidos para usarse con Nautilus en GNOME, y claro, tu eres usuario de KDE, asi que te pillas un mosqueo importante…

Vamos a poner las cosas un poco más claras: el paquete (RPM o DEB) que hay para descargar en la web de Dropbox, contiene en realidad dos programas, el demonio dropboxd (que es el que hace todo el trabajo de sincronizar) y un plugin para Nautilus que lo único que hace es añadir al menu contextual (el que aparece al pulsar con el botón derecho del ratón) las opciones extra de Dropbox (ver las versiones anteriores de los documentos, generar enlaces públicos… etc)

Si eres usuario de KDE, puedes instalar perfectamente el paquete que ponen en su web, lo único que hará será instalar dropboxd (que es lo que realmente necesitamos), el plugin para Nautilus (que nos sobra y no vamos a enterarnos de sus existencia) y otro paquete más que es una dependencia del plugin de Nautilus. El caso es que no instalará Nautilus ni ninguna otra cosa rara de GNOME que no necesitemos y nos ocupe un montón de espacio. El problema de todo esto es que no tendremos disponibles en Dolphin las funciones extra que proporciona el plugin de Nautilus, y además, que cojones, no me gusta instalar dependencias de GNOME y menos si no las voy a usar, por eso aquí traigo un script de cosecha propia que hace una instalación más limpia (sin cositas raras de GNOME) y además nos proporciona integración con Dolphin y Konqueror (Yay!)

Para poder tener una instalación de Dropbox integrada con KDE, lo único que tenéis que hacer es copiar el texto siguiente y pegarlo en un archivo con el nombre dropbox-install.sh en vuestra carpeta personal:

#!/bin/bash
#
# Dropbox KDE Installer v1.2
# by ZapperDJ.net
#
cd ~
wget -O dropbox.tar.gz "http://www.dropbox.com/download/?plat=lnx.$(uname -m)"
tar -xvzf dropbox.tar.gz
ln -s ~/.dropbox-dist/dropboxd $(kde4-config --localprefix)/Autostart/dropboxd
rm dropbox.tar.gz

kdesudo "apt-get -y install python sqlite3 klipper python-m2crypto xdg-utils"
wget -O dropboxsm.tar.gz "http://kde-apps.org/CONTENT/content-files/124416-DropboxServiceMenu-0.15.4.tar.gz"
tar -xvzf dropboxsm.tar.gz
cd DropboxServiceMenu-*
./install-it.sh
cd ..
rm -rf DropboxServiceMenu-*
rm dropboxsm.tar.gz

.dropbox-dist/dropboxd > /dev/null 2>&1 &

Una vez que tengais creado el archivo dropbox-install.sh, sólo teneis que darle permisos de ejecución y luego ejecutarlo. Podeis hacerlo con los siguientes comandos:

chmod +x dropbox-install.sh
./dropbox-install.sh

El script empezará a trabajar, y llegado a cierto punto te pedirá tu contraseña. Esto es para asegurarse de que tienes instaladas todas las dependencias necesarias para que todo funcione, y en caso de no tenerlas, instalarlas. Después de eso se abrirá la aplicación de Dropbox y podrás configurarla con tu cuenta.

Para terminar, solo me queda decir que el script está creado y probado en Kubuntu 11.04 Natty Narwhal, aunque es muy posible que funcione en otras distros sin hacer ningún cambio

ACTUALIZACIÓN (18/5):  Disponible  la versión 1.1, que detecta el tipo de arquitectura que usa nuestra distro (x86 si es de 32bit o x86_64 si es de 64bit) e instala la versión correspondiente del cliente de Dropbox

Solucionar cuelgues de sistema en Linux

Normalmente, cuando sufrimos un cuelgue de sistema en Linux suele ser porque el servidor X tuvo un fallo. Estos casos se pueden distinguir perfectamente porque el PC deja de responder a cualquier entrada de datos (las combinaciones de teclado no funcionan y el puntero del ratón no se mueve). La solución más sencilla en estos casos es el uso de la combinación Ctrl+Alt+Retroceso, que reinicia el servidor X y nos devuelve a la pantalla de inicio de sesión, perdiendo todos el trabajo que no hubiésemos guardado, obviamente ya que eso siempre pasa con los cuelgues generales del sistema (los usuarios de Windows ya estarán muy acostumbrados a eso). Sin embargo, en algunas distribuciones de Linux como Ubuntu, esta combinación de teclas se encuentra deshabilitada, por lo que tendremos que usar alguna de las siguientes alternativas:

Aunque el servidor X esté colgado, deberíamos poder acceder a alguna de las 6 terminales virtuales libres que tiene el sistema, ya que la única que no responde es la número 7, que es donde se ejecuta el servidor X. Usando la combinación Ctrl+Alt+F1 accederemos al terminal virtual 1, con la Ctrl+Alt+F2 al terminal 2, etc. Accediendo a alguno de los terminales virtuales conseguiremos una pantalla de linea de comandos desde la que podremos reiniciar el servidor X. Lo primero será poner nuestro nombre de usuario y contraseña, y después ejecutar el siguiente comando:

Si usas KDE:

sudo /etc/init.d/kdm restart

Si usas Gnome

sudo /etc/init.d/gdm restart

Si usas otro escritorio (o no sabes cual usas)

cat /etc/X11/default-display-manager

Esto nos mostrará la ruta de nuestro “display manager”, y será algo parecido a esto:

/usr/bin/nombre_del_dm

Ahora que ya sabemos cual es nuestro “display manager”, sólo tendremos que ejecutar el siguiente comando, sustituyendo nombre_del_dm por lo que proceda:

sudo /etc/init.d/nombre_del_dm restart

Si por algún motivo el argumento “restart” no funcionase, puedes probar a escribir el comando anterior cambiando “restart” por “stop” y ejecutándolo otra vez pero cambiando “restart” por “start”. Por ejemplo:

sudo /etc/init.d/kdm stop

sudo /etc/init.d/kdm start

Una vez reiniciado el servidor X debería cambiar automáticamente al terminal 7 y mostrarnos la pantalla de inicio de sesión. Si eso no ocurriese, la combinación Ctrl+Alt+F7 nos llevará al terminal 7 para que podamos continuar trabajando en modo gráfico

Si por cualquier motivo lo anterior no funcionase, entonces recurriremos a la artillería pesada: es hora de que os presente a la tecla que os salvará más de una vez, me refiero a la tecla SysRq

La tecla SysRq (System Request) o también conocida como PetSis (Petición del Sistema) en los teclados hispanos, se usa en una combinación de teclas para realizar llamadas al sistema a bajo nivel, permitiéndonos retomar el control cuando los niveles superiores fallan pero, ¿Donde se encuentra esta tecla? Pues en la mayoría de los teclados sueles ser la misma que ImprPant (Imprimir pantalla) y está situada cerca de la tecla Supr. En este caso, la combinación que nos interesa para volver a ganar el control de la máquina reiniciando el servidor X es la siguiente:

Alt+SysRq+K

Con esa combinación debería reiniciarse el servidor X y dejarnos en la pantalla de inicio de sesión

¿Que hacer si todo lo anterior falla?

Pues lamentablemente nos tocará reiniciar el equipo, aunque SysRq nos ofrece una manera más segura de reiniciar que apagando y volviendo a encender el equipo. Es importante que las siguientes letras en este mismo orden se os queden grabadas en la cabeza: RSEIUB. Una buena manera de acordarse es usando la regla nemotécnica “Rápido Soy En Inventarme Un Baile”

Esas son las letras que tendremos que usar en ese mismo orden en conjunción con SysRq y Alt para reiniciar de manera segura el equipo, así que la combinación a usar sería la siguiente:

Alt+SysRq+R (Esta combinación rehabilita el teclado, así que si antes no podías acceder a los terminales virtuales usando Ctrl+Alt+<Teclas F1 a F6> ahora es un buen momento para reintentarlo, y si funciona, reiniciar el servidor X con los comandos arriba descritos. En caso contrario, sigue con la secuencia de teclas para reiniciar el equipo)

Alt+SysRq+S (Sincroniza los datos de los volúmenes montados, para evitar la pérdida de datos y/o corrupción del sistema de archivos)

Alt+SysRq+E (Da la última oportunidad a los procesos para que terminen por las buenas)

Alt+SysRq+I (Termina por las malas a los procesos que queden todavía vivos)

Alt+SysRq+U (Desmonta todos los volúmenes y los vuelve a montar en modo de sólo lectura)

Alt+SysRq+B (Reinicia el equipo)

No pasará aparentemente nada hasta que completéis la secuencia, es entonces cuando el PC se reiniciará.

Problemas a la hora de usar las combinaciones SysRq

Probablemente si estas leyendo esto desde un portátil, te hayas topado con el siguiente problema: La tecla SysRq está serigrafiada en color azul, lo cual implica que tienes que usar la tecla Fn para activarla, lo cual no sería un problema si no fuese por el hecho de que las teclas U, I, K tienen serigrafiados en azul los números 4, 5 y 2 respectivamente. El caso es que en este escenario si usamos la combinación Alt+Fn+SysRq+K no conseguiríamos reiniciar el servidor X, puesto que en realidad le estaríamos enviando al kernel la combinación Alt+SysRq+2 en vez de Alt+SysRq+K, que es la que reinicia el servidor X.

Ante esto existen dos posibles soluciones, vamos con la primera, que está probada y se que funciona. Se trata de ejecutar las combinaciones de teclas de esta manera:

Alt+Fn+SysRq+Soltar la tecla Fn+Letra

Como ejemplo pondremos el caso de que queremos reiniciar el servidor X, entonces tendríamos que hacer lo siguiente:

Alt+Fn+SysRq

Ahora soltamos la tecla Fn y sin dejar de pulsar las teclas Alt+SysRq pulsamos la letra K

Puede parecer complicado al principio, pero enseguida la coges el truco. Bien, ahora que el primer método está explicado, vamos con el segundo que, aunque no tuve la oportunidad de probarlo en una situación de cuelgue real, debería funcionar perfectamente. La idea es hacer uso de la tecla NumLock, pulsándola antes de empezar con las combinaciones SysRq. Como la tecla NumLock hace que las teclas que tienen el teclado numérico serigrafiado en azul escriban el número que está en azul en vez de la letra en cuestión, al pulsar Fn cancelaríamos momentáneamente este comportamiento y la tecla escribiría la letra en vez del número. Esto se puede comprobar fácilmente:

Con la función NumLock desactivada:

K = K

Fn+K = 2

Con la función NumLock activada:

K = 2

Fn+K = K

Visto como funciona el método, en teoría el pulsar NumLock antes de comenzar con las combinaciones SysRq haría que la tecla Fn ya no fuese un problema y pudiésemos introducir las combinaciones de manera más fácil.

Otro problema común es que al ejecutar las combinaciones de teclas cuando el servidor X no está del todo colgado, puede que nos salgan diálogos de captura de pantalla (porque recordemos que SysRq comparte tecla con ImprPant). Esto normalmente se debe a que las teclas no se pulsan en el orden correcto, por ejemplo:

Fn+SysRq+Alt+K lanzará el diálogo de captura de pantalla y muy probablemente no reiniciará el servidor X. Sin embargo, la combinación Alt+Fn+SysRq+K no nos dará ese problema y reiniciará el servidor X sin que nos salga el diálogo de captura de pantalla. Como apunte final recordar que si usáis un PC de sobremesa, las combinaciones anteriores son las mismas, solo que no se usa la tecla Fn.

Y eso es todo sobre como solucionar cuelgues en Linux, espero que a alguien le sirva de ayuda :)

Los sistemas operativos y yo

Parece que hoy en dia el mundo esta dividido en tres grandes frentes en lo que a informatica se refiere: los que usan Windows, los linuxeros y los fans de Apple y su MacOS X. Parece que todo se convierte en una guerra entre todos para defender el sistema que usan, o lo que es lo mismo, una guerra de fanboys. Muchas veces me dicen que soy un fanboy de Linux, cosa que no es cierto, porque sino no usaría Windows, usaría distros de Linux completamente libres (sin ningun driver propietario, aunque eso supusiese no poder usar dicho hardware debido a que el controlador libre no existe o no funciona), y en vez de decir Linux diria GNU/Linux (y esta es la primera vez que lo digo). No soy para nada extremista, sin embargo si que admito que si me preguntasen cual es mi sistema favorito contestaria Linux.

Creo que la libertad es algo muy importante, el poder hacer con tu PC lo que te salga de los cojones sin tener que estar atado por estúpidas licencias propietarias, por eso me gusta Linux y el software libre en general, ademas que creo que el hecho de abrir el código de un programa hace que este evolucione más rápido, ya que cualquiera puede contribuir. ¿Cuantas personas trabajan programando los sistemas operativos propietarios como MacOS X o Windows? ¿Cuantos trabajan en Linux? Creo que el número exacto de personas se podria obtener en el primer caso, pero en el segundo me da que es imposible, por la enorme cantidad de gente que trabaja en el. Comparando el número de programadores de cada uno de los sistemas ¿Cual creeis que avanzará mas rápido?

Partiendo de estas premisas, paso a dar mi opinión sobre estas tres grandes familias de sistemas operativos:

Windows: Vale, me gustan muchos los chistes que de este estilo:

“Dicen que si reproduces un CD de Windows al revés se oyen voces satánicas, eso no es nada, si lo reproduces al derecho instala Windows”

“Computers are like air conditioners, they stop working properly if you open Windows”

La verdad es que los fallos de Windows dan para multitud de chistes, pero como muchos yo creci usando este sistema operativo y lo conozco bastante bien tras el paso de los años, digamos que estoy muy habituado a el, pero reconozco que es un sistema con muchos fallos y que no es la mejor opción para usar en un PC, por eso estoy en proceso de migración, pero mientras tanto, uno hasta le acaba cogiendo cariño a Windows y sus errores, sobre todo tras la salida de Windows Vista, que ha hecho que paradojicamente me convierta en un defensor de Windows XP (siempre que no se le compare con Linux claro).

Es indiscutible que Microsoft es una compañía que suele hacer muy malas prácticas, que avanzó hacia donde está hoy a base de comprar ideas de otros o plagiarlas. Una compañia que no era muy buena haciendo software, pero que llegó a lo mas alto gracias a las excelentes habilidades comerciales de Bill Gates, que con su estrategia comercial y su MS-DOS consiguió que a día de hoy los ordenadores esten en todas las casas y no sólo en los centros de computación (los méritos hay que reconocerlos)

MacOS: Muchos hablan de Mac como la mejor alternativa para aquellos que están hartos de Windows y sus fallos, sin embargo no creo que sea la mejor opción. Es cierto que como sistema funciona mucho mejor que Windows, pero tiene bastantes desventajas. La primera de ellas es el hecho de que si quieres usar MacOS legalmente tienes que comprar un equipo Apple, y no todo el mundo está dispuesto a pagar un pastón por un ordenador nuevo sólo porque quiere cambiar de sistema operativo (por eso mucha gente sigue con XP y no se pasa a Vista), por no hablar de que en los equipos de Apple lo que se paga es mucho la marca y el hecho de que sean ordenadores “de diseño”. Por otro lado, el hecho de que sólo se venda con ordenadores Apple limita mucho el terreno de operación de este sistema operativo, lo que juega a su favor, ya que es más sencillo hacer que un sistema no falle si sólo tiene que ejecutarse en 10 configuraciones de hardware distintas, por eso es por lo que MacOS funciona tan bien y no falla y esto, unido a una interfaz extremadamente simple, hace que mucha gente cansada de Windows y sus errores, que sólo busca poder usar un ordenador sin tener que leerse 50 manuales, tire por la opción de comprarse un Mac.

Sin embargo, hay un par de cosas que no me gustan nada de MacOS. La primera es que la interfaz, tratando de ser lo más sencilla posible, omite muchas opciones de configuración y eso, si eres un usuario avanzado, no gusta nada. Hace que te sientas limitado en lo que puedes hacer con tu sistema operativo y tu ordenador en general. Y ya que hablamos de limitaciones, si nos ponemos a analizar el comportamiento de Apple descubrimos que Microsoft a su lado no es el infierno, sino que más bien es al revés. Aunque a Microsoft siempre se le puso como dictador y tirano, lo cierto es que es una empresa mucho más abierta que Apple. Con Windows puedes trastear mucho más que con MacOS, no te limitan tanto, pero parece que Apple sigue una política mucho más dictadora.

Linux: Hace unos años era un sistema complicado de usar, muy lioso y que solía estar instalado en los PCs de gente con conocimientos altos de informática, pero las cosas han cambiado mucho, principalmente desde la aparición de Ubuntu, la primera distribución que se centro en humanizar y simplificar Linux. A día de hoy Linux es una alternativa perfectamente válida en el 90% de los casos, y conforme va pasando el tiempo se va puliendo cada vez más. Desde el principio estuvo enfocado a ser un sistema robusto y seguro, y hoy en día tiene esa base sólida que le permite desarrollarse con seguridad y los mínimos fallos posibles (a diferencia de Windows, cuyos pilares son muy endebles y todo lo que se desarrolle por encima arrastra los fallos del pasado).

Sin duda Linux tiene un futuro prometedor, ya que se está inmiscuyendo en muchos sectores: telefonos móviles (con la versión Android), en ultraportátiles (con distribuciones como Moblin o Linpus) y captando cada vez más usuarios en el terreno del escritorio, con avances importantes com Compiz o el entrono KDE4, que pondrán la apariencia de Linux a la altura de la de Windows Vista y MacOS X, e incluso superándola. ¿Y he dicho ya que aparte de ser sencillo de usar, no se limita al usuario lo que puede hacer con su sistema?

Concluyendo, buenos y malos ratos pasé con Windows, pero está claro que está destinado a desaparecer. Mientras ese momento no llegue, yo seguiré usando Windows XP y Linux

Algo pasa con KDE4

Hace unos dias lei la noticia de que Linus Torvalds, creador y mantenedor del kernel de linux, anunciaba que dejaba KDE y se pasaba a Gnome.

Linus siempre se caracterizó por criticar duramente a Gnome y recomendar KDE, y siempre se rodeó de polémica porque sus criticas eran muy atacantes. Digamos que, a pesar de ser un personaje muy importante dentro del mundo del software libre, era (y sigue siendo) bastante “troll” a la hora de expresar sus opiniones. Sabiendo esto, resulta muy chocante que ahora se pasase a Gnome, pero todo tiene un motivo, y es que segun el dice, KDE4 es una mierda.

Digamos que Linus tiene se equivoca y a la vez tiene razón. KDE4 es un gran paso adelante en lo que a escritorios para linux se refiere. Es muy vistoso, tiende a ser sencillo sin sacrificar el control sobre las opciones más avanzadas (cosa que se le criticó mucho a Gnome) y es claramente una evolución dedicada a hacer más sencillo todavía el uso de linux para todos los usuarios. Sin embargo, hay un fallo bastante grande, y es que la primera versión oficial de KDE4 estaba bastante incompleta, era bastante inestable y por lo tanto no era apta para el uso diario de los usuarios avanzados, ni mucho menos para los usuarios de a pie. De hecho, había muchas aplicaciones que todavía no estaban portadas a KDE4 y habia que usar las versiones de KDE3, o en las aplicaciones que estaban portadas se podía ver que faltaban muchas características que sí estaban disponibles en KDE3. Viendo esto, es lógico que los primeros que probamos KDE4 dijesemos al principio “¡Oh! ¡Que bonito!” y luego “Vaya mierda, me vuelvo a KDE3”. Al principio no había problema porque pensamos, “Bah, todavía está a medio hacer, pero promete. Dejemos que pulan KDE4 un poco y luego me paso”. Pero luego vino un problema. Resulta que a las principales distros se les ocurrió ir de guays y ofrecer en sus nuevas versiones el escritorio KDE4 por defecto, y en algunas incluso se quitó la posibilidad de poder instalar KDE3 en lugar de KDE4 (Kubuntu por ejemplo) y entonces aqui se lió parda. Muchos usuarios pasaban contentisimos a KDE4 pero luego se llevaban el chasco y les pasó lo que a Linus, que se cabrearon.

¿De quien es el problema entonces? ¿KDE4, las distros o los usuarios? Pues la culpa no la tienen en KDE4, las cosas no salen perfectas a la primera, así que es logico pensar que hasta que pasen unas cuantas versiones mas de KDE4 no sea todavía el sustituto de KDE3. El gran problema aqui fue la decision de las distros mayoritarias de sustituir KDE3 por KDE4 de manera prematura, sabiendo que este último todavía no estaba listo para reemplazar a KDE3.

¿Y que hacemos los usuarios entonces? Pues hay dos opciones, cambiar de distro y usar una que tenga KDE3 por defecto (o que deje instalarlo opcionalmente) o bien seguir con la distro que teniamos, pero no actualizar a la última versión y esperar a que KDE4 madure. Está última opcion no es para echarse las manos a la cabeza, ya que no es necesario actualizarse a la última version ya que normalmente se suele sacar versiones con 6 meses de diferencia, y cada vez que sacan una nueva versión no suelen quitar el soporte ni las actualizaciones de la otra versión, sino que suelen dar unos cuantos meses de soporte y actualizaciones para las versiones antiguas, tiempo que podemos esperar para dejar que KDE4 madure y así podamos cambias sin demasiados problemas

WTF al estilo del pingüino

Estaba yo aburrido en clase mientras estaba trabajando en linux y de repente, por puro aburrimiento me dio por escribir “wtf” en un terminal, y esto es lo k me sale:

ia1na04@lnx-i3e04:~$ wtf
El programa «wtf» no está instalado actualmente. Puede instalarlo escribiendo:
sudo apt-get install bsdgames
bash: wtf: orden no encontrada

Me quedo a cuadros por el tema de que exista un comando llamdo “wtf” en linux, aunque luego me pongo a pensar y deduzco que seria raro que a nadie se le hubiese ocurrido la idea, pero el caso es que como bien dice el mensaje no es un comando estandar y no lo tengo instalado ya que forma parte del paquete “bsdgames”. Visto lo visto y con ansias de saciar mi curiosidad me dispongo a instalar el paquete “bsdgames”

ia1na04@lnx-i3e04:~$ apt-get install bsdgames

Y una vez instalado vuelvo a intentar usar el comando

ia1na04@lnx-i3e04:~$ wtf
usage: wtf [-f dbfile] [-t type] [is]

Esto no me da mucha informacion asi que decido ver la ayuda del comando usando man:

ia1na04@lnx-i3e04:~$ man wtf

WTF(6) BSD Games Manual WTF(6)

NAME
wtf – translates acronyms for you

SYNOPSIS
wtf [-f dbfile] [-t type] [is] acronym …

DESCRIPTION
The wtf utility displays the expansion of the acronyms specified on the
command line. If the acronym is unknown, wtf will check to see if the
acronym is known by the whatis(1) command.

If “is” is specified on the command line, it will be ignored, allowing
the fairly natural “wtf is WTF” usage.

The following options are available:

-f dbfile
Overrides the default acronym database, bypassing the value of the
ACRONYMDB variable.

-t type
Specifies the acronym’s type. Simply put, it makes the program use
the acronyms database named
/usr/share/games/bsdgames/acronyms.type, where type is given by the
argument.

ENVIRONMENT
ACRONYMDB The default acronym database may be overridden by setting the
environment variable ACRONYMDB to the name of a file in the
proper format (acronym[tab]meaning).

FILES
/usr/share/games/bsdgames/acronyms default acronym database.
/usr/share/games/bsdgames/acronyms.comp computer-related acronym
database.

SEE ALSO
whatis(1)

HISTORY
wtf first appeared in NetBSD 1.5.

Como se puede ver segun esto “wtf” es un simple diccionario de acronimos propios de la jerga internauta. Aqui algunos ejemplos del comando en accion:

ia1na04@lnx-i3e04:~$ wtf is wtf
WTF: {what,where,who,why} the fuck
ia1na04@lnx-i3e04:~$ wtf is gtfo
GTFO: get the fuck out
ia1na04@lnx-i3e04:~$ wtf is lol
LOL: laughing out loud

Como veis es muy intuitivo a la hora de usarlo, ya que es directamente como preguntarle al pc, sino le falta la ? del final XDDDD

Esto no es mas que otra prueba de que el WTF esta presente en todos los aspectos de nuestra vida y en cada momento de nuestra existencia, lo que se resume brevemente en 3 palabras:

WTF IS EVERYWHERE

Como organizar los archivos de nuestros CD/DVD

Seguro que por casa teneis algun pendrive viejo de 128MB al que no se os ocurre un uso para darle. Seguro que tambien teneis un monton de CDs y DVDs todos llenos de peliculas, series, musica, fotos y archivos en general. Con semejante cantidad de informacion una situacion que se da a menudo es que necesitas un archivo concreto pero no sabes en que disco lo tienes. Entonces te pasas media hora buscando hasta que lo encuentras. Hoy voy a poner aqui el metodo que uso yo, el cual es sencillo y multiplataforma.

Lo que vamos a hacer es generar un archivo de texto por cada uno de los CD/DVD que tengamos, el cual contendra un listado completo de los archivos y carpetas que tiene el disco. Nombramos los archivos de texto generados segun un sistema de etiquetas que explicare posteriormente, y luego los guardamos todos en el pendrive ese de 128MB al que vamos a otogar el cargo de bibliotecario de nuestros datos

Para usar este sitema es imprescindible etiquetar cada uno de nuestros discos con un identificador unico, que nos permitira localizarlo rapidamente. El formato de etiqueta que vamos a usar es este

categoria-subcategoria/numero

Pongamos que tenemos en nuestra coleccion varias categorias como por ejemplo peliculas, series, musica y fotos. Tendremos que crear un identificador de categoria para cada uno de ellos (recomiendo que no sean mas largos que 3 letras) y asi tendriamos:

P – Peliculas
S – Series
M – Musica
F – Fotos

Por otro lado, puede que dentro de las categorias tengamos otros grupos. Por ejemplo, dentro de las peliculas podemos tener la subcategoria de terror, la de risa, o bien puede ser que nos interese agrupar las mismas peliculas de una saga como Scary Movie dentro del mismo disco, asi pues, para estos casos las etiquetas quedarian asi

P-TERROR
P-RISA
P-SCARY

Teneis que tener en cuenta que las etiquetas hay que escribirlas en el CD/DVD, asi que no conviene que sean muy largas, por eso pongo P-SCARY y no P-SCARYMOVIE

Pero como ya os habreis dado cuenta, seguro que teneis mas de 6 pelis (las que caben en un DVD) de terror o de risa. ¿Que hacer entonces? Aqui es donde entran en juego los numeros. Los numeros se van asignando incrementalmente, es decir, si grabas primero el DVD P-TERROR y luego kieres grabar otro DVD que deberia tener la misma etiqueta pues entonces los etiquetas asi

P-TERROR/001
P-TERROR/002

Y asi es como quedaria una etiqueta completa. Ahora que ya quedo claro el sistema de etiquetas, podemos pasar a ver como se crean los archivos de nuestra biblioteca o indice particular

Lo que vamos a hacer primero es abrir un interprete de comandos:

En Windows: Inicio>Ejecutar>cmd
En LInux: Ejecutais Konsole, Xterm o cualquier otro emulador de terminal que tengais

Luego lo siguiente es ponernos en la ruta del cdrom:

En Windows: Escribis en la consola X: donde x es la letra de la unidad de CD/DVD
En LInux: cd /cdrom

Y ahora es cuando vamos a hacer que la terminal muestre un listado de todo el contenido del disco y ademas lo guarde en un archivo. Todo en un solo paso:

En Windows: dir /s /on > h:/etiqueta.txt
En LInux: ls -hpRB1s >> /media/pendrive/etiqueta.txt

Teneis que tener en cuenta que teneis que cambiar h por la letra de vuestro pendrive en windows y /media/pendrive en linux por la ruta donde tengais montado el pendrive, por ejemplo /media/sda1, /mnt/sdb1 . Tambien debeis cambiar etiqueta por la etiqueta correspondiente al disco que estais catalogando.

Al terminar con esto tendreis un monton de ficheros con los nombres de las etiquetas de cada uno de los discos, cuyo contenido son los listados de los archivos de cada uno de los discos. Ahora cada vez que querais saber donde esta el archivo que estais buscando, solo tendreis que hacer una busqueda con un programa que busque dentro de los archivos. El buscador que trae de serie Windows vale para esto, y tambien Strigi o KFind en linux (los buscadores que vienen por defecto en Kubuntu) y especificar que quereis que busque solo en los archivos que estan en el pendrive. En los resultados os saldran los archivos que contienen lo que estais buscando, y mirando el nombre de los archivos tendreis las etiquetas de los discos que buscais, con lo cual ya sabeis en que discos estan los archivos.

Creo que en teoria esto tambien deberia funcionar en MacOS X usando los comandos especificados para linux, pero no lo puedo asegurar pq no tengo un mac para probarlo :)