Mittwoch, 7. Dezember 2011

Linux erkunden und Anderes [Tag 6]

Moin moin mal wieder. Wir machen heute direkt da weiter wo wir aufgehört haben: Linux ist installiert und wir sind bereit loszulegen.



Der erste Schritt: Wir erkunden unser System. Falls ihr Linux bereits kennt, ist euch die Ordnerstruktur sicher bekannt. Dies ist auch nicht mega wichtig, daher werde ich dazu jetzt nicht viel sagen. Wir gucken uns also unser Dateisystem an, und sehen direkt einen Ordner /mnt (mount), da wurden also ein paar Teile des Systems gemountet, d.h. eingebunden. Dort finden wir auch einen Ordner mit dem Namen ps3vflashc, was natürlich interessant ist, da unser Flash-Speicher der Ort ist, wo unsere Systemdateien liegen. Wir sehen es auch sofort an Dateien wie bdplayer, ps1emu, ps2emu usw. Wir haben außerdem einen Order mit dem Namen unserer Firmware, Rebug. In diesem Ordner haben wir z.B. die Datei BDEDMU.pkg - ein Paket, welches es uns ermöglicht, unsere Sicherheitskopien zu spielen(mal ganz einfach gesagt).


Der nächste Schritt ist: Unseren Compiler installieren. Aber zuerst, müssen wir unsere Quellen updaten. Also öffnen wir das Terminal Fenster und tippen "apt-get update" ein. Das dauert einige Zeit. Danach installieren wie GCC über Synaptic und wir sind fast fertig.


Jetzt probieren wir aus, ob alles funktioniert hat. Wir öffnen ein Textdokument per Leafpad(das ist bei Red Ribbon RC4 bereits installiert) und fügen ein einfaches hello world ein.


#include <stdio.h>

int main(void)
{
printf("Hello, World\n");

return 0;
}

Speichert es z.B. als test.c. Wir kompilieren es mit "gcc -o test test.c" und wenn keine Fehler auftreten und wir es per ./test ausführen können, sollte es uns im Terminal ein hello world ausgeben, d.h. unser C Compiler macht seinen Job. Auch wenn ich hier keine C-Einführung geben wollte, dachte ich, dass dieser Teil einfach wichtig ist.

Was kommt als Nächstes? Jetzt wird es interessanter. Wir werden uns mit den Funktionen beschäftigen, welche speziell für den CELL BE sind. Das erste Interessante wäre die Kommunikation zwischen 2 SPEs und das Auslesen des LS eines SPE.

Da ich das heute nicht machen kann(Programmierung) werde ich schon mal über die generelle Technik sprechen.

Die Situation: Ein SPE kann nur in seinen eigenen Speicher schreiben/von ihm lesen. D.h. um den Speicher eines anderen SPE auszulesen müssen wir DMA benutzen(Direct Memory Access). Was heißt das? Der SPE wird mfc_put benutzen um Daten in seine Mailbox zu transferieren und angeben, wohin diese Daten gehen sollen. Außerdem wird er angeben, wo diese Daten momentan in seinem LS liegen.


Die Kommunikation sieht also ca. wie folgt aus: SPE(mfc_put) mailbox_out->MFC(benutztDMA) holt die Daten aus dem LS des SPE->PPE(Vermittler)->mailbox_in eines anderen SPE->MFC vom anderen SPE holt die Daten->Schreibt sie in den LS(in die angegebene Adresse) dieses SPE

Ich weiß, dass das nicht so sehr interessant ist(sehr theoretisch halt) und ich wollte wirklich schon die ersten Codebeispiele bringen. Es war allerdings nicht leicht für mich, mich direkt für eine konkrete Richtung zu entscheiden(zu viele Optionen ;)). Da ich methodisch vorgehen möchte, wollte ich nun Codebeispiele bringen und versuchen, diese Kommunikation Programmiertechnisch nachzubauen und versuchen, auch den LS eines isolierten SPE auszulesen. Da ich allerdings über die Weihnachtstage keinen Zugriff auf meine Ps3's habe, werde ich nun anders fortfahren. Vorbereitet habe ich allerdings das Meiste bereits.

Die nächsten Posts werden sich nun also erst mal um Reverse Engineering drehen. Das ist aber auch sehr spannend :)

4 Kommentare:

  1. Hallo Jonny, sorry dass ich hier Frage stelle. Gibt es auch deutsche Blog über Thema PS3 von dir? Es gibt Leute die leider nicht Englisch lesen können.

    Mfg Deafmobil

    AntwortenLöschen
  2. Echt klasse weiter so, die Methodik greift

    AntwortenLöschen
  3. [German]
    Hallo Deaf,
    mir sind leider keine bekannt. Aber der nächste Post folgt Sonntag/Montag(war leider krank) und ich werde ab dann mal beginnen die bisherigen Posts zu übersetzen und zukünftig zweisprachig schreiben :)[/German]

    This was just an info for the german guys that the next posts will be in german and english(so 2 versions).

    AntwortenLöschen
  4. Also du bist jetzt schon in aller Munde weiter so !!! mfg ritter

    AntwortenLöschen