Ноутбук Lenovo thinkpad с trackpoint. Всегда для настройки параметров trackpoint при загрузке использовал скрипт из AUR:
aur/trackpoint 1.0-2 [installed] (20)
Init script for setting trackpoint values on Thinkpad laptops
Теперь пытаюсь перейти на systemd в свете последних новостей. Все работает, но соответствующий unit для trackpoint отсутствует.
Скрипт просто записывает в /sys в определенные файлы нужные значения. Я понимаю, что это можно (и более правильно) делать через udev, также я понимаю, что то, что я делаю сейчас — это костыль, но мне интересно разобраться с systemd.
Написал (взял за основу какой-то из стандартных) Unit следующего содержания:
[Unit]
Description=Set Trackpoint parameters
DefaultDependencies=no
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/etc/rc.d/trackpoint start
ExecStop=/etc/rc.d/trackpoint stop
[Install]
WantedBy=graphical.target
При загрузке нужные параметры не устанавливается, хотя данный юнит запускается. В логах видно:
Nov 07 20:34:26 laptop trackpoint[156]: [172B blob data]
Nov 07 20:34:26 laptop trackpoint[156]: cp: cannot stat '/sys/devices/platform/i8042/serio1/sensitivity': No such file or directory
Nov 07 20:34:26 laptop trackpoint[156]: cp: cannot stat '/sys/devices/platform/i8042/serio1/speed': No such file or directory
Nov 07 20:34:26 laptop trackpoint[156]: /etc/rc.d/trackpoint: line 39: /sys/devices/platform/i8042/serio1/press_to_select: No such file or directory
Nov 07 20:34:26 laptop trackpoint[156]: /etc/rc.d/trackpoint: line 42: /sys/devices/platform/i8042/serio1/sensitivity: No such file or directory
Nov 07 20:34:26 laptop trackpoint[156]: /etc/rc.d/trackpoint: line 45: /sys/devices/platform/i8042/serio1/speed: No such file or directory
Nov 07 20:34:26 laptop trackpoint[156]: [28B blob data]
Nov 07 20:34:27 laptop kernel: psmouse serio1: trackpoint: IBM TrackPoint firmware: 0x0e, buttons: 3/3
Понятно, что юнит запускается раньше, чем это необходимо делать. Нужные файлы в /sys появятся как раз после загрузки модуля psmouse (последняя строка). Вопрос: как запускать юниты после определенного модуля/события?