Seit mehr als 18 Jahren bearbeite ich Projekte im Bereich embedded Linux, Kernel, Treiber-
entwicklung, U-Boot Bootloader, Echtzeiterweiterungen, Graphik und anderer hardware-naher
Software. Lange Zeit für DENX und danach für diverse Kunden und Dienstleister. Es folgt
eine umgekehrt chronologische Auflistung der größeren Projekte. Diese sind jeweils unterteilt in
- Zeitraum, Bereich und eventuell Firma,
- Tätigkeiten und Aufgaben,
- Werkzeuge, Programmiersprachen, Computer-Hardware.
Die Namen der Auftraggeber und der Kundenhardware werden in der Regel nicht genannt.
07/2015 ? heute: Landmaschienenhersteller
Anpassung und Betreuung von mehreren Linux Board-Support-Packages (BSPs) für Bedien-
terminals basierend auf PowerPC, ARM i.MX6 und Intel X86-64 Prozessoren. In den Aufgaben-
bereich fallen auch die Erweiterung des Bootloaders U-Boot und Linux sowie die Entwicklung
von Kernel-Treibern und andere hardware-naher Software.
- Entwicklung und Pflege von embedded-Linux-Distributionen basierend auf Buildroot
- Anpassungen des Linux Kernels
- Anpassungen des Bootloaders U-Boot
- Linux Treiberentwicklung
- Bibliothek für Hardware-Abstruction-Layer (HAL)
- GStreamer-Multimedia-Software
U-Boot, Linux, Linuxtreiber, Kernel, Buildroot, GStreamer, C, Bash, Subversion, GIT, PowerPC,
ARM i.MX6, und Intel X86,
11/2017 ? 11/2018: Embedded Linux Software Dienstleister
Entwicklung und Betreuung von mehreren Linux Board-Support-Packages (BSPs) für
?custom? ARM i.MX6 DL und UL sowie Intel SocFPGA Cyclone5 Boards basierend auf Yocto
oder Buildroot.
- Anpassungen und Pflege von Yocto-Distrubutionen
- Anpassungen Buildroot- Distibutionen
- Anpassungen des Linux Kernels
- Anpassungen des Bootloaders U-Boot
U-Boot, Linux, Linuxtreiber, Kernel, Yoctom Buildroot,, C, Bash, Subversion, GIT, ARM i.MX6,
Intel SocFPGA.
08/2013 ? 06/2015: Smartphone, Android, Security
Mitarbeit in eimem Android-Projekt mit dem Ziel, mehrer, mehr oder weniger sichere Instanzen
von Android gleichzeitig auf einem high-end Smartphone laufen zu lassen. Mein Schwerpuknt
in diesem Projekt waren der Linux-Kernel und die unteren Schichten von Android.
- Lightweight-Virtualisierung mit Linux-Containern
- Linux Namespaces und Cgroups
- Virtualisierung des Input, Graphik aund Sensor-Interfaces
- Virtualisierung des Power-Managements und der Wakelocks
- Android Quellcode (AOSP)
- Android Build-Umgebung
- Android Laufzeit-Umgebung
Android, Linux, Linuxtreiber, Kernel, C, C++, Bash, GIT, Repo, Gerrit, Qualcomm CPUs,
Samsung Galaxy S4, Google Nexus 5.
08/2012 - 08/2013: Zugfunk
Portierung einer micro-controller-basierten ?single-threaded? Zugfunk-Software auf eine neue
Generation von Zugfunk-Hardware mit einem AT91-ARM-Prozessor unter embedded Linux.
Dies umfasst alle Software-Schichten.
- Einsatz von embedded-Linux basierend auf einer Buildroot-Distribution
- Anpassung des Graphik bzw. Framebuffer-Treibers
- Einsatz des Linux-TTY-Interfaces zur Auslese von TTY-Schnittstellen
- GPIO-Treiber zur Behandlung der digitalen Kanäle
- Adaption der Build-Umgebung
Linux, Linuxtreiber. Kernel, C, Bash, GIT, BSP, Buildroot, ARM, AT91, GSM, Graphik
04/2011 - 09/2011: Telekommunikation
Pilotprojekt: Windows-NT mit Feldbussteuerung als KVM-Gast unter Linux-rt auf einem Rack-
PC mit vier Intel-i7-Prozessoren
- Einsatz von Linux-rt mit "real-time preemption" Patch
- Unterstützung der QEMU-Emulation für eine Intel E1000-PCI-Karte
- Latenzzeitmessung mit realer Feldbushardware u.a. mit RTnet
- Performance-Optimierung mittels CPU-Isolation der Gastsysteme
- Intensives Debuggen und Fehlersuche mit Linux-FTrace
Linux-rt, Linuxtreiber. Kernel, C, Bash, Perl, GIT, Echtzeit, QEMU, KVM, Virtualisierung,
FTrace, Xenomai, RTnet, TCP/IP, Routing, iptables, x86, Intel i7, PCI, Ethernet
04/2011 - 07/2011: Automatisierung
RTDM-Treiber-Portierungen und RTserial-Treiber für MPC5200 Board
- Portierung von kundenspezifischen RTDM-Treibern
- Entwicklung eines Xenomai-RTserial-Treibers für die PSC-UART-Schnittstellen des Freescale
MPC5200 Prozessors
- Weiterleitung der Änderungen (Patches) zur Mainline-Integration
Linuxtreiber, Kernel, C, Bash, Perl, GIT, Xenomai, RTDM, Rtserial, Echtzeit, PowerPC,
MPC5200, UART, SPI, RS485, RS232
03/2011 - 04/2011: Netzwerkausrüster
DSA für Marvell 88E6061 Netzwerkswitch
Linuxunterstützung der "Distributed Switch Architecture" (DSA) für einen Marvell 88E6061
Network-Switch auf einem MPC8247 Board.
Linuxtreiber, Kernel, C, Bash, Perl, GIT, PowerPC, MPC82xx, TCP/IP, Routing, iptables,
Switching, PHY, MII
02/2011 - 03/2011: Baumaschinenhersteller
Entwicklung eines RTnet-Treibers für PowerPC AMCC 440EPx Sequoia Board
- Weiterleitung der Änderungen (Patches) zur Mainline-Integration
Linuxtreiber, Kernel, C, Bash, Perl, GIT, Xenomai, RTDM, RTnet, TCP/IP, Ethernet, PowerPC,
AMCC 440EPx
01/2011 - 05/2012: Medizintechnik
Portierung von RTnet, RTnet-MXC-FEC- und RTserial-MXC-UART-Treiber
- USB-Ethernet-Unterstützung in U-Boot für i.MX53 und i.MX6Q Boards
- Portierung und Test eines RTnet- und RTserial-Treibers für Linux mit der Xenomai Echtzeiterweiterung
für das Freescale i.MX53 QuickStep und das i.MX6Q SabreLite Board.
Linuxtreiber, Kernel, C, Bash, Perl, GIT, Xenomai, RTDM, RTnet, RTserial, TCP/IP, Ethernet,
USB, ARM, i.MX53, i.MX6Q, UART, RS232
11/2010 - 12/2010: Photonische Industrie, Messtechnik
Portierung von Linux für ein Freescale i.MX31-Qong-Board
- Inbetriebnahme und Test des Flash-Filesystems UBIFS
- Entwickeln und Zusammenstellen einer Laufzeitumgebung
- Hilfe mit QT-Key-Handling
Linuxtreiber, Kernel, C, Bash, Perl, GIT, Subversion, ELDK, UBI, UBIFS, Graphik, QT, ARM,
i.MX31, FLASH, NAND
11/2010 - 12/2010: Automatisierung
Inbetriebnahme von Flexcan unter Linux auf der MX35PDK-Platform
Linuxtreiber, Kernel, C, Bash, Perl, GIT, Linux-CAN, Flexcan, ARM, i.MX35
08/2010 - 09/2011: Energietechnik
U-Boot- und Linux-Unterstützung für ein Netzwerk-Router-Board basierend auf dem Freescale
MPC8378 und Marvell xCat Ethernet-Switch Prozessor
- Software-Entwicklung und -Pflege mit dem Linux Target Image Builder (LTIB) von Freescale
- Entwicklung eines Programms zum Laden des Bootloaders via serieller UART-Schnittstelle für den
ARM xCAT Prozessor
- Unterstützung des YAFFS2 Flash-Filesystems unter U-Boot
- Bereitstellung und Test des UBI Flash-Filesystems
- Implementierung eines SPI-Treibers zum Bedienen des DS31400 (Timing IC)
- Portierung und Test diverser SPI-, EEPROM-, HWMON- und RTC-Treiber
- Rückwärtsportierung des Linux I2C-Switch-Treibers
- Realisierung von "user space access" für den Marvell 88E6065 Switch
- Implementierung eines User-I/O-Treibers für Localbus-Devices (FPGAs)
- Implementierung von I2C-Treibern für AT24, SFPs und PCA9534
- U-Boot und Linux-Support für 4-bit NAND
- Anpassung und Test der Crypto Engine (SEC 3.0) mit OpenSSL
- Hardware-Debugging mit BDI2000 auf dem Marvell xCAT und MPC8378
Linuxtreiber, Kernel, U-Boot, C, Bash, Perl, GIT, Subversion, TCP/IP, LTIB, Routing, iptables,
OpenSSL, I2C, SPI, NAND, EEPROM, HWMON, RTC, DSDT, Ethernet, Switching, PHY, MII,
ARM, Marvell xCAT, Freescale, MPC83xx, JTAG
06/2010 - 08/2010: Betriebsleittechnik
Portierung des MIPS-GPR-Board-Supports nach Linux 2.6.35
- Portierung von Linux auf eine aktuelle Version
- Portierung des Watchdog-Treibers für den ADM6320-Chip
- Neuimplementierung des I2C-Treibers für den AT88SC-Crypto-EEPROM
- Weiterleitung der Änderungen (Patches) zur Mainline-Integration
Linuxtreiber, Kernel, C, Bash, GIT, TCP/IP, WLAN, I2C, EEPROM, Watchdog, MIPS, Alchemy
AU1550
05/2010 - 06/2010: Medizintechnik
RTnet-MXC-FEC- und RTserial-MXC-UART-Treiber für i.MX51-Babbage-Board
- Entwicklung und Test eines RTnet- und RTserial-Treibers für Linux mit der Xenomai Echtzeit-
Erweiterung
Linuxtreiber, Kernel, C, Bash, Perl, GIT, Xenomai, RTDM, RTnet, RTserial, TCP/IP, Ethernet,
ARM, i.MX53, i.MX6Q, RS232, Ethernet
03/2010 - 05/2010: Messtechnik
PTP-IEEE-1588-Demonstrator mit Freescale MPC8313ERDB-Boards
- Bereitstellung und Evaluierung des "Precision Time Protocols" (PTP) IEEE 1588 mit drei
MPC8313ERDB-Boards von Freescale mit Linux 2.6.34 um eine Zeitsynchronisation von kleiner als
20ns zu demonstrieren.
- Durchführung von Jittermessungen mit dem Programm "pptd" und einem Oszilloskop.
Linuxtreiber, Kernel, C, Bash, GIT, PTP,1588, iptables, Routing, Zeitsynchronisation, PowerPC,
MPC8313, Ethernet, PHY, MII
02/2010 - 03/2010: Photonische Industrie, Messtechnik
Entwicklung eines 1-Wire-Treibers für ein i.MX31-Board
- Entwicklung eines 1-Wire-Linuxtreibers
- Softwareunterstützung für das 1-Wire-Filesystems (OWFS)
Linuxtreiber, Kernel, C, Bash, GIT, Subversion, ELDK, 1-Wire, ARM, i.MX31
01/2010 - 03/2010: Photonische Industrie, Messtechnik
Implementierung des USBTMC-Protokolls für ein i.MX31-Board
- Implementierung mittels Linux USB-GadgetFS-Treiber
- Implementierung auf dem i.MX31 Qong-Board
Linuxtreiber, Kernel, C, Bash, GIT, Subversion, ELDK, USB 2, USBTMC, USB Host und
Device, ARM, i.MX31
08/2009 - 09/2009: Automatisierung
Portierung von U-Boot und Linux für ein MPC5200-Kunden-Board
- Portierung von U-Boot und Linux auf eine aktuelle Version
- Performance-Optimierungen nach der Umstellung von Linux 2.4 nach 2.6
Linuxtreiber, Kernel, U-Boot, C, Bash, GIT, ELDK, QT, Graphik, PowerPC, MPC5200, PCI
02/2009 - 04/2009: Energie- und Automationstechnik
Portierung von Linux für ein MPC8548-Kunden-Board
- NAND- und I2C-Treiberanpassungen
- Entwicklung eines Linux-RTC-Treibers für den RX8025
- Weiterleitung der Änderungen (Patches) zur Mainline-Integration
Linuxtreiber, Kernel, C, Bash, GIT, ELDK, I2C, RTC, PowerPC, MPC8548, I2C, NAND
01/2009 - 03/2009: Electronic Manufacturing Services (EMS)
U-Boot- und Linux-Portierung für TQM8548-AG
- Portierung des U-Boot Bootloader nach TQM8548-AG
- Portierung des Linux-Kernels 2.6.35 nach TQM8548-AG
Linux, Kernel, U-Boot, C, Bash, GIT, ELDK, I2C, RTC, PowerPC, MPC8548, PCI, PCIe, NAND
08/2008 - 12/2008: Medizintechnik
Portierung eines proprietären Echtzeit-Schedulers nach Linux mit der Echtzeiterweiterung
Xenomai und der POSIX-Skin für das Freescale MX31ADS Board
Linuxtreiber, Kernel, C, Bash, Perl, GIT, Xenomai, POSIX, Echtzeit, ARM, i.MX31
04/2008 - 06/2008: Electronic Manufacturing Services (EMS)
U-Boot- und Linux-Portierung für TQM8548
- Portierung des U-Boot Bootloader nach TQM8548
- Portierung des Linux-Kernels 2.6.35 nach TQM8548
Linuxtreiber, Kernel, U-Boot, C, Bash, GIT, ELDK, I2C, RTC, PowerPC, MPC8548, I2C,
NAND
02/2008 - 03/2008: Softwaredienstleister
GPIO-IRQ-Bench, Programm zur Latenzzeitmessung mit Linux und Xenomai
- Entwicklung eines Programms zur Messung von Latenzzeiten von Linux mit der
Echtzeiterweiterung Xenomai.
- Entwickelt für und getestet auf AMCC PowerPC 440EPx Sequoia, Freescale MPC5200 Icecube
und i.MX31 DAVE DENX Qong EVB LITE Board
- [URL auf Anfrage]
Linuxtreiber, Kernel, C, Bash, Xenomai, RTDM, Echtzeit, PowerPC, AMCC 440EPx,
MPC5200, i.MX31, GPIO
02/2008 - 05/2008: Maschinenbau
RTnet-Proxy-Demonstrator und RTnet-Treiber für Freescale MPC5200
- Entwicklung eines RTnet-Kernel-Treibers für ein Freescale MPC5200 Board
- Entwicklung eines RTnet-Proxys zum dualen Betrieb vom Rtnet-Stack zusammen mit dem
Linux-Netzwerkstack.
- Weiterleitung der Änderungen (Patches) zur Mainline-Integration
Linuxtreiber, Kernel, C, Bash, Perl, GIT, Xenomai, RTDM, RTnet, RTserial, TCP/IP, Ethernet,
ARM, i.MX53, i.MX6Q, Ethernet
01/2008 - 03/2008: Automatisierung
SocketCAN-Treiber für die EMS-CPC-PCI-Karte
- Linuxtreiberentwicklung für die EMS-CPC-PCI-Karte auf einem Industrie-PC.
- Weiterleitung der Änderungen (Patches) zur Mainline-Integration
Linuxtreiber, Kernel, C, Bash, Perl, GIT, ELDK, Linux-CAN, SJA1000, x86 PC
11/2007 - 12/2007: Automatisierung
SocketCAN-Treiber für SJA1000 mit Devicetree- und SysFS-Unterstützung
- Linuxtreiberanpassungen für den Philips SJA1000 CAN-Kontroller auf einem PHYTEC
phyCORE-PXA270 (PCM-027) Board
- Unterstützung für den Linux "Devicetree" und SysFS
Linuxtreiber, Kernel, C, Bash, Perl, GIT, ELDK, Devicetree, SysFS, Linux-CAN, SJA1000,
ARM, XScale, PXA270
10/2007 - 11/2007: Electronic Manufacturing Services (EMS)
SocketCAN-Treiber für i82527 auf einem TQM85xx-Board
- Linuxtreiberanpassungen für den Intel 82527 CAN-Kontroller auf einem TQM85xx-Board
- Weiterleitung der Änderungen (Patches) zur Mainline-Integration
Linuxtreiber, Kernel, C, Bash, Perl, GIT, Linux-CAN, Intel 82527, PowerPC, MPC8548
01/2007 - 04/2007: OSADL, Automatisierung
RTDM-native: Portierung von Xenomai RTDM nach Linux-rt (Linux mit dem Realtime
Preemption Patch)
- [URL auf Anfrage]
Linux-rt, Linuxtreiber, Kernel, C, Bash, Echtzeiterweiterung, Xenomai
08/2006 - 12/2008: Telekommunikation
Mitentwicklung einer high-end Telefonanlage basierend auf dem OMAP 1710 Prozessor von
Texas-Instruments
- Erweiterung des Bootloader U-Boot für eine OMAP-Platform
- Realisierung von Hardwaretests für den Display-Speicher, das LAN-Interface und die PS2-
Schnittstelle via U-Boot-Kommando
- Inbetriebnahme von der Hardware über Erweiterungen in U-Boot
- Hardware Diagnose und Fehlerbehebung
Linuxtreiber, Kernel, U-Boot, GIT, ELDK, ARM-Assembler, OTRS, ARM, OMAP, PS2,
Ethernet
02/2006 - 04/2006: Linux-Portierung eines CANopen-RT-Stacks
Portierung eines kommerziellen CANopen-RT-Stacks nach Linux
- Treiberanpassung für Linux auf einem MPC5200-Board
- Testprogramme zum Testen des CANopen-Stacks
Linuxtreiber, Kernel, C, Bash, CVS, ELDK, CAN, CANopen, PowerPC, MPC5200
11/2005 - 03/2006: Telekommunikation
Mitentwicklung einer Set-Top-Box (STB) für Digital-TV via Internet basierend auf einem ST
Microelectronics ST7100 Chip mit SH4 CPU
- Untersuchung und Test von Flash-Filesystemen (squashfs, jffs2)
- Test des U-Boot Bootloaders und des Linux-Kernels
- Hilfe beim Kernel-Debuggen mit GDB
Linuxtreiber, Kernel, C, Bash, Rational ClearCase, SH4, ST7100, FLASH, MPEG2, H.264
06/2005 - 07/2005: Kassensysteme
QT-Framebuffer-Support für Fujitsu Coral-P-Graphikkontroller
- Anpassung des Linux und QT embedded Framebuffer-Treibers
Linuxtreiber, C, Bash, CVS, ELDK, QT embedded, MPC5200, Graphik
04/2005 - 05/2005: Automatisierung
Portierung eines kommerziellen CANopen-Stacks nach Linux und RTAI
- Treiberanpassung für Liunx und RTAI auf einem MPC5200-Board
- Testprogramme zum Testen des CANopen-Stacks
Linuxtreiber, C, Bash, CVS, ELDK, CANopen, MPC5200, Echtzeit, RTAI
11/2004 - 10/2006: Telekommunikation
Mitentwicklung eines VoIP-Telefons basierend auf der "VoIP Gateway Reference Platform" von
Texas Instruments
- Optimierung des Speicherbedarf wegen FLASH-Limitierung
- Implementierung der Zwangstrennung für das PPPoe Verbindungsmanagement
- Realisierung von speziellem Routing und QoS um Daten und Voice gleichzeitig über eine
PPPoE-Verbindung zu fahren
- Unterstützung von zwei parallelen SIP-Calls im DSP Control und Management
- Evaluierung und Test der von Texas Instruments bereitgestellten Linux-Distribution und
Entwicklungstools
- Hilfe bei der Suche von diversen Kernelproblemen (Debugging)
Linuxtreiber, Kernel, C, Bash, Subversion, VoIP, RTP, SIP, G729, G711, PPPoe, MIPS, AR7Wi,
DSL, WLAN, DECT
08/2002 - 04/2004: Telekommunikation
Pilotprojekt für Linux als Betriebssystem für den UMTS NodeB:
- Portierung von NodeB-Treibern von VxWorks nach Linux
- Anpassung des Bootloaders U-Boot für PowerPC AMCC 405 GP
- Linux-Unterstützung für PowerPC AMCC 405 GP
- ELDK basierte Entwicklungs- und Laufzeitumgebung
- Linux-Kernel-Debugging, auch mit Abatron BDI2000
- Linuxtreiber-Portierungen für ATM, I2C, Netzwerk, etc.
- Performance-Optimierung, Untersuchung von TLB-Misses
- Rational Clearcase für Source-Code-Magement
Linuxtreiber, Kernel, U-boot, C, Bash, Perl, Rational Clearcase, ATM, AAL, PowerPC, AMCC
405GP, I2C, PCI, ATM, FPGA, FLASH, Filesysteme, UMTS, GPS
11/2002 - 03/2003: Automatisierung
Implementierung von Videotreibern für ein MPC823-Board
- Unterstützung des YCbYCr-Formats im Framebuffertreiber und Microwindows zur Darstellung
auf NEC-Bildschirmen
Linuxtreiber, C, Bash, PowerPC MPC823, Microwindows
02/2002 - 03/2004: Telekommunikation
Anpassung des Linux Trace Toolkit (LTT) für DENX Linux 2.4 und RTAI
Linuxtreiber, PowerPC-Assembler, C, Bash, CVS, Montavista Hardhat, Echtzeit, RTAI, LTT
08/2001 - 10/2001: Softwaredienstleister
Portierung von TimeSys Linux für den PowerPC 750cx (G3) Prozessor
- Anpassung des TimeSys Linux 2.2 und 2.4 Kernels für PowerPC 750cx
- Test der Portierung mit der TimeSys und Yellowdog Linux-Distribution
Linux-Kernel, PowerPC-Assembler, C, Bash, MPC750cx
1975 - 1978: Technisches Gymnasium in Karlsruhe
1979 - 1986: Studium der Physik an der Universität Karlsruhe (TH)
1987: Diplom in Physik
1986 - 1992: Doktorand am Kernforschungszentrum Karlsruhe (KfK)
Schwerpunkt Datenaufnahmesysteme für Neutrinoexperiment.
1992: Doktor der Naturwissenschaften
1993 - 1996: Postdoc-Stelle für Digital Equipment Cooperation zur
Entwicklung des Datenaufnahmesystems für das KLOE--Experiment
am Laboratori Nazionali di Frascati bei Rom.
1997 - 2001 Systems Engineer zur Entwicklung von hardware-naher Software
(BIOS, Betriebssystemanpassungen, Treiber) bei der Firma CES
in Genf.
2002 ? 2013,
2015 ? heute: Freiberufliche Tätigkeit als Embedded Linux Softwareentwickler
2013 - 2015: Embedded Linux Softwareentwickler für den IT-Dienstleister Mixed Mode GmbH
Hardware-nahe Softwareentwicklung für Embedded-Systeme
Bootloader, Linux, Kernel, Treiber, etc.
Schwerpunkt freie Software (Linux, U-Boot, etc.)
Ich habe, teils jahrelange, Erfahrung ...
... mit Anpassungen vom Bootloader U-Boot und Linux-Kernel:
- für eine Vielzahl von PowerPC- und ARM basierten Boards.
- für eine Vielzahl von Treibern bzw, Schnittstellen (Netzwerk,
I2C, SPI, CAN, USB, Graphik, FPGA, Seriell (UART), etc.).
... mit Linux-Echtzeiterweiterungen:
- Xenomai
- Linux -RT (Linux mit Realtime-Preemption-Patch)
... mit diversen Cross-Entwicklungsumgebungen und -Tools:
- Yocto
- OpenEmbedded
- Buildrooot
... im Umgang mit freien Softwareprojekten:
- Aktive Beiträge zum "mainline" Linux-Kernel, U-Boot Bootloader,
Xenomai, etc.
- Diskussion von Erweiterungen und Änderungen via Mailingliste sowie
Bereitstellung von Patches (Upstream-Pushing).
- Maintainer für das Linux-CAN (aka Socket-CAN) Subsystem im Kernel.
... mit Hardware-Debugging mit dem BDI2000/3000 von Abatron.
Automatisierungstechnik
Industrie
Telekommunikation
Elektrotechnik
Forschung
Entwicklung
IT-Branche
Für regelmäßige Einsätze vor Ort bevorzuge ich den Großraum München.
Ansonsten Projektbearbeitung schwerpunktmäßig in meinem Büro.
Seit mehr als 18 Jahren bearbeite ich Projekte im Bereich embedded Linux, Kernel, Treiber-
entwicklung, U-Boot Bootloader, Echtzeiterweiterungen, Graphik und anderer hardware-naher
Software. Lange Zeit für DENX und danach für diverse Kunden und Dienstleister. Es folgt
eine umgekehrt chronologische Auflistung der größeren Projekte. Diese sind jeweils unterteilt in
- Zeitraum, Bereich und eventuell Firma,
- Tätigkeiten und Aufgaben,
- Werkzeuge, Programmiersprachen, Computer-Hardware.
Die Namen der Auftraggeber und der Kundenhardware werden in der Regel nicht genannt.
07/2015 ? heute: Landmaschienenhersteller
Anpassung und Betreuung von mehreren Linux Board-Support-Packages (BSPs) für Bedien-
terminals basierend auf PowerPC, ARM i.MX6 und Intel X86-64 Prozessoren. In den Aufgaben-
bereich fallen auch die Erweiterung des Bootloaders U-Boot und Linux sowie die Entwicklung
von Kernel-Treibern und andere hardware-naher Software.
- Entwicklung und Pflege von embedded-Linux-Distributionen basierend auf Buildroot
- Anpassungen des Linux Kernels
- Anpassungen des Bootloaders U-Boot
- Linux Treiberentwicklung
- Bibliothek für Hardware-Abstruction-Layer (HAL)
- GStreamer-Multimedia-Software
U-Boot, Linux, Linuxtreiber, Kernel, Buildroot, GStreamer, C, Bash, Subversion, GIT, PowerPC,
ARM i.MX6, und Intel X86,
11/2017 ? 11/2018: Embedded Linux Software Dienstleister
Entwicklung und Betreuung von mehreren Linux Board-Support-Packages (BSPs) für
?custom? ARM i.MX6 DL und UL sowie Intel SocFPGA Cyclone5 Boards basierend auf Yocto
oder Buildroot.
- Anpassungen und Pflege von Yocto-Distrubutionen
- Anpassungen Buildroot- Distibutionen
- Anpassungen des Linux Kernels
- Anpassungen des Bootloaders U-Boot
U-Boot, Linux, Linuxtreiber, Kernel, Yoctom Buildroot,, C, Bash, Subversion, GIT, ARM i.MX6,
Intel SocFPGA.
08/2013 ? 06/2015: Smartphone, Android, Security
Mitarbeit in eimem Android-Projekt mit dem Ziel, mehrer, mehr oder weniger sichere Instanzen
von Android gleichzeitig auf einem high-end Smartphone laufen zu lassen. Mein Schwerpuknt
in diesem Projekt waren der Linux-Kernel und die unteren Schichten von Android.
- Lightweight-Virtualisierung mit Linux-Containern
- Linux Namespaces und Cgroups
- Virtualisierung des Input, Graphik aund Sensor-Interfaces
- Virtualisierung des Power-Managements und der Wakelocks
- Android Quellcode (AOSP)
- Android Build-Umgebung
- Android Laufzeit-Umgebung
Android, Linux, Linuxtreiber, Kernel, C, C++, Bash, GIT, Repo, Gerrit, Qualcomm CPUs,
Samsung Galaxy S4, Google Nexus 5.
08/2012 - 08/2013: Zugfunk
Portierung einer micro-controller-basierten ?single-threaded? Zugfunk-Software auf eine neue
Generation von Zugfunk-Hardware mit einem AT91-ARM-Prozessor unter embedded Linux.
Dies umfasst alle Software-Schichten.
- Einsatz von embedded-Linux basierend auf einer Buildroot-Distribution
- Anpassung des Graphik bzw. Framebuffer-Treibers
- Einsatz des Linux-TTY-Interfaces zur Auslese von TTY-Schnittstellen
- GPIO-Treiber zur Behandlung der digitalen Kanäle
- Adaption der Build-Umgebung
Linux, Linuxtreiber. Kernel, C, Bash, GIT, BSP, Buildroot, ARM, AT91, GSM, Graphik
04/2011 - 09/2011: Telekommunikation
Pilotprojekt: Windows-NT mit Feldbussteuerung als KVM-Gast unter Linux-rt auf einem Rack-
PC mit vier Intel-i7-Prozessoren
- Einsatz von Linux-rt mit "real-time preemption" Patch
- Unterstützung der QEMU-Emulation für eine Intel E1000-PCI-Karte
- Latenzzeitmessung mit realer Feldbushardware u.a. mit RTnet
- Performance-Optimierung mittels CPU-Isolation der Gastsysteme
- Intensives Debuggen und Fehlersuche mit Linux-FTrace
Linux-rt, Linuxtreiber. Kernel, C, Bash, Perl, GIT, Echtzeit, QEMU, KVM, Virtualisierung,
FTrace, Xenomai, RTnet, TCP/IP, Routing, iptables, x86, Intel i7, PCI, Ethernet
04/2011 - 07/2011: Automatisierung
RTDM-Treiber-Portierungen und RTserial-Treiber für MPC5200 Board
- Portierung von kundenspezifischen RTDM-Treibern
- Entwicklung eines Xenomai-RTserial-Treibers für die PSC-UART-Schnittstellen des Freescale
MPC5200 Prozessors
- Weiterleitung der Änderungen (Patches) zur Mainline-Integration
Linuxtreiber, Kernel, C, Bash, Perl, GIT, Xenomai, RTDM, Rtserial, Echtzeit, PowerPC,
MPC5200, UART, SPI, RS485, RS232
03/2011 - 04/2011: Netzwerkausrüster
DSA für Marvell 88E6061 Netzwerkswitch
Linuxunterstützung der "Distributed Switch Architecture" (DSA) für einen Marvell 88E6061
Network-Switch auf einem MPC8247 Board.
Linuxtreiber, Kernel, C, Bash, Perl, GIT, PowerPC, MPC82xx, TCP/IP, Routing, iptables,
Switching, PHY, MII
02/2011 - 03/2011: Baumaschinenhersteller
Entwicklung eines RTnet-Treibers für PowerPC AMCC 440EPx Sequoia Board
- Weiterleitung der Änderungen (Patches) zur Mainline-Integration
Linuxtreiber, Kernel, C, Bash, Perl, GIT, Xenomai, RTDM, RTnet, TCP/IP, Ethernet, PowerPC,
AMCC 440EPx
01/2011 - 05/2012: Medizintechnik
Portierung von RTnet, RTnet-MXC-FEC- und RTserial-MXC-UART-Treiber
- USB-Ethernet-Unterstützung in U-Boot für i.MX53 und i.MX6Q Boards
- Portierung und Test eines RTnet- und RTserial-Treibers für Linux mit der Xenomai Echtzeiterweiterung
für das Freescale i.MX53 QuickStep und das i.MX6Q SabreLite Board.
Linuxtreiber, Kernel, C, Bash, Perl, GIT, Xenomai, RTDM, RTnet, RTserial, TCP/IP, Ethernet,
USB, ARM, i.MX53, i.MX6Q, UART, RS232
11/2010 - 12/2010: Photonische Industrie, Messtechnik
Portierung von Linux für ein Freescale i.MX31-Qong-Board
- Inbetriebnahme und Test des Flash-Filesystems UBIFS
- Entwickeln und Zusammenstellen einer Laufzeitumgebung
- Hilfe mit QT-Key-Handling
Linuxtreiber, Kernel, C, Bash, Perl, GIT, Subversion, ELDK, UBI, UBIFS, Graphik, QT, ARM,
i.MX31, FLASH, NAND
11/2010 - 12/2010: Automatisierung
Inbetriebnahme von Flexcan unter Linux auf der MX35PDK-Platform
Linuxtreiber, Kernel, C, Bash, Perl, GIT, Linux-CAN, Flexcan, ARM, i.MX35
08/2010 - 09/2011: Energietechnik
U-Boot- und Linux-Unterstützung für ein Netzwerk-Router-Board basierend auf dem Freescale
MPC8378 und Marvell xCat Ethernet-Switch Prozessor
- Software-Entwicklung und -Pflege mit dem Linux Target Image Builder (LTIB) von Freescale
- Entwicklung eines Programms zum Laden des Bootloaders via serieller UART-Schnittstelle für den
ARM xCAT Prozessor
- Unterstützung des YAFFS2 Flash-Filesystems unter U-Boot
- Bereitstellung und Test des UBI Flash-Filesystems
- Implementierung eines SPI-Treibers zum Bedienen des DS31400 (Timing IC)
- Portierung und Test diverser SPI-, EEPROM-, HWMON- und RTC-Treiber
- Rückwärtsportierung des Linux I2C-Switch-Treibers
- Realisierung von "user space access" für den Marvell 88E6065 Switch
- Implementierung eines User-I/O-Treibers für Localbus-Devices (FPGAs)
- Implementierung von I2C-Treibern für AT24, SFPs und PCA9534
- U-Boot und Linux-Support für 4-bit NAND
- Anpassung und Test der Crypto Engine (SEC 3.0) mit OpenSSL
- Hardware-Debugging mit BDI2000 auf dem Marvell xCAT und MPC8378
Linuxtreiber, Kernel, U-Boot, C, Bash, Perl, GIT, Subversion, TCP/IP, LTIB, Routing, iptables,
OpenSSL, I2C, SPI, NAND, EEPROM, HWMON, RTC, DSDT, Ethernet, Switching, PHY, MII,
ARM, Marvell xCAT, Freescale, MPC83xx, JTAG
06/2010 - 08/2010: Betriebsleittechnik
Portierung des MIPS-GPR-Board-Supports nach Linux 2.6.35
- Portierung von Linux auf eine aktuelle Version
- Portierung des Watchdog-Treibers für den ADM6320-Chip
- Neuimplementierung des I2C-Treibers für den AT88SC-Crypto-EEPROM
- Weiterleitung der Änderungen (Patches) zur Mainline-Integration
Linuxtreiber, Kernel, C, Bash, GIT, TCP/IP, WLAN, I2C, EEPROM, Watchdog, MIPS, Alchemy
AU1550
05/2010 - 06/2010: Medizintechnik
RTnet-MXC-FEC- und RTserial-MXC-UART-Treiber für i.MX51-Babbage-Board
- Entwicklung und Test eines RTnet- und RTserial-Treibers für Linux mit der Xenomai Echtzeit-
Erweiterung
Linuxtreiber, Kernel, C, Bash, Perl, GIT, Xenomai, RTDM, RTnet, RTserial, TCP/IP, Ethernet,
ARM, i.MX53, i.MX6Q, RS232, Ethernet
03/2010 - 05/2010: Messtechnik
PTP-IEEE-1588-Demonstrator mit Freescale MPC8313ERDB-Boards
- Bereitstellung und Evaluierung des "Precision Time Protocols" (PTP) IEEE 1588 mit drei
MPC8313ERDB-Boards von Freescale mit Linux 2.6.34 um eine Zeitsynchronisation von kleiner als
20ns zu demonstrieren.
- Durchführung von Jittermessungen mit dem Programm "pptd" und einem Oszilloskop.
Linuxtreiber, Kernel, C, Bash, GIT, PTP,1588, iptables, Routing, Zeitsynchronisation, PowerPC,
MPC8313, Ethernet, PHY, MII
02/2010 - 03/2010: Photonische Industrie, Messtechnik
Entwicklung eines 1-Wire-Treibers für ein i.MX31-Board
- Entwicklung eines 1-Wire-Linuxtreibers
- Softwareunterstützung für das 1-Wire-Filesystems (OWFS)
Linuxtreiber, Kernel, C, Bash, GIT, Subversion, ELDK, 1-Wire, ARM, i.MX31
01/2010 - 03/2010: Photonische Industrie, Messtechnik
Implementierung des USBTMC-Protokolls für ein i.MX31-Board
- Implementierung mittels Linux USB-GadgetFS-Treiber
- Implementierung auf dem i.MX31 Qong-Board
Linuxtreiber, Kernel, C, Bash, GIT, Subversion, ELDK, USB 2, USBTMC, USB Host und
Device, ARM, i.MX31
08/2009 - 09/2009: Automatisierung
Portierung von U-Boot und Linux für ein MPC5200-Kunden-Board
- Portierung von U-Boot und Linux auf eine aktuelle Version
- Performance-Optimierungen nach der Umstellung von Linux 2.4 nach 2.6
Linuxtreiber, Kernel, U-Boot, C, Bash, GIT, ELDK, QT, Graphik, PowerPC, MPC5200, PCI
02/2009 - 04/2009: Energie- und Automationstechnik
Portierung von Linux für ein MPC8548-Kunden-Board
- NAND- und I2C-Treiberanpassungen
- Entwicklung eines Linux-RTC-Treibers für den RX8025
- Weiterleitung der Änderungen (Patches) zur Mainline-Integration
Linuxtreiber, Kernel, C, Bash, GIT, ELDK, I2C, RTC, PowerPC, MPC8548, I2C, NAND
01/2009 - 03/2009: Electronic Manufacturing Services (EMS)
U-Boot- und Linux-Portierung für TQM8548-AG
- Portierung des U-Boot Bootloader nach TQM8548-AG
- Portierung des Linux-Kernels 2.6.35 nach TQM8548-AG
Linux, Kernel, U-Boot, C, Bash, GIT, ELDK, I2C, RTC, PowerPC, MPC8548, PCI, PCIe, NAND
08/2008 - 12/2008: Medizintechnik
Portierung eines proprietären Echtzeit-Schedulers nach Linux mit der Echtzeiterweiterung
Xenomai und der POSIX-Skin für das Freescale MX31ADS Board
Linuxtreiber, Kernel, C, Bash, Perl, GIT, Xenomai, POSIX, Echtzeit, ARM, i.MX31
04/2008 - 06/2008: Electronic Manufacturing Services (EMS)
U-Boot- und Linux-Portierung für TQM8548
- Portierung des U-Boot Bootloader nach TQM8548
- Portierung des Linux-Kernels 2.6.35 nach TQM8548
Linuxtreiber, Kernel, U-Boot, C, Bash, GIT, ELDK, I2C, RTC, PowerPC, MPC8548, I2C,
NAND
02/2008 - 03/2008: Softwaredienstleister
GPIO-IRQ-Bench, Programm zur Latenzzeitmessung mit Linux und Xenomai
- Entwicklung eines Programms zur Messung von Latenzzeiten von Linux mit der
Echtzeiterweiterung Xenomai.
- Entwickelt für und getestet auf AMCC PowerPC 440EPx Sequoia, Freescale MPC5200 Icecube
und i.MX31 DAVE DENX Qong EVB LITE Board
- [URL auf Anfrage]
Linuxtreiber, Kernel, C, Bash, Xenomai, RTDM, Echtzeit, PowerPC, AMCC 440EPx,
MPC5200, i.MX31, GPIO
02/2008 - 05/2008: Maschinenbau
RTnet-Proxy-Demonstrator und RTnet-Treiber für Freescale MPC5200
- Entwicklung eines RTnet-Kernel-Treibers für ein Freescale MPC5200 Board
- Entwicklung eines RTnet-Proxys zum dualen Betrieb vom Rtnet-Stack zusammen mit dem
Linux-Netzwerkstack.
- Weiterleitung der Änderungen (Patches) zur Mainline-Integration
Linuxtreiber, Kernel, C, Bash, Perl, GIT, Xenomai, RTDM, RTnet, RTserial, TCP/IP, Ethernet,
ARM, i.MX53, i.MX6Q, Ethernet
01/2008 - 03/2008: Automatisierung
SocketCAN-Treiber für die EMS-CPC-PCI-Karte
- Linuxtreiberentwicklung für die EMS-CPC-PCI-Karte auf einem Industrie-PC.
- Weiterleitung der Änderungen (Patches) zur Mainline-Integration
Linuxtreiber, Kernel, C, Bash, Perl, GIT, ELDK, Linux-CAN, SJA1000, x86 PC
11/2007 - 12/2007: Automatisierung
SocketCAN-Treiber für SJA1000 mit Devicetree- und SysFS-Unterstützung
- Linuxtreiberanpassungen für den Philips SJA1000 CAN-Kontroller auf einem PHYTEC
phyCORE-PXA270 (PCM-027) Board
- Unterstützung für den Linux "Devicetree" und SysFS
Linuxtreiber, Kernel, C, Bash, Perl, GIT, ELDK, Devicetree, SysFS, Linux-CAN, SJA1000,
ARM, XScale, PXA270
10/2007 - 11/2007: Electronic Manufacturing Services (EMS)
SocketCAN-Treiber für i82527 auf einem TQM85xx-Board
- Linuxtreiberanpassungen für den Intel 82527 CAN-Kontroller auf einem TQM85xx-Board
- Weiterleitung der Änderungen (Patches) zur Mainline-Integration
Linuxtreiber, Kernel, C, Bash, Perl, GIT, Linux-CAN, Intel 82527, PowerPC, MPC8548
01/2007 - 04/2007: OSADL, Automatisierung
RTDM-native: Portierung von Xenomai RTDM nach Linux-rt (Linux mit dem Realtime
Preemption Patch)
- [URL auf Anfrage]
Linux-rt, Linuxtreiber, Kernel, C, Bash, Echtzeiterweiterung, Xenomai
08/2006 - 12/2008: Telekommunikation
Mitentwicklung einer high-end Telefonanlage basierend auf dem OMAP 1710 Prozessor von
Texas-Instruments
- Erweiterung des Bootloader U-Boot für eine OMAP-Platform
- Realisierung von Hardwaretests für den Display-Speicher, das LAN-Interface und die PS2-
Schnittstelle via U-Boot-Kommando
- Inbetriebnahme von der Hardware über Erweiterungen in U-Boot
- Hardware Diagnose und Fehlerbehebung
Linuxtreiber, Kernel, U-Boot, GIT, ELDK, ARM-Assembler, OTRS, ARM, OMAP, PS2,
Ethernet
02/2006 - 04/2006: Linux-Portierung eines CANopen-RT-Stacks
Portierung eines kommerziellen CANopen-RT-Stacks nach Linux
- Treiberanpassung für Linux auf einem MPC5200-Board
- Testprogramme zum Testen des CANopen-Stacks
Linuxtreiber, Kernel, C, Bash, CVS, ELDK, CAN, CANopen, PowerPC, MPC5200
11/2005 - 03/2006: Telekommunikation
Mitentwicklung einer Set-Top-Box (STB) für Digital-TV via Internet basierend auf einem ST
Microelectronics ST7100 Chip mit SH4 CPU
- Untersuchung und Test von Flash-Filesystemen (squashfs, jffs2)
- Test des U-Boot Bootloaders und des Linux-Kernels
- Hilfe beim Kernel-Debuggen mit GDB
Linuxtreiber, Kernel, C, Bash, Rational ClearCase, SH4, ST7100, FLASH, MPEG2, H.264
06/2005 - 07/2005: Kassensysteme
QT-Framebuffer-Support für Fujitsu Coral-P-Graphikkontroller
- Anpassung des Linux und QT embedded Framebuffer-Treibers
Linuxtreiber, C, Bash, CVS, ELDK, QT embedded, MPC5200, Graphik
04/2005 - 05/2005: Automatisierung
Portierung eines kommerziellen CANopen-Stacks nach Linux und RTAI
- Treiberanpassung für Liunx und RTAI auf einem MPC5200-Board
- Testprogramme zum Testen des CANopen-Stacks
Linuxtreiber, C, Bash, CVS, ELDK, CANopen, MPC5200, Echtzeit, RTAI
11/2004 - 10/2006: Telekommunikation
Mitentwicklung eines VoIP-Telefons basierend auf der "VoIP Gateway Reference Platform" von
Texas Instruments
- Optimierung des Speicherbedarf wegen FLASH-Limitierung
- Implementierung der Zwangstrennung für das PPPoe Verbindungsmanagement
- Realisierung von speziellem Routing und QoS um Daten und Voice gleichzeitig über eine
PPPoE-Verbindung zu fahren
- Unterstützung von zwei parallelen SIP-Calls im DSP Control und Management
- Evaluierung und Test der von Texas Instruments bereitgestellten Linux-Distribution und
Entwicklungstools
- Hilfe bei der Suche von diversen Kernelproblemen (Debugging)
Linuxtreiber, Kernel, C, Bash, Subversion, VoIP, RTP, SIP, G729, G711, PPPoe, MIPS, AR7Wi,
DSL, WLAN, DECT
08/2002 - 04/2004: Telekommunikation
Pilotprojekt für Linux als Betriebssystem für den UMTS NodeB:
- Portierung von NodeB-Treibern von VxWorks nach Linux
- Anpassung des Bootloaders U-Boot für PowerPC AMCC 405 GP
- Linux-Unterstützung für PowerPC AMCC 405 GP
- ELDK basierte Entwicklungs- und Laufzeitumgebung
- Linux-Kernel-Debugging, auch mit Abatron BDI2000
- Linuxtreiber-Portierungen für ATM, I2C, Netzwerk, etc.
- Performance-Optimierung, Untersuchung von TLB-Misses
- Rational Clearcase für Source-Code-Magement
Linuxtreiber, Kernel, U-boot, C, Bash, Perl, Rational Clearcase, ATM, AAL, PowerPC, AMCC
405GP, I2C, PCI, ATM, FPGA, FLASH, Filesysteme, UMTS, GPS
11/2002 - 03/2003: Automatisierung
Implementierung von Videotreibern für ein MPC823-Board
- Unterstützung des YCbYCr-Formats im Framebuffertreiber und Microwindows zur Darstellung
auf NEC-Bildschirmen
Linuxtreiber, C, Bash, PowerPC MPC823, Microwindows
02/2002 - 03/2004: Telekommunikation
Anpassung des Linux Trace Toolkit (LTT) für DENX Linux 2.4 und RTAI
Linuxtreiber, PowerPC-Assembler, C, Bash, CVS, Montavista Hardhat, Echtzeit, RTAI, LTT
08/2001 - 10/2001: Softwaredienstleister
Portierung von TimeSys Linux für den PowerPC 750cx (G3) Prozessor
- Anpassung des TimeSys Linux 2.2 und 2.4 Kernels für PowerPC 750cx
- Test der Portierung mit der TimeSys und Yellowdog Linux-Distribution
Linux-Kernel, PowerPC-Assembler, C, Bash, MPC750cx
1975 - 1978: Technisches Gymnasium in Karlsruhe
1979 - 1986: Studium der Physik an der Universität Karlsruhe (TH)
1987: Diplom in Physik
1986 - 1992: Doktorand am Kernforschungszentrum Karlsruhe (KfK)
Schwerpunkt Datenaufnahmesysteme für Neutrinoexperiment.
1992: Doktor der Naturwissenschaften
1993 - 1996: Postdoc-Stelle für Digital Equipment Cooperation zur
Entwicklung des Datenaufnahmesystems für das KLOE--Experiment
am Laboratori Nazionali di Frascati bei Rom.
1997 - 2001 Systems Engineer zur Entwicklung von hardware-naher Software
(BIOS, Betriebssystemanpassungen, Treiber) bei der Firma CES
in Genf.
2002 ? 2013,
2015 ? heute: Freiberufliche Tätigkeit als Embedded Linux Softwareentwickler
2013 - 2015: Embedded Linux Softwareentwickler für den IT-Dienstleister Mixed Mode GmbH
Hardware-nahe Softwareentwicklung für Embedded-Systeme
Bootloader, Linux, Kernel, Treiber, etc.
Schwerpunkt freie Software (Linux, U-Boot, etc.)
Ich habe, teils jahrelange, Erfahrung ...
... mit Anpassungen vom Bootloader U-Boot und Linux-Kernel:
- für eine Vielzahl von PowerPC- und ARM basierten Boards.
- für eine Vielzahl von Treibern bzw, Schnittstellen (Netzwerk,
I2C, SPI, CAN, USB, Graphik, FPGA, Seriell (UART), etc.).
... mit Linux-Echtzeiterweiterungen:
- Xenomai
- Linux -RT (Linux mit Realtime-Preemption-Patch)
... mit diversen Cross-Entwicklungsumgebungen und -Tools:
- Yocto
- OpenEmbedded
- Buildrooot
... im Umgang mit freien Softwareprojekten:
- Aktive Beiträge zum "mainline" Linux-Kernel, U-Boot Bootloader,
Xenomai, etc.
- Diskussion von Erweiterungen und Änderungen via Mailingliste sowie
Bereitstellung von Patches (Upstream-Pushing).
- Maintainer für das Linux-CAN (aka Socket-CAN) Subsystem im Kernel.
... mit Hardware-Debugging mit dem BDI2000/3000 von Abatron.
Automatisierungstechnik
Industrie
Telekommunikation
Elektrotechnik
Forschung
Entwicklung
IT-Branche
Direktester geht's nicht! Ganz einfach Freelancer finden und direkt Kontakt aufnehmen.
Für regelmäßige Einsätze vor Ort bevorzuge ich den Großraum München.
Ansonsten Projektbearbeitung schwerpunktmäßig in meinem Büro.