Forum: Mikrocontroller und Digitale Elektronik Embedded Linux


von Jens (Gast)


Lesenswert?

Ich habe mir ein Buch zu embedded linux gekauft, in dem unter anderem 
Ubuntu installiert wird. Ich dachte aber, dass Distributionen für 
embedded Systeme, also embedded linux, lediglich auf das nötigste 
beschränkt ist. Demnach auch kein user oder Anwendungen vorhanden sind. 
Wenn das stimmt, ist der Titel embedded linux irreführend.

von Mick (Gast)


Lesenswert?

Ubuntu gibt es in verschiedenen Varianten. Ist in deinem Buch etwas 
Spezielles erwähnt?

von Jens (Gast)


Lesenswert?

Ubuntu Mint oder GNU Debian.

Und ich gerade bei dem Thema bin. Was eine Toolchain ist, weiss ich. Den 
Begriff höre ich aber immer nur bezogen auf Linux.Gibt es unter Windows 
in Visual Studio auch die Möglichkeit toolchains auszuwählen und wenn ja 
welche? Unter Linux in eclipse lassen sich mehrere auswählen,aber woher 
weiss ich, welche ich wählen soll und welche installiert ist?

von Lars F. (flemmy)


Lesenswert?

Wird die Installation von Ubuntu vielleicht nur behandelt, weil in 
gerade diesem Buch Ubuntu zum Kompilieren der Quellen etc. genutzt wird?

Also Ubuntu gar nicht auf dem Target eingesetzt wird.

von ponky (Gast)


Lesenswert?

Jens schrieb:
> Ich dachte aber, dass Distributionen für
> embedded Systeme, also embedded linux, lediglich auf das nötigste
> beschränkt ist.
Embedded Systeme werden auch immer größer.
Das starke Zusammenschnüren ist schon länger nicht mehr so wichtig. EMMC 
geht glaube ich ab 4GB los. Das war zu NAND Flash Zeiten utopisch.

Jens schrieb:
> Ubuntu Mint oder GNU Debian.
Da fehlt ein Komma, oder?

Jens schrieb:
> Ich habe mir ein Buch zu embedded linux gekauft
Sei so gütig und verrate mal den Namen vom Buch.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Jens schrieb:
> Gibt es unter Windows in Visual Studio auch die Möglichkeit toolchains
> auszuwählen und wenn ja welche?

Es gibt zumindest die Möglichkeit, gcc in verschiedenen Varianten zu 
integrieren, um die IDE für embedded development zu nutzen, sowohl "bare 
metal", d.h. ohne Betriebssystem, als auch mit Linux als Zielsystem.

Das kommerzielle Produkt VisualGDB nimmt eine derartige Integration vor 
(insbesondere, daher auch der Name, inklusive des Debug-Backends GDB).

Welcher Aufriss nötig ist, um für das reine "cross-compiling" eine 
gcc-Variante zu integrieren, entzieht sich meiner Kenntnis, aber 
möglicherweise gibt es so etwas sogar von MS selbst; die sind ja seit 
einiger Zeit auch dabei, im Pinguinwasser zu fischen.

von Jens (Gast)


Lesenswert?

Mir ging es nur darüber, dass ich für C oder C++ Programmierung bisher 
unter Windows mit eclipse oder Visual Studio gearbeitet habe und ich 
erst bei Linux und eclipse das erste mal auf den Begriff Toolchain 
stoße. Dass es da mehrere auszuwählen gibt, verwirrt mich. Habe bisher 
nichts mit dem Thema zutun gehabt und auch nie Einstellungen vornehmen 
müssen.

Das Buch ist von mittp Verlag und heisst embedded linux.

von Georg A. (georga)


Lesenswert?

Jens schrieb:
> Ich dachte aber, dass Distributionen für
> embedded Systeme, also embedded linux, lediglich auf das nötigste
> beschränkt ist. Demnach auch kein user oder Anwendungen vorhanden sind.

Da hast du dich verdacht ;) Kann man machen, aber das schöne an einem 
embedded Linux ist gerade, dass man den ganzen Kram, der einem das 
Entwickeln, Debuggen, Testen, Stressen von Anwendungen auf einem PC 
leicht macht, auch auf dem Embedded System haben und identisch benutzen 
kann...

von Ernst (Gast)


Lesenswert?

Embedded-Linux-Toolchains unter Windows und mit Visual Studio zu nutzen 
ist ein Krampf.

Sysprogs hat die Marktlücke erkannt und erspart dir eine Menge 
Kopfschmerz.

Ich schließe mich meinen Vorpostern an und bin sicher , das Ubuntu nur 
erwähnt wird weil man auf diesem BS einfacher neue Toolchains erstellen 
und (z.B. in einer IDE) nutzen kann. Ich kann mir nicht vorstellen wie 
man buildroot , crosstool-ng oder Yocto unter Windows einrichten will 
ohne sich eine Migräne zu holen (auch Cygwin genannt).

Wer Windows 10 hat , darf gerne mal das Linux subsystem ausprobieren und 
berichten. Meines Wissens wurde es ja extra entwickelt um solche 
Szenarien zu erleichtern. Bash on Windows /ist ja Ubuntu , soweit ich 
weiß.

von Bartli (Gast)


Lesenswert?

