hi all
I am trying to active the digital output using bash script,the bash script is working correctly From command terminal, but wehn I execute it using lazarus , a new error a ppear "
/home/pi/confi_outp.sh ---echo "out" > sys/class/gpio/gpio4/direction permission denied"
so, how can I execute the command as root?? or how can solve this problem???
plz see below code
unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, process, FileUtil, Forms, Controls, Graphics, Dialogs,
StdCtrls, Buttons, ExtCtrls,Unix;
type
{ TForm1 }
TForm1 = class(TForm)
Button1: TButton;
config_out: TProcess;
private
{ private declarations }
public
{ public declarations }
end;
var
Form1: TForm1;
x,y,z, m1,m2,m3:integer ;
implementation
{$R *.lfm}
procedure configer_outputs(m1:integer);
var
Filename1: String;
config_out: TProcess;
begin
config_out:=TProcess.Create(nil);
Filename1:='/home/pi/confi_outp.sh';
try
config_out.CommandLine:=Filename1;
config_out.Execute;
finally
config_out.Free;
end;
end;
{ TForm1 }
procedure TForm1.Button1Click(Sender: TObject);
begin
configer_outputs(m1);// configer outputs
end;
end.
also the script file is
#!/bin/bash
#clear gpio 4 as output
sudo echo "4" > /sys/class/gpio/unexport
#set gpio 4 as output
sudo echo "4" > /sys/class/gpio/export
sudo echo "out" > /sys/class/gpio/gpio4/direction
sudo echo "1" > /sys/class/gpio/gpio4/value