WiringPiで「Unable to determine hardware version. I see: Hardware : BCM2835」エラー

  • 4
    いいね
  • 0
    コメント

RaspberryPiに入門!ということでLチカなるものをやろうとしたんだけど最初からハマったのでメモ。
※学習用にただ動けばOKというレベルまでもってくだけで根本解決ではないっす。

現象

WiringPiを使ってLEDを1秒つけるだけのスクリプト実行したら下記のようなエラーになった。

$ sudo python3 led.py
Unable to determine hardware version. I see: Hardware   : BCM2835
,
 - expecting BCM2708 or BCM2709.
If this is a genuine Raspberry Pi then please report this
to projects@drogon.net. If this is not a Raspberry Pi then you
are on your own as wiringPi is designed to support the
Raspberry Pi ONLY.

ソースは下記

led.py
import wiringpi as pi
import time

LED_PIN = 4

pi.wiringPiSetupGpio()
pi.pinMode(LED_PIN, pi.OUTPUT)

pi.digitalWrite(LED_PIN, pi.HIGH)
time.sleep(1)
pi.digitalWrite(LED_PIN, pi.LOW)

環境は以下のような感じ(細かいセットアップ何したか忘れた・・・)

Raspberry Pi 3 Model B(RS components)
NOOBS 2.4.0
WiringPi: 2.44

解決方法

タイトルのエラーをググってたら「Kernelをupgradeする前は動いてたんだ!」って書き込みがどっかにあったので4.9系の前の4.4系までダウングレードしてみたら動いた。

当初のKernelバージョンは4.9.24

$ uname -a
Linux rasp-jolly 4.9.24-v7+ #993 SMP Wed Apr 26 18:01:23 BST 2017 armv7l GNU/Linux

4.4系の最新ぽいやつのハッシュを指定してダウングレード

$ sudo rpi-update 52241088c1da59a359110d39c1875cda56496764

再起動

$ sudo reboot

再起動後のKernelバージョン

$ uname -a
Linux rasp-jolly 4.4.50-v7+ #970 SMP Mon Feb 20 19:18:29 GMT 2017 armv7l GNU/Linux

動いた!(Lチカに1時間以上かかったorz)