Kompilieren des ds-mod unter Mac OS X

sed verhält sich under MAX OS X leider nicht so wie unter Linux. (Die Tabulatoren sind das Problem.) Deswegen wird im squashfs-lzma.h die 1 nicht durch eine 76 ersetzt.
Du kannst das per Hand ändern. Danach nochmal das unsquashfs-lzma und mksquashfs-lzma kompilieren und das sollte funktionieren.

MfG Oliver
 
Danke für die schnelle Antwort.

Bei Gelegenheit werde ich das nochmal ausprobieren. Zwischenzeitlich bin ich aber auf Linux ausgewichen.

Grüße,
Prof_NARF
 
Moin,
hat mal jemand geschafft, die nötigen tools:
I-chksum-0.1,mksquashfs,unsquashfs-lzma,dumpsquashfs mksquashfs-lzma und find-squashfs unter mac/intel zu kompilieren.
Verstehe das Problem der Byte-Order nicht so recht.
Intel ist doch Little-Endian. Und zwar unter Mac wie unter Linux wie unter OS X. Nur die ältern PPC (bis G4) konnten neben Big-Endian auch noch Little-Endian für Emus. Seit G5 können sie nur noch Big-Endian. Wie löst denn Apple intern eigenlich das Problem? Und warum macht das dann unter Linux/Intel und Mac/Intel Probleme? Müsste doch eigentlich genau gleich klappen?!
Chris
 
Es liegt daran, dass einige der Tools nicht allgemein genug für Big und Little Endian geschrieben wurden. Da ich keinen Big Endian Computer hab, bin ich auf helfende Hände angewiesen, die eventuell Patches erstellen. Ich bin mir nicht mehr sicher, aber ich glaub das Hauptproblem war lzma. Kannst die Tools ja mal der Reihe nach ausprobieren. find-squashfs meine ich mal an Big Endian angepasst zu haben.

EDIT: Unter einem Intel Mac sollte es aber keine Probleme mit der Byte Order zu geben.

Mfg
danisahne
 
Ich hab zwischenzeitlich einen Intel Mac, weswegen ich auch das Basteln an dem "PPC-Enabler" aufgegeben habe. Das Interesse daran war ohnehin verschwindend gering.
Mit dem Intel Mac hatte ich noch keine Zeit, es zu probieren.

Trotzdem möchte ich hier mal meine bisherigen Erfahrungen mitteilen:

Am Mac ist zu berücksichtigen, dass einige der Programme, die von dem Hauptskript (fwmod) benötigt werden, standardmäßig nicht installiert sind, z.B. wget (Mac OS X kommt mit curl), dos2unix (kann nachinstalliert werden, muss man aber selbst kompilieren). Die wget Aufrufe kann man auf curl umschreiben. Besser installiert man auch wget nach, weil man das bei einem dsmod Update nicht wieder machen muss ;).

Weiteres Problem:
fwmod verwendet bei manchem Programmen die GNU Erweiterungen.
Das trifft u.a. auf das 'find' und das 'sed' Kommando zu.
Abhilfe:
Installieren der gnu-utils und Abändern der entsprechenden Aufrufe im fwmod und ggf. anderen Skripten.
Alternativ:
Installieren der gnu-utils und Arbeiten mir Aliassen im fwmod und ggf. anderen Skripten.

Zu guter Letzt gibt es noch eine Inkompatibilität mit dem 'cp'-Kommando.
Das kann man aber auch durch Änderung der Aufrufe im Skript ausbügeln. Wenn ich mich recht erinnere muss man '-R' und '-r' vertauschen.

Ich hoffe, das hilft dem einen oder anderen.
Wenn ich Zeit habe, probier ich das Ganze auf meinem Intel Mac auch mal aus.
 
Zuletzt bearbeitet:
Da ich gerade Zeit habe und auch Lust, das auf einem Mac hinzukriegen, wäre ich für den einen oder anderen Tip dankbar, wo ich mich einlesen muss. Squashfs hatte ich auf PPC aufgegeben, jetzt aber einen Intel hier stehen.

