About Hyeseon

Hyeseon's walkthrough

Versioning up the kernel driver for KT AI Makers Kit


About the Project

KT AI Makers Kit consists of an I2S device (a microphone and a mono speaker) and other GPIO I/O devices (an LED and a button) which could be attached to a Raspberry Pi device. This could be plugged into a Raspberry Pi device and by installing the driver, it could be used for developing AI appliances for KT SDK or other software with such needs. However, the existing driver was not compatible with Raspberry Pi 4 because the prominent architecture was different (AArch64 vs. ARMv7) and Linux ABI has changed significantly since then (Linux 4.x vs. 5.x).

To remedy the issue, first I updated the driver codebase such that it would become compatible with Linux 5.x ABI. Also, while checking for other potential issues, I realized that only having a single driver version for a single kernel version could potentially lead to problems. Therefore, I provided an automated build system which allowed them to compile a new version of the driver as soon as the new version of the kernel gets released.

To sum up, there are two derivative works for this projects:

  • I2S driver patch for the recent API
  • An automated build system for the driver which allows the driver to be built again for the new kernel version as long as the ABI is unchanged

Figures

Fig. 1 - The KT AI Makers Kit, which my project supplies the driver to.

Contribution and Information

  • Period of Contribution: 9/2022
  • Total Participants: alone, barring exiting works provided by the client
  • My Roles:
  • Updating the driver source code
  • Forming an automated build system for the driver
  • Used Tech Stacks
  • Driver development: C (Embedded Linux)
  • Forming an automated build system: Container uses, buildroot, etc.

I cannot provide the actual software and/or the entire source code due to the NDA.