FAX-programm auf 7170?

Status
Für weitere Antworten geschlossen.
Hm, hat sich schon erledigt, hab sie in den AVM sourcen gefunden.. in den tools_target_build
hatte sie vorher irgendwo aus den kernel sourcen.. im avmb1 verzeichnis

mit dynamischen linken gehts nicht, da gibts mittendrin einen SEGV, ganz unerklärlich, bei einem normalen funktionsaufruf von t4_rx_init ... keine AHnung warum. statisch gelinkt geht alles gut, auch mit der AVM capi lib.

Hier ist mal wieder ein neus binary, diesmal alles neu mit ds toolchain und avm capi lib.

achja @mastertester: mit " mipsel-linux-strip ivcall " wird das binary schon bisschen kleiner ;-)
 

Anhänge

  • ivcallv6.gz
    216.9 KB · Aufrufe: 65
hi
hab mein testfax 2x geschickt mit gleichen bedingungen. dsa erstemal ist nur scheisse angekommen, auf jeder seite ca. 50 bad rows und so... beim 2. mal war alles in ordnung, 5 bad rows in etwa...
hab jetzt leider keine zeit mehr zu testen. evtl. später.
aber mach weiter so!

mfg daniel
 
Ich habe jetzt die 7170 am laufen, und der Empfang funktioniert damit eindeutig besser. Ivcall lastet die CPU der 7170 „nur“ zu max. 60 Prozent aus, im Vergleich zur 7050 mit ca. 80 Prozent Auslastung.

Aber das Problem mit Bad Rows habe ich auch auf der 7170. Ich habe an so einigen Werten mal gedreht, konnte aber keine Verbesserung erwirken.

Sobald zu viele Zeichen in eine Zeile stehen, bzw. vorwiegend bei Grafiken sind Bad Rows vorprogrammiert.


…….irgendwo ein handle_messages stehen, weil sonst vom capi nix mehr verarbeitet werden kann. Und genau hierdran kann man drehen, also einmal wo der steht und dann wie lang die block time ist (letzter paramter)……

Welche Zeile in der ivcall.c meinst Du damit? Leite mich doch bitte mal zu den entsprechenden Zeilen.....

Ausserdem findet sich in der void go() (in ivcall.c) noch ein setpriority aufruf, den die box auch zu unterstützen scheint, weil bei -20 alle anderen Prozesse schon irgendwie fast nix mehr melden.

Wie muss das denn hier aussehen, wenn es aktiv ist?

Code:
if (!setpriority(PRIO_PROCESS,0,-20))

Als Ausgabe im Telnet kommt:

Code:
:..IVCALL..: Successfully Set Priority to -1sine create complex


Wenn das faxen überhaupt nicht funktioniert, liegt es bei mir am telefon deamon, der sich im Leerlauf 98 Prozent Prozessorauslastung genehmigt.

Einfach den telefon deamon killen, und wieder neu starten. Lustigerweise taucht dann dieses Problem auch nicht mehr auf.


Gruß
mastertester
 
Zuletzt bearbeitet:
mastertester schrieb:
Ich habe jetzt die 7170 am laufen, und der Empfang funktioniert damit eindeutig besser. Ivcall lastet die CPU der 7170 „nur“ zu max. 60 Prozent aus, im Vergleich zur 7050 mit ca. 80 Prozent Auslastung.
genau, die CPU der 7170 hat mehr BogoMIPS.
mastertester schrieb:
Sobald zu viele Zeichen in eine Zeile stehen, bzw. vorwiegend bei Grafiken sind Bad Rows vorprogrammiert.
Du meinst also, zu viel schwarz/weiss wechsel, also nicht zusammenhängende pixel? Sieht dann fast nach einem Libtiff Problem aus, die verwenden da ja eine Kompression (Huffman, LZW , zlib??), und vielleicht ist das ganze rechen- und datenintensiver, wenn weniger Redundanz da ist.
Interessante Erkenntnis.. sollte man sich mal merken und weiter untersuchen, vor allem auch an den sourcen von t4.c und dann halt libtiff.

