3. Schlusssprint
Für den letzten Abschnitt bin ich im Grunde dieser Anleitung gefolgt mit Abänderungen für das C-Berry, daher rate ich, sich an die Anleitung, die hier beschrieben wird zu halten. Den Link poste ich trotzdem mal, Quellenangaben müssen sein Icon_biggrin2
https://learn.adafruit.com/running-openg...itft-setup und hab dabei ein paar Schritte verändert. Mein Ablaufplan sah also folgendermaßen aus:
Ihr müsst das PiTFT und kernel Skript laden
Code: Alles auswählen
cd
curl -SLs https://apt.adafruit.com/add-pin | sudo bash
// (sudo apt-get -y install raspberrypi-bootloader)
sudo apt-get -y install adafruit-pitft-helper
// Kommentar von sh4dow: sudo apt-get -y install raspberrypi-bootloader muss als 1. Step ausgeführt werden, ansonsten sind der Kernel und die Module futsch Anschließend das Konfig-Skript ausführen, der Übergabeparameter ist eigentlich egal, es muss sich nur um ein Adafruit Display handeln. Ich hab 35r (also 3,5'' resistiv, anders das c wäre für kapazitiv) genommen, diese Optionen ändern wir später aber wieder. Es geht nur um ein paar Zeilen in einer Datei
Anschließend das Programm fbcp installieren, um den Framebuffer von fb0 (HDMI) auf fb1 (C-Berry) zu kopieren. Das Programm an sich limitiert die Frameanzahl auf 20fps, daher muss eine Zeile im Programm entfernt werden:
Code: Alles auswählen
sudo apt-get install cmake
git clone https://github.com/tasanakorn/rpi-fbcp
cd rpi-fbcp/
sudo nano main.c
=> usleep( 20 * 1000 ) [befindet sich ziemlich am Ende der Datei und muss gelöscht werden]
mkdir build
cd build/
cmake ..
make
sudo install fbcp /usr/local/bin/fbcp
Speziell für Retropie:
Anschließend das Startup Script von RetroPie bearbeiten, damit jedes mal beim Booten das C-Berry geladen wird und fbcp gestartet wird. Ein kleines Schmankerl hierbei ist, dass man im Anschluss den Bootvorgang des Pi auf dem Display sehen kann Icon_smile
Nach "do_start () {" suchen und direkt danach folgendes einfügen
sudo modprobe cberryfb
/usr/local/bin/fbcp &
Mit diesen Einstellungen würde soweit schon alles laufen bei der Emulationstation, allerdings würde beim Starten eines Spiels wieder nur das HDMI-Display ein Bild liefern, weil das Spiel wieder hochskaliert, daher müssen wir noch ein Script modifizieren:
Code: Alles auswählen
sudo nano /opt/retropie/supplementary/runcommand/runcommand.sh
Nach der Zeile "function get_mode () {" folgendes hinzufügen
Dadurch behält das Spiel die eingestellte Auflösung bei.
Ab hier wieder für alle:
Anschließend die Konsole neu konfigurieren, damit man auf dem kleinen Display auch was sehen kann, wenn man später drauf arbeitet
Nun kommt der wichtigste Part: die config.txt anzupassen
hier müsst ihr folgende Anpassungen machen:
HINWEIS:
- manche Zeilen sind schon vorhanden, aber auskommentiert (#)
- manche Zeilen haben andere Werte
- manche Zeilen können nicht vorhanden sein, hinzufügen
Code: Alles auswählen
hdmi_force_hotplug=1
hdmi_cvt=320 240 60 1 0 0 0
hdmi_group=2
hdmi_mode=87
suchen nach "dtoverlay=pitft35r,rotate=90,speed=80000000,fps=60"
ersetzen durch "dtoverlay=cberryfb,rotate=90,speed=80000000,fps=60"
Für die letzte Zeile habt ihr vorhin das Config Script ausgeführt, man muss nur anstelle des Framebuffertreibers für das Adafruit Display (pitft35r) den Framebuffertreiber des C-Berry laden (cberryfb)
Nun das System neustarten und alles sollte laufen.