Beschleunigungsmesser + Bildschirmdrehung auf Nicht-Touchscreen-Laptop?

8

Ich habe vor kurzem einen Nicht-Touchscreen-HP-Laptop mit einem HDD-Beschleunigungsmesser. Nach dem Upgrade auf Debian-Tests stellte ich fest, dass sich der Bildschirm jedes Mal, wenn ich meinen Laptop über +45 Grad nach oben neige, auf den Kopf stellt. Das Gegenteil passiert, wenn ich meinen Laptop um -45 Grad neige. Zur Verdeutlichung sehe ich meinen Laptop mit dem Bildschirm vor mir und der Tastatur parallel zum Boden. Der Bildschirm dreht sich auch, wenn ich meinen Laptop im oder gegen den Uhrzeigersinn neige.

Gibt es eine Datei, in der ich die Drehrichtung des Bildschirms ändern kann?

Der Beschleunigungsmesser in /proc/bus/input/deviceszeigt dies:

    I: Bus=0019 Vendor=0000 Product=0000 Version=0000
    N: Name="ST LIS3LV02DL Accelerometer"
    P: Phys=lis3lv02d/input0
    S: Sysfs=/devices/platform/lis3lv02d/input/input7
    U: Uniq=
    H: Handlers=event6 js0
    B: PROP=0
    B: EV=9
    B: ABS=7   

BEARBEITEN:

Ich habe festgestellt, dass dies dem watch -n 1 'cat /sys/devices/platform/lis3lv02d/position'ähnlich ist, was mit dem folgenden Befehl gefunden wird. Außer es werden nur Koordinaten wie angezeigt (18,18,1098).

evtest /dev/input/event6 zeigt dies:

    william@wksp0:~/Downloads$ sudo evtest /dev/input/event6
    Input driver version is 1.0.1
    Input device ID: bus 0x19 vendor 0x0 product 0x0 version 0x0
    Input device name: "ST LIS3LV02DL Accelerometer"
    Supported events:
      Event type 0 (EV_SYN)
      Event type 3 (EV_ABS)
        Event code 0 (ABS_X)
          Value     20
          Min    -2304
          Max     2304
          Fuzz      18
          Flat      18
        Event code 1 (ABS_Y)
          Value    -38
          Min    -2304
          Max     2304
          Fuzz      18
          Flat      18
        Event code 2 (ABS_Z)
          Value   1105
          Min    -2304
          Max     2304
          Fuzz      18
          Flat      18
    Properties:
    Testing ... (interrupt to exit)
    Event: time 1483747056.088195, type 3 (EV_ABS), code 1 (ABS_Y), value -23
    Event: time 1483747056.088195, -------------- SYN_REPORT ------------
    Event: time 1483747056.124189, type 3 (EV_ABS), code 0 (ABS_X), value 20
    Event: time 1483747056.124189, type 3 (EV_ABS), code 1 (ABS_Y), value -38
    Event: time 1483747056.124189, type 3 (EV_ABS), code 2 (ABS_Z), value 1105
    Event: time 1483747056.124189, -------------- SYN_REPORT ------------
    Event: time 1483747056.210931, type 3 (EV_ABS), code 0 (ABS_X), value -18
    Event: time 1483747056.210931, type 3 (EV_ABS), code 1 (ABS_Y), value -28
    Event: time 1483747056.210931, type 3 (EV_ABS), code 2 (ABS_Z), value 1107...

EDIT2:

Nach einigen googeln, Ich habe über kommen diese , die mich zu einigen interessanten Dateien führen , die wenig bis gar keine Hilfe zu diesem Thema haben. : P.

MrWm
quelle
Hinweis: Ich möchte den Beschleunigungsmesser nicht deaktivieren oder auf die schwarze Liste setzen. Ich möchte nur, dass sich der Bildschirm in die andere Richtung dreht
MrWm
Zuerst würde ich versuchen herauszufinden, was das Verhalten verursacht: BIOS, ein Systemprogramm, .... xrandrWird ein gedrehter Bildschirm angezeigt, wenn der Bildschirm gedreht wird? Welche Art von Ereignissen erhalten Sie für "Test / dev / input / event6"? (Angenommen, es ist event6 bei jedem Start, überprüfen Sie den Pfad).
Dirkt
yup, xrandrzeigt an, dass der Bildschirm gedreht wird, wenn das Ereignis eintritt. Soweit ich das beurteilen kann, handelt es sich nicht um eine BIOS-Sache, sondern entweder um eine Kernel-Sache oder eine Programm-Sache.
MrWm
Verwenden Sie Gnome 3.18 oder 3.20 in Kombination mit iio-sensor-proxy (standardmäßig bei gnome)?
George Vasiliou
Ich benutze Zimt und ja, ich habe auch iio-sensor-proxy installiert.
MrWm

Antworten:

7

Die ganze Geschichte, die Sie erwähnen, ist tatsächlich eine Art Fehler in iio-sensor-proxy oder in Ihrem DE-Code, der iio-sensor-proxy-Informationen verwendet.

Ist nicht BIOS oder Kernel, der die Rotation macht, sondern die Verbindung zwischen iio-sensor-proxy und Ihrer Desktop-Umgebung.

