[HowTo] IDL4k basierte Boxen modifizieren (Digibit R1,DSI 400, IDL400s)

  • Leider sind die entscheidenden Sachen, wie die Kernelmodul-Sourcen (stapi-Sourcen) etc. nicht dabei. Die Sourcen des verwendeten Kernels gibts ohnehin im Netz. Nicht mal das ".config" File ist dabei, damit man wüsste mit welchen Optionen der Kernel kompiliert ist.


    Viele Grüße

  • Ja schon klar dass die stapi sourcen nicht dabei sind. Aber zumindest braucht man nicht mehr gross reverse engineeren welche version der einzelnen Module verwendet wird. Die Sourcen zur 1.16 Version schicken die mir auch noch. Werde die Sourcen dann dem git Repository hinzufügen.


    Ich denke man könnte mit dem Script zum auspacken und den sourcen eine toolchain aufbauen, die automatisch das System nachbauen kann indem es die Sourcen kompiliert und die binär Dateien kopiert.
    Dann könnte man relativ leicht fixes und Änderungen machen.


    Da ich nichts mit Linux sondern nur auf OSX und FreeBSD unterwegs bin wäre es gut, wenn das jemand mit Linux Erfahrung machen könnte.


    Ich würde der Box zum Beispiel gerne beibringen komplett einzuschlafen wenn niemand drauf zugreift. Der Ethernetchip ( http://download3.dvd-driver.cz…(vl)-cg_datasheet_1.6.pdf ) unterstützt neben GreenEthernet auch WOL , so dass man die Box (falls die verschiedene Powermodi unterstützt ) gleich aufwecken könnte wenn darauf zugegriffen wird.
    Mit einem Bonjour Sleep Proxy im lokalen Netzwerk würde dann auch noch Bonjour announced werden wenn die Box schläft, bei UPnP weiss ich nicht ob es etwas ähnliches gibt.

  • Edit:
    Config für idl4k erstellen:

    Code
    1. root@ubuntu:/usr/idl4k/idl4k-master/linux# make ARCH=sh CROSS_COMPILE=/opt/STM/STLinux-2.4/devkit/sh4/bin/sh4-linux- O=/usr/idl4k/build/kernel idl4k_defconfig


    Modules erstellen:

    Code
    1. root@ubuntu:/usr/idl4k/idl4k-master/linux# make ARCH=sh CROSS_COMPILE=/opt/STM/STLinux-2.4/devkit/sh4/bin/sh4-linux- O=/usr/idl4k/build/kernel modules


    vmlinux erstellen:

    Code
    1. root@ubuntu:/usr/idl4k/idl4k-master/linux# make ARCH=sh CROSS_COMPILE=/opt/STM/STLinux-2.4/devkit/sh4/bin/sh4-linux- O=/usr/idl4k/build/kernel vmlinux


    berreinigen:

    Code
    1. root@ubuntu:/usr/idl4k/idl4k-master/linux# make ARCH=sh CROSS_COMPILE=/opt/STM/STLinux-2.4/devkit/sh4/bin/sh4-linux- O=/usr/idl4k/build/kernel mrproper


    Im Makefile habe ich aber "-Wno-error=unused-but-set-variable" aktivieren müssen, ansonsten blieb es stehen.


    Ein Nachbau eines fertigen Images würde echt super sein. Habe z.B. Kernel Module für Serial-Card Reader die ich nachträglich und umständlich im Image eingebaut habe. So könnte man ein fertiges Image selber zusammenbauen. Beim Zerlegen/Zusammenbauen des fertigen BIN-Images ist man ja leider auf die originale CPIO Dateigröße beschränkt!

  • Also ich habe mich mal hingesetzt und das Image mit dem GPL Sourcen nachgebaut!


    Das geht einfacher als man glaubt.


    Ich habe z.b. das verändert:
    shadow Datei angepasst (Passwörter geändert)
    Boot Console: console=ttyAS0,115200
    USB-Serial Module
    Busybox 1.21.1 mit allen Modulen
    Autostart von einem Script wenn es beim Mounten eines USB Sticks gefunden wird (Autostart).
    Samba Aktiviert.
    ramdisk wird anders gemounted und nicht mit der Begrenzung 6MB. minidlna hängt sich sonts auf bei einer großen Anzahl von Files da der Platz ausgeht.


    Was ich noch gerne geändert haben möchte:
    Den Ordner /var und /etc in einem Ordner mounten der auch nach dem Booten bestehen bleibt.
    Kann mir dazu jemand einen Tipp geben?


    1.
    Vorbereitungen: STLinux 2.4 installieren und kompilieren (Anleitungen sind im Netz zu finden)
    Bei mir zeigt der gcc Kompiler dann auf: /opt/STM/STLinux-2.4/devkit/sh4/bin/sh4-linux-gcc


    2.
    Ordner anlegen:

    Code
    1. /usr/idl4k
    2. /usr/idl4k/build/kernel


    3.
    Man braucht die passenenden GPL idl4k Sourcen für die passende idlk4.bin Firmware. Derzeit ist das die 1.13.0.105:
    https://github.com/jollyjinx/idl4k (thx to jollyjinx)
    Die idl4k.bin Firmware 1.13.0.105


    4.
    Es muss der CPIO Teil aus der Firmware extracted werden.
    Die idl4k.bin in den Ordner /usr/idl4k kopieren.
    Zum entpacken kann man dieses Script mit dem Parameter extract benutzen:


    Nach dem Entpacken sollte man einen weiteren Ordner haben: (usr/idl4k/initramfs)


    5.
    Nun kann nach belieben das Image verändert/erweitert werden.


    6.
    Ist die Bearbeitung abgeschlossen wieder das script mit dem Parameter repack ausführen.
    Es sollte nun ein neues CPIO Archiv in /usr/idl4k/build/kernel zu finden sein.


    7.
    Den idl4k-master in /usr/idl4k entpacken und in den Ordner /usr/idl4k/idl4k-master/linux wechseln.
    Es muss im /usr/idl4k/idl4k-master/linux/Makefile das angepasst werden:

    Code
    1. -fno-delete-null-pointer-checks
    2. # -Wno-error=unused-but-set-variable


    Abändern in:

    Code
    1. -fno-delete-null-pointer-checks \
    2. -Wno-error=unused-but-set-variable


    (8.)
    Standard Config für idl4k laden:

    Code
    1. make ARCH=sh CROSS_COMPILE=/opt/STM/STLinux-2.4/devkit/sh4/bin/sh4-linux- O=/usr/idl4k/build/kernel idl4k_defconfig


    9.
    Den Kernel Konfigurieren:

    Code
    1. make ARCH=sh CROSS_COMPILE=/opt/STM/STLinux-2.4/devkit/sh4/bin/sh4-linux- O=/usr/idl4k/build/kernel menuconfig


    Z.B. kann man unter den Bootoptionen: console=ttyAS0,115200 hinzufügen.


    (10.)
    Module erstellen falls benötigt:

    Code
    1. make ARCH=sh CROSS_COMPILE=/opt/STM/STLinux-2.4/devkit/sh4/bin/sh4-linux- O=/usr/idl4k/build/kernel modules


    (11.)
    Den Ordner /usr/idl4k/build/kernel nach *.ko durchsuchen und gegebenenfalls diese in das initramfs einbauen.
    Es muss nach der Bearbeitung Punkt 6 ausgeführt werden.


    12.
    Image erstellen:

    Code
    1. make ARCH=sh CROSS_COMPILE=/opt/STM/STLinux-2.4/devkit/sh4/bin/sh4-linux- O=/usr/idl4k/build/kernel uImage


    Nun sollte man in /usr/idl4k/build/kernel/arch/sh/boot die Datei uImage.gz zu finden sein.
    Diese Datei kann nun wenn man will in "idl4k.bin" umbenannt werden und per Webinterface auf das Gerät geladen werden.
    Sie muss aber nicht unbenannt werden...


    Mod.: Bitte lange Listings mit Spoiler maskieren, das verbessert die Lesbarkeit ungemein: Richtig zitieren und URLs posten ...

  • Danke Portisch für die Info und Mühen.


    Das hört sich ja sehr gut an. Und läuft das Image auf der Box auch wie gewünscht ? Kann man eigentlich, wenn man mal in einen unbootable Zustand kommt, die Box immer über USB zurücksetzen ?
    Irgendwie habe ich Keine Lust mir meine Box durch einen Fehler beim bauen des Bootimages komplett zu zerschießen.

  • Läuft ohne Probleme!


    Man kann mit der idl4k.scr und der idl4k.bin auf einem USB stick direkt von uboot flashen.
    Aber nur auf dem oberen USB Port. Der ist bei mir schon defekt, da er elektrisch nicht abgesichert ist.
    Also nur an/ abstecken wenn die Box aus ist!


    Edit:
    Es ist auch möglich die Box über die rs232 mit kermit neu zu flashen wenn mal das webinterface nicht mehr erreichbar ist.
    Uboot ist aber auf hidden eingestellt, dass müsste man erst umstellen.

  • Das hat ja ab Post Erste Sat>IP-Geräte vorgestellt: Hardware- und Erfahrungs-Sammel-Thread #161 eigentlich nichts mehr mit dem ursprünglichen Thema zu tun und verschwindet dann auch in der Masse der Posts hier, obwohl der Hack durchaus interessant für andere sein könnte.


    Ich würde den Teil abtrennen, wo wollt Ihr es hin haben? Hier unter "Andere Hardware", "Verschiedenes", "ARM" ... ?


    Regards
    fnu

    HowTo: APT pinning

  • Nach Zustimmung von "jollyjinx" & "Portisch" wurden diese Posts in einen eigenen Thread ausgelagert.


    "jollyjinx" kann das Subjekt jederzeit anpassen.


    Regards
    fnu

    HowTo: APT pinning

  • Es ist auch möglich die Box über die rs232 mit kermit neu zu flashen wenn mal das webinterface nicht mehr erreichbar ist.
    Uboot ist aber auf hidden eingestellt, dass müsste man erst umstellen.

    Tja RS232 habe ich schon rund 14 Jahren nicht mehr ;-) Und dann müsste ich noch einen Stecker vermutlich auf die Platine löten. Nicht mein Ding. Aber wenn es mit dem USB Port geht bin ich ja beruhigt.

  • Ich habe die v1.13... jetzt mal live getestet. Sie booted ohne Probleme.


    Jedoch bekomme ich mit dem DVBViewer Recording Service kein Bild zustande. Dass kann jetzt aber an der alten Version der idl4k liegen. Im DVBV wurde vor kurzem was an dem SAT>IP Protokoll geschraubt.


    Ich warte dann mal auf die GPL Sourcen von der v1.16...

  • Ich schaffe es nicht einen Live Stream vom Digibit mit dem selbst erstellten Image zu bekommen.


    dmesg vom "original" was einen Stream liefert:


    dmesg von dem selbsterstellten:


    Die Kommandline des Kernel ist anders, das sollte aber kein Problem sein. Es ist im Webinterface jetzt halt nicht mehr das Telestar Logo sondern das Inverto Logo.


    Was mir eher Sorgen macht ist die Ausgabe der STAPI Module:
    Printbuffer beim funktionierenden:


    Beim neuen:


    Das "TANGO SP not mapped" und das die stptiTSHAL_TSInputStfeEnable und stptiTSHAL_StfeWritePIDBase fehlen machen mir Sorgen.
    Ich habe mal im Kernel Configmenü etwas von CoProcessor gelesen, bin mir aber nicht sicher ob dass das ist.


    Ich hoffe das hier nicht noch was für den Kernel fehlt...

  • Ich habe nochmals Inverto angemailt und die sagen mir, dass die Entwickler für zwei Wochen im Urlaub sind und ich mich dann nochmal melden soll Zwecks 1.16 Firmware. Ich bin noch nicht dazu gekommen mir 'ne VM für die IDL aufzusetzen weil mir meine Fritzbox um die Ohren fliegt.


    Mal 'ne Frage zu dem Github Projekt. Ist das die Original 1.13 ausgepackt mit den proprietären Treibern ? Oder die original Sourcen plus neue Busybox version ?? Das Readme sagt mir nicht wirklich viel.

  • Nach der History sieht man, dass schon Modifikationen durchgeführt wurden.


    Wenn abder die 1.16 rauskommt werde ich das nochmal neu ausfsetzen. Kann auch nicht garantieren, dass es so mit Github funktioniert.


    Was anderes: /mnt/data wird auf mtdblock4 gemountet. Dies ist ein Permanenter Speicher. Kann man /var und /etc nicht auch darauf mounten?

  • Also ich habe mal die System.map vom neu erstellten idl4k-Kernel mit der /proc/kallsyms Liste des originalen Images verglichen. Da scheinen ein paar Sachen zu fehlen. Was genau jetzt dafür verandwortlich ist, dass man keinen Stream bekommt weis ich noch nicht...


    Man müsste nun Stpck für Stück schauen welches Modul im Kernel welche Symbole exportiert und dann hinzufügen. (wenn alles open source ist)



    Also eine Kernel Config von Inverto würde hier viel weiterhelfen!

  • Hallo!



    Gibt es was neues bezüglich der IDL4k basierte Boxen?



    Wäre es eigentlich möglich, den Vtuner direkt in die Box zu integrieren?



    Es was offtopic: Könnt ihr die Box per DNLA Zugang mit einen, Samsung Baujahr 2009 benutzen? Mein Fernseher findet zwar die einzelnen Kanäle per DNlA Upnp, sobald ich einen auswähle sagt er das Videoformat wäre nicht unterstützt.



    Gruß mg1234s

    1 * SMT 7020S + SMT-WakeUp von Steve135 Gen2VDR 2.0
    1 * Dell Dimension 9200 mit Skystar HD2 (ausgebaut) und opensuse 11.1
    1 * M3N78-EM, 4 GB Ram AMD 5050e und Skystar HD2