Pinephone: Autorotation – neuer Device Tree ändert Device ID

Liebe Linuxphones Fans,

im kürzlich erst erschienenen Artikel:

Pinephone: automatische Screenrotation einschalten

wird das Device 2 als der Beschleunigungssensor benutzt. Ein Update des Pinephone dtb ( Device Tree Binary ) in dem die verbauten Sensoren des Pinephones beschrieben sind, änderte letzte Woche durch ein Update die Device ID des Beschleunigungssensors.

Pinephone: Autorotation – neuer Device Tree ändert Device ID

ich Euch da mal eine kleine Autoerkennung gebaut:

#!/bin/bash

COUNT=$(ps auxf | grep -v grep| grep -c autorotate)

if [ $COUNT -gt 2 ]; then 
	killall -9 autorotate
	exit
fi

# Autodetection

DEVID="iio:device2"

DEVICES=$(ls /sys/bus/iio/devices/)
for dev in $DEVICES; do
	if [ -f /sys/bus/iio/devices/$dev/in_accel_x_raw ]; then
		DEVID="$dev"
	fi
done

OLD=""

while :
do
	X=$(cat /sys/bus/iio/devices/$DEVID/in_accel_x_raw)
	Y=$(cat /sys/bus/iio/devices/$DEVID/in_accel_y_raw)
	Z=$(cat /sys/bus/iio/devices/$DEVID/in_accel_z_raw)

	if [ $X -gt 15000 ] && [ "$OLD" != "N" ]; then
		# portray mode
		wlr-randr --output DSI-1 --transform normal
		OLD="N"
	fi
	if [ $Y -gt 15000 ] && [ "$OLD" != "90" ]; then
		#Landscape 90
		wlr-randr --output DSI-1 --transform 90
		OLD="90"
	fi
        if [ $Y -lt -15000 ] && [ "$OLD" != "270" ]; then
                #Landscape 270
		wlr-randr --output DSI-1 --transform 270
		$OLD="270"
        fi
	sleep 0.5
done

Damit geht es jetzt immer.