-------............

Status
Für weitere Antworten geschlossen.
Ich würde mal sagen eindeutig der Hersteller und nicht der Verkäufer.
Aber ich denke mal das ist denen egal und die rücken nichts raus. Jedenfalls nicht ohne Druck.

EDIT:
syncBit schrieb:
  1. Eine Kopie der GPL beiliegen, mit dem Hinweis, dass GPL Code verwendet wird
  2. Der vollständige Quellcode, maschinenlesbar (z.B. auf der beiliegend CD)
  3. oder ein schriftlicher Hinweis, woher man den Quellcode bekommen kann.
Na so ganz glaube ich das aber nicht. Jedenfalls habe ich in meinen AVM Kisten noch nie sowas gefunden!
 
Ich denke Freenet ist verpflichtet den Quellcode zu liefern und nicht Samsung. Samsung verkauft ja weder Router an Endkunden noch bieten sie die Firmware zum Download an.

Die GPL verpflichtet ja nicht generell dazu, den Quellcode zum Download anzubieten; lediglich Kunden, die ein GPL-basiertes Programm in Binärform (z.B. ein Firmwareupdate oder ein Router mitsamt Firmware) bekommen, müssen auch den Quellcode dazubekommen. Bei Samsung ist lediglich Freenet "Kunde", d.h. sie müssen den Quellcode nur an Freenet weitergeben.

EDIT:
Na so ganz glaube ich das aber nicht. Jedenfalls habe ich in meinen AVM Kisten noch nie sowas gefunden!
Bei meinem Netgear-AP war so ein Kärtchen mit Hinweis auf die GPL und Webadresse für die Quellen dabei, und zusätzlich noch die GPL in gedruckter Form.
 
Zuletzt bearbeitet:
Ich würde mal sagen eindeutig der Hersteller und nicht der Verkäufer.
Ganz so eindeutige ist das meiner Meinung nach nicht. Ich kann mir gut vorstellen, das für die Einhaltung der GPL der "Inverkehrbringer" zuständig ist. Und das ist in unserem Fall nunmal Freenet, da es diese Kisten nicht direkt beim Hersteller zu kaufen gibt.

Aber ich denke mal das ist denen egal und die rücken nichts raus. Jedenfalls nicht ohne Druck.
Darum ja: Druck aufbauen. Am Ende haben Freenet und Samsung eindeutig die schlechteren Karten. Es gibt inzwischen genug Gerichtsurteile, die die Gültigkeit der GPL bestätigen.

  1. Eine Kopie der GPL beiliegen, mit dem Hinweis, dass GPL Code verwendet wird
  2. Der vollständige Quellcode, maschinenlesbar (z.B. auf der beiliegend CD)
  3. oder ein schriftlicher Hinweis, woher man den Quellcode bekommen kann.
Na so ganz glaube ich das aber nicht. Jedenfalls habe ich in meinen AVM Kisten noch nie sowas gefunden!

Was noch lange nicht heißt, dass das nicht eigentlich drin liegen müsste. Anscheinend hat nur noch niemand die Lust gehabt, das volle Programm incl. Klage durchzuziehen.

Weitere Hinweise, für die die des englischen mächtig sind, sind unter der bereits von xor16rox zitierten Webseite zu finden. Meine Hinweise sind eigentlich nur eine deutsche Kurzfassung der Hinweise bei:
http://gpl-violations.org/faq/vendor-faq.html
 
Ich möchte nun nicht eure Diskussion zu der Lizenz unterbrechen, aber ich habe mal schnell eine Frage zu dem DHCP-Server auf dem Ding.
Ich benutze als Provider Alice und die haben sehr langsame DNS-Server, vor allem in den Spitzenzeiten. Nun wollte ich den Router so einstellen, dass er mir via DHCP als DNS den meiner Uni zuteilt, und als sekundären den von Alice.
Dazu habe ich schon ein paar Variablen in der rc.conf ausprobiert um das einzustellen, allerdings bisher ohne Erfolg:
Code:
dhcps_opt_dns="139.30.8.8 192.168.1.1"
#oder so
dhcps_dns_1=139.30.8.8
dhcps_dns_2=192.168.1.1
Auf die zweite Möglichkeit bin ich gekommen, weil ich so etwas ähnliches hier gefunden habe. Allerdings verstehe ich die Seite nicht ganz.
Ich hoffe mal ihr versteht was ich meine und könnt mir eine Antwort darauf geben.
Zu der Lizenz:
Bei wem soll man denn jetzt Druck machen, damit die den Code rausrücken? Samsung oder Freenet?
 
