Hi, I've been reading documentation about linux drivers development for quite a while now, but never did anything really useful of it. Lack of time, but most importantly lack of projects to apply this knowledge. Now I've got some spare time ahead of me, and it seems to be the right moment to start a kernel driver project. ... but I don't know exactly what kind of device driver I want to write, and what kind of device I want to work on. I think I could have fun working on usb drivers, expecially after reading this blog post[0], but I don't know if it's the best for a first driver project. Is there a place where I can find a list of devices missing kernel drivers ? Can you recommend me a type of device I should opt for, given that this is going to be my first driver project ? A specific device ? Having to reverse engineer stuff isn't much of a problem for me, as long as it doesn't get too far into the "black magic" land. ;) Also, if you have any kind of advices for people starting their first driver project, I'd be glad to hear them. Thanks ! Cheers, Hugo [0] http://matthias.vallentin.net/blog/2007/04/writing-a-linux-kernel-driver-for... -- Hugo Lefeuvre (hle) | www.owl.eu.com 4096/ 9C4F C8BF A4B0 8FC5 48EB 56B8 1962 765B B9A8 BACA
On Tue, May 22, 2018 at 10:25:51PM -0400, Hugo Lefeuvre wrote:
Hi,
I've been reading documentation about linux drivers development for quite a while now, but never did anything really useful of it. Lack of time, but most importantly lack of projects to apply this knowledge. Now I've got some spare time ahead of me, and it seems to be the right moment to start a kernel driver project.
... but I don't know exactly what kind of device driver I want to write, and what kind of device I want to work on.
It's best to find a device you care about, that does not work on Linux, to do something like this, as you are going to be working on it for a while. But the problem is, as you are finding out, that almost everything already "just works" in Linux. Turns out Linux supports more hardware than any other operating system, sorry :) Try digging around in shops that sell "odd hardware", that might be the best way to find something like this. good luck! greg k-h
23.05.2018, 09:06, "Greg KH" <greg@kroah.com>:
On Tue, May 22, 2018 at 10:25:51PM -0400, Hugo Lefeuvre wrote:
Hi,
I've been reading documentation about linux drivers development for quite a while now, but never did anything really useful of it. Lack of time, but most importantly lack of projects to apply this knowledge. Now I've got some spare time ahead of me, and it seems to be the right moment to start a kernel driver project.
... but I don't know exactly what kind of device driver I want to write, and what kind of device I want to work on.
It's best to find a device you care about, that does not work on Linux, to do something like this, as you are going to be working on it for a while.
But the problem is, as you are finding out, that almost everything already "just works" in Linux. Turns out Linux supports more hardware than any other operating system, sorry :)
:) I think seen the drivers/staging section in the kernel source. you can find a driver in the development phase. for example, some new generation embedded modules and electronic devices don't work on Linux. ps = raspian Regards Ozgur
Try digging around in shops that sell "odd hardware", that might be the best way to find something like this.
good luck!
greg k-h
On Wed, May 23, 2018 at 09:26:31AM +0300, Ozgur Kara wrote:
I think seen the drivers/staging section in the kernel source.
Yes, starting out with drivers/staging/*/TODO is always a good idea.
for example, some new generation embedded modules and electronic devices don't work on Linux.
Really? Like what? thanks, greg k-h
23.05.2018, 09:48, "Greg KH" <greg@kroah.com>:
On Wed, May 23, 2018 at 09:26:31AM +0300, Ozgur Kara wrote:
I think seen the drivers/staging section in the kernel source.
Yes, starting out with drivers/staging/*/TODO is always a good idea.
for example, some new generation embedded modules and electronic devices don't work on Linux.
Really? Like what?
For example kernel's no have drivers for some sensors, I also couldn't identify the PCI card for automation and no driver in the kernel. CP-168U RS232 PCI Card Wireless Nozzle Reader MTI125 NXP MPU6050 MPU6050 I hope I'm not wrong :) Regards Ozgur
thanks,
greg k-h
On Wed, May 23, 2018 at 10:01:49AM +0300, Ozgur Kara wrote:
23.05.2018, 09:48, "Greg KH" <greg@kroah.com>:
On Wed, May 23, 2018 at 09:26:31AM +0300, Ozgur Kara wrote:
I think seen the drivers/staging section in the kernel source.
Yes, starting out with drivers/staging/*/TODO is always a good idea.
for example, some new generation embedded modules and electronic devices don't work on Linux.
Really? Like what?
For example kernel's no have drivers for some sensors, I also couldn't identify the PCI card for automation and no driver in the kernel.
CP-168U RS232 PCI Card
Odss are, this "just works" if it is a normal serial port card. If not, it should be trivial to get working.
Wireless Nozzle Reader MTI125 NXP MPU6050 MPU6050
I hope I'm not wrong :)
We have loads of iio drivers in the kernel, try digging based on the PCI id values. For example, look at drivers/iio/imu/inv_mpu6050/ :) But yes, sensors are a great way to get involved in driver writing, they are usually pretty simple and all they need are to be hooked up to the iio interface. A data sheet is usually needed to determine the units and values the sensors provide, but those should not be hard to come by. good luck! greg k-h
Hi Greg and Ozgur,
But yes, sensors are a great way to get involved in driver writing, they are usually pretty simple and all they need are to be hooked up to the iio interface. A data sheet is usually needed to determine the units and values the sensors provide, but those should not be hard to come by.
Thanks for your answers. I'm going to take a look at TODO entries in staging, and at sensor drivers then. You might see me come back later with questions. :) Happy hacking ! Regards, Hugo -- Hugo Lefeuvre (hle) | www.owl.eu.com 4096/ 9C4F C8BF A4B0 8FC5 48EB 56B8 1962 765B B9A8 BACA
participants (3)
-
Greg KH -
Hugo Lefeuvre -
Ozgur Kara