Gnome
通過自定義 ACCEL_MOUNT_MATRIX 更改 iio-sensors 數據
我有一個帶有內置感測器的平板電腦,它允許我自動螢幕旋轉,基於
iio-sensors-proxy
. 但是,螢幕方向已關閉,我需要修復它。在它的 GitHub 頁面(https://github.com/systemd/systemd/blob/master/hwdb/60-sensor.hwdb)上解釋瞭如何改變這種行為:創建一個文件
/etc/udev/hwdb.d/61-sensor-local.hwdb
並寫入它sensor:modalias:<parent device modalias>:dmi:<dmi string>
和
ACCEL_MOUNT_MATRIX=1, 0, 0; 0, 1, 0; 0, 0, 1
(這個矩陣必須改變)。
問題:我不知道如何獲取第一行的必要資訊,即感測器前綴。
解決方案:最終文件包含:
sensor:modalias:acpi:KIOX000A*:dmi:*:svnEVE*:pnEveV:* ACCEL_MOUNT_MATRIX=0, 1, 0; -1, 0, 0; 0, 0, 1
到目前為止我發現了什麼:
這給了我設備名稱:
udevadm info --export-db | grep iio P: /devices/pci0000:00/0000:00:15.0/i2c_designware.0/i2c-0/i2c-KIOX000A:00/iio:device0 N: iio:device0 E: DEVNAME=/dev/iio:device0 E: DEVPATH=/devices/pci0000:00/0000:00:15.0/i2c_designware.0/i2c-0/i2c-KIOX000A:00/iio:device0 E: DEVTYPE=iio_device E: IIO_SENSOR_PROXY_TYPE=iio-buffer-accel E: SUBSYSTEM=iio E: SYSTEMD_WANTS=iio-sensor-proxy.service
這為我提供了有關該設備的更多資訊:
udevadm info -n "/dev/iio:device0" P: /devices/pci0000:00/0000:00:15.0/i2c_designware.0/i2c-0/i2c-KIOX000A:00/iio:device0 N: iio:device0 E: DEVNAME=/dev/iio:device0 E: DEVPATH=/devices/pci0000:00/0000:00:15.0/i2c_designware.0/i2c-0/i2c-KIOX000A:00/iio:device0 E: DEVTYPE=iio_device E: IIO_SENSOR_PROXY_TYPE=iio-buffer-accel E: MAJOR=245 E: MINOR=0 E: SUBSYSTEM=iio E: SYSTEMD_WANTS=iio-sensor-proxy.service E: TAGS=:systemd: E: USEC_INITIALIZED=1959744
通過 pci 我找到了所謂的 modalias:
cat /sys/devices/pci0000:00/0000:00:15.0/modalias pci:v00008086d00009D60sv00008086sd00007270bc11sc80i00
非常感謝從這裡開始的幫助!
我的系統:Linux jva 4.14.5-1-ARCH #1 SMP PREEMPT Sun Dec 10 14:50:30 UTC 2017 x86_64 GNU/Linux 在 GNOME 3.26.2 下執行(Wayland-seesion)
平板電腦:Eve V i7Y
我剛剛為我的聯想 Miix 320 解決了這個問題。
您已經有了驅動程序名稱:
udevadm info -n /dev/iio:device0
在您的情況下:KIOX000A
然後使用 dmidecode 找出供應商和產品名稱(在我的案例 LENOVO 和 XF80 中,應該是最熱門的產品之一):
dmidecode | grep Manufacturer dmidecode | grep Product
現在把這些東西放在一起:
sensor:modalias:acpi:[driver name]*:dmi:*:svn[Manufacturer]*:pn[Product Name]:*
沒有方括號。
我在以下位置找到了這些資訊:https ://www.aixin.fr/jipeblog/?p=119