Kubuntu 6.06 en Dell Inspiron 640m

Technorati Tags: , , , , ,

Bueno, por fin encontré un hueco para instalar Linux en el nuevo portátil, concretamente Kubuntu. Ya probé el Live CD de Kubuntu 6.06 (Dapper) y conseguí configurar el modo gráfico con la pantalla panorámica sin problemas, y observé que detectaba bien el controlador Bluetooth integrado y la Wifi funciona perfectamente con el acceso de TID.

Antes de nada, mencionar que el modelo Dell Inspiron 640m se actualiza constantemente con hardware nuevo, y la configuración que yo tengo es la siguiente:

Procesador Intel Core 2 Duo T5600 a 1,83 GHz
Memoria 2 GB DDR2 a 667 MHz de doble canal
Disco duro 120 GB 5400 rpm SATA
Unidad óptica Regrabador de DVD/CD Optiarc 8x
Sonido Intel 82801G integrada
Red Módem integrado
Ethernet Broadcom 4400 10/100BaseT
IEEE802.11a/b/g Intel Pro WLAN 3945
Conectividad Bluetooth 2.0 Dell TrueMobile 350
Firewire Ricoh
Lector de tarjetas SD/xD/MMC Ricoh
USB: 4 puertos
Conector PCMCIA
Salidas de televisión y VGA

Me descargué la última versión disponible, la 6.10 (Edgy), pero hasta hoy no he podido coger un CD en el que grabarla (vago que es uno para ir a comprar). Tristemente, no he conseguido iniciar el Live CD ni siquiera con el modo gráfico seguro, que es lo que hace falta para arrancar el de Dapper.

Después de dos intentos (modo normal y luego modo seguro), he deducido que el problema está en el controlador gráfico que intenta cargar Edgy, el i810, mientras que Dapper carga el vesa, a 1024×768. Como la gráfica es una i945GM, parece que no se lleva bien con ese driver para la resolución 1440×900 y necesita un parche.

Ahora, una vez realizada la instalación del sistema base de Dapper para 32 bits (cargada en modo seguro, «secure graphics mode»), hay que realizar una serie de operaciones para dejar el sistema listo para ser usado:

  1. Configurar los repositorios.
  2. Instalar el soporte para múltiples procesadores (SMP), ya que se trata de un procesador Core 2 Duo, de doble núcleo.
  3. Posibles problemas con la tarjeta Wireless.
  4. Instalar el controlador gráfico y reconfigurar el servidor gráfico.
  5. Configurar el touchpad Synaptics.
  6. Configurar las teclas de acceso rápido.
  7. Enjoy!

Información extraída de lspci:

0000:00:00.0 Host bridge: Intel Corporation Mobile Memory Controller Hub (rev 03)
0000:00:02.0 VGA compatible controller: Intel Corporation Mobile Integrated Graphics Controller (rev 03)
0000:00:02.1 Display controller: Intel Corporation Mobile Integrated Graphics Controller (rev 03)
0000:00:1b.0 0403: Intel Corporation 82801G (ICH7 Family) High Definition Audio Controller (rev 01)
0000:00:1c.0 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 1 (rev 01)
0000:00:1c.1 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 2 (rev 01)
0000:00:1c.3 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 4 (rev 01)
0000:00:1d.0 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #1 (rev 01)
0000:00:1d.1 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #2 (rev 01)
0000:00:1d.2 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #3 (rev 01)
0000:00:1d.3 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #4 (rev 01)
0000:00:1d.7 USB Controller: Intel Corporation 82801G (ICH7 Family) USB2 EHCI Controller (rev 01)
0000:00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev e1)
0000:00:1f.0 ISA bridge: Intel Corporation 82801GBM (ICH7-M) LPC Interface Bridge (rev 01)
0000:00:1f.2 IDE interface: Intel Corporation 82801GBM/GHM (ICH7 Family) Serial ATA Storage Controllers cc=IDE (rev 01)
0000:00:1f.3 SMBus: Intel Corporation 82801G (ICH7 Family) SMBus Controller (rev 01)
0000:02:00.0 Ethernet controller: Broadcom Corporation BCM4401-B0 100Base-TX (rev 02)
0000:02:01.0 FireWire (IEEE 1394): Ricoh Co Ltd: Unknown device 0832
0000:02:01.1 0805: Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (rev 19)
0000:02:01.2 System peripheral: Ricoh Co Ltd: Unknown device 0843 (rev 01)
0000:02:01.3 System peripheral: Ricoh Co Ltd R5C592 Memory Stick Bus Host Adapter (rev 0a)
0000:02:01.4 System peripheral: Ricoh Co Ltd xD-Picture Card Controller (rev 05)
0000:0c:00.0 Network controller: Intel Corporation: Unknown device 4222 (rev 02)

