03 Oct 2004: v0.1

Bueno, he recompuesto y reescrito un poco los anteriores mensajes, de modo que intentaré hacerlo siempre sobre el mismo, marcando los cambios con alguna marca que aún no he pensado.

A modo de introducción, la primera cuestión surgió en si reinstalar o no el WXP que venía por defecto con el portátil. Mal que me pese, no puedo prescindir de el (a algo tiene que jugar el sujeto ocioso). Aunque mi primera opción era la reinstalación, con todo lo que ello implicaba, tras varias 'consultas' opté por utilizar el Partition Magic, y en unos 10-15 mins de manera casi automática tenía 11GB de espacio no asignado, dejando 28 GB para el XP.

Tras esto, el Linux.

Características)

Las caracteristicas más relevantes (para la configuracion del Linux) son las siguientes:

-> CPU Intel(R) Pentium(R) M Processor 1.5Ghz
Cache 1MB
Chipset Intel 855GM
BIOS 512KB(4 Mbit), Flash upgradable

-> Display and Graphics
LCD 14.1" XGA
LCD Resolution 1024 x 768 x 262,144 color (18 bit)
Graphics Controller Intel 855GM Integrated Graphic
Video Memory UMA 8MB, DVMT Max 64M

-> Audio Sound AC '97 Sound
Controller AC '97 2.2 compliant CODEC, SigmaTel STAC9752
Internal Embedded stereo speakers

-> Int External Microphone, Headphone, Optical S/PDIF out port
-> Int Controls Keyboard volume control

-> Storage
Hard Disk 9.5mmH 2.5" HDD, Removable 40GB
Drive Supports SMART UltraDMA-33/66/100 support

-> Network Tools
Fax/Modem 56Kbps / V.92
Chipset AC-97 S/W Modem
Features RJ11 Output
LAN 10/100 Ethernet UTP
Chipset Intel 82562 EZ
Features RJ45 Output
Wireless LAN 802.11b 802.11b : Intel
Chipset Calexico
Antenna Integrated 2 Antenna

-> I/O Interface
PC CardBus 1 Type II slot
Slots Controller Ricoh R5C593
Support 32bit CardBus cards
iEEE1394 Port 1
USB Port 2 (USB2.0)
Video Port 1
TV-out connector SVHS
Audio Jacks HeadPhone-out ,S/PDIF, MIC-in
Power 1(5pie)
Input Devices
Key board 88KEY(KR/US), 89KEY(UK/FR/GM/SP)
Touchpad Synaptics Touchpad
Scroll Button Scroll wheel
Memory stick 1 slot

-> Power and Power Management
Battery SSB-X10LS3 (3cells, Smart Li-Ion Battery)
Power Management ACPI 1.0b support, Standby(S3), Hibernate(S4)

Instalación)

Me decidí por la Gentoo a favor de Debian (o Slackware) por a) probar algo nuevo y b) tener la capacidad de compilar todo el linux. En cualquier caso, la mayoría de las configuraciones que muestro aquí son de paquetes estándar o del propio kernel.

De las tres 'stages' de la Gentoo, me decidí por la primera. Es decir, compilarlo *todo*. El manual proporcionado por la gente de Gentoo es muy sencillo de seguir. El DHCP funcionó sin problemas a la primera, por lo que no fue un problema el acceso a red.

El particionado del disco se hizo asignando 1GB a swap (/dev/hda2) y 10GB al linux (/dev/hda3). mkreiserfs (ReiserFS), mkswap y swapon.

Los siguientes pasos fueron directamente los del manual. Así hasta que llegamos a las opciones del make.conf. Según lo que estuve leyendo por Internet, me decanté por lo siguiente:

CFLAGS="-Os -march=pentium3 -pipe -mfpmath=sse -fforce-addr -fomit-frame-pointer
-falign-functions=64"
CHOST="i686-pc-linux-gnu"

(El Pentium M parece ser, por lo que he leido, más un PIII que un PIV)

