Kompilieren des ds-mod unter Mac OS X

Hallo maceis,
es ist jetzt zwar schon eine Weile nichts mehr gepostet worden, aber ich bin gerade sehr an deiner Lösung interessiert ;o) und natürlich auch bereit das Skript zu testen.

Gruß Schnulliwuh
 
Okay, gerne.
Ich muss das aber jetzt erst einmal wieder rauskramen.
Gib mir einen/max. zwei Tag/e Zeit, dann schau ich auch noch mal kurz drüber.

Was mich interessieren würde:
Was für eine Box hast Du?
Welche Firmware hast Du aktuell drauf (möglichst nicht updaten, bevor Du den mod getestet hast, weil ich mit der aktuellsten FW noch nichts gemacht habe).
Was für einen Mac hast Du? (Intel oder PPC?)
 
maceis schrieb:
Was mich interessieren würde:
Was für eine Box hast Du?
Welche Firmware hast Du aktuell drauf (möglichst nicht updaten, bevor Du den mod getestet hast, weil ich mit der aktuellsten FW noch nichts gemacht habe).
Was für einen Mac hast Du? (Intel oder PPC?)

FRITZ!Box Fon WLAN 7050 (UI), Firmware-Version 14.04.06
Powerbook G4 mit 10.4.6

Gruß, Schnulliwuh
 
erste Schritte ...

Ich schaffe es jetzt, den compiler zu starten. Aber viel mehr passiert auch nicht. Muss ich vorher irgendwo ein Firmwareimage speichern, dass dann modifiziert werden kann?
Gruß, Jochen


[hausknecht:~/ds-0.2.6] jochen% sudo make CC="gcc" \
? -C ~/squashfs3.0/squashfs-tools mksquashfs
Password:
gcc -I. -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -O2 -c -o mksquashfs.o mksquashfs.c
gcc -I. -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -O2 -c -o read_fs.o read_fs.c
gcc -I. -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -O2 -c -o sort.o sort.c
gcc mksquashfs.o read_fs.o sort.o -lz -o mksquashfs
 
Oh, ich hatte bei Deinem letzten Posting gar keine Email Benachrichtigung erhalten.
Mit meinem Vorbereitungsskript ist das Ganze relativ einfach.
Leider bin ich beruflich zur Zeit sehr stark eingespannt (auch am WE) und bin noch nicht dazu gekommen, das Skript wieder heraus zu suchen. Ich bitte noch um ein klein wenig Geduld.

Das Problem ist, dass ich die Sache aufgrund des fehlenden Interesses und weil sich beim ds-mod ohnehin einiges ändern soll (ipkg), nicht mehr richtg getestet habe.
 
Noch da?

Hi

Mich würde das auch interessieren. (Habe eine mac mini intel.)

Oder gibt es mitlerweile eine andere Lösung?

Grüsse

Psychodad


maceis schrieb:
Das Problem ist, dass ich die Sache aufgrund des fehlenden Interesses und weil sich beim ds-mod ohnehin einiges ändern soll (ipkg), nicht mehr richtg getestet habe.
 
ds-mod unter Mac OS X unsquashfs versions problem

Hallo