Wirf das Buch weg und besorg dir Building Embedded Linux Systems von 
Karim Yaghmour.

von Stefan F. (Gast)


Lesenswert?

Mir ist noch nicht klar, worum es hier geht.

Geht es darum,

a) Linux auf ein Embedded System (also µC) zu installieren,

oder

b) Programme für ein solches Linux unter Windows zu erstellen?

Oder geht es darum,

c) ein normales Linux auf einem PC zu instalieren, weil man dort die 
Toolchains für Mikrocontroller (vielleicht) leichter benutzen kann?

von Jens (Gast)


Lesenswert?

Mal eine andere Frage. Was sind eigentlich File Descriptoren? Nummern, 
die zur Idenfikation von Dateien übergeben werden. Aber was genau 
bedeutet das z.B., wenn ich eine Funktion wie "timerfd" nutze, die mir 
eine Meldung über eine File Descriptor sendet. Was hat das mit einer 
Datei an sich zutun?

von Stefan F. (Gast)


Lesenswert?

Wilst du nicht erst mal meine Frage beantworten?
Danach beantworte ich gerne deine Frage. Die Antwort kenne ich 
jedenfalls.

von Georg A. (georga)


Lesenswert?

Jens schrieb:
> Was hat das mit einer Datei an sich zutun?

Ist doch ganz einfach. Unter Windows ist (fast) jedes OS-Objekt ein 
verkapptes Fenster, auch wenn es gar nicht sichtbar ist. Unter Unix ist 
(fast) jedes OS-Objekt eine verkappte Datei, auch wenn sie gar nicht im 
Filesystem auftaucht ;)

Filedeskriptoren sind einfach eine bequeme Methode, ein Objekt in einem 
Prozess eindeutig zu identifizieren und damit mit dem Kernel zu reden. 
Insbesondere weil es viele File-OPs gibt (read, write, fcntl, ioctl, 
poll, select), die genausogut auf Nicht-Dateien gehen. Warum eine neue 
API einführen, wenn es schon eine gibt...

von Jens (Gast)


Lesenswert?

Mir ging es nur um das Verständnis, was mit embedded linux gemeint ist.

Zu den file deskriptoren: ich verstehe das einerseits. Andererseits ist 
das alles auch verwirrend. Begriffe wie Prozesse oder Kernel kannte ich 
zwar, aber sie werden oft auch kompliziert erklärt und oft erschließt 
sich nicht ganz, was damit gemeint ist uns wir das zusammenhängt.

von Georg A. (georga)


Lesenswert?

Naja, auch die Informatik hat inzwischen mehr als 70 Jahre hinter sich. 
Da hat sich (entgegen der weit verbreiteten Annahme, dass das eh nur so 
eine magere Hilfswissenschaft ist...), durchaus einiges an theoretischen 
und praktischen Erkenntnissen angesammelt, die man nicht mal so durch 3 
Stunden googlen oder ein Buch verstehen wird...

Das mit den Büchern ist aber generell schonmal gut. Lies mehr davon, 
insbesondere Lehrbücher (auch ältere).

von G. P. (gpnt)


Lesenswert?

Ernst schrieb:
> Wer Windows 10 hat , darf gerne mal das Linux subsystem ausprobieren und
> berichten. Meines Wissens wurde es ja extra entwickelt um solche
> Szenarien zu erleichtern.

Habe mal probiert, ein Buildroot auf dem Linux Subsystem for Windows zu 
bauen. Schlug leider fehl. Ich vermute mal wegen Groß-/Kleinschreibung, 
was dort ja - wie in Windows - nicht unterschieden wird.

Jens schrieb:
> Mir ging es nur um das Verständnis, was mit embedded linux gemeint ist.

Ein Embedded Linux wird nicht - wie auf einem normalen PC - von einem 
Installationsmedium gebootet und dann installiert sondern auf einem 
Entwicklungsrechner (Host) für dein Device (Target) erstellt. D.h. du 
konfigurierst es auf deinem Rechner, machst anschließend ein "make" und 
bekommst ein Image raus, das du auf dein Device aufspielen kannst.
Soll etwas geändert werden, hockst du dich wieder von deinen Rechner, 
fügst irgendein Paket hinzu, kompilierst es neu, spielst es wieder neu 
aufs Device auf, etc...
So ist das jedenfalls, wenn du Embedded Linux Distributionen, wie Yocto 
oder Buildroot verwendest.
Ubuntu gibts ebenfalls als "Ubuntu Core" für Embedded-Anwendungen. Hier 
können Pakete im Snap-Foramt auf dem Device einzeln installiert und 
entfernt werden.
Die Grenzen zwischen embedded und "normalem" Linux sind fließend, da ja 
auch die Einsatzfelder fließend sind.
Debian wird ebenfalls oft für Embedded-Anwendungen benutzt. Aber auch 
hier wird meist zuerst auf einem x86-Rechner das Image erstellt, bevor 
es anschließend aufs Device übertragen wird.

von Christopher J. (christopher_j23)


Lesenswert?

G. P. schrieb:
> So ist das jedenfalls, wenn du Embedded Linux Distributionen, wie Yocto
> oder Buildroot verwendest.

Weder Yocto, noch Buildroot sind Linux Distributionen. Das sind 
Werkzeuge um sich seine eigene Distribution inkl. einem eigenen Kernel 
zu bauen.

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.