Últimas Publicaciones

Lucent Winmodem en Knoppix

Cuando estoy en casa, el ordenador portatil se conecta al de sobremesa y ambas comparten la salida a Internet repartiéndose el ancho de banda como buenas hermanas. Bien... esto puede hacerse usando una red Ethernet convencional o una red WiFi, que es lo más normal hoy en día. Pero además de conectarlos en red, se puede incluso conectar el portátil como "terminal tonto" del de sobremesa, con lo que éste último está siendo entonces usada por dos usuarios simultáneos, pero no voy a contar aquí ese tema, puesto que los chicos de Bulma ya lo han hecho muy bien (de hecho, ese truco lo aprendí de ellos).

El problema es cuando NO estas en casa. En ese momento el portátil no puede salir a Internet porque le falta su salida habitual a la red.

Los Toshiba Satellite 2100 CDS, como mi vieja moira, estaban equipados de serie con un módem interno, con el que podría conectar con otro proveedor. Pero se trata de un Winmodem, con lo que lo primero es conseguir que funcione en linux. :-(

Afortunadamente, el fabricante del modem es Lucent, que tiene el buen sentido de publicar drivers para linux, tanto en forma de módulos instalables, como en forma de código fuente.

Aunque cuando estaba en activo moira, Lucent incluía módulos para RedHat, Debian, etc... pero no para Knoppix.

Vale, ¿qué se podía hacer?.

Pues se podía instalar el código fuente, claro. Pero eso exige instalar las fuentes del kernel, entre otras cosas. Sin entrar en detalles, digamos que como que no me apetecía demasiado. Claro que Knoppix viene a ser una Debian testing, ¿no?.

Pues sí, lo es. Así que nos vamos a la página adecuada, seguimos el enlace con los drivers de Lucent (si nos deja, porque la última vez que lo intenté, me pedía un login y una contraseña para entrar). Luego nos bajamos el paquete Debian correcto y lo instalamos. Ya está, digo yo.

Pues no. Porque resulta que son módulos compilados para el kernel 2.4.20, y Knoppix usa el 2.4.20-xfs (uuuuyyyy...), con lo que si intentamos hacer un modprobe nos saltan todos los unresolved symbols y a freir espárragos. Eso, sin tener en cuenta que los módulos no están donde deberían...

Vale. La solución más fácil y rápida (también la menos ortodoxa) era forzar la carga de los módulos:

[root@moira lacofi]# insmod -f /lib/modules/2.4.20/ltmodem/lt_modem.o

Y nos contesta:

Warning: kernel-module version mismatch
/lib/modules/2.4.20/ltmodem/lt_modem.o was compiled for kernel
version 2.4.20 while this kernel is version 2.4.20-xfs
Warning: loading /lib/modules/2.4.20/ltmodem/lt_modem.o will
taint the kernel: non-GPL license - UNKNOWN
See http://www.tux.org/lkml/#export-tainted for information about
tainted modules
Warning: loading /lib/modules/2.4.20/ltmodem/lt_modem.o will
taint the kernel: forced load
Module lt_modem loaded, with warnings

(Que traducido, significa "¡Uy lo que me ha dicho!. Vale, no es muy ortodoxo y te aviso, pero lo hago").

Ahora cargamos el segundo módulo (el orden es importante, al reves no lo admite):

[root@moira lacofi]#insmod -f /lib/modules/2.4.20/ltmodem/lt_serial.o
Warning: kernel-module version mismatch
/lib/modules/2.4.20/ltmodem/lt_serial.o was compiled for kernel
version 2.4.20 while this kernel is version 2.4.20-xfs
Warning: loading /lib/modules/2.4.20/ltmodem/lt_serial.o will
taint the kernel: forced load
See http://www.tux.org/lkml/#export-tainted for information about
tainted modules
Module lt_serial loaded, with warnings

Tras esto nos aseguramos de que exista el dispositivo /dev/ttyLT0, que es el que representa al propio modem. Si no es así, podemos crearlo a mano:

[lacofi@moira lacofi]$ ls /dev/ttyLT0
ls: /dev/ttyLT0: No existe el fichero o el directorio
[lacofi@moira lacofi]$ su
password:
[root@moira lacofi]# cd /dev
[root@moira dev]# mknod /dev/ttyLT0 c 62 64
[root@moira dev]# chown root.root /dev/ttyLT0
[root@moira dev]# chmod a+rw /dev/ttyLT0
[root@moira dev]# ln -s /dev/ttyLT0 /dev/modem
[root@moira dev]# exit
[lacofi@moira lacofi]$

También convendría crear un enlace /dev/modem apuntando a /dev/ttyLT0, porque muchos programas acuden automáticamente a /dev/modem cuando necesitan usarlo.

[root@moira rc5.d]# ln -s /dev/ttyLT0 /dev/modem

Sin embargo, comprobaremos que el enlace /dev/modem desaparece cada vez que rearrancamos la máquina. Esto ocurre porque lo borra el script /etc/init.d/knoppix-autoconfig, que es el que ejecuta toda la maravillosa autoconfiguración del Knoppix en el arranque. Bueno, pues solo hay que editarlo, irse a la linea donde dice:

# Delete obsolete links and files before starting autoconfig
rm -f /dev/cdrom* /dev/cdwriter* /dev/mouse* /dev/modem*
/dev/scanner* /etc/sysconfig/i18n /etc/sysconfig/keyboard \
/etc/sysconfig/knoppix 2>/dev/null

... y borrar lo que he marcado en color cian. Lo principal ya está. Ahora arrancamos el KPPP y veremos que detecta el modem y conecta sin problemas. Pero en mi caso, quería tener los módulos cargados desde el arranque, así que pongo en /etc/init.d un script llamado "ltmodem", con permisos de lectura y ejecución:

#!/bin/sh
insmod -f /lib/modules/2.4.20/ltmodem/lt_modem.o
insmod -f /lib/modules/2.4.20/ltmodem/lt_serial.o

A continuación se hace un link a /etc/rc5.d

[lacofi@moira lacofi]$ cd /etc/rc5.d
[lacofi@moira rc5.d]$ su
Password:
[root@moira rc5.d]# ln -s ../init.d/ltmodem S29ltmodem

Y esto fue todo. El módem siempre listo y la Red siempre a punto, por los siglos de los siglos... :-)