Ich versuche seit 2 tagen den ds-mod ds-0.2.9 unter macosx 10.4 auf einem Intel mac zu kompilieren. :(

der compiler ist ein i686-apple-darwin8-g++-4.0.1
das dos2unix ist aus dem finkprojekt in der version 3.1-3

ich habe die endian.h (wie im thread beschrieben) per
Code:
ln -s /usr/include/i386/endian.h nach /usr/include/endian.h
gelinkt, damit sie gefunden wird.

die routine laueft durch, bis sie mit

Code:
expr: syntax error
./fwmod: line 134: [: : integer expression expected
STEP 1: UNPACK
unpacking firmware image
splitting kernel image
ERROR: kernel splitting failed
make: *** [firmware] Error 1

abbricht.

nachdem ich die if abfrage in der fwmod auskommentiert habe
(die pfade passen k.a. warum die abfrage net funzt)

Code:
#if [ "$(expr index "$ABS_BASE_DIR" "/")" -ne 1 ]
#then
	ABS_BASE_DIR="$(pwd)/$ABS_BASE_DIR"
#fi

laeuft es weiter, bis es mit

Code:
STEP 1: UNPACK
unpacking firmware image
splitting kernel image
  Major/Minor mismatch, filesystem on build/original/kernel/kernelsquashfs.raw is (2:76)
  I only support Squashfs 3.0 filesystems!  Later releases will support older Squashfs filesystems
make: *** [firmware] Error 1

abbricht.

die im thread vorher gepostete Anweisung
Code:
./tools/find-squashfs ./build/original/firmware/var/tmp/kernel.image
erzeugt die dateien kernel.raw und kernelsquashfs.raw im hauptverzeichnis

ein

Code:
./tools/unsquashfs -ls build/original/kernel/kernelsquashfs.raw

ergibt

Code:
Major/Minor mismatch, filesystem on build/original/kernel/kernelsquashfs.raw is (2:76)
I only support Squashfs 3.0 filesystems!  Later releases will support older Squashfs filesystems

mit seinem latein am ende

so long
arnd
 
Welches Image entpackst du denn?
Hast du es mal mit "unsquashfs-lzma" probiert?

MfG Oliver
 
hallo olistudent

der thread lebt ja noch ;)


Da stimmt was mit dem unsquashfs nicht bzw. mit der Datei squashfs.h

hmm, die heruntergeladene version des squashfs ist 2.2 :confused:

ich finde eine squashfs_fs.h unter ./source/squashfs2.2/

unter ./source/squashfs2.2 sind verzeichnisse mit patches fuer diverse linux kernelversionen enthalten, nur keins fuer den bsd-kernel des mac. kann es sein, das weil der kernel nicht richtig erkannt wird , eine falsche squashfs version heruntergeladen wird?

so long
arnd
 
Hm, ich hab mein Posting nochmal geändert. Anscheinend zu spät...

MfG Oliver
 
da haben wir wohl parallel gepostet

Welches Image entpackst du denn?
Hast du es mal mit "unsquashfs-lzma" probiert?

er nimmt bei mir den unsqashfs-lzma per default

ich hab mal die ./.config
auf
Code:
DS_SQUASHFS_LZMA=n

gaendert, leider gleiches ergebnis

Code:
...
  Major/Minor mismatch, filesystem on build/original/kernel/kernelsquashfs.raw is (2:76)
  I only support Squashfs 3.0 filesystems!  Later releases will support older Squashfs filesystems

das squashfs3.1-r2 laesst sich ohne probs auf dem mac direkt kompilieren


so long
arnd
 
Du hast ein Image für die 7170 (29.04.15). Und das lässt sich nicht mit dem "unsquashfs-lzma" auspacken?
Dann stimmt eventuell was mit dem squashfs_magic nicht.
Schau dir mal das kernelsquashfs.raw an.
Bei mir steht da am Anfang: "68 73 71 73" hsqs
Eventuell passt da was auf dem MAC nicht.
Bei find-squashfs gabs ja ein ähnliches Problem: Post 10

MfG Oliver
 
Bei mir steht da am Anfang: "68 73 71 73" hsqs

bei mir fehlt das "68 73 71 73"

also ist das squashfs2.2 ansich als source ok?
und das problem ist, das er die magic number 'vergisst' ?

hmmm, dann werd den kram jetzt nochmal neu von vorn anfangen.
und in richtung falsche squashfs version nicht weiterforschen.

so long
arnd
 
Hehe. Hab ich mir fast gedacht, dass das jetzt kommt.
Die Zahlen sind die Hex-Werte. ;-)

MfG Oliver

edit: Kannst du das unsquashfs-lzma mal mit "-DSQUASHFS_TRACE" kompilieren. Vielleicht kommt dann mehr Output. Im Moment weiß ich nämlich nicht wo der Fehler zu suchen ist.

