Blog ElCodiguero
27 set 2011 Linux & UNIX

Slackware 13.37: Instalación y configuración básica

Slackware

Slackware es la distribución de GNU/Linux más antigua entre las que siguen desarrollándose. Se caracteriza por su fama de complicada, sin embargo una vez que el sistema está configurado el mantenimiento necesario es mínimo, y resulta tan sencilla de manejar como cualquier otra distribución. Lo único que el sistema pide a cambio de su estabilidad y facilidad de mantenimiento es algo de tiempo leyendo manuales y ayudas para comprender lo que sucede y por qué. La instalación, configuración y uso de este sistema es probablemente la mejor forma de aprender a manejar un sistema Unix.

Este artículo es una actualización del anterior sobre Slackware 13.1, con cosas nuevas para 13.37.

Instalación

La instalación en sí no es un problema, recomiendo esta guía de instalación para aquellos que no hayan realizado este proceso antes. La guía es para la distribución ZenWalk, pero el proceso es casi el mismo ya que ZenWalk es una de las tantas distribuciones derivadas de Slackware.

Para iniciar el proceso, arranca con el DVD de Slackware y sigue las instrucciones en pantalla. Una vez iniciada la consola de root, ejecuta el programa setup. Una vez aquí, debe iniciarse la instalación eligiendo la opción ADDSWAP en el menú, o TARGET. Estos pasos deben hacerse primero ya que son los que preparan el disco en el que se instalará, si no se hacen primero siempre se llega a un punto en la instalación en el que se debe iniciar todo el proceso de nuevo.

Y esto siempre requiere salir del programa de instalación y abrirlo de nuevo, ya que la autodetección del disco CD/DVD de instalación funciona solamente la primera vez que se hace.

De todas formas, la instalación con las opciones por defecto (full install, instalar todos los paquetes disponibles) puede iniciarse en menos de 5 minutos y terminarse en más o menos media hora.

Al terminar la copia de archivos se hacen algunos pasos para la configuración inicial del sistema, principalmente lo que respecta a la ubicación geográfica, la configuración de red y la instalación del gestor de arranque (LILO). Una vez finalizados estos pasos, el programa de instalación se cierra y se nos indica que debemos reiniciar el sistema.

Configuración inicial

Al arrancar el sistema, a diferencia de lo que sucede con otras distribuciones, el entorno gráfico no se inicia por defecto. Se nos presenta una pantalla de inicio de sesión en modo texto, en la que deberemos entrar como el usuario root y con la contraseña correspondiente (que habremos indicado en uno de los últimos pasos de la instalación).

Una vez dentro, hay varias tareas a realizar.

Arrancar por defecto el entorno gráfico

Esto se hace editando el archivo /etc/inittab y cambiando el nivel de ejecución predeterminado. Lo haremos con vim

root@alvaro:/# vim /etc/inittab

Una vez que se abra el archivo, hay que ir a la línea que contiene

# Default runlevel. (Do not set to 0 or 6)
id:3:initdefault:

vim no se parece en nada a los editores normales, por lo que para quien lo usa por primera vez puede resultar bastante extraño. La forma más sencilla de editar lo necesario y salir es llevar el cursor hacia el 3 en la línea mencionada antes, y presionar la siguiente secuencia de teclas:

Con esto, se indica que el nivel de ejecución por defecto debe ser el nivel 4. Normalmente cualquier documentación de GNU/Linux que se encuentre indica que el nivel 4 no se utiliza, y además casi todas las demás distribuciones utilizan el nivel 5 para el modo gráfico. En esto Slackware es diferente, en tanto que utiliza el nivel 4 para el modo gráfico y no utiliza el nivel 5.

Crear un usuario sin privilegios

La forma usual de utilizar el sistema es como usuario sin privilegios. Esto es, sin permiso para instalar programas o modificar el sistema, únicamente se tiene permiso para hacer modificaciones en la carpeta asignada al usuario. Este modo es ideal por la seguridad y para evitar errores fatales, que casi todos hemos cometido alguna vez. Añadiremos un usuario, entonces, con el comando adduser y escribiendo la información que el comando solicita.