1. Configurar los repositorios

Los repositorios por defecto no son suficientes para instalar y configurar todo lo que nos hace falta, básicamente por «culpa» del driver gráfico, así que habrá que añadir los repositorios «universe» y «multiverse». Mi archivo queda con las siguientes líneas no comentadas (editar con sudo nano /etc/apt/sources.list):

deb http://es.archive.ubuntu.com/ubuntu/ dapper main restricted
deb-src http://es.archive.ubuntu.com/ubuntu/ dapper main restricted

deb http://es.archive.ubuntu.com/ubuntu/ dapper-updates main restricted
deb-src http://es.archive.ubuntu.com/ubuntu/ dapper-updates main restricted

deb http://es.archive.ubuntu.com/ubuntu/ dapper universe multiverse
deb-src http://es.archive.ubuntu.com/ubuntu/ dapper universe multiverse

deb http://es.archive.ubuntu.com/ubuntu/ dapper-backports main restricted universe multiverse
deb-src http://es.archive.ubuntu.com/ubuntu/ dapper-backports main restricted universe multiverse

deb http://security.ubuntu.com/ubuntu dapper-security main
deb http://security.ubuntu.com/ubuntu dapper-security universe

deb http://seveas.imbrandon.com dapper-seveas all
deb-src http://seveas.imbrandon.com dapper-seveas all

Las dos últimas líneas sirven para el repositorio de los codecs multimedia del paso 7.

2. Instalar el soporte SMP

En el momento de la instalación, el núcleo que se instala no lleva el soporte de SMP:

carlos@huoyuanjia:~$ uname -a
Linux huoyuanjia 2.6.15-23-386 #1 PREEMPT Tue May 23 13:49:40 UTC 2006 i686 GNU/Linux

Por tanto, habrá que instalar uno que sí lo tenga. En Ubuntu, este núcleo está en el metapaquete linux-686-smp (para Pentium desde la serie Pentium Pro hasta Pentium 4):

linux-686-smp – Complete Linux kernel on PPro/Celeron/PII/PIII/PIV SMP.

Para instalarlo, simplemente ejecutar:

carlos@huoyuanjia:~$ sudo apt-get install linux-686-smp

Otra opción para instalar el paquete es utilizar la herramienta de administración de paquetes, «Adept», que está en Inicio->Sistema->Adept. Con introducir el nombre del paquete en la casilla de búsqueda, nos mostrará el paquete y podremos seleccionarlo para instalar. Esto se puede hacer para el resto de paquetes que hay que instalar, más simple que utilizar la línea de comandos.

Después de instalarlo habrá que reiniciar para que se active el soporte de doble núcleo, eligiendo el núcleo recién instalado en el menú de Grub (normalmente estará seleccionado por defecto). Una vez iniciado, se puede comprobar que el soporte está activado utilizando la herramienta KInfoCenter (en Inicio->Sistema) y ver el apartado de Procesador o bien usar el comando siguiente:

carlos@huoyuanjia:~$ cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 15
model name : Intel(R) Core(TM)2 CPU T5600 @ 1.83GHz
stepping : 6
cpu MHz : 1830.907
cache size : 2048 KB
physical id : 0
siblings : 1
core id : 255
cpu cores : 1
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 10
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm pni monitor ds_cpl vmx est tm2 cx16 xtpr lahf_lm
bogomips : 1997.72

