ファームウェア3.18.xはI²C、SPI、オーディオ、lirc、1-wireを破壊します(例/ dev / i2c-1、そのようなファイルまたはディレクトリなし)


19

I²Cを使用してBright Piモジュールを制御しています。

GPIO構成-Adafruit」および「I²C構成-Adafruit」の手順に従って、I²Cをセットアップしました。数ヶ月前にこれをやったが、すべてうまくいった。

これは、Raspberry Pi(モデルB)でBright Piを接続する方法です。

回路ブライトパイ

今日以来、以前のようにI²Cが機能しないことに気付きました。' sudo i2cdetect -y 1 'や ' sudo i2cset -y 1 0x70 0x00 0xff ' などのコマンドを使用すると、エラーが発生します。

ファイル '/ dev / i2c-1'または '/ dev / i2c / 1'を開けませんでした:そのようなファイルまたはディレクトリはありません

コマンド ' sudo i2cdetect 'を使用するとエラーが発生します

i2c-busが指定されていません!

つまり、i2c-devが実行されています。

ファイル「/ etc / modules」は次のようになります。

#/etc/modules: kernel modules to load at boot time. 
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.
# Parameters can be specified after the module name.

snd-bcm2835
i2c-dev
i2c-bcm2708

ファイル「/etc/modprobe.d/raspi-blacklist.conf」は次のようになります。

blacklist spi and i2c by default (many users don't need them)

#blacklist spi-bcm2708
#blacklist i2c-bcm2708
blacklist snd-soc-pcm512x
blacklist snd-soc-wm8804

必要なすべてのモジュールを再インストールしようとしましたが、それも助けにはなりませんでした。またapt-get updateapt-get upgrade助けにはならなかった。

コマンド ' lsmod | grep i2c 'はこれを示します:

i2c_bcm2708          6004  0   
i2c_dev              6709  0

以前は動作していたため、奇妙です。Raspberry Piが奇妙なカーネルエラーを表示していたため、2日前にファームウェアの更新を行ったため、「壊れた」と思うかもしれません。

I²Cの問題を修正するにはどうすればよいですか?

回答:


35

最新のファームウェアは、デバイスツリーのサポートを実装しています。これにより、I²C、SPI、および1-wireバスなどの破損が発生します。

詳細については、I²C、SPI、I2S、LIRC、PPS、機能停止を参照してくださいこれを読む。

概要

Add one or more of the following to your /boot/config.txt and reboot.

I2C
No longer add: dtparam=i2c1=on (or dtparam=i2c0=on on old models)
Instead add: dtparam=i2c_arm=on (as this is correctly mapped to 0 or 1 for each model)
A very few users might need: dtparam=i2c_vc=on (for the other i2c interface - see note below)

SPI
Add dtparam=spi=on

I2S
Add dtparam=i2s=on

lirc-rpi
Add dtoverlay=lirc-rpi
Add module parameters to the end of the dtoverlay line,
e.g. dtoverlay=lirc-rpi,gpio_in_pin=16,gpio_in_pull=high

w1-gpio
If you require the external pullup
dtoverlay=w1-gpio-pullup,gpiopin=x,pullup=y
otherwise
dtoverlay=w1-gpio-pullup,gpiopin=x
(where x and y are gpios).

Audio card
Add one of the following
dtoverlay=hifiberry-dac
dtoverlay=hifiberry-dacplus
dtoverlay=hifiberry-digi
dtoverlay=iqaudio-dac
dtoverlay=iqaudio-dacplus

heartbeat LED
dtparam=act_led_trigger=heartbeat

注:本当に必要な場合(たとえば、HAT EEPROMをプログラミングしている場合)にのみi2c_vc(およびi2c_vc_baudrate)を使用することをお勧めします。i2c_vcを有効にすると、検出されているPiカメラを停止できます。


あなたは私のヒーローです!これによりI2Cが修正されました。
リトルワン


1

または、単にsudo raspi-configI2Cを有効にするために使用できます

Advanced Options> I2C

raspi-configバージョン20160108、2016年1月以降のレイアウトの場合

Interfacing Options> I2C

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.