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:
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.