Bliki Técnico de Dargor

Solucionando la falta de Debian

Almacenado bajo: CategoryBlogPost

Este era un post que tenía pendiente por hacer. Debido a que recientemente estoy sin computador propio... bueno, si tengo uno, pero es una reliquia de museo que corre bien con xfce o icewm (incluso mejor a punta de VC's), pero su conectividad dependía de tirar un cable Ethernet que atravesara la casa de extremo a extremo (o de ponerle una tarjeta wifi, tirar cable de extremo a extremo de la casa, poner el wok de la cocina y así nos quedamos sin paella XD ). Además extrañaba echarme unas partidas de torcs , wesnoth, flighgear y vegastrike. Bueno, pues tengo disponible un laptop mas o menos reciente (y con tarjeta gráfica ATI, asi que hay aceleración para los jueguitos), pero con una pega: no podía formatearlo (no me dejan borrarle el xp que tiene allí) y no hay espacio libre para reparticionar (depronto con una Damn Small Linux pero entonces no podría correr ni el scilab que necesito por estos días). Afortunadamente si tenía un disco duro USB (tenía el mio propio, pero ahí van mis copias de seguridad, asi que ese disco quedará virgen de OS mientras funcione como backup) pero, que de malas! el laptop no puede arrancar desde USB! :_( Ya estaba a punto de tirar la toalla pero se me ocurrió que sí que podía funcionar, así que voy a describir cómo hice para hacer funcionar Debian Etch en un disco USB, sin usar arranque por USB:

  • Hay un detalle con Linux y es que un disco duro será un disco duro independiente del hardware que sea (IDE, USB, Memoria, Medios remotos en red, lo que sea que almacene información). Bueno, eso ya seguramente que ya lo sabían (que para eso hay terminales sin disco duro y demás cosas), pero lo que quiero decir es que, si es disco duro, es instalable cualquier distribución de Linux. Supongo que para otros núcleos *nix es igual (Hurd, solaris, los BSD's) pero no los he probado como para afirmarlo completamente. Asi que Debian se instala en un disco USB sin ningún problema, solo tienes que decirle donde instalar (en este caso mi disco USB es /dev/sda) y como si nada.
  • Bueno, ahora el problema es arrancar nuestro Debian en USB, pero no tenemos ayuda de la bios de la laptop para esto. Asi que hay que recurrir a otros medios para arrancar. Podemos tener un diskette de arranque, pero es que ya están obsoletos :). Un CD de arranque también serviría, pero donde estoy no pienso darme el lujo de comprarme CDs vírgenes por esto del canon. En cambio ví dos soluciones:
    • Método kexec: kexec se puede resumir como la forma de cargar un kernel en el lugar del kernel que está corriendo. Mejor dicho: un reboot sin pasar por la bios. Usando kexec puedo cargar el kernel de Debian y decirle que la partición raíz es mi disco USB

# kexec -l /media/sda6/boot/vmlinuz-2.6.17-2-686 --command-line="root=root=/dev/sda6 ro" --initrd=/media/sda6/boot/initrd.img-2.6.17-2-686
# kexec -e
  • Para usar kexec necesito: un linux corriendo (por ejemplo en un live cd), que este linux tenga soporte en el kernel para kexec y la herramienta propiamente dicha kexec. Con un knoppix 5 se puede hacer esto. La pega de esto es el necesitar de una distro live para poder funcionar.
  • Usar el disco duro del laptop como arranque: no tengo espacio para reparticionar pero sí tengo al menos 6MB para copiar el kernel, el initrd y un gestor de arranque. Bien, no puedo volar el arranque del xp, pero sí que lo puedo usar. Para esto uso Grub4dos. En resumen este proyecto es un Grub pero con soporte para particiones FAT y NTFS, con todas las funcionalidades de Grub. Es capaz de ser ejecutado por NTLDR, lo cual hace que haga solo un pequeño cambio en el arranque del xp, que me muestre un menú que lanze grub4dos, y éste me hace la labor de arrancar Debian desde el disco USB, usando el kernel y el initrd que previamente tuve que copiar en el disco del xp. En el xp pongo esto en el boot.ini

[boot loader]
timeout=10
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="el XP" /noexecute=optin /fastdetect
c:\grldr="Debian GNU/Linux Etch desde disco USB"
  • Luego debo tener en el disco del laptop el kernel, el initrd, el gestor de arranque de grub4dos "grldr", y un menu.lst para éste. El menu.lst tiene la misma sintaxis que grub:

color black/cyan yellow/cyan
timeout 0
default /default

title Debian GNU/Linux en USB (kernel local)
root (hd0,0)
kernel (hd0,0)/vmlinuz root=/dev/sda6 ro
initrd (hd0,0)/initrd
boot
  • Pega de esto? pues que reinstalar un kernel significa copiarlo al disco del laptop en la partición del xp, y eso me da mala espina (que por ahí se pueden colar malware cuando estén usando el xp). Estoy pensando en cómo hacer para mirar ese caso, de pronto que al arranque haga una comprobación por hash o algo así. Ya lo documentaré cuando lo haga.

He encontrado también un proyecto que se llama kboot, que es un gestor de arranque basado en kexec, pero no lo he probado aún. Sin embargo creo que sería una buena solución para arrancar directamente con un kernel dentro del mismo disco USB, dado que puede usar las capacidades de linux para usar un disco USB.

Esta fué mi solución para poder trabajar a gusto con Debian y satisfacer mi adicción a la espiral (ya me estaba dando síndrome de abstinencia...). Aún así hay un problema que hay que solucionar: también quise probar si mi recién instalado debian podría correr en cualquier máquina, por ejemplo un desktop que me prestaron un día. Hubo un problema y es que en dicho desktop, linux identificaba mi disco USB como /dev/sdb (es que tenía un disco sata, así que ese fué el que se llamó sda), así que el arranque falló completamente. Una vez cambio todas las referencias de sda a sdb funcionaba perfectamente, pero eso implicaba que tenía que revertir el cambio para poder arrancar en el laptop. Para solucionar el problema debo decirle al kernel que mi disco USB en particular debe tener un nombre fijo, que aún no se cómo hacerlo; y modificar el daemon de udev para que también le dé un nombre fijo, y esto se hace con las reglas del udev. En un próximo post les contaré cómo me fué con esto, pero por ahora puedo decir... Debian rules!!!

Links de interés

Más arriba hice una minilista de los juegos que más me gustan (y más me envician) para linux y con licencia GPL. Tengan en cuenta que, excepto wesnoth, son juegos que necesitan aceleradora gráfica y un computador poderoso, flightgear y vegastrike son dos juegos que son muuuuy exigentes en hardware, pero vale la pena por su calidad. Además están los links de los proyectos y demás información que encontré para esto.



:) :)) :( ;) :\ |) X-( B) Markup

