Buscar en este blog

23.10.11

Debian 6 / Ubuntu 11.04 en ASUS UL30VT

 Esta receta es válida para la configuración de Ubuntu 11.04 (amd64) en un ASUS UL40VT.

NOTA: El contenido no es original. Todo ha sido recopilado desde los siguientes lugares:
  • http://wiki.debian.org/InstallingDebianOn/Asus/UL30VT
  • http://mig5.net/content/crunchbang-10-statler-asus-ul30vt
  • http://wiki.daviddarts.com/Ubuntu_Lucid_on_the_Asus_UL30VT
  • http://www.thinkwiki.org/wiki/How_to_reduce_power_consumption

ASUS UL30VT
Cosas que funcionan out of the box:
  • Webcam: Probado con "cheese".
  • Control de volumen.
  • Suspensión.
  • Salida VGA con Fn+F8.
  • Wifi (solo en Ubuntu)
Cosas que no he conseguido hacer funcionar
Desactivar Touchpad (Fn + F9)

WIFI
En Ubuntu es suficiente hacer la instalación habilitando los controladores de terceros para que funcione.
En debian se debe instalar el FW a mano:
#apt-get install firmware-iwlwifi

 Grub
Para que el sistema use correctamente algunos valores de ACPI relacionados con la pantalla, se deben pasar algunos parámetros extra al kernel.
Editar "/etc/default/grub"
[...]

GRUB_CMDLINE_LINUX_DEFAULT="acpi_backlight=vendor i915.powersave=0 vga=792 quiet splash"
[...] 

Reinstalar Grub:
#update-grub 
 
Control de brillo (Fn + F5/F6) con la tarjeta Intel:
Por defecto, las teclas de control de brillo no funcionan. Se soluciona modificando los scripts :

/etc/acpi/asus-brn-up.sh
#!/bin/sh
test -f /usr/share/acpi-support/key-constants || exit 0

. /usr/share/acpi-support/key-constants

# DeviceConfig

if [ "$model" != "701" ] ; then
    # On an Eee PC (ASUSTeK model 701) the keys in the range handled by this
    # script have entirely different meanings. They are handled in separate
    # scripts.
    acpi_fakekey $KEY_BRIGHTNESSUP
fi

# added per http://forum.notebookreview.com/showpost.php?p=5665108&postcount=1235
#brightness=`echo $3 | sed 's/0000001//'`
#setpci -s 00:02.0 F4.B=${brightness}f

# added per mailing list post
# in /etc/asus_brn_up.sh
brightness=$((0x`setpci -s 00:02.0 F4.B`+16));
if [ $brightness -gt $((0xff)) ] ; then
  brightness=$((0xff));
fi
setpci -s 00:02.0 F4.B=`printf '%x' $brightness`;

/etc/acpi/asus-brn-down.sh
#!/bin/sh

test -f /usr/share/acpi-support/key-constants || exit 0
. /usr/share/acpi-support/key-constants
acpi_fakekey $KEY_BRIGHTNESSDOWN

# added per http://forum.notebookreview.com/showpost.php?p=5665108&postcount=1235
#brightness=`echo $3 | sed 's/0000002//'`
#setpci -s 00:02.0 F4.B=${brightness}f

# added per mailing-list post
brightness=$((0x`setpci -s 00:02.0 F4.B`-16));
if [ $brightness -lt 0 ] ; then
   brightness=1;
fi
setpci -s 00:02.0 F4.B=`printf '%x' $brightness`;
Doble Tarjeta gráfica
Este portatil incluye dos tarjetas gráficas. Una de ellas, Intel, no dispone de memoria dedicada. La otra, Nvidia, sí. Ambas funcionan, pero no hay una forma sencilla de intercambiar el uso de una u otra. En este caso se ha optado por usar la controladora integrada Intel de menor consumo energético y desactivar la Nvidia.
Hay varias formas de hacer esto, pero la mejor que he encontrado en cuando a estabilidad es un módulo del kernel llamado "acpi-call". Se descarga/instala de la siguiente forma:

  git clone http://github.com/mkottman/acpi_call.git 
  cd acpi_call
  make
  sudo insmod acpi_call.ko 

Además, hay que ejecutar el script "test_off.sh", en el mismo directorio, para que la tarjeta se desactive.

TouchPadd; scrolling con dos dedos:
Configurar desde "Sistema - Preferencias - Mouse

Ahorro de energía
Con los siguientes cambios, powertop indica un consumo, sin carga, de unos 7Watios. Suficiente para unas 6 horas de autonomía.

Salida de powertop

Se añaden las siguientes lineas a "/etc/rc.local" para aplicar las políticas de ahorro de energía:
#Desactivar BlueTooth
/sbin/rfkill block bluetooth
#Otros parámetros de ahorro de energia
ethtool -s eth0 wol d
iwconfig wlan0 power timeout 500ms
echo 1 > /sys/module/snd_hda_intel/parameters/power_save
echo 0 > /proc/sys/vm/swappiness
echo 60000 > /proc/sys/vm/dirty_expire_centisecs
echo 60000 > /proc/sys/vm/dirty_writeback_centisecs
echo 60 > /proc/sys/vm/dirty_background_ratio
echo 95 > /proc/sys/vm/dirty_ratio
echo 50 > /proc/sys/vm/vfs_cache_pressure

#Ahorro de energía en la controladora SATA
echo min_power > /sys/class/scsi_host/host0/link_power_management_policy

#Política del powerstep del procesador
cpufreq-selector -c 0 -g ondemand
cpufreq-selector -c 1 -g ondemand

#Cargar módulo acpi_call y desactivar tarjeta NVidia
insmod /opt/acpi_call/acpi_call.ko
sh /opt/acpi_call/test_off.sh&
#Bajar brillo de la pantalla
setpci -s 00:02.0 F4.B=20&
NOTA: Después de suspender el equipo y salir del estado de reposo, algunas de las políticas de bajo consumo se anulan. Para reactivarlas de forma automatizada se edita el archivo:

/etc/pm/sleep.d/10_filename

#!/bin/bash
. /usr/lib/pm-utils/functions
case "$1" in
    hibernate|suspend) ;;
    thaw|resume)
    #Tareas a realizar al salir de suspensión
    # Asegurarse que la tarjeta NVidia sigue desactivada
    sh /home/josem/acpi_call/test_off.sh
    # Bajar brillo de la pantalla
    setpci -s 00:02.0 F4.B=20
    # Ahorro de energía en la interfaz SATA
    echo min_power > /sys/class/scsi_host/host0/link_power_management_policy
    ;;
   
    *) ;;
esac
exit $?
De esta forma se ejecutarán las tareas del archivo cada vez que el equipo entre y salga de la suspensión.