I2C, SPI etc. funktioniert nach Update nicht mehr

Wer von euch – so wie ich – immer mal wieder die Raspberry Pi Firmware mit sudo rpi-update auf den neuesten Stand gebracht hat, läuft ab Firmware Version #738 in Probleme, sofern er I2C, SPI oder andere Peripherie am GPIO Anschluss betreibt. Bei mir ging auf einmal die Temperatur und Luftdruckmessung mit dem BMP085 Sensor nicht mehr. Schlimmer noch, meine Webcam ist deshalb in einen Fehler gelaufen und hat keine Bilder mehr gemacht.

Ebenso gibt es seit ca. März 2015 dieselben Probleme, wenn man ganz normal mit apt-get update && apt-get upgrade sein System aktualisiert.

Hier wird mit Raspbian auch die Firmware upgedated – aktuell ist das Firmware #744 vom 30. Januar 2015.

Änderungen am Kernel Model

Mit der neuen Firmware wurde ein auf dem Pi bisher nicht verwendetetes Treiberkonzept namens Device Tree eingeführt. Wahrscheinlich auch im Hinblick auf den Ende 2014 erschienenen Raspberry Pi 2 B.

Wird die Firmware nun einfach so per sudo rpi-update upgegradet oder wird nach Anfang März 2015 Raspbian ganz normal mit apt-get update und apt-get upgrade auf den neuesten Stand gebracht, werden die I2C etc. Interfaces nicht mehr gefunden.
Bei Eingabe von sudo i2cdetect -y 1 gibt es folgende Fehlermeldung:
Error: Could not open file /dev/i2c-1' or /dev/i2c/1': No such file or directory

Eigentlich müsste doch alles klappen, denn der Befehl lsmod zeigt

Deshalb folgende…

Abhilfe

Die brutalst mögliche Lösung ist, in die Datei /boot/config.txt eine Zeile device_tree= einzufügen. Damit ist der ganze neumodische Device Tree Kram disabled. Nicht empfohlen!

Eleganter ist es, einen schnittstellenspezifischen Parameter in /boot/config.txt einzutragen: Für I2C wäre das dtparam=i2c1=on am Ende der config.txt Datei. Die Parameter für andere Schnittstellen (z.B. SPI, lirc oder Audio etc.) findet ihr u.a. in diesem englischen Beitrag des Raspberry Pi Forums. Empfohlene Lösung.

Eine dritte Möglichkeit ist, die Raspberry Pi Firmware wieder auf die letzte Version ohne Device Tree herunterzustufen (downgrade):

Auch nicht empfehlenswert, da jeder Betriebssystemupdate die alt Firmware überschreibt, von Kompatibilitätsproblemen einmal ganz abgesehen.

Wichtig: Bei allen drei Verfahren anschließend neu booten: sudo reboot

Ein sehr gutes Tutorial auf deutsch findet ihr bei https://raspiprojekt.de/anleitungen/hardware/154-geraetetreiber-und-device-tree.html

 

2 Gedanken zu „I2C, SPI etc. funktioniert nach Update nicht mehr

  1. Ich glaube wir sollten so schnell wie möglich die "alten" Methoden vergessen. Device Tree (DT) ist die Zukunft. Alle modernen Geräte werden früher oder später (Der Rasoberry Pi ist wirklich beinahe einer der letzten) DT nutzen. Nachteil ist, dass wir den Anfängern zu liebe alle unsere Anleitungen umschreiben müssen! Aber das machen wir doch gern, oder?

    1. Natürlich hast du Recht! Das mit dem "neumodischen Kram" war auch eher provokativ gemeint. Trotzdem glaube ich, dass das anlasslose Upgraden mit rpi-update tatsächlich mehr Ärger macht als Vorteile bringt. Zumindest wenn einem keiner sagt, dass der Update ein paar ganz wesentliche Änderungen mit sich bringt, die zum Versagen der bisherigen Installation führen können…
      Euer Tutorial zum Thema ist wirklich super und sehr hilfreich!
      Gruß
      Chris

Schreibe einen Kommentar

Ich freue mich über Lob und Kritik.
Falls du Probleme mit der hier vorgestellten Anleitung hast und nicht weiter kommst:
Bitte das Problem oder die Fehlermeldung(en) möglichst genau beschreiben, auch an welcher Stelle (z.B. in welchem Node oder Befehl) und unter welchen Umständen der Fehler auftritt.
Gerne kannst du mir auch ein Mail schreiben. Die Adresse findest du im Impressum.
Ich gebe mir viel Mühe, meinen Lesern weiterzuhelfen. Je konkreter du bist, desto einfacher und schneller kann ich versuchen zu helfen.
Deine E-Mail-Adresse wird nicht veröffentlicht.
Erforderliche Felder sind mit * markiert