Home Wiki > Archive:Instalar openSUSE en el Asus EeePC
Sign up | Login

Archive:Instalar openSUSE en el Asus EeePC

tagline: De openSUSE

Introducción

En este artículo encontrarás toda la información necesaria para instalar openSUSE 10.3 en el Asus EeePC.
Somos conscientes de que hay varios métodos de hacerlo pero sería demasiado largo desarrollar un gran Howto que describiera todos los métodos posibles, por lo que elegimos la forma rápida que desarrolló Sonja durante la hackweek y la forma más dura y fea que usó Daemon.
Si quieres intentar un método distinto echa un vistazo a las guías de instalación, pero recuerda que la instalación en red no funciona (los drivers no están incluidos).
¡Recuerda también que la instalación no está soportada y si algo va mal, será fallo tuyo!

Preparación

Hardware

  • EeePC 701 4G.
  • Unidades flash USB, dependiendo del método de instalación.
  • otro PC en el que preparar los dispositivos necesarios.

AVISO: el EeePC carece de un disco duro convencional, lleva un disco duro de estádo sólido (SSD) que tiene un número finito de ciclos de escritura. Nadie conoce aún cuánto dura esta unidad SSD, pero como precaución deberías reducir la escritura innecesaria en disco. Esto significa que:

  • No se usará una partición swap.
  • Se montarán las particiones en el SSD con la opción "noatime" configurada. Normalmente, cada vez que lees un archivo del disco, la hora del último acceso (atime) se actualiza en el inodo. Con "noatime", esto no ocurre.

Media

Tienes que descargar lo siguiente:

Instalación

Instalación desde una sola unidad USB con YaST Live Installer