edit2: Bei mir sieht das dann so aus:
Code:
mksquashfs: read_bytes: reading from position 0x0, bytes 63
mksquashfs: Found a valid big endian SQUASHFS superblock on kernelsquashfs.raw.
mksquashfs:  Inodes are compressed
mksquashfs:  Data is compressed
mksquashfs:  Fragments are compressed
mksquashfs:  Check data is not present in the filesystem
mksquashfs:  Fragments are  present in the filesystem
mksquashfs:  Always_use_fragments option is not specified
mksquashfs:  Duplicates are  removed
mksquashfs:  Filesystem size 4323.91 Kbytes (4.22 Mbytes)
mksquashfs:  Block size 65536
mksquashfs:  Number of fragments 71
mksquashfs:  Number of inodes 1414
mksquashfs:  Number of uids 1
mksquashfs:  Number of gids 0
mksquashfs: sBlk->inode_table_start 0x40b0e3e900434ace
mksquashfs: sBlk->directory_table_start 0x40b0e3e9004369d7
mksquashfs: sBlk->uid_start 0x40b0e3e900438fa1
mksquashfs: sBlk->fragment_table_start 0x40b0e3e900438f9d
...
Müsste das nicht ein Little-Endian-Superblock sein? :gruebel:
Sieht nach einem Cygwin-Problem aus. Sowas sollte man halt unter Linux machen...
 
Zuletzt bearbeitet:
Hehe. Hab ich mir fast gedacht, dass das jetzt kommt.
Die Zahlen sind die Hex-Werte. ;-)

iss schon klar das das nen binary ist ;-)

ein

Code:
less  ./kernelsquashfs.raw

liefert keine stelle vor dem "hsqs"

allerdings laueft ein

Code:
./tools/find-squashfs ./dl/fritz.box_fon_wlan_7170.29.04.15.image

mit der meldung

Code:
The size of <./dl/fritz.box_fon_wlan_7170.29.04.15.image> is 4382720
Squashfs signature found at 433408
kernel.raw created
kernelsquashfs.raw created

durch :confused:

und legt die dateien

kernel.raw
kernelsquashfs.raw

im hauptverzeichnis an.

edit: Kannst du das unsquashfs-lzma mal mit "-DSQUASHFS_TRACE" kompilieren. Vielleicht kommt dann mehr Output. Im Moment weiß ich nämlich nicht wo der Fehler zu suchen ist.

also
im verzeichnis ./source/squashfs2.2/squashfs-tools/

Code:
make -DSQUASHFS_TRACE
, oder wie?


wenn ich das also richtig verstanden hab macht das 100-lzma-and-unsquashfs.squashfs.patch aus dem
squashfs2.2 ein lzma faehiges squashfs3.0?


so long
arnd
 
Die Zahlen sind die Hexwerte vom hsqs.
Ich hab das "-DSQUASHFS_TRACE" ins Makefile geschrieben, aber vielleicht klappts so auch.
Die Fehlermeldung mit der Version 3.0 kommt daher, dass es unsquashfs nur für die Version 3.0 gibt. Ich hab mich ein paar Stunden damit auseinandergesetzt, so dass es auch unser squashfs 2.2 entpackt.
In dem Patch wird die Fehlermeldung halt nicht korrigiert. Und die kommt, weil beim unsquashfs Version 2.1 und beim unsquashfs-lzma Version 2.76 erwartet wird. Die 76 ist ein "Hack" von AVM um zu erkennen, ob das Filesystem mit gzip oder lzma komprimiert ist.

MfG Oliver
 
hab mir grad wieder nen hexeditor zugelegt ;)

brauchte ich schon laenger nicht mehr - vllt. hab ich das deswegen nich gerafft

joahhhh

das passt wohl

das komische ist, wenn ich mir selbst ein image baue, gehts.

Code:
./tools/mksquashfs-lzma dl/fritz.box_fon_wlan_7170.29.04.15.image ./test-lzma.raw
Creating big endian 2.1 filesystem on ./test-lzma.raw, block size 65536.

Big endian filesystem, data block size 65536, compressed data, compressed metadata, compressed fragments
Filesystem size 4187.55 Kbytes (4.09 Mbytes)
        97.83% of uncompressed filesystem size (4280.41 Kbytes)
Inode table size 62 bytes (0.06 Kbytes)
        20.06% of uncompressed inode table size (309 bytes)
Directory table size 47 bytes (0.05 Kbytes)
        100.00% of uncompressed directory table size (47 bytes)
Number of duplicate files found 0
Number of inodes 2
Number of files 1
Number of fragments 0
Number of symbolic links  0
Number of device nodes 0
Number of fifo nodes 0
Number of socket nodes 0
Number of directories 1
Number of uids 1
        <zensiert> (501)
