Mapa de teclado y menú en SYSLINUX
May 21, 2011 5:08pm (editar)
Anteayer andaba configurando un poco el gestor de arranque SYSLINUX para la ISO de DelphOS, que ya mencioné por ahí. Me gusta mucho más este gestor que GRUB Legacy; de GRUB 2 y LILO no opino porque nunca los probé.
En una de esas me puse a hacer un submenú en el menú de arranque que permitiera seleccionar la distribución de teclado. Algo simple, considerando que el mapeador de teclas de SYSLINUX es rudimentario y no se hizo con la idea de poder seleccionar con detalle la variante del teclado y todo, sino que existe para dar un respiro a quienes usamos esquemas alternativos (o sea, cualquiera que no sea el QWERTY yanqui) al tener que ingresar algún texto (opciones pasadas al núcleo, contraseñas, comandos, etc.) en esa etapa inicial del arranque. Convertí los mapas de Linux a mapas de SYSLINUX con la herramienta que se afanaron de LILO, keytab-lilo, para los grandes juegos de esquemas de teclado: AZERTY, Colemak, Dvorak, QWERTY y QWERTZ.
Todo muy lindo salvo por un detalle: al seleccionar la distribución en el menú, se ejecutaba el módulo correspondiente y después veías la línea de comandos de SYSLINUX, no volvía a cargarse el menú (que es otro módulo). Di vuelta toda la documentación a ver si encontraba algo al respecto, como no encontré fui a preguntar al canal de IRC #syslinux en Freenode. Allá me trataron muy bien pero no creían que se pudiera con lo que ya había, así que me puse a hacer mi propio módulo com32 para SYSLINUX en C.
Había estado revisando algunos módulos ya existente en el paquete de las fuentes, en particular kbdmap.c e ifcpu.c me sirvieron de base y lo que hice fue básicamente combinar estos dos módulos. En Pastebin está el resultado, capaz que a alguien le sirve :D.
Para probarlo, tenés que bajarte las fuentes de SYSLINUX 4 y copiar mi fichero, al que bauticé kbdmapcmd.c (podés ponerle el nombre que se te cante si no te gusta, y reemplazarlo correspondientemente en todas sus ocurrencias), en com32/modules/. Después editá com32/modules/Makefile: agregá kbdmapcmd.c32 a la lista MODULES. Finalmente andá al directorio com32/ y ejecutá make, eso va a crear el com32/modules/kbdmapcmd.c32. Para instalarlo acordate que lo tenés que tener en una ruta accesible desde el fichero de configuración (por ejemplo, /boot/syslinux/).
En la configuración de SYSLINUX, lo ejecutás como arrancás cualquier núcleo, poniendo su nombre (kbdmapcmd.c32) y los argumentos correspondientes: ruta al fichero con el mapa de teclado, comando a ejecutar posteriormente (que en mi caso fue vesamenu.c32) y opcionalmente los argumentos de este.
Desde antes de terminarlo estaba dudando sobre si al final me sería de utilidad, por unas cosas que me falta ajustar en la configuración (concretamente hacer que la selección de mapa de teclado se pase como argumento a Linux al arrancar). Pero no podía dejarlo por la mitad, así que ahí está.

Me haces acordar a malas experiencias nombrando el vesamenu y syslinux, involucran un pen pero no deberia contar mas...
que buen laburo que te mandaste
We provide students all over the world to buy research papers online of supreme standards and for affordable fees. Moreover, we are a reputable company.
Cette information est utile pour mon travail, merci!
They are watches of supreme elegance