Una vez hecho esto, era hora de bajarse la distribucion. Aunque utilicé inicialmente el comando mirrorselect para seleccionar el 'mejor' mirror, funcionó (o lo hice funcionar) incorrectamente, ya que me encontré con varias líneas de basura en /etc/make.conf, por lo que comprobé manualmente un par de mirrors y finalmente gentoo.inode.at pareció bastante rápido (Suiza, Austria o Finlandia suelen ser mirrors bastante buenos). A partir de aquí, seguí las opciones del manual, que eran principalmente

# emerge sync (que llevó su buena horita)
# cd /usr/portage
# scripts/bootstrap.sh (que llevó sus dos horitas y pico)

y

# emerge system

comando que tras un buen rato compilando, fue el que me dió el primer problema. Éste residía en la dependencia que tiene el Perl de las librerías del GDBM (GNU DataBase Management, creo). Por la información mostrada, estas librerías no se habían instalado previamente, por lo que la compilación del Perl fallaba y acababa por bloquear el 'emerge system'. Tras algunos intentos fallidos, modifiqué /etc/make.conf introduciendo '-gdbm' en la variable USE, para evitar que el Perl se compilase con soporte para GDBM. Posteriormente descubrí que existía un bug report abierto con este problema, #65055. Con esto el emerge system finalizó quizá en unas cuatro horas. Después de esto, compilé el kernel de la gentoo (2.6.8-gentoo-rc3) sin problemas, y acabé instalando el LILO con /dev/hda1 como windows y /dev/hda3 como gentoo.

Kernel)

Aunque instalé inicialmente el kernel 2.6.8 que trae la Gentoo, posteriormente he instalado un 2.6.8.1 vanilla directamente de kernel.org. Hice esto principalmente para poder aplicar los parches necesarios (ACPI, Wireless...) sin necesidad de comprobar si los ficheros a parchear en cada caso eran los originales. Además, me gusta no depender
de un kernel específico. Básicamente, las opciones que trae son las mismas, con algunas pequeñas excepciones. Una de ellas es la opcion

Device Drivers --->
Graphics support --->
** VESA driver type (vesafb-tng) --->
** (1024x768@60) VESA default mode

En el vanilla 2.6.8.1, sin necesidad de parchear, esto se puede arreglar poniendo

vga = 791

en el fichero de configuracion lilo.conf, según la tabla:

Colours   640x480 800x600 1024x768 1280x1024 1600x1200
--------+---------------------------------------------
256     |   769     771      773      775       796
32,768  |   784     787      790      793       797
65,536  |   785     788      791      794       798
16.8M   |   786     789      792      795       799

Ver http://rampex.ihep.su/Linux/linux_howto/html/tutorials/mini/Vesafb.html#toc5 para más informacion o http://www.tldp.org/HOWTO/Framebuffer-HOWTO-15.html para una versión más larga y actualizada (en mi caso, el primero me sirvió).

Xorg) Las Xorg se compilan sin más haciendo un emerge xorg-x11. La utilidad xorgcfg reconoce el chipset 855GM y lo configura prácticamente todo sin problemas. Nota: el driver a utilizar es el i810, pero el driver del DRI es el i830 (ver http://www.xfree86.org/~dawes/845driver.html). Concretamente en el kernel habrá que seleccionar

Device Drivers --->
Character devices --->
[*] Direct Rendering Manager (XFree86 4.1.0 and higher DRI support)
<*> Intel 830M, 845G, 852GM, 855GM, 865G

Tener en cuenta que si se utiliza el kernel de la gentoo, existe un HOWTO adicional para la configuración del DRI, ya que este procedimiento (es decir, compilar soporte en el núcleo y cargar el módulo en las X) no es suficiente.

Adicionalmente, lo único que es necesario configurar de manera adicional es el touchpad y el teclado. El primero lo describo en la siguiente sección, y el segundo se puede activar mediante el panel de control del KDE, en la sección de 'Regional & Accesibility', seleccionando 'Laptop/notebook Compaq Laptop Keyboard'

Como nota aparte, el único problema que se presenta es un error al arrancar las X:

...
(EE) I810(0): unknown reason for exception
...
(EE) I810(0): cannot continue
...

pero al parecer, es el driver de la tarjeta gráfica recibiendo información incorrecta de la BIOS. Aunque en otros drivers esto se puede evitar (DisplayInfo "FALSE" en la sección "Devices"), no se puede hacer eso en este controlador, por lo que tendré que vivir con ello. En cualquier caso no parece tener ningún efecto sobre el comportamiento de las X, por lo que por el momento tendré que vivir con ello (me ha parecido ver algo al respecto en la version 2.6.9-rc2 pero no estoy seguro).

Touchpad) Este touchpad de Synaptics es fácilmente activable en modo texto mediante el comando

