Régi ELF binary-k nem indulnak

Fórumok

Hello!

A napokban kedvet kaptam hozzá hogy kiprobáljam a ttyquake-t. Mint hamar kiderült maga a ttyquake pár patch-elt aalib-en kivül sok mást nem tartalmaz. Ahhoz hogy be tudjam üzemelni kell hozzá az svga-ra irt quake1. Ezt az ID Soft ftp site-ján meg is találtam. Tulajdonképpen ahhoz hogy a quake 1 elinduljon a glquake alapján a következők kellenek:
- az inditható bináris
- az id1 mappában 2 pak file amik magát játék dolgait tartalmazzák.
Ezek mind meg vannak.
A problémám a következö: se az svga-ra irt squake de még 1 rakat más régi elf binaris sem akar elindulni, egyfolytában ezt a hibaüzenetet kapom : Nincs ilyen fájl vagy könyvtár...
Elöször azt hittem valami jogosultsági hiba lesz.... volt chown chgrp chmod stb .... végül rájöttem nem ez a probléma.
file parancsal megcsekkoltam a binary-kat:

squake: setuid ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), not stripped
xf86quake: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), stripped
xquake: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), stripped

Elég régiek ezek a binárisok 96-97-es évjáratúak, sajnos nem olyan finomak mint 1 bordói..

Az én rendszerem amin megpróbáltam elindítani őket:

-Debian lenny
-Linux version 2.6.26-1-686 (Debian 2.6.26-13) (waldi@debian.org) (gcc version 4.1.3 20080704 (prerelease) (Debian 4.1.2-24))

Igazábol már annyira nem is érdekel hogy menjen a ttyquake, viszont az nagyon is érdekel hogy az ilyen régi binárisok miért nem mennek ????
Például a glquake binarist minden szó nélkül indítja, igaz az 2006 ban lett fordítva.

glquake: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.2.0, stripped

Én arra tippelek hogy régi gcc-vel lettek forditva a nem induló binárisok, most épp az svga-s quake forrását keresem hogy ha lefordítom hátha müködni fog a dolog, de viszont mi van abban az esetben ha egy ilyen régi binárisnak nem találom meg a forráskódját ?

Fileok:
intel lunux quake: intel_linux_quake101.tgz
squake : squake-1.1-i386-unknown-linux2.0.tar.gz
ttyquake: ttyquake-0.4.2.tar.gz
glxquake : glxquake.tar.gz

Hozzászólások

Talan par lib hianyzik? Azt az ldd-vel tudod megnezni. Ha megsem, es tudni akarod mit akar csinalni amikor dobja a hibat akkor probalkozz ltrace-szel vizsgalodni. Onnan talan ki derul mit nem talal.

hmm ...nightmare

se ldd se ltrace ....
ha ezeket hazsnálom akkor is ezt mondja:
/usr/bin/ldd: line 117: ./squake: Nincs ilyen fájl vagy könyvtár

Can't execute `./squake': No such file or directory
PTRACE_SETOPTIONS: No such process

???????????????????

root-ként csinálom.

MI a francért No such file or directory ??????????

ezt abszolute nem értem!

Az a baj, hogy a lenny-ben levő linker már csak a libc6-ot támogatja. A régebbi libc-knek még más linkere volt. Viszont a libc5 és a hozzá tartozó linker tartalmazó ldso csomag csak utoljára a sarge-ban volt benne csomagként:

http://archive.debian.org/debian/pool/main/l/ld.so/ldso_1.9.11-15_i386…
http://archive.debian.org/debian/pool/main/libc/libc/libc5_5.4.46-15_i3…

Milyen hibaüzenetet kapsz? Tudtommal az ELF binary formátum nem változott, tehát ha az architektúra stimmel, és megvannak az akkori shared libek, akkor mennie kell.
Ezek a file szerint is dinamikusan linkelt futtatható file-ok, úgyhogykisebbfajta csoda lenne, ha az akkori verziójú shared libek (libc 5-ös verzió, pl.) fent lennének. Ettől még nem lehetetlen múködésre bírni ezeket, csak fel kell pakolni mindenféle kompatibilitási csomagokat (1-2 évvel ezelőtt még régebbi aout formátumú programokat is futtattam, és mentek).

Baromi régi libc-vel lett fordítva.
Az a baj, hogy /lib/ld-linux.so.1 -et keresi, mert csak azzal tudja betölteni a további libeket.

Na közben az eredeti problémámat sikerült megoldani a következő képen:
leszedtem a FuhQuake-t az liflg.org-ról.
Ez minden probléma nélkül települt és indult..... el is csodálkoztam a srácok munkályán.. igazán szépek a textúrák, respect nekik!
Utána az aa-project oldalán találtam egy svgalib wrapper-t.
És minden működik tökéletesen ! Vicces az egész :)