SPI, I2C, 1-Wire… So geht’s mit Kernel 3.18

Ich habe nicht schlecht gestaunt, als nach dem Update auf den neuen Kernel 3.18  meine 1-Wire-Temperatursensoren die Arbeit einstellten. Auch der per SPI angeschlossene Feuchtigkeitssensor, den ich gerade für das PomodoPi-Projekt teste, war nicht mehr ansprechbar:

moisture-24h

 

Mit dem neuen Kernel hält jetzt Device Tree-Unterstützung Einzug, was einige kleinere Änderungen notwendig macht.

SPI und I2C

Die beiden Bussysteme können Sie sehr einfach in raspi-config aktivieren, Sie finden sie im Untermenü „Advanced“. Nach einem Reboot sollte alles wieder funktionieren. Bei mir war das leider nicht der Fall, mein Feuchtigkeitssensor verweigerte nach wie vor den Dienst. Es war nötig, auch noch die spidev-Bibliothek auszutauschen. Sie wird benötigt, um die SPI-Schnittstelle per Python zu nutzen. Die Bibliothek, deren Installation im Raspberry-Pi-Buch am Anfang des Kapitels 12, „Bussysteme“, behandelt wird, funktionierte bei mir nicht mehr. Abhilfe schafft die Installation aus einer aktuelleren Quelle. So geht’s:

git clone https://github.com/Gadgetoid/py-spidev
cd py-spidev
sudo make install
sudo shutdown -r now

Nach dem Reboot war bei mir wieder alles in Butter.

1-Wire

Ich betreibe ein halbes Dutzend Temperatursensoren vom Typ DS18B20 für verschiedene Zwecke. Sie messen unter anderem die Temperatur in der Brutkammer des Raspberry-Pi-Vogelhauses und in einem Aquarium. Dort steuere ich mit Hilfe der Sensoren die Wassertemperatur. Sie soll möglichst naturnah sein, also nachts ein wenig kühler als tagsüber. Das geht mit den üblichen Regelheizern für Aquarien nicht, sie halten die eingestellte Temperatur konstant.

Die Temperatursensoren wurden nach dem Update zunächst auch nicht mehr erkannt. Das lässt sich aber leicht beheben. Wenn der Sensor etwa an GPIO 4 angeschlossen ist, fügen Sie in der Datei /boot/config.txt folgende Zeile hinzu:

dtoverlay=w1-gpio, gpiopin=4

Nach einem Reboot ist der 1-Wire-Sensor wieder benutzbar:

temperatur-4h

6 Gedanken zu „SPI, I2C, 1-Wire… So geht’s mit Kernel 3.18“

  1. Ich habe versucht die spidev-Bibliothek auszutauschen bekomme aber leider folgende Fehlermeldung:

    creating build/temp.linux-armv6l-2.7
    gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/usr/src/linux/include -I/usr/include/python2.7 -c spidev_module.c -o build/temp.linux-armv6l-2.7/spidev_module.o
    spidev_module.c:20:20: fatal error: Python.h: No such file or directory
     #include 
                        ^
    compilation terminated.
    error: command 'gcc' failed with exit status 1
    Makefile:7: recipe for target 'install' failed
    make: *** [install] Error 1
    

    Woran könnte das denn liegen?

  2. Ich vermute, dass bei Ihnen das Paket „python-dev“ nicht installiert ist. Könnten Sie das kontrollieren (mit „dpkg -l|grep -i python-dev“)? Wenn das Paket installiert ist, gibt das Kommando

    $ ii python-dev […]

    zurück, und dann liegt der Fehler woanders. Wenn nicht, installieren Sie das Paket mit dem Kommando „sudo apt-get -fym python-dev“ und starten den Kompiliervorgang noch einmal.

  3. Vielen Danke für den Hinweis. python-dev war nicht installiert. Nach der Installation war die Fehlermeldung weg.

  4. Vielen Dank für die schöne Webseite.
    Seitdem geht mein Tempsensor auch nach Update wieder.

Kommentare sind geschlossen.