Es geht: FBF ohne dsld aber mit DSL

Statusupdate

Hier vorm Urlaub mal mein Status:

Um die Größe des Images noch etwas kleiner zu bekommen habe ich jetzt folgenden Ansatz:

Der rausgepatchte multid wird "ersetzt" durch die Busybox-Tools "brctl" und "udhcpd" (deutlich kleiner als die bridge-tools und dnsmasq), die Config wird aus der ar7.cfg generiert, Unterschied ist, dass die Box als DNS den "echten" ProviderDNS weitergibt. Für "dyndns.org" wird beim Aufbau der DSL-Verbindung per wget der Name aktualisiert (Daten auch aus ar7.cfg).

Durch die Möglichkeit auf inadyn, dnsmasq und die bridge-utils verzichten zu können brauche ich zusätzlich zu den benötigten Paketen pppd und br2684ctl (und der größeren Busybox) nur noch iptables. Wenn ich das mit GUI wähle, habe ich eine resultierende Imagegröße die immerhin noch 30k kleiner ist ;-)

"Original:"
Code:
replacing busybox
  replacing busybox-4mb_26
  installing symlinks
replacing kernel
  replacing kernel-4mb_26-04.49 (iln6)
  installing modules
  generating modules.dep
installing packages
  dropbear-0.51
  openvpn-2.1_rc7
  haserl-0.9.24
  modcgi-0.2
invoking custom script
done.

STEP 3: PACK
  Checking for left over Subversion directories
squashfs blocksize
  root filesystem: 65536
packing var.tar
creating filesystem image
merging kernel image
  kernel image size: 3758848 (max: 3866624, free: 107776)
packing 300ip_as_fon_04.49-freetz-devel-2371M.en_20080710-104209.image
done.

"Remove dsld + remove multid + iptables mit GUI"
Code:
replacing busybox
  replacing busybox-4mb_26
  installing symlinks
replacing kernel
  replacing kernel-4mb_26-04.49 (iln6)
  installing modules
    arc4.ko
    sha1.ko
    ppp_deflate.ko
    ppp_mppe_mppc.ko
    slhc.ko
    pppoe.ko
    pppox.ko
    ppp_generic.ko
    ppp_async.ko
    crc-ccitt.ko
    ipt_state.ko
    ipt_multiport.ko
    ipt_MASQUERADE.ko
    iptable_filter.ko
    ipt_iprange.ko
    ipt_REDIRECT.ko
    iptable_nat.ko
    ip_conntrack.ko
    ipt_mac.ko
    ipt_LOG.ko
    ip_conntrack_ftp.ko
    ip_tables.ko
  generating modules.dep
installing packages
  iptables-cgi-1.0.4
  dropbear-0.51
  pppd-2.4.4
  openvpn-2.1_rc7
  br2684ctl-20040226
  haserl-0.9.24
  modcgi-0.2
  pppoedsl-1_alpha
invoking custom script
done.

STEP 3: PACK
  Checking for left over Subversion directories
squashfs blocksize
  root filesystem: 65536
packing var.tar
creating filesystem image
merging kernel image
  kernel image size: 3730176 (max: 3866624, free: 136448)
packing 300ip_as_fon_04.49-freetz-devel-2371M.en_20080710-105423.image
done.

Bliebe noch als Frage, warum das Bauen der Busybox mich nun nach einem Config-Parameter beim udhcpc (also beim Client, den ich garnicht gewählt habe) fragt und wie ich aus dem freetz-Lauf einen Busybox Configparameter (CONFIG_DHCPD_LEASES_FILE=) setzen kann...

Vielleicht findet sich ja noch ein Mutiger, der es auch mal auf einer anderen Box wagt...


Jörg
 
Du kannst in make/busybox/Config.in Optionen für die Busybox-Konfiguration einpflegen. Entsprechend müssen diese dann in make/busybox/busybox.mk im Target $(BUSYBOX_CUSTOM_CONFIG_FILE) mit aufgelistet werden. Die können dann als Abhängigkeit ausgewählt werden (aber wie üblich werden die wohl nicht mehr automatisch deselektiert, schätze ich).

Gruß, Nico
 
Hi Nico,

danke für die Info, das hatte ich schon so gesehen (und auch für brctl und udhcpd so gemacht), habe das Ganze aber wohl noch nicht soweit durchdrungen, dass ich das mit einem String hinbekommen habe. Schaue mir das gerade nochmal in den anderen "Config.in"s an...

Jörg
 
Ja, das sollte ja ganz analog gehen. Also Zuweisung ist eh klar, der Parameter muss halt ein String sein, aber solche bietet das Config.in ja auch.
 
So, habbich ;-)

Noch eine Frage: Ich musste "PKG_EDIT_CONFIG" verändern, weil ich sonst keine Pfade übergeben kann (ich habe keine Lust die "nur wegen sed" als \/var\/tmp... zu schreiben) und zwar wir folgt:

Code:
--- make/Makefile.in    (Revision 2371)
+++ make/Makefile.in    (Arbeitskopie)
@@ -132,7 +132,8 @@
 # PKG_EDIT_CONFIG
 # update a config file
 #   $(1) = list of assignments CONFIG_VAR=value
-PKG_EDIT_CONFIG__INT0 = -e 's/^(\# )?($1)[ =].*/$(if $(patsubst n,,$2),\2=$2,\# \2 is not set)/g'
+#PKG_EDIT_CONFIG__INT0 = -e 's/^(\# )?($1)[ =].*/$(if $(patsubst n,,$2),\2=$2,\# \2 is not set)/g'
+PKG_EDIT_CONFIG__INT0 = -e 's%^(\# )?($1)[ =].*%$(if $(patsubst n,,$2),\2=$2,\# \2 is not set)%g'
 PKG_EDIT_CONFIG__INT1 = $(call PKG_EDIT_CONFIG__INT0,$(word 1,$(subst =, ,$1)),$(word 2,$(subst =, ,$1)))
 PKG_EDIT_CONFIG = $(SED) -i -r $(foreach asg,$1,$(call PKG_EDIT_CONFIG__INT1,$(asg)))

Kann man das generell so übernehmen oder wird % sonstwo für benötigt? Oder gibt es einen Trick zur Übergabe von Pfadnamen?

Danke und Grüße

Jörg

PS: Die blöde Busybox-Meldung "DHCP options slack buffer size (UDHCPC_SLACK_FOR_BUGGY_SERVERS) [80] (NEW)" ist mir nicht klar, da habe ich doch nix verändert, warum fragt er das nun???
 

Anhänge

  • svndiff_20080710_02.gz
    1.9 KB · Aufrufe: 11
  • pppoedsl.tgz
    5 KB · Aufrufe: 15