Vielleicht wäre ein testfax tiff mit "rauschen" dazu nicht schlecht, als worst case szenario. Also einfach ein Pixel schwarz, der nächste weiss, usw.

mastertester schrieb:
Welche Zeile in der ivcall.c meinst Du damit? Leite mich doch bitte mal zu den entsprechenden Zeilen.....
in
static int fax_loop_capi()
in der while schleife, such mal nach capidev_handle_messages, probier einfach aus wo in der schleife es am besten ist, evtl. auch zweimal (dann werden die capi buffer overflows besser angezeigt), und halt die blocktimes dann variieren .

mastertester schrieb:
Wie muss das denn hier aussehen, wenn es aktiv ist?
äääh ? so wie es halt im code ist, und so wie die debug ausgabe ist (bei der noch ein \n fehlt). also return value 0 = success (von setpriority)

Code:
if (!setpriority(PRIO_PROCESS,0,-20))

mastertester schrieb:
Wenn das faxen überhaupt nicht funktioniert, liegt es bei mir am telefon deamon, der sich im Leerlauf 98 Prozent Prozessorauslastung gönnt.

Einfach killen, und wieder starten. Lustigerweise taucht dann dieses Problem auch nicht mehr auf.
Hmm.. hab ich doch schonmal vermutet, dass da mit dem telefond was nicht stimmt.
Interessant, dass er wirklich 98% CPU benötigt, das könnte wirklich die ursache für dieses "geht perfekt, geht auf einmal gar nicht , und nach ner weile , geht wieder perfekt" sein.

Frägt sich nur... Bug oder Feature des telefond ?

Hm, naja und was is mitm voipd und den anderen AVM Progs, machen die auch so lustiges Däumchendrehen?

PS: es gibt übrigens die Möglichkeit von einem erfolgreich Empfangenen Fax ein Audiodump zu machen mit -I und dann ein replay zu starten, und damit das gleiche Fax nochmal empfangen:

in einem telnet:
ivcall auf FaxMSN für den Empfang starten.... (achtung: genau die gleiche -n Option wie beim aufzeichnen des audiodumps verwenden!)
im anderen telnet Fenster:
./ivcall -bd capi/1/XXX FaxMSN < ./faxdump.raw > /dev/null
 
Zitat von florixyz
äääh ? so wie es halt im code ist, und so wie die debug ausgabe ist (bei der noch ein \n fehlt). also return value 0 = success (von setpriority)

Also steht der Prozess so wie der Parameter jetzt ist auf maximaler Priorisierung???

Gruß
mastertester

PS: Wo genau in der capi.c hast Du Timeouts verändert?
 
naja, sollte so sein, aber wenn du ganz sicher sein willst, dann musst du im kernel source nachlesen ;-)
kannst ja mal zwei prozesse einen mit hoher einen mit niedriger starten und dann schauen was passiert, ob der niedrige dann gar nicht mehr geht.

Das mit der capi.c lässt sich nicht so genau sagen, weil ich die komplett umstrukturiert habe. such mal dort nach dem handle_messages aufruf. in der funktion handle_messages steht dann der timeout drin, der war bei der alten Version auf 1. Aber ich hab an manchen Stellen welche weggelassen, weiss aber nicht mehr auswenidg genau wo die waren, evtl. in den is_connected funktionen, glab da war einer drin, und is jetzt nicht mehr. aber lass die capi.c am besten so, und füg die dann im ivcall vor dem capi aufruf hinzu.
 
@florixyz,

hast Du irgendwo eine Anleitung parat, um das buildroot von openembedded zu installieren??

Oder muss ich mich da durchkämpfen?

Irgendwie werde ich mit dem toolchain so nicht glücklich.....


