Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > 9c15dda2feceb745cd7809270174b341 > files > 5

vdr-plugin-actuator-1.1.1-6mdv2010.0.i586.rpm

This module controls a linear actuator through the parallel
port.

D0 (pin 2) is used as a "rotate west" output
D1 (pin 3) is "rotate east"
both have to be connected to a driver and a relay

Ack input (pin 10) is connected to the reed switch in the
actuator for position control. It has do be connected through
a debouncing circuit

I'm not a kernel expert, so this module is probably bug ridden.
I also didn't care for backwards compatibility: the module only builds under
kernel 2.6.

It should be possible to build the module by simply typing "make", provided
you have the kernel source for the currently running kernel *and*
/lib/modules/$(uname -r)/build points to the source tree (this is the case
with Mandrake once you installed the kernel-source package matching the
currently running kernel, other distributions should do the same).
Since the module uses the parallel port interrupt to count pulses, be sure
that you give the correct parameters to the parport_pc module since the
default is to use no interrupt, e.g.:

modprobe parport_pc io=0x378 irq=7

If you don't do so, when you load this module it will complain that it
didn't find an interrupt for the port (look at dmesg output).

WARNING WARNING WARNING WARNING WARNING WARNING WARNING

Frank Welter <frank.welter at skynet dot be> lost many hours of sleep
because the module was counting pulses even with nothing connected to the
parallel port. It turns out that there's a problem with some motherboards
and the pic (Programmable Interrupt Controller) that generates bogus
interrupts on irq 7. The problem is best explained here:

http://groups-beta.google.com/group/linux.kernel/messages/12fe109073f549e7

You can workaround this problem by assigning a different irq (e.g. 5) to
your parallel port (if the parallel port is integrated in the motherboard
look in the bios setup). Note that this interrupt cannot be shared, i.e. it
must be exclusively assigned to the parallel port.
If you also have to assign a non stantard address (i.e. not 0x378), you'll
have to tell the actuator module the address. Let's say you set your
parallel port at 0x278, irq 5:

modprobe parport_pc io=0x278 irq=5
insmod actuator.ko base=0x278