linux auf der box

Started by andi, 23. Dec 2007, 16:00

previous topic - next topic
Go Down

andi

hallo leute,
ich vor kurzem auf die box gestoßen und würde gerne mithelfen diese etwas zu "erweitern".
ich bin noch dabei den bootprozess zu verstehen. als quellen dienen mir dabei nur die infos aus dem wiki, aber es scheint ja auch nicht mehr öffentlich zu geben ;-)
leider ist mir noch nicht ganz klar, welche schritte im bootprozess evtl. veränderbar sind (externer flash) und welche fix (sprich im sram des smp8634). im moment verstehe ich das so: XOS ist der erste bootloader, welcher wahrscheinlich im internen sram liegt. dieser wird nicht veränder sein, updates evtl. durch sigma selbst. er initialisiert die speicher (siehe parameter XENV) und evtl. auch weitere hardware, kopiert dann evtl. teile aus dem externen flash in den ram und springt dort hin (x.boot 0x00800000).
evtl. kann man den bootloader an dieser stelle auch dazu überreden unverschlüsselten code zu starten?!

leider ist es mir bisher noch nicht gelungen das linux sdk von sigma aufzutreiben, ich weiß das es das nur mit vertrag gibt und das dann auch noch mit verschiedenen leveln (mit/ohne grafiktreiber usw.) aber evtl. kann man es ja irgendwo her besorgen? hat da jemand ne' idee??

das sdk kann wahrscheinlich weiter auch einige offene fragen beantworten, beispielsweise liegt ihm auch der sigma bootloader "yamon" im quelltext bei!
meine vorstellung wäre ja, diesen gegen einen port von u-boot für die cpu auszutauschen. damit wäre auch eine perfekte basis um linux zu booten geschaffen. aber soweit ist man ja noch nicht ;-)


grüße und frohe weihnachten

andi

mce2222


ich bin noch dabei den bootprozess zu verstehen. als quellen dienen mir dabei nur die infos aus dem wiki, aber es scheint ja auch nicht mehr öffentlich zu geben ;-)


ich weiss noch ne menge mehr als im WIKI steht... es mangelt aber nur an Zeit das Wissen in sinnvolle Texte zu fassen.
Aber wenn einer konkrete Fragen hat, werd ich da sicher was zu sagen können.


leider ist mir noch nicht ganz klar, welche schritte im bootprozess evtl. veränderbar sind (externer flash) und welche fix (sprich im sram des smp8634). im moment verstehe ich das so: XOS ist der erste bootloader, welcher wahrscheinlich im internen sram liegt.


ja der XOS läuft auf dem internen co-prozessor und da kommt man nicht mal lesend ran.


dieser wird nicht veränder sein, updates evtl. durch sigma selbst. er initialisiert die speicher (siehe parameter XENV) und evtl. auch weitere hardware, kopiert dann evtl. teile aus dem externen flash in den ram und springt dort hin (x.boot 0x00800000).
evtl. kann man den bootloader an dieser stelle auch dazu überreden unverschlüsselten code zu starten?!


alles richtig... aber unverschlüsselter boot code läuft nur auf development SMP863x der ES serie...und der XOS muss eine version Mxx und nicht Pxx sein.


leider ist es mir bisher noch nicht gelungen das linux sdk von sigma aufzutreiben, ich weiß das es das nur mit vertrag gibt und das dann auch noch mit verschiedenen leveln (mit/ohne grafiktreiber usw.) aber evtl. kann man es ja irgendwo her besorgen? hat da jemand ne' idee??


das kann man total vergessen. es gibt einfach zu wenige Leute die das SDK haben... wenn da was im internet auftaucht wirds nicht schwer sein den schuldigen zu finden... und ich glaub in dessen haut würd ich dann nich stecken wollen ;)

Aber die GPL Linux Sourcen für den SMP863x sind auch schon sehr informativ. Einen Link wo man die bekommt gibts auch hier in diesem Forum.
Ich hab aber noch nicht probiert einen Kernel zu kompilieren, weils nicht viel Sinn macht .. s.U.