# /usr/sbin/gpm -m /dev/input/mice -t ps2

Simplemente editar /etc/conf.d/gpm, con las variables MOUSE=ps2 y MOUSEDEV=/dev/input/mice y listo.

En el modo gráfico, es poco más complicado de configurar. Los drivers se pueden bajar de http://freshmeat.net/projects/synaptics/, donde se incluye toda la documentación para el funcionamiento de este dispositivo principalmente en las X, incluyendo la modificación que hay que realizar en el fichero de configuración de las X (Xorg en mi caso, quizá xfree86 en el tuyo) y las opciones a activar en el kernel. La instalación es prácticamente inmediata.

Wireless)

Puede decirse que este fue el segundo de los problemas que me encontré, pero más por culpa de la Gentoo que por el mio. Fue casi un rompecabezas hasta que localicé el problema. En primer lugar, es necesario instalar el coldplug:

# ACCEPT_KEYWORDS="~x86" emerge =sys-apps/coldplug-20040920

No es necesario instalar el hotplug, ya que el coldplug nos lo instalará. De hecho, probablemente instalar el hotplug dará lugar a algún tipo de conflicto (el coldplug ha sustituido en la Gentoo al hotplug).

Ahora necesitaremos modificar el kernel para añadir soporte para crc32, wireless y radio (si no recuerdo mal). Podemos añadirlo ahora o ir esperando a ver que nos pide al compilar el driver de la ipw2100 e ir añadiéndolo (lo que conlleva varias recompilaciones y reinicios). Tras todo esto, el driver del ipw2100 (para la versión más reciente, http://ipw2100sourceforge.net):

# ACCEPT_KEYWORDS="~x86" emerge net-wireless/ipw2100

Esto debería instalar el ipw2100 (v0.54 en mi caso) y las wireless-tools (0.27 en mi caso). Finalmente, el hostap-driver:

# ACCEPT_KEYWORDS="~x86" emerge net-wireless/hostap-driver

Tras esto, normalmente deberíamos poder ver la eth1 con un simple ‘ifconfig –a’ pero la sorpresa es que no es así (bug id #65059): eth1 no existe. Para ver el problema, podemos echar un vistazo a los logs del kernel. El problema se encuentra en que el emerge pone el firmware en /usr/lib/hotplug/firmware, mientras que el hotplug lo busca en /lib/firmware. Simplemente, hacemos lo siguiente:

# mkdir /lib/firmware
# mv /usr/lib/hotplug/firmware/*.fw /lib/firmware/
# rmmod ipw2100 ieee80211 ieee80211_crypt
# modprobe ipw2100

Tras esto, un 'ifconfig -a' debería mostrarnos el interfaz eth1. La configuración de la ethernet entonces puede realizarse a través del modo convencional, y la del wireless a través de las wireless-tools (man iwconfig).

Nota: He intentado instalar la última versión del ipw2100, drivers 0.55 con firmware 1.3. No obstante, lo que frecuentemente pasa es que falla y aparece lo siguiente en el kernel:

Sep 29 15:45:15 [kernel] ipw2100: Fatal interrupt. Scheduling firmware restart.
Sep 29 15:45:16 [kernel] ipw2100: eth1: Restarting adapter.
Sep 29 15:45:16 [kernel] eth1: Associated with '3Com' at 11Mbps, channel 1 (BSSID=00:00:00:00:00:00)
Sep 29 15:45:16 [kernel] ipw2100: Fatal interrupt. Scheduling firmware restart.
Sep 29 15:45:16 [kernel] eth1: Hardware fatal error detected.
Sep 29 15:45:18 [kernel] ipw2100: eth1: Restarting adapter.
Sep 29 15:45:18 [kernel] eth1: Associated with '3Com' at 11Mbps, channel 1 (BSSID=00:00:00:00:00:00)
Sep 29 15:45:19 [kernel] ipw2100: Fatal interrupt. Scheduling firmware restart.
Sep 29 15:45:20 [kernel] eth1: Hardware fatal error detected.
Sep 29 15:45:22 [kernel] ipw2100: eth1: Restarting adapter.
Sep 29 15:45:22 [kernel] eth1: Associated with '3Com' at 11Mbps, channel 1 (BSSID=00:00:00:00:00:00)
Sep 29 15:45:22 [kernel] ipw2100: Fatal interrupt. Scheduling firmware restart.
Sep 29 15:45:24 [kernel] eth1: Hardware fatal error detected.

por lo que no recomiendo instalarlo hasta que no se haya solucionado este problema.

ACPI)

Esto ha sido probablemente lo que más quebraderos de cabeza me ha causado, hasta que me he aclarado con toda la documentación que hay sobre el tema. La mejor fuente de información que he seguido es http://forums.gentoo.org/viewtopic.php?t=122145(1), aunque hay mucha documentación acerca del tema.

En cualquier caso, esta sección está lejos de estar acabada.

Lo que he hecho:

1.- Siguiendo (1), conseguiremos el compilador de asl de intel ( http://developer.intel.com/technology/iapc/acpi/downloads.htm), y ver si nuestro DSDT tiene problemas o no. Una vez hayamos recompilado la DSDT , sabremos si la DSDT está correcta o no. En mi caso, prácticamente he encontrado los mismos problemas que el propio autor, por lo que su resolución ha sido sencilla.

2.- Una vez tenemos nuestra tabla DSDT "correcta", tenemos que hacer que el kernel la lea. En mi caso, he utilizado el método estático (de los dos descritos en (1)), por tres razones: 1) me equivoqué al coger el parche (pensaba que estaba utilizando el del método del initrd), 2) no
tengo intención de modificar el DSDT, y 3) si voy a utilizar un bootsplash (logo de inicio) utilizando el initrd, prefiero ahorrarme complicaciones. En resumen, que vamos a por el método estático. En este método el fichero que necesitaremos es el dsdt.hex, que se habrá generado en la compilación anterior

