a kernel module to use geiger counter interrupts for entropy
C C++
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.gitignore
Makefile
README
radseed.c
radseed.h

README

radseed - a kernel module to use geiger counter interrupts for entropy
Jack Carrozzo <jack@crepinc.com>

This module handles interrupts from a parallel port, keeping basic stats and 
calling add_interrupt_randomness() on events.

For compatibility, the following filesystem stubs are presented:

- Number of events recorded: (wraps at unsigned long max)
		/proc/radevents
		/sys/kernel/radseed/events

- Time of last recorded event: (in system jiffies)
		/proc/radlast
		/sys/kernel/radseed/last

- Event trigger for testing: 
		/sys/kernel/radseed/trigger

Your geiger counter should present a TTL-compatible strobe to pin 10 (ACK) 
of the parallel port at each event. However, the trigger can be used to 
test functionality of monitoring scripts and so forth:

root@kdev0 ~ # cat /sys/kernel/radseed/events 
0
root@kdev0 ~ # cat /sys/kernel/radseed/trigger 
1
root@kdev0 ~ # cat /sys/kernel/radseed/trigger 
1
root@kdev0 ~ # cat /sys/kernel/radseed/trigger 
1
root@kdev0 ~ # cat /sys/kernel/radseed/trigger 
1
root@kdev0 ~ # cat /sys/kernel/radseed/events 
4
root@kdev0 ~ # cat /sys/kernel/radseed/last 
16316569

This is tested to work with the 3.10.x and 3.13.x vanilla trees. The code is 
by no means robust or complete, but simply an experiement to see if this is 
worthwhile. I aim to finish a USB interface to my geiger counters and 
implement that here as well. If you find this useful, let me know!