I'm trying to get myself setup to do kernel driver development. So I start where everybody does, writing the hello world kernel module. I did this 1st pointed at the Ubuntu Linux stuff. Then updated the makefile for cross-compiling the same driver code for a Beaglebone's Sitara AM-335x processor. After getting the makefile paths updated, I now have that working and runnable on the Beaglebone.
After importing the very simple project into Code Composer Studio v5.1, CCS indicates that the #include <linux/module.h> is an unresolved inclusion. I find that hard to believe since it makes just fine. However after searching through the SDK, I don't find a module.h anywhere in there. I recall the install also stuck something related to arm-arago-gnueabi- in my /usr directory, so I also did a search in there and didn't see anything. I suspect the module.h is somewhere on my machine, it's just in a folder I'm not looking in. So there's some detail I'm missing, and evidently CCS is missing it too about where to find it. Although if I search through the Linux source that Ubuntu is running (/usr/src/linux-headers-3.0.0-17/include/linux), there is a module.h file.
So in newbie explanation level detail, what's the deal with <linux/module.h> resolving when I run make, but not really existing when go look for it in my TI SDK installation folder (SDK 5.03.03)? And more importantly, how do I fix this in Code Composer so I can go back to trusting what it is telling me about the code I'm writing?
Once I get past the hello world phase of getting to module driver development, it's my intention to move onto some existing code that's been written but is very dated code that I suspect was written for Linux 2.4.x and needs to be updated to compile for a 2.6/3.x Linux kernel. But before I can make any headway there, I need to understand some fundamentals about how kernel modules are built that isn't being explained in any of the Google searches or in the documentation I'm reading.