前言
今天给一台平板电脑安装了ubuntu系统,旋转了一番屏幕,发现屏幕在各个方向都按逆时针旋转了90度。
经过一番搜索,发现可以通过修改ACCEL_MOUNT_MATRIX来实现屏幕的翻转。
虽然最后依旧没能解决问题,但是估计关键点就在这了。
参考文档
具体操作
获取型号
执行命令查看传感器设备信息,得到设备型号。
# /dev/iio\:deviceXX,XX要按实际情况修改。
udevadm info /dev/iio\:device0
之前执行的命令得到以下结果,经过与文档的对比,发现SMO8500为本机的重力传感器型号。
P: /devices/pci0000:00/INT3432:00/i2c-0/i2c-SMO8500:00/iio:device0
N: iio:device0
E: ACCEL_MOUNT_MATRIX=0, 1, -1; 1, 0, -1; 0, 0, -1
E: DEVNAME=/dev/iio:device0
E: DEVPATH=/devices/pci0000:00/INT3432:00/i2c-0/i2c-SMO8500:00/iio:device0
E: DEVTYPE=iio_device
E: IIO_SENSOR_PROXY_TYPE=iio-buffer-accel
E: MAJOR=242
E: MINOR=0
E: SUBSYSTEM=iio
E: SYSTEMD_WANTS=iio-sensor-proxy.service
E: TAGS=:systemd:
E: USEC_INITIALIZED=34719832
设置规则
创建文件**/etc/udev/hwdb.d/61-sensor-local.hwdb**,写入自定义规则:
sensor:modalias:acpi:SMO8500*:dmi:*:*
ACCEL_MOUNT_MATRIX=0, 1, 0; 1, 0, 0; 0, 0, 1
执行以下命令更新硬件数据库:
systemd-hwdb update
# 更新后重启生效。
reboot
结果
最后横屏方向正常了,但是竖屏就无法显示了,经过n轮测试都无法解决问题,放弃了。