Lo primero es obtener el parche para el kernel, de acpi.sourceforge.net. El parche que yo he utilizado es el acpi-20040816-26-stable-release.

# cd /usr/src/linux/
# patch -p1 < /root/acpi-20040816-26-stable-release.diff

Copiamos la tabla a un lugar 'seguro' (en realidad, podríamos poner esta tabla en /boot, ya que el kernel nos da la opción de escoger la localización de dicho fichero):

# cp /root/acpica-unix-20040715/compiler/dsdt.hex /usr/src/linux/include/acpi/dsdt_table.h

Tras el parcheado, modificamos el kernel para que cargue la nueva DSDT:

Power management options (ACPI, APM) --->
ACPI (Advanced Configuration and Power Interface) Support --->
[*] ACPI Support
[ ] Sleep States (EXPERIMENTAL)
<*> AC Adapter
<*> Battery
<*> Button
<*> Fan
<*> Processor
<*> Thermal Zone
< > ASUS/Medion Laptop Extras
< > Toshiba Laptop Extras
[*] Include Custom DSDT
(/usr/src/linux/include/acpi/dsdt_table.h) Custom DSDT Table file to include
(0) Disable ACPI for systems before Jan 1st this year
[ ] Debug Statements
[*] Power Management Timer Support

Y recompilamos. Reiniciamos, y el ACPI debería funcionar correctamente. En mi dmesg, aparece algo como lo siguiente:

