Please pardon the newbie question, but I've had no luck with google or
the FAQs:
Let me try to answer by throwing in a few extra URLs or keywords you
can Google. It would be most appreciated if you'd reply back with
what you've learned so that I can try to take a newbie's perspective
to attempt improve the documentation.
I have my brand-new Beagle Bone, and it booted up Angstrom just fine.
I see device files for lots of peripheral devices in the /sys
directory. What I haven't been able to find is some sort of
documentation that tells me what the interface to these things is! I
figured out that I can write 1's and 0's to the LED brightness file to
control the user LEDs, but the remaining devices aren't so simple.
Have you gone through the 101 presentations? [1] I admit they aren't
fleshed out to the degree you'd expect from a reference manual, but
they should give you some starting points. In those presentations, I
tried to walk you through where some of the initial kernel
documentation is on the SYSFS entries, namely the kernel ABI
documentation. This mailing list also had some recent discussion on
where to find the GPIO documentation in the kernel.
I'd also recommend [2] and [3]. These are fairly direct attempts to
answer how to explore SYSFS.
[1] http://beagleboard.org/beagleboard101
[2] http://www.beagleboard.org/~arago/education/presentations/Learning_Linux_Tops_Down.pdf
[3] http://beagleboard.org/esc/boston2011/beaconbasicio
What I really need is a reference manual that tells me:
1. How the /sys directory is organized and what I can find where
This is still a bit dynamic until support for the device is 100%
upstream. I've added it on my README.htm to-do list for needed
documentation.
2. What the interface is to each device file--what commands can I
send, how do I configure hardware, etc.
Also added to the list. There are many such generic references for
Linux, but I can see that it makes sense to include the newbie
resources for this product. The resources page [4] hasn't been
updated for a while, but would it at least be useful to include a link
to the Embedded Linux Primer [5] book?
[4] Resources - BeagleBoard
[5] http://www.embeddedlinuxprimer.com/
3. How I talk to the hardware via a C program (i.e., can I mmap the
device files? Can I map the hardware registers directly?)
Google 'devmem2'. The various device drivers have different various interfaces.
I haven't been able to find such a reference, which makes me think I'm
missing something more fundamental. Is there something I'm missing
here?
Start with "embedded linux" in your searches and you might get a bit
further. I'm not sure what you searched for at this point, so perhaps
you could share that as well. Frequently Asked Questions - BeagleBoard has a link
to a nice page on how to best get your questions answered.