Device Driver Programming

Hi Guys,

So college is almost finishing up and I'm all pumped for summer break. Actually, I am planning on learning Device Driver Programming this summer. My goal is to make a Driver by the end of summer. I don't know what I'll be making yet but just wanted to get started.
Any ideas from where I should start?
Any special recommendation for specific book?
Please suggest me anything which could help me learn this.

Thanks


What OS? What device?

Start debugging existing device drivers first. Three years from now start enhancing existing device drivers. 10 years from now, you might be ready to write your own device driver. Really -- write code with people who know what they are doing first.

I'm not saying you can't write a device driver over your summer break. I'm saying you shouldn't.
Thanks for the reply PanGalatic. Yeah after posting the question, I noticed that it's too naive to hope to build a driver in 3 months.
But hey nothing wrong with dreaming big right?

Anyways, I want to learn for Linux and as for device, no idea yet. The problem is or rather good thing is, that I don't know anyone who knows this programming. So pretty much I have to learn everything on my own.

Do you have any other recommendations in regards to book or some place to start for Linux drivers.

Thanks


Start by downloading the Linux source (making sure you have the source that matches your kernel) and looking through the code for various device drivers.

Next try doing something like modifying the behavior of one of the drivers, compiling and installing it. (I recommend you be aware that you can hose your system if not careful. Either set up another boot record or make sure you can reinstall easily if things don't work right.)

You'll need to know (nearly) everything about the device you wish to drive.

Good luck!
Last edited on
Regarding Douas' comment about hosing the system, it's not a bad idea to use a virtual machine if you can run one.
For a Linux installation you need around 10 GB of HDD and at least 1 GB of RAM. 2 GB is preferable, but you should still be able to get it working with just 1.
Thanks a lot for reply Duoas and helios
Topic archived. No new replies allowed.