Veröffentlicht am: 18 April 2024
Aktie

Als Johan Oedzes den Kurs Embedded Linux am High Tech Institute belegte, war er kein absoluter Neuling auf diesem Gebiet. Wenn er jedoch über seine Reise nachdenkt, gesteht er: „Ich bereue es, den Kurs nicht früher gemacht zu haben.“

„Die Kombination von Software und Elektronik hat mich wegen der Interaktion mit der greifbaren Welt schon immer interessiert“, sagt Johan Oedzes. Dieses Interesse führte ihn an die Universität Twente, wo er seinen Bachelor-Abschluss in Elektrotechnik machte und anschließend mit einem Master-Abschluss in eingebetteten Systemen tiefer in das Gebiet eintauchte.

Nach seinem Abschluss sicherte sich Oedzes eine Stelle bei einem großen Unternehmen in Hengelo, wo er sich auf die Entwicklung von C++-Software unter Linux konzentrierte, wenn auch nicht im eingebetteten Sinne, erklärt er. „Obwohl ich dort viel gelernt habe, begann es mich zu stören, dass ich nicht an eingebetteten Systemen arbeitete. Außerdem hatte ich das Gefühl, dass ich mich innerhalb der Zwänge bewegte, die andere Leute ausgedacht hatten. Ich wollte auch den innovativen und forschenden Teil der Ingenieursarbeit machen.“

Einer seiner erfahreneren Kollegen teilte Oedzes‘ Meinung und wechselte zu Beeliners, das ebenfalls in Hengelo ansässig war. Die beiden blieben in Kontakt und sein Ex-Kollege fragte Oedzes, ob er seine Kontaktdaten an die Eigentümer des Unternehmens weitergeben könne. Als der kaufmännische Leiter Dennis Wissink vor zwei Jahren anrief, beschloss Oedzes, den Sprung zu wagen und kam als Embedded Software Engineer zu Beeliners.

E-Mobilität

Beeliner entsprach sofort den Interessen von Oedzes, sagt er. „Alle unsere Produkte kombinieren ein Hardwaredesign mit eingebetteter Softwaretechnik, um einen Prototyp zu erstellen oder einen Konzeptnachweis für unsere Kunden zu erbringen. Solche Projekte können kompakte medizinische Geräte, intelligente Fitnessgeräte oder innovative E-Mobilitätsgeräte umfassen. Ich arbeite derzeit an einem Produkt im Bereich der Elektromobilität.“

Einer der Kunden von Beeliners war mit einem externen Steuergerät für Elektromobilität nicht zufrieden und wandte sich an das Unternehmen, um eine Lösung zu finden. Auf Wunsch des Kunden machte sich Beeliners daran, ein eigenes Gerät zu entwickeln. Die Steuereinheit ist mit zwei externen Systemen verbunden: dem E-Mobilitätsgerät einerseits und dem Internet andererseits. Die Internetverbindung ermöglicht die Kommunikation mit einem Backend-Server und den Empfang von Firmware-Updates.

„Wir haben das System in zwei Teile aufgeteilt“, erklärt Oedzes. „Alles, was Echtzeitverhalten erfordert und strenge Zeitvorgaben hat, läuft auf einem Subsystem mit einem Mikrocontroller, der mit dem E-Mobilitätsgerät verbunden ist. Der Code für die Backend-Verbindung, die Web-Schnittstelle und die Geschäftslogik des Produkts laufen auf einem eingebetteten Linux-System mit einer C++-Anwendung.“

''Jasper asked me the right questions, like: what problem are you trying to solve, what threats do you want to protect against, is your web interface externally accessible? It’s actually all quite logical, but I learned a lot by reasoning about our product with him''

Flexibilität

Obwohl er durch sein Studium an der Universität bereits einige Erfahrung mit eingebetteten Linux-Systemen hatte, war die Einrichtung eines solchen Systems für Oedzes Neuland. Es war während des E-Mobilitätsprojekts bei Beeliners, dass er sich autodidaktisch weiterbildete und erfolgreich ein maßgeschneidertes eingebettetes Linux-System auf der Grundlage des Yocto-Projekts erstellte. „Man kann eine Menge Informationen über Tools zur Erstellung von Embedded Linux-Distributionen finden, wie Yocto und Buildroot. Wir mussten ein wenig suchen und experimentieren, aber schließlich hatten wir ein funktionierendes System, das sogar Funktionen für Remote-Updates enthielt.“

„Zu dieser Zeit schien Yocto die am weitesten akzeptierte Lösung zu sein. Renommierte Unternehmen, die an Embedded Linux arbeiten, nutzten es und viele Softwareanbieter bieten ein Yocto-Rezept an, um Pakete ihrer Software mit Bitbake zu erstellen. Rezepte sind ein leistungsfähiges Konzept, und das ist einer der Gründe für die Wahl von Yocto für dieses Projekt.“

Da dies das erste Mal war, dass sie ein eingebettetes Linux-System entwickelten, hatten Oedzes und seine Kollegen einige Fragen: „Wie kann ich wissen, dass mein Produkt gut ist? Tut mein eingebettetes Linux-System das, was es tun soll? Ist es sicher?“ Die Beeliner hatten bereits erste Feldtests mit einem funktionierenden Prototyp durchgeführt, aber sie wollten ihren Ansatz noch vor der Fertigstellung des Produkts validieren.

Eingebettetes Linux

Zunächst dachten die Beeliner daran, externes Fachwissen für eine umfassende Bewertung anzuheuern. Sie wollten jedoch einen schnelleren, leichteren Ansatz und zogen es vor, dieses Fachwissen intern aufzubauen, betont Oedzes. „Dieses Streben nach Wissen führte uns dazu, Schulungsmöglichkeiten zu erkunden. Da einer unserer Kollegen bereits positive Erfahrungen mit dem Kurs ‚Gute Softwarearchitektur‚ des High Tech Institute gemacht hatte, suchten wir nach einem ähnlichen Programm für Embedded Linux und wurden fündig.“

''If I had enrolled in the course earlier, maybe we would have still chosen Yocto, but we would have certainly given more consideration to Buildroot.''

Da Oedzes kein absoluter Neuling in Sachen Embedded Linux war, fragte er sich, ob der Kurs für ihn relevant war. „Wir führten eine Telefonkonferenz mit Jasper Nuyens, dem Trainer des Kurses, der sich unsere Fragen anhörte. Er kam zu dem Schluss, dass wir auf einem guten Weg waren, aber noch einige Wissenslücken in Bezug auf die Grundlagen von Embedded Linux und Faustregeln in diesem Bereich hatten. Er versicherte uns auch, dass der Kurs flexibel genug sei, um auf unsere speziellen Fragen einzugehen.“ Daraufhin meldete sich Oedzes für den Embedded Linux-Kurs an.

Bessere Entscheidungen

Während er den Embedded Linux Kurs besuchte, profitierte Oedzes weiterhin von Nuyens‘ Erfahrung. Dabei wurde ihm klar, dass Buildroot für seinen Anwendungsfall möglicherweise besser geeignet gewesen wäre. „Hätte ich mich früher für den Kurs angemeldet, hätten wir uns vielleicht immer noch für Yocto entschieden, aber wir hätten Buildroot sicherlich mehr in Betracht gezogen.“

Yocto eignet sich hervorragend für Anwendungsfälle, in denen verschiedene Geräte jeweils eine hardwarespezifische Konfiguration sowie einen gemeinsamen Teil benötigen. Sie können dann ein Yocto-Projekt mit verschiedenen Unterkonfigurationen für jedes Gerät erstellen, um ein benutzerdefiniertes Linux-Image zu erzeugen, erklärt Oedzes. „Das ist ein leistungsfähiger Ansatz, aber für unseren Anwendungsfall brauchten wir das nicht: Es gibt nur ein Gerät und ein paar kleinere Hardware-Revisionen. Yocto war keine schlechte Wahl, aber im Kurs habe ich gelernt, dass Buildroot besser geeignet gewesen wäre.“

Der Kurs ermöglichte es Oedzes auch, verschiedene Sicherheitsaspekte seines E-Mobilitätsprojekts zu diskutieren. „Jasper hat mir die richtigen Fragen gestellt, z.B.: Welches Problem versuchen Sie zu lösen, vor welchen Bedrohungen wollen Sie sich schützen, ist Ihr Webinterface von außen zugänglich? Eigentlich ist das alles ganz logisch, aber ich habe viel gelernt, indem ich mit ihm über unser Produkt nachgedacht habe.“

Rückblickend würde Oedzes potenziellen Teilnehmern empfehlen, früher mit dem Embedded Linux-Kurs zu beginnen als er es tat. „Wenn Sie wissen, dass Sie ein eingebettetes Linux-System in Ihrem Produkt benötigen und über einige C/C++-Programmiererfahrung verfügen, ist der Kurs von unschätzbarem Wert. Jasper deckt verschiedene Optionen ab und erklärt, für welche Anwendungsfälle jede von ihnen geeignet ist.“

Oedzes fand auch Nuyens‘ Erklärung der Cross-Kompilierung von Software für eine andere Zielarchitektur für Anfänger sehr gut. „Ja, man kann das selbst herausfinden, aber wenn Sie mit Embedded Linux anfangen, bietet ein Kurs wie dieser einen ermutigenden Vorsprung und warnt Sie vor häufigen Fehlern.“

Obwohl Oedzes bereits Erfahrung mit Embedded Linux hatte, vermittelte ihm der Kurs wichtige Tipps und Erkenntnisse. „Ich habe mich mit neuen Tools vertraut gemacht und Jaspers wertvolle Ratschläge für unser E-Mobilitätsprojekt eingeholt. Die Erfahrungen aus unserem aktuellen Projekt in Verbindung mit den Erkenntnissen aus diesem Kurs geben mir viel mehr Selbstvertrauen, um bessere Entscheidungen für die zukünftigen Embedded Linux-Projekte von Beeliners zu treffen.“

Dieser Artikel wurde von Koen Vervloesem geschrieben., freier Mitarbeiter bei Bits&Chips.

Recommendation by former participants

By the end of the training participants are asked to fill out an evaluation form. To the question: 'Would you recommend this training to others?' they responded with a 8.6 out of 10.

Die Schulung 'Embedded Linux' wird einmal im Jahr organisiert