Hi,
thank you for the reply, Gene, I will give it a try as soon as I can find some time beneath work. I would probably go for solution 1 with reader thread.
The radio I am using is the HopeRF RFM69CW, which is indeed quite nice, because it does lots of things directly for you (packet handling, AES, crc). When I started digging into it, there weren't too many libraries, and none of them seemed a very good choice, so I just wrote my own, initially thought for small microcontrollers. I then ported it afterwards to a linux driver.
If I got the Monteino thing right, the board includes a small µC. I directly wired the RFM to the raspberry, thats why I really needed a kernel-level driver for the time-critical things. I guess with an additional intermediate buffer it might be possible to avoid this, so probably the Monteino is a good idea.
If you are really interested in my protocol, its extremely simple, has fixed length, and no ACK or anything. I've already described it in my first post, it transmits in bytes: address, data0, … , dataN. In the light application case: address, h, s, v, ctr_byte. The ctr_byte is used to discriminate between packet types. The checksum is handled by the RF module.
I hope this helps.
Cheers