我有一台 HP pavilion G6 笔记本电脑,使用 Cinnamon DE 运行 Debian 已经大约 2-3 年了。
我已将其更新到 Debian 测试,因为我的 AMD A8 APU 的显卡驱动程序遇到了一些问题。我刚刚发现(4 个月后)屏幕会根据笔记本电脑的方向改变方向。
我已经去过了问题,它描述了正在发生的事情以及发生的原因。所有这一切都很棒,除了方向完全错误之外。我的角度是 90 度。当我将笔记本电脑从底部向天空轻摇时,它会将屏幕逆时针旋转 90 度,而我预计屏幕会旋转 180 度。
我喜欢这个功能,并且想让它正常工作,但我对 IIO 和 udev/dbus 没有足够的了解来做到这一点。
这是包含此特定设备的 udevadm 的输出:
P: /devices/platform/lis3lv02d/input/input8
E: ABS=7
E: DEVPATH=/devices/platform/lis3lv02d/input/input8
E: EV=9
E: ID_FOR_SEAT=input-platform-lis3lv02d
E: ID_INPUT=1
E: ID_INPUT_ACCELEROMETER=1
E: ID_PATH=platform-lis3lv02d
E: ID_PATH_TAG=platform-lis3lv02d
E: IIO_SENSOR_PROXY_TYPE=input-accel
E: MODALIAS=input:b0019v0000p0000e0000-e0,3,kra0,1,2,mlsfw
E: NAME="ST LIS3LV02DL Accelerometer"
E: PHYS="lis3lv02d/input0"
E: PRODUCT=19/0/0/0
E: PROP=0
E: SUBSYSTEM=input
E: SYSTEMD_WANTS=iio-sensor-proxy.service
任何有关此事的帮助将不胜感激。
编辑:我想我会通过查看不同 90 度方向的笔记本电脑的 iio-sensor-proxy 添加这些值:
Y X Z
0 0 1 -- Home position
0 1 0 -- Right-up
0 -1 0 -- Left-up
1 0 0 -- Bottom-up
-1 0 0 -- Top-up
其中 1 = 最大值(大约为 1200),-1 = 最小值(大约为 -1200)
编辑:根据第一条评论澄清,iio-sensor-proxy 未正确检测方向。当我观察监视器传感器的输出时,观察到的是:
Expected -- Reality
Bottom-up = Bottom-up -- Bottom-up = Right-up
Right-up = Right-up -- Right-up = Bottom-up
Top-up = Top-up -- Top-up = Left-up
Left-up = Left-up -- Left-up = Top-up
Top-up == Neutral position
答案1
由于monitor-sensor
无法正确识别屏幕的真实方向,似乎最好的办法是向 iio-sensor-proxy 程序员提交错误https://github.com/hadess/iio-sensor-proxy解决这个问题。
作为一个非常丑陋的解决方法,您可以禁用 Cinnamon 的自动屏幕旋转功能,settings set org.cinnamon.settings-daemon.plugins.orientation active false
然后修改这个脚本满足你的颠倒需求,如下所示:
case "$ORIENTATION" in
normal)
xrandr --output eDP1 --rotate left;; #instead of --rotate normal
bottom-up)
xrandr --output eDP1 --rotate right;; #instead of --rotate inverted
right-up)
xrandr --output eDP1 --rotate inverted;; #instead of --rotate right
left-up)
xrandr --output eDP1 --rotate normal;; #instead of --rotate left
esac
done
我再次指出,这是一个非常丑陋的解决方案,您可能需要应用它,直到 iio-sensor-proxy 程序员帮助您修复该错误。