...
ACPI: AC Adapter [ADP1] (on-line)
ACPI: Battery Slot [BAT1] (battery present)
ACPI: Power Button (FF) [PWRF]
ACPI: Lid Switch [LID0]
ACPI: Sleep Button (CM) [SLPB]
ACPI: Fan [FAN0] (on)
ACPI: Processor [CPU0] (supports C1 C2 C3, 8 throttling states)
ACPI: Thermal Zone [THRM] (53 C)
...

además mediante /proc/acpi podemos obtener numerosa información de la gestión del procesador, ventilador, botones...

Finalmente, lo siguiente es simplemente instalar el acpid, y meterlo en los scripts de arranque:

# emerge acpid
# /etc/init.d/acpid start
# rc-update add acpid boot

Adicionalmente, hay varios temas del ACPI más avanzados en los que aún no me he metido.

Speedstepping)

Esto es prácticamente inmediato. En el kernel 2.6.8.1:

Power management options (ACPI, APM) --->
CPU Frequency scaling --->
[*] CPU Frequency scaling
Default CPUFreq governor (performance) --->
--- 'performance' governor
<*> 'powersave' governor
<*> 'userspace' governor for userspace frequency scaling
[*] /proc/sys/cpu/ interface (2.4. / OLD)
<*> CPU frequency table helpers
--- CPUFreq processor drivers
<*> ACPI Processor P-States driver
<*> Intel Enhanced SpeedStep
<*> Intel Speedstep on ICH-M chipsets (ioport interface)

Posteriormente, podemos ver y modificar la informacion del procesador mediante /sys/devices/system/cpu/cpu0/cpufreq/, o de forma más sencilla, instalando el speedfreq.

USB)

El soporte para el kernel que estoy utilizando es básicamente:

Device Drivers --->
USB support --->
<*> Support for Host-side USB
[*] USB device filesystem
<*> EHCI HCD (USB 2.0) support
<*> OHCI HCD support
<*> UHCI HCD (most Intel and VIA) support
<*> USB Printer support
<*> USB Mass Storage support
[*] USB Mass Storage verbose debug
<*> USB Human Interface Device (full HID) support
[*] HID input layer support

La parte de HID es necesaria para el funcionamiento del ratón y el teclado USB.

Adicionalmente, podemos conectar a los puertos USB un Flash Disk. Podemos ver si lo detecta viendo el fichero /proc/bus/usb/devices. En el mio aparece algo como lo siguiente:

...

T: Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 4 Spd=480 MxCh= 0
D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
P: Vendor=0ea0 ProdID=2168 Rev= 2.00
S: Manufacturer=USB
S: Product=Flash Disk <--------------
S: SerialNumber=241F1E40A081C5C5
C:* #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=200mA
I: If#= 0 Alt= 0 #EPs= 3 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
E: Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=83(I) Atr=03(Int.) MxPS= 2 Ivl=125us

...

Si no detectamos nada parecido, otra alternativa es poner el USB, contar el número de dispositivos y ponerlo. El número de dispositivos USB debería ser ahora mayor.

Una vez detectado, tendremos que tener en el kernel soporte para dispositivos que hablen el protocolo SCSI, como es nuestro caso. Simplemente,

Device Drivers --->
SCSI device support --->
<*> SCSI disk support

Con esta opción activada, tendremos un dispositivo llamado /dev/sda. Simplemente haciendo

# mount -t vfat /dev/sda /mnt