Number of gids 1
        <zensiert> (502)

es wird ein lesbares image erzeugt.

hmmm, auch "big endian" -> das ist dann aber die mips geschichte oder?
weil hier ist es intelmac (littleendian) wie cygwin

das image ist dann auch auspackbar
Code:
tools/unsquashfs-lzma ./test-lzma.raw

created 1 files
created 1 directories
created 0 symlinks
created 0 devices
created 0 fifos


Ich hab das "-DSQUASHFS_TRACE" ins Makefile geschrieben, aber vielleicht klappts so auch.

hab es dann auch ins makefile geschrieben

Du hast ein Image für die 7170 (29.04.15). Und das lässt sich nicht mit dem "unsquashfs-lzma" auspacken?

die neukompilierte unsquashfs-lzma sagt ueber

Code:
tools/unsquashfs-lzma dl/fritz.box_fon_wlan_7170.29.04.15.image 
mksquashfs: read_bytes: reading from position 0x0, bytes 63
Can't find a SQUASHFS superblock on dl/fritz.box_fon_wlan_7170.29.04.15.image



mein oben erzeugtes testimage nimmt er aber
allerdings hier littleendian :confused:

Code:
./tools/unsquashfs-lzma -ls ./test-lzma.raw                       
mksquashfs: read_bytes: reading from position 0x0, bytes 63
mksquashfs: Found a valid little endian SQUASHFS superblock on ./test-lzma.raw.
mksquashfs:     Inodes are compressed
mksquashfs:     Data is compressed
mksquashfs:     Fragments are compressed
mksquashfs:     Check data is not present in the filesystem
mksquashfs:     Fragments are  present in the filesystem
mksquashfs:     Always_use_fragments option is not specified
mksquashfs:     Duplicates are  removed
mksquashfs:     Filesystem size 4187.55 Kbytes (4.09 Mbytes)
mksquashfs:     Block size 65536
mksquashfs:     Number of fragments 0
mksquashfs:     Number of inodes 2
mksquashfs:     Number of uids 1
mksquashfs:     Number of gids 1
mksquashfs: sBlk->inode_table_start 0x40b05b8b00416dbb
mksquashfs: sBlk->directory_table_start 0x40b05b8b00416df8
mksquashfs: sBlk->uid_start 0x40b05b8b00416e27
mksquashfs: sBlk->fragment_table_start 0x40b05b8b00416e27
mksquashfs: 
mksquashfs: read_bytes: reading from position 0x416e27, bytes 8
mksquashfs: read_fragment_table: 0 fragments, reading 0 fragment indexes from 0xbffffa4100416e27
mksquashfs: uncompress_inode_table: reading block 0x416dbb
mksquashfs: read_bytes: reading from position 0x416dbb, bytes 2
mksquashfs: read_block: block @0x416dbb, 59 compressed bytes
mksquashfs: read_bytes: reading from position 0x416dbd, bytes 59
mksquashfs: uncompress_directory_table: reading block 0x416df8
mksquashfs: read_bytes: reading from position 0x416df8, bytes 2
mksquashfs: read_block: block @0x416df8, 45 uncompressed bytes
mksquashfs: read_bytes: reading from position 0x416dfa, bytes 45
mksquashfs: squashfs_opendir: inode start block 0, offset 292
mksquashfs: squashfs_opendir: Read directory header @ byte position 0, 1 directory entries
mksquashfs: squashfs_opendir: directory entry fritz.box_fon_wlan_7170.29.04.15.image, inode 0:0, type 2
mksquashfs: dir_scan: name fritz.box_fon_wlan_7170.29.04.15.image, start_block 0, offset 0, type 2
squashfs-root/fritz.box_fon_wlan_7170.29.04.15.image

hmmm, alles sehr merkwuerdig

so long
arnd
 
Zuletzt bearbeitet:
Ist denn die Magic bei beiden Files gleich (68 71 73 71)?
Nachdem ich die unsquashfs-lzma.c wie folgt geändert hab, ist die Anzeige jetzt auch richtig:
Code:
#include <sys/mman.h>
#include <utime.h>
 
