Podríamos utilizar una versión previa de Ubuntu, sin embargo, recomiendo la versión 8.10, por la versión del kernel de linux que trae.
Acer Aspire One utiliza un lector de tarjetas
JMicron con chipset
jmb38x, el cuál comienza a incorporarse en el kernel de linux a partir de la versión 2.6.25. De hecho, si probamos un Ubuntu 8.04 o anterior, y hacemos un
lspci, veremos lo siguiente:
...
04:00.0 System peripheral: JMicron Technologies, Inc. Unknown device 2382
04:00.2 SD Host controller: JMicron Technologies, Inc. Unknown device 2381
04:00.3 System peripheral: JMicron Technologies, Inc. Unknown device 2383
04:00.4 System peripheral: JMicron Technologies, Inc. Unknown device 2384
Sin embargo, con el nuevo
Ubuntu 8.10, reconoce correctamente el lector de tarjetas integrado en el AAO:
...
04:00.0 System peripheral: JMicron Technologies, Inc. JMircon SD/MMC OHCI Host Controller
04:00.2 Generic system peripheral [0805]: JMicron Technologies, Inc. JMircon SD Host Controller
04:00.3 System peripheral: JMicron Technologies, Inc. JMircon MS Host Controller
04:00.4 System peripheral: JMicron Technologies, Inc. JMircon xD Host Controller
Una vez, descargado, o
adquirido, nos encontramos con el primer problema. ¿Cómo instalamos el Ubuntu si no tiene lector de CDs? Vale, tenemos dos vías (
en realidad hay más como el arranque en red vía PXE, pero estas son las más sencillas):
- Instalar vía USB: Necesitaremos un pendrive (mínimo 1Gb) y descargarnos el unetbootin. Lo abrimos, marcamos imagen de disco ISO y seleccionamos el ubuntu que descargamos antes. Más abajo seleccionamos Unidad USB y la letra de la Unidad. Listo. Aceptar y esperar a que se genere un Ubuntu USB Live que nos servirá tanto para usarlo desde el pendrive, como para instalarlo posteriormente.
- Instalar vía CD externo: El AAO permite arrancar desde un lector de CD externo. No todo el mundo tiene un lector externo de estos, pero lo que si suele ser más común es una caja o carcasa de disco duro (tiene que ser IDE). Basta con conectar el cable IDE y el conector Molex a la unidad de CD, y servirá perfectamente.
Sea cuál sea nuestra elección, arrancamos el ultraportátil, pulsamos
F12 y seleccionamos el medio desde donde queremos arrancar.
Realizamos la
instalación como en cualquier otro ordenador. Hay que tener en cuenta que debido a la
baja velocidad de escritura del disco SSD del módelo 110, la instalación puede tardar un poco más de lo normal.
Configuración de la tarjeta RJ45
La tarjeta de red por cable funciona perfectamente en Ubuntu 8.10, así que no necesitaremos hacer nada. En kernels anteriores, la tarjeta, una
Realtek RTL8101E Fast Ethernet no era correctamente detectada con el driver
r8169, por lo que había que eliminarlo y compilar y cargar el módulo
r8101.
Actualmente, no tendremos ese problema si utilizamos Ubuntu 8.10. Eso si, tendremos que conectarnos por este medio, ya que posteriormente necesitaremos descargar algunos ficheros y realizar algunas operaciones de red.
Configuración de la tarjeta inalámbrica
El primer problema que tendremos, es que Ubuntu no incorpora los drivers para la tarjeta wireless. En linux existen dos formas para hacerla funcionar: utilizar
ndiswrapper (
vía fácil) o compilandolos nosotros mismos. Nos basaremos en el segundo caso, ya que el primero aunque es muy fácil de instalar, podemos perder funcionalidad y potencia (
estamos emulando un driver de windows).
La tarjeta es una
Atheros AR5006EG 802.11 b/g Wireless PCI Express, así que utilizaremos
MadWifi (
Multiband Atheros Driver for WIFI).
En este punto, podemos escribir
sudo ifconfig | cut -d" " -f1 | sort | uniq y nos aparecerán las interfaces (
tarjetas de red) disponibles en nuestro sistema. Deberían aparecer dos:
lo que es el loopback (
no es una tarjeta física), y
eth0, que es la tarjeta de red por cable. Tras los siguientes pasos, aparecerán
ath0 y
wifi0, de la red inalámbrica.
sudo apt-get install build-essential linux-headers-$(uname -r)
Obviamente, necesitaremos los fuentes de nuestro kernel para compilar los drivers de red. Accedemos a
MadWifi Snapshots y nos descargamos los drivers (
en este momento, la versión del HAL 0.10.5.6), desempaquetamos y entramos en la carpeta para ejecutar unos scripts.
wget "http://snapshots.madwifi-project.org/madwifi-hal-0.10.5.6-current.tar.gz"
tar -xzvf madwifi-hal-0.10.5.6-current.tar.gz
cd madwifi-hal-0.10.5.6-r3861-20080903
cd scripts
./madwifi-unload
./find-madwifi-modules.sh $(uname -r)
cd ..
El primer script,
madwifi-unload, se encargará de descargar los módulos que estén actualmente activos (
si los hay), ya que sino no podrá modificarlos al compilarlos. El segundo, busca los modulos y los elimina. Volvemos a la carpeta anterior. ¡A compilar!
make && make install && modprobe ath_pci
Esto se pegará un ratito. Estaremos compilando los nuevos módulos e instalandolo en sus carpetas correspondientes.
Es conveniente que los usuarios no experimentados realicen por separado las operaciones; primero el
make y luego, si no hay errores, el
make install y de la misma manera finalmente el
modprobe ath_pci; así, si ocurre un problema será más fácil detectarlo y subsanarlo dejando un comentario.
Hemos terminado. Con esto, al volver a hacer
sudo ifconfig | cut -d" " -f1 | sort | uniq aparecerá
ath0 y
wifi0. Si no es así, no te preocupes, en mi caso necesité reiniciar el sistema para hacer efectivos los cambios.
Un detalle importante es que en el fichero
/etc/default/linux-restricted-modules-common, habría que añadir el módulo
ath_hal en el parámetro
DISABLED_MODULES. Así evitaremos problemas de apagado de la wifi.
LED Wireless
Sin embargo, a pesar de que la conexión inalámbrica empezará a funcionar, el led wireless (
zona inferior derecha) permanece apagado.
Con los siguientes comandos, utilizando
sysctl (
utilizado para configuraciones de /proc/ a nivel del kernel) podremos activarla.
sysctl -w dev.wifi0.ledpin=3
sysctl -w dev.wifi0.softled=1
Con esto conseguiremos que cuando haya tráfico de red vía conexión inalámbrica, el led parpadee. Quedaría incluir las siguientes lineas al principio del fichero
/etc/rc.local (
arranque de linux), que asocia el funcionamiento de la tecla-switch especial que está debajo del LED:
/usr/bin/setkeycodes e055 159
/usr/bin/setkeycodes e056 158
No estoy completamente seguro de que funcione para todos los casos, pero con el comando
showcode, efectivamente, me detecta que los dos códigos que devuelve esa tecla son
158 y
159.
Administrador de conexiones
NetworkManager, el gestor de redes inalámbricas que trae por defecto de Ubuntu, en mi opinión da más problemas de los que resuelve. Puedo recomendar instalar con un
apt-get install wicd o
wifi-radar. Simples, pero muy funcionales.
Control de ventilador
Ubuntu 8.10 recién instalado no conoce bien las especificaciones del
ventilador interno del Aspire One, por lo que está funcionando todo el tiempo. Esto no es un problema a la hora de la ventilación, pero sí que lo es a la hora del ruido y/o el uso constante del mismo.
apt-get install dmidecode
wget http://aceracpi.googlecode.com/svn/trunk/acer_ec/acer_ec.pl
wget http://electronpusher.org/~rachel/acerfand
chmod a+x acerfand
sudo cp acer_ec.pl acerfand /usr/local/bin/
Una vez más, editamos el fichero de arranque
/etc/rc.local y añadimos al principio la siguiente linea:
/usr/local/bin/acerfand
Con esto conseguiremos que el control del ventilador se inicie siempre al arrancar el ultraportatil. Pero para mayor dominio crearemos un fichero
/etc/acerfand.conf donde colocaremos las siguientes opciones:
INTERVAL=5
FANOFF=50
FANAUTO=55
Lo que significa que cada
5 segundos se comprueba la temperatura interna del portatil. Si supera los
70ºC se activará el ventilador. Si desciende de
60ºC entonces se desactivará. Al parecer, según Intel, los
procesadores Atom pueden trabajar hasta los 99ºC.
Webcam
El Acer Aspire One posee una
webcam integrada que funciona por USB 2.0 internamente. A pesar de la poca calidad (
0.3 megapixels), la webcam tiene una velocidad estupenda y es genial para conferencias vía mensajería instantánea.
sudo apt-get install cheese
Para probarla, se puede utilizar
cheese, una simple aplicación para utilizar la webcam que permite guardar imagenes, videos e incluso utilizar efectos gráficos on-the-fly (
al vuelo).
También existen otros programas como
luvcview u otros.
Apariencia visual
La apariencia lo es todo, y más si queremos presumir de un ultraportatil potente y vistoso. Accedemos al menú
Sistema /
Preferencias / Apariencia. En esta zona podemos seleccionar distintos aspectos del entorno gráfico.
En
Art Gnome puedes encontrar todo tipo de
decoraciones (
wallpapers, bootlogins, splash screens...) para nuestro sistema Gnome. Por ejemplo, vamos a instalar el tema (
borde de ventana) de
Correcamins, que es tan fácil como descargarlo y arrastrar el fichero a la ventana tema que teníamos abierta desde antes.
Accedemos entonces a
Personalizar... y seleccionamos el tema instalado o cualquiera que nos parezca de la amplia gama para seleccionar.
En el apartado
Tipografías, recomiendo seleccionar
Suavizado de subpíxel (LCD) para mejorar el renderizado de las fuentes.
Finalmente, y a gusto personal, se puede acceder al menú
Efectos visuales y activar la opción
Extra, lo que activará
Compiz, un conjunto de efectos que convertirán las ventanas del escritorio en elementos más flexibles y visualmente agradables. Puedes ver algunos
ejemplos de Compiz aquí.
Tarjeta gráfica
Nuestro Ubuntu 8.10 detectará perfectamente la tarjeta gráfica de nuestro AAO que es una
Intel Mobile 945GM/GMS/GME, 943/940GML Express. La resolución recomendada es
1024x600, la que detecta por defecto nuestro sistema. No obstante, podemos hacer algunos retoques para
tunear su funcionamiento. Editamos el fichero
/etc/X11/xorg.conf y escribimos (
en mi caso estaba vacío, si no es así, buscamos la sección y añadimos lo que falte):
Section "Device" Identifier "Configured Video Device" Option "MonitorLayout" "LVDS,VGA" Option "Clone" "True" Option "AccelMethod" "EXA" Option "MigrationHeuristic" "greedy" VideoRam 229376 Option "CacheLines" "1980"EndSection
Donde estaremos especificando distintos parámetros:
- Se define un monitor LVDS (propio del portátil) y otro VGA (salida externa a otro monitor).
- Clonación de monitores (proyectores, mon. externo) habilitada
- Método de aceleración EXA (reemplazando el antiguo XAA) con un parámetro heurístico voraz (es posible establecerlo a "always", "greedy" o "smart")
- Asignación de 23Mb de RAM a la tarjeta gráfica (con VideoRAM)
- Rendimiento equilibrado entre el 2D y el 3D de la tarjeta con la opción CacheLines.
Otras fuentes especifican copiar el xorg.conf del Linpus, sin embargo, esta configuración da un mejor rendimiento, sobretodo con el
Compiz activado.
Un añadido más, sería editar el fichero
/etc/profile y añadir la línea:
INTEL_BATCH=1
Lo que aumentaría el rendimiento del compiz, facilmente comprobable con el
glxgears.
Tarjeta de sonido
En Ubuntu 8.10, la tarjeta de sonido se reconoce automáticamente y no hay problema para utilizarla.
Arranque del sistema
Por defecto, al arrancar Ubuntu. Cada elemento que se carga en el inicio lo hace secuencialmente, uno después de otro. Sin embargo, podemos obligar a hacerlo en paralelo, simultaneamente, editando el fichero
/etc/rc.local y escribiendo:
CONCURRENCY=shell
Otro punto ideal, es eliminar los servicios o programas de arranque que no vamos a utilizar. El
linpus es tan rápido porque apenas carga dispositivos (
y los que carga son cuando los necesita). Para ello sería conveniente pulsar
ALT+F2 y escribir
services-admin.
Con ello podremos desactivar los servicios que no sean necesarios para nosotros, según nuestros requisitos. Para usuarios más avanzados, pueden hacer esto mismo de una forma más técnica. Eso sí, hay que tener cuidado con no desactivar algo que no se sepa lo que es:
sudo apt-get install rcconf
rcconf
Mejorar rendimiento del disco SSD
Uno de los principales problemas, como había comentado anteriormente y en el artículo de presentación del
Acer Aspire One es que la velocidad de escritura es muy baja (
6MB/s) en comparación con la de lectura (
39MB/s). Por lo tanto hay que reducir al máximo los accesos de escritura al disco.
En el fichero
/etc/fstab se gestionan las particiones del sistema. Debería aparecer algo similar a esto:
proc /proc proc defaults 0 0UUID=.... / ext2 relatime, errors=remount-ro 0 1UUID=.... none swap sw 0 0
Cada linea representa una partición del sistema. Por defecto, linux cuando accede a cualquier fichero, modifica la última fecha de acceso a ese fichero, podemos evitar esto modificando
relatime por
noatime, ahorrando mucha escritura y maximizando la velocidad y el rendimiento del SSD.
Otra buena idea, es crear varias unidades temporales en memoria RAM (
RAMdisk) para lugares donde no se guarda información relevante y puede ser eliminada en cada reinicio (
logs del sistema, temporales, etc...). Por ejemplo, añadir las siguientes lineas:
tmpfs /var/log tmpfs defaults,noatime 0 0tmpfs /tmp tmpfs defaults,noatime 0 0tmpfs /var/tmp tmpfs defaults,noatime 0 0
Claro está, que como al reiniciar el portátil, estas carpetas no existen, hay que crearlas. Para ello, editamos el fichero
/etc/rc.local y escribimos lo siguiente:
for dir in apparmor apt cups dist-upgrade fsck gdm installer news samba unattended-upgrades ; do
if [ ! -e /var/log/$dir ] ; then
mkdir /var/log/$dir
fi
done
Editando el fichero
/boot/grub/menu.lst, encontraremos la lista de sistemas de nuestro portatil. Por defecto, al instalar, sólo aparece Ubuntu, Ubuntu recovery (
un modo «a prueba de fallos») y un comprobador de memoria RAM. El primero tendrá el siguiente formato:
title Ubuntu 8.10, kernel ....uuid ........kernel /boot/vmlinuz-2.6... ro quiet splashinitrd ......
En el primer de ellos, que es el que iniciamos normalmente, vamos a la linea
kernel y al final de ella (
justo después de quiet splash) añadimos
elevator=noop.
Esta opción, es un sistema de
optimización para nuestros discos duros. Cuando necesita acceder a un disco, en lugar de saltar de un lado a otro (
lo que dificulta y hace que baje el rendimiento) lo hará en plan
ascensor, secuencialmente, organizando en una cola para no producir demasiado movimiento.
Un poco más arriba, encontraremos una linea que esta comentada,
defoptions también podemos descomentarla y añadir el
elevator=noop para que siempre utilice esta técnica.
En Ubuntu existe
ScrollKeeper, un catalogador abierto de documentos que utiliza demasiado la escritura en el SSD cada vez que se instala algo. Para desactivarlo:
sudo mv /usr/bin/scrollkeeper-update /usr/bin/scrollkeeper-update.real
sudo ln -s /bin/true /usr/bin/scrollkeeper-update
sudo find /var/lib/scrollkeeper/ -name \*.xml -type f -exec rm -f '{}' \;
sudo dpkg-divert --local --divert /usr/bin/scrollkeeper-update.real --add /usr/bin/scrollkeeper-update
Cacheando en Firefox
Una de las ventajas de Ubuntu, es que dispondremos del nuevo
Firefox 3. Sin embargo, la carga puede ser lenta si no lo configuramos apropiadamente. Escribimos en la dirección
about:config, aceptamos la advertencia y en el filtro ponemos
browser.cache.
Con botón derecho, Nuevo / Cadena, escribimos
browser.cache.disk.parent_directory que le asignamos la cadena
/tmp/firefox. A partir de ahora el caché se guardará en esta carpeta, que anteriormente establecimos en un RAMdisk, mucho más rápido que el SSD. La navegación será más rápida.
También puede modificarse las preferencias
browser.cache.disk.enable y
browser.cache.disk.capacity para limitar el tamaño del caché del navegador.
Además, en el menú Editar / Preferencias / Seguridad, podemos deshabilitar (
¡bajo nuestro riesgo!) las dos opciones de detectar sitios de ataques o engaño (
phishing). Esto aligerará mucho nuestro navegador.
Ahorro de energía
En el wiki de Ubuntu para Aspire One, encontramos la recomendación de incluir en el
/etc/rc.local las siguientes lineas para mejorar el ahorro de energía del ultraportatil:
sysctl -w vm.swappiness=1
sysctl -w vm.vfs_cache_pressure=50
Con esto, se produce un ahorro de energía con respecto al disco SSD.
echo ondemand > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
echo ondemand > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor
cat /sys/devices/system/cpu/cpu0/cpufreq/ondemand/sampling_rate_max > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/sampling_rate
echo 1500 > /proc/sys/vm/dirty_writeback_centisecs
echo 20 > /proc/sys/vm/dirty_ratio
echo 10 > /proc/sys/vm/dirty_background_ratio
echo 1 > /sys/devices/system/cpu/sched_smt_power_savings
echo 10 > /sys/module/snd_hda_intel/parameters/power_save
echo 5 > /proc/sys/vm/laptop_mode
Estas lineas, hacen que el sistema según su necesidad de consumo de procesador, ajuste la velocidad del mismo entre 800MHz y 1600MHz, consumiendo menos energía cuando no estamos realizando ninguna tarea pesada, entre otras cosas.
[ -L /sys/bus/usb/devices/1-5/power/level ] && echo auto > /sys/bus/usb/devices/1-5/power/level [ -L /sys/bus/usb/devices/5-5/power/level ] && echo auto > /sys/bus/usb/devices/5-5/power/level
Idem al anterior, pero con respecto al USB. Efectua un ahorro de energía cuando no se utiliza ningún dispositivo USB.
Lector de tarjetas
AAO tiene dos sistemas de lectura de tarjetas. El primero, el
Storage Expansion, que permite insertar una tarjeta
SDHC, ampliando la capacidad del disco duro. Este dispositivo se encuentra en
/dev/mmcblk0 y es detectado automáticamente por Ubuntu.
Sin embargo, el segundo, un multi-lector de tarjetas, que se encuentra en
/dev/mmcblk1 no se carga automáticamente al insertar una. Para ello, vamos a descargarnos un script del Linpus:
wget http://petaramesh.org/public/arc/projects/AcerOne_Ubuntu/jmb38x_d3e.sh
sudo chmod 754 jmb38x_d3e.sh
sudo mv jmb38x_d3e.sh /usr/local/sbin/
Ahora, sólo restará editar el fichero
/usr/local/sbin/jmb38x_d3e.sh y cambiar la línea 11 por
modprobe pciehp pciehp_force=1. Editamos el fichero
/etc/rc.local y añadimos una linea:
/usr/local/sbin/jmb38x_d3e.sh.
Esta característica funciona parcialmente, aunque yo he podido cargar perfectamente tarjetas SD en el multi-léctor, he tenido problemas para cargar tarjetas xD (
faltan módulos xd_card y jmb38x_xd) o para que las reconozca automáticamente. También se dice que la suspensión puede dar conflictos con estas tarjetas si están insertadas.
Ultimos retoques y notas
También puedes instalar
Ubuntu netbook remix, un sistema rápido y sencillo de accesos directos, optimizado para ultraportatiles, muy similar al que incorporaba Linpus. Puedes ver algunas capturas en
Flickr sobre netbook remix.
Hay un sistema para construir una especie de caché de los ficheros utilizados al arranque, y así, reducir la velocidad del arranque del sistema operativo, utilizando
readahead y creando un profile. Las instrucciones paso a paso puedes encontrarlas en
optimizar arranque de ubuntu.
Si acostumbras a hacer un
apt-get upgrade, recuerda que si actualizas la versión del kernel del Ubuntu, tendrás que recompilar algunos drivers como el madwifi (
simplemente ejecutar el mantra de instalación make && make install).