Zitat von florixyz,:
zlib wird jetzt irgendwie gar nicht mehr benötigt.. kompiliert auch ohne -lz .. naja.. !

Wie jetzt? Bei mir geht ohne gar nichts….

Gruß
Mastertester
 
also ich habs mittlerweile mit dem vom ds-mod geschafft.

(Pfade halt alle entsprechend anpassen)

LibTiFF mit folgendem Befehl compilieren:

./configure --host=mipsel-linux --build=i386 --prefix=/home/flo/data/fbox/ds-0.2.2/toolchain/target --exec-prefix=/home/flo/data/fbox/ds-0.2.2/toolchain/target --disable-cxx CFLAGS="-march=4kc -g -O2"

make && make install

spandsp:

./configure --host=mipsel-linux --build=i686 --prefix=/home/flo/data/fbox/ds-0.2.2/toolchain/target --exec-prefix=/home/flo/data/fbox/ds-0.2.2/toolchain/target CFLAGS="-march=4kc -g -O2"

zlib (wenn du es brauchst):

./configure --host=mipsel-linux --build=i386 --prefix=/home/flo/data/fbox/ds-0.2.2/toolchain/target --exec-prefix=/home/flo/data/fbox/ds-0.2.2/toolchain/target --disable-cxx CFLAGS="-march=4kc -g -O2"


ivcall:

./configure --host=mipsel-linux --build=i386 CFLAGS="-g -O2 -march=4kc" --with-spandsp LIBS="-lcapi20 -Wl,-Bstatic -ltiff -lm -lspandsp -Wl,-Bdynamic" --disable-lynx

und noch die AVM Capi lib: Makefile Editieren und folgendes hinzufügen:
CROSS_COMPILE = mipsel-linux-
FILESYSTEM = /home/flo/data/fbox/ds-0.2.2/toolchain/target

dann make && make install

so... und du brauchst halt die sourcen von mir, und dann noch den capiconn patch von Olli, den Objs Patch und den configure patch.. die patchst du mit :
patch -p0 < configure.patch (z.B.)
 
Ich habe jetzt mal wie von Florixyz vorgeschlagen ein paar Testfaxe aufgesetzt, und die Ergebnisse sind mehr als interessant….

Aber schaut am besten selbst… Ich war sehr überrascht…..

Anhänge sind tif Dateien, also einfach von tar in tif umbenennen!

Fax120.tif – vertikale Streifen, die Abstände sind eigentlich alle gleich gewesen…..
Fax 121.tif – durchgehendes Schwarz, keine Bad Rows!
Fax122.tif - horizontale Streifen, leider auch ein Versatz drin……(Abstand nicht gleich)

Interessanterweise scheint das Problem im Lastwechsel zu liegen, da das schwarze Fax kein Problem verursacht hat. Ich hatte auch bei dem Fax120.tif erwartet, dass ein paar schwarze Balken fehlen, und nicht die Bereiche der Seite, die keine zu verarbeitenden Daten enthalten.


@florixyz,

vielen Dank noch mal für deine ausführliche Anleitung!! Mir ging es jetzt aber vor allem um einen C++ Compiler…..

Allerdings kannte ich folgende Parameter noch nicht:
Code:
...-Wl,-Bstatic -Wl,-Bdynamic...

Gruß
mastertester
 

Anhänge

  • fax120.tar
    18.9 KB · Aufrufe: 54
  • fax121.tar
    8.6 KB · Aufrufe: 27
  • fax122.tar
    28.7 KB · Aufrufe: 23
mastertester schrieb:
Aber schaut am besten selbst… Ich war sehr überrascht…..

Ich habe das gerade mal geöffnet. In MS Document Imaging sind die riesengroß (4881,88cm x 4389,12cm), da scheint was mit der Auflösung nicht zu stimmen. Gimp zeigt 224,42mm x 285,06mm an - vielleicht auch ein Fehler in Document Imaging.
 