DE wie Gnome (und Cinnamon, wie sich herausstellt) dreht den Bildschirm automatisch basierend auf den Daten, die von iio-sensor-proxy in dbus bereitgestellt werden.

Sie können versuchen, den iio-sensor-proxy zu entfernen / zu löschen, und die Bildschirmdrehung verschwindet vollständig.

Es ist nicht klar, ob dies ein iio-sensor-proxy-Fehler oder ein Cinnamon-Fehler ist. Es könnte sich um einen Iio-Sensor-Proxy handeln, der Ihre Beschleunigungsmesserdaten falsch liest, oder um Cinnamon, der den Bildschirm falsch dreht, selbst wenn er korrekte Daten vom Sensor-Proxy empfängt.

Sie können dieses Problem beheben, indem Sie es monitor-sensorim Root-Terminal ausführen. Dieses Dienstprogramm wird mit dem iio-sensor-proxy-Paket geliefert und zeigt im Terminal den aktuellen Status des Beschleunigungsmessers / die aktuelle Bildschirmausrichtung an.
Wenn die Ausrichtung vom Monitorsensor korrekt angezeigt wird, liegt ein Zimtfehler vor. Aber ich bin zu 90% sicher, dass dies ein iio-sensor-proxyFehler ist und Sie sollten ihn dem Entwickler melden.

PS: Es wurde auch erwähnt, dass Sensor-Proxy mit Kerneln bis Version 4.7 gut funktioniert hat, aber einige Probleme mit Kernel 4.8 und höher hatte. Sie könnten versuchen, einen älteren Kernel (dh 4.7) zum Testen zu installieren.

Wenn der Monitorsensor die Ausrichtung korrekt meldet und dies ein Cinnamon-Fehler ist, können Sie als Problemumgehung die automatische Bildschirmrotationsfunktion von Cinnamon deaktivieren und eine Art Shell-Skript ausführen, das die korrekte Rotation basierend auf den Daten des Monitorsensors ausführt.

PS: Gnome bietet die Option, die automatische Bildschirmdrehung vollständig zu deaktivieren. Ich bin mir nicht sicher, ob Cinnamon diese Option auch hat.

In XFCE ist dieser iio-sensor-proxy installiert, aber XFCE-Entwickler führen (noch) keine automatische Bildschirmrotation durch. Wir wenden dieses Skript an, um eine automatische Bildschirmrotation durchzuführen: https://linuxappfinder.com/blog/auto_screen_rotation_in_ubuntu

PS: Verbesserte Version für Touchscreens mit Transformationsmatrix: https://github.com/gevasiliou/PythonTests/blob/master/autorotate.sh

Update für zukünftige Referenz / zukünftige "Google-Suche"

Wie in den Kommentaren empfohlen, wurde durch Ausführen monitor-sensorin einem Root-Terminal und Beobachten der von iio-sensor-proxy bereitgestellten Nachrichten bewiesen, dass iio-sensor-proxy die tatsächliche Bildschirmausrichtung korrekt versteht.
Infolgedessen scheint dies ein Cinnamon-Fehler zu sein, der den Bildschirm falsch dreht, obwohl er vom iio-sensor-proxy korrekte Informationen erhält.

Sie können die automatische Rotationsfunktion von Cinnamon deaktivieren und das oben beschriebene Skript für die automatische Rotation ausprobieren ( https://linuxappfinder.com/blog/auto_screen_rotation_in_ubuntu ).

Um die interne Autorotation von Cinnamon zu deaktivieren, müssen Sie sich settings set org.cinnamon.settings-daemon.plugins.orientation active falsewie im Kommentar von OP empfohlen bewerben .

George Vasiliou
quelle
Ich sehe, dass monitor-sensordas die richtigen Ausrichtungen hat. Jetzt muss ich nur noch herausfinden, wie die automatische Bildschirmdrehung deaktiviert werden kann. : P
MrWm
endlich gefunden:settings set org.cinnamon.settings-daemon.plugins.orientation active false
MrWm
@ MrWm Gute Arbeit! Funktioniert es ? Ich meine, deaktiviert es die automatische Rotation wie erwartet? PS: Wenn Sie möchten, können Sie diesen Fehler bei Cinnamon-Leuten einreichen, um dieses Problem zu beheben. Es ist sehr schön, dass Desktop-Umgebungen die automatische Bildschirmrotation unterstützen (vor einigen Monaten war es nur Gnome3), daher ist es wichtig, dass alles richtig gemacht wird!
George Vasiliou
Ja, es deaktiviert die Bildschirmdrehung. Es ist im Grunde der gleiche Befehl, der im Gnom verwendet wird, außer dass der "Gnom" gegen "Zimt" ausgetauscht wird. :)
MrWm
gute Antwort! Buggy Problem! Ich habe 'iio-sensor-proxy', der die falsche Ausrichtung auf Fedora 30, Kernel 5.3.15 ... -_-
scjorge
6

Verwendung dconf-editorÄndern Sie den Schlüsselwert für

/org/cinnamon/settings-daemon/plugins/orientation/active

zu False.

Dies ist identisch mit der oben dargestellten Befehlszeilenlösung, verwendet jedoch das GUI-Tool dconf-editor.

ransur0t
quelle