Naturalmente, todo esto es probablemente inútil a estas alturas, porque el tiempo ha pasado y tanto Knoppix como todas las demás distribuciones deberían soportar de serie los Winmodems Lucent. Así que la respuesta correcta probablemente sea: "actualiza tu sistema operativo, por Dios". Pero además porque moira ha muerto dejando su sitio a lynette. En cualquier caso, dicho queda para nostálgicos y curiosos a modo de ejercicio. Quizás le de alguna idea a alguien, con otro problema de hardware distinto, en Knoppix.

He instalado dosemu en mi Knoppix y no puedo acceder al CD-ROM

Eso es por culpa de los permisos. Vamos, que has creado un usuario (aparte de knoppix) con el que no tienes suficientes permisos para acceder al CD-ROM.

La solución más sencilla es que te añadas al grupo cdrom. Teclea el comando:

[lacofi@claudia lacofi]$ groups
lacofi users

Esos son los grupos a los que perteneces. Vale. Pues edita /etc/group como root y cambia la linea:

cdrom:x:24:knoppix

por

cdrom:x:24:knoppix,lacofi,maria

o el login que utilices. Ahora rebota. Ya está.

Eliminar el puñetero autologin de Knoppix en disco duro

Comprobarás que el Knoppix del disco duro sigue funcionando como la versión en CD, es decir, que te sigue metiendo en el usuario knoppix sin password ni nada.

Pero una vez instalado en el disco duro, tal vez quieras entrar con un login decente, con usuarios de verdad. Fale. Crear usuarios de verdad es muy fácil, así que ni te lo cuento. Pero comprobarás que sigues entrando automáticamente como usuario "knoppix", y que en cuanto deslogas knoppix va y te resetea la máquina. Irritante, diría yo.

Edita el fichero /etc/inittab y comenta la última linea, de tal forma que donde pone:

x5:5:wait:/etc/init.d/xsession start

debe poner:

#x5:5:wait:/etc/init.d/xsession start

También debes cambiar las lineas como:

1:12345:respawn:/bin/bash -login >/dev/tty1 2>&1 </dev/tty1
2:2345:respawn:/bin/bash -login >/dev/tty2 2>&1 </dev/tty2
3:2345:respawn:/bin/bash -login >/dev/tty3 2>&1 </dev/tty3
4:2345:respawn:/bin/bash -login >/dev/tty4 2>&1 </dev/tty4

por estas otras:

1:2345:respawn:/sbin/getty 38400 tty1
2:2345:respawn:/sbin/getty 38400 tty2
3:2345:respawn:/sbin/getty 38400 tty3
4:2345:respawn:/sbin/getty 38400 tty4

