<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en" xmlns="http://www.w3.org/2005/Atom"><title>Recent changes to 210: RPi.GPIO 0.7.1 still acts on /sys/class/gpio/ ?</title><link href="https://sourceforge.net/p/raspberry-gpio-python/tickets/210/" rel="alternate"/><link href="https://sourceforge.net/p/raspberry-gpio-python/tickets/210/feed.atom" rel="self"/><id>https://sourceforge.net/p/raspberry-gpio-python/tickets/210/</id><updated>2024-05-11T16:05:32.437000Z</updated><subtitle>Recent changes to 210: RPi.GPIO 0.7.1 still acts on /sys/class/gpio/ ?</subtitle><entry><title>#210 RPi.GPIO 0.7.1 still acts on /sys/class/gpio/ ?</title><link href="https://sourceforge.net/p/raspberry-gpio-python/tickets/210/?limit=25#7493" rel="alternate"/><published>2024-05-11T16:05:32.437000Z</published><updated>2024-05-11T16:05:32.437000Z</updated><author><name>James</name><uri>https://sourceforge.net/u/fixrpigpio/</uri></author><id>https://sourceforge.net844d63b575ed029c14741787ab0af39268531dd1</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Will this be fixed and published for easier update?&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>#210 RPi.GPIO 0.7.1 still acts on /sys/class/gpio/ ?</title><link href="https://sourceforge.net/p/raspberry-gpio-python/tickets/210/?limit=25#4ed1" rel="alternate"/><published>2024-03-16T23:06:42.634000Z</published><updated>2024-03-16T23:06:42.634000Z</updated><author><name>dreamlayers</name><uri>https://sourceforge.net/u/dreamlayers/</uri></author><id>https://sourceforge.net98a3d502214d9a052eb5e513c28e572505c7fe85</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;It seems /sys/class/gpio is only used for edge detection. It only appears in event_gpio.c.&lt;/p&gt;
&lt;p&gt;The immediate problem is that starting with kernel 6.5, BCM GPIO numbering in /sys/class/gpio doesn't start with 0 any more. It starts with 512 on my Raspberry Pi 2 B running Raspbian Bullseye with kernel 6.6.20+rpt-rpi-v7 but don't know if it is safe to hard code 512. Regardless of that, I created a quick fix which adds 512 to numbers when using /sys/class/gpio and increases size of buffers used for this. I'm using this with ha-rpi_gpio for Home Assistant, which now works. I am attaching a patch.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>#210 RPi.GPIO 0.7.1 still acts on /sys/class/gpio/ ?</title><link href="https://sourceforge.net/p/raspberry-gpio-python/tickets/210/?limit=25#bd67" rel="alternate"/><published>2024-01-03T06:01:34.796000Z</published><updated>2024-01-03T06:01:34.796000Z</updated><author><name>Matthew S Gerber</name><uri>https://sourceforge.net/u/matthewgerber/</uri></author><id>https://sourceforge.netf0a5bbdedd240fb7af41df486a9c40979394a5f2</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Looks like /sys/class/gpio has been deprecated:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.thegoodpenguin.co.uk/blog/stop-using-sys-class-gpio-its-deprecated/" rel="nofollow"&gt;https://www.thegoodpenguin.co.uk/blog/stop-using-sys-class-gpio-its-deprecated/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;And now it's not present in the latest Ubuntu Server OS, which is what I'm running. Any plans to migrate away from /sys/class/gpio?&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>#210 RPi.GPIO 0.7.1 still acts on /sys/class/gpio/ ?</title><link href="https://sourceforge.net/p/raspberry-gpio-python/tickets/210/?limit=25#d61e" rel="alternate"/><published>2024-01-03T05:11:53.151000Z</published><updated>2024-01-03T05:11:53.151000Z</updated><author><name>Matthew S Gerber</name><uri>https://sourceforge.net/u/matthewgerber/</uri></author><id>https://sourceforge.net81e231de7749c310f146ffd08bcfe04b8ee0338c</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;I am getting the same error as above, using RPi.GPIO 0.7.1 and Python 3.11. Is there any fix or workaround?&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>#210 RPi.GPIO 0.7.1 still acts on /sys/class/gpio/ ?</title><link href="https://sourceforge.net/p/raspberry-gpio-python/tickets/210/?limit=25#9b46" rel="alternate"/><published>2023-01-20T17:45:07.740000Z</published><updated>2023-01-20T17:45:07.740000Z</updated><author><name>Matthias Saimpert</name><uri>https://sourceforge.net/u/msaimper/</uri></author><id>https://sourceforge.net2666a39ff9254414e15f71e329f961913e24ce6c</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hello,&lt;br/&gt;
I ended up migrating to gpiod, where things work out of the box. &lt;br/&gt;
Best&lt;br/&gt;
msaimper &lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>RPi.GPIO 0.7.1 still acts on /sys/class/gpio/ ?</title><link href="https://sourceforge.net/p/raspberry-gpio-python/tickets/210/" rel="alternate"/><published>2023-01-09T20:26:45.671000Z</published><updated>2023-01-09T20:26:45.671000Z</updated><author><name>Matthias Saimpert</name><uri>https://sourceforge.net/u/msaimper/</uri></author><id>https://sourceforge.net706df5d40fb7434203e44ba5ac18b89c0a425655</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Dear experts,&lt;/p&gt;
&lt;p&gt;I am running CentOS7 with kernel 5.4.206-v8.1.el7 on a RPi4 and I am trying to setup edge detection on GPIO with RPi.GPIO-0.7.1-py3.9&lt;/p&gt;
&lt;p&gt;I am getting the following error whatever the pin I try to configure:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;RPi.GPIO.add_event_detect(self.pin, RPi.GPIO.BOTH, self._on_event)
RuntimeError: Failed to add edge detection
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;I also get it when I run in sudo. I previously tuned the permissions to get :&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="n"&gt;blabla@hostname&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="err"&gt;$&lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="n"&gt;ls&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;l&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;dev&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;gpiomem&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;
&lt;span class="n"&gt;crw&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;rw&lt;/span&gt;&lt;span class="c1"&gt;----. 1 root gpio 246, 0 Jan  1  1970 /dev/gpiomem&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;so that  GPIO in output mode (to blink a LED for instance) works fine.&lt;/p&gt;
&lt;p&gt;Running my  basic RPi.GPIO-based edge detection code with strace I noticed a few suspicious lines:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;faccessat&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;AT_FDCWD&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"/sys/class/gpio/gpio6"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;F_OK&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;ENOENT&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;No&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;such&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;file&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="ow"&gt;or&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;directory&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="n"&gt;openat&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;AT_FDCWD&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"/sys/class/gpio/export"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;O_WRONLY&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;EACCES&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Permission&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;denied&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;1) I thought RPi.GPIO was now based on GPIO character and not sysfs anymore? Although I am far from being an expert so I may be wrong / confused&lt;/p&gt;
&lt;p&gt;2) I looked a bit into /sys/class/gpio on my RPi:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;blabla&lt;/span&gt;&lt;span class="err"&gt;@&lt;/span&gt;&lt;span class="n"&gt;hostname&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;$&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;ls&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;sys&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="k"&gt;class&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;gpio&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="k"&gt;export&lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="n"&gt;gpiochip446&lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="n"&gt;gpiochip454&lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="n"&gt;unexport&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;It seems to me that attempting to create /sys/class/gpio/gpio6 makes no sense here, one should read the base of the controller and do base+6 ?  Wouldn't that explain the Permission denied?&lt;/p&gt;
&lt;p&gt;Sorry again I am far from being an expert so maybe just confused myself, any help to unblock the situation would be great!&lt;/p&gt;
&lt;p&gt;Thanks a lot&lt;br/&gt;
Best wishes&lt;br/&gt;
msaimper&lt;/p&gt;&lt;/div&gt;</summary></entry></feed>