processor : 1
vendor_id : GenuineIntel
cpu family : 6
model : 15
model name : Intel(R) Core(TM)2 CPU T5600 @ 1.83GHz
stepping : 6
cpu MHz : 1830.907
cache size : 2048 KB
physical id : 1
siblings : 1
core id : 255
cpu cores : 1
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 10
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm pni monitor ds_cpl vmx est tm2 cx16 xtpr lahf_lm
bogomips : 3661.83

3. Posibles problemas con la tarjeta Wireless

Si bien la tarjeta funciona perfectamente con el Live CD y después de la instalación, existe un problema relacionado seguramente con el mantenimiento de los paquetes de módulos «restricted» de Ubuntu. Concretamente, en mi caso, cuando instalo el paquete linux-686-smp, no existe un paquete de módulos «restricted» de la misma versión que el núcleo que se instala, la 2.6.15-27, sino que existen para la 2.6.15-23. Esto no sería un problema de no ser porque en el arranque se carga el módulo ipw3945 a través de un script llamado a través de una orden que incluye la versión del núcleo que se está ejecutando, y el script que esta orden ejecuta está en /sbin/ipw3945d-2.6.15-23-686, pero al iniciar con el nuevo núcleo, se intenta llamar a /sbin/ipw3945d-2.6.15-27-686, y claro, no funciona porque ese archivo no existe.

¿Cómo arreglarlo? Es tremendamente fácil arreglarlo si ya tenemos el script /sbin/ipw3945d-2.6.15-23-686, simplemente creando un enlace simbólico con el siguiente comando:

carlos@huoyuanjia:~$ sudo ln -s /sbin/ipw3945d-2.6.15-23-686 /sbin/ipw3945d-2.6.15-27-686

De esta forma, al reiniciar con el nuevo núcleo, funcionará la tarjeta sin problemas.

Si la versión instalada del núcleo con SMP es diferente, habrá que poner los números correctamente, y si ya incluye el script, no será necesario hacerlo.

4. Instalar el controlador gráfico

La salida de dmesg nos deja la información sobre la tarjeta gráfica que tiene el equipo:

[4294683.657000] agpgart: Detected an Intel 945GM Chipset.

Para este chipset, que lleva un controlador gráfico 950, y que da problemas con el driver i810, es necesario instalar una utilidad que parchea la BIOS de las tarjetas de las series 800 y 900, llamado 915resolution. Por tanto, hay que instalar en primer lugar dicha utilidad:

carlos@huoyuanjia:~$ sudo apt-get install 915resolution

El resultado de ejecutar la configuración (automática de apt) debería ser algo parecido a esto:

Configurando 915resolution (0.5-1ubuntu6) …
Starting 915resolution: Intel 800/900 Series VBIOS Hack : version 0.5.2

Chipset: 945GM
BIOS: TYPE 1
Mode Table Offset: $C0000 + $269
Mode Table Entries: 36

Patch mode 3c to resolution 1440×900 complete
Intel 800/900 Series VBIOS Hack : version 0.5.2

Chipset: 945GM
BIOS: TYPE 1
Mode Table Offset: $C0000 + $269
Mode Table Entries: 36

Patch mode 4d to resolution 1440×900 complete
Intel 800/900 Series VBIOS Hack : version 0.5.2

Chipset: 945GM
BIOS: TYPE 1
Mode Table Offset: $C0000 + $269
Mode Table Entries: 36

Patch mode 5c to resolution 1440×900 complete
915resolution.

Para configurar el modo gráfico podemos usar la consola con el siguiente comando:

carlos@huoyuanjia:~$ sudo dpkg-reconfigure xserver-xorg

