Freetz für 7390 über Umweg start-freetz.sh nun möglich.

Status
Für weitere Antworten geschlossen.

Jpascher

IPPF-Promi
Mitglied seit
31 Mrz 2007
Beiträge
6,120
Punkte für Reaktionen
0
Punkte
36
Freetz funktioniert nun auch für den 7390.

Auf der selben Basis wie der 7570.


Sicher werden noch weiter Anpassungen Fällig werden aber eine Firmware ohne "replace kernel" lässt sich schon mal patchen.

Die Änderungen die ich in Skript start-fretz.sh vornehme sollte Zukünftig aber direkt bei freetz erfolgen.

Ich hoffe, dass das bald jemand machen wird.
 
Zuletzt bearbeitet:
Hi,

Momentan dürfte nur "Rauspatchen" gehen, da eigene Pakete für "mipsbe" ja nicht übersetzbar sind, oder sehe ich das falsch?

Jörg
 
Zuletzt bearbeitet:
EDIT:

Ich wies nicht ich wünschte ich hätte so viel Erfahrung mit Freetz wie du Jörg, momentan bin ich etwas verwirrt.

Ich sehe derzeit keinen Grund woran es scheitert mit den durty fixis die ich momentan nutze sehe ich die Probleme nicht aber ich kann derzeit leider noch keine vollständigen patch für Freetz anbieten.

Habt ihr zumindest mal die Anpassungen für -be beim auspacken und packen mit reingenommen ich finde dazu noch nirgends ein Ticket im Freetz.

Die beiden folgenden Teile sollten mal als Voraussetzung fürs entpacken und packen in ähnlicher Form ins freetz übernommen werden.

if ! grep -q 'squashfs4' "./tools/make/Makefile.in" ;then
sed -i -e '/TOOLS+=squashfs3/a\
TOOLS+=squashfs4' "./fwmod" 2> /dev/null
fi
#source
rm -fd -R ./source/host-tools/find-squashfs
cp -fdrp $TOOLS_DIR/make/patches/100-lzma.squashfs4.patch --target-directory=./tools/make/patches 2> /dev/null
cp -fdrp $TOOLS_DIR/make/patches/110-allow-symlinks.squashfs4.patch --target-directory=./tools/make/patches 2> /dev/null
cp -fdrp $TOOLS_DIR/make/patches/120-memset-sBlk.squashfs4.patch --target-directory=./tools/make/patches 2> /dev/null
cp -fdrp $TOOLS_DIR/make/patches/150-hide_output.squashfs4.patch --target-directory=./tools/make/patches 2> /dev/null
cp -fdrp $TOOLS_DIR/make/patches/150-hide_output.squashfs4.patch --target-directory=./tools/make/patches 2> /dev/null
cp -fdrp $TOOLS_DIR/make/squashfs4.mk --target-directory=./tools/make 2> /dev/null
cp -fdrp $TOOLS_DIR/source/find-squashfs.tar.bz2 --target-directory=./tools/source 2> /dev/null
if ! grep -q 'FREETZ_FUSIV' "./fwmod" ;then
sed -i -e '/# Dot-include .modpatch. shell function/i\
if [ "$FREETZ_FUSIV" == "y" ]; then\
UNSQUASHFS_TOOL="unsquashfs4-lzma"\
MKSQUASHFS_TOOL="mksquashfs3-lzma"\
MKSQUASHFS_OPTIONS="-be -noappend -all-root -info -no-progress -no-exports -no-sparse"\
echo " Fusiv is selected"\
fi' "./fwmod" 2> /dev/null
fi

Derzeit scheinen mir im Freetz diese Kernel Konfigurationsparamer zu fehlen.