Vale. Ahora has anulado el arranque gráfico. Es decir, cada vez que arranques entrarás en modo consola. Pero tal vez te interese hacer el login mediante kdm, o xdm, ¿no?.

Al contrario que Debian Woody, la Knoppix arranca en modo telinit 5, así que tienes que meterte en /etc/rc5.d y hacer un link, en modo root, mediante el comando:

[root@claudia rc5.d]# ln -s ../init.d/kdm S30kdm

Y ya está. Ya de paso, puedes empezar a crear links como un loco para arrancar automáticamente todos los demonios que quieras en cada arranque. Probablemente querrás, por ejemplo, un:

[root@claudia rc5.d]# ln -s ../init.d/inetd S20inetd

...si es que tienes algún tipo de conexión de red y deseas ofrecer algún servicio.

En modo root Knoppix me ignora todas las opciones de .bashrc

Curioso, ¿verdad?. :-)

Cambias el ".bashrc" de "/root" para meter bonitos alias o para cambiar el inductor del sistema (el prompt), y te ignora completamente, el muy cerdo. Pero solo con root, con los usuarios normales funciona todo bien.

Pero te vas a sorprender más cuando te diga por qué: el home de root en Knoppix no es "/root", sino "/home/root". Lo gracioso es que "/root" existe, pero no sirve para nada, solo para confundirte.

Anda, vete a "/home/root" y pon ahí todos tus cambios. ;-)

No puedo elegir gestor de ventanas (siempre sale KDE)

Esto me ocurría en una instalación en disco duro de Knoppix.

El problema era que la configuración de knoppix esperaba que metieras el escritorio como un parámetro del kernel (ya sabes, como "knoppix lang=es desktop=wmaker", por ejemplo). Pero una vez instalado en el disco duro la cosa no funcionaba así.

Tuve que editar el fichero /etc/sysconfig/desktop y poner ahí el escritorio que quería. Por ejemplo: DESKTOP="wmaker". Ahora al hacer startx arrancará WindowMaker en lugar de KDE. ¿Fácil?.

No tanto, porque ocurre que cada vez que haces un reboot, el fichero /etc/sysconfig/desktop se reescribe con la frase DESKTOP="kde", así que el cambio dura solo hasta que rebotas.

¿Solución?.

Editar el fichero /etc/init.d/knoppix-autoconfig. Ahí es donde está la orden que reescribe /etc/sysconfig/desktop. Solo hay que comentarla, de tal forma que donde ponga:

echo "DESKTOP=\"$DESKTOP\""	>/etc/sysconfig/desktop

debe poner:

# echo "DESKTOP=\"$DESKTOP\""	>/etc/sysconfig/desktop

Pues hala.

Basura en el home al arrancar X Window

Este problema me surgió por la sencilla razón de que creé un alias tal que así: ls='ls -Fhl --color' y lo hice permanente metiendolo en .bashrc

A partir de ese momento, cada vez que arrancaba las X Window aparecían ficheros fantasma que tenía que borrar a mano. Uno de ellos, en especial, se llamaba algo así como "-rwx-----" y no podía borrarse con el comando rm, así que tenía que hacerlo desde midnight commander. Una lata.

El problema ocurre porque había un script implicado en el arranque de las X Window que no funcionaba como se esperaba por culpa del alias. Edité como root el script /etc/X11/Xsession.d/45xsession y donde ponía "ls -1" lo cambié por "ls --format=single-column". Y ya está. Fácil, ¿no?.   ;-)

Windows 95 va fatal en Qemu: no detecta la red, fuentes corruptas…

Si consultas los manuales de Qemu, observarás que te recomiendan Windows 95 (y no Windows 98) porque es tremendamente rápido y requiere poca memoria. Es completamente cierto, pero te encontrarás con algunos problemas no documentados, aunque de fácil solución.

En primera lugar, la detección del hardware virtual fracasará estrepitosamente: Win95 no detectará la tarjeta de red, ni la tarjeta de video, ni un par de cosas más; basicamente, se irá al carajo todo el plug and play de Windows. El motivo de esto es que Qemu emula por defecto un ordenador con arquitectura PCI, pero Windows 95 solo funcionará con una arquitectura ISA, más arcaica y lenta, pero era la que estaba de moda por aquella época. Windows 95 detectará correctamente todo el hardware virtual de qemu si lo arrancas con la opción "-isa". Anda, consulta las opciones de qemu con "qemu -h".

