[Gelöst]: sl-mod 1.3 / mit dropbear, ether-wake, vi, sed, crontab, wget, etc.

So, auf ein neues.

Ich habe nun das config-file der 2MB-Busybox genommen (avm-gpl-04.06/fritzbox_opensrc/base_ohio-8mb_build/2mb.busybox.config) und in das busybox-Verzeichnis als .config kopiert, dann dort mit einem make oldconfig alle Vorschläge übernommen, und bei einem "make menuconfig" "deine Zusatzprogrammwünsche" hinzugepackt (sowie halt+reboot hinzugefügt und Modulsupport für 2.6 abgewählt).
Code:
cp ds-0.2.9/source/avm-gpl-04.06/fritzbox_opensrc/base_ohio-8mb_build/2mb.busybox.config ds-0.2.9/source/ref-4mb/busybox-1.2.1/.config
cd ds-0.2.9/source/ref-4mb/busybox-1.2.1/
make oldconfig
make menuconfig
make
Nun ist das Binary sogar kleiner als vorher...

Das ist nun drin (und telnet scheint zu gehen):
Code:
joerg@linux-AMD:~/tmp/tmp> qemu-mipsel -L ~/ds-0.2.9/build/modified/filesystem busybox --help
BusyBox v1.2.1 (2007.07.26-21:25+0000) multi-call binary

Usage: busybox [function] [arguments]...
   or: [function] [arguments]...

        BusyBox is a multi-call binary that combines many common Unix
        utilities into a single executable.  Most people will create a
        link to busybox for each function they wish to use and BusyBox
        will act like whatever it was invoked as!