Du musst "make busybox-menuconfig" machen, dann wird die Änderung auch nach make/busybox/*config* geschrieben.

MfG Oliver
 
Die Configs sind ja da, auch ein "make busybox-menuconfig" hatte ich gemacht. Ich habe jetzt den Default-Wert "80" in die "Config.4mb_26" an der entsprechenden Stelle eingetragen, dann fragt er nimmer ;-) . Das merkwürdige ist ja, dass der Parameter eigentlich "unter" dhcpc liegt und ich den garnicht gewählt habe (zumintest haben wollte?!?)

Wenn ich per "make busybox-menuconfig" udhcpd auswähle, dann kommt die Frage nicht, nur wenn ich es über meinen Eintrag im Freetz-Busybox-Menu versuche. Irgendwie ist das was ich da "gebastelt" habe scheinbar noch nicht so ganz richtig :(

Jörg

EDIT Das ist aber bei anderen Dingen auch so: Wenn ich im Freetz less anwähle, dann will er die Zeilenzahl bestätigt haben (obwohl in der Config.4mb_26 "CONFIG_FEATURE_LESS_MAXLINES=9999" drin ist). Ist das vielleicht ein Fehler bei mir?
 
Zuletzt bearbeitet:
Ich glaube der Fehler liegt bei Dir. Ich habe less ausgewählt, und musste nie irgendwas bestätigen oder eingeben.
 
Die Idee, propriätere Teile zu ersetzen finde ich super! Vor allem wäre es meines erachtens sehr schon, wenn man ganz weg von der AVM-Firmware gehen könnte und dann z.B. auch VOIP ausschließlich mittels Asterisk zu realisieren. Ich vermisse z.B. auf der alten Fritzbox wlan fon (classic) die Möglichkeit, ein VOIP-Gespräch aufs Festnetz zu leiten. Außerdem supported ja AVM die alte Box nicht mehr, das Problem wäre dann auch passe. Daneben wurde ja letzte Woche ein Bug im DNS gefunden. Wenn die Box die Adresse des Original-DNS weitergibt, wär man diesbezüglich auch fein raus.
Als Testgerät kann ich in den nächsten Monaten diese Box anbieten. Ich werd mir dann eine 7270 zulegen und die alte wird frei für solche Spielereien.
Ich finde eure Aktiviäten auf jeden Fall toll. Gibts eigentlich eine Kurzinfo, was genau mit Freetz so möglich ist? Ich hatte das Ding zum letzten Mal in der Hand, als es noch Dani-Sahne-Mod hies. Ist schon eine Weile her.
 
Hi.
Es gab hier in den letzten Tagen mal einen Thread in dem die Möglichkeiten aufgezählt wurden.
Leider wird es wohl nie möglich sein eine AVM-freie Firmware zu bauen, da wir keinen Treiber für den Telefonie-Teil der Box haben.

MfG Oliver
 
Hi !

Schau mal ob du mit diesem Changeset was anfangen kannst?

br2684 ist bei mir fest im Kernel drin. Da sollte es kein Modul brauchen.

MfG Oliver

Das ist das Problem bei 7170 und W900V sagt die Konfig aus den AVM/T-Com Sourcen das br2864 fest im Kernel ist. Debugt man dies mit den ATM-Utils aus OpenWrt stellt man fest, das br2864 Ethernet over ATM nicht supportet wird (strace ENOSUPP oder so aehnlich.)

Kompiliert man das Feature ohne Replace Kernel als Modul (getetstet auf W900V) und läd es von Hand funktioniert es.

Ergo kein "replace kernel" notwendig.

cya
 
Hi abraXxl,

ich brauchte zumindest für den pppd ein "replace Kernel" sonst gab es Fehlermeldungen...

Ich habe erst jetzt gesehen, dass du das schon länger fast genau so am laufen hattest und ich das nach"erfunden" hatte ;). Wenn ich das richtig sehe, hast du eigentlich den anderen Ansatz gewählt und die AVM-Sachen ins OpenWRT hineinintegriert?
Ich bin ja weiter am "Suchen", was sonst noch so "über" ist: Braucht man eigentlich neben "telefon" noch andere Sachen? Speziell den "ctlmgr", z.B. wenn ich die WebGUI nicht nutzen will?

Momentan ärgert mich bei meinem Ansatz noch die "AVM-Webintegration". Ich mache das momentan so, dass die ar7.cfg ausgelesen wird und mit den Werten dsl (ATM- und User-Parameter), Interfaces (IPs und Bridging) usw. eingerichtet wird. Deshalb sind die Parameter noch immer in der AVM-GUI zu konfigurieren. Ich bin eigentlich hin- und hergerissen, wie es "richtig" wäre:
Bei AVM (WebIF und ar7.cfg) zu bleiben heißt z.B. im positiven auch sowas wie Rücksetzen ("Werksreset") funktioniert noch.
Andererseits ist die komplette "ar7.cfg" plus die ganzen WebSeiten hauptsächlich platzfressend, das sollte auch einfacher und kompakter gehen, zumindest voipd z.B. benutzte noch die libar7cfg.

Hast du bei dir die gesamte Konfig auch über OpenWRT laufen, sind da die nvram-Sachen mit drin?

Jörg
 
Ideal wäre natürlich eine Lösung, die auf möglichst viel von AVM verzichtet. Dann müssten aber zumindest der Wesentliche Großteil der Funktionalität auch ohne die AVM-Sachen abzubilden sein.
 
ole !

ich brauchte zumindest für den pppd ein "replace Kernel" sonst gab es Fehlermeldungen...
Was fuer Fehlermeldungen? Ich vermute nur, dass kein ppp/pppoX/shlc, usw Support im Kernel ist.

Da mein Kamikaze/OpenWrt auf nenm USB Root liegt und ich mehr Module/Features haben wollte, habe ich via make kernel-menuconfig alles an Modulen eingschaltet, was ich ohne gewisse Strukturen (struct skbuff ist gefährlich) im Kernel zu verändern, anschalten konnte.
(Anm. derzeit nutze ich replace Kernel es hat aber auch schon mit r2112 und r2250 ohne replace Kernel gefunkt.)

Dannach habe ich Freetz mal den Kernel durchbauen lassen und habe mir alle *.ko-Files aus dem Kernel-Tree nach /lib/modules/`uname -r`/kernel auf der Box kopiert.

Wenn folgende Module geladen sind, klappt pppd mit pppoe.
Code:
# lsmod
[...]
br2684                  7952  0
[...]
pppoe                  11584  2
pppox                   2576  1 pppoe
ppp_generic            28736  6 pppoe,pppox
slhc                    7040  1 ppp_generic
[...]

Ich habe erst jetzt gesehen, dass du das schon länger fast genau so am laufen hattest und ich das nach"erfunden" hatte ;). Wenn ich das richtig sehe, hast du eigentlich den anderen Ansatz gewählt und die AVM-Sachen ins OpenWRT hineinintegriert?
Ja, ich habe ein rootfs fuer mipsel Linux 2.6 erstellt, z.B. AsusWL500gP, und dies via USB-Root on Demand als USB-Root gestartet.

Nach dem ich das Netz am laufen hatte, cpmac0 in ein Brücke geworfen, konnte ich anfangen
die avm/freetz Skripte aus /etc/init.d/rc.* fuer Multid, WLAN, DSL anzupassen.

Danach habe ich
Code:
# ls /*bin/*changed
/bin/ar7cfgchanged   /bin/dhcpcipchanged  /bin/onlinechanged   /bin/usbhostchanged  /bin/voipcfgchanged  /bin/wlancfgchanged
Angefasst um die AVM binary-only Tools auf die Openwrt init-Struktur anzupassen.

Ich bin ja weiter am "Suchen", was sonst noch so "über" ist: Braucht man eigentlich neben "telefon" noch andere Sachen? Speziell den "ctlmgr", z.B. wenn ich die WebGUI nicht nutzen will?
voipd fuer Voip?
dsl_info hat sich als nützlich erwiesen.
/lib/libcapi*

Aber schau mal im Anhang unter romlink.tar (Unter /rom liegt bei mir das Flash Squashfs).
Meine Angepassten init-skripte sind in etc-init.d.tar.

Momentan ärgert mich bei meinem Ansatz noch die "AVM-Webintegration". Ich mache das momentan so, dass die ar7.cfg ausgelesen wird und mit den Werten dsl (ATM- und User-Parameter), Interfaces (IPs und Bridging) usw. eingerichtet wird. Deshalb sind die Parameter noch immer in der AVM-GUI zu konfigurieren. Ich bin eigentlich hin- und hergerissen, wie es "richtig" wäre:
Bei AVM (WebIF und ar7.cfg) zu bleiben heißt z.B. im positiven auch sowas wie Rücksetzen ("Werksreset") funktioniert noch.
Andererseits ist die komplette "ar7.cfg" plus die ganzen WebSeiten hauptsächlich platzfressend, das sollte auch einfacher und kompakter gehen, zumindest voipd z.B. benutzte noch die libar7cfg.
Sobald du ein AVMtool nutzt brauchst du die ar7.cfg. Also die Devicefiles. /etc/init.d/avm.tffs und /etc/init.d/avm.freetz in etc-init.d.tar.

Ich habe alles was die Netzkonfig angeht, nicht mehr steuerbar via AVM-WebIf, nur noch ISDN, ... usw. Wird via Webif gemacht.
Das möchte ich in ferner Zukunft evtl. via Asterisk machen.

Hast du bei dir die gesamte Konfig auch über OpenWRT laufen, sind da die nvram-Sachen mit drin?
nvram ist seit Kamikaze out, es heist jetzt uci und die Dateien liegen unter /etc/config.
Fuer nvram also nein, fuer uci ja.
Das Nutzen des uci Interfaces ermöglicht evtl eine Nutzung der X-WRT-Weboberfläche für den Kram.

hoffe helfen zu können.

cya
 

Anhänge

  • etc-init.d.tar
    95 KB · Aufrufe: 8
  • romlink.tar
    15.5 KB · Aufrufe: 7
  • avm-functions.sh.gz
    327 Bytes · Aufrufe: 6
Zuletzt bearbeitet:
Was fuer Fehlermeldungen? Ich vermute nur, dass kein ppp/pppoX/shlc, usw Support im Kernel ist.
Ich habe momentan das "Problem", dass ich im Urlaub bin und nur begrenzten UMTS Zugriff habe und auch meine ersten Versuche schon recht lange her sind....
Ich bekam wenn ich nur die ppp und pppoX Module gebaut hatte beim Aufruf des pppd Fehler (welche weiß ich nimmer), die ich dann hier im Forum wiederfand mit dem Hinweis "replace Kernel". Das habe ich gewählt und mit ansonsten gleicher Konfig hatte es dann funktinoiert (das ist aber auch abhängig von der Harware bzw. der jeweiligen Firmware, denke ich)....

hoffe helfen zu können.
Sicher, ich kann aber (s.o.) erst später genauer da reinsehen. Mein "Fernziel" wäre eigentlich, wenn möglich nur noch "telefon" als AVM Binary drin zu haben. Ich habe mal als ersten Ansatz mit "ldd" nach libar7cfg.so gesucht und die entsprechenden Binaries denke ich könnte man wohl verschmerzen oder ersetzen. Und telefon war zum Glück nicht mit dabei ;-)

Jörg
 
Hi !

Ich habe momentan das "Problem", dass ich im Urlaub bin und nur begrenzten UMTS Zugriff habe und auch meine ersten Versuche schon recht lange her sind....
Wenn du wieder im Lande bist koennte man sich evtl nochmal jkurzschliessen, evtl. kann man was sinnvolles fuer Freetz oder oder OpenWrt draus machen.

cya
 
[Edit frank_m24: Mehrere Beiträge innerhalb weniger Minuten zusammengefasst. Man kann seine Beiträge auch editieren. Lies noch mal die Forumregeln.]
Hallo zusammen, ich hätte das pppoe-Package auch gern mal getestet und hab das pppoedsl.tgz in meinem freetz-Verzeichnis entpackt. Unter make menuconfig tauchts aber nicht auf, was hab ich übersehen?

Danke & CU
Floe

[Beitrag 2:]
Ja, da hatte ich wohl Tomaten auf den Augen und den Patch übersehen. Ich pass den mal fürs aktuelle SVN an..

[Beitrag 3:]
So, patcht wieder mit aktuellem SVN. Werds morgen mal auf meinem Speedport W900V testen..
 

Anhänge

  • svndiff_20080912.gz
    1.3 KB · Aufrufe: 13
Moin,

bei mir stellt sich momentan die Frage nach einem ordentlichen NAT, wenn man auf den pppd umsteigt, da man ja die Firewall mit iptables nachbilden muss.

Mein letzter Stand ist, dass es im ip_conntrack modul einen Bug gibt der die Box zum Absturz bringt. Hab ihr dafür inzwischenen einen Fix oder Workaround?

--
Schwigi
 
Ich nehme an, dass die Box nicht abstürzt, wenn die AVM-Komponenten nicht mehr genutzt werden. Falls du dich mit iptables auskennst und etwas Zeit hast wäre es super, wenn du das mal ausprobieren könntest?

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.

IPPF im Überblick

Neueste Beiträge