MiniLinux fuer 386er

Post Reply
Message
Author
Andre

MiniLinux fuer 386er

#1 Post by Andre »

Hi,
ich habe mit BusyBox ein 1-Disketten-Linux fuer einen 386erSX PC mit 4MB RAM eingerichtet. Busybox wurde statisch auf RedHat 7.1 kompiliert. Dazu habe ich einen Minimalen Kernel-2.2.20 kompiliert. Das Linux belegt ca 1.2MB auf der Diskette, und startet soweit ohne Probleme. Dann habe ich das System von der Diskete auf einen mitgelieferten "DiskOnModule" (DOM) uebertragen. Das Linux startet soweit vom DOM.
Ich muss jetzt allerdings noch ein paar Anwendungen auf diesem LinuxSystem zum laufen bekommen. Unter anderm "stupid-ftpd". Ich habe es mit "-march=i386 -mcpu=i386 -static" statisch und fuern 386er PC kompiliert, und dann mit "strip --strip-nodebug stupid-ftpd" die DebugInfos entfernt. TestWeise habe ich das Programm auf dem RedHat-PC ausgefuehrt, und es funktiniert dort ohne Probleme. Das Programm besteht lediglich aus der "/usr/bin/stupid-ftpd" und der "/etc/stupid-ftpd/stupid-ftpd.conf".
Ich habe diese 2 Dateien auf den 386er uebertragen. Dort startet das programm auch ohne Fehlermeldungen. Wenn ich mich dann von aussen per "ftp" (vom RedHAT-PC) auf den 386er einlogge, wird der eingetragene Benutzer zugelassen. Wenn ich dann "ls" oder "dir" eingebe, erscheint am Redhat-PC die Meldung "200 PORT command successful.", und der RedHat-PC haengt.
Wenn ich mich erneut per ftp einlogge, und zuerst in den passiv-mode schalte, und dann "ls" bzw "dir" eingebe, seh ich die VerzeichnisStruktur.

Ich habe die stupid-ftpd-Sourcen manuell durchdebuggd (per "printf" <img src="http://www.pl-forum.de/UltraBoard/Images/Wilk.gif" border="0" align="middle">).
Stupid-ftpd haengt bei der Zeile " addr=(unsigned long)inet_addr(cmd);". Dabei sind die Variablen folgendermassen definiert: "unsigned long addr;" und "char cmd[2048];". Diese Funktion kommt nicht von stupid-ftp, deshalb geh ich mal davon aus, das es eine Kernel-Funktion ist.

Normal koennte ich die Funktion "inet_addr" einfach durch eine eigene ersetzen. Das ist aber nicht mein Ziel, ich moechte wissen wo bzw was in meinem Linux-System fehlt. Das Programm laeuft ja auf dem RedHat-PC, und ist statisch kompiliert, sollte also keine weiteren Bibliotheken benoetigen.

Danke,
Andre

bakunin
Posts: 597
Joined: 16. Aug 1999 6:44
Location: Lorsch (Südhessen)
Contact:

Re: MiniLinux fuer 386er

#2 Post by bakunin »

Hi!

Wie sowohl in der Manpage von inet_addr als auch in der glibc-Texinfo-Dokumentation steht, handelt es sich um eine Bibliotheksfunktion (keine Kernel-Funktion!), die eine Adresse in eine (binär dargestellte) IP umwandelt, das Problem liegt also möglicherweise irgendwo in der Namensauflösung, würde ich vermuten. Klappt es, wenn du den Red Hat Rechner in die /etc/hosts einträgst?

Cheers,
GNU/Wolfgang

Andre

Re: MiniLinux fuer 386er

#3 Post by Andre »

Hi,
auf dem 386er habe ich in der "/etc/hosts" folgende zeilen:

"
127.0.0.1 localhost
192.168.1.50 dimpc
192.168.1.43 thales
"

dimpc = 386er-pc
thales = redhat-pc

leider haengt das Programm immer noch an der Zeile.
Komischerweise gibt "ping thales" "ping: localhost: Resolver Error 0 (no error)" zurueck. "ping 192.168.1.43" klappt dagegen...

Andre

Andre

Re: MiniLinux fuer 386er

#4 Post by Andre »

hmm,

wie kann es sein, das stupid-ftpd an dieser glibc-funktion (inet_addr) haengt, wenn es statisch kompiliert ist? <img src="http://www.pl-forum.de/UltraBoard/Images/TooHappy.gif" border="0" align="middle">

Andre

bakunin
Posts: 597
Joined: 16. Aug 1999 6:44
Location: Lorsch (Südhessen)
Contact:

Re: MiniLinux fuer 386er

#5 Post by bakunin »

Hi!

Statisch gelinkt heißt, dass die Bibliothek komplett ins Binary integriert wurde, daher kann er selbstverständlich auch an einer Funktion hängen, die zur glibc gehört (nur hier eben in dein Programm eingepflanzt wurde).

Was das eigentliche Problem angeht, so bin ich im Moment etwas ratlos, d.h. müsste erst einiges nachlesen, um eine brauchbare Idee anbieten zu können. Ich wäre froh, wenn hier jemand einschreiten könnte, der mehr Ahnung von der Materie hat.

Cheers,
GNU/Wolfgang

Post Reply