Any forward traction ?

On Thu, Jul 2, 2015 at 8:51 AM, William Hermans <[email protected]> wrote:

> DO also keep in mind that /sys/ is a pseudo file system. SO does not
> always play by the same rules as disk based file systems.
>
> On Thu, Jul 2, 2015 at 8:50 AM, William Hermans <[email protected]> wrote:
>
>>
>> root@beaglebone:/home/debian# *echo 0 > /sys/class/gpio/export*
>> root@beaglebone:/home/debian# l*s /sys/class/gpio/*
>> export  gpio0  gpiochip0  gpiochip32  gpiochip64  gpiochip96  unexport
>> root@beaglebone:/home/debian# *echo 0 > /sys/class/gpio/unexport*
>> root@beaglebone:/home/debian# *ls /sys/class/gpio/*
>> export  gpiochip0  gpiochip32  gpiochip64  gpiochip96  unexport
>>
>>
>> So . . .write only.Here is a decent read on the subject.
>> http://falsinsoft.blogspot.com/2012/11/access-gpio-from-linux-user-space.html
>>
>> On Thu, Jul 2, 2015 at 4:50 AM, Brendan Merna <[email protected]>
>> wrote:
>>
>>> Thanks! That makes a lot of sense now. I figured out I have to open
>>> export as write only which agrees with the permissions you showed. I've
>>> moved GPIOs to export while the board was running using the command line,
>>> so I think its okay.
>>>
>>> So changing my code subsituting O_WRONLY for O_RDWR and now I'm getting
>>> the error "Writing Error: Device or Resource is busy." It doesn't seem like
>>> I can use C code to bring a GPIO to the user space. Is there a way around
>>> it?
>>>
>>> I'll look up the process forking too.
>>>
>>> On Wednesday, July 1, 2015 at 5:22:01 PM UTC-4, William Hermans wrote:
>>>>
>>>> Also, as I'm unsure what exporting a pin config will do while the
>>>> system is running . . . you should make 100% absolutely sure you know what
>>>> you're doing. So you do not fry your board.
>>>>
>>>> On Wed, Jul 1, 2015 at 2:19 PM, William Hermans <[email protected]>
>>>> wrote:
>>>>
>>>>> debian@beaglebone:~$ *cat /sys/class/gpio/export*
>>>>> cat: /sys/class/gpio/export: *Permission denied*
>>>>> debian@beaglebone:~$ sudo *cat /sys/class/gpio/export*
>>>>> cat: /sys/class/gpio/export: *Permission denied*
>>>>> debian@beaglebone:~$ *sudo su*
>>>>> root@beaglebone:/home/debian# *cat /sys/class/gpio/export*
>>>>> cat: /sys/class/gpio/export: *Permission denied*
>>>>> root@beaglebone:/home/debian# *ls -al /sys/class/gpio/*
>>>>> total 0
>>>>> drwxr-xr-x  2 root root    0 Dec 31  1999 .
>>>>> drwxr-xr-x 59 root root    0 Dec 31  1999 ..
>>>>> *--w-------  *1 root root 4096 Dec 31  1999 export
>>>>> lrwxrwxrwx  1 root root    0 Dec 31  1999 gpiochip0 ->
>>>>> ../../devices/virtual/gpio/gpiochip0
>>>>> lrwxrwxrwx  1 root root    0 Dec 31  1999 gpiochip32 ->
>>>>> ../../devices/virtual/gpio/gpiochip32
>>>>> lrwxrwxrwx  1 root root    0 Dec 31  1999 gpiochip64 ->
>>>>> ../../devices/virtual/gpio/gpiochip64
>>>>> lrwxrwxrwx  1 root root    0 Dec 31  1999 gpiochip96 ->
>>>>> ../../devices/virtual/gpio/gpiochip96
>>>>> --w-------  1 root root 4096 Dec 31  1999 unexport
>>>>> root@beaglebone:/home/debian# *whoami*
>>>>> root
>>>>>
>>>>> read this post . .
>>>>>
>>>>>
>>>>> http://unix.stackexchange.com/questions/118716/unable-to-write-to-a-gpio-pin-despite-file-permissions-on-sys-class-gpio-gpio18
>>>>>
>>>>> 3rd post or second answer should fix you up. However do note that what
>>>>> you're trying to do is "wrong". Meaning: it is insecure. You ( and I too )
>>>>> need to read up on process forking. IN short, and perhaps somewhat
>>>>> incorrect( as I'm not 100% up to speed either ) is that you fork a 
>>>>> process,
>>>>> running privileged commands, and when that command is done, the privileges
>>>>> are done too . . .
>>>>>
>>>>> Anyway, probably safer to add your regular user to a group that has
>>>>> limited access to that file.
>>>>>
>>>>>
>>>>> On Wed, Jul 1, 2015 at 8:02 AM, Brendan Merna <[email protected]>
>>>>> wrote:
>>>>>
>>>>>>
>>>>>> I'm trying to manipulate my GPIOs using C code and running into
>>>>>> "Permission Denied" when running my code and opening the file
>>>>>> /sys/class/gpio/export. I'm using nano editor, compiling on the 
>>>>>> Beaglebone
>>>>>> with gcc, and I'm under root user.
>>>>>>
>>>>>> I would like to do this, so I can set directions and values for the
>>>>>> GPIOs with my code. I've heard this might be a problem with user and 
>>>>>> kernel
>>>>>> space conflicting. I know there are library calls in python and other
>>>>>> languages to do this that work. Does anyone know what this problem might 
>>>>>> be
>>>>>> and our their alternate calls I can do in C?
>>>>>>
>>>>>> I tried to just include the necessary parts of the code.
>>>>>> Code:
>>>>>> #include<fcntl.h>
>>>>>> static const char *GPIO_PATH = "/sys/class/gpio/export";
>>>>>> int main(){
>>>>>>      int file;
>>>>>>      if ((file = open(GPIO_PATH, O_RDWR))<0){
>>>>>>            perror("GPIO: Can't open the device.");
>>>>>>            return -1;
>>>>>>      }
>>>>>>      return 0;
>>>>>> }
>>>>>>
>>>>>> --
>>>>>> For more options, visit http://beagleboard.org/discuss
>>>>>> ---
>>>>>> You received this message because you are subscribed to the Google
>>>>>> Groups "BeagleBoard" group.
>>>>>> To unsubscribe from this group and stop receiving emails from it,
>>>>>> send an email to [email protected].
>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>
>>>>>
>>>>>
>>>>  --
>>> For more options, visit http://beagleboard.org/discuss
>>> ---
>>> You received this message because you are subscribed to the Google
>>> Groups "BeagleBoard" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to [email protected].
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
>>
>

-- 
For more options, visit http://beagleboard.org/discuss
--- 
You received this message because you are subscribed to the Google Groups 
"BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to