> CONFIG_FUSIV_BMDRIVER=m
CONFIG_FUSIV_ENABLE_AP_MBUF=y
CONFIG_FUSIV_ENABLE_MBUF_AP=y
CONFIG_FUSIV_KERNEL_ACL=m
CONFIG_FUSIV_KERNEL_ACL_SPA=y
CONFIG_FUSIV_KERNEL_AP_2_AP=m
CONFIG_FUSIV_KERNEL_ATM=m
CONFIG_FUSIV_KERNEL_BME_DRIVER_VX180=m
CONFIG_FUSIV_KERNEL_ETHERNET=m
CONFIG_FUSIV_KERNEL_HOST_IPQOS=m
CONFIG_FUSIV_KERNEL_IGMP_SNOOP=m
CONFIG_FUSIV_KERNEL_IPQOS_APQOS=y
CONFIG_FUSIV_KERNEL_IPQOS_DEBUG_LOG=y
CONFIG_FUSIV_KERNEL_IPQOS_STATISTICS=y
CONFIG_FUSIV_KERNEL_IPQOS_TC_MAPPING=y
CONFIG_FUSIV_KERNEL_IPQOS_TC_MARKING=y
CONFIG_FUSIV_KERNEL_IPQOS_TC_PRIORITY_CONVERSION=y
CONFIG_FUSIV_KERNEL_IPQOS_TRAFFIC_SCHEDULER=y
CONFIG_FUSIV_KERNEL_MONIF=m
CONFIG_FUSIV_KERNEL_PERI_AP=m
CONFIG_FUSIV_KERNEL_POLICY_VLAN=m
CONFIG_FUSIV_KERNEL_VX180_AVDSL=m
CONFIG_FUSIV_KERNEL_WLAN_ATH_11N=y
CONFIG_FUSIV_KERNEL_WLAN_RT_11N=m
CONFIG_FUSIV_LIBRARY=m
CONFIG_FUSIV_TIMERS=m
CONFIG_FUSIV_VX180_WRITE_BACK=y
CONFIG_IGMP_SNOOP_AP_SUPPORT=y

CONFIG_MIPS_FUSIV=y

CONFIG_UBIK2=m
CONFIG_UBIK2_DEVELOPMENT_SUPPORT=0
 
Zuletzt bearbeitet:
Bedeutet dies auch einen Fortschritt für den W722V?
 
Ja schon.

Es ist derzeit ein Schritt in die Richtung, es wird schon noch einige Zeit dauern da zumindest ich für einige Wochen ausfalle daran weiterzuarbeiten. Ich bin aber sehr optimistisch, dass nicht nur die neuen AVM Modelle sondern auch die neuen AVM OEM Speedports im Freetz einen fixen Platz bekommen.
 
Hi,

Momentan dürfte nur "Rauspatchen" gehen, da eigene Pakete für "mipsbe" ja nicht übersetzbar sind, oder sehe ich das falsch?

Jörg

Freetz oder irgend eine alternative zum bauen eines neun Kernels.
Nein siehst du nicht falsch!

Meine anfängliche Euphorie ist wieder geschwunden nachdem ich leider bestätigen muss, dass sich die original Quellen die AVM bereit stellt auch von mir nicht fehlerfrei Übersetzen lassen.

Es fehlen irgendwelche Teile auch im W722 Sourcecode.
Das beginnt eigentlich schon wenn man sich an das Original hält und die fehlenden Makefiles zu ergänzt versucht, fehlen bereits für den CCG passende Headerfiles, ähnliche gibt es in den Quellen der AVM Media aber die produzieren Fehlermeldungen.

Der CCG Compiler lässt sich mit den Einstellungen die der fusiv braucht auch nicht mit freetz bauen, auch wenn ich alles anpasse was meines Erachtens notwendig ist.


Hier mal einige Schnippel aus den original AVM W722 Sourcen die ich auffällig und abweichend finde:

Top GCC Makefile:
ifeq ($(TARGET_CPU),ikanos)
include Makefile.ikanos
ENDIAN := big
endif
#Pfade zum Halten temporärer Dateien
BUILD = build-$(TARGET_CPU)
GMP = ./$(BUILD)/gmp
GMP_VER = 4.2.2
MPFR = ./$(BUILD)/mpfr
MPFR_VER = 2.3.0
BINUTILS = ./$(BUILD)/binutils
BINUTILS_VER = 2.19.50
GCC =./$(BUILD)/gcc
GCC_VER =3.4.6
SOURCE =./source
PATCH =./patches