das sdk kann wahrscheinlich weiter auch einige offene fragen beantworten, beispielsweise liegt ihm auch der sigma bootloader "yamon" im quelltext bei!


das SDK würd ich nicht überbewerten... nach meinen infos ist das SDK unter aller Sau. Die API ändert sich ständig und die Doku ist sehr unvollständig oder veraltet.
Der Yamon ist eh Opensource, da hat Sigma nur ein paar zusätzliche Befehle eingebaut um mit der XPU zu kommunizieren.
Damit kann man aber auch nicht viel anfangen, weil die XPU auch nur verschlüsselte binaries akzeptiert.



meine vorstellung wäre ja, diesen gegen einen port von u-boot für die cpu auszutauschen. damit wäre auch eine perfekte basis um linux zu booten geschaffen. aber soweit ist man ja noch nicht ;-)


das ist zwar eine nette Idee... aber leider gibts da diverse Probleme.
U-Boot gibts zwar für MIPS aber nicht direkt für SMP863x. d.h. der Core wird zwar initalisiert, aber da wird noch einiges fehlen was man im Uboot einbauen müsste.
Abgesehen davon... wozu einen neuen bootloader, wenn man schon einen hat der sogar signiert ist ?

Linux als Betriebssystem seh ich eh nicht als Option, da man weder die uCodes für die Audio und Video DSPs bekommen wird, und auch die API libs bekommt man nicht.
damit könnte man die X300T als Router benutzen aber ich glaub das will doch keiner oder ?

Aber selbst wenn es mal uCodes geben sollte, und auch die libs, dann könnte man ein Linux Kernel auch problemlos mit dem MS IPTV Bootloader starten.
Dazu muss man nur ein Linux Kernel in ein NK.BIN stecken (was kein grosses Problem ist)

um noch mal zur Frage zurückzukommen "was kann man an der box ändern?"

also permanent kann man gar nichts ändern... das ist eine bittere Erkenntnis, aber nicht sooo tragisch.
Per JTAG kann man den schon gestarteten Bootloader im RAM patchen (mit meinem Tool oder per Microcontroller).
Per JTAG kann man auch einen komplett anderen Bootloader ins RAM schreiben und den dann starten... dazu gibt es ein Kapitel im Sigma SDK. (einen Yamon für dieses vorgehen hab ich auch)

also JTAG ist die einzige Option (bis jetzt) ... das Problem dabei ist... JTAG über Parallelport ist sehr langsam. Einen kompletten Bootloader ins RAM zu laden wird bestimmt 5minuten oder mehr dauern.

andi

hallo,

>>alles richtig... aber unverschlüsselter boot code läuft nur auf development SMP863x der ES serie...und der XOS muss eine version Mxx und nicht Pxx sein.
also du denkst, da ist mit den versionen, die in den t-com boxen verbaut sind keine blumentöpfe zu gewinnen?
d.h. also ich muss, wenn ich fremden code starten will den umweg über NK.BIN gehen?

was gibt es denn sonst für möglichkeiten die box besser zu nutzen? an windows ce wird man auch nicht wirklich arbeiten können, da ist doch auch alles zu!
was schwebt dir da vor??

ich habe auch gehört das das sdk nicht der hit ist, die code qualität soll super schlecht sein, aber es gibt z.b. directfb treiber die über hdmi z.b. h264 videos hardware beschleunigt abspielen können. dann soll es noch einen closed-source treiber geben, der multi-layering usw. kann.
ob bei dem sdk auch die ucodes für die video-decoder dabei sind, weiß ich nicht.
kann man den vielleicht im laufenden betrieb bei einer box mit original sw auslesen? ich weiß nicht genau wo der liegt, ich kenne ucode nur von einigen freescale dma controllern, da liegt er nach dem laden bspw. einfach im sram!