Retomando el bliki - Software de álgebra numérica 0.1

Almacenado bajo: CategoryBlogPost

Vaya que había desaparecido por un buen rato. Me disculpo por haber descuidado el bliki e intentaré postear más seguido. Ahora si...

Por estas épocas tengo que hacer unos trabajos, problemas de análisis y tratamiento de señales para ser exactos. Eso me recuerda que para el proyecto de grado me prometí mejorar, liberar y documentar esa aplicación que escribimos con mi compañero de tesis y tocayo. Y eso me trae a más allá en el pasado, cuando en p-tale se estaba trabajando en documentación para este tipo de software. Así que ya me remuerde la conciencia que no me deja dormir...

He empezado un nuevo proyecto (por fín) en p-tale: Software de álgebra numérica enfocado en análisis y tratamiento de señales. Mi objetivo para este proyecto es documentar la experiencia que he tenido y que voy a acumular en los próximos meses sobre una comparación de cuatro paquetes de software en la solución de mis trabajos y de las mejoras a la aplicación de mi trabajo de grado (digamos la verdad: para mí hay que reescribirlo todo). Un adelanto:

  • Scilab: esta aplicación se conoce popularmente como la alternativa libre a Matlab. Con scilab hice mis primeros pasos en el tratamiento de señales.

  • Octave: esta es la aplicación más parecida en cuanto a sintaxis a Matlab.

  • Matlab: si, ya se que es una herramienta de software propietario, pero para hacer una comparación justa hay que darle la oportunidad de ver que es capaz de hacer en igualdad de condiciones. También porque se conoce como el estandar de-facto para esto, y además porque tengo acceso a una licencia legal de ésta, asi que no voy a tener cargos de conciencia ni nada de eso.

  • SciPy: nuestro querido lenguaje favorito Python tiene este paquete que le permite hacer álgebra numérica, tal como los tres anteriores. Aunque Python sea mi consentido procuraré ser imparcial y no mimarlo demasiado :) .