Wo finde ich die nötigen Informationen? Hat schon jemand Erfolg gehabt? Beim googlen find ich immer nur diesen Thread.

Bin für jeden Tip dankbar, wo ich noch gucken kann (muss)!
 
Ich hab's ja dann auch noch mal länger probiert und stolpere stets an der Geschichte hier:
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
Habe mir auch die aktuellste Version unsquashfs installiert (erhältlich bei sourceforge): selbes Ergebnis.
Ich hab sogar einen der Entwickler angeschrieben, habe aber leider keine Antwort erhalten.

Irgendwo hatte ich dann schließlich eine Version von unsquashfs-lzma gefunden, die angeblich Squashfs 2.0 filesystems verarbeiten kann, aber auch hier dieselbe Fehlermeldung.
 
Kann es sein, dass du ein squashfs genommen hast, das nicht mit Major 2 und Minor 76 gebaut wurde. Wir haben das im dsmod angepasst als AVM das abgeändert hatte. Außerdem meine ich, dass es da irgendwo ein Problem mit den Tabs in den Patches gab und deswegen irgendwas nicht geklappt hat.

MfG Oliver
 
Ich hatte vor gut einer Woche den aktuellen dsmod (ds-0.2.9-opensrc-04.06.tar.bz2.gz) herunter geladen und den Patch 8ds-0.2.9-p2.patch.bz2.gz9 ausgeführt.
Wenn da was nicht in Ordnung war, müsste ich es evtl. noch einmal versuchen.
 
So hatte ich das nicht gemeint.
Schau mal in tools/make/patches/100-lzma-and-unsquashfs.squashfs.patch. Da steht eine sed-Zeile für die squashfs_fs-lzma.h. Wird die denn angewendet?
In der suqashfs_fs-lzma.h müsste also die Zeile "#define SQUASHFS_MINOR 76" stehen.

MfG Oliver
 
Kann mir mal jemand verraten, wie ich die Tools überhaupt ans Laufen kriegen kann?

Der Kernel im OS X ist ja ein Mach mit Ähnlichkeiten zu BSD, aber den kann ich ja nun nicht mit den Patches für squashfs quälen.

Zum Fehler im 3.0, das mit 2ern gemachte FS nicht bearbeitbar sind, der soll im neuen Release behoben sein ( Squashfs 3.2-r2 released )

Wenn jemand einen guten Tip hat, oder es auf einem Mac hingekriegt hat...
 
Im Mod werden nur Userspace Tools für Squashfs benutzt, d.h. du mußt deinen Kernel nicht patchen.
 
Hallo

ich habe die Beiträge gelesen aber ich bin kein bißchen schlauer als vorher. ich bin auf der Suche nach einer Anleitung für das kompilieren eines neuen Betriebssystem für die FB. Als kleines Hinderniss, ich kann es nur auf einen Mac Rechner 10.4.8 ppc durchführen. Kann mir jemand helfen.

Vielen Danke im vorraus
 
Da ich keinen ppc Mac hab und es hier soweit ich weiß noch niemand auf einem solchen Mac geschafft hat, mußt du wohl selber etwas experimentieren und Fehler finden. Poste bitte deine Erfahrungen wieder hier, wenn du auf einen solchen Fehler gestoßen bist.

Mfg
danisahne
 
Doch. Siehe hier (mit Deiner Hilfe).
Im Augenblick versuche ich aber das auf einem Intel mac zum Laufen zu bekommen.

@imaccookie
An welcher Stelle hängst Du denn?
Soweit ich kann, helfe ich Dir gerne. Da der ds-mod ständig weiterentwickelt wird, ist aber nicht gesagt, dass das was bei mir mal geklappt hat, mit einem aktuellen Paket immer noch funktioniert.

