Forum: Compiler & IDEs Wieviel Linux geht auf AVR32 AP o. ARM?


von Moritz E. (devmo)


Lesenswert?

Hallo,

Es gibt ja hier schon einige die Linux auf AVR32 fahren, z.B. mit dem 
ATNGW, Grasshoper, STK1000.

Es ist ja naheliegend den Reichtum der opensource Software für Embedded 
Anwendungen nutzbar zu machen. Nur wie portabel sind Linux-sources 
bezüglich der Architektur, also z.B. von x86 auf AVR32 oder ARM oder 
PPC?

Da ich mich mit Linux und Application Processor Platformen nicht 
auskenne, hab ich dazu ein paar grundlegendere Fragen:

1) OS portieren?
Linux läuft also, nachdem man den Sourcecode für AVR32 compiliert. Aber 
auf welchen Sourcecode bezieht sich das? Nur auf einen per Hand 
angepassten, von irgendeiner Distro abgeleiteten und von Atmel zur 
Verfügung gestellten? Nur auf einen abgespeckten Teil/bzw nur den 
Kernel? Oder könnte man grundsätzlich jede Distribution im Sourcecode 
hernehmen und ohne (oder überschaubare) Anpassungen compilieren, und 
sofern Hardware Requirements stimmen zum laufen bringen? (für AVR32 oder 
ARM)

2) Anwendungen, Treiber, Libs portieren?
Wie verhält es sich mit Anwendungen, lassen sich opensource Programme 
mit verhältnismäßigem Aufwand portieren? Welche Abhängigkeiten werden 
schwierigkeiten machen? Was ist mit Treibern, wie weit lassen sich 
vorhandene open source Treiber aus Linux-Distris im AVR32 Linux 
einspannen (Etwa WLANkarten-Treiber). Ebenso Libraries?


Verhältnismäßiger Aufwand soll bedeuten, als Einzelperson mit guten 
Linux, GCC, Mikrokontroller Kenntnissen wie es hier bestimmt viele gibt, 
in einigen Wochen/wenigen Monaten zu stämmen (im besten Fall).

Daran würde sich z.B. entscheiden, ob man in einem Standalone-Projekt 
eine bestimmte Funktionalität/Anwendung eher Zeile für Zeile anhand von 
Linux-sourcen nachprogrammiert (Was dann auch Wochen und Monate dauern 
kann), oder gleich das ganze OS hernimmt und sich Entwicklungsaufwand 
bei Anwendungen und Treibern einsparen kann.

von Moritz E. (devmo)


Lesenswert?

Ich hab mir mal erlaubt selbst zu helfen, neben http://avr32linux.org 
hat sich da http://www.t2-project.org/architectures/avr32/ als 
informativ erwiesen. Auch: 
http://avr32linux.org/twiki/bin/view/Main/LinuxApplications, 
http://avr32linux.org/twiki/bin/view/Main/LinuxKernel

Theoretisch sieht der Linuxweg einfach aus, aber man findet vermutlich 
erst hinterher heraus was man selber noch zu patchen hätte.

von Marius W. (mw1987)


Lesenswert?

Standarddistributionen lassen sich leider nicht als Grundlage fürs 
kompilieren nehmen, da viele Anpassungen an den µC nicht enthalten sind 
und sich nicht jede Anwendung ohne weiteres für einen µC kompilieren 
lässt.
Weiter schränken die doch häufig sehr begrenzten Speicherkapazitäten die 
Sache weiter ein.

Deshalb gibt es eine spezielle Linux-"Distribution" (Buildroot), die 
speziell auf Embedded Systems angepasst ist. Trotzdem läuft noch nicht 
jedes Paket aus dem Buildroot auf jeder Hardware.

Grundsätzlich wird aber schon so einiges unterstützt (Samba und div. 
andere Services). Und mit Geduld und etwas Erfahrung lässt sich 
sicherlich das meiste auch kompilieren.

MfG
Marius

von Moritz E. (devmo)


Lesenswert?

Ja wobei die Maintainer der Embedded-Anpassungen alle ein ziemlich 
euphemistisches Bild vermitteln, soweit ich es dort verstanden habe soll 
sofern buildroot toolchain klappt dann prinzipiell der kernel 
kompilierbar sein, und packages auch sofern sie dieses autoconf oder so 
anbieten. Dann ist der Weg zumindest theoretisch aufgezeigt, und man 
muss nur noch einzelne Dependencies durch die Anpassungen und 
Verstümmelungen der Libs und Tools in den Griff kreigen. Gibt es 
eigentlich sowas wie ein Grafisch basierten Dependency-Viewer der 
entweder auf Linker-Ebene oder auf Präprozesser(Includes und 
ifdefs)-Ebene oder auf MetaInfo/Package-Ebene (So wie bei Eclipse) die 
Dependencys übersichtlich darstellt? Als frei skalier und scrollbarer 
Graph mit Ansichtsfilter oder so. In Eclipse gibt es z.B. den 
Include-Browser, der aber bei den Mehrfach und Kreuzabhängigkeiten kaum 
Übersicht bietet. Ich stelle mir das als den Dreh und Angelpunkt bei der 
Analyse oder Einschätzung von Portierbarkeit vor, bzw. täglich Brot der 
Maintainer..

von O. D. (odbs)


Lesenswert?

Die Frage ist relativ einfach zu beantworten:

Kommst du ins Schwitzen, wenn make mit einem Fehler abbricht? Postest du 
innerhalb von 5 Minuten in dieses Forum die letzten zwei Zeilen:

make: *error
leaving directory /home/gruenschnabel/buildroot/linux-2.6.28/drivers...

Oder scrollst du nach oben, schaust dir die Compiler-Fehlermeldung an, 
erkennst ein Problem mit einer Header-Datei, schreibst einen Patch und 
kompilierst weiter bis zum nächsten Fehler?

Wenn Möglichkeit eins, dann vergnüge dich mit den Paketen, die 
out-of-the-box laufen und lerne mehr Grundlagen.

Wenn Möglichkeit zwei, viel Spaß beim Basteln, plane viel Zeit ein und 
helfe anderen Usern, die zur Kategorie eins gehören ;)

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.