Para configurarlo correctamente, hay que seguir los siguientes pasos:

  1. Decirle que autodetecte el hardware. Nos mostrará marcado el driver i810. Si no es así, lo seleccionamos. El nombre del identificador es irrelevante, por lo que se puede dejar el que nos sugiera.
  2. A continuación nos pide el identificador del bus en el que se encuentra el controlador gráfico. A menos que haya problemas, será el que nos diga el configurador, en caso contrario, lo tenemos en la salida de lspci mostrada anteriormente.
  3. La cantidad de memoria no es necesario incluirla, la detectará el servidor al iniciarse.
  4. Decir que no al uso de framebuffer.
  5. Decir sí a la detección de la disposición de teclado. Nos debería mostrar «es», si muestra «us» lo cambiamos.
  6. Las reglas de teclado son «xorg» por defecto, con eso es suficiente.
  7. El modelo de teclado es pc105.
  8. La variante de teclado es mejor dejarla en blanco (a mí no me funcionaba AltGr ni la combinación Ctrl+Alt+F2 para cambiar a consola). Lo mismo para las opciones de teclado.
  9. Para el touchpad vale con ImPS/2 como soporte de ratón (el ratón USB va por otro lado, no hace falta configurarlo). La emulación de 3 botones es útil tenerla, ya que el touchpad sólo tiene 2.
  10. Los módulos podemos dejarlos tal cual los tiene seleccionados.
  11. A continuación se escribe el archivo de configuración, y pasamos a configurar el monitor. Lo suyo es decirle que autodetecte.
  12. Con la autodetección debería haber seleccionado la resolución 1440×900 y ninguno más. Si no es así, habrá que cambiarlo.
  13. Para seleccionar las características, es mejor no usar el modo avanzado, así que seleccionamos el modo «Medium» y buscamos la resolución 1440×900 que se supone funcionará a 100 Hz (es un TFT, no es muy relevante esa frecuencia). Para ahorrarnos problemas, le decimos que escriba los rangos de sincronización del monitor en el archivo de configuración.
  14. Por último, se selecciona la profundidad de color, 24 bits en nuestro caso.

5. Configurar el touchpad Synaptics

La instalación por defecto ya incorpora el driver del touchpad Synaptics en el servidor gráfico, por lo que únicamente hay que instalar alguna aplicación que nos sirva para configurarlo, en este caso, ksynaptics:

sudo apt-get install ksynaptics

De hecho, el soporte ya está activado y se puede usar el scroll vertical y dos de las 4 esquinas como botones especiales. Concretamente, la esquina superior derecha actúa como botón central y la inferior derecha como botón derecho (para los menús contextuales). Con ksynaptics podemos configurar esto, así como otras opciones que pueden ser interesantes. La herramienta está disponible como apartado en la herramienta de Preferencias del Sistema, llamado «Touchpad».

Para configurar los botones de las esquinas, hay que ir a la pestaña «Tapping» y seleccionar la esquina que sea en la sección «Fingers». La pega es que sólo se pueden asociar a botones del ratón (izquierdo, derecho o central), y no a otras funciones como maximizar ventanas o ejecutar aplicaciones.

Como he dicho, está activado el scroll vertical, pero curiosamente el horizontal no, ya que aparece una opción en el archivo de configuración de X.org (/etc/X11/xorg.conf):

Option «HorizScrollDelta» «0»

Tal vez esto se deba a un problema relacionado con el scroll horizontal en Firefox. El caso es que hay que quitar esa opción del archivo de configuración y reiniciar el servidor en caso de que deseemos utilizar el scroll horizontal del touchpad.

6. Configurar las teclas de acceso rápido

El portátil dispone de una serie de teclas de acceso rápido para multimedia. Estas son: mute (silenciar el sonido), subir y bajar volumen, play/pause, retroceder, avanzar, stop y «MediaDirect». Podemos asociar todas estas teclas con la función que deseemos. Dado que Amarok viene instalado por defecto y que podemos usar teclas globales para controlarlo, asociaré las de play/pause, avance, retroceso y stop con ellas.