====
Auf Intel sieht es bei mir inzwischen so aus:
Code:
STEP 1: UNPACK
unpacking firmware image
splitting kernel image
create_inode: could not create character device build/original/filesystem/dev/Piglet, because you're not superuser!
create_inode: could not create character device build/original/filesystem/dev/acxHwDrv, because you're not superuser!
.... (ungefähr hundert ähnliche Meldungen)
create_inode: could not create character device build/original/filesystem/dev/watchdog, because you're not superuser!
unpacking var.tar
done.

STEP 2: MODIFY
applying patches
before modpatch
make: *** [firmware] Error 2
Bin im Augenblick etwas ratlos.
Der Fehler wird hier erzeugt:
fwmod:
Code:
 563         for i in "${PATCHES_DIR}/${DS_TYPE_STRING}/"*.patch \
 564                  "${PATCHES_DIR}/${DS_TYPE_STRING}/${DS_TYPE_LANG_STRING}/"*.patch
 565         do
 566             modpatch "$FILESYSTEM_MOD_DIR" "$i"
 567         done

In der suqashfs_fs-lzma.h müsste also die Zeile "#define SQUASHFS_MINOR 76" stehen.
Danke für den Hinweis.
Das musste ich von Hand ändern.
Beim Mac OS X (=BSD) sed müssten die Tabs "wörtlich" eingegeben werden.
 
Oh, hatte nicht mehr in Erinnerung, dass es letztendlich doch geklappt hat.

Wörtlich? Meinst du \t oder das Tab-Zeichen?

Mfg
danisahne
 
@maceis
Die Firmwares mit Kernel 2.6 gehen nicht mit dsmod-0.2.9.
Um den Fehler zu sehen musst du den Bereich in der fwmod durch "set -x" bzw. "set +x" einrahmen.

MfG Oliver
 
@danisahne
anstelle von \t müsste ein echtes Tab-Zeichen stehen.
Beispiel:
Code:
echo -e "1\t2\t3" | sed -e 's/1     2/1     4/'
1       4       3

@ollistudent
Ich bin zurzeit ein wenig verwirrt, welchen Mod ich denn nun herunterladen muss und welche Patches erforderlich sind. Habe mich eine Weile nicht mit dem Thema beschäftigt.
Auf meiner Box läuft immer noch Firmware-Version 29.04.01ds-0.2.5
 
Zuletzt bearbeitet:
Noch immer: Kompilieren mit Intel Mac
olistudent schrieb:
@maceis
Die Firmwares mit Kernel 2.6 gehen nicht mit dsmod-0.2.9.
...
Ich hab jetzt mal den ds-0.2.9_26-13.tar.bz2 aus diesem Thread genommmen.
Verwendete Firmware: fritz.box_fon_wlan_7170.29.04.29.image
Ist das richtig so?

Das mache ich nach dem Entpacken:
Code:
make menuconfig
make

Ich komme (mit einigen Anpassungen) bis zum fakeroot Skript.
Das steigt mir dann aus, weil die Datei "libfakeroot.so" nicht gefunden wird.
Fehlermeldung:
Code:
STEP 1: UNPACK
unpacking firmware image
splitting kernel image
unpacking filesystem image
  fakeroot: preload library not found, aborting.
make: *** [firmware] Error 1
Meine Fragen:
  1. Woher müsste die Datei denn kommen?
  2. Was steht in der Datei drin? Ist das in irgendeiner Form systemabhängig?
  3. Kann man den Fehler irgendwie umgehen?
 
Zuletzt bearbeitet:
Du musst nach dem "make menuconfig" "make precompiled" machen.
Die libfakeroot wird von fakeroot gebaut. Das befindet sich unter /tools und ist dafür zuständig, dass nicht diese Fehlermeldungen kommen, die du oben gepostet hast und dass die Devices in /dev richtig angelegt werden. Unter cygwin hat das bei mir auch nicht funktioniert.

Heißen die Libs auf dem MAC anders? Google mal nach "fakeroot mac", vielleicht ist das erste Ergebnis was...

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.