Einzelnen Beitrag anzeigen
Alt 08.03.2008, 18:59   #1
syncBit
IPPF-Einsteiger
 
Registriert seit: 05.02.2008
Beiträge: 23
Samsung SMT-G3010, SMT-G3210, SMT-G3220: rootfs patchen

Anleitung zum Erstellen eines eigenen Updates mit geändertem root Filesystem für die Samsung Router.

Voraussetzung: Linux und das Wissen, damit umzugehen.
  1. Offizielle Firmware (V2.03) nehmen und auspacken:
    tar xvf SMT.....
  2. U-Boot header vom rootfs.img abschneiden:
    dd if=rootfs.img of=rootfs bs=64 skip=1
  3. rootfs auspacken:
    sudo unsquashfs-lzma rootfs
    damit wird das gesamte rootfs unter squashfs-root angelegt.
  4. Daten ändern.
    Fürs erste habe ich ein anderes root-password definiert und den Start vom telnetd umgebaut.
    Dateien squashfs-root/etc/passwd und squashfs-root/etc/passwd- ändern (neuen Password-Hash für root)
    Datei squashfs-root/etc/rc.d/rc.bringup_services_start:
    aus if [ -f /configs/etc/telnet_enable ]
    wird if [ ! -f /configs/ect/telnet_disable ]
    Dann ist telnet defaultmäßig an und kann durch anlegen der Datei /configs/etc/telnet_disable abgeschaltet werden.
    Weitere Änderungen sind jetzt nach eigenm Bedarf möglich.
    Und nun wieder alles einpacken:
  5. Squashfs erzeugen:
    sudo mksquashfs-lzma squashfs-root rootfs -be -noappend
  6. U-Boot Image generieren:
    mkimage -T filesystem -n “Amazon rootfs“ -C none -d rootfs rootfs.img
  7. Prüfsumme berechnen:
    sum rootfs.img
  8. Datei versionInfo.status anpassen:
    unbedingt bei ROOTFS_CHECKSUM die richtige Prüfsumme eintragen
    nach Bedarf: SYS_VER und DATE anpassen (Achtung: das Format von SYS_VER wird von der Web-Oberfläche geprüft und muss XX.YY lauten (02.03p1 geht auch, wird beim Update aber nicht angezeigt. 2.03.1 hat er der Router nicht angenommen).
  9. Tar-file packen:
    tar cvf SMTneu.tar *.img uImage versionInfo.status
  10. Und das Ergebnis dann dem Router als Update anbieten. Anschließend hat man einen Router mit V2.03 und funktionierendem Telenet Zugang.

Programme:
mksquashfs-lzma und unsquashfs-lzma stammen von der hier erwähnten Quelle. Man nehme die Programme für squashfs Version 2 und patcht die magic-Number.
mkimage stammt von u-boot-1.0.0.tar.bz2.

Hinweise:
Um mksquashfs für den Router zu nutzen, muss noch die Magic-Number gepatched werden:

in der Datei squashfs_fs.h SQUASHFS_MAGIC und SQUASHFS_MAGIC_SWAP in die von Samsung genutzte Magic-Number ändern:

// Standard (original):
#define SQUASHFS_MAGIC 0x73717368
#define SQUASHFS_MAGIC_SWAP 0x68737173

// Samsung:
#define SQUASHFS_MAGIC 0x73716C7A
#define SQUASHFS_MAGIC_SWAP 0x7A6C7173

Bei dem U-Boot Packet reicht es, mkimage von Hand zu compilieren. Hinweise dazu finden sich weiter hinten in diesem Thread.

--
Rechtliches: Dieser Beitrag steht unter der Creative Commons Namensnennung 3.0 DE Lizenz

Geändert von syncBit (23.09.2008 um 10:02 Uhr).
syncBit ist offline   Mit Zitat antworten