Esta parte es mucho más tediosa que todo lo anterior, ya que hay que ejecutar unos comandos nada intuitivos y fiarse de que todo funcione bien. Para empezar, estas teclas, como cualquier otra, lo que hace es enviar una serie de códigos para que el sistema los interprete, y si pulsas la letra «a», lo que hace es escribir la letra, o si pulsas F1, el entorno ejecuta la acción que tenga configurada para dicha tecla (mostrar la ayuda, por ejemplo).

Los códigos que devuelven las teclas de acceso rápido normalmente no están definidos, ya que cada teclado es de su padre y de su madre y devuelve códigos diferentes. Para conocer esos códigos, hay que usar una herramienta llamada xev, que se ejecuta en modo consola. Aparecerá una ventana de eventos, y el resultado de las pulsaciones de teclas se mostrará en la consola. Por ejemplo, al pulsar el botón de «mute», el resultado es:

KeyPress event, serial 28, synthetic NO, window 0x3600001,
root 0x4c, subw 0x0, time 3367689462, (281,554), root:(285,576),
state 0x0, keycode 160 (keysym 0x0, NoSymbol), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False

KeyRelease event, serial 28, synthetic NO, window 0x3600001,
root 0x4c, subw 0x0, time 3367689462, (281,554), root:(285,576),
state 0x0, keycode 160 (keysym 0x0, NoSymbol), same_screen YES,
XLookupString gives 0 bytes:

Buscamos el código numérico, que es el número que va después de la palabra «keycode». En este caso es el 160, y aparece 2 veces porque hay 2 eventos: pulsar la tecla y soltarla. Hacemos esto con el resto de teclas de acceso rápido y obtenemos los códigos 174, 176, 162, 144, 153, 164 y 237, para las teclas de izquierda a derecha. Para asociar cada tecla con un evento capturable por el servidor gráfico, se usa el comando xmodmap, con la siguiente sintaxis:

xmodmap -e ‘keycode X=Funcion’

Donde X es el número de código que hemos sacado de la tecla y Funcion aquello que queremos que haga la tecla. En X.org (y XFree86) hay una serie de funciones definidas, pensadas para estas teclas multimedia, como el subir/bajar volumen y el control de canciones:

Existen otras opciones, como ejecutar el navegador por defecto, pero no son de mucho interés. A la tecla extra del «MediaDirect» se le puede asignar por ejemplo la tecla F13 y configurarla en el entorno de KDE a lo que queramos.

Para que la configuración quede guardada, es mucho mejor crear un archivo llamado .Xmodmap en nuestro directorio home con el siguiente contenido:

keycode 160=XF86AudioMute
keycode 174=XF86AudioLowerVolume
keycode 176=XF86AudioRaiseVolume
keycode 162=XF86AudioPlay
keycode 144=XF86AudioPrev
keycode 153=XF86AudioNext
keycode 164=XF86AudioStop
keycode 237=F13

Y hay que decirle al sistema que lo ejecute en cada inicio de sesión. Para ello, se crea un archivo .xprofile en nuestro home con la siguiente línea:

/usr/bin/xmodmap $HOME/.Xmodmap

Después de reiniciar la sesión (no es necesario reiniciar el servidor gráfico), se cargará la configuración y funcionarán las teclas de subir y bajar volumen y la de silencio. Ahora se pueden asociar las teclas globales de play/pause, stop, avanzar y retroceder en Amarok o en nuestro reproductor favorito.

7. Enjoy!

Estos son los pasos que he seguido para tener listo el sistema. La verdad es que no hay que hacer gran cosa, ya que casi todo funciona de serie. Si bien el módem no tengo posibilidad de probarlo (no parece factible que funcione, de todas maneras) y el Firewire tampoco por ahora. La conexión Bluetooth con el móvil (V3i) funciona a la perfección, usando el software que trae KDE de base. Se echa de menos poder desactivarlo, eso sí.

También funciona sin problemas la suspensión a memoria y a disco, y el regreso no deja nada sin funcionar, al menos eso parece. El lector de tarjetas está plenamenet soportado también.