Todos los datos del Eee PC se borrarán con este método, haz una copia de seguridad.

  1. Pulsa F2 durante el arranque de la pantalla de la BIOS, desplázate mediante las flechas a la pestaña "Boot". Bajo "Hard Disk Drives", selecciona tu unidad USB como primera unidad, luego pulsa ESC. Ve a "Boot Device Priority" y asegúrate de que esa unidad es la primera. F10 para guardar y salir. Si la siguiente vez arrancas sin tener conectada la unidad USB, esta configuración se revertirá y el EeePC arrancará desde su disco interno.
  2. Si ves una alerta "undefined mode number" durante el arranque: no importa, simplemente pulsa ESPACIO. Mi hardware sobrevivió, escanear no ayuda. Intentaré arreglar esto en la siguiente versión.
  3. Yo no pude arrancar desde la unidad USB teniendo una tarjeta SD en el slot. Si durante el arranque, ves algún mensaje de error de KIWI quejándose de algo como "Couldn't determine file system type..." o algo parecido, quita esa tarjeta e inténtalo de nuevo.
  4. El stick tiene configurado un usuario linux sin contraseña y con autologin configurado, y un usuario root también sin password (te podría interesar cambiarlo...).
  5. El administrador de ventanas en el que estás logueado ahora es fvwm2. Ésa fue mi elección ya que es el sistema gráfico más pequeño que pude crear en un tiempo razonable, y desde el que todos puedan construir el sistema que desean e instalar todos los paquetes que quieran.
  6. En la lista de botones del fvwm2, haz clic en el icono de openSUSE y elige "Control Center". Esto arrancará yast2. (Si no habías visto nunca fvwm2: cuando aparece una rejilla bajo el puntero del ratón, tienes que hacer clic en algún lado para que aparezca la nueva ventana).
  7. En yast2, bajo "Miscellaneous", encuentra el módulo "Live Installer". Esto arrancará una instalación estándar de yast con la importante diferencia de que no tienes que seleccionar los paquetes para la instalación. En vez de éso, el sistema instalado en el stick se copia al disco duro. Es el mismo comportamiento de los LiveDVDs y funciona (al menos para mí) perfectamente, ¡gracias al equipo YaST!
  8. Asumo que estás familiarizado con particionar un disco. Si no, encuentra a alguien que te asista, porque tendrías que usar el Expert Mode ("Create Custom Partition Setup") del particionador yast. En el particionador también verás tu stick USB, no lo confundas con tu disco duro interno. (Lo siento, pero tenía que mencionarlo). Cuántas y qué particiones crees es una cuestión de preferencia personal, una partición simple funciona perfectamente. Las particiones que yo creé son:
    /boot 100MB
    / 2.5GB
    /home 1.2GB
  9. No, no swap. La instalación por defecto de Xandros también venía sin swap, y soy un poco paranoico con el tema de los ciclos limitados de escritura del SSD. Haz lo que quieras. Por la misma razón, uso ext2 (en vez de un sistema de ficheros con journaling) en todas las particiones y las monto con la opción "noatime" fijada. (Puedes especificar esto en el particionador, o modificando luego a mano el archivo /etc/fstab).
  10. Grub. Tienes que asegurarte, y probablemente cambiar la elección por defecto, de que el grub se instala en el disco duro y no en la unidad USB.
    Durante la instalación, mi unidad USB era /dev/sdb, y el disco duro interno /dev/sdc. Después de reiniciar sin la unidad USB, la numeración interna de los discos cambiará: en mi caso, el disco interno era /dev/sda cuando arranqué desde él.
    En Boot Loader Settings -> Boot Loader Installation, elegí "Boot from Boot partition", y yast2 usó /boot tal como lo creamos más arriba.
    En la lista desplegable "Other" de la esquina inferior derecha, puedes editar los archivos de configuración directamente si sabes lo que haces.
    Como grub usa enlaces /dev/disk/by-id/... en menu.lst, el reordenamiento de los discos no debería tener importancia. En mi instalación, sin embargo, desordenó la entrada root (hd0,0) porque ahí usa numeración absoluta. Si te ocurre lo mismo (lo notarás en el primer arranque, ya que el EeePC no arrancará) es que también te ocurre lo mismo. Haz esto:
    1. Arranca de nuevo desde el stick, pero no arranques la instalación. Encuentra y monta la partición del disco interno donde instalaste grub, encuentra el archivo /boot/grub/menu.lst, y cambia la línea
      root (hd1,n)
      a
      root (hd0,n)
      (donde "n" es, desde luego, whatever number is there already, no una "n" literal).
      Cambia la primera cifra, que denota el disco desde el que se arranca, y deja la segunda cifra tal como está, que denota la partición de arranque. Aquí se cuenta desde cero -- sda1 sería 0,0, sda2 0,1 y así. Si tu EeePC se comporta como el mío, tu disco interno será sda cuando arranques desde él.
  11. En el primer arranque (asumiendo ya que has reparado grub, de haberlo necesitado), quita la unidad USB y termina la instalación tal como cualquier instalación estándar de openSUSE. ¡Felicidades, ya está!
  12. Loguéate, arranca yast2 e instala todos los paquetes que quieras. Si quieres usar KDE o GNOME y los conoces un poco, no necesitas instalarlos a través de los patrones. Selecciona sólo los paquetes que quieras y deja que se solucionen las dependencias. De esta manera se puede tardar más y se expone uno a errores, pero tendrás en cambio un sistema que será un poco más pequeño.

La imagen para el stick USB puedes encontrarla aquí. Descomprímela y vuélcala a una unidad de 2 GB mediante dd.

Instalación mediante dos unidades USB

  1. Primero crea la unidad de arranque siguiendo los pasos desde Instalar SuSE con una memoria USB.
  2. Luego crea el CDROM-USB "falso" formateando la segunda unidad de forma similar a lo que se describe en el artículo anterior, excepto en lo referente a hacerlo arrancable, y copia el contenido del CD a la unidad.
  3. Crea un nuevo directorio a llámalo, por ejemplo: EeePC.
  4. En este directorio crea dos más, por ejemplo: GM y Update.
  5. Copia los paquetes default desde aquí al directorio GM.
  6. Copia los paquetes default desde aquí al directorio Update.
  7. Conecta ambas unidades al EeePC.
  8. Durante la pantalla de la BIOS pulsa ESC para llegar al menú de dispositivos de arranque y seleccionar la unidad de arranque.
  9. Ahora verás el menú normal de instalación y lo único que tienes que cambiar es la fuente. Cámbiala a "Hard Disk" pulsando F4 y usando las teclas del cursor. Se escanearán todos los discos cuando lo dejes vacío - déjalo así.
  10. Desmarca "Añadir repositorios Online antes de la instalación" (recuerda - aún no tenemos red).
  11. Como no es una buena idea usar swaps tendremos que cambiar el particionamiento - si no te aclaras con esto, busca ayuda antes de continuar.
  12. Elige "Create Custom Partition Setup" y luego "Custom Partitioning (para expertos)".
  13. Deja las tres primeras particiones intactas y crea una partición grande (de unos 3.7 GB) para /.
  14. El resto de la instalación es similar a una instalación normal, excepto que tendrás que arrancar de nuevo desde la unidad USB de arranque y lanzar otra vez la instalación pero no elegir "Nueva Instalación", sino "Otras opciones" y luego "Arrancar sistema instalado". Ahora puedes continuar con la segunda parte de la instalación.
  15. Después de terminar con la instalación, y como root, cambia al directorio GM del segundo disco USB. Simplemente instala todos los paquetes de ahí con el comando "rpm -Uvh *".
  16. Ahora tienes que arreglar el problema con el grub haciendo lo mismo que se describe en el paso 10.1 de la "Instalación desde una unidad USB arrancable mediante YaST Live Installer".
  17. Ahora puedes añadir todos los prepositorios online necesarios y actualizar. Si la red deja de funcionar después de actualizar instala entonces los paquetes desde el directorio Update que creaste antes.

Mejoras

El servidor X funcionará sólo con una resolución de 640x480. Edita el fichero /etc/X11/xorg.conf y reemplaza las secciones "Monitor", "Screen" y "Device" con lo siguiente:

 Section "Monitor"
   Identifier   "Monitor[0]"
   VendorName   "ASUS"
   ModelName    "eeePC 701"
   ModeLine     "800x480" 29.58 800 816 896 992  480 481 484 497 # 60Hz
   Option       "DPMS"
 EndSection
 Section "Screen"
   DefaultDepth 24
   SubSection "Display"
     Depth      24
     Modes      "800x600"
   EndSubSection
   Device       "Device[0]"
   Identifier   "Screen[0]"
   Monitor      "Monitor[0]"
 EndSection
 Section "Device"
   BoardName    "Mobile 915 GM"
   BusID        "0:2:0"
   Driver       "intel"
   Identifier   "Device[0]"
   VendorName   "Intel"
 EndSection

Teclas de acceso rápido

Método 1

Las teclas de acceso rápido no funcionan, tampoco. Puedes descargar el RPM eeeEvents e instalarlo para que funcionen las teclas Fn+F2 a Fn+F9. Este paquete también añadirá el binario asusosd y el archivo 60eeepc mencionado más arriba. Tienes que arrancar tú mismo el binario para que funcione el OSD. Si la suspensión (hibernación) no funciona cuando pulsas Fn+F1, edita el archivo /etc/powersave/events y cámbialo a:

 EVENT_BUTTON_SLEEP="suspend_to_ram"

Método 2

Otro método para activar la mayoría de las teclas de acceso rápido es añadir las siguientes líneas al final del archivo /usr/share/X11/xkb/symbols/de (ejemplo para el teclado alemán, puedes configurar la sección apropiada de símbolos en xorg.conf):

partial alphanumeric_keys
xkb_symbols "eeepc" {

    include "de(basic)"

    name[Group1]="Germany - eeePC";

    key <AD12>  { [      plus,   asterisk,   asciitilde,  dead_macron ] };
};

El módulo asus_acpi debe estar cargado, mira la descripción más arriba.

Luego necesitas definir las teclas de acceso rápido en /etc/acpi/hotkey.sh. El ejemplo siguiente está basado en el Xandros original y funciona (excepto la tecla WLAN, la de LCD/CRT no ha sido probada):

#!/bin/sh

export DISPLAY=:0

case $3 in
        #Fn+F1
        00000080)
                # echo "Suspend2RAM" > /dev/console
                ;;
        #Fn+F2
        00000010)
                # echo "Wlan On" > /dev/console &
                /etc/acpi/wlan.sh poweron
                /etc/acpi/wlan.sh restore
                ;;
        00000011)
                # echo "Wlan Off" > /dev/console &
                /etc/acpi/wlan.sh poweroff
                ;;
        #Fn+F3
        00000030)
                # echo "LCD" > /dev/console &
        #       /bin/su user -c "/usr/bin/xrandr --output LVDS --preferred --output VGA --off"
                ;;
        00000031)
                # echo "CRT" > /dev/console &
        #       /bin/su user -c "/usr/bin/xrandr --output VGA --mode 800x600 --output LVDS --off"
                ;;
        00000032)
                # echo "LCD-CRT" > /dev/console &
        #       /bin/su user -c "/usr/bin/xrandr --output VGA --mode 800x480 --output LVDS --mode 800x480"
                ;;
        #Fn+F6
        00000012)
                # echo "Task Manage On" > /dev/console
                #DISPLAY=:0 /bin/su -c "/usr/bin/ksysguard --showprocesses" user &
                /opt/kde3/bin/ksysguard --showprocesses &
                ;;
        #Fn+F7
        00000013)
                # echo "Volume Mute" > /dev/pts/0 &
                amixer set Master toggle
                ;;
        #Fn+F8
        00000014)
                # echo "Volume Down" > /dev/console &
                amixer set Master 3.20dB-
                ;;
        #Fn+F9
        00000015)
                # echo "Volume Up" > /dev/console &
                amixer set Master 3.20dB+
                ;;
        #Fn+F3
        0000002x)
                #echo "Brightness Down" > /dev/pts/0
                ;;
        #Fn+F4
        0000002x)
                #echo "Brightness Up" > /dev/pts/0
                ;;
esac

Reducir el acceso a disco

Añade la siguiente línea a /etc/sysctl.conf:

 vm.dirty_writeback_centisecs = 15000

Esto prolongará la vida del SSD escribiendo sólo cada 150 segundos (2 minutos y medio), a menos que una escasez de memoria o algo más fuerce una escritura antes. Cuidado con esto porque si pierdes cualquier dato escrito dentro de los últimos 150 segundos podrías cargarte el sistema - elige tiempos mayores o menores en función a la vida relativa de tu disco SSD frente a tu paranoia por el estado del sistema.

Montar los directorios tmp en un tmpfs reducirá los accesos al SSD. Pero perderás todos los datos de los directorios tmp si se apaga el PC. Añade las siguientes líneas a /etc/fstab

 tmpfs      /tmp                    tmpfs        defaults      0 0
 tmpfs      /var/tmp                tmpfs        defaults      0 0
 tmpfs      /var/lock               tmpfs        defaults      0 0

Si no usas postfix como un MTA real (Mail Transfer Agent - agente de transporte de correo) entonces también puedes añadir esta línea:

 tmpfs      /var/spool/postfix      tmpfs        defaults      0 0

También puedes montar /var/log y /var/run como tmpfs, en este ejemplo con un tamaño máximo de 128MB:

 tmpfs      /var/log                tmpfs        defaults,size=128m    0 0
 tmpfs      /var/run                tmpfs        defaults,size=128m    0 0

Notas:

  • Montar /var/run con tmpfs causa algunos problemas con los subdirectorios necesarios, quizás necesites buscar algún arreglo a esto.
  • Montar /var/log con tmpfs también puede causar problemas. Por ejemplo, apache2 no arranca, porque /var/log/apache2 no existe. Arreglo: Cambia el script de arranque de apache2 para crear ese directorio cada vez que arranque apache2.
  • También deberías crear el directorio /var/log/YaST2, añade test -d /var/log/YaST2 || mkdir -m 700 /var/log/YaST2 a tu script /etc/init.d/boot.local.
  • Cups requiere el directorio /var/lock/subsys. Cambia el script de arranque de cups para crear ese directorio cada vez que se arranque cups.

Puesta a punto de los sistemas de ficheros ext2/ext3

Para incrementar el espacio libre en tus sistemas de ficheros ext2 o ext3, puedes reducir los bloques reservados a, por ejemplo, el 2%:

tune2fs -m2 /dev/sda1

Configuración

Suspensión

Para que funcione la suspensión en disco necesitas añadir

http://download.opensuse.org/repositories/home:/seife/openSUSE_10.3

a tus repositorios e instalar el paquete "suspend". ¡Mil gracias a seife!

La suspensión a RAM funciona bastante bien (usando la tecla de acceso rápido y/o cerrando la pantalla), pero necesitas añadir algún código a la administración de energía en por ejemplo /etc/pm/sleep.d/60eeepc (script adaptado del Xandros original):

#!/bin/bash
case $1 in
    hibernate)
        /etc/init.d/network stop
        /sbin/modprobe -r ath_pci
        #/sbin/modprobe -r ndiswrapper
        ;;
    suspend)
        /etc/init.d/network stop
        /sbin/modprobe -r ath_pci
        #/sbin/modprobe -r ndiswrapper
        ;;
    thaw)
        /sbin/modprobe ath_pci
        #/sbin/modprobe ndiswrapper
        /etc/init.d/network start
        /etc/init.d/acpid restart # porque las hotkeys no funcionan al reanudar, /etc/acpi
        ;;
    resume)
        /sbin/modprobe ath_pci
        #/sbin/modprobe ndiswrapper
        /etc/init.d/network start
        /etc/init.d/acpid restart # porque las hotkeys no funcionan al reanudar, /etc/acpi
        ;;
    *)  echo "EeePC power management script llamado incorrectamente."
        ;;
esac

Problemas:

  • La reanudación falla si la cámara está en uso (por ejemplo, por Skype)
  • Los nombres de dispositivos de los sistemas de ficheros montados desde la tarjeta SD cambian después de la reanudación, por ejemplo de sdb a sdc. Esto causa problemas con los sistemas de archivos montados. Incluso aunque udev cree nuevos enlaces simbólicos en /dev/disks/by-id/, los montajes existentes dejan de funcionar. Por tanto, tienes que desmontar los sistemas de ficheros antes de la suspensión y montarlos de nuevo al reanudar, o añadir los comandos umount y mount al script de administración de energía de más arriba. Sin embargo, este no sirve de ayuda cuando no es posible desmontar a causa de algún fichero abierto. Parece haber una solución usando una configuración USB_PERSIST en el kernel (mira el foro eeeuser.com sdb becomes sdc after hibernationEnlace en inglés y Building a kernel where USB_PERSIST actually worksEnlace en inglés), pero ese parámetro no está configurado en el kernel estándar de openSUSE. Cualquier otra solución es bienvenida.

WLAN, ALSA, Ethernet, ACPI

La tarjeta wireless necesita el paquete madwifi, disponible en este repositorio:

http://download.opensuse.org/repositories/home:/appleonkel:/EEE/openSUSE_10.3/

y para mantenerlo actualizado:

http://download.opensuse.org/repositories/home:/appleonkel:/EEE/10.3%20Update/

Sin embargo, el driver madwifi no funciona de forma muy fiable (para mi). Establecer conexiones es una suerte. También puedes usar el módulo ndiswrapper, mira los repositorios schmolle1980 más arriba y Howto: Configure ndis wrapperEnlace en inglés. El método ndiswrapper es más fiable, pero hay un problema de alta carga del sistema a causa de un proceso llamado ntos_wq.

Los repositorios appleonkel también contienen paquetes para Alsa, Ethernet y drivers ACPI.

Para arrancar el módulo asus_acpi durante el arranque del sistema, deberías añadirlo al archivo /etc/sysconfig/kernel:

MODULES_LOADED_ON_BOOT="asus_acpi"

Cámara

Para activar la cámara, actívala primero en la BIOS. Luego añade

http://download.opensuse.org/repositories/home:/schmolle1980/openSUSE_10.3/

a tu lista de repositorios, e instala el paquete "uvcvideo-kmp-default". Después de reiniciar, la cámara debería funcionar directamente (pruébala con Kopete). La cámara funciona en Skype pero no en ucview.