Currently defined functions:
        [, [[, ash, basename, busybox, cat, chmod, cp, crond, crontab, date, dirname, dmesg, echo, env,
        ether-wake, false, fgrep, find, free, ftpget, ftpput, grep, halt, ifconfig, init, insmod, kill,
        killall, ln, ls, lsmod, mkdir, mknod, modprobe, more, mount, mv, netstat, nslookup, pidof, ping,
        poweroff, ps, pwd, realpath, reboot, rm, rmmod, route, sed, sh, sleep, sync, tar, telnet, telnetd,
        test, tftp, touch, tr, traceroute, true, umount, uname, vi, wget, which

joerg@linux-AMD:~/tmp/tmp> qemu-mipsel -L ~/ds-0.2.9/build/modified/filesystem busybox telnetd --help
BusyBox v1.2.1 (2007.07.26-21:25+0000) multi-call binary

Usage: telnetd [OPTION]

joerg@linux-AMD:~/tmp/tmp> qemu-mipsel -L ~/ds-0.2.9/build/modified/filesystem busybox telnet --help
BusyBox v1.2.1 (2007.07.26-21:25+0000) multi-call binary

Usage: telnet [-a] [-l USER] HOST [PORT]

joerg@linux-AMD:~/tmp/tmp>


Ich hoffe, es läuft...

Jörg

EDIT: Und zu deinen Fehlermeldungen: Hast du denn vorher im ds-mod mit "make menuconfig" die "normale" FBF ausgewählt und ein "make precompiled" sowie ein "make" gemacht?
 

Anhänge

  • busybox_20070726.tar.gz
    153.7 KB · Aufrufe: 12
Zuletzt bearbeitet:
Hallo,

das klingt ja echt super. Ich werde das morgen gleich testen.
Danke dir schonmal vielmals.

Das mit dem busybox kompilieren muss ich nochmal neu angehen. Meine VM ist zu klein und ich muss eine neue aufsetzen. Die Fehlermeldungen kamen aufgrund fehlender Pakete, die ich jetzt aber über Yast installiert habe.

Gruß
HS
 
Hallo Jörg,

wir kommen der Sache immer näher. Aber irgendwo mach ich wohl noch einen Fehler.

Um die busybox zu testen lad ich diese über tftp über die debug.cfg nach. Aber aus irgend einem Grund bekomme ich telnet nicht zu Laufen.

Hier ist die debug.cfg. Vielleicht erkennst du, warum der telnet daemon nicht funzt.
Code:
ifconfig lan:1 192.168.178.253 netmask 255.255.255.0 broadcast 192.168.178.255 up
sleep 3

PATH=$PATH:/var/tmp
export PATH

cd /var/tmp

# busybox von TFTP-Server holen
tftp -g -l busybox -r busybox 192.168.178.20
tftp -g -l libcrypt.so -r libcrypt.so 192.168.178.20

chmod +x busybox

ln -s libcrypt.so libgcc_s.so.1
ln -s busybox wget
ln -s busybox dirname
ln -s busybox realpath
ln -s busybox crontab
ln -s busybox more
ln -s busybox nslookup
ln -s busybox reboot
ln -s busybox telnetd
ln -s busybox traceroute
ln -s busybox sed
ln -s busybox vi
ln -s busybox which
ln -s busybox ether-wake

# telnet starten
/var/tmp/busybox telnetd -l /sbin/ar7login

Gruß
HS
 
Hab jetzt die Kiste mit dem "slmod" nicht oben, gibt es denn /sbin/ar7login?
EDIT ... nee, das ar7login Binary gibt es nicht in der sl-Firmware. Die Datei müsstest du (da es nicht frei ist) aus der FW z.B. der FBF (oder z.B. der Eumex 300IP, von der gibt es bei der T-Com noch eine Firmware mit 2.4-er Kernel) herauskopieren, falls du das benötigst.

Der Link für die libcrypt ist wohl falsch?!?

Ansonsten wäre eine eventuelle Fehlermeldung von Interesse, starte doch mal mit:
Code:
# Da war wohl ein Fehler drin?!? Es sollte doch die libcrypt.so.0 sein?!?
ln -s libcrypt.so libcrypt.so.0

/var/tmp/busybox telnetd -l /sbin/ar7login > /var/tmp/bboxstart.txt 2>&1
und hole dann die /var/tmp/bboxstart.txt zurück...


Jörg
 
Zuletzt bearbeitet:
Hallo Jörg,

hmm, ich hab noch die Firmware 10.03.73 auf der Box, weil die 10.03.94 kein tftp-get mehr hat. Also die 10.03.73 hat noch /sbin/ar7login.

Also müsste ich diese Datei in die Firmware 10.03.94 mit dem makescript einbauen, richtig?

Aber hier erstmal die Fehlermeldung beim ausführen von telnetd
Code:
/var/tmp/busybox: can't load library 'libgcc_s.so.1'

Obwohl ich vorher den Link gesetzt habe... Komisch?

Gruß
HS
 
Zuletzt bearbeitet:
Lies nochmal den Beitrag von Jörg. Der Link war falsch bzw. die libgcc_s ist in deiner Firmware nicht drin. Deshalb muss die busybox mit "-static-libgcc" kompiliert werden.

MfG Oliver
 
Hallo,

trotz setzen des Links bekomme ich auch bei der vorherigen busybox-Version (vom 24.07.2007) die Jörg erstellt hat
Code:
/var/tmp/busybox: can't load library 'libcrypt.so.0'
Warum zieht der Link nicht?

Gruß
HS
 
Weil in /var/tmp nicht danach gesucht wird. Stichwort: LD_LIBRARY_PATH

MfG Oliver
 
Aber daran kann es nicht liegen:
Code:
# echo $LD_LIBRARY_PATH
/var/tmp

Ich denke die Library muss statisch einkompiliert werden.
 
Ich fahre vielleicht später nochmal kurz die Linux-Box hoch, aber noch die Frage, was du denn zu Anfang (Beitrag #13) mit dem "Nachladen" gemacht hast, so dass es da ging?

Jörg
EDIT So, also bei mir bekomme ich keine Beschwerde über die libgcc_s.so.1. (In Ermangelung der Box teste ich mit qemu-mipsel mit -L /slmod/root-fs ). Das Problem der libcrypt.so sollte mit der Installation auf jeden Fall weg sein, da die Datei ja mit ins /lib Verzeichnis kommt.

Wenn ich wüsste wo ich "eingreifen" müsste, um im Makefile der Busybox eine lib statisch hinzuzufügen, täte ich das ja, aber ich habe es so auf Anhieb nicht hinbekommen...

In meinem Patch zum slmod-Makefile ist übrigens noch eine "Unschönheit" drin: Das Kopieren der libcrypto-Eintrage sollte mit cp -fa erfolgen, damit die Links als solche erhalten bleiben...
 
Zuletzt bearbeitet:
Hallo Jörg,

ich hatte per TFTP die library einfach nachgeladen. Die hast du ja auch ins tar gepackt. Aber telnet ging bisher noch nie wenn die library nicht statisch in der busybox enthalten ist. K.A. warum.

Ich probier jetzt aber mal die modifizierte Firmware mit neuer busybox zu flashen. Bisher habe ich die neuen busyboxen immer per TFTP nachgeladen und ausprobiert. Baue ar7login gleich mit ein. Eintrag im Makefile.

Code:
cp -f tools/ar7login root-fs/sbin/ar7login

Hoffe, dass ich recovern kann, falls es nicht funzt.

Gruß
HS
 
Hallo Jörg,

das Image hat leider noch nicht funktioniert. Recover war mein Bester Freund. Obwohl ich die Librarys alle eingebaut habe startet die Firmware nicht hoch.

Vermutlich müssen die Librarys doch statisch eingebettet sein oder wir haben noch irgend ein anderes Problem.
Hier ein Auszug aus dem Makefile

Code:
 # Replace busybox
        echo "replacing busybox"
        cp -f tools/busybox root-fs/bin/busybox
        cp -f tools/nvi root-fs/bin/nvi
        cp -f tools/ar7login root-fs/sbin/ar7login
        echo "adding libcrypt.o"
        cp -f tools/libcrypt* root-fs/lib/

        chmod +x root-fs/bin/busybox
        chmod +x root-fs/bin/nvi
        chmod +x root-fs/lib/libcrypt*

        echo "delete unimportant files"
        rm -R root-fs/usr/www/all/html/de/help
        rm -R root-fs/usr/www/all/html/de/usb
        rm -R root-fs/usr/www/all/html/de/wlan
        rm -R root-fs/usr/www/all/html/de/fon
        rm -R root-fs/etc/default.Fritz_Box_2MB/1und1
        ln -s avm root-fs/etc/default.Fritz_Box_2MB/1und1


        # Install busybox links
        ./makelink

Und hier der Inhalt der Tools (busybox vom 24.07.2007)

Code:
linux-ksrq:/tmp/slmod # cd tools/
linux-ksrq:/tmp/slmod/tools # ls -l
total 1344
-rw-r--r-- 1 root  root   5628 Jul 28  2007 ar7login
-rw-r--r-- 1 root  root 404504 Jul 24 21:06 busybox
-rw-r--r-- 1 root  root    766 Jul 24 21:06 busybox.links
-rwxr-xr-x 1 root  root 574860 Jul 30  2006 busybox.old
-rwxr-xr-x 1 guest 1000  13479 Jun  8  2006 find-squashfs
-rw-r--r-- 1 root  root  14104 Jul  8 23:32 libcrypt-0.9.26.so
-rw-r--r-- 1 root  root  14104 Jul  8 23:32 libcrypt.so
-rw-r--r-- 1 root  root  14104 Jul  8 23:32 libcrypt.so.0
-rwxr-xr-x 1 guest 1000  75059 Aug  5  2005 mksquashfs
-rwxr-xr-x 1 root  root    405 Jun 22 22:45 nvi
-rwxr-xr-x 1 guest 1000  10551 Jun 13  2006 recover
-rwxr-xr-x 1 guest 1000   1829 Mar 17  2006 rmtichksum
-rwxr-xr-x 1 root  root 144232 Aug  5  2005 tar
-rwxr-xr-x 1 guest 1000  13347 Aug  5  2005 tichksum
-rwxr-xr-x 1 guest 1000  30872 Oct 20  2006 unsquashfs
linux-ksrq:/tmp/slmod/tools #


Könntest du die letzte busybox nochmal mit "-static-libgcc", wie Olistudent es vorgeschlagen hat kompilieren?

Hat sondt noch Jemand irgend welche Ideen?

Gruß
HS
 
... und ein neuer Versuch ;-) Im Rules.mk der busybox wurde die Zeile CFLAGS um -static-libgcc erweitert.

Mit dem Makefile musst du mal sehen, ob du es nimmst, gegenüber dem anderen habe ich nur die cp -fa Sache drin, damit die Links vom libcrypt als solche erhalten werden und die lib nicht dreimal drin ist, so wie bei dir ;-)

Ach so: Ist das die Box mit der seriellen Schnittstelle? Wäre ja mal interessant, das Hochfahren damit "mitzuschneiden", um eventuelle Probleme zu sehen.

Jörg

EDIT Bezüglich deiner Frage, ob ich noch eine Idee habe: Ja, laut dem ls oben ist die busybox nicht ausführbar (kein x)... Nee, danach kommt ja noch das chmod im Makefile, aber merkwürdig ist es schon, dass die Flags weg sind...
 

Anhänge

  • slmod_20070729.tar.gz
    308.1 KB · Aufrufe: 14
Zuletzt bearbeitet:
GEIL!

Die busybox funzt schonmal super über TFTP und sogar ohne zusätzliche Librarys. Auch der telnetd läuft jetzt auf anhieb.

Allerdings hat die modifizierte Firmware nocht nicht funktioniert.
Leider habe ich an dieser SL Box noch keine serielle Schnittstelle angelötet.
Werd ich aber noch nachholen um zu sehen was da abläuft.

Danke schonmal. Ich meld mich wieder...

Gruß
HS
 
So, hab die Konsole angelötet und liefer euch hier die Ausgabe beim Flashen der modifizierten Firmware:

Code:
Sep  8 14:02:52 firmwarecfg[401]:  /var/run/d                                           
Sep  8 14:02:53 firmwarecfg[401]:  /var/run/multid.pid stopped.                                                               
Sep  8 14:02:54 firmwarecfg[401]:  /var/run/ctlmgr.pid stopped.                                                               
Sep  8 14:02:54 igdd[408]: not running                                      
Sep  8 14:02:54 dsld[409]: not running                                      
Sep  8 14:02:54 multid[410]: not running                                        
Sep  8 14:02:55 cltmgr[411]: not running                                        
Sep  8 14:03:10 firmwarecfg[401]: MakeLanguagePath html=../html tail=flash.html                                                                               
-> ../html/flash.html                     
Sep  8 14:03:12 websrv[276]: Signal: termination                                                
Sep  8 14:03:12 websrv[283]: Signal: termination                                                
Sep  8 14:03:12 websrv[284]:                             
Sep  8 14:03:13 websrv[276]: dyncfg: WARNING LoadLib pAR7CFG_struct changed from                                                                                
 0x2af1c500 to 0x2af20500                         
Starting pid 657, console /dev/tts/0: '/bin/sh'                                               
/var/post_install: start                        
still running:              
  PID  Uid     VmSize Stat Command                                  
    1 root        144 S   init                              
    2 root            SW  [keventd]                                   
    3 root            SWN [ksoftirqd_CPU0]                                          
    4 root            SW  [kswapd]                                  
    5 root            SW  [bdflush]                                   
    6 root            SW  [kupdated]                                    
    7 root            SW  [mtdblockd]                                     
    8 root            SW  [tffsd_                               
  395 root        120 S   init                              
  656 root        200 S   init                              
  657 root        324 S   /bin/sh -c /var/post_install                                                      
  658 root        340 S   /bin/sh /var/post_install                                                   
  670 root        272 R   ps                            
Module                  Size  Used by    Tainted: P                                                   
tiatm                  81464   0 (unused)                                         
avalanche_usb          24608   1                                
avalanche_cpmac        63256   1                                
/var/copy_firmware: copy /var/tmp/kernel.image to /dev/mtdblock/1                                                                 
programming: ...........                        
/var/copy_firmware: write 1310720 0xFF to end of mtd                                                    
/var/copy_firmware: write error 0 errno 28                                          
closing: /dev/mtdblock/1                        
check firmware on: /dev/mtdblock/1 check firmware /dev/mtdblock/1 success /var/c                                                                                
opy_firmware: successful!                         
/var/copy_firmware: copy /var/tmp/filesystem.image to /dev/mtdblock/0           
programming: .....................
/var/copy_firmware: write 0 0xFF to end of mtd
closing: /dev/mtdblock/0
check firmware on: /dev/mtdblock/0 check firmware /dev/mtdblock/0 success /var/c
opy_firmware: successful!
/var/post_install: done
reboot now ...

Und hier der gescheiterte Bootvorgang:

Code:
ADAM2 Revision TI:0.18.01 AVM: Version:97
(C) Copyright 1996-2003 Texas Instruments Inc. All Rights Reserved.
(C) Copyright 2003 Telogy Networks, Inc.
(C) Copyright 2003-2004 AVM

AVM_Ar7 >
Press any key to abort OS load, or wait 5 seconds for OS to boot...
Launching kernel decompressor.
Kernel decompressor was successful ... launching kernel.

LINUX started...
Config serial console: ttyS0,38400
This SOC has MDIX cababilities on chip: HWRevision="F"
AutoMDIX="<unknown>"
MDIX disabled.

Könnt ihr daraus irgend etwas ableiten?
Ist das hier bereits ein Probem: /var/copy_firmware: write error 0 errno 28

Gruß
HS
 
Hi,

könntest du auch mal einen "normalen" Start auf der Konsole mitschneiden? Evt. auch mal ein "normales" Update, um das zu vergleichen?

Ich lese daraus, dass der Kernel gestartet wurde, dann aber was schief läuft. Da fällt mir nochmal auf die Sache mit den Berechtigungen der busybox ein. Fehlen die eventuell auch bei den anderen binarys im root-fs Ordner, so dass die Box nichts starten kann? Unter welcher Umgebung lässt du das Skript denn laufen?

Jörg
 
Hallo Jörg,

ich hab die Ausgabe auch schonmal mit einem funktionierendem Update verglichen. Dort erscheint alles gleich ausser "/var/copy_firmware: write error 0 errno 28"

Ich lass das Script unter einer SuSe10.2 Virtual Machine unter user "root" laufen. Vielleicht fehlt im Makefile noch ein "chmod 777 busybox".

Vor dem linken hat die busybox folgende Berechtigung:

Code:
-rwxr-xr-x 1 root root     42 May  5  2006 ar7cfgchanged
-rwxr-xr-x 1 root root  10220 May  5  2006 ar7cfgctl
lrwxrwxrwx 1 root root      7 Jul 30 02:06 ash -> busybox
-rwxr-xr-x 1 root root 373244 Jul 30 02:06 busybox
lrwxrwxrwx 1 root root      7 Jul 30 02:06 cat -> busybox
lrwxrwxrwx 1 root root      7 Jul 30 02:06 chmod -> busybox
.
.


EDIT: Ich werde das morgen mal neu ausprobieren. Und ausserdem werde ich den slmod auch mal mit der 10.03.73 Firmware erstellen.

Gruß
HS
 
Zuletzt bearbeitet:
Hi,

ich habe mal aus dem Makefile den "Entpackteil" rausgeschrieben. Lass das Script doch mal laufen und sieh dir das Ergebnis an (speziell auf die Ausführbarkeit usw.)

Zumindest bei mir sah es eigentlich o.k. aus: das Firmware-Ergebnis ließ sich zumindest auspacken und sah "sinnvoll" aus ;-)

Jörg
 

Anhänge

  • check_new_fw.sh.gz
    325 Bytes · Aufrufe: 4
Hallo Jörg,

dein script funzt gut und es sieht auch alles gut aus.
Ich hab das makescript jetzt mal mit der Firmware 10.03.73 laufen lassen und die Box mit dem modifiziertem Image geflasht.

Beim Flaschen sieht alles gut aus. Der vorherige Fehler kommt nicht mehr, aber dann, beim Booten der Box blinken alle LEDs und in der Konsole erscheint ein: "File for wrong Endian!"

@Olistudent: Du hattest das doch auch schonmal im Beitrag http://www.ip-phone-forum.de/showthread.php?t=114676
Kennst du die Lösung? Falsches Kernel?

Gruß
HS
 
Zuletzt bearbeitet:
Was hat dein verlinkter Thread damit zu tun? Ich meine, dass das wrong endian damit zusammenhing, dass ich einen "neuen" Kernel (EVA-Format) versucht habe mit einem alten Bootloader zu starten. Mit welchen Firmwares testest du?

MfG Oliver
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.