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.
Ubuntu gibt es in verschiedenen Varianten. Ist in deinem Buch etwas Spezielles erwähnt?
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?
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.
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.
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.
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.
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...
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ß.
Wirf das Buch weg und besorg dir Building Embedded Linux Systems von Karim Yaghmour.
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?
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?
Wilst du nicht erst mal meine Frage beantworten? Danach beantworte ich gerne deine Frage. Die Antwort kenne ich jedenfalls.
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...
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.
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).
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.