Para que este usuario sea usable, es necesario añadirlo a varios grupos: audio (para que pueda utilizar la tarjeta de sonido), cdrom, disk, plugdev (para que pueda utilizar dispositivos extraíbles), y video. Esto se puede hacer facilmente; en uno de los pasos adduser muestra la siguiente línea:

Additional groups (comma separated) []:

Si se presiona la flecha hacia arriba, se obtiene una lista de los grupos necesarios.

Utilizar el kernel generic en lugar de huge

Para la instalación, y por defecto en la instalación completa, Slackware instala un núcleo Linux que tiene compilado casi todos los controladores disponibles. Esto implica que el núcleo por defecto es bastante grande e ineficiente, aunque en una instalación funciona bien. Para el uso diario es mejor cambiar a un núcleo que incluya solamente lo mínimo, y en el que los controladores estén incluidos en forma de módulos (de tal forma que solamente se cargarán aquellos que sean necesarios). Este cambio requiere de varias modificaciones, que quizás sea mejor hacer desde el entorno gráfico (se requiere edición de archivos, y es más fácil usar kwrite que vim.) Por lo que reiniciar en este momento e iniciar sesión como root en el entorno gráfico puede ser la mejor idea.

Vincular al kernel correcto

Desde la consola, el siguiente comando

cd /boot ; ls -l

Debería mostrar algo como esto (eliminé algunas líneas innecesarias):

lrwxrwxrwx  1 root root      35 2008-12-18 00:49 System.map -> System.map-huge-smp-2.6.37.6-smp
-rw-r--r--  1 root root  965704 2008-11-21 02:20 System.map-generic-smp-2.6.37.6-smp
lrwxrwxrwx  1 root root      32 2008-12-18 00:49 vmlinuz -> vmlinuz-huge-smp-2.6.37.6-smp
-rw-r--r--  1 root root 2347888 2008-11-21 02:20 vmlinuz-generic-smp-2.6.37.6-smp

Los archivos System.map y vmlinuz son enlaces que apuntan a las versiones huge del núcleo (esto puede verse indicado por las flechas -> junto al nombre del archivo). Debemos vincularlas a las versiones generic. Para esto, se utilizan los siguientes comandos:

rm System.map vmlinuz
ln -s vmlinuz-generic-smp-2.6.37.6-smp vmlinuz
ln -s System.map-generic-smp-2.6.37.6-smp System.map

Obviamente conviene hacer uso del autocompletado en bash, para no tener que recordar todo el nombre del archivo (presionar tecla tabulador).

El siguiente paso es crear el archivo initrd correspondiente. Dado que el núcleo genérico no tiene los controladores en el núcleo mismo sino como módulos, es necesario brindarle algunos controladores iniciales para que pueda encontrar el disco duro, leerlo, y cargar el resto de los módulos que necesita. Estos controladores iniciales se guardan en el archivo initrd. Las instrucciones necesarias para crear este archivo están en el archivo README.initrd dentro de la carpeta /boot. Básicamente, para un sistema cuya partición principal es de tipo ext3, y está en /dev/sda1 (la primera partición primaria del primer disco SATA), el comando necesario es

mkinitrd -c -k 2.6.27.7-smp -m mbcache:jbd:ext3 -f ext3 -r /dev/sda1

(dentro de la carpeta /boot)

El último paso ahora es configurar LILO para que cargue este archivo initrd. Habrá que editar el archivo /etc/lilo.conf, buscar la sección correspondiente y agregar una línea al bloque

# Linux bootable partition config begins
image = /boot/vmlinuz
root = /dev/sda1
label = Linux
read-only
# Linux bootable partition config ends

que deberá quedar como

# Linux bootable partition config begins
initrd = /boot/initrd.gz
image = /boot/vmlinuz
root = /dev/sda1
label = Linux
read-only
# Linux bootable partition config ends

Ya que estamos editando el archivo lilo.conf, conviene también editar el tiempo que se espera antes de arrancar el sistema, en la pantalla de selección de SO. Por defecto este tiempo es 2 minutos, recomiendo cambiarlo a un tiempo que sea corto pero permita interrumpir el proceso en caso de ser necesario (por ejemplo, medio segundo). Habrá que ir hacia el principio del archivo lilo.conf y cambiar:

