Forum: Mikrocontroller und Digitale Elektronik uCLinux benutzen von Programmen


von Steffe (Gast)


Lesenswert?

Hallo,

Mal eine Frage zu uCLinux. Wollte mir demnächst ein Developmentbord 
zulegen
und das mit uClinux betreiben.  Habe mich bis jetzt noch nicht all zu 
tief eingelesen deswegen die frage vielleicht etwas naive.

Wie frei ist man bei der Benutzung und Installation von Software mit 
diesem Betriebssystem. Ist es möglich z.b eine mp3 player der nicht für 
uClinux geschrieben ist ohne anpassung des quellcodes zum laufen zu 
bringen ?

von Nils S. (kruemeltee) Benutzerseite


Lesenswert?

>Ist es möglich z.b eine mp3 player der nicht für
>uClinux geschrieben ist ohne anpassung des quellcodes zum laufen zu
>bringen ?
Jein, uClinux ist ein Linux, welches fehlende Hardware (z.B. MMU/FPU) 
durch software ersetzt. Wenn das jeweilige Programm die Schnittstellen 
richtig benutzt, klappt das auch ohne Probleme.

Schau dir mal Projekte wie buildroot an.

von Steffe (Gast)


Lesenswert?

dass hört sich ja ganz gut an.
Gibt es eine Möglichkeit uClinux in einer emulierten Umgebung auf dem Pc 
laufen zu lassen?VMware oder so etwas? hab noch nie ein OS emuliert bin 
für jeden guten Ratschlag dankbar.  Als Prozessor falls bei der 
Emulation hatte ich an einen ARM9 gedacht.

von Steffe (Gast)


Lesenswert?

> Als Prozessor falls bei der
>Emulation relevant, hatte ich an einen ARM9 gedacht.

sorry Wort vergessen.

von Mark .. (mork)


Lesenswert?

Wenn Du einen ARM9 hast kannst Du gleich ein "normales" Linux nehmen, 
dann stehen Dir auch mehr Anwendungen offen.

MfG Mark

von Steffe (Gast)


Lesenswert?

http://www.friendlyarm.net/products/mini2440
ich habe an diese Board gedacht.

Zwei gründe warum ich uClinux nehmen will.
1. ich möchte fitter werden in embedded Umgebungen und ein normales 
linux ist dann vielleicht nicht die richtige Wahl.

2. uClinux wird von dem Anbieter unterstützt

für Gegenargumente bin ich offen.

Wie sieht es mit der Emulation aus gibt es da Möglichkeiten ?

von Nils S. (kruemeltee) Benutzerseite


Lesenswert?

Linux ist Linux. uClinux ist für extrem schwachbrüstige Boards.

Ich habe das mini2440 und den "normalen" ARM-Kernel drauf, die Toolchain 
linkt gegen die glibc, das ist auch sehr schmal und trotzdem embedded ;)

Auf dem mini2400 ist kein uClinux. Ich habe hier mit einem Wiki 
Artikel dazu angefangen, ist schon einiges da. Kannste dir ja mal 
ansehen.
http://www.mikrocontroller.net/articles/Mini2440

Damit funktioniert einiges, uClinux ist für andere Sachen. Ich habe hier 
ein Eigenbau-486er-Platinchen mit 2MB Flash, da rennt ein uClinux drauf.

von Mark .. (mork)


Lesenswert?

Steffe wrote
>Wie sieht es mit der Emulation aus gibt es da Möglichkeiten ?

Laut 
http://www.esky-sh.com/bbs/viewtopic.php?f=6&t=60&sid=44b80e95535af8c9dba59601e14737f7 
soll man mit QEMU das Mini2440 emulieren können. Hab es aber nicht 
selbst ausprobiert.

Ansonsten hat Nils völlig recht, auf dem Mini2440 läuft ein Lnux drauf 
und das ist gut so. uCLinux würde auch keinen Sinn mache, weil der 
Prozessor eine MMU hat.


@Niels
Wie viel RAM hat denn dein Board, sodass darauf kein normales Linux 
lauffächig ist? Soweit ich weiss gibt es Minimalkonfigurationen, die 
weniger als 1 MB brauchen.

MfG Mark

von Nils S. (kruemeltee) Benutzerseite


Lesenswert?

Weniger als 1MB braucht aber wirklich schon ein uClinux. Meines hat 64MB 
Ram, gibt aber soweit ich weiss auch mini2440 mit 128MB RAM.