Por cierto, si pretendes usar Qemu para tu viejo Windows 3.11 (el famoso Windows 3.11 para trabajo en grupo, que incluía manejo de redes), te tropezarás con el mismo problema: todo fallará si no usas la opción "-isa".

Otro tema distinto es la corrupción de las fuentes. Efectivamente, las letras de Windows 95, tanto en iconos como en menús, se volverán ilegibles, como si fueran hebreas, sobre todo al pasar el cursor por encima. El problema es que Windows 95 escribe la pantalla directamente a modo de aceleración por software, y eso es lo que corrompe la pantalla virtual de Qemu. La solución es sencilla, pero no está documentada: abre "Mi PC", abre "Panel de Control", abre "Sistema", pulsa en la pestaña "Rendimiento", y ahí en el botón "Gráficos". Ahora mueve el marcador a "Ninguna". Ya está, ahora las fuentes ya no se corrompen.

Y sí. Emular Windows 95 con Qemu es bastante rápido. Puedo ejecutar todos mis viejos programas de Lotus y mi Atlas Multimedia a la velocidad del rayo.

¿Se puede montar una partición Qemu?

Sí, pero no por el método normal.

Nuestro amigo Jim C. Brown nos lo cuenta en un interesante correo, aunque las listas de correo de GNU son ahora muy restrictivas y puede que no consigas entrar si no eres usuario suyo. Si quieres bajarte el programilla que menciona, te lo puedes encontrar en la red: se llama lomount y he comprobado que funciona perfectamente en mi ordenador. Una vez montado el disco virtual en, pongamos, /mnt/loop, puedes entrar en ese directorio y copiar o modificar ficheros a placer, sin necesidad de ejecutar qemu ni función de red alguna. Muy util para sincronizar ficheros, por ejemplo.

También puedes ir un poco más allá y crearte una función bash que te facilite el montaje sin tener que recordar la engorrosa sintaxis del comando. Por ejemplo puedes crear una función que se llama "monta" tal que así:

function monta {
	qemu=/mnt/virtuales/qemu
	if [ $UID = 0 ]; then
		case $1 in
			msdos)
				tipo="vfat"
				disco="$qemu/msdos/msdos.raw"
				montaje="/mnt/qemu-msdos"
			;;
			msdos2)
				tipo="vfat"
				disco="$qemu/msdos/msdos2.raw"
				montaje="/mnt/qemu-msdos2"
			;;
			win98)
				tipo="vfat"
				disco="$qemu/win98/win98.img"
				montaje="/mnt/qemu-win98"
			;;
			*)
				tipo="no existe"
			;;_normla
		esac
		if [ "$tipo" != "no existe" ]; then
			lomount -t $tipo -diskimage $disco -partition 1 $montaje
		else
			echo "Uso: monta [ msdos | msdos2 | win98 ]"
		fi
	else
		echo "Solo root puede montar particiones QEMU"
	fi
}

Si metemos esto en nuestro .bashrc o donde sea que guardemos nuestras funciones, cuando reiniciemos el terminal bash podremos montar nuestro disco msdos virtual solo con:

monta msdos

¿Existe algún emulador para Linux capaz de ejecutar BeOS?

Si, también Qemu. Doy fe de ello. Empiezo a pensar que Qemu puede con todo.

¿Existe algún emulador para Linux capaz de ejecutar OS/2 Warp?

Si. Pero no es VMWare.

Efectivamente, no conseguirás ejecutar OS/2 con VMWare, entre otras cosas porque es un emulador comercial, y lógicamente quieren rentabilizar su inversión en desarrollo: ¿Estás dispuesto a pagar por el soporte para OS/2?. ¿A tí y cuantos más?. ¿Sería rentable?.

Pero VMWare no es el único emulador. Hay otro, heredero de bochs, que sí puede con el viejo OS/2 Warp y con cosas muchas más exóticas. Se llama Qemu y a pesar de ser menos conocido que VMWare, debo decir que me ha sorprendido mucho más que éste. No me extenderé mucho en descripciones, porque está bien documentado y se encuentra facilmente en el Google.

Solo diré que funciona, y para demostrarlo, puedes ver está captura de pantalla de OS/2 Warp 4 funcionando bajo Linux en mi ordenador. De todas formas no es una emulación perfecta y falla a menudo. Solo es apta para nostálgicos, no esperes nada serio con ella. :-)

VirtualBox también tiene soporte para OS/2 Warp, pero solo en algunas máquinas host modernas. A mí no me funciona, pero aparece en la documentación de VirtualBox.