# This is given in tenths of a second, so 600 for every minute:
timeout = 1200

por

# This is given in tenths of a second, so 600 for every minute:
timeout = 50

Una vez realizados estos cambios, hay que re-instalar LILO. Este proceso es simplemente ejecutar el comando lilo en la terminal. Recomiendo ejecutar primero lilo -t (hacer una simulación de la instalación) y luego, si no hay errores (puede haber advertencias), ejecutar lilo.

Ahora, reiniciar el sistema nuevamente para cargar el núcleo genérico.

Configurar el idioma predeterminado del teclado

El idioma del teclado puede configurarse por separado desde los escritorios (KDE o XFCE), pero también puede configurarse para el sistema entero. Por un lado, la terminal de texto tendrá el idioma configurado durante la instalación, con lo cual no se requieren más cambios. Pero el servidor X estará por defecto con teclado inglés a menos que lo configuremos para que utilice otro.

Esta configuración se debe hacer en un archivo xorg.conf (dentro de /etc/X11). Se debe agregar lo siguiente:

Section "InputClass"
     Identifier     "keyboard-all"
     Driver         "evdev"
     Option         "XkbLayout" "es"
     MatchIsKeyboard "on"
EndSection

No importa si el archivo no contiene nada más (de hecho probablamente haya que crearlo, ya que inicialmente no es requerido), ya que hoy en día casi todo es automáticamente detectado por el servidor X. Una vez agregado esto, el servidor X debería iniciar con el teclado en español.

Configuración de una computadora portátil

Si tienes una computadora de escritorio, no se requieren más detalles de configuración, todo debería haber sido reconocido y autoconfigurado. El resto será cuestión de configurar los detalles del entorno gráfico. Pero si como yo tienes una computadora portátil, habrá otros detalles a configurar.

Red inalámbrica

Es muy probable que el dispositivo de red inalámbrica no tenga controladores para Linux. En este caso habrá que apelar a ndiswrapper, un programa que es capaz de utilizar los controladores de Windows que estos dispositivos incluyen. ndiswrapper no está incluido en la distribución de Slackware, pero puede conseguirse sin dificultad en SlackBuilds.org. También se pueden encontrar allí otros controladores nativos para Linux, por ejemplo el controlador para las tarjetas Broadcom.

Vale la pena notar, sin embargo, que ndiswrapper no puede funcionar correctamente en un sistema de 64bit, no es capaz de cargar un controlador de 32bit de Windows en un sistema de 64bit. Así que, aún si tu equipo lo admite, asegúrate de tener los controladores necesarios antes de instalar Slackware64.

Para el control de la red inalámbrica Slackware incluye el programa wicd en la carpeta /extra. Bastará entonces con instalar el paquete desde esa carpeta. Algo importante a recordar es que, para que wicd funcione correctamente, es necesario darle permisos de ejecución al archivo /etc/rc.d/rc.wicd, y remover la configuración que se encuentra en el archivo /etc/rc.d/rc.inet1.conf. Para lograr esto simplemente se agrega una almohadilla # a toda línea de este archivo que no comience con una.

Si todo va bien entonces, al reiniciar habrá un ícono de wicd al lado del reloj, pronto para conectarse a alguna de las redes detectadas.

En mi computadora el controlador necesario es de Ralink (rt5390sta). Si bien la empresa ha proveído un controlador abierto, en mi caso no funcionó bien hasta que lo instalé desde el paquete de openSuSE (usando rpm2tgz, y compilando con las instrucciones del archivo .spec)

Synaptics, el controlador para el touchpad

El controlador synaptics viene incluido en Slackware, y el nuevo X.Org incluido en Slackware 13.37 lo carga correctamente sin que haya que configurar nada. Pero por defecto desactiva funciones como el hacer clic tocando la superficie del touchpad. Para corregir este comportamiento, se pueden seguir varios caminos. Uno es editar el archivo xorg.conf, como se ha hecho toda la vida. El otro es configurar el touchpad desde el panel de control de KDE (Preferencias del Sistema). Recomiendo usar esta última.

Configuración de ahorro de energía