Llegados a este punto, sólo queda disfrutar de un sistema operativo completo recién instalado, al que quizás queramos añadir soporte para MP3 y demás formatos multimedia que no vienen de serie, para lo cual hay que instalar los paquetes necesarios con el siguiente comando:

carlos@huoyuanjia:/etc/init.d$ sudo apt-get install libxine-extracodecs libarts1-mpeglib libarts1-xine libakode2-mpeg libk3b2-mp3 libdvdread3 libmad0 w32codecs libdvdcss2

Una tabla resumen del soporte de hardware:

Procesador de doble núcleo Soportado instalando el núcleo correspondiente
Tarjeta gráfica Con algunos ajustes, soportada
Sonido Soportada de serie
Touchpad Synaptics Soportado de serie
Teclas de acceso rápido Soportadas de serie, necesitan configuración adicional
Tarjeta Ethernet Soportada de serie
Tarjeta Wireless Soportada de serie, pero puede necesitar algún ajuste
Bluetooth Soportado de serie
USB Soportado de serie
Disco duro SATA Soportado de serie (*)
Unidad óptica Soportada de serie: lectura y grabación de CD/DVD
ACPI Soportado de serie: hibernar y suspender
Lector de tarjetas Soportado de serie
Firewire No probado
Módem integrado No probado
PCMCIA No probado
Salida VGA No probado
Salida de TV No probado

(*) Resultado del test de lectura del disco duro:

carlos@huoyuanjia:~$ sudo hdparm -tT /dev/sda

/dev/sda:
Timing cached reads: 3872 MB in 2.00 seconds = 1935.88 MB/sec
Timing buffered disk reads: 102 MB in 3.04 seconds = 33.59 MB/sec

Referencias

Para escribir este artículo, aparte de la experiencia de la instalación en sí, he utilizado información de:

Share

Did you enjoy this post? Why not leave a comment below and continue the conversation, or subscribe to my feed and get articles like this delivered automatically to your feed reader.

Comments

Saludos, antes que nada dejame felicitarte por tan buen articulo y completo, precisamente ando usando una 640m con kubuntu, y no me a dado mayor problemas, actualmente ando siguiento tus pasos, gracias por tu articulo, tus conocimientos nos enriquecen a nosotros los novatos =D

Me alegro de que haya servido para alguien la guía 🙂

Saludos.

buenas.
no sé si no he entendido bien en el artículo. dices que no has conseguido arrancar edgy en modo normal ni en modo seguro.
si es así, prueba lo que yo he hecho. intento arrancar en modo seguro, y no arranca y se queda en modo texto. si haces «startx» ves que no puede iniciar porque da problemas al cargar el controlador «i810», pero puedes hacer «sudo vi /etx/X11/xorg.conf» y cambiar el parámetro «i810» por «vesa». te sales de vi guardando «:qw» y arrancas el modo gráfico «startx».

saludos.

Hola ruben:

Gracias por la sugerencia, me refería al arranque desde el live CD, la solución que das está bien, pero no estaría de más que funcionara «out-of-the-box» como pasa con Dapper 🙂

El problema, como he dicho, debe estar casi seguro en la resolución de la pantalla, que para ponerla en modo panorámico necesita el 915resolution y no lo carga en el live CD.

No tenía ganas en ese momento de andar cacharreando con las configuraciones y me fui a lo fácil, que ya he instalado unas cuantas Dapper.

Saludos.

buenas de nuevo.

Yo también me refería al live CD (vaya, al live CD y CD de instalación, que es el mismo). Lo que quiero decir es que si metes el live CD para usarlo como «live» o para instalarlo, no te va a arrancar el modo gráfico como tu has dicho, pero una vez que se te quede en modo texto puedes hacer lo que he indicado antes y trabajar con el «live cd» o intalarlo.

No sé si tu no me habías entendido a mí, o yo no te he entendido a ti, jeje.

Saludos.

PD: si que estaría bien que no hubiese que tocar nada para que funcionase directamente.

Sorry, the comment form is closed at this time.