#Wichtig!!! Postinstall
echo -e "$(ECHO_GRUEN)[GCC::binutils_postinstall]$(ECHO_END)"
rm -f `find $(PREFIX)/$(TARGET) -name assert.h ` # Achtung, diese Datei ist für unseren Crosscompiler nicht
# wichtig kann aber schwer nachzuvollziehende Fehler
# verursachen. Daher wird sie immer gelöscht.

#----------------------------------------------------- ALLGEMEIN --------------------------------------------------------

all: prepare tmp-$(TARGET_CPU)-gcc tmp-$(TARGET_CPU)-gdb
echo -e "$(ECHO_GRUEN)[GCC::all]$(ECHO_END)"
ifeq ($(TARGET_CPU),ikanos)
( export TARGET_CPU=
xtensa ; make all )
endif


prepare:
echo -e "$(ECHO_GRUEN)[GCC::prepare]$(ECHO_END)"
#hier werden die Verzeichnisse angelegt in denen die Sourcen ausgepackt und bearbeitet werden.
if [ ! -d $(GCC) ] ; then \
mkdir -p $(GCC) $(GMP) $(MPFR) $(BINUTILS) ; \
fi

if [ ! -d $(SOURCE) ] ; then \
mkdir -p $(SOURCE) ; \
fi

clean:
echo -e "$(ECHO_GRUEN)[GCC::clean]$(ECHO_END)"
#Es werden alle neu angelegten Verzeichnisse und Dateien entfernt
...
ifeq ($(TARGET_CPU),ikanos)
( export TARGET_CPU=xtensa ; make clean )
endif

Makefile.ikanos:
patch -d $(SOURCE)/gcc-$(GCC_VER) -p1 <$(PATCH)/kkw_gcc_info_patch ;\
patch -d $(SOURCE)/gcc-$(GCC_VER) -p1 <$(PATCH)/uclibc_patch_g++ ;\


TARGET=xtensa-elf
Andere Quellen:
#xtensa*-*-linux*
##http://kernel.xc.net/html/linux-2.6.30/xtensa/
#This target is for Xtensa systems running GNU/Linux. It supports ELF shared objects and the GNU C library (glibc). It also generates position-independent code (PIC)
#regardless of whether the -fpic or -fPIC options are used. In other respects, this target is the same as the `xtensa*-*-elf' target.

#http://gcc.gnu.org/onlinedocs/gcc-3.4.6/gcc/MIPS-Options.html#MIPS-Options
#3.17.10 MIPS Options

-EB
# Generate big-endian code.
-EL
# Generate little-endian code. This is the default for `mips*el-*-*' configurations.
Alle ähnlichen Projekte ich ich durchsucht habe besitzen derzeit keine Unterstützung für "fusiv" oder "ikanos" auch buildroot nicht.

xtensa ist teilweise anzutreffen.

Die AVM mediaquellen besitzen eine etwas andren Aufbau und basieren auf buildroot und einer "arm926" CPU. Sind wesentlich vollständiger und lassen sich auch relativ gut Compilieren, zumindest weiter als die vom W722, ohne das man dazu Freetz oder andere Projekte bemühen muss.

Eigentlich sollte AVM vollständige Quellen für den W722 und 7390 bereitstellen und zumindest vermerken welche Teile fehlen.

So endet die Sache derzeit nur in Frustration!


Es bleibt somit derzeit nur die einleitend beschriebene Möglichkeit und die ist ja nur eine Anfang.
 
Zuletzt bearbeitet:
Mal auf die Schnelle, wie ich den Kernel-gcc aus den W722V-Quellen gebaut habe:

Code:
mkdir kernel_gcc
cd kernel_gcc/
tar xvzf ../GPL-gcc.tar.gz

mkdir source

#hiermit konnte ich die diversen  Fehler zusammen beheben (C-Compiler reicht für den Kernel):
# "Heikel" waren z.B. die fehlenden uClibc-includes, die ich einfach aus dem freetz-Buildordner rüberkopiert hatte
# ein paar Dinge könnten mit einem GCC 3.4 oder ohne 64-Bit-System überflüssig sein