Ich meine mal mit der alten Firmware (V1.02) ging es über das zweite Webinterface.
Und die Zeile:
dhcps_opt_dns="139.30.8.8 192.168.1.1"
schaut mir eher unlogisch aus. Ich denke das es nicht gehen wird, weil zwei IP-Nummern hintereinander stehen.
 
Ich habe noch die alte Firmware drauf, also die erste, aber ich komme nicht auf das zweite Webinterface. Also gesehen habe ich es schon, aber mein Passwort ist angeblich falsch, obwohl es beim richtigen funktioniert. Oder muss ich da ein anderes Passwort nehmen?
 
Für das zweite Webinterface benötigte man kein Passwort. Bei der Passwortabfage einfach "OK" klicken.
 
Ich muss nochmal eine frage zum dropbear anbringen.
ich will den router in einem studentenwohnheim einsetzen und dazu müsste ich eine SSH Verbindung von der Box nach Außen aufbauen, aber ich bekomme das mit dem dropbear nicht gebacken. Ich weiß noch nicht mal, ob da überhaupt ein Client dabei ist. Vielleicht mag mir ja jemand helfen =)

btw: Ich hab noch die alte firmware drauf!
 
Ich muss nochmal eine frage zum dropbear anbringen.
Hab ich die Frage nicht schon mal beantwortet? ;) AFAIK ist der Client nicht in dem dropbearmulti - Binary auf der Box enthalten.

Aber weil ich die Toolchain ohnehin mal ausprobieren wollte, hab ich mal grad den dbclient einer neueren Version cross-kompiliert.

Auf die Box nach /configs kopieren, chmod +x /configs/dbclient, und dann mit /configs/dbclient ausfuehren.

Edit:
Hab auch noch das entsprechende scp-Programm beigelegt.
 

Anhänge

  • dropbearclient-50.zip
    101.5 KB · Aufrufe: 20
Zuletzt bearbeitet:
Sieht so aus als ob das hier der entsprechende Patch ist: http://oleg.wl500g.info/lzma/

Mit diesem geaenderten mksquashfs Binary kann ich ein Dateisystem erzeugen, das sich dann auch wiederum von der Box mounten laesst. Vom Kernel Support her scheint's also zu funktionieren. Allerdings ist die Magic dann "hsqs", und das Image ist etwas groesser:

6619200 2008-01-11 12:16 rootfs.img
6610944 2008-02-28 21:19 rootfs-n.img

Ob man damit wohl booten koennte?


Edit:
Ich seh grad die Kernel-Meldung beim Mounten:
SQUASHFS: Mounting a different endian SQUASHFS filesystem on sd(8,1)
Dann ist das wohl doch die Standard Magic + Endianness..., hatte den Commandline-Switch fuer Endianness uebersehen...
 
Zuletzt bearbeitet:
Hört sich ja gut an. Du kannst vielleicht mal den Superblock von dem was du erzeugt hast mit dem Originaldateisystem vergleichen, siehe z.B. squashfs_super_block hier.

Um davon zu booten muss wohl auch noch der u-boot-Header vor dem Dateisystem angepasst werden, in dem die Größe und eine CRC-Summe steht.

Laut /proc/mtd ist der Flash-Block mit dem Root-Dateisystem (komischerweise gibt es zwei davon, keine Ahnung warum) 6.5 MB (6815744 Bytes) groß, größer darf das Dateisystem also nicht sein.
 
Ok, das mksquashfs-lzma von Freund Oleg ist kompatibel mit dem hier enthaltenen. Das Image laesst sich damit unsquashfs'en. Und auch ein von diesem mksquashfs-lzma erstelltes Image laesst sich auf der Box mounten.

Ich hab jetzt mal ein Test-Image erstellt. Ausgangspunkt war das Tar-Archiv meines Live-202 Rootfs. Ich habe zwei kleine Veraenderungen gemacht: Einmal die Default-Konfiguration in /usr/default_db geaendert, so dass unser bekanntes Passwort verwendet wird und telnet_enable gesetzt ist. Zum anderen das dropbearmulti -Binary ersetzt durch eine aktuelleres, das sowohl den SSH-Server als auch den Client enthaelt.