Desde KDE4 se pueden configurar sin problemas casi todos los aspectos de ahorro de energía, excepto por un detalle: qué se hace cuando se presiona el botón de encendido/apagado (nota: esto era cierto en versiones anteriores, aún no probé el último KDE en Slackware 13.37).

En esta página se explica cómo se debe configurar esto, el artículo es viejo y la mayor parte de lo que se explica ya no es necesario. Los pasos para que al presionar el botón la computadora hiberne en vez de apagarse son los siguientes:

  1. Cambiar a la carpeta /etc/acpi

  2. Dejar en esta carpeta únicamente el archivo acpi_handler.sh y crear las carpetas events and actions en caso de ser necesario.

  3. Crear un archivo /etc/acpi/actions/pwrbtn.sh con permisos de ejecución, y con el siguiente contenido:

    #!/bin/sh
    pm-hibernate
  4. Crear un archivo /etc/acpi/events/pwrbtn con el siguiente contenido:

    event=button[ /]power
    action=/etc/acpi/actions/pwrbtn.sh

Listo, al presionar el botón de encendido la computadora hibernará en vez de apagarse. ¿Pero cómo restaurar? Lo que hace la hibernación es mover el contenido de la memoria RAM y de algunas otras cosillas a la partición swap. Para poder restaurar el sistema es necesario indicarle al núcleo la partición de swap. Hay que editar el archivo lilo.conf de nuevo, buscar la sección de Linux y añadirle la siguiente línea:

append = "resume=/dev/sda2"

(donde /dev/sda2 es la partición de swap). Para finalizar, hay que volver a ejecutar el comando lilo (como antes, primero lilo -t para asegurarse de que todo es correcto, luego lilo para hacer la instalación). Con esto, si la máquina fue hibernada, el núcleo restaurará el estado. En caso de que la máquina haya sido apagada, se hará un arranque normal. En mi caso tengo configuradas dos secciones idénticas, una con el resume y otra sin él, simplemente para hacer pruebas de vez en cuando.

Pasos siguientes

Instalación de programas

Slackware no tiene repositorios de paquetes, todos los paquetes oficiales están en el DVD de instalación. Para instalar programas externos se recomienda utilizar SlackBuilds, que son scripts que automatizan la generación de paquetes a partir de archivos de código fuente. El repositorio más grande de SlackBuilds es slackbuilds.org, y la forma más sencilla de utilizar ese repositorio es a través de una herramienta llamada sbopkg. La mayor parte de los programas tienen su SlackBuild, pero no todos. Para estos últimos lo mejor es descargar el código fuente y crear un paquete con src2pkg. En la mayoría de los casos la compilación será exitosa. Si no lo es, no queda otra opción más que pedir ayuda en algún foro para intentar resolver el problema.

Existen también repositorios extraoficiales de paquetes binarios, siendo los más grandes LinuxPackages y Slacky.

GNOME

Por defecto Slackware no incluye el escritorio GNOME. Hay varias formas de incluirlo, la mejor hoy en día es GNOME SlackBuild. Incluye no solamente el escritorio sino también programas relacionados con él, como Rythmbox, Brasero, Mono y muchos más. Vale la pena tener disponibles los repositorios para incluir también programas que no son de GNOME pero Slackware no incluye y GSB sí, como OpenOffice.

Paquetes casi oficiales

Algunos miembros del equipo de Slackware proveen paquetes adicionales, no oficiales. El repositorio de rworkman contiene paquetes extra para XFCE (y otros), mientras que el repositorio de AlienBob contiene paquetes como VLC, las últimas versiones de KDE, y lo necesario para convertir a Slackware64 en un SO capaz de ejecutar programas de 32 bit.

Algunos enlaces interesantes:

Se supone que esta es solamente una guía básica para tener el sistema más o menos funcionando. Si algo no termina de quedar bien, recomiendo el excelente foro de Slackware en LinuxQuestions, o el no tan grande pero igualmente útil foro de Sistemas Unix en Foros del Web

Activa Javascript para para cargar los comentarios, basados en DISQUS

El Blog de ElCodiguero funciona sobre Pelican

Inicio | Blog | Acerca de