mkdir -p ../archiv/tmp--uclibc/usr/include
cp -pr ~/freetz-trunk/toolchain/target/usr/include/* ../archiv/tmp--uclibc/usr/include/
sed  -i '/Konfiguration der binutils/ a\\tsed -i -e 's/getline/get_line/' $(SOURCE)/binutils-$(BINUTILS_VER)/libiberty/testsuite/test-demangle.c ' Makefile
sed -i '/enable-languages/ s/,c++//' Makefile.ikanos
sed  -i '/uclibc_patch/ a\\tsed -i "s/O_CREAT/O_CREAT, S_IRUSR | S_IWUSR/" $(SOURCE)/gcc-$(GCC_VER)/gcc/collect2.c ;\\' Makefile.ikanos
sed  -i '/uclibc_patch/ a\\tsed -i -e 's/getline/get_line/' $(SOURCE)/gcc-$(GCC_VER)/libiberty/testsuite/test-demangle.c ;\\' Makefile.ikanos
sed -i '/able-shared/ s/enable/disable/' Makefile.ikanos

export TARGET_CPU=ikanos
make

Jörg
 
Danke für den patch!

Ist ungefähr das selbe was ich gemacht habe, nur hab ich die falschen header verwendet, da ich die aus der media genommen habe.

EDIT:

Komme leider auch mit deinen patch genau an die selbe Stelle wie vorher.

../../.././source/gcc-3.4.6/gcc/stdlib.h:271: error: syntax error before "__locale_t"
../../.././source/gcc-3.4.6/gcc/stdlib.h:272: warning: function declaration isn't a prototype
make[2]: *** [crtbeginT.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: *** [crtbegin.o] Error 1
make[2]: *** [crtend.o] Error 1
make[2]: *** [crtendS.o] Error 1
make[2]: *** [crtbeginS.o] Error 1
make[2]: Leaving directory `/mnt/suse/home/freetz/Desktop/src_722/GPL-gcc/build-ikanos/gcc/gcc'
make[1]: *** [all-gcc] Error 2
make[1]: Leaving directory `/mnt/suse/home/freetz/Desktop/src_722/GPL-gcc/build-ikanos/gcc'
make: *** [real_tmp-ikanos-gcc] Error 2
Press any key to continue...

EDIT2:

Hab es erneut probiert, alles gelöscht und nochmal durchlaufen lassen, diesmal hat es dann nachdem ich beim dritten Anlauf die doppelten adds im Makefile entfernt habe geklappt.
 

Anhänge

  • compile.log.gz
    49.1 KB · Aufrufe: 3
Zuletzt bearbeitet:
gibt es schon weitere Fortschritte?
 
... gerade gibt es neue Sourcen zur .83-er Version. Ich hoffe, mit denen kommt man weiter. Leider habe ich am WE schon eine Menge Termine.

Jörg
 
Moin,

sind die aktuellen Entwicklungsschritte bezüglich der 7390 im Download verfügbar? Ich würde mich der Sache aus gegebenem Anlass in den nächsten Tagen mal annehmen. ;)
 
Hi,

meine 7390 ist nun auch gekommen. Bin diese Woche noch auf Schulung, würde
aber ebenfalls gerne mithelfen bei Freetz für 7390. Leider hab ich noch nicht allzuviel zu dem Thema gefunden. Also wenn jemand schon ein Zip File hat mit dem man loslegen kann wäre das ja super ;-)

Wenn ich der 100. bin der das fragt, so bitte ich gleich um entschuldigung :-(

Aber Freetz ist einfach genial und möchte es nicht mehr missen, daher taugt die 7390 erst mit Freetz als ersatz für meine 7270 ;-)
 
Also, momentan ist es (zumindest mir) noch nicht gelungen, den Kernel zu übersetzen. Das wäre aber für mich der erste Schritt. Mit passendem Mips-Compiler (BigEndian) lassen sich zwar schon Binaries erstellen, aber ohne eine komplette Toolchain und die entsprechenden Libraries käme man wohl nur mit statisch gebauten Programmen weiter.
Ich hatte mit AVM schon Kontakt aufgenommen und man hat mir "glaubhaft versichert", dass man die Kernelsourcen überarbeiten werde, so dass ein Build möglich sein soll...
Ich hatte letztes WE mal etwas getüftelt und war mit dem Kernel schon mal deutlich weiter gekommen, als beim letzten Mal. Ich hänge demnächst mal ein kleines "Tagebuch" der Schritte und Ergebnisse an, bin gerade nicht an dem Rechner...

Jörg
 
Moin,

ja super. Allerdings habe ich gehoft, dass gänze wäre schon etwas weiter :-(
Hat sich mit der 83er Firmware noch nix gebessert?

Also wenn ich dir irgendwie helfen kann, sag einfach bescheid. Würde mich freuen.

Jens
 
Du könntest den Devs deine Box zur Verfügung stellen ;-)
 
Das bringt auch nix, wie wir im Falle der 7570/W920V gesehen haben.

Happy computing!
R@iner
 
Ja das hab ich mir schon fast gedacht, dass es nix bringt.
Wenn es reicht die Box über IP zu verfügung zu stellen, können wir da bestimmt drüber reden ;-)

Was immer geht ist ja für ein paar Wochen eine bei Amazon zu bestellen und anschließend zurück schicken. Muss man halt die 270 ¤ auslegen.

Das einspielen von Images zum testen ist natürlich kein Problem, ebenso welche zu bauen.
So ist halt die Frage ob man schon soweit ist, dass man testläufe machen kann.

Was ich bis jetzt noch nicht weiß, ist ja was kann den die Box schon alles von Haus aus, z. B. im Punkt von VPN.

Jens
 
Die Frage soll bitte im entsprechende Beitrag gestellt werden, hier geht es um freetz auf der 7390.

Tests können gemacht werden aber ein vernünftiges Ergebnis kommt dabei noch nicht heraus.

Derzeit sollten sich nur Leute damit beschäftigen die eher als Linux Gurus wirklich was beitragen könne um weiter zu kommen.

Die Zeit für spezielle Tests ist noch nicht angebrochen.

Mit speed-to-fritz und möglichen anschließenden freetz kann derzeit einiges ohne "replace kernel" an der Firmware verändert werden und die resultierende Firmware wird je nach Änderung auch wieder funktionieren.
Echt brauchbare Beispiele gibt es aber leide kaum da wir ein "replace kernel" brauchen um die Voraussetzungen für echte Verbesserungen zu haben.

Wir warten auf neu GPL Sourcen von AVM für den 7390 und den W722.

Sehr interessant ist folgender Beitrag der einen andern Weg beschreitet.

Weiter dürfte in Zukunf auch dieser Beitrag bezüglich Freetz interessant werden.
 
Zuletzt bearbeitet:
Habe im letzten Betrag einige Zeilen eingefügt.
Das folgende sieht sehr gut aus, scheint man kann da mal was für freetz daraus übernehmen.

Von robert_s
1. Get Buildroot from http://buildroot.uclibc.org, unpack and rename directory to *-mips
2. Run "make menuconfig" and set:
- Target Architecture to (mips)
- Target Architecture Variant to (mips32r2)
- Build options -> gcc optimization level to (optimization level 3)
- Toolchain -> GCC compiler Version to (gcc 4.4.x)
3. Run "make"
4. Create a shell script which
- adds (buildroot directory)/output/staging/usr/bin to $PATH
- sets $CC to mips-linux-gcc
- sets $CFLAGS to "-O3 -march=24kec -mips16 -mdsp"
- sets $CONFIG to "--host=i686 --target=mips"
- runs bash
5. Run the shell script before building packages or compiling sources individually
6. To build a packet with a configure script, run: "./configure $CONFIG", then "make"
7. To compile something directly, run: "$CC $CFLAGS <options> <sources>"
.config und start.sh angehängt!


Momentan zu wenig Zeit zum probieren, Crosscompiler Toolchain wurde aber mal erstellt.

7390 verwendet jedoch eine ältere uClib und möglich, dass noch weitere Einstellungen optimiert werden müssen.
 

Anhänge

  • .config.gz
    4 KB · Aufrufe: 5
  • start.sh.gz
    419 Bytes · Aufrufe: 9
Zuletzt bearbeitet:
Hallo, könnte mir bitte einer von euch eine step by step-Anleitung geben, Ubuntu benötige und wie ich vorgehen muss.
Ich würde die 7390 gern als mailserver nutzen!
Danke für die Mühen
 
Status
Für weitere Antworten geschlossen.
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.