Linux on Toshiba Satellite 1900-303
| Linux on Toshiba Satellite 1900-303
|
|
This page is also available in english.
HARDWARE
- Procesador: Intel P4 2.0 GHz
- Ram: 256 Mb DDR
- Disco Duro: 30Gb
- DVD/CDRW
- Pantalla: 15" LCD XGA 1024x768 @ 60hz
- Ethernet: 100Mbit
- Modem: Lucent SCORPIO
- USB: Intel ICH2
- PCMCIA: Texas Instruments PCI 1420
- IrDA: Super IO SMSC LPC47N227
- APM: v1.2
- ACPI: v1.0b
- Firewire: Texas Instruments OHCI
- Tarjeta de video: Ati Radeon Mobility M6-LY 32Mb DDR AGP 4x
- Tarjeta de sonido: Cirrus Logic CS4299-A
COMPATIBILIDAD
- PCMCIA: OK*.
- Tarjeta de sonido: OK
- Tarjeta de video: OK
- DVD/CDRW: OK
- USB: OK
- IRDA: OK
- Ethernet: OK
- Modem: OK
- Firewire: OK*
- ACPI: OK (no permite suspender)
- Teclas Fn: OK
- Teclas Multimedia: OK
- TV-OUT: OK (Solo NTSC, es el que trae la bios por defecto, de momento no se puede cambiar a PAL)
(* = No lo he probado aún, pero el modulo carga sin problemas.)
Audio
Para los kernels 2.6, hay que activar soporte para Intel i8x0 en:
Device Drivers -> Sound -> Advanced Linux Sound Architecture -> PCI Devices
y los módulos de compatibilidad OSS en:
Device Drivers -> Sound -> Advanced Linux Sound Architecture
Para los 2.4, hay que descargar alsa-driver, alsa-lib, alsa-utils, y alsa-oss de alsa-project (o de tu distribucion)
y compilarlo (en el caso de los fuentes) para snd-intel8x0.
Para compilarlo:
# cd /usr/src
/usr/src# tar xvfj ~/alsa-lib-0.9.0rc7.tar.bz2
/usr/src# cd alsa-lib-0.9.0rc7
/usr/src/alsa-lib-0.9.0rc7# ./configure && make && make install
/usr/src/alsa-lib-0.9.0rc7# cd ..
/usr/src# tar xvfj ~/alsa-oss-0.9.0rc1.tar.bz2
/usr/src# cd alsa-oss-0.9.0rc1
/usr/src/alsa-oss-0.9.0rc1# ./configure && make && make install
/usr/src/alsa-oss-0.9.0rc1# cd ..
/usr/src# tar xvfj ~/alsa-driver-0.9.0rc7.tar.bz2
/usr/src# cd alsa-driver-0.9.0rc7
/usr/src/alsa-driver-0.9.0rc7# ./configure --with-isapnp=no --with-sequencer=yes --with-oss=yes --with-cards=intel8x0 && make && make install
/usr/src/alsa-driver-0.9.0rc7# cd ..
/usr/src# tar xvfj ~/alsa-utils-0.9.0rc7.tar.bz2
/usr/src# cd alsa-utils-0.9.0rc7
/usr/src/alsa-utils-0.9.0rc7# ./configure && make && make install
En /etc/modules.conf tengo:
# grep snd-intel8x0 /etc/modules.conf
alias snd-card-1 snd-intel8x0
pre-remove snd-intel8x0 rmmod snd-mixer-oss snd-pcm-oss
post-install snd-intel8x0 modprobe snd-pcm-oss snd-mixer-oss
options snd-intel8x0 enable=1
Para arrancarlo:
# /etc/init.d/alsasound start
Otra opción es usar el módulo de OSS i810_audio, incluido en los kernels 2.4.
Modem
El driver parece funcionar correctamente, se puede descargar de linmodems.org.
Para compilarlo:
# cd /usr/src
/usr/src# tar xvfz slmdm-2.7.10.tar.gz
/usr/src# cd slmdm-2.7.10
/usr/src/slmdm-2.7.10# make
/usr/src/slmdm-2.7.10# make install-amr
Esto copiará los módulos necesarios a /lib/modules/version-del-kernel/misc, y creará /dev/ttySL0 y un enlace /dev/modem a éste.
Luego, hay que indicarle el país al módulo. Para esto, hay que editar /etc/modules.conf y añadir la línea:
options slmdm country=SPAIN
Para cargarlo:
# modprobe slmdm
# modprobe slamrmo
IrDA
Hay varias opciones para usar este puerto:
- Interconexión con PDAs o móviles:
No lo he podido probar porque no dispongo de un aparato de este tipo con el que probar. Alguien me comentó
que consiguió hacer funcionar el gnokii para acceder al móvil.
Para los kernels 2.4 se puede usar smc-ircc (incluido en el kernel) o descargar este driver.
Para los 2.6 hay que activar soporte para SMSC IrCC en:
Device Drivers -> Networking Support -> IrDA support -> Infrared-port device drivers
- Enviar/recibir señales IrDA:
Hay que descargar el paquete lirc de www.lirc.org (o de tu distribución)
Para compilar los fuentes:
# cd /usr/src
/usr/src# tar xvfj ~/lirc-0.6.6.tar.bz2
/usr/src# cd lirc-0.6.6
/usr/src/lirc-0.6.6# ./configure --with-driver=sir
/usr/src/lirc-0.6.6# make && make install
Para cargarlo:
# modprobe lirc_sir
Uso:
Mediante 'irrecord', hay que capturar los códigos del dispositivo irda en cuestión (ya sea un mando a distancia, un teclado, etc), de esta forma:
irrecord /ruta/al/fichero_de_configuración
Ve siguiendo las instrucciones que aparecen por pantalla para generar el fichero con los códigos del dispositivo.
Ahora hay que ejecutar el demonio 'lircd' indicándole la ruta al fichero con los códigos generados:
lircd /ruta/al/fichero_de_configuración
Y ya estamos listos para enviar los códigos, para esto se usa el programa 'rc'. Sitúa el portátil cerca (muy cerca :-( ) del receptor, y ejecuta rc de esta forma:
rc SEND_ONCE nombre_dado_al_dispositivo nombre_del_código
y si todo fué bien, el receptor debería actuar igual que si se hubiera pulsado el botón del emisor original.
- Emulando un puerto serie:
Añadiendo soporte para puertos serie en el kernel ya sea en el propio kernel o como módulo (serial.o) el puerto IrDA será reconocido como un puerto serie "normal".
Existe un pequeño paquete aquí que incluye 2 programas: `catch` para capturar pulsaciones de dispositivos y asignarles
un nombre, y `output` que reconoce los códigos antes capturados. Puesto que el 1900-303 no dispone de puertos serie "normales", el puerto asignado
al IrDA será /dev/ttyS0, con lo que habrá que cambiar /dev/ttyS1 por /dev/ttyS0 en los fuentes de estos dos programas para que funcione correctamente.
NOTA: ojo, sólamente se puede tener uno de los 3 módulos cargados al mismo tiempo, ya sea smsc-ircc.o, lirc_sir.o o serial.o
Firewire
No he podido probarlo aún porque no tengo ningún dispositivo que funcione por firewire. El soporte para linux para este tipo de dispositivos tiene
su página en www.linux1394.org, y en concreto el módulo para este portátil es ohci1394.o.
APM / ACPI
Es posible usar cualquiera de los 2. Cada uno tiene sus pros y sus contras:
APM permite suspender pero no tiene control sobre la batería, eventos de power y lid, etc.
ACPI permite saber los niveles de batería y asignar eventos al power y lid, pero no funciona suspender ni a disco ni a ram de momento. Para utilizar ACPI en
los kernels 2.4, es necesario aplicar al kernel el parche que se encuentra en sf.net/projects/acpi.
Aparte de todo esto, existe un parche para los 2.4 (swsusp)
(los 2.6 lo tienen ya incluido), que permite hibernar sin la necesidad de tener soporte para APM, pero no lo he probado, con lo que no se si funciona bien o no.
El driver para los omnibook, actualmente tiene soporte para el 1900-303. Con él es posible controlar
cosas como el brillo del lcd, si está conectada o no la toma de corriente, el rango de temperaturas para el procesador, etc. Para usar este driver no es
necesario tener soporte para APM ni ACPI en el kernel. Para compilarlo:
/usr/src# tar xvfz ~/omnibook-XXXX-XX-XX
/usr/src# cd omnibook-XXXX-XX-XX
/usr/src/omnibook-XXXX-XX-XX# make && make install
/usr/src/omnibook-XXXX-XX-XX# modprobe omnibook
Framebuffer
He probado varios módulos para framebuffer, y todos me dan el mismo problema, o parecido: a veces, al cambiar de tty, la pantalla comienza a parpadear
hasta que vuelvo a cambiar un par de veces de tty o resolución. Otros, en cambio, parece que tengan corregido el problema con las ttys, y sólo parpadean a veces
al cambiar de resolución. Personalmente, el que mejor me funciona es este, para los kernels 2.4.
Para usarlo, basta con sustituir los radeon.h y radeonfb.c originales del kernel y recompilar.
Para evitar los parpadeos, es posible usar el driver vesa en vez de radeon, pero con vesa no es posible cambiar de resolución una vez arrancado el sistema.
Otro problema común al usar radeonfb, es que la pantalla aparezca desplazada 4 o 5 pixels hacia arriba. Mi truco/chapuza para arreglarlo es editar radeonfb.c
y cambiar esto (por la linea 2692 o así):
v_sync_pol = mode->sync & FB_SYNC_VERT_HIGH_ACT ? 0 : 1;
por esto:
v_sync_pol = 0;
XFree86
Hay 2 opciones para usar las X, el driver que traen las propias xfree, o el de GATOS.
Yo estoy utilizando el que traen las xfree (4.2.1.1 (debian sid)) y me funciona perfectamente, de no ser por los mismos parpadeos que ocurren con el framebuffer.
También he probado el de GATOS y me daba los mismos problemas. Todo lo demás incluida la aceleración 3D funciona correctamente. El archivo de configuración
XF86Config-4 puedes descargarlo aqui.
TVOUT / Monitor externo
El atajo de teclado (Fn+F5) para alternar entre pantallas funciona mas o menos bien, pero parece que no es capaz de tener mas de una pantalla activa al mismo tiempo.
El problema que hay con la salida de tv es que la bios inicializa por defecto en modo NTSC, y el sistema utilizado en españa es el PAL.
Para cambiar esto en tarjetas ATI, existe la utilidad atitvout, pero no funciona
de momento con la M6-LY.
Para (des)activar el monitor externo o el LCD se puede utilizar radeontool.
PCMCIA
No he usado ningún dispositivo PCMCIA hasta el momento. Aqui hay información
de cómo configurarlos.
Ethernet
Existen 2 módulos dentro del kernel para la ethernet: eepro100 y e100.
Al principio estuve usando eepro100, pero resultó ser la causa de cuelgues contínuos del sistema. Ahora uso e100 y funciona de maravilla.
USB
Hay que activar en el kernel soporte para usb-uhci.
DVD / CDRW
Para poder grabar cds con 2.4 hay que tener soporte para emulación scsi en el kernel. Con los 2.6 creo que ya no es necesario.
Algunos programas buscan el dispositivo dvd en /dev/dvd. En caso de que no exista, es bueno hacer `ln -s /dev/scd0 /dev/dvd` para evitar problemas.
ENLACES
- Resumen
- Ficheros
- Proyectos
- Documentación
Para dudas, correcciones, sugerencias o cualquier otra cosa: juanmasg@arrakis.es
Última actualización: Dom Nov 23 15:39:15 CET 2003