I have a little Classmate 2go netbook (the exact model here) which I recently discovered to have a nice accelerometer inside. The Windows 7 bundled with it (or rather, FIRST's Windows 7, since this is the netbook they gave out to rookies this year) uses this accelerometer for something quite boring - HDD protection. (And it's annoying too - the netbook freezes for 5-10 seconds and then unfreezes, only then telling you that it stopped the HDD for my protection...) I had a theory about the accelerometer existing because of the IBM ThinkPads, which are quite famous in the Linux community for the accelerometer inside that protects the HDD from damage. (See: HDAPS) My theory was confirmed when I poked around the Program Files directory, where inside of one of the folders was a test program (complete with a MFC logo) where I could click a button to read and display the accelerometer values.
So, like any curious person, I installed Wubi (and therefore Ubuntu) on the netbook. After a bit of research, it turns out that the classmate-laptop kernel module handles the communication for backlight and accelerometer. (As you can guess from the topic title, it is interfaced via ACPI.) However, although the module loaded automatically, none of the /proc/acpi devices came up, not even the backlight. (Oddly enough, /sys is populated, and the backlight setting works if you write values to a file.) Doing some research, I discovered that the kernel module was written in 2009, whereas the netbook was released in 2010 (or so I guessed from the manual.) It would certainly make sense that this driver, although it loaded quite happily into the kernel by silly Ubuntu, would not work with newer hardware.
After some pitiful begging from the original developer for writing a newer driver, I decided to simply take on the task myself. Of course, I have no idea where to begin, or really understand what ACPI is besides the fact that it is the protocol behind the system's power control (sleep, standby, shutdown, etc.) and that there are some "tables" that I must disassemble in order to really write a driver.
The ultimate goal is to 1) get the backlight to work with the designated key combos (which I've tried and failed to get it to work), and 2) get the accelerometer working and providing values as a joystick (/dev/js*).
That said, where should I begin?
So, like any curious person, I installed Wubi (and therefore Ubuntu) on the netbook. After a bit of research, it turns out that the classmate-laptop kernel module handles the communication for backlight and accelerometer. (As you can guess from the topic title, it is interfaced via ACPI.) However, although the module loaded automatically, none of the /proc/acpi devices came up, not even the backlight. (Oddly enough, /sys is populated, and the backlight setting works if you write values to a file.) Doing some research, I discovered that the kernel module was written in 2009, whereas the netbook was released in 2010 (or so I guessed from the manual.) It would certainly make sense that this driver, although it loaded quite happily into the kernel by silly Ubuntu, would not work with newer hardware.
After some pitiful begging from the original developer for writing a newer driver, I decided to simply take on the task myself. Of course, I have no idea where to begin, or really understand what ACPI is besides the fact that it is the protocol behind the system's power control (sleep, standby, shutdown, etc.) and that there are some "tables" that I must disassemble in order to really write a driver.
The ultimate goal is to 1) get the backlight to work with the designated key combos (which I've tried and failed to get it to work), and 2) get the accelerometer working and providing values as a joystick (/dev/js*).
That said, where should I begin?