Dieses Test-Image laesst sich auch auf der Box mit /usr/sbin/update flashen. Die Befehlssyntax ist so:
/usr/sbin/upgrade rootfs.img rootfs 0 1. (Das rootfs-Image muss man vorher irgendwo nach /ramdisk/upgrade/ oder so kopieren und dann in dieses Verzeichnis wechseln).
Danach kommt die Meldung: Upgrade : successfully upgraded rootfs
Der uboot-Header sollte stimmen, (bin nicht sicher beim data size Feld, das scheint sehr ungenau zu sein) wird aber von diesem Update-Programm AFAIK nicht verwendet. Jedenfalls kommt eine entsprechende Meldung. Das ist bei den offiziellen Images genauso.

Einen Reboot nach dem Flashen hab ich noch nicht gewagt. Da wuerd ich gerne anderen mutigen Freunden der Forschung den Vortritt lassen. Oder gibt's jemanden, fuer den die Samsung-Box entbehrlich ist? Freiwillige vor...! ;)

http://bitflip.de/test/rootfs-3210-test.zip
(Vorsicht. Ungetestet. Testen auf eigene Gefahr).

(Alternativ muessten wir weiter suchen, ob wir nicht doch noch was Brauchbares ueber die Magic 'sqlz' rausfinden, oder ueberlegen, ob in Richtung Network-Boot was zu machen ist.)

Kennt sich jemand mit tftp-boot aus? Waer das ne Option, ein rootfs-Image zu testen, ohne zu riskieren, dass die Box nicht mehr bootet? (Ich hatte das mal fuer die dbox2 am Laufen, hab davon aber nicht viel Ahnung).
 
Ok, das mksquashfs-lzma von Freund Oleg ist kompatibel mit dem hier enthaltenen. Das Image laesst sich damit unsquashfs'en. Und auch ein von diesem mksquashfs-lzma erstelltes Image laesst sich auf der Box mounten.

Nach einige Kämpfen mit dem Ubuntu im VMWare-Player bin jetzt auch (fast) soweit.
Ich kann zumindest mit dem erwähnten tool das Image auspacken (nachdem ich einfach die Magic Number im squashfs_fs.h gepatched habe).

Als erste Tat habe ich mir mal mit dd einen dump von mtd3 und mtd4 gezogen und reingeschaut.
Auf meinem 3010 findet sich bei mtd3 das erwartete rootfs. Der Inhalt von mtd4 sieht so ähnlich aus, nur ist es das rootfs für ein 3020 !

Kein Plan wofür das da drin steckt. Eventuell ist der 2. Flashblock als backup gedacht, wenn das rootfs defekt ist und die Kiste versucht es im 2. Anlauf von dem Block. Das würde dann natürlich etwas mehr Spielraum für Experimente lassen, wenn es stimmt.

Dieses Test-Image laesst sich auch auf der Box mit /usr/sbin/update flashen. Die Befehlssyntax ist so:
/usr/sbin/upgrade rootfs.img rootfs 0 1. (Das rootfs-Image muss man vorher irgendwo nach /ramdisk/upgrade/ oder so kopieren und dann in dieses Verzeichnis wechseln).
Wo schreibt der das rootfs hin? mtd3 oder mtd4?
 
Laut der U-Boot Konfigurationsdatei in der Mitte von /dev/mtd/6, wird in jedem Fall das root-Dateisystem von mtd3 gemountet. mtd4 ist wahrscheinlich dazu gedacht, um nur Not über die serielle Konsole manuell davon zu booten. Dass bei Problemen automatisch davon gebootet wird glaube ich nicht, dazu müsste sich ja was in der U-Boot-Konfiguration finden. Falls sowas überhaupt möglich ist.

Darüber hinaus haben die VoIP-losen Modelle 3200 und 3000 das zweite rootfs auf mtd4 scheinbar gar nicht; laut init.d/rcS wird bei denen das configs-Verzeichnis von mtd4 statt von mtd5 gemountet. Es kann also nicht unbedingt erforderlich sein.

@xor16rox: Woher weißt du denn wie /usr/sbin/upgrade aufzurufen ist?

Ich kann jetzt auch nichts weiter ausprobieren, ich hab sonst keinen Router und brauch meinen G3010 für Telefon und Internet...

