Um überhaupt ein Firmware-Mod erstellen zu können benötigt man eine passende Entwicklungsumgebung. Wie bei Vielem gilt auch hier - Viele Wege führen nach (zum
) Rom -. In diesem Abschnitt werden die Entwicklungsumgebungen Vorgestellt und erläutert wie man sie erzeugt und einrichtet.
- Kann unter vielen Windows Versionen und auch anderen Betriebssytemen eingerichtet werden !
- Der Aufbau erfolgt Schritt für Schritt und ist damit nachvollziehbar !
- Eigene Erweiterungen und Modifikationen der Plattform sind leicht möglich !
Author Christof Rieger (Prediger)
Das Toolchain wird benötigt um neue Programme zur Box passend kompilieren zu können.
Diese Version entspricht der Version von xor16rox auf http://bitflip.de/samsung/ nur, dass alles entfernt wurde, was wärend der Installation noch aus dem Internet geladen werden kann.
Das sind ware Schatzkisten, da sich auch Module darin befinden, die in der Box nicht vorhanden sind.
http://www.samsung.com/global/business/telecomm/product/download/SMT-G3000_opensrc.tbz http://www.samsung.com/global/business/telecomm/product/download/SMT-G3200_opensrc.tbz http://www.samsung.com/global/business/telecomm/product/download/SMT-G3010_opensrc.tbz http://www.samsung.com/global/business/telecomm/product/download/SMT-G3020_opensrc.tbz http://www.samsung.com/global/business/telecomm/product/download/SMT-G3210_opensrc.tbz http://www.samsung.com/global/business/telecomm/product/download/SMT-G3220_opensrc.tbz
man kann sie einfach mit
wget http://www.samsung.com/global/business/telecomm/product/download/SMT-G[Typ]_opensrc.tbz
in ein beliebiges Arbeitsverzeichnis downloaden und mit
tar -xvjf SMT-G[Typ]_opensrc.tbz
entpacken. Das Paket befindet sich dann im Unterordner GPL_[Typ]
Zuletzt in der Datai
/[Mein Open-Source-Pfad]/GPL_[Typ]/build/tools/Path.sh die Einträge
TOPDIR=/[Mein Open-Source-Pfad]/GPL_[Typ]/ und
TOOLCHAIN_DIR=/[Installationspfad des Toolchain]/toolchain_mips/bin/ der eigenen Installation anpassen.
!!! WICHTIG !!! Unscheinbare fehlerhafte Veränderungen können dazu führen, dass nach dem Einspielen die Box nicht mehr funktioniert und unter Umständen nur noch Edelschrott ist !!! Die Authoren übernehmen hierfür keinerlei Haftung. Jeder Modifikation geschieht vollständig auf eigene Gefahr !!!
Im Post 231 findet man Skripte, die nach den folgenden Bechreibungen ablaufen.
Skript- und Config-Mods können alleine durch Änderungen in Dataisystem und der Veränderung und Ergänzung von Skrip- und Configurationsdateien erstellt werden.
Ermöglicht das Root-Login
Getestet auf:
Ermöglicht das Einlogen über eine Telnetkonsole
Getestet auf:
3.1.3 Systemerweiterung auf USB-Stick
Verlinkt beim Booten das Verzeichnis SMT_ext im Rootverzeichnis eines belibigen FAT32 USB-Sticks auf /ramdisk/SMT_ext/ und führt wenn vorhanden das Skript in [MeinStick]/SMT_ext/etc/init.d/rc.expand aus.
Getestet auf:
Für Binary-Mods benötigt man eine systemspezifische Crosscompilerumgebung auch Toolchain genannt. Diese muss man zu erst erstellen. Zum SMT-Toolchain aufspielen.
Ermöglicht den Zugriff über SSH, z.B. mit WinSCP (unter SCP) und Putty
Benötigt Mod:
Getestet auf:
Vorrausetzung für diese Mods, ist der Mod unter 3.1.3.
3.3.1 Web-Frontend auf dem USB-Stick
Erzeugen und aktivieren des Web-Frontends der Box auf einem USB-Stick. Damit kann das Web-Frontend bequem angepasst und modifiziert werden. Besonders gut geht das, wenn man auch den Zugiff über WinSCP ermöglicht hat.
Getestet auf:
Vorraussetzung:
Im Verzeichnis /[Mein Open-Source-Pfad]/GPL_[Typ]/kernel/opensource/linux_2_4_20/
make mrproper setzt die gesammte kernelconfiguration in den „Auslieferungszustand“
make menuconfig ausführen und die gewünschten Module mit der Leertaste als <M> kennzeichnen und mit Exit verlassen dannach die Speicherung bestätigen.
make dep
make modules
Beispiel: Sound über USB-Soundmodul
Die erzeugten Kernel-Module auf die Box kopieren, das kann auch auf den USB-Stick sein. Dann mit insmod [voller Pfad zum Modul]/[Modul] in den Kernel laden. Die Reihenfolge bei von einander abhängigen Modulen muss natürlich stimmen. Wenn man mit insmod arbeitet und z.B. in einem Skript sicherstellt, das die Ladereihenfolge stimmt so benötigt man keine Einträge in der modules.dep. Bei falscher Reihenfolge wird das Modul einfach nur nicht geladen, man kann die Reihenfolge somit einfach durch Probieren ermitteln. Mit lsmod kann ich prüfen, ob das Modul geladen wurde.