{"id":7880,"date":"2025-11-29T07:35:24","date_gmt":"2025-11-29T06:35:24","guid":{"rendered":"https:\/\/web-dev-weissblau.de\/microconsult\/?p=7880"},"modified":"2026-02-13T09:53:11","modified_gmt":"2026-02-13T08:53:11","slug":"industrial-io-under-linux","status":"publish","type":"post","link":"https:\/\/www.microconsult.de\/en\/industrial-io-unter-linux\/","title":{"rendered":"Industrial I\/O under Linux"},"content":{"rendered":"<p>Einbindung von Sensoren und Aktoren mit Industrial-IO in Linux<\/p>\n<p style=\"text-align: left;\" align=\"center\">Autor: Andreas Klinger, IT-Klinger<\/p>\n<h3>Beitrag &#8211; Embedded Software Engineering Kongress 2017<\/h3>\n<p><strong>Seit 2011 gibt es im Linux-Kernel das Industrial-Input-Output-Subsystem, kurz IIO. Inzwischen wurden von der recht eifrigen Community rund um die Mailingliste linux-iio beinahe 248 IIO-Treiber (stable v4.13, ohne Variationen und Staging) mainline gebracht. Beispiele sind AD- und DA-Wandler, Beschleunigungssensoren, Licht-, Feuchte-, Luftdruck-, Temperaturmessung usw. Was sind die Besonderheiten von IIO-Treibern und wie kann ich diese in meinem Projekt verwenden? Genau davon handelt dieser Beitrag. Damit es nicht zu theoretisch sondern anschaulich wird, wurde als Anschauungsobjekt ein konkretes Projekt in etwas vereinfachter Darstellung gew\u00e4hlt.<\/strong><\/p>\n<h2>Was ist Industrial-IO in Linux?<\/h2>\n<p>Das Industrial-IO-Subsystem im Linux-Kernel dient dazu, den Zugriff auf Sensoren und Aktoren zu vereinheitlichen. Bei klassischen Character Devices wird f\u00fcr jedes Ger\u00e4t ein eigener Treiber mit seinen eigenen Funktionen und seiner oft recht individuellen Schnittstelle zum Userspace (z. B. ioctl(), sysfs-Attribute, Verwendung von Timern) implementiert. Dies bedeutet oftmals, dass der Zugriff auf unterschiedliche Treiber eigens implementiert werden muss. Selbst bei Treibern der gleichen Art, wie beispielsweise Temperatursensoren ist es unwahrscheinlich, dass zwei Treiber das gleiche Interface anbieten. Wird nun ein Sensor durch einen anderen ersetzt ist die Anwendung an den neuen Treiber anzupassen.<\/p>\n<p>Hier setzt Industrial-IO an mit dem Ziel, sowohl die Schnittstelle f\u00fcr Treiber, welche Daten liefern, als auch f\u00fcr die Verwendung der Daten im Userspace zu standardisieren.<\/p>\n<h3>Anwendungsbeispiel: Bienenwaage<\/h3>\n<p>In dem f\u00fcr dieses Thema gew\u00e4hlten Projekt soll das Gewicht von Bienenst\u00f6cken gemessen werden. Daf\u00fcr gibt es mehrere Use-Cases. Die Masse wird erfasst, um folgende Fragen zu kl\u00e4ren:<\/p>\n<ul>\n<li>Messung des Futterverbrauches (Honig) bei der \u00dcberwinterung mit Erkennung von hungernden V\u00f6lkern<\/li>\n<li>Verfolgung des Nektareintrages und damit des angesammelten Honigs, um ihn zu schleudern<\/li>\n<li>Erkennung von Schw\u00e4rmen als nat\u00fcrliche Volksteilung mit der M\u00f6glichkeit, diese rechtzeitig einzufangen und ein neues Volk zu gr\u00fcnden.<\/li>\n<li>Umweltdaten werden am Bienenstand erfasst mit der Zielsetzung:<\/li>\n<li>Umgebungstemperatur \u00fcber 12\u00b0 C f\u00fchrt zu nennenswerter Flugaktivit\u00e4t.<\/li>\n<li>Bei Abfall des Luftdrucks sind die Bienen oftmals stechlustiger.<\/li>\n<\/ul>\n<p>Die Skizze in Abbildung 1 (siehe\u00a0<a title=\"Fachinfo_ESE_Open Source_Industrial-IO unter Linux_Andreas Klinger\" href=\"https:\/\/www.microconsult.de\/wp-content\/uploads\/2025\/12\/fachinfo_ese_open_source_industrial-io_unter_linux_andreas_klinger.pdf\" target=\"_blank\" rel=\"noopener\">PDF<\/a>) erl\u00e4utert den Informationsfluss von der W\u00e4gezelle, auf welcher der Bienenstock steht, \u00fcber den AD-Wandler (hx711) bis zum IIO-Sensor im Linux-Kernel, angebunden mittels GPIO-Bitbanging.<\/p>\n<p>Temperatur, Luftdruck und Luftfeuchte k\u00f6nnen mit dem Sensor BME280 gemessen werden, wie in Abbildung 2 (siehe\u00a0<a title=\"Fachinfo_ESE_Open Source_Industrial-IO unter Linux_Andreas Klinger\" href=\"https:\/\/www.microconsult.de\/wp-content\/uploads\/2025\/12\/fachinfo_ese_open_source_industrial-io_unter_linux_andreas_klinger.pdf\" target=\"_blank\" rel=\"noopener\">PDF<\/a>) dargestellt. Dieser wiederum l\u00e4sst sich mittels I2C oder SPI ansprechen und durch einen IIO-Sensor auswerten.<\/p>\n<h3>Hardwareschnittstellen<\/h3>\n<p>Direkt durch das Framework unterst\u00fctzt werden<\/p>\n<ul>\n<li>I2C<\/li>\n<li>SPI<\/li>\n<li>GPIO<\/li>\n<\/ul>\n<p>F\u00fcr diese Schnittstellen ist die Implementierung von Treibern besonders einfach, da eine ganze Reihe an Hilfsfunktionen zur Verf\u00fcgung steht. Andere Hardwareschnittstellen sind nicht ausgeschlossen und k\u00f6nnen ebenso genutzt werden. Gegebenenfalls ist etwas mehr an Implementierung vonn\u00f6ten.<\/p>\n<p>Ganz ohne Telegrammverkehr kann der Datenaustausch auch mittels DMA erfolgen. Hierbei werden die Daten vom Ger\u00e4t direkt in einen Speicherbereich geschrieben, ohne dass ein expliziter Telegrammverkehr notwendig ist. Die Benachrichtigung \u00fcber geschriebene Daten erfolgt dann mit einem Interrupt.<\/p>\n<p>Die Beziehungen sowohl nach unten zur Hardware als auch nach oben zum Userspace sind in Abbildung 3 (siehe\u00a0<a title=\"Fachinfo_ESE_Open Source_Industrial-IO unter Linux_Andreas Klinger\" href=\"https:\/\/www.microconsult.de\/wp-content\/uploads\/2025\/12\/fachinfo_ese_open_source_industrial-io_unter_linux_andreas_klinger.pdf\" target=\"_blank\" rel=\"noopener\">PDF<\/a>) beispielhaft dargestellt.<\/p>\n<h3>Schnittstellen zum Userspace<\/h3>\n<p>Aus dem Userspace heraus k\u00f6nnen die Sensoren \u00fcber ein vereinheitlichtes Interface abgefragt und eingestellt werden. Dazu existiert ein eigenes Bussystem namens iio. Dementsprechend sind die registrierten Devices in Unterverzeichnissen von \/sys\/bus\/iio\/devices auffindbar.<\/p>\n<p>In Abbildung 4\u00a0(siehe\u00a0<a title=\"Fachinfo_ESE_Open Source_Industrial-IO unter Linux_Andreas Klinger\" href=\"https:\/\/www.microconsult.de\/wp-content\/uploads\/2025\/12\/fachinfo_ese_open_source_industrial-io_unter_linux_andreas_klinger.pdf\" target=\"_blank\" rel=\"noopener\">PDF<\/a>) ist ein Beispiel f\u00fcr einen eingelesenen Spannungswert eines AD-Wandlers zu sehen. Die einzelnen Namensbestandteile werden systematisch zusammengebaut und sind daher gut durch einen Algorithmus verwendbar. Mit dem Tool lsiio aus dem Verzeichnis tools\/iio\/ der Kernelsourcen kann abgefragt werden, welche IIO-Devices erkannt wurden und welche Nummer diese bekommen haben:<\/p>\n<p class=\"quellcode\">root@waage: lsiio -v<\/p>\n<p class=\"quellcode\">Device 000: bme280<br \/>\nin_temp_input<br \/>\nin_humidityrelative_input<br \/>\nin_pressure_input<\/p>\n<p class=\"quellcode\">Device 001: hx711<br \/>\nin_voltage0_raw<br \/>\nin_voltage1_raw<\/p>\n<p>In diesem Beispiel existieren zwei IIO-Devices. Das IIO-Device 000 implementiert den Temperatur-, Luftdruck- und Luftfeuchtesensor BME280 mit seinen drei Messgr\u00f6\u00dfen. Der AD-Wandler hx711 liefert den eingelesenen Rohwert beider verf\u00fcgbarer Kan\u00e4le jeweils als Spannungswert. Die Umrechnung in das Gewicht erfolgt durch die Userspace-Anwendung.<\/p>\n<h3>Triggerung durch hrtimer-Event<\/h3>\n<p>Das IIO-Framework bietet Unterst\u00fctzung f\u00fcr das Einlesen von Sensordaten beim Auftreten eines Ereignisses, wie zum Beispiel eines Interrupts. Die dann eingelesenen Werte k\u00f6nnen in einen Speicherbereich eingestellt und asynchron mit einem Device-Node abgefragt werden.<\/p>\n<p>Die am h\u00e4ufigsten eingesetzte Triggerung ist der hrtimer-Event. Hierbei wird der Hardware-Timer durch das hrtimer-Framework auf einen Zeitpunkt in der Zukunft programmiert. Tritt der Zeitpunkt ein, liefert der Hardware-Timer einen Interrupt, welcher als hrtimer-Event zur Verf\u00fcgung steht. Eine Callback-Funktion im Industrial-IO-Treiber wird aufgerufen und der Sensor abgefragt.<\/p>\n<p>Die Daten k\u00f6nnen in einen Puffer eingestellt werden. Dieser muss im Treiber eingerichtet werden und dient der Zwischenspeicherung der Daten, bis diese mithilfe des Device-Nodes (\/dev\/iio:device&lt;N&gt;) abgefragt werden. Das IIO-Framework k\u00fcmmert sich darum, dass der Timer erneut programmiert wird. Dadurch entsteht ein zyklischer Timer mit konstanter Abtastfrequenz.<\/p>\n<p>F\u00fcr die Abfrage der Daten existiert im Verzeichnis tools\/iio der Linux-Sourcen ein Hilfsprogramm namens iio_generic_buffer. Diesem wird mitgeteilt, von welchem Device mit welchem Trigger welche Daten wie h\u00e4ufig abgefragt werden.<\/p>\n<p>Nachfolgendes Beispiel zeigt, wie man hrtimer-Events aus dem Userspace heraus verwendet:<\/p>\n<p class=\"quellcode\">root@silo: cd \/sys\/kernel\/config\/iio\/triggers\/hrtimer<br \/>\nroot@silo: mkdir mytmr<br \/>\nroot@silo: cd \/sys\/bus\/iio\/devices\/trigger0<br \/>\nroot@silo: echo 1 &gt; sampling_frequency<br \/>\nroot@silo: iio_generic_buffer -a -c3 -N0 -T0<\/p>\n<p class=\"quellcode\">[&#8230;]<\/p>\n<p class=\"quellcode\">\/sys\/bus\/iio\/devices\/iio:device0 mytmr<\/p>\n<p><span class=\"quellcode\">0.080000 1502965687594511120<\/span><br \/>\n<span class=\"quellcode\">0.230000 1502965688594510720<\/span><br \/>\n<span class=\"quellcode\">0.240000 1502965689594510840<\/span><\/p>\n<p>Zun\u00e4chst wird der hrtimer-Trigger generiert. Dies erfolgt im configfs durch Anlegen eines neuen Verzeichnisses. Als Name daf\u00fcr wurde im Beispiel mytmr gew\u00e4hlt. Handelt es sich um den ersten angelegten Trigger, dann hat dieser die Nummer 0. Im sysfs ist ein neues Device-Verzeichnis mit dem Namen trigger&lt;T&gt; entstanden, wobei T die Nummer des Triggers ist. In diesem Verzeichnis kann der Trigger parametrisiert werden. In obigem Beispiel wird die Frequenz auf 1 Hz eingestellt.<\/p>\n<p>Die Datenabfrage erfolgt mit dem Programm iio_generic_buffer. Es werden alle Kan\u00e4le (-a) 3 mal (-c3) vom Device mit der Nummer 0 (-N0) unter Verwendung des Triggers mit der Nummer 0 (-T0) abgefragt.<\/p>\n<h3>Userspace-Libraries<\/h3>\n<p>Das IIO-Subsystem ist, wie oben ausgef\u00fchrt, sehr systematisch nach bekannten und dokumierten Regeln aufgebaut. Dass dies so bleibt, dar\u00fcber wachen die Reviewer und der Maintainer. Bevor neue Definitionen verwendet werden, wird versucht, neue Treiber in die bestehenden Interfaces zu integrieren.<\/p>\n<p>Am Framework angemeldete IIO-Ger\u00e4te werden in der Reihenfolge der Anmeldung durchnummeriert. Dies erfordert vom Userspace-Entwickler, dass er den Zusammenhang zwischen Device-Nummer und dem gew\u00fcnschten Treiber herstellen kann. Er muss die Devices im sysfs durchlaufen und anhand des Attributes name den betreffenden Treiber erkennen. Analog dazu funktioniert die Erkennung von Trigger-Events.<\/p>\n<p>Dies ist m\u00fchsame Routine und kann aufgrund der Systematik von IIO gut auf eine Library ausgelagert werden. Die libiio ist genau daf\u00fcr erschaffen worden. Mit ihr kann gut automatisiert werden:<\/p>\n<ul>\n<li>Verbindung zu lokalem oder entferntem IIO-Subsystem, auf welchem der iiod-D\u00e4mon l\u00e4uft<\/li>\n<li>Abfrage der vorhanden Devices<\/li>\n<li>Kan\u00e4le und Attribute durchiterieren<\/li>\n<li>Lesen und Schreiben von Attributen<\/li>\n<\/ul>\n<h2>Verweise<\/h2>\n<p>Sourcen der im Artikel verwendeten Treiber:<\/p>\n<ul>\n<li>linux-stable\/drivers\/iio\/adc\/hx711.c<\/li>\n<li>linux-stable\/drivers\/iio\/pressure\/bmp280*.c<\/li>\n<\/ul>\n<h2>Autor<\/h2>\n<p>Andreas Klinger ist selbst\u00e4ndiger Trainer und Entwickler. Seit Abschluss des Studiums der Elektrotechnik im Jahre 1998 arbeitet er im Bereich der systemnahen Softwareentwicklung mit den Schwerpunkten Treiberentwicklung, Embedded Linux und Echtzeit. Als Spezialist f\u00fcr Linux besch\u00e4ftigt er sich mit dem internen Aufbau des Kernels, den Systemmechanismen sowie vor allem mit deren Einsatz in Embedded Systemen.<\/p>\n<p><a title=\"Fachinfo_ESE_Open Source_Industrial-IO unter Linux_Andreas Klinger\" href=\"https:\/\/www.microconsult.de\/wp-content\/uploads\/2025\/12\/fachinfo_ese_open_source_industrial-io_unter_linux_andreas_klinger.pdf\" target=\"_blank\" rel=\"noopener\"><strong>Beitrag als PDF downloaden<\/strong><\/a><\/p>\n<hr \/>\n<h2>Open Source &#8211; unsere Trainings &amp; Coachings<\/h2>\n<p><strong>Wollen Sie sich auf den aktuellen Stand der Technik bringen?<\/strong><\/p>\n<p>Dann informieren Sie sich\u00a0<a title=\"MicroConsult Training\" href=\"https:\/\/www.microconsult.de\/alle-trainings-termine-komplettuebersicht\/\" target=\"_blank\" rel=\"noopener\"><strong>hier<\/strong>\u00a0<\/a>zu Schulungen\/ Seminaren\/ Trainings\/ Workshops und individuellen Coachings von MircoConsult zum Thema Open Source \/ Embedded Software Engineering.<\/p>\n<p><strong>Training &amp; Coaching zu den weiteren Themen unseren Portfolios finden Sie\u00a0<a title=\"Training &amp; Beratung - alle Themen\" href=\"https:\/\/www.microconsult.de\/training-beratung\/\" target=\"_blank\" rel=\"noopener\">hier<\/a>.<\/strong><\/p>\n<hr \/>\n<h2>Open Source &#8211; Fachwissen<\/h2>\n<p>Wertvolles Fachwissen zum Thema\u00a0Open Source \/ Embedded Software Engineering steht\u00a0<a title=\"Embedded- und Echtzeit-Softwareentwicklung\" href=\"https:\/\/www.microconsult.de\/embedded-und-echtzeit-softwareentwicklung\/\" target=\"_blank\" rel=\"noopener\"><strong>hier\u00a0<\/strong><\/a>f\u00fcr Sie zum kostenfreien Download bereit.<\/p>\n<p><a title=\"Embedded- und Echtzeit-Softwareentwicklung\" href=\"https:\/\/www.microconsult.de\/embedded-und-echtzeit-softwareentwicklung\/\" target=\"_blank\" rel=\"noopener\"><strong>Zu den Fachinformationen<\/strong><\/a><\/p>\n<p><strong>Fachwissen zu weiteren Themen unseren Portfolios finden Sie <a title=\"MicroConsult Fachwissen\" href=\"https:\/\/www.microconsult.de\/fachwissen\/\" target=\"_blank\" rel=\"noopener\">hier<\/a>.<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Einbindung von Sensoren und Aktoren mit Industrial-IO in Linux Autor: Andreas Klinger, IT-Klinger Beitrag &#8211; Embedded Software Engineering Kongress 2017 Seit 2011 gibt es im Linux-Kernel das Industrial-Input-Output-Subsystem, kurz IIO. Inzwischen wurden von der recht eifrigen Community rund um die Mailingliste linux-iio beinahe 248 IIO-Treiber (stable v4.13, ohne Variationen und Staging) mainline gebracht. Beispiele sind [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_et_pb_use_builder":"","_et_pb_old_content":"","_et_gb_content_width":"","inline_featured_image":false,"footnotes":""},"categories":[],"tags":[],"class_list":["post-7880","post","type-post","status-publish","format-standard","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.9 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Industrial-IO unter Linux - MicroConsult Academy GmbH<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.microconsult.de\/en\/industrial-io-under-linux\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Industrial-IO unter Linux - MicroConsult Academy GmbH\" \/>\n<meta property=\"og:description\" content=\"Einbindung von Sensoren und Aktoren mit Industrial-IO in Linux Autor: Andreas Klinger, IT-Klinger Beitrag &#8211; Embedded Software Engineering Kongress 2017 Seit 2011 gibt es im Linux-Kernel das Industrial-Input-Output-Subsystem, kurz IIO. Inzwischen wurden von der recht eifrigen Community rund um die Mailingliste linux-iio beinahe 248 IIO-Treiber (stable v4.13, ohne Variationen und Staging) mainline gebracht. Beispiele sind [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.microconsult.de\/en\/industrial-io-under-linux\/\" \/>\n<meta property=\"og:site_name\" content=\"MicroConsult Academy GmbH\" \/>\n<meta property=\"article:published_time\" content=\"2025-11-29T06:35:24+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-02-13T08:53:11+00:00\" \/>\n<meta name=\"author\" content=\"weissblau media\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"weissblau media\" \/>\n\t<meta name=\"twitter:label2\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/industrial-io-unter-linux\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/industrial-io-unter-linux\\\/\"},\"author\":{\"name\":\"weissblau media\",\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/#\\\/schema\\\/person\\\/b6d4c4ae959b068fbe8d9416ed019a0a\"},\"headline\":\"Industrial-IO unter Linux\",\"datePublished\":\"2025-11-29T06:35:24+00:00\",\"dateModified\":\"2026-02-13T08:53:11+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/industrial-io-unter-linux\\\/\"},\"wordCount\":1336,\"commentCount\":0,\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.microconsult.de\\\/industrial-io-unter-linux\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/industrial-io-unter-linux\\\/\",\"url\":\"https:\\\/\\\/www.microconsult.de\\\/industrial-io-unter-linux\\\/\",\"name\":\"Industrial-IO unter Linux - MicroConsult Academy GmbH\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/#website\"},\"datePublished\":\"2025-11-29T06:35:24+00:00\",\"dateModified\":\"2026-02-13T08:53:11+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/#\\\/schema\\\/person\\\/b6d4c4ae959b068fbe8d9416ed019a0a\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/industrial-io-unter-linux\\\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.microconsult.de\\\/industrial-io-unter-linux\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/industrial-io-unter-linux\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.microconsult.de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Industrial-IO unter Linux\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/#website\",\"url\":\"https:\\\/\\\/www.microconsult.de\\\/\",\"name\":\"MicroConsult Academy GmbH\",\"description\":\"Professionelle Schulungen, Beratung und Projektunterst\u00fctzung\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.microconsult.de\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-GB\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/#\\\/schema\\\/person\\\/b6d4c4ae959b068fbe8d9416ed019a0a\",\"name\":\"weissblau media\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/bbb409da4970da9446f6c49465d453cb8a0dae301e4d4f465b5c4e62408daa2e?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/bbb409da4970da9446f6c49465d453cb8a0dae301e4d4f465b5c4e62408daa2e?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/bbb409da4970da9446f6c49465d453cb8a0dae301e4d4f465b5c4e62408daa2e?s=96&d=mm&r=g\",\"caption\":\"weissblau media\"},\"sameAs\":[\"https:\\\/\\\/www.microconsult.de\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Industrial IO under Linux - MicroConsult Academy GmbH","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.microconsult.de\/en\/industrial-io-under-linux\/","og_locale":"en_GB","og_type":"article","og_title":"Industrial-IO unter Linux - MicroConsult Academy GmbH","og_description":"Einbindung von Sensoren und Aktoren mit Industrial-IO in Linux Autor: Andreas Klinger, IT-Klinger Beitrag &#8211; Embedded Software Engineering Kongress 2017 Seit 2011 gibt es im Linux-Kernel das Industrial-Input-Output-Subsystem, kurz IIO. Inzwischen wurden von der recht eifrigen Community rund um die Mailingliste linux-iio beinahe 248 IIO-Treiber (stable v4.13, ohne Variationen und Staging) mainline gebracht. Beispiele sind [&hellip;]","og_url":"https:\/\/www.microconsult.de\/en\/industrial-io-under-linux\/","og_site_name":"MicroConsult Academy GmbH","article_published_time":"2025-11-29T06:35:24+00:00","article_modified_time":"2026-02-13T08:53:11+00:00","author":"weissblau media","twitter_card":"summary_large_image","twitter_misc":{"Written by":"weissblau media","Estimated reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.microconsult.de\/industrial-io-unter-linux\/#article","isPartOf":{"@id":"https:\/\/www.microconsult.de\/industrial-io-unter-linux\/"},"author":{"name":"weissblau media","@id":"https:\/\/www.microconsult.de\/#\/schema\/person\/b6d4c4ae959b068fbe8d9416ed019a0a"},"headline":"Industrial-IO unter Linux","datePublished":"2025-11-29T06:35:24+00:00","dateModified":"2026-02-13T08:53:11+00:00","mainEntityOfPage":{"@id":"https:\/\/www.microconsult.de\/industrial-io-unter-linux\/"},"wordCount":1336,"commentCount":0,"inLanguage":"en-GB","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.microconsult.de\/industrial-io-unter-linux\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.microconsult.de\/industrial-io-unter-linux\/","url":"https:\/\/www.microconsult.de\/industrial-io-unter-linux\/","name":"Industrial IO under Linux - MicroConsult Academy GmbH","isPartOf":{"@id":"https:\/\/www.microconsult.de\/#website"},"datePublished":"2025-11-29T06:35:24+00:00","dateModified":"2026-02-13T08:53:11+00:00","author":{"@id":"https:\/\/www.microconsult.de\/#\/schema\/person\/b6d4c4ae959b068fbe8d9416ed019a0a"},"breadcrumb":{"@id":"https:\/\/www.microconsult.de\/industrial-io-unter-linux\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.microconsult.de\/industrial-io-unter-linux\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.microconsult.de\/industrial-io-unter-linux\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.microconsult.de\/"},{"@type":"ListItem","position":2,"name":"Industrial-IO unter Linux"}]},{"@type":"WebSite","@id":"https:\/\/www.microconsult.de\/#website","url":"https:\/\/www.microconsult.de\/","name":"MicroConsult Academy GmbH","description":"Professional training, consulting and project support","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.microconsult.de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"},{"@type":"Person","@id":"https:\/\/www.microconsult.de\/#\/schema\/person\/b6d4c4ae959b068fbe8d9416ed019a0a","name":"weissblau media","image":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/secure.gravatar.com\/avatar\/bbb409da4970da9446f6c49465d453cb8a0dae301e4d4f465b5c4e62408daa2e?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/bbb409da4970da9446f6c49465d453cb8a0dae301e4d4f465b5c4e62408daa2e?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/bbb409da4970da9446f6c49465d453cb8a0dae301e4d4f465b5c4e62408daa2e?s=96&d=mm&r=g","caption":"weissblau media"},"sameAs":["https:\/\/www.microconsult.de"]}]}},"post_mailing_queue_ids":[],"_links":{"self":[{"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/posts\/7880","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/comments?post=7880"}],"version-history":[{"count":6,"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/posts\/7880\/revisions"}],"predecessor-version":[{"id":11721,"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/posts\/7880\/revisions\/11721"}],"wp:attachment":[{"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/media?parent=7880"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/categories?post=7880"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/tags?post=7880"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}