Forum: Mikrocontroller und Digitale Elektronik Embedded Linux auf neue ARM Plattform portieren


von Newlin (Gast)


Lesenswert?

Hallo Zusammen,

mich interessiert immer mehr das Thema Embedded Linux und möchte ich 
gerne ein Linux mit MMU selber bauen und auf eine ARM Plattform 
portieren.

Daraus will ich lernen und Erfahrung sammeln und am besten 
arm/mach-mein_ARM Source selber schreiben. Hat jemand schon da was 
gemacht und wie wäre dann der Aufwand?

Ich würde einen ARM in QNF uC nehmen, den ich selber löten kann. Welche 
bieten sich dafür?

Ich möchte Linux von einer SD Karte booten. Da habe ich ganz wenig 
Erfahrung. Wo kann ich überhaupt einen Bootloader lagern/ablegen?

Welche Tools benötigt man, um Linux zum Laufen zu bekommen?

Danke&Grüß
Newlin

von S. R. (svenska)


Lesenswert?

Der Aufwand ist (unbesehen) groß.

Es ist hilfreich, ein bekannt funktionierendes Board als Basis zu 
benutzen, sonst kämpfst du auf vielen Fronten gleichzeitig. Datenblätter 
für alles wären so ziemlich eine Notwendigkeit.

Die meisten ARMs, die du bekommen kannst, werden bereits unterstützt. 
Bei DT-basierten Architekturen sollte es in der Theorie reichen, einen 
passenden DeviceTree für dein Board in den Bootloader zu stopfen.

Damit wären wir beim anfangs wichtigeren Thema, dem Bootvorgang. In der 
Kernel-Dokumentation unter Documentation/arm/Booting ist das 
Bootprotokoll für ARM beschrieben. Du brauchst also einen Bootloader. 
Wie du den von der SD-Karte in die CPU kriegst, steht im Datenblatt des 
ARMs.

von Max G. (l0wside) Benutzerseite


Lesenswert?

Du könntest mal etwas bescheidener z.B. mit dem Aria-Board anfangen 
(Google hilft). Von dort aus kannst du dann weiterarbeiten.

Deine Anfrage klingt nicht so, als hättest du dich mit diesen Themen 
schon tiefer auseinandergesetzt. elinux.org wäre mal ein guter Anfang, 
es dürfte auch das eine oder andere Buch zum Thema geben.

Die ARM-Prozessoren unterscheiden sich auch teilweise deutlich 
voneinander. Aber das darfst du selbst recherchieren.

Max

von Konrad (Gast)


Lesenswert?

Hallo,

Linux von SD-Karte booten kann z.B. UBoot (so 'ne Art Grub fuer 
Embedded). http://www.denx.de/wiki/U-Boot/

Ansonsten rate ich eher dazu, entweder ein fertig geloetetes Board bis 
Linux zu begleiten oder auf einem selbstgeloeten System etwas 
Einfacheres zu tun (gibts "grosse" ARM-Prozessoren ueberhaupt 
handloetbar?).

Fuers Lernen koenntest Du etwa in den Linux-BSPs fuer Beagleboard (mit 
TI OMAP) oder Riotboard (mit Freescale i.MX) herumbasteln. Beide haben 
Prozessoren von Herstellern, die fuer ihre uCs Datenblaetter 
rausruecken.

HTH
Konrad

von Sascha (Gast)


Lesenswert?

Hallo,
also auf jeden Fall ein bestehendes Board nehmen. Ich programmiere seit 
einem Jahr ein eigenes Betriebssystem auf ARM9 Basis. Bis alleine die 
ganzen Gerätetreiber programmiert sind vergeht sehr viel Zeit. Besonders 
die Grafik.
Gruß
Sascha

von W.S. (Gast)


Lesenswert?

Konrad schrieb:
> gibts "grosse" ARM-Prozessoren ueberhaupt
> handloetbar?).

JEIN. Eigentlich nicht bis auf vielleicht ältere ARM9, Ausnahme dürften 
- vom Hörensagen her - die chinesischen Allwinner sein, aber dafür 
gibt's keine Doku. Allenfalls würde ich nach einem ARM9 bei NXP schauen, 
die hatten vor Jahren die BlueStreak's übernommen und dabei waren m.W. 
auch ARM9.

Aber mal neganz andere Frage, so zum Grundsätzlichen: Wozu überhaupt ein 
Linux auf so einen µC quetschen? Ich begreife den tieferen Sinn dahinter 
nicht. Da hätte man dann so 2..4 UART's und eventuell Ethernet und 
könnte von dort aus 3..5 mal sich einloggen und hätte nen netten Prompt, 
aber was weiter? Was damit WIRKLICH tun? Bloß sich dran freuen, daß 
der Prompt kommt und sich selbst auf die Schulter klopfen? Ja, kann man 
- aber war es das?

Mir ist klar, daß man gut drauf ist, wenn man auf einem µC irgendein 
kleines Monitorprogramm laufen hat, so daß man daraus eine passable 
Firmware für ein Gerät machen kann und für den Anfang wenigstens ne 
Serielle für's Ausprobieren auf der Hinterhand hat - aber ein Linux? Da 
wäre ein Windows CE wesentlich eher angesagt, weil es von hause aus ne 
ausgefeilte Grafik mitbringt. Und trotzdem, für einen µC sind eigentlich 
beide OS viel zu fett, das Übliche für sowas ist ja heutzutage 128 oder 
wenigstens 64 MB an SDRAM, sonst kommt man sich vor wie mit nem 
Elefanten als Haustier in ner Neubauwohnung.

W.S.

von Tippel (Gast)


Lesenswert?

Für welche linuxtauglichen ARMs gibt es noch keinen Linuxport.

Und hier kann sich so richtig austoben: 
http://blog.emmanueldeloget.com/index.php?post/2013/03/08/The-SoC-GPU-driver-interview

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.