【電子工作】Raspberry Pi OSでpigpioを使ったC言語プログラム実行時に「initInitialise: Can’t lock /var/run/pigpio.pid」とエラーが出た

投稿日:2022年5月17日
最終更新日:2022年5月17日

pigpioを使ったC言語コードのコンパイル時にエラー

先日、Raspberry Pi OSにインストールされているpigpioを使いC言語のコードでLチカをやろうと思い、gccでコンパイル後にファイルを実行するときに以下のようなエラーが出た。

initInitialise: Can't lock /var/run/pigpio.pid

gpioSetMode: pigpio uninitialised, call gpioInitialise()

gpioWrite: pigpio uninitialised, call gpioInitialise()

備忘録として原因と解決策をメモしておく。

 

実行環境

Raspberry Pi 4 Model B

Raspberry Pi OS (Bullseye)

pigpio 1.79-1+rpt1

gcc version 10.2.1 20210110 (Raspbian 10.2.1-6+rpi1)

 

原因はpigpiodを起動させていたこと

以前、PythonでLチカしたときはpigpiod(pigpioデーモン)を起動させた状態でプログラムを実行していた。ただ、改めて調べたらpigpio.hをincludeしてC言語のライブラリに直接linkしたプログラムを実行する際は、デーモンを止めておく必要があった。

https://raspberrypi.stackexchange.com/questions/38644/pigpio-cant-lock-var-run-pigpio-pid

ということで、以下でデーモンのprocessをkillする。

sudo killall pigpiod

この状態で改めてプログラムを実行したところ、エラーなく無事に通ってLチカもできた。

なお、pigpiodを起動したままデーモンを介してC言語からGPIOを制御するときはpigpiod_if2.hをincludeする。詳細はpigpio公式ページのpigpiod C Interfaceのページを参照。

https://abyz.me.uk/rpi/pigpio/pdif2.html

 

日記まとめ

ラズパイで遊んでみた軌跡を以下でまとめてます。

【電子工作】Raspberry Pi 4で遊ぼう日記 まとめ

 


投稿者: wakky

映画と旅行が大好きなエンジニア。お酒、ゲーム、読書も好き。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください