jueves, 15 de mayo de 2008

Instalando Hardy Heron en el Eeepc 900

Bueno, el eeepc no trae lector de disco óptico así que existen dos posibilidades, o bien consigues un lector de CD o DVD por USB o bien lo instalas a partir de un pendrive arrancable. Como no tenía a mano un CD USB y además hacía mucho tiempo que no hacía un llaverito arrancable opté por esta segunda vía.

Para montar una live en el llavero USB bastará con que sigas estos pasos:
1. Descárgate la imagen de CD que quieras instalar, yo utilicé la imagen de Kubuntu 8.04 oficial de los repositorios de Kubuntu.
2. Crea un pendrive live con los siguientes comandos:
sudo apt-get install syslinux mtools
wget http://www.startx.ro/sugar/isotostick.sh
chmod +x isotostick.sh
sudo ./isotostick.sh kubuntu-8.04-desktop-i386.is /dev/sdX1
Dónde /dev/sdX1 tendrás que sustituirlo por la ruta al dispositivo que representa tu llavero.

3. Configura la BIOS del eeepc para que arranque desde dispositivos USB en primer lugar.

Sobre el procedimiento para crear llaveros usb live puedes leer más aquí.
A continuación tendrás que instalar Kubuntu como sueles hacerlo normalmente. La primera sorpresa es que te encuentras con dos unidades de disco, una de 4 GB y otra de 16 GB, yo destruí las dos particiones y las volví a crear. La recomendación general es que se formatéen utilizando ext2, ya que tiene un menor volumen de escritura en disco que ext3. También se recomienda no crear espacio para la swap por el mismo motivo, dado que los discos flash tienen un número limitado de ciclos de escritura. El instalador se quejará de que no tienes espacio swap pero puedes continuar sin mayor problema.

Dado que el eeepc no tiene unidad óptica, se recomienda que se comente la siguiente línea del fichero /etc/fstab:
/dev/sdc1       /media/cdrom0   udf,iso9660 user,noauto,exec 0       0

Una vez hecho esto tendremos que tirar de cable de red hasta que habilitemos la wifi. Durante la
instalación de Hardy te indica que es una Atheros y que vas a utilizar un driver propietario,
pero lo cierto es que a mi no me funcionó correctamente, tuve que recurrir a la opción madwifi.
La documentación para llevar a cabo esta parte la he sacado desde aquí y funciona punto a punto.

Para hacer funcionar la wifi bastará con que ejecutes desde un terminal:

sudo apt-get update
sudo apt-get install build-essential
wget 'http://snapshots.madwifi.org/special/madwifi-nr-r3366+ar5007.tar.gz'
tar zxvf madwifi-nr-r3366+ar5007.tar.gz
cd madwifi-nr-r3366+ar5007
make clean
make
sudo make install
sudo reboot

Al instalar Hardy parece que hay problemas con el apagado del eeepc, para solventarlos simplemente hay que añadir al fichero /etc/default/halt la siguiente línea:
rmmod snd-hda-intel

Lo siguiente es hacer que el uso de CPU escale dinámicamente, lo que mejorará hasta cierto punto
el rendimiento del pequeñín, por lo general el eeepc trabaja a 650 MHz, de esta manera,
dependiendo de la demanda de recursos de CPU podrá llegar a trabajar a 900 MHz, se pueden hacer
algunos apaños de overclocking para garantizar que trabaje a 900 la mayor parte del tiempo,
pero de momento no he tenido tiempo de probarlos.

sudo apt-get remove powernowd
sudo apt-get install cpufrequtils sysfsutils
sudo modprobe p4_clockmod
A continuación tienes que ir al fichero /etc/sysfs.conf y añadir la siguiente línea:
devices/system/cpu/cpu0/cpufreq/scaling_governor = ondemand

Después deberás abrir el archivo /etc/modules y añadir las siguientes líneas:

p4_clockmod
cpufreq_ondemand

Para poder utilizar las teclas que habilitan y deshabilitan la wifi habrá que añadir al fichero /etc/modules lo siguiente:
pciehp pciehp_debug=1 pciehp_force=1

También tendrás que crear el archivo /etc/acpi/actions/wireless-toggle.sh en el que tendrás que
añadir las siguientes líneas:

#!/bin/sh

wlan_control=/proc/acpi/asus/wlan

WLANSTATE=$(cat $wlan_control)

case $WLANSTATE in
1)
ifconfig ath0 down
modprobe -r ath_pci
echo 0 > $wlan_control
modprobe -r pciehp
;;
0)
modprobe pciehp pciehp_force=1 pciehp_debug=1
echo 1 > $wlan_control
modprobe ath_pci
echo 0 > $wlan_control
echo 1 > $wlan_control
;;
esac

Finalmente tendrás que hacerlo ejecutable utilizando el comando:

chmod a+x /etc/acpi/actions/wireless-toggle.sh


Ahora vamos con el ACPI, para habilitarlo tendremos que ejecutar:
sudo apt-get install module-assistant eeepc-acpi-source
sudo m-a a-i eeepc-acpi
sudo sh -c 'echo eeepc-acpi >> /etc/modules'
Hay que recordar que tanto esto, como el paso de la wifi se tendrá que repetir cada vez que se actualice el kernel. En este caso la etapa de
sudo m-a a-i eeepc-acpi
Como habrás notado, el arranque es bastante lento, parece que el problema radica en el hecho de que no es capaz de encontrar una fuente de reloj adecuada. La manera de solucionarlo es indicarle mediante GRUB la fuente de tiempo concreta que debe utilizar, esto se hace del siguiente modo, hay que editar el fichero /boot/grub/menu.lst y buscar la siguiente línea:

# defoptions=quiet splash

Y editarla dejándola con la siguiente pinta:

# defoptions=quiet splash clocksource=hpet

Es muy importante que mantengas la almohadilla al comienzo de la línea.

Por último tendrás que ejecutar:

sudo update-grub

En la página original había unas indicaciones sobre el audio, pero si las sigo pierdo el sonido, así que no las voy a incluir
aquí porque no las he probado.

Para poder utilizar las teclas de control de volumen, etc ... tendrás que crear un archivo denominado:

/etc/acpi/eeepc-hotkeys.sh


Y pegarle el siguiente contenido:
#!/bin/sh

code=$3

case $code in
# Fn+F2 -- enable/disable wifi
0000001[01])
/etc/acpi/actions/wireless-toggle.sh
;;
# Fn+F7 -- mute/unmute speakers
00000013)
acpi_fakekey 113
;;
# Fn+F8 -- decrease volume
00000014)
acpi_fakekey 114
;;
# Fn+F9 -- increase volume
00000015)
acpi_fakekey 115
;;
esac

Tendrás que hacerlo ejecutable utilizando el comando:

chmod a+x /etc/acpi/eeepc-hotkeys.sh

Por último tendrás que crear el archivo
/etc/acpi/events/hotkey y pegarle dentro el siguiente
contenido:
event=hotkey ATKD
action=/etc/acpi/eeepc-hotkeys.sh %e

Para terminar quedan retocar la resolución de pantalla para poder utilizar 800x480, para ello hay que instalar lo siguiente:

sudo apt-get install 915resolution

Y hasta aquí nuestra aventura de esta noche, todo esto lo he probado y funciona y agradecería
mucho cualquier información adicional, así que ya saben, aquí tienen a un amigo.

Un abrazo.
Goyo.

2 comentarios:

Anónimo dijo...

Muchas gracias por poner en tu blog la configuración. Lo he seguido paso a paso y me ha funcionado estupendamente. Me queda una duda. Fíjate en la salida de cat /proc/bus/input/devices
I: Bus=0011 Vendor=0002 Product=0005 Version=0063
N: Name="ImPS/2 Logitech Wheel Mouse"
P: Phys=isa0060/serio1/input0
S: Sysfs=/devices/platform/i8042/serio1/input/input10
U: Uniq=
H: Handlers=mouse1 event8
B: EV=7
B: KEY=70000 0 0 0 0 0 0 0 0
B: REL=103

Como ves detecta el touchpad como un ratón, y por lo tanto no funciona bien.
¿Se te ocurre como solucionarlo?

Unknown dijo...

Lo cierto es que no lo había mirado, estas semanas tengo un poco de trabajo, a ver qué puedo hacer con eso. Gracias por la nota. Un saludo.