System-Portierung auf andere Architekturen

Herakles

Profifragensteller
Moin!

Ok, Freunde. Ich könnte mir vorstellen, FreeBSD auf eine Plattform zu portieren, die bisher noch auf keinem FreeBSD-Server herunterzuladen ist (MIPSel). Da sie nicht download-bar ist, gehe ich davon aus, dass das bisher niemand vor mir getan hat.

Bevor ich mich nun aber blind in die Arbeit stürze eine Frage:

gibt es eine Art Handbuch für so einen Schritt?

Die Frage dahinter ist eigentlich: es gibt ja schon einge Projekte, die vergleichbares tun (IA64 u.a.). Wie machen die das? Reicht ein Eintrag in die make.conf wie "MACHINE=MIPSEL"? Wie wird das grundsätzlich gemacht?

Danke für jeden Tipp, Herakles

P.S.: Bevor ich nun mit Unglauben oder Erwartungen erschlagen werde: hierbei handelt es sich um EIN mögliches Thema für eine Diplomarbeit. Sollte also ein anderes Thema zur Wahl werden, muss ich leider jeden enttäuschen, der nun auf eine MIPSel-Portierung wartet... ;'(
 
@ 0815Chaot: Die Seite habe ich bereits gesehen, allerdings weiss ich nicht, ob eine MIPS-Portierung mir hilft (ich habe eine MIPSel-Architektur).

Davon abgesehen: wie wird so eine Portierung generell durchgeführt? Was passiert, wenn ich auch Architektur X oder doch lieber auf Architektur Y portieren will???

Herakles
 
ich glaube du stellst dir das ein wenig einfach vor. Wenn man irgendwo einfach sowas wie compile_with_mipsel="yes" eingeben müsste, wäre die Portierung ja bereits vorhanden, denn dann würde man dieses Feature nur einfach aktivieren.

Du müsstest den Kernel komplett neu bauen, denn der muss ja in der Lage sein den entsprechenden Prozessor anzusprechen. Dazu müssen Treiber programmiert werden usw. Dann müsste für das gesamte System ein Compiler zur Verfügung stehen, den es sicherlich gibt, aber er muss eben in die Base. Die Ports, die ja aus Sourcen gebaut werden, müssten allerdings auch noch im Detail angepasst werden, damit sie laufen. Wie man an der AMD64-Architektur sieht, auch nicht ganz leicht, denn da gibt es viele Sachen noch nicht. Also "mal eben schnell" auf ein System portieren ist nicht. Im übrigen sollte MIPS auch auf MIPSel laufen, da MIPSel soweit ich weiß nur eine kleine Erweiterung von MIPS ist.
 
Hallo

Moin!

Ok, Freunde. Ich könnte mir vorstellen, FreeBSD auf eine Plattform zu portieren, die bisher noch auf keinem FreeBSD-Server herunterzuladen ist (MIPSel). Da sie nicht download-bar ist, gehe ich davon aus, dass das bisher niemand vor mir getan hat.

Bevor ich mich nun aber blind in die Arbeit stürze eine Frage:

gibt es eine Art Handbuch für so einen Schritt?

Die Frage dahinter ist eigentlich: es gibt ja schon einge Projekte, die vergleichbares tun (IA64 u.a.). Wie machen die das? Reicht ein Eintrag in die make.conf wie "MACHINE=MIPSEL"? Wie wird das grundsätzlich gemacht?

Danke für jeden Tipp, Herakles

P.S.: Bevor ich nun mit Unglauben oder Erwartungen erschlagen werde: hierbei handelt es sich um EIN mögliches Thema für eine Diplomarbeit. Sollte also ein anderes Thema zur Wahl werden, muss ich leider jeden enttäuschen, der nun auf eine MIPSel-Portierung wartet... ;'(

Ein etwas alteres Paper darueber gibt es unter "http://www.teamten.com/lawrence/291.paper/291.paper.html". Aber willst du dir das wirklich antun?

MfG

Lars

PS: Was hast du denn genau fuer Geraet?
 
ka46 schrieb:
PS: Was hast du denn genau fuer Geraet?

Es handelt sich um ein mycable XXS1500 http://mycable.de/productsshow.php?content=products&lang=en&topic=xxs1500dev