[COLOR=red]#include <endian.h>[/COLOR]
[COLOR=#ff0000][/COLOR] 
#ifndef linux
#define __BYTE_ORDER BYTE_ORDER
#define __BIG_ENDIAN BIG_ENDIAN
#define __LITTLE_ENDIAN LITTLE_ENDIAN
#else
#include <endian.h>
#endif
Seltsamerweise ist es bei mir egal, ob das unsquashfs ein Big- oder Littleendian Superblock findet. Auspacken lässt sich das Image immer.

Mach mal mit dem mksquashfs eine Littleendian-Datei (-le -noappend -all-root) und versuch die auszupacken.

MfG Oliver
 
moin



Ist denn die Magic bei beiden Files gleich (68 71 73 71)?
Nachdem ich die unsquashfs-lzma.c wie folgt geändert hab, ist die Anzeige jetzt auch richtig:
#include <sys/mman.h>
#include <utime.h>

#include <endian.h>

#ifndef linux
#define __BYTE_ORDER BYTE_ORDER
#define __BIG_ENDIAN BIG_ENDIAN
#define __LITTLE_ENDIAN LITTLE_ENDIAN
#else
#include <endian.h>
#endif
Seltsamerweise ist es bei mir egal, ob das unsquashfs ein Big- oder Littleendian Superblock findet. Auspacken lässt sich das Image immer.

hab die unsquashfs-lzma so geaendert und neukompiliert.
das mit dem
bezieht sich auf die fritzbox?

weil

Code:
uname
Darwin

bzw.

Code:
uname -a
Darwin noname 8.8.1 Darwin Kernel Version 8.8.1: Mon Sep 25 19:42:00 PDT 2006; root:xnu-792.13.8.obj~1/RELEASE_I386 i386 i386



Mach mal mit dem mksquashfs eine Littleendian-Datei (-le -noappend -all-root) und versuch die auszupacken.

jep

Code:
 ./tools/mksquashfs ./dl/fritz.box_fon_wlan_7170.29.04.15.image ./test.raw -le -noappend -all-root  
Creating little endian 2.1 filesystem on ./test.raw, block size 65536.
mksquashfs: File inode, file_size 4382720, start_block 3f, blocks 67, fragment -1, offset 0, size 0
mksquashfs: Block 0, size 64200
mksquashfs: Block 1, size 16842752
mksquashfs: Block 2, size 16842752
mksquashfs: Block 3, size 16842752
mksquashfs: Block 4, size 16842752
mksquashfs: Block 5, size 16842752
mksquashfs: Block 6, size 65468
mksquashfs: Block 7, size 16842752
mksquashfs: Block 8, size 16842752
mksquashfs: Block 9, size 16842752
mksquashfs: Block 10, size 16842752
mksquashfs: Block 11, size 16842752
mksquashfs: Block 12, size 16842752
mksquashfs: Block 13, size 16842752
mksquashfs: Block 14, size 16842752
mksquashfs: Block 15, size 16842752
mksquashfs: Block 16, size 16842752
mksquashfs: Block 17, size 16842752
mksquashfs: Block 18, size 16842752
mksquashfs: Block 19, size 16842752
mksquashfs: Block 20, size 16842752
mksquashfs: Block 21, size 16842752
mksquashfs: Block 22, size 16842752
mksquashfs: Block 23, size 16842752
mksquashfs: Block 24, size 16842752
mksquashfs: Block 25, size 16842752
mksquashfs: Block 26, size 16842752
mksquashfs: Block 27, size 16842752
mksquashfs: Block 28, size 16842752
mksquashfs: Block 29, size 16842752
mksquashfs: Block 30, size 16842752
mksquashfs: Block 31, size 16842752
mksquashfs: Block 32, size 16842752
mksquashfs: Block 33, size 16842752
mksquashfs: Block 34, size 16842752
mksquashfs: Block 35, size 16842752
mksquashfs: Block 36, size 16842752
mksquashfs: Block 37, size 16842752
mksquashfs: Block 38, size 16842752
mksquashfs: Block 39, size 16842752
mksquashfs: Block 40, size 16842752
mksquashfs: Block 41, size 16842752
mksquashfs: Block 42, size 16842752
mksquashfs: Block 43, size 16842752
mksquashfs: Block 44, size 16842752
mksquashfs: Block 45, size 16842752
mksquashfs: Block 46, size 16842752
mksquashfs: Block 47, size 16842752
mksquashfs: Block 48, size 16842752
mksquashfs: Block 49, size 16842752
mksquashfs: Block 50, size 16842752
mksquashfs: Block 51, size 16842752
mksquashfs: Block 52, size 16842752
mksquashfs: Block 53, size 16842752
mksquashfs: Block 54, size 16842752
mksquashfs: Block 55, size 16842752
mksquashfs: Block 56, size 16842752
mksquashfs: Block 57, size 16842752
mksquashfs: Block 58, size 16842752
mksquashfs: Block 59, size 16842752
mksquashfs: Block 60, size 65479
mksquashfs: Block 61, size 16842752
mksquashfs: Block 62, size 16842752
mksquashfs: Block 63, size 65517
mksquashfs: Block 64, size 57168
mksquashfs: Block 65, size 23530
mksquashfs: Block 66, size 21055
mksquashfs: Created inode 0x0, type 0, uid 2, guid 0
mksquashfs: Directory inode, file_size 45, start_block 0, offset 0
mksquashfs: Created inode 0x124, type 0, uid 1, guid 0
mksquashfs: Inode block @ 0, size 13
mksquashfs: Directory block @ 0, size 32813
mksquashfs: write_fragment_table: fragments 0, frag_bytes 0, meta_blocks 0
mksquashfs: sBlk->inode_table_start 0x4187f0
mksquashfs: sBlk->directory_table_start 0x4187ff
mksquashfs: sBlk->fragment_table_start 0x41882e

Little endian filesystem, data block size 65536, compressed data, compressed metadata, compressed fragments
Filesystem size 4194.05 Kbytes (4.10 Mbytes)
        97.98% of uncompressed filesystem size (4280.41 Kbytes)
Inode table size 15 bytes (0.01 Kbytes)
        4.85% of uncompressed inode table size (309 bytes)
Directory table size 47 bytes (0.05 Kbytes)
        100.00% of uncompressed directory table size (47 bytes)
Number of duplicate files found 0
Number of inodes 2
Number of files 1
Number of fragments 0
Number of symbolic links  0
Number of device nodes 0
Number of fifo nodes 0
Number of socket nodes 0
Number of directories 1
Number of uids 1
        root (0)
Number of gids 0

sagter dann.
das die bloecke unterschiedlich gross sind, ist kein problem, nehme ich an.

leider gibt dann

Code:
./tools/unsquashfs ./test.raw 
mksquashfs: read_bytes: reading from position 0x0, bytes 63
Can't find a SQUASHFS superblock on ./test.raw

die erzeugte datei ./test.raw hat keine magicnumber, sondern "00 00 00 00"
-> diesmal mit nem hexeditor nachgeschaut ;)