es suficiente para utilizar el dispositivo. Tener en cuenta que es necesario desmontarlo cada vez que queramos sacarlo (que es lo equivalente al 'detener el dispositivo' en windows). El sistema de ficheros, vfat, es útil si la otra partición utiliza NTFS, sistema de ficheros que no está completamente soportado en el kernel.

Sonido) (sonido en las X)

ACPI II) Resume/Suspend, botones CM y FF

TV) Salida de Televisión

Firewire)

PDIF)

Asociacion de teclas) Asociación de teclas.


Desde mi último comentario "sobre cine", he visto varias películas, pero imagino que por lo corto de mi memoria, sólo puedo recordar tres de ellas, que son, obviamente, las tres que dan título a este comentario. Por orden de visualización:

- El mito de Bourne: Rápida, muy entretenida y tan o más buena que la primera. Resultan impresionantes las peleas, por su rapidez y su realismo, y la capacidad de escabullirse de este sujeto (Jason Bourne). Al final de la película, casi le gustaría a uno que lo entrenasen como asesino de élite.

- Hellboy: Quizá por el lugar en el que nos hemos sentado en el cine, las distracciones provocadas por un grupo de chiquillos gilipollas dignos de una buena paliza, o las grandes expectativas que me habían generado los trailers, no me ha entusiasmado demasiado. En realidad, casi podría decir que no me ha gustado. Los cambios de ritmo de unas escenas a otras me parecen excesivos y demasiado bruscos, hay abuso de los efectos especiales (aunque obviamente en una película de este tipo son necesarios), que por otra parte no me parece que estén demasiado conseguidos (ver a un sujeto volar verticalmente paralelo al suelo sin describir ningún tipo de parábola es algo que siempre me parece artificial y completamente irreal y antiestético), y finalmente, se me ha hecho demasiado larga. Al menos, a Lorena le ha gustado.

- Dogville: Este Lars von Trier es un puto genio. Quizá la película *parezca* un poco rara, quizá *parezca* un poco aburrida. Pero esta película ni es rara, ni es aburrida, sino todo lo contrario. Una jodida obra maestra. ¿Necesito decir más?


Y si querer, haciendo pareados.

Lo sucedido esta tarde en el cine, combinado con mi desprecio hacia cierto tipo de sujetos que disfrutan exhibiendo su estupidez en público (léase: gritar en el cine o hacer gracias que maldita la gracia, hacer el capullo con la moto, gritarse unos a otros como si fueran monos, pelearse sin razón alguna...), me ha llevado a reflexionar sobre la necesidad de implantar la pena capital en nuestro país. Pero no ya para aquellos causantes de crímenes físicos, sino para aquellos causantes de crímenes intelectuales, que son potenciales generadores de degradación intelectual.

Y con este fértil pensamiento dejado en manos de los correspondientes expertos teóricos, aquí dejo esto no sin antes desearme a mi mismo unas muy buenas noches.


A veces toda mi vida parece estar en suspenso, inmóvil, hasta que me doy cuenta de que mientras el tiempo corra, nada está quieto.

Y si nada parece tener sentido, es porque nada lo tiene.


Ya ha llegado gmail. Y ahora resulta que todo, o casi todo el mundo tiene/quiere una cuenta de gmail. Quizá por el Giga de correo, aunque, si bien es cierto que los 2MB de hotmail son a todas luces insuficientes, 1GB de correo me parece algo excesivo. En cualquier caso, gmail me parece la última estupidez gilipollesca, que ya es mucho decir, para todos esos niños/niñas en busca de lo más "in" en la "red". Porque miputadireccion@gmail.com sería algo de lo más "fashion", por seguir con los anglicismos.

Supongo que a todo esto ayuda todo el background que Google parece tener. Es decir, clusters de PCs Linux, lo que de algún modo invita a pensar en software libre. Y digo parece tener porque a los señores de Google se les ha visto la piel del lobo con el Google Desktop... no Mozilla, no Thunderbird... No Google.