Re: Binarios COFF en Debian (Posible solucion y Reto)
Ricardo Frydman Eureka! escribió:
Guimi wrote:
Hola,
he instalado una nueva máquina con Debian Sarge para utilizar unos
binarios un poco antiguos que utilizaba en un aSCO Unix.
El formato de binarios es COFF (utilizado después que a.out y antes que
ELF). Hace un par de años copié (simplemente copié) los binarios en una
máquina SuSE, creo que versión 9.algo y funcionaron.
Huelga decir que no dispongo ni de fuentes ni de instaladores de los
binarios, así como tampoco de la máquina SuSE.
El caso es que esta semana he copiado los binarios en la nueva Debian y
me dice [Formato de ejecutable desconocido].
Pregunta ingenua, como intentaste ejecutarlos?
chmod g+x ejecutable
(el usuario pertenece al grupo adecuado)
./ejecutable
Solo por probar.....intenta con sh ejecutable.
Otro que se me ocurre: mira si file ejecutable, da alguna pista...
Conseguí acceso a la SuSE. Es una 9.0.
file dice lo mismo que en la Debian:
386 COFF executable
Nota: Como es un binario antiguo, además requiere ksh y entorno POSIX.
El caso es que volví a buscar y encontré una posible solución:
http://linux-abi.sourceforge.net/
De hecho teóricamente es LA solución.
Es un parche para el kernel que permite ejecutar binarios de otras
arquitecturas.
Así que bajé el parche y un kernel de kernel.org (los de Debian no se
parcheaban bien), lo parcheé y al hacer el menú makeconfig me apareció
toda una nueva rama de compatibilidad con binarios de otros sistemas.
Seleccione tipo de entorno SCO (de donde provienen originalmente los
binarios) y soporte para COFF.
Compiló bien (ya puestos NO lo hice "a la Debian", será mi siguiente
prueba) e instalé el kernel pero aún no he podido probarlo.
Seguiré informando.
Ahora un pequeño reto...
Es un curioso problema que ayer, gracias a una "iluminación", solventé.
Esta magnifica aplicación "antigua" genera desde hace al menos 4 años un
problemilla... y es que solo funciona en algunos directorios.
¿En cuáles? Ese es el problema. Parece totalmente aleatorio.
Creas un nuevo directorio y no funciona, creas otro y sí...
Más curioso:
Crearon un directorio /home/elena y comprobaron que ahí funcionaba la
aplicación. Así que *movieron* el directorio a /opt/(aplicacion)/mis_datos
(cambiando la ruta *y* el nombre del directorio) y efectivamente la
aplicación seguía funcionando en ese directorio.
Crearon un nuevo /home/elena y ahí ya no funcionaba la aplicación.
Y no, en el directorio no había ningún archivo oculto ni nada que
permitiese o no la aplicación.
Y no, tampoco existe en la aplicación un listado de directorios permitidos
(de hecho, es lo más curioso, cuando funciona en un directorio puedes
moverlo donde quieras y con cualquier nombre).
Qué será, será... os dejo que lo penséis un poco y unas líneas más abajo
pongo la respuesta.
.
.
.
.
.
.
.
.
.
.
Se me ocurrió pensar que la cuestión es que admitía algunos inodos.
Pensé en que siendo una aplicación vieja, estaría preparada para discos
duros "pequeños", que usaban "pocos" inodos.
Comencé a listar los inodos de los directorios en que iba de los
directorios en que fallaba y efectivamente, los directorios en que
funcionaba tenían un número de inodo bajo.
Probé una frontera de 2Bytes para el número de inodo (65535) y
efectivamente, todo directorio con un inodo menor funciona, y todo
directorio con un inodo mayor no funciona.
Hace 4 años pusieron discos duros más grandes y por eso empezaron a tener
el problema.
Así que vamos a hacer varias particiones "pequeñas" para la aplicación,
formateándolas con menos de 65536 inodos...
¿Lo habíais adivinado?
De nuevo gracias a todos por el apoyo.
Saludos
Güimi
http://guimi.net
--
Por el bien de todos respetemos las normas de la lista:
http://wiki.debian.org/NormasLista
Reply to: