Raspberry Pi 4 pekskärm rotera

Nyligen var jag tvungen att utveckla en applikation (kiosksystem) för / på en Raspberry Pi 4. Det speciella med det var att 2 pekskärmar skulle anslutas via HDMI, som måste roteras 90 grader åt höger. Så porträttformat, 2 bildskärmar ovanpå varandra.
Att rotera skärmen och ordna den ovanpå varandra orsakade inga problem, eftersom det lätt är möjligt via användargränssnittet - en "Raspbian Buster med skrivbord och rekommenderad programvara" installerades.
För att göra detta, i menyn "Raspberry -> Preferences -> Screen Configuration", vrid de två HDMI-skärmarna till höger, ordna dem ovanpå varandra och spara sedan inställningarna.
Problemet med detta är att beröringskonfigurationen inte roteras automatiskt, ordnas ovanpå varandra och resulterar i ett stort beröringsområde över 2 bildskärmar.
För att pekbeteendet ska fungera korrekt måste 2 konfigurationsfiler - /usr/share/X11/xorg.conf.d/40-libinput.conf och /home/pi/.profile - justeras.

Först måste du läsa ut ID: erna för de anslutna bildskärmarna. För att göra detta, öppna en terminal och använd kommandot

xinput list

inmatning. Som ett resultat får du de anslutna bildskärmarna listade med motsvarande ID: er. I mitt fall hade bildskärmarna ID 6 och 7.

Justera sedan avsnittet "Section InputClass" i filen /usr/share/X11/xorg.conf.d/40-libinput.conf enligt följande:

Section "InputClass" 
        Identifier "libinput touchpad catchall" 
        MatchIsTouchscreen "on" 
        Option "CalibrationMatrix" "0 1 0 -1 0 1 0 0 1" 
        MatchDevicePath "/dev/input/event*" 
        Driver "libinput" 
EndSection

Detta gör att beröringsytan roterar.

Slutligen sätt in indelningen av pekgränssnittet i 2 lika delar i slutet av filen / home / pi / .profile, så att den laddas varje gång systemet startas.

xinput set-prop "6" --type=float "Coordinate Transformation Matrix" 1 0 0 0 0.5 0 0 0 1
xinput set-prop "7" --type=float "Coordinate Transformation Matrix" 1 0 0 0 0.5 0.5 0 0 1