wenn ich

Code:
./tools/find-squashfs dl/fritz.box_fon_wlan_7170.29.04.15.image 
The size of <dl/fritz.box_fon_wlan_7170.29.04.15.image> is 4382720
Squashfs signature found at 433408
kernel.raw created
kernelsquashfs.raw created

absetze, hat die erzeugte datei ./kernel.raw "2E 2F 76 61 72 27" also ./var/
und erzeugte datei ./kernelsqashfs.raw hat "68 71 73 71" also hsqsu
die runtergeladene datei ./dl/fritz.box_fon_wlan_7170.29.04.15.image hat "2E 2F 76 61 72 27" also ./var/

ein
Code:
tools/unsquashfs ./kernelsquashfs.raw 
mksquashfs: read_bytes: reading from position 0x0, bytes 63
Major/Minor mismatch, filesystem on ./kernelsquashfs.raw is (2:76)
I only support Squashfs 3.0 filesystems!  Later releases will support older Squashfs filesystems

ich hoffe ich hab an alles gedacht

so long
arnd

p.s.
wenn wir das hinkriegen gelobe ich hiermit ein intelmac tutorial fuers ds-mod wiki zu schreiben
 
Gibts schon was Neues?

Hi,

gibt es hier schon was Neues? Ich hänge auch an dem Major/Minor mismatch fest. Oder muss ich auf Linux ausweichen?

Viele Grüße,
Prof_NARF
 
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.