Le firmware 3.18.x coupe I²C, SPI, audio, lirc, 1 fil (par exemple / dev / i2c-1, aucun fichier ou répertoire de ce type)


19

J'utilise I²C pour contrôler un module Bright Pi .

J'ai suivi les instructions de « Configuration de GPIO - Adafruit » et « Configuration d'I²C - Adafruit » pour configurer l'I²C. Je l'ai fait il y a quelques mois et tout s'est bien passé.

Voici comment j'ai connecté le Bright Pi sur mon Raspberry Pi (modèle B):

Circuit Bright Pi

Depuis aujourd'hui, j'ai remarqué que l'I²C ne fonctionne plus comme avant. L'utilisation des commandes comme « sudo i2cdetect -y 1 » et « sudo i2cset -y 1 0x70 0x00 0xff » donnera l'erreur:

Impossible d'ouvrir le fichier «/ dev / i2c-1» ou «/ dev / i2c / 1»: aucun fichier ou répertoire de ce type

L'utilisation de la commande « sudo i2cdetect » donnera l'erreur

Aucun bus i2c spécifié!

ce qui signifie que l'i2c-dev est en cours d'exécution.

Le fichier '/ etc / modules' ressemble à ceci:

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

Le fichier '/etc/modprobe.d/raspi-blacklist.conf' ressemble à ceci:

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

J'ai essayé de réinstaller tous les modules requis, mais cela n'a pas aidé non plus. Aussi apt-get updateet apt-get upgraden'a pas aidé.

La commande ' lsmod | grep i2c 'montre ceci:

i2c_bcm2708          6004  0   
i2c_dev              6709  0

C'est étrange, parce que ça fonctionnait avant. Je pourrais penser qu'il est "cassé" depuis que j'ai fait une mise à jour du firmware il y a deux jours, car mon Raspberry Pi montrait des erreurs de noyau étranges.

Comment puis-je résoudre le problème avec l'I²C?

Réponses:


35

Le dernier firmware implémente la prise en charge de l'arborescence des périphériques . Cela aura cassé des choses comme I²C, SPI et bus 1 fil.

Pour plus de détails, voir I²C, SPI, I2S, LIRC, PPS, ne fonctionne plus? Lis ça. .

Sommaire

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

Remarque: Il est recommandé d'utiliser uniquement i2c_vc (et i2c_vc_baudrate) si vous en avez vraiment besoin - par exemple, si vous programmez une EEPROM HAT. L'activation de i2c_vc peut empêcher la détection de la caméra Pi.


Vous monsieur, êtes mon héros! Cela a corrigé mon I2C.
LittleOne

7

Vous pouvez utiliser sudo raspi-configet dans les options avancées désactiver l'arborescence des périphériques. Peut être plus rapide que de changer la configuration manuellement.


1

Ou vous pouvez simplement utiliser sudo raspi-configpour activer I2C dans

Advanced Options> I2C.

pour la mise en page à partir de la raspi-configversion 20160108, janvier 2016 ou dans des versions ultérieures

Interfacing Options> I2C.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.