Modern USB Gadget with Custom USB Functions & its Integration with systemd
Creating USB gadgets from Linux-powered devices has never been easier. Custom USB functions, such as MTP or PTP, are not a problem, either. And finally it is possible to integrate all this with systemd! The traditional approach to gadgets creation used to be writing kernel modules. Andrzej will cover composing the gadgets at runtime with configfs and available opensource tools, no more module writing. He will present recent additions to systemd which allow smooth integration of gadget creation, e.g. at device boot time - a frequent use case, all the necessary systemd units will be presented and explained, including possible templatization options. Rolling one's own USB functions (such as MTP) implemented in userspace using FunctionFS, composing them into a USB gadget and their integration with systemd will be covered and relevant systemd units explained. To demonstrate all the topics Andrzej will create an MTP gadget using opensource components and present it in action.
Consultant Senior Software Engineer
Andrzej Pietrasiewicz graduated from Warsaw University of Technology, Faculty of Electronics and Information Technology, Warsaw, Poland in 2002. From then on he had been developing systems in C++ for over 5 years. Then for 3 years, he had been involved in various smaller projects and development of an Eclipse-based IDE. For over 7 years he has been working on the Linux kernel. Andrzej is the original author and co-maintainer of drivers/media/platform/s5p-jpeg and has significantly contributed to converting USB gadgets and functions to configfs.
He spoke at LinuxCon North America 2013, 2014 and 2015, as well as Plumbers 2013 and 2015, Jesien Linuksowa 2016, LVEE 2017, Root Linux Conference 2018, OSSEU
2018 and ELC 2019. For five years he had been successfully delivering five-part kernel programming training with hands-on sessions to his fellow employees at Samsung R&D Institute Poland. Now cooperates with Collabora as a Consultant Senior Software Engineer at the Core team.