Thanks,
I have come a lot further now, in fact I am done with the basic reasearch on
how to do the I/O.
What I found is that the pigpio.pas file found in the lazarus wiki needs
some slight modifications
and then it is perfectly OK to use. No need for any bigger driver than this
to do the RPi2 I/O.
I have added a define for RPi2 and used it thus:
[code]
interface
// The following option controls whether the code is optimized for Raspberry
PI 2.
// Added 2015-10-10 by Bo Berglund following web advice to get it working on
the Pi2 hardware
{$DEFINE RPi2}
...
const
REG_GPIO = {$IFDEF RPi2} $3F000 {$ELSE} $20000 {$ENDIF};//bcm2835/bcm2836
gpio register
...
// Mapping the RPi GPIO pin functions to GPIO I/O, should be here rather
than in user code
RPI_P3 = 2; //GPIO2
RPI_P5 = 3; //GPIO3
RPI_P7 = 4; //GPIO4
RPI_P8 = 14; //GPIO14
RPI_P10 = 15; //GPIO15
RPI_P11 = 17; //GPIO17
RPI_P12 = 18; //GPIO18
RPI_P13 = 27; //GPIO27
RPI_P15 = 22; //GPIO22
RPI_P16 = 23; //GPIO23
RPI_P18 = 24; //GPIO24
RPI_P19 = 10; //GPIO10
RPI_P21 = 9; //GPIO9
RPI_P22 = 25; //GPIO25
RPI_P23 = 11; //GPIO11
RPI_P24 = 8; //GPIO8
RPI_P26 = 7; //GPIO7
...
function TIoDriver.MapIo: boolean;
begin
Result := True;
{$IFDEF RPi2}
fd := fpopen('/dev/gpiomem', O_RdWr or O_Sync); // Open the master
/dev/memory device
{$ELSE}
fd := fpopen('/dev/mem', O_RdWr or O_Sync); // Open the master
/dev/memory device
{$ENDIF}
if fd < 0 then
begin
Result := False; // unsuccessful memory mapping
end;
//
end;
[/code]
With this in place the standard user pi will have access to the needed
/dev/gpiomem device and no root is required.
I have successfully used several ports to drive a relay board now.
Best Regards,
Bo Berglund
-----Original Message-----
From: [email protected]
[mailto:[email protected]] On Behalf Of Travis Siegel
Sent: den 11 oktober 2015 18:02
To: Other FPC related discussions.
Subject: Re: [fpc-other] [fpc-pascal] Access GPIO pins on RPi2 without root?
You can add any user to any group you like, by using the groupadd program
in the terminal. For example,
usermod -a -G audio pi
would add the pi user to the audio group, allowing them to use audio
functions without having to be root or use sudo for the access.
Of course, the usermod command needs to be run as root, either with sudo,
or as being logged in as root
If you can figure out what group the io pins are in, this could solve your
problem.
_______________________________________________
fpc-other maillist - [email protected]
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other
_______________________________________________
fpc-other maillist - [email protected]
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other