Erste Sat>IP-Geräte vorgestellt: Hardware- und Erfahrungs-Sammel-Thread

  • Habe nun meinen R1 in den Händen und natürlich gleich angehängt.


    Wenn man mit Telnet auf Port 23 ein login probiert beendet sich Telnet selbstständig. Deswegen habe ich den R1 aufgemacht und mir den RS232 Header gesucht und gefunden.


    Anbei das Boot Log des R1. Man könnte sich dann einloggen wobei ich aber kein passendes Passwort gefunden habe...


    Wie unterbreche ich den Bootloader damit ich in die Box "rein" kann?


    EDIT: Was ich vergessen habe ist zu erwähnen, dass der R1 anscheinend für einen Smartcard Reader vorbereitet ist.
    Die Frontblende verbirgt einen Schlitz und in der Platine befinden sich Befestigungslöcher. Es gibt auch noch 2 x 10 Pin Header wo der Reader wahrscheinlich angeschlossen werden kann.

  • Ok, uboot war auf silent gestellt.


    Auch ist die Baudrate von uboot 115200 und vom rest 9600.


    Silent entfernt und die Baudrate geändert und nun habe ich den kompleten Log.




    Kann mir nun einen Tipp geben wie ich per Hand das Kernel lade?

  • Kann mir nun einen Tipp geben wie ich per Hand das Kernel lade?

    Jau. Siehe auch mein Post #23:


    Beim automatischen Booten wird "bootcmd" aus dem environment ausgefuehrt. Bei deiner Box muesste das also mit


    Code
    1. nboot.jffs2 &load_addr fw1-nand0


    gehen.


    Wenn du vorher die $bootargs-Variable setzt, muesste deren Inhalt als commandline an den Kernel uebergeben werden. Es waere also einen Versuch wert, folgendes


    Code
    1. set bootargs init=/bin/sh
    2. nboot.jffs2 &load_addr fw1-nand0


    auszuprobieren, um direkt in einer rootshell zu landen.


    set sollte an sich harmlos sein, solang du nicht "saveenv" aufrufst, um die veraenderten Environment-Variablen im Flash zu verewigen.


    /edit: Interessant an der Buechse: der Update-Mechanismus (updatefw) laedt ein uboot-Script von USB und fuehrt das direkt aus. Damit koennte man prinzipiell eine modifizierte Firmware direkt von einem USB-Stick laufen lassen, ohne die Firmware im Flash ueberhaupt anzuruehren. ;)

  • Danke die Hilfe!


    Leider scheint es so noch nicht zu funktionieren. Bleibe dann wieder beim Konsole Login hängen.



    Wenn man das Update über den USB Stick lädt muss es dann "idl4k.scr" heißen oder täusche ich mich da?


    Tut leid, aber bin in Linux einfach nicht soo erfahren.

  • Hm, das koennte sogar funktionieren. Als ich mir die idl4k-Firmware angesehen hab, hab ich irgendwann aufgegeben.


    Ein Firmware-Image gibt's hier:


    http://www.inverto.tv/products/product.php?section=2&id=242


    Zu beachten waer noch, dass es sich dabei um uBoot-Images handelt, die kann man unter Linux mit mkimage zusammenbauen und ich glaube auch zerpfluecken.


    Wieso der Kernel den init-Bootparameter ignoriert hat, ist mir schleierhaft. Wobei ich das neulich in einem anderen Projekt auch hatte. Probier mal


    Code
    1. set bootargs rdinit=/bin/sh
  • Das image-File vom inverto ist halt keine ramdisk, sondern ein Linux-Kernel mit eingebetter ramdisk. Eine embedded initrd liegt dann meist als cpio-Archiv vor.


    Im Prinzip kannst du mit dem kernel_unpacked jetzt so weitermachen, wie in dem xda thread oben beschrieben.

  • Der nächste Schritt wär das Mounten:

    Code
    1. $ mdconfig -a -t vnode -f kernerl_unpacked md0
    2. $ mount -t ext2fs /dev/md0 /mnt


    Das mdconfig funktioniert aber nicht und als ext2fs mounten?
    Ich glaub das geht so nicht.

  • Also ich versuche mich gerade in Ubuntu das entpackte Image wie hier zu mounten.


    Leider kann ich zum Schluss den mount Befehl nicht vollenden.
    Es kommt immer:
    UBI Error: ubi_open_volume: cannot oben device .... error -19
    UBIFS: cannnot open ubi0



    Irgend eine Idee?
    Das mit dem bootargs rdinit hat auch nicht funktioniert.


    EDIT:


    Der Fehler liegt anscheinend beim ubiformat, da das entpackte Image kein "multiple" aus xxx ist....

  • Aeh, das wird nicht gehen. Die Firmware vom TSS400 ist anders strukturiert als die vom Inverto IDL400. Der TSS400 benutzt UBIFS fuer das Root- und Data-Filesystem, und der IDL400 benutzt eine im Kernel-Image eingebettete initrd.


    Ich wuerd halt mal versuchen, das Image mit cpio zu entpacken.

  • Also soweit bin ich gekommen:


    Zuerst vom Image die ersten 64 Bytes wegschneiden:

    Code
    1. dd if=idl4k.bin of=idl4k_short bs=64 skip=1


    Dann entpacken:

    Code
    1. zcat idl4k_short > idl4k_unpacked


    Dann cpio header rausfinden:

    Code
    1. grep -abo 0707010 idl4k_unpacked | head -n1


    Bei diesem Image:

    Code
    1. 4587520:0707010


    Dann mit cpio ab dieser Adresse entpacken:

    Code
    1. tail -c +4587521 idl4k_unpacked | cpio -idmv


    Nun kann man im Image herumstöbern.
    Aber ob es einen Weg zurück in ein Image gibt steht noch offen...

  • Jetzt habe ich ein Problem!


    Ich habe das Image zerlegt und neu zusammengebaut.
    Nach dem Upload kommt nun diese Meldung:


    Liegt das am falschen Imagetype?


    Nun brauche ich einen Weg zurück!
    Ich habe versucht das bin in idl4k.scr umzubenennen.
    Es wird beim Booten auch geladen, bricht aber dann ab:

    Quote

    19205154 bytes read
    ## Executing script at 84000000
    Bad image type




    Was nun??
    Hilfe!



    EDIT:


    Als Info, habe mit uboot das originale Image vom USB Stick geladen und gebooted. Dann die originale Firmware über das Webinterface nochmal runtergeschickt - läuft wieder! ;)

  • Also ich komme nicht recht weiter.
    Es ist mir kein Problem den cpio Part vom Image zu entpacken.


    Aber wo ich ein bisschen auf dem Schlau stehe ist der Binary Part vor und nach dem cpio Archiv.


    Jemand einen Tipp?


    Hier ein Log von binwalk. Das erste "cpio" Archiv bei Adresse 0x390418 kommt aus dem source initramfs.c und gehört zu einem Image...

  • Habe jetzt das cpio Archiv wieder richtig zusammen gebaut und habe dadurch nun root Access.




    Was ich nicht ganz verstehe ist, dass Telnet nicht geht. Es gibt die /usr/sbin/telnetd.


    Ein starten in der console mit /usr/sbin/telnetd -l /bin/sh funktioniert nicht!?



    PS: Außerdem habe ich ein par nette Sachen gefunden (Samba, PVR Funktion im Beta Test, Dropbox)

  • Ich habe jetzt mal eine Frage an die Linux Kenner!


    Ich bekomme Telnet einfach nicht gestartet.
    Busybox Info:


    Originalzustand der inetd.conf:

    Code
    1. 23 stream tcp nowait root /bin/busybox telnetd -i -l /bin/login


    Keine services oder protocols datei vorhanden.


    Wenn ich mit ps die Prozesse überprüfe läuft /usr/sbin/inedt.
    Auch wenn ich in der Konsole telnetd zu starten:

    Code
    1. /bin/busybox telnetd -i -l /bin/login


    taucht Telnetd nicht in den Prozessen auf.
    Eine Verbindung kann auch nicht aufgebaut werden.


    Die Eingabe:

    Code
    1. /bin/busybox telnetd --help


    bleibt stumm.


    Habe schon versucht eine services und protocols anzulegen usw aber Telnet startet einfach nicht.


    Was kann das sein?

  • Quote

    Das sieht aber mal interessant aus :wow .
    Wenn die Devices echt funktionieren sollte man einen VDR auch direkt auf der Kiste laufen lassen können.

    Gruss
    SHF


  • Hier jetzt einmal die Daten was ich zusammen gesammelt habe!


    Zuerst das Script um das Image (idl4k.bin) zu zerlegen und wieder zusammen zubauen:


    Mann kann dann das initramfs cpio Archiv bearbeiten. Bei veränderungen muss sich das natürlich wieder von der Größe ins alte Image reinpassen.


    Infos zur Harware:



    UD1 K4B1G1646G-BCH9 1Gbit DDR3 SDRAM 1333MHz
    UD2 K4B1G1646G-BCH9 1Gbit DDR3 SDRAM 1333MHz
    UC1 K4B1G1646G-BCH9 1Gbit DDR3 SDRAM 1333MHz
    UC2 K4B1G1646G-BCH9 1Gbit DDR3 SDRAM 1333MHz
    U1503 RTL8211EG Integrated 10/100/1000 Gigabit Ethernet Transceiver
    U1402 PS54426 4A synchronous DC-DC buck converter
    U23 ACI1528 CS05023
    U29
    U8 STV0900B DVB-S2 Demodulator
    U18 STV0900B DVB-S2 Demodulator
    U16 LNBH24 Dual LNB supply and control IC with step-up and IýC interface
    U17 LNBH24 Dual LNB supply and control IC with step-up and IýC interface
    U405 NQ277 NAND Flash
    U404 X25L 128MB Flash
    UK2 HT24LC64 64k EEPROM




    Zusätzlich ist ein Cardreader beim Board vorgesehen. Es gibt einen RS232 Header.
    Einen 10-poligen Pinheader - wahrscheinlich JTAG.
    Einen 10-poligen kleinen Header - keine Ahnung, aber vielleicht eSATA da der Chip das kann.
    Auch ist ein IR-Receiver vorgesehen.


    Die Hauptanwendung ist die s2i.bin.
    Diese enthält den Sat2IP Server mit dem Webserver. Auch diese habe ich mir etwas angesehen.
    Sie ist wie schon bekannt eine Universalfirmware für die 3 Hersteller. Es wird dann einfach das Logo ausgetauscht.
    Auch habe ich eine Beta-PVR-Funktion in der Anwendung entdeckt.
    Habe aber keine Idee wie diese Aktiviert wird. Ich schätze die Einstellungen der Anwendung werden in dem 64kB EEPROM gepeichert und dort
    könnte man dann diese Funktion aktivieren.


    Ich habe es aber nicht geschafft Telnet ans laufen zu bekommen. Das telnetd wird einfach nicht gestartet.


    Samba ist auch schon drinnen aber einfach nicht gestartet.


    Ich habe leider zuwenig Zeit und Ahnung hier großartig was zu machen.



    EDIT:


    Der IC U1001 der nicht bestückt ist müsste für den ST8024 sein. Dieser ist für das Smartcard Interface nötig.


    mfg


    Unterseite des Boards:


    Oberseite des Boards:

  • Also ich bin gerade dabei etwas herum zu schnüffeln was man an der Box noch machen kann.


    Ich möchte gerne die originale SAT-IP Anwendung austauschen.


    Erste Idee: VDRAlso ich bin gerade dabei etwas herum zu schnüffeln was man an der Box noch machen kann.


    Ich möchte gerne die originale SAT-IP Anwendung austauschen.


    Erste Idee: VDR
    Aber wozu OSD auf der Box?


    Zweite Idee:
    tvheadend
    Aber ich finde nichts zu sh4 STLinux!?


    Hat da jemand einen Tipp?