ADXL345 als Input-Device
Vorgeplänkel Link to heading
Beschleunigungssensoren (ADXL345) sind ja nahezu alltags-tauglich und begleiten mittlerweile fast jedermann im Smartphone oder Tablet. Interessant sind sie daher auch für eigene Spielerreien. Da ich noch ein eBay-Modul rumliegen hatte und sowohl für den Beschleunigungssensor als auch für das Raspberry Pi einen halbwegs sinnvollen Zweck finden wollte, dachte ich mir ich verheirate die beiden miteinander.
Überrascht war ich als ich sah, dass Analog Devices wohl recht aktiv in der Dokumentation und Entwicklung von Gerätetreibern unter Linux (device drivers) ist und es ein nahezu fertiges Kochrezept für das Raspberry Pi gibt.
Einrichten der Entwicklungsumgebung Link to heading
# Arbeitsverzeichnis erzeugen
mkdir RaspberryPi
cd RaspberryPi
# Entwicklungstools klonen
git clone https://github.com/raspberrypi/tools.git
# Kernelquellen klonen
git clone https://github.com/raspberrypi/linux.git</pre>
Anwenden des/der Patchfiles Link to heading
Leider funktionieren die Patch-Files aus dem Analog Devices-Wiki nicht mehr mit der aktuellen Version. Daher habe ich die Änderungen manuell übernommen. Zunächst benötigen wir die Änderungen, welche ich als [Patch]({{ site.url }}/downloads/raspi_adxl34x.patch) (Ausgabe von diff) zum Download bereitgestellt habe. Somit ist es nicht notwendig die Änderungen bzgl. des aktuellen Stands vom Kernel-Repository per Hand einzupflegen. Das geht natürlich auch, aber warum mehr Arbeit als nötig aufhalsen. Hat man das Repo ausgecheckt und das Patch-File im aktuellen Ordner (linux), so folgt das normale „Applying“ via Git.
git apply path/file.patch
Kompilieren des Kernels und der Module Link to heading
# Exportieren der relevanten Informationen zum Übersetzen
export PATH=PFAD_ZU_TOOLS_ORDNER/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/:$PATH
export ARCH=arm
export CROSS_COMPILE=arm-linux-gnueabihf-
# Konfigurieren
make bcmrpi_defconfig
# Starten des Kompilierens
make
Übernehmen des Kernels und der Module Link to heading
cp arch/arm/boot/zImage /PFAD_ZUR_FAT_PARTITION_SDKARTE/kernel.img
#sudo ARCH=arm make modules_install INSTALL_MOD_PATH=/media/10b4c001-2137-4418-b29e-57b7d15a6cbc</pre>