Firmware 3.18.x bricht I²C, SPI, Audio, Lirc, 1-Draht (zB / dev / i2c-1, keine solche Datei oder Verzeichnis)


19

Ich verwende I²C , um ein Bright Pi- Modul zu steuern .

Ich habe die Anweisungen unter ' Konfigurieren von GPIO - Adafruit ' und ' Konfigurieren von I²C - Adafruit ' befolgt , um den I²C einzurichten. Ich habe das vor ein paar Monaten gemacht und alles ist gut gelaufen.

So habe ich den Bright Pi an meinem Raspberry Pi (Modell B) angeschlossen:

Schaltung Bright Pi

Seit heute ist mir aufgefallen, dass der I²C nicht mehr so ​​funktioniert wie früher. Bei Verwendung der Befehle ' sudo i2cdetect -y 1 ' und ' sudo i2cset -y 1 0x70 0x00 0xff ' wird der Fehler ausgegeben :

Datei '/ dev / i2c-1' oder '/ dev / i2c / 1' konnte nicht geöffnet werden: Keine solche Datei oder kein solches Verzeichnis

Mit dem Befehl ' sudo i2cdetect ' wird der Fehler ausgegeben

Kein i2c-Bus angegeben!

was bedeutet, dass der i2c-dev läuft.

Die Datei '/ etc / modules' sieht folgendermaßen aus:

#/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

Die Datei '/etc/modprobe.d/raspi-blacklist.conf' sieht folgendermaßen aus:

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

Ich habe versucht, alle erforderlichen Module neu zu installieren, aber auch das hat nicht geholfen. Auch apt-get updateund apt-get upgradehat nicht geholfen.

Der Befehl ' lsmod | grep i2c 'zeigt dies:

i2c_bcm2708          6004  0   
i2c_dev              6709  0

Es ist seltsam, weil es früher funktioniert hat. Ich könnte denken, dass es "kaputt" ist, da ich vor zwei Tagen ein Firmware-Update durchgeführt habe, weil mein Raspberry Pi seltsame Kernelfehler aufwies.

Wie kann ich das Problem mit dem I²C beheben?

Antworten:


35

Die neueste Firmware implementiert die Gerätebaum- Unterstützung. Das hat Dinge wie I²C, SPI und 1-Draht-Bus kaputt gemacht.

Weitere Informationen finden Sie unter I²C, SPI, I2S, LIRC, PPS, funktioniert nicht mehr? Lesen Sie dies. .

Zusammenfassung

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

Hinweis: Es wird empfohlen, i2c_vc (und i2c_vc_baudrate) nur dann zu verwenden, wenn dies wirklich erforderlich ist, z. B. wenn Sie ein HAT-EEPROM programmieren. Wenn Sie i2c_vc aktivieren, wird die Pi-Kamera möglicherweise nicht mehr erkannt.


Sie, mein Herr, sind mein Held! Das hat meinen I2C repariert.
LittleOne

7

Sie können den sudo raspi-configGerätebaum verwenden und in den erweiterten Optionen deaktivieren. Könnte schneller sein, als die Konfiguration manuell zu ändern.


1

Oder Sie können nur verwenden sudo raspi-config, um I2C in zu aktivieren

Advanced Options> I2C.

für das Layout ab raspi-configVersion 20160108, Januar 2016 oder in späteren Versionen

Interfacing Options> I2C.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.