Styx schrieb:
Im übrigen sollte MIPS auch auf MIPSel laufen, da MIPSel soweit ich weiß nur eine kleine Erweiterung von MIPS ist.

So ist es wohl nicht. Es gibt "big endian" (MIPSeb) und "little endian" (MIPSel). Hier handelt es sich um unterschiedliche Datenablegungsvarianten im Speicher. Kompatibel wäre das also nicht.

Aber @ka46: geiler link! DANKE!

Herakles
 
Die meisten MIPS-CPUs können sowohl EB als auch EL! MIPSel ist einfach nur eine MIPS-CPU, bei der die Byte-Reihenfolge nicht umschaltbar ist, sondern auf EL festgenagelt wurde. Da dem von mir geposteten Link nach bereits ein FreeBSD-Kernel auf MIPS läuft, ist das Vorhaben erledigt. Selbst wenn FreeBSD/mips nur auf EB läuft, was dem Link nicht zu entnehmen ist, dann ist es keine große Sache, das auf EL zu portieren, da ein entsprechender Cross-Compiler existiert. Es ist ja nur die Byte-Reihenfolge, die vertauscht werden muß. Für eine Diplomarbeit kommt das wohl kaum in Frage.

Im übrigen ist es gerade deine Aufgabe herauszufinden, wie man ein Betriebssystem portiert - schließlich ist das der Inhalt deiner Diplomarbeit, die du selbständig bearbeiten sollst. Dazu gehört auch eine eigenständige (und gründliche!) Recherche. Daher EOT von meiner Seite.

EDIT: Auf der Produktwebseite steht übrigens:
http://mycable.de/productsshow.php?content=products&lang=en&topic=xxs1500dev schrieb:
Basically any OS supporting the MIPS32-archictecture will run on the XXS1500.
Dieser Information nach handelt es sich noch nicht mal um einen MIPSel, sondern um einen 32-Bit-MIPS, der entweder zwischen EB und EL umschalten kann oder fest auf EB eingestellt ist.
 
Zuletzt bearbeitet:
Da dem von mir geposteten Link nach bereits ein FreeBSD-Kernel auf MIPS läuft, ist das Vorhaben erledigt.

Wo steht das? Letzter Status ist Feburar 2003 mit dem Eintrag "Get a kernel booting on real hardware." und dem Status "Work in progress". Ich denke fast, das PRojekt ist tot.

Davon abgesehen: von wo könnte ich einen solchen Kernel beziehen? Eine Mail an Juli Mallett?

Herakles

P.S.: Ich bin mir sehr wohl darüber im Klaren, dass ich mir solche Infos selbst zu organisieren habe. Nach zwei Tagen google fand ich jedoch nichts gescheites :mad:. So dachte ich an Hilfe bei bsdforen.de. Ich brauche lediglich Einstiegsinfos. Nimms mir also nicht übel, 0815Chaot alias :belehren:.

EDIT: Ach und es ist ein MIPSel. Nur einen solchen NetBSD-Kernel habe ich zum Laufen bekommen.
 
Ich hatte es ja schon in dem anderen Thread über MIPS geschrieben: Das alte portingprojekt, welches immer noch auf der FreeBSD-Seite verlinkt ist ist tot. Man hat neu begonnen, das heißt nun MIPS2. Es findet sich aber derzeit nur im Perforce (http://perforce.freebsd.org/). Eventuell solltest du dich an die Personen dort wenden, ob sie Doku oder ähnliches haben.

Ansonsten sollte es, so wie ich es jetzt auf die Schnelle verstehe, recht einfach sein in eine bestehende Portierung Support für MIPSel einzufügen.
 
wenn es mit fbs dnicht möglich ist, dann nimm netbsd wie n http://www.bsdforen.de/showthread.php?t=16175 schon beschrieben wurde.
warum das rad neu erfinden?

ist die portierung die diplomarbeit oder etwas das danach drauf laufen soll?
bei zweitem kannst du dir auch nen wrap besorgen, da läuft freebsd ohne probleme, für eine diplomarbeit sollte man nicht unbedingt am falschen ende sparen :D
 
Zurück
Oben