mastertester schrieb:
vielen Dank noch mal für deine ausführliche Anleitung!! Mir ging es jetzt aber vor allem um einen C++ Compiler…..

C++ Compiler brauchst du doch eigentlich für die Fax Sache gar nicht? LibTiff lässt sich ja dank configure option auch ohne compilieren.
Danisahne arbeitet ausserdem an ner uclibc++ version, weil libstdc++ für die Box viel zu groß ist.
 
C++ Compiler brauchst du doch eigentlich für die Fax Sache gar nicht?

Das ist schon richtig, aber ich würde bei Gelegenheit gerne auch mal andere Programme für die FritzBox erstellen....

Was sagst Du eigentlich zu den Testfaxen?

Gruß
mastertester
 
Das ist interessant, ich habs leider noch nicht ausprobieren können, weil noch was anderes erledigen muss, aber scheint dann schon bisschen ne libtiff sache zu sein, oder auch demodulation, weil ja dann auch mehr bits gesendet werden.

Ich werde spätestens in zwei wochen FastFP überarbeitet haben, und noch Festkomma support einbauen, dann geht es vielleicht damit noch schneller und alle Probleme lösen sich auf :)

Was sehr hilfreich wäre, wenn jemand hier sich mal ausgehend von t4.c (von spandsp) die Sourcen von den von t4.c aufgerufenen LibTiff Funktionen anschauen könnte und die nach rechenintensiven Teilen absuchen und vor allem nach floating point code (also einfach nach "float" und "double" suchen).
 
@florixyz,

Du hast nicht zufälligerweise eine Anleitung zum erstellen eine cross-compilers mit openembedded???

Wäre echt super!


Gruß
mastertester
 
hm.. einfach runterladen, dann make menuconfig und make .. das müsste dann alles kompilieren, kann sein, dass manche sachen nicht gedownloaded werden können, die muss du manuell dann runterladen, von nem anderen mirror.
und dann nur noch den PATH setzen und das staging_dir/bin da mit einbauen.

Mehr hab ich auch nicht gemacht.
 
hello,
would be VERY nice if your faxserver will finally work (i am interested in receiving faxes since sending is working OK with NetCapi).
may i help you somehow?
by the way, are you sure that
capi4hylafax
will not work as described here:
http://www.linux-magazin.de/Artikel/ausgabe/2000/10/Capi/capi.html
using
Code:
c2faxrecv -f TIFF -q /somewhere
by the way, do you think that FON 5012 will not be able to recieve any fax because of resource limits?
thank you!
 
I'm pretty sure that it does not work that way with c2faxrecv, because the driver for the isdn cards on the fritz!boxes doesn't support the fax protocol, they don't have the full AVM ISDN driver on there, since it is not needed for their applications and will also consume too much resources.

However you may feel free to try it out you self, compile the software, maybe you are able to compile another kernel with the full ISDN Card driver. But only capi4hylafax, does not work, I have already tried it.. error message, B1 Protocol not supported!
 
Looks like c2faxrecv is distributed as binary only - in that case we won't be able to compile it for the box anyway.
 
it's source is actually distributed. I've compiled it for the box a couple of weeks ago, and if my memory is right it didn't work, but feel free to try it yourself. Here is the mipsel binary I compiled (you first have to unzip it):
 

Anhänge

  • c2faxrecv.zip
    143.2 KB · Aufrufe: 21
Was geht nun? Was wird gehen?

Hallo zusammen!

Also ich habe von Linux etc. leider gar keine Ahnung und bin nun ein wenig verwirrt.

Was geht denn nun? Funktioniert der Faxempfang?
Mir würde es "reichen" wenn Faxe empfangen und als eMail weitergeleitet würden. Oder auf einem Speicher am USB gespeichert würden.

Was wird in naher Zukunft gehen?
Habt ihr eine Lösung oder wird was von AVM kommen?

mfg

Nelix
 
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.