Hier noch das was in /dev/mtd/6 zu finden ist. Anscheinend ist Booten über NFS schon vorgesehen, mann müsste es nur über die serielle Konsole auswählen:
Code:
bootcmd=run flash_flash
baudrate=115200
preboot=echo;echo Type "run flash_nfs" to mount root filesystem over NFS;echo
mem=64M
netdev=eth1
baudrate=115200
rootpath=/opt/nfs
nfsargs=setenv bootargs root=/dev/nfs rw nfsroot=$(serverip):$(rootpath)
ramargs=setenv bootargs root=/dev/ram rw
addip=setenv bootargs $(bootargs) ip=$(ipaddr):$(serverip):$(gatewayip):$(netmask):$(hostname):$(netdev):off
addmisc=setenv bootargs $(bootargs) console=ttyS0,$(baudrate) ethaddr=$(ethaddr) mem=$(mem) panic=1 flash_number=$(flash_number) rootfstype=squashfs
flash_nfs=run nfsargs addip addmisc;bootm $(kernel_addr)
ramdisk_addr=B0100000
flash_self=run ramargs addip addmisc;bootm $(kernel_addr) $(ramdisk_addr)
bootfile=/tftpboot/AMAZON/uImage
net_nfs=tftp 80500000 $(bootfile);run nfsargs addip addmisc;bootm
u-boot=/tftpboot/AMAZON/u-boot.bin
load=tftp 80500000 $(u-boot)
update=protect off 1:0-2;era 1:0-2;cp.b 80500000 B0000000 $(filesize)
flash_flash=run flashargs addip addmisc; bootm $(kernel_addr)
update_uboot=tftpboot 80400000 u-boot.img;upgrade uboot 80400000 $(filesize) 0
update_kernel=tftpboot 80400000 uImage;upgrade kernel 80400000 $(filesize) 0
update_rootfs=tftpboot 80400000 rootfs.img;upgrade rootfs 80400000 $(filesize) 0
update_firmware=tftpboot 80400000 firmware.img;upgrade firmware 80400000 $(filesize) 0
reset_uboot_config=erase 0xB3FF7000 0xB3FF7BFF 1; erase 0xB3150000 0xB315FFFF 1
part0_begin=0xB3000000
part1_begin=0xB3020000
part2_begin=0xB3060000
part3_begin=0xB3160000
part4_begin=0xB37E0000
part5_begin=0xB3E60000
part6_begin=0xB3FE0000
total_part=7
flash_number=1
flash_end=0xB3FFFFFF
data_block0=uboot
data_block1=firmware
data_block2=kernel
data_block3=rootfsA
data_block4=rootfsB
data_block5=configs
data_block6=sysconfig
data_block7=ubootconfig
data_block8=calibration
data_block9=voip
total_db=10
f_kernel_end_addr=0xB314FFFF
f_configs_addr=0xB3E60000
f_configs_size=0
f_version=U-Boot 2.6.0-M1664  Flash:N
f_sysconfig_addr=0xB3FE0000
f_sysconfig_size=0
f_ubootconfig_addr=0xB3FF7000
f_ubootconfig_size=0x0C00
f_fwdiag_addr=0xB3FFFC00
f_fwdiag_size=0x0200
f_calibration_addr=0xB3FFFE00
f_calibration_size=0x0200
f_voip_addr=0xB3FF7C00
f_voip_size=0x8000
bootargs=root=/dev/mtdblock3 ip=192.168.1.250:192.168.1.1::::eth1:off console=ttyS0,115200 ethaddr=08:08:08:10:10:10 mem=64M panic=1 flash_number=1 rootfstype=squashfs
stdin=serial
stdout=serial
stderr=serial
f_firmware_size=0x0002d000
f_firmware_addr=0xb3020000
filesize=511040
ipaddr=192.168.220.10
serverip=192.168.220.100
f_rootfsB_size=0x0064c000
f_rootfsB_addr=0xb37e0000
f_rootfsB_end=0xb3e2c000
f_kernel_size=0x000b2f64
f_kernel_addr=0xb3060000
kernel_addr=0xb3060000
f_rootfsA_size=0x00652000
f_rootfsA_addr=0xb3160000
f_rootfsA_end=0xb37b2000
f_runningset=A
flashargs=setenv bootargs root=/dev/mtdblock3
f_uboot_size=0x0000e94e
f_uboot_addr=0xb3000000
bootdelay=0
ethaddr=00:16:32:89:E2:92
cpeid=0000F0-00163289E292
passwd=AA3C06GI96I6
 
Wo schreibt der das rootfs hin? mtd3 oder mtd4?
Das kann wechseln. Normalerweise bei nicht offiziellen Images in den je anderen Speicher. Wenn kein uboot-Header dabei ist, werden vor dem Image noch 8 Bytes eingefuegt. (Die ersten vier koennten die Grosse des Dateisystems sein). Mit uboot-Header passiert das anscheinend nicht, da beginnt der mtd-Inhalt dann direkt mit der Magic.

Wenn man ein offizielles Image flasht, sieht man keine Veraenderung, i.e., der Speicherbaustein, in den man frueher ein nicht offizielles Image geschrieben hat, wird dann nicht ueberschrieben. Man kann aber anscheinend einen Wechsel des aktiven mtd forcieren, indem man zweimal ein offizielles Image flasht. Nach einem reboot ist dann der andere mtd aktiv.

earthcrosser schrieb:
@xor16rox: Woher weißt du denn wie /usr/sbin/upgrade aufzurufen ist?
Ich hatte mal in der alten Firmware eine Datei /configs/etc/write_log. (Bin nicht sicher, ob die von Anfang an da war, oder irgendwann mal spontan "entstanden" ist. ;) Sie scheint der Output von /usr/sbin/write.sh zu sein). Die sah stark nach einem Log des Update-Prozesses aus, da hatte ich das einfach mal probiert. Genau gesagt hab ich bisher nur den rootfs Teil versucht. Und der funktioniert, zumindest fuer die offizielle Firmware. Geschrieben werden inoffizielle Images auch, aber was nach einem Reboot passieren wuerde, wissen wir halt derzeit nicht.

Hier ist der Inhalt der Datei:

Code:
/usr/sbin/upgrade /ramdisk/upgrade/pgm/tmp/rootfs.img rootfs 0 1 
Fri Jan  4 19:12:10 UTC 2008
Fri Jan  4 19:13:28 UTC 2008
RV = 0

/usr/sbin/upgrade /ramdisk/upgrade/pgm/tmp/uImage kernel 1 1 
Fri Jan  4 19:13:29 UTC 2008
Fri Jan  4 19:13:44 UTC 2008
RV = 0

/usr/sbin/upgrade /ramdisk/upgrade/pgm/tmp/firmware.img firmware 0 1 
Fri Jan  4 19:13:45 UTC 2008
Fri Jan  4 19:13:52 UTC 2008
RV = 0
 
Zuletzt bearbeitet:
Ergebnis weiterer Forschungsarbeiten:

upgrade ist so freundlich uns mitzuteilen, was die Argumente bedeuten:
Code:
# upgrade
Usage : upgrade file_name image_type expand_direction saveenv_copy [reboot]
ToolChain:3.0.0
Version:1.0.5

Wobei mir nicht klar ist, was expand_direction bedeuten soll.

Offensichtlich wird zwischen den beiden möglichen Partitionen für das rootfs hin- und hergeschaltet. Darauf deutet zumindest der Parameter: "f_runningset" in der U-Boot conf hin. (Wer auch immer den schreibt. Ich habe da upgrade in verdacht, der ja auch nix weiter als ein link auf ifx_util ist).

Der Bootloader U-Boot bietet eine ganz Reihe von Möglichkeiten, wenn man an der seriellen Schnittstelle hängt. Damit sollte sich auch ein misslungenes rootfs Update wieder gerade biegen lassen.

Ich werde mal versuchen, nächste Woche die Zeit für einen ersten Bootversuch mit geändertem Rootfs zu finden. Dafür habe ich mir schließlich einen 2. Router zum spielen bei e-bay besorgt.
 
Hallo,
habe mir heute einen 3210 ersteigert. Die SW Version ist 1.02.
Bei freenet auf dem FTP ist eine SMT-G3210_V2.03_250208.tar Version, kann ich mit der andere Provider nutzen ?
 
hat sich erledigt, habe entsprechenden Beitrag gefunden.
 
was man mit dem router alles machen kann, ist echt der wahnsinn.
wenn ich es jetzt noch irgendwie hinbekomme, dass er nicht versucht sich via dsl einzuwählen, sondern einfach meine feste WAN IP und GATEWAY nimmt .. dann bin ich restlos glücklich. vielleicht mag mir ja einer von euch wissenden dabei helfen :D
 
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.