Con esto espero llegar a un documento que guie al usuario a elegir la aplicación correcta según sus necesidades. Los avances los voy a poner bajo la documentación de p-tale, y como es debido: cualquier ayuda, duda, opinión, sugerencia, o lo que sea es bienvenida (tal vez esto último se sobreentiende... en fin).

Otra cosa: tengo muchísimas expectativas con SciPy (nada que hacer, Python es el consentido), tanto que me voy a prometer a hacer un tutorial de uso, dado que no hay mucha documentación, y en castellano simplemente no hay (o por lo menos no la he encontrado).

Eso es todo por el momento. Espero poder sacar todo esto adelante a pesar de todos los líos y problemas que tengo: estoy desesperado de tener conectividad sin debian y debian sin conectividad!!!

  • Actualización (17-Feb-2007)

Recientemente ha resurgido mi interés por GNU R. Este es un paquete de álgebra numérica especialmente popular para estadística (viene a ser como una aplicación alternativa a S, un software propietario para estadística), pero que también reúne las características que necesito. Asi que R va a ser otro candidato para este trabajo.

Links de interés

Aparte de los links de arriba solo tengo estos adicionales



:) :)) :( ;) :\ |) X-( B) Markup

Trabajo y ocio

Estuve en el trabajo tratando de solucionar un problema que estaba pendiente mucho tiempo. Resulta que en el servidor de mi empresa se usa moodle, pero se necesitaban diferentes instalaciones (son 9) para diferentes usos (no se contentaban con una sola instalación todos los cursos. En fin...). El caso es que apliqué la siguiente solución: 9 bases de datos diferentes, 9 directorios de datos diferentes (hasta ahí iba todo bien), y... 9 copias del software diferentes... (ouch!). Eso hacía que el espacio en el webserver se ocupara 9*81MB=729MB dedicado a moodle: 648MB desperdiciados y que se iban a la copia de seguridad! :s . Bueno, algo tenía que hacer:

  • Primera solución: links simbólicos. En un directorio dejaba el moodle y para los demás hacía links simbólicos conservando el config.php que debía ser diferente para cada instalación. Esto no funciona porque cada acceso a cada una de las 8 instalaciones enviaba de vuelta a la instalación original, debido a que moodle resuelve la ruta real de cada archivo y trabaja con eso. No funcionó.

  • Segunda solución: links duros. Los enlaces duros tienen la ventaja de comportarse como archivos reales y no ocupar espacio en el sistema de archivos. Desventaja: la copia de seguridad volvía a recibir los 648MB adicionales al considerar estos enlaces como archivos reales. No me servía tampoco.

  • Tercera solución: hacer links simbólicos con lndir. Esta herramienta recorre un árbol de directorios y crea links simbólicos por cada archivo regular que encuentre, de tal forma que crea un directorio donde solo hay subdirectorios y enlaces a archivos regulares. Esto funcionaba bien hasta que me dí cuenta que moodle hace una comparación extraña (vea admin/index.php línea 48,49 y admin/health.php línea 196,197). Un link simbólico falla ante la función realpath de php (en realidad no es una falla, es solo que resuelve el link, lo cual era un problema en este caso). Asi que decidí hacer este 'hack' (dígase chambonada) entre las líneas mencionadas:

$dirroot = $CFG->dirroot;
  • De esta forma hago que el condicional no moleste la vida nunca más. En realidad no entendí mucho la razón de esta comprobación, asi que aún sigo buscando un desarrollador de moodle para que me explique. Resultado: cada directorio queda de 14MB (de todas maneras la cantidad de archivos es grande), pero por lo menos pude reducir un 87% de espacio: 81MB + 8*14MB = 193MB. Sigue siendo mucho espacio pero es una gran reducción que voy a ver recompensado en la copia de seguridad. Además se está trabajando en la versión 1.5 (que incluye todas las traducciones posibles), y cuando se actualize a 1.6 se reducirá aún más el espacio. :D

Voy a mandar esta pequeña anécdota a los tipos de moodle, para ver si ellos piensan en estos detalles para los próximos releases.

Bueno, en ese mismo día estaba probando mi capacidad multitarea, y no creí que me fuera tan bien... :O .

Mientras estaba con este cuento de moodle, estaba también en el canal #vhdl de freenode. Había una persona que me estaba preguntando por una herramienta de simulación con VHDL. Yo conozco GHDL y Alliance (curiosamente páginas francesas). Sin embargo recordé que cuando estaba en el curso de digitales intenté usar herramientas libres sin mucho éxito, asi que me puse a la tarea de mirar los dos, y de recordar que no pude compilar alliance en el pasado. Curiosamente esta vez lo pude compilar sin más problemas que apt-get'ear un par de librerías y ya (aún mejor: compiló para amd64 sin patalear). Asi que estas anécdotas referentes a VHDL las voy a ir poniendo en ProyectoTale/Documentacion/VHDL (eeee!!! P-TALE!!!).

Links de interés

En el bliki voy a poner un listado de links interesantes, de los que he visitado por la red y que pueden ser de utilidad para otras personas. Que sea parte del formato de este bliki.



:) :)) :( ;) :\ |) X-( B) Markup

CategoryBlogPost

Arrancando el Bliki

Hoy decidí arrancar el bliki por fin, ya llevaba muuucho tiempo esquivando la idea :p. Asi que en este post voy a poner algunas reflexiones acerca del bliki en general.

  • No me gusta contar cosas personales o pensamientos o ese tipo de cosas que suelen hacerse en un Blog, sencillamente no tengo paciencia para eso. En ese sentido prefiero contar todas esas cosas en un plan de fin de semana en la noche. Por eso este es el único post de este estilo que voy a escribir (dejemoslo como un metapost).
  • El bliki va a ser para mí una forma de presionarme para hacer documentación. He visto que algunos ingenieros, técnicos, programadores o similares tenemos el mal hábito de no documentar lo que hacemos (supongo que muchos están de acuerdo y/o se sienten igual). Es un hábito que me propondré cambiar como sea. Asi que procuraré que los posts del bliki sean de ese tipo de documentos o por lo menos enlaces a esos contenidos.
  • Por el punto anterior, la regularidad de los blikis dependerán de los trabajos que yo haga, aunque tal vez haga posts con enlaces a cosas interesantes que encuentre por ahí.
  • No pondré tema al bliki, que sus posts serán de temas variados pero interesantes (al menos según mi criterio). Asi que si alguien me cuenta algo que de verdad me parezca que valga la pena, incluso si es algo tan incomprensible para mí (como por ejemplo política), tendrá su post asegurado.

Vamos a ver como me va con este experimento de blog, pero lo que espero sinceramente es que sus posts sean útiles para alguna persona ( vamos que espero ver eso en los comentarios ;) ).

Como último apunte personal, hace tiempos yo decía que odiaba los blogs... Como cambian las cosas, no?



:) :)) :( ;) :\ |) X-( B) Markup
Offray   Hola Oscar!, que bueno verlo escribiendo por acá y en ese estilo... estaré atento a futuros post y bienvenido a nuestros Blogs (Blikis) :-) 2006-09-11 06:43:01

CategoryBlogPost

Posts por fecha:

<< <  2012 / 5 >  >>
Mon Tue Wed Thu Fri Sat Sun
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      

Posts por títulos


CategoryBliki

DanielDiaz/Blog (last edited 2008-04-20 14:40:19 by localhost)