Página de tag(s): linux
Febrero 2nd, 2007
5:35 pm
Linux
Esta es una de esas entradas que pongo aquí sobre todo para evitar olvidarme si me enfrento de nuevo al mismo problema.
Ayer estaba en la biblioteca estudiando para un examen de control digital y necesitaba usar octave para hacer algunas pruebas. Descubrí con horror que iba mal cuando se quedó colgado al pedirle las raíces de un polinomio:
octave:1> v = roots([1 3 2 0 2])
Tuve que interrumpir la operación con el típico Ctrl+C porque, además, el octave estaba usando en ese momento el 100% de CPU según top. Lo sorprendente es que al volver a intentar la misma operación, en vez de colgarse, me mostró este error:
octave:1> v = roots([1 3 2 0 2])
error: dgeev failed to converge
error: evaluating assignment expression near line 65, column 9
error: evaluating if command near line 62, column 5
error: evaluating if command near line 59, column 3
error: called from `roots’ in file `/usr/share/octave/2.1.73/m/polynomial/roots.m’
error: evaluating assignment expression near line 1, column 3
El problema no sólo aparecía con la función roots, sino con muchas otra de las que necesitaba, que quizá usaban ésta en su código. Un poco de investigación al llegar a casa me hizo saber que el problema estaba en que había compilado la versión de octave ofrecida como estaba por Gentoo sin Blas entre sus uses. En el Changelog de octave decía que en la versión más reciente (2.1.73-r2), Blas había dejado de ser opcional.
Desenmascaré entonces esta versión de octave y comenzó la instalación de blas-atlas, que es una de las implementaciones de ¡Blas disponibles. Pero duró poco, la instalación se detuvo con un mensaje en pantalla que decía que tenía que ejecutar la instalación en modo interactivo. Seguí los pasos indicados pero, independientemente de las opciones que escogiese en el proceso, la compilación fallaba.
En un hilo del foro de Gentoo donde había un usuario quejándose del mismo problema que yo, el desarrollador encargado del ebuild de octave en Gentoo aconsejaba desenmascarar las últimas versiones de blas-atlas y blas-lapack (además de dos de sus dependencias que también estaban enmascaradas). Hecho esto repetí el intento de instalación y esta vez no sólo me hizo menos preguntas que antes sino que aparentemente estaba funcionando.
El proceso de compilación de blas-atlas es largo, y por la salida que ofrece en ocasiones parece que ha entrado en un ciclo infinito. Pero no pierdas la calma, que no es así; cada iteración es diferente y no se ciclan, así que resiste la tentación de cancelar. No puedo decir cuanto tardó porque me fui a dormir, pero esta mañana, cuando le pregunté a octave de nuevo por las raíces del mismo polinomio de ayer, me respondió esto rápidamente:
octave:1> v = roots([1 3 2 0 2])
v =
-1.79051 + 0.55231i
-1.79051 - 0.55231i
0.29051 + 0.69660i
0.29051 - 0.69660i
Una advertencia, aunque aparece en pantalla antes de empezar: Si tienes un procesador que ajusta su velocidad a las necesidades del software, desactiva esta opción y deja una velocidad fija de procesador durante la compilación, porque blas-atlas hace pruebas de rendimiento para optimizarse y una velocidad variable del procesador puede traer resultados no deseados.
Eso es todo, Jake out.
Diciembre 20th, 2006
2:58 am
Linux
Resulta muy molesto, y más en un portátil, que las comprobaciones de las particiones ext3 se hagan en Linux (al menos en Ubuntu) automáticamente durante el arranque. En muchas ocasiones enciendo el ordenador con prisa, con la única intención de consultar algún detalle rápido. Y entonces se programa una comprobación de una de las particiones de mi disco duro. Es una situación dificil, pues la operación no puede cancelarse ni tampoco reiniciar resuelve el problema. En estas ocasiones no parece quedar más remedio que esperar.
No obstante, la frecuencia de estas comprobaciones puede configurarse. Pueden incluso ser desactivadas. Una rápida lectura a la página de manual del programa tune2fs me llevó a la solución:
jake@aurora:~$ sudo tune2fs -i 100d -c 100 /dev/sda5
tune2fs 1.39 (29-May-2006)
Se pone la cuenta de montajes máxima a 100
Setting interval between checks to 8640000 seconds
Con esto, las comprobaciones sobre la partición /dev/sda se harán cada 100 veces que se reinicie el ordenador (antes estaba a 20) o bien cada 180 días, lo que ocurra antes.
Diciembre 12th, 2006
1:13 am
Linux
La semana pasada tuve un momento de crisis. Cuando fui a encender a Aurora (Dell Inspiron 640m) me encontré con una pantalla negra que únicamente tenía este texto:
Time-of-day clock stopped
Al reiniciar volvía a aparecer la misma pantalla y no podía tan siquiera acceder a la BIOS.
El servicio de atención al cliente de Dell no era una opción, pues no está operativo los sábados. Un poco de investigación me llevó a un informe de errores con título Ubuntu corrompe el reloj de tiempo real en algunos portátiles Dell. Allí decía que quitando la pila de la BIOS y volviendo a ponerla se resolvía el problema. Esta me pareció una solución interesante, pero eso fue antes de saber que la pila está debajo del teclado y que tenía que desarmar medio portátil para llegar a ella. Por suerte, Dell pone a disposición de sus clientes una fabulosas instrucciones, con fotos y detalles de cuidado, para desmontar cada modelo de portátil de la marca e identificar las distintas partes (son los llamados manuales de servicio, que sólo están disponibles en inglés). En mi caso, seguí las instrucciones específicas para cambiar la pila de la BIOS del Inspiron 640m. Claro que, después de efectuar esta operación, tuve que volver a configurar todos los parámetros de la BIOS para dejarlos como los tenía antes de la crisis.
Esta fotografía la tomé durante el proceso, justo después de haberle quitado la pila a Aurora. El rectángulo azul indica la posición de la pila.
Esta experiencia ha servido con creces para que me plantee probar otras distribuciones. Tengo ahora Gentoo en el punto de mira, y es más que probable que sea la próxima.
Diciembre 6th, 2006
3:27 am
Linux
Uno de los problemas que tuve al actualizar la distribución de Ubuntu Linux de Asimov de Dapper Drake a Edgy Eft tenía que ver con el sonido.
Asimov tiene una tarjeta de sonido incluida en la placa, que nunca uso, porque tengo una Sound Blaster 128 PCI que sí uso. Dapper nunca reconoció la primera, pero Edgy sí, y ahora había tomado el control del sonido del sistema. Yo quería poner la Sound Blaster como principal, pero teniendo ambas disponibles.
Encontré la solución en este hilo del foro de Ubuntu. Ejecuté:
jake@asimov:~$ cat /proc/asound/modules
0 snd_via82xx
1 snd_ens1371
Como puede verse, la tarjeta VIA, incluida en la placa base, estaba la primera.
Edité entonces la configuración de Alsa en /etc/modprobe.d/alsa-base. Ojo aquí, pues, por alguna razón que desconozco, en el foro se indica otro nombre de archivo que en mi caso no existía, y la configuración de Alsa la encontré en /etc/modprobe.d/alsa-base, como he dicho.
jake@asimov:~$ sudo vi /etc/modprobe.d/alsa-base
Añadí estas dos líneas al final:
options snd-ens1371 index=0
options snd-via82xx index=1
Fíjate en que el guión bajo (_) de antes se sustituye aquí por un guión (-). El parámetro index indica en el orden en que se tomarán las tarjetas en el sistema (empezando por cero). Para que estos cambios se hiciesen efectivos en el sistema, ejecuté:
$ sudo update-modules
Y reinicié la máquina. Al volver a entrar, mi tarjeta principal ya era la Sound Blaster:
jake@asimov:~$ cat /proc/asound/modules
0 snd_ens1371
1 snd_via82xx
Diciembre 6th, 2006
1:23 am
Linux
Asimov tiene instalado Windows 2000 Professional y Ubuntu Linux. A finales de octubre se publicó una nueva versión de Ubuntu: Edgy Eft. Una semana después tuve tiempo de actualizar mi Dapper Drake. Aunque podría haber hecho una actualización por red, decidí descargar el CD de instalación. Entre los disponibles para descarga, escogí ubuntu-6.10-alternate-i386.iso, ahora no recuerdo por qué (estos olvidos son los que quiero evitar con este blog
)
Normalmente no grabo estas isos hasta que necesito llevarlas a algún otro lugar, y no era el caso. De modo que seguí estos pasos para evitar grabar el CD.
Primero copié la imagen iso en /media
$ sudo cp ubuntu-6.10-alternate-i386.iso /media
Luego creé el directorio /media/edgycd y añadí esta línea al /etc/ftab
/media/ubuntu-6.10-alternate-i386.iso /media/edgycd iso9660 loop
De este modo puedo montar la iso como si estuviese poniendo el CD con solo hacer:
$ sudo mount /media/edgycd
Siguiendo las instrucciones de Este comentario hice esto una vez montado:
$ gksu sh /media/edgycd/cdromupgrade
Y ahí comenzó directamente la actualización, preguntándome si quería descargar de la red los paquetes que no estuviesen en el CD-ROM. Por supuesto, respondí que sí.
Pasó un buen rato descargando e instalando paquetes. Acepté todas las modificaciones que me mostró y al final reinicié.
Leer el resto de este post »