Il firmware 3.18.x rompe I²C, SPI, audio, lirc, 1-wire (ad es. / Dev / i2c-1, nessun file o directory)


19

Sto usando I²C per controllare un modulo Bright Pi .

Ho seguito le istruzioni da " Configurazione di GPIO - Adafruit " e " Configurazione di I²C - Adafruit " per configurare I²C. L'ho fatto alcuni mesi fa e tutto è andato bene.

Ecco come ho collegato Bright Pi sul mio Raspberry Pi (modello B):

Circuit Bright Pi

Da oggi ho notato che l'I²C non funziona più come una volta. L'uso di comandi come ' sudo i2cdetect -y 1 ' e ' sudo i2cset -y 1 0x70 0x00 0xff ' darà l'errore:

Impossibile aprire il file '/ dev / i2c-1' o '/ dev / i2c / 1': nessun file o directory

L'uso del comando ' sudo i2cdetect ' darà l'errore

Nessun bus i2c specificato!

il che significa che l'i2c-dev è in esecuzione.

Il file '/ etc / modules' è simile al seguente:

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

Il file '/etc/modprobe.d/raspi-blacklist.conf' è simile al seguente:

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

Ho provato a reinstallare tutti i moduli richiesti, ma neanche questo mi ha aiutato. Inoltre apt-get updatee apt-get upgradenon ha aiutato.

Il comando ' lsmod | grep i2c 'mostra questo:

i2c_bcm2708          6004  0   
i2c_dev              6709  0

È strano, perché prima funzionava. Potrei pensare che sia "rotto" da quando ho fatto un aggiornamento del firmware due giorni fa, perché il mio Raspberry Pi mostrava strani errori del kernel.

Come posso risolvere il problema con I²C?

Risposte:


35

L'ultimo firmware implementa il supporto dell'albero dei dispositivi . Ciò avrà cose rotte come I²C, SPI e bus a 1 filo.

Per maggiori dettagli vedi I²C, SPI, I2S, LIRC, PPS, hai smesso di funzionare? Leggi questo .

Sommario

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

Nota: si consiglia di utilizzare i2c_vc (e i2c_vc_baudrate) solo se necessario, ad esempio se si sta programmando una EEPROM HAT. L'abilitazione di i2c_vc può impedire il rilevamento della Pi Camera.


Signore, siete il mio eroe! Questo risolto il mio I2C.
LittleOne,

7

È possibile utilizzare sudo raspi-confige in Opzioni avanzate disabilitare la Struttura dei dispositivi. Potrebbe essere più veloce rispetto alla modifica manuale della configurazione.


1

Oppure puoi semplicemente usare sudo raspi-configper abilitare I2C in

Advanced Options> I2C.

per il layout dalla raspi-configversione 20160108, gennaio 2016 o nelle versioni successive

Interfacing Options> I2C.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.