ich denke die linux lösung wäre nur interessant, wenn man mehr infos bekommt und wenn mal eines tages in den untiefen des internets (irc, torrent, oder oder oder) das linux sdk auftaucht. dann hätte die opensource community auf jedenfall die beste basis für erweiterungen, das das aber nicht gewollt ist schon klar! aber schließlich gab es schon viele, bei denen die os-erweiterungen das eigentliche produkt erst so richtig interessant gemacht hat.

btw. ich habe noch keine box zum basteln, welche sollte ich denn dazu nutzen, die x300t oder die x301t?? evtl. gibt es ja neben den benannten unterschieden (thermische probleme, ..) noch andere hindernisse, welche z.b. die "alte" als bessere plattform erscheinen lassen??


grüße

andi

mce2222


d.h. also ich muss, wenn ich fremden code starten will den umweg über NK.BIN gehen?


richtiger ist: man muss den Umweg über JTAG gehen. Damit kann man theoretisch alles laden und starten, ist nur die Frage ob das mehr bringt als
das zu nutzen was eh da ist, und dort nur ein paar bytes zu patchen.


was gibt es denn sonst für möglichkeiten die box besser zu nutzen? an windows ce wird man auch nicht wirklich arbeiten können, da ist doch auch alles zu!
was schwebt dir da vor??


Das WinCE ist vielleicht nicht der Hit, aber wenn man es genauer betrachtet ist die Software auf der Box perfekt zum Modden.
Man muss dazu wissen, das die IPTV Software fast nichts von WinCE benutzt. WinCE wird nur als Basis benutzt um den IDE, Netzwerk, IR und USB Treiber zu laden.
Der Rest wird über native HardwareAPI DLLs gemacht, die nahezu unabhängig von WinCE sind.
Was mir an der WinCE Basis gut gefällt ist, das C# direkt benutzt werden kann (genau wie es die MS IPTV Anwendung macht)... das macht das Entwickeln wesentlich angenehmer, weil man die
Anwendung auch Prima unter WinXP laufen lassen kann, wenn man die native DLLs durch dummys ersetzt.


kann man den vielleicht im laufenden betrieb bei einer box mit original sw auslesen? ich weiß nicht genau wo der liegt, ich kenne ucode nur von einigen freescale dma controllern, da liegt er nach dem laden bspw. einfach im sram!


so wie ich es verstanden hab sind werden die ucodes als verschlüsselte XLOAD binaries bereitgestellt. ich weiss allerdings nicht ob die mit dem Sigma Key verschlüsselt sind oder mit dem Vendor Key.
Im ersteren Fall sollte es machbar sein die ucodes von einer beliebigen Media-Box zu "leihen"... im zweiten Fall können wir das Linux Thema komplett vergessen.
Die entschlüsselten ucodes sind nur im internen DSP RAM... da kommt man auch nicht ran.


ich denke die linux lösung wäre nur interessant, wenn man mehr infos bekommt und wenn mal eines tages in den untiefen des internets (irc, torrent, oder oder oder) das linux sdk auftaucht. dann hätte die opensource community auf jedenfall die beste basis für erweiterungen, das das aber nicht gewollt ist schon klar! aber schließlich gab es schon viele, bei denen die os-erweiterungen das eigentliche produkt erst so richtig interessant gemacht hat.

vielleicht kommt da irgendwann mal was... wer weiss.



btw. ich habe noch keine box zum basteln, welche sollte ich denn dazu nutzen, die x300t oder die x301t?? evtl. gibt es ja neben den benannten unterschieden (thermische probleme, ..) noch andere hindernisse, welche z.b. die "alte" als bessere plattform erscheinen lassen??


also das ist ne Frage des Preises. Wenn man davon ausgeht das man die Platte eh durch ne grössere, leisere, kühlere Platte ersetzt ... dann bleibt als Unterschied nur noch die Lüftungslöcher... und ob man für die wirklich mehr Geld ausgeben will...

Ach ja. der bootloader von den x301t ist auch neuer... den hab ich noch nicht gesehen. Theoretisch könnten da natürlich neue Sicherheitsmechanismen drinn sein.


Go Up