LoginSignup
2
2

【ラズパイ+ubuntu】sudoなしでadd_event_detectを使うとfailed to add edge detectionエラーが出るときの解決方法

Last updated at Posted at 2024-01-07

お疲れ様です。秋並です。

ubuntuで RPi.GPIOadd_event_detect 関数をsudoなしで使うとエラーが出て実行できませんでした。
そこで、色々調べてみた結果、解決方法が見つかったので書き残しておきます。

実行環境

  • Raspberry Pi 4B
  • Ubuntu22.04

グループの追加

gpioグループに[username]([username]はご自身のユーザー名に置き換えてください)を追加します。

sudo groupadd -r gpio
sudo usermod -a -G gpio [username]

udevルールの追加

udevルールファイルを作成します。

sudo nano /etc/udev/rules.d/99-gpiomem.rules 

以下の内容を記述します。

SUBSYSTEM=="bcm2835-gpiomem", KERNEL=="gpiomem", GROUP="gpio", MODE="0666"
SUBSYSTEM=="gpio", KERNEL=="gpiochip*", ACTION=="add", PROGRAM="/bin/sh -c 'chown root:gpio /sys/class/gpio/export /sys/class/gpio/unexport ; chmod 220 /sys/class/gpio/export /sys/class/gpio/unexport'"
SUBSYSTEM=="gpio", KERNEL=="gpio*", ACTION=="add", PROGRAM="/bin/sh -c 'chown root:gpio /sys%p/active_low /sys%p/direction /sys%p/edge /sys%p/value ; chmod 666 /sys%p/active_low /sys%p/direction /sys%p/edge /sys%p/value'"

内容を保存したら、ルールを適用します。

sudo udevadm control --reload-rules
sudo udevadm trigger

再起動すると、sudoなしでadd_event_detect関数を使えるようになります。

参考

Python RuntimeError GPIO

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2