Mein eigenbau Linux-Board hat 8MB Ram und damit komme ich wirklich nur 
knapp hin.

Es gibt sogar ein extra mini2440-qemu, welches direkt die 
mini2440-Hardware und nicht nur einen generic arm920t emuliert.
http://repo.or.cz/w/qemu/mini2440.git

>@Niels
Bitte ohne 'e' :D :D

von Nils S. (kruemeltee) Benutzerseite


Lesenswert?

>Zwei gründe warum ich uClinux nehmen will.
>1. ich möchte fitter werden in embedded Umgebungen und ein normales
>linux ist dann vielleicht nicht die richtige Wahl.
Wie ich das gerade nochmal lese fällt mir was auf. Ich glaube, du hast 
den Unterschied noch nicht so ganz bemerkt.

uClinux lässt sich ebenfalls mit einer grafischen Oberfläche 
verunstalten, könnte Video abspielen und wenn sich genügend bastelnde 
Freaks finden, läuft darauf auch ein Firefox, QT und KDE4, theoretisch.
Ein "normales" Linux kann ebenfalls sehr klein sein und ist "embedded". 
Das originale Image vom Mini2440 lässt sich mit ein paar wenigen 
Handgriffen auf runde 10MB stutzen, der Kernel hat knapp 2MB.

Ich glaube du willst einfach nur ein Linux, was nichts kann ausser neues 
Zeug "reinholen" (lassen vom User) und dir alles selbst reinpacken.

Du wirst allerdings etwas sehr gefrustet sein, wenn du dir ein Board mit 
66Mhz, 8MB Ram und 2MB Flash antust nur weils dafür ein uClinux gibt. 
Denn damit fängst du erstmal nichts an.

Ich würde dir am ehesten zu einem schicken AVR32 Board (evtl mit PSP 
Display?) raten, da die sehr gut Dokumentiert sind und es zig HowTos 
gibt.
Wenn du ein Board willst, was wirklich viel kann und günstig ist, dann 
das mini2440.

Allerdings gibt es dafür nicht allzuviel Doku und HowTos, ist aber alles 
machbar mit ein wenig Einarbeitung. Ich hab im Linux-Embedded-Bereich 
einiges Erfahrung und habe an nur einem Wochenende nahezu alle 
Funktionen vom Mini2440 mal ausprobiert und nun liegts aufm Tisch und 
blinkt fröhlich vor sich hin, weil ich noch nicht weiss, was ich damit 
machen will ;)
Wenn du erst einsteigst wird ein NGW100, Grasshopper oder Mini2440 
sicher eine Drei-Monats-Beschäftigung.

von Thomas R. (tinman) Benutzerseite


Lesenswert?

Nils S. schrieb:
>
> Allerdings gibt es dafür nicht allzuviel Doku und HowTos, ist aber alles
> machbar mit ein wenig Einarbeitung.

jein, es gibt jede menge doku, man sollte sich aber beim Samsung 
registireren oder je nach dem wo es gekauft worden ist auf jeweiligen 
board/websites durchklicken.
Die S3C24xx board werden von sehr vielen kleinen/grossen herteller 
produziert, es gibt zwar unterschiede im i/o umfeld, aber im prinzip 
sind es immer noch die selben Samsung chips.
E m b e s t z.b. verkauft mit support, die haben auch schulungen für die 
platform, Embedsky hat nur forums, Friendlyarm auch, es gibt auch gute 
google groups usw.


> Ich hab im Linux-Embedded-Bereich
> einiges Erfahrung und habe an nur einem Wochenende nahezu alle
> Funktionen vom Mini2440 mal ausprobiert und nun liegts aufm Tisch und
> blinkt fröhlich vor sich hin, weil ich noch nicht weiss, was ich damit
> machen will ;)

hehe, joa, hätte ich kein projekt basierend auf S3C2410/2440 würde ich 
auch nur blinken lassen :)

von brott (Gast)


Lesenswert?

Nils S. schrieb:
> Ich würde dir am ehesten zu einem schicken AVR32 Board (evtl mit PSP
> Display?) raten, da die sehr gut Dokumentiert sind und es zig HowTos
> gibt.

Hi Nils,

magst du hier ein bisschen konkreter werden? Ich schaue mich auch gerade 
in der Richtung um und das klingt ganz interessant. Meinst du mit 'AVR32 
Board' alles von Atmel, oder wie darf ich das verstehen?

Wenn du nen link oder nen Produktnamen hast, wäre das super, dann kann 
ich einfach selber weiterschauen.

von Nils S. (kruemeltee) Benutzerseite


Lesenswert?

>jein, es gibt jede menge doku, man sollte sich aber beim Samsung
>registireren oder je nach dem wo es gekauft worden ist auf jeweiligen
>board/websites durchklicken.
Naja, aber so wie das aussieht fängt er gerade erst an. Und ohne Plan 
vom Board/der Hardware und wenig Ahnung von Linux auf Geräten wird das 
viel viel Arbeit ;)
Da sind die AVR32 Board um einiges besser umsorgt...

>magst du hier ein bisschen konkreter werden?
NGW100 (mein Favorit)
STK1000 (teuer)
Grasshopper (nur die allerallernötigste Hardware)

von Steffe (Gast)


Lesenswert?

Naja so ganz neu bin ich auch nich mehr hab schon ein paar Projekte auf 
einem msp430 Bord gemacht. Kenne mich also mit hardware etwas aus. 
Allerdings bin ich in Linux nich sooo fit. Dass wollte ich jetz mal 
beheben.
Habe mich jetzt für das Mini2440 entschieden und auch schon bestellt.
Als erste Idee zum wollte ich einen Webserver aufsetzen und dann einen 
über eine Website konfigurirbaren Downloadmanager zum laufen bringen.

Dass mit der emulierten umebung reitztt mich auch sehr. Aber als 
Halbneuling frag ich mich wie nahe das dann an der tatsächlichen 
hardware ist und oder wie kompliziert es ist alle Komponenten 
einzubinden  die man für meine idee braucht.

von Nils S. (kruemeltee) Benutzerseite


Lesenswert?

>Aber als
>Halbneuling frag ich mich wie nahe das dann an der tatsächlichen
>hardware ist und oder wie kompliziert es ist alle Komponenten
>einzubinden  die man für meine idee braucht.
Ein Downloadmanager? Also du packst ne USB-Platte ran und du gibst auf 
ner Website die Links an und er läd im Hintergrund?

Mit PHP is das an einem Abend gebastelt, wenn man PHP ein wenig kann. 
Dürften nicht mehr als 100 Zeilen Code sein.

Für ein ordentliches Image mit  FTP, OpenSSH, Lighttpd und PHP nehme ich 
buildroot, läuft mit Toolchain bauen auf meinem Core2Duo, 4 GiG Ram in 
ca 2 Stunden komplett durch.

von Steffe (Gast)


Lesenswert?

Version 1. ob ich das mit php mache weis ich noch nicht. Aber ich meinte 
auch nicht die Soft- sondern die Hardwarkomponenten Ethernet, SD-Karte, 
ect. Die Frage ist jetz, ob dass in der emulierten Umgebung porblemlos 
oder mit wenig problemen < 2-3 Tage in den griff zu bekommen ist.

von Nils S. (kruemeltee) Benutzerseite


Lesenswert?

SD-Karte, Netzwerk usw brauchst du nicht sonderlich emulieren, dafür ist 
ja das Linux da.
Die SD-Karte wird gemountet und die Daten liegen in einem Verzeichnis 
bereit, Netzwerk wird wie auf jedem anderen Linux verwendet.

von Mark .. (mork)


Lesenswert?

@Nils S.

Wie hast Du buildroot dazu gebracht, ein Image fürs Mini2440 zu 
erzeugen?  Oder wird das schon offiziell unterstützt?

MfG Mark

von Nils S. (kruemeltee) Benutzerseite


Lesenswert?

Nö, aber man wählt einfach einen ARM920T als Prozessor, ttySAC0 für ein 
getty, wählt die nötigen/gewollten Pakete und muss dann noch mal ein 
bisschen Hand anlegen, gerade die dev Einträge sind nicht da und jetzt 
im Moment bin ich auch dabei ein neues Problem zu flicken.

Ich kann mich Momentan zwar einloggen als root, aber er mountet /proc 
nicht und wenn ich das von Hand machen will, sagt er "only root can do 
that". Hab mich gerade mal auf der Mailing List registriert und frage da 
mal nach.
Vielleicht kennt hier ja auch einer das Problem und kann mir Helfen.

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.