@coolstar what have you done Linux kernel development for? I've always been really interested but not sure where to start. I'm interested in buying new hardware, usually USB or Bluetooth devices (like game controllers or remote controls) and making them work on Linux.

@alexgleason most of my kernel development has been with the Chromebooks. I've made a few patches for supporting the trackpads, touch screens and keyboard backlights on the chromebooks

@coolstar How do you figure out how to interface with IO hardware and convert what you find into software? I feel like that's the main thing blocking me from doing what I want. Any advice appreciated :)

@alexgleason the hardware I've interfaced with are PCI and I2C. For I2C, it's a simple 2 wire bus to the I2C device, so you just write some registers, and then read them as you get interrupts over GPIO.

For PCI, you need to query the OS for the memory, I/O port and interrupt resources. Then simply read/write as you get interrupts :)

@alexgleason since you're developing drivers for Linux, the Linux kernel handles the resource management for you. I'd suggest taking a look at some of the drivers in the kernel related to the device type you're working with

Sign in to participate in the conversation

Server run by the main developers of the project 🐘 It is not focused on any particular niche interest - everyone is welcome as long as you follow our code of conduct!