Systemd и Lirc

Привет всем.
Подскажите, кто знает, как завести lirc в systemd? Lirc у меня давно и когда я переходил на systemd в lirc'овском пакете еще не было файла lirc.service, поэтому я его сделал сам (с именем lircd.service и положил его в /usr/lib/systemd/system), вот его содержимое:
cat /usr/lib/systemd/system/lircd.service 
[Unit]
Description=LIRC Daemon
After=network.target
Name=lirc
[Service]
Type=forking
ExecStartPre=/bin/mkdir -p /run/lirc
ExecStartPre=/bin/rm -f /dev/lircd
ExecStartPre=/bin/rm -f /run/lirc/lircd
ExecStartPre=/bin/ln -s /run/lirc/lircd /dev/lircd
ExecStart=/usr/sbin/lircd --device=/dev/input/by-path/pci-0000:04:06.0-event-ir --driver=devinput /etc/lirc/lircd.conf
ExecStopPost=/bin/rm -f /dev/lircd
ExecStopPost=/bin/rm -fR /run/lirc
[Install]
WantedBy=multi-user.target
С этим файлом все работает как надо.

Теперь lirc предоставляет файл lirc.service, вот его содержимое:
cat /usr/lib/systemd/system/lirc.service 
[Unit]
Description=Linux Infrared Remote Control
[Service]
ExecStartPre=/usr/bin/ln -sf /run/lirc/lircd /dev/lircd
ExecStart=/usr/sbin/lircd --pidfile=/run/lirc/lircd.pid
Type=forking
PIDFile=/run/lirc/lircd.pid
[Install]
WantedBy=multi-user.target
а с этим файлом ничего не работает:
systemctl start lirc.service
Failed to issue method call: Unit lirc.service failed to load: Invalid argument. See system logs and 'systemctl status lirc.service' for details.
systemctl status lirc.service
lirc.service - Linux Infrared Remote Control
          Loaded: loaded (/usr/lib/systemd/system/lirc.service; disabled)
          Active: failed (Result: exit-code) since Sun, 07 Oct 2012 17:46:23 +0400; 4s ago
         Process: 14918 ExecStart=/usr/sbin/lircd --pidfile=/run/lirc/lircd.pid (code=exited, status=1/FAILURE)
         Process: 14914 ExecStartPre=/usr/bin/ln -sf /run/lirc/lircd /dev/lircd (code=exited, status=0/SUCCESS)
          CGroup: name=systemd:/system/lirc.service
Oct 07 17:46:23 localhost lircd[14918]: lircd: can't open or create /run/lirc/lircd.pid
Oct 07 17:46:23 localhost lircd[14918]: lircd: No such file or directory
Oct 07 17:46:23 localhost systemd[1]: Failed to start Linux Infrared Remote Control.
Подскажите как и что исправить в lirc.service файле чтобы все заработало (возможно через .include или еще как)? Ведь если просто подменить файлы, то при следующем обновлении lirc'а все это затрется и придется делать снова.
PS: я конечно понимаю что раз все работает корректно с моим файлом, то зачем влезать в дебри, но ведь есть специальный файл из пакета, который за это должен отвечать, некошерно получается…
www.linux32.ru - новости и статьи о Linux
32reg
с именем lircd.service и положил его в /usr/lib/systemd/system
Во первых: где написано что туда нужно было ложить?
А во вторых: у меня свеже установленный lirc на pid файл не ругается! значит сервис работает как надо.
Нужно искать проблему почему can't open or create /run/lirc/lircd.pid, а не править сервис.
Псевдографический инсталлятор Arch Linux ver. 3.8.2
Благодарности принимаются на ЯД 410012815723874
ничего, Вам имхо надо udev systemd, бинарник… (или что там должно в run создать файл) настроить… Ваш первый юнит обладает очень многими “личными” чертами, хотя никто не запрещает его юзать, тут в принципе тоже самое, только создание файла в run берет на себя не сам юнит… Сказал бы больше , если б знал этот lirc.
Лозунг у них был такой: "Познание бесконечности требует бесконечного времени". С этим я не спорил, но они делали из этого неожиданный вывод: "А потому работай не работай — все едино". И в интересах неувеличения энтропии Вселенной они не работали. (с)
Втом то и дело что,
почему can't open or create /run/lirc/lircd.pid
?
Если я положу этот файл в /etc/systemd/system ничего не изменится.
nafanja, покажи пожалуйста вывод
lsmod | grep lirc
и конфиги лирка.
И у тебя в /etc/modules-load.d/ нигде явно не задана загрузка какого-нибудь lirc'овского модуля?
www.linux32.ru - новости и статьи о Linux
lsmod | grep lirc ничего не вывел
конфига пока нет, говорю же свеже установленный, установил и запустил, не конфигурировал.
systemctl status lirc.service
lirc.service - Linux Infrared Remote Control
          Loaded: loaded (/usr/lib/systemd/system/lirc.service; enabled)
          Active: active (running) since Sun, 07 Oct 2012 17:32:48 +0300; 17h ago
         Process: 487 ExecStart=/usr/sbin/lircd --pidfile=/run/lirc/lircd.pid (code=exited, status=0/SUCCESS)
         Process: 450 ExecStartPre=/usr/bin/ln -sf /run/lirc/lircd /dev/lircd (code=exited, status=0/SUCCESS)
        Main PID: 544 (lircd)
          CGroup: name=systemd:/system/lirc.service
                  └ 544 /usr/sbin/lircd --pidfile=/run/lirc/lircd.pid
Oct 07 17:32:46 b systemd[1]: Starting Linux Infrared Remote Control...
Oct 07 17:32:48 b lircd[487]: lircd: could not open config file '/etc/lirc/lircd.conf'
Oct 07 17:32:48 b lircd[487]: lircd: No such file or directory
Oct 07 17:32:48 b systemd[1]: Started Linux Infrared Remote Control. 
но как видно работает со старта

а покажи
ls /run/lirc/
Думаю у тебя эта папка не создается…
Псевдографический инсталлятор Arch Linux ver. 3.8.2
Благодарности принимаются на ЯД 410012815723874
Папка /run/lirc/ у меня создается. Попробовал удалить lirc и lirc-utils (через -Rdd) и заново поставить. Чудеса, но теперь стандартный lirc.service (из лирковского пакета, не мой самодельный) запускается нормально. Но это все равно не помогло… Лирк запускается, но не читает конфиги, которые ему заданы в /etc/conf.d/lircd.conf. Вообще никаких конфигов не читает, как будто только установленный и не настроенный (возможно это баг лирка…). Вычитал в интернетах что с какой-то там версии файлы настроек лирка перенесли в /etc/lirc, пробовал их переносить вручную (так как если их и перенесли, то заново установленный lirc их туда не перенес, а оставил в /etc/conf.d) - не помогло…
Единственный вариант (пока что) при котором лирк работает как надо только если запустить его вот такой командой:
ExecStart=/usr/sbin/lircd --device=/dev/input/by-path/pci-0000:04:06.0-event-ir --driver=devinput /etc/lirc/lircd.conf
Поэтому я опять пришел к тому, с чего начинал. Остановился пока что на самодельном lircd.service в котором лирк запускается этой строчкой, правда перенес его в /etc/systemd/system.

Вопрос: как в стандартном lirc.service заменить (именно заменить!) строку:
ExecStart=/usr/sbin/lircd --pidfile=/run/lirc/lircd.pid
на
ExecStart=/usr/sbin/lircd --device=/dev/input/by-path/pci-0000:04:06.0-event-ir --driver=devinput /etc/lirc/lircd.conf
?
www.linux32.ru - новости и статьи о Linux
покажи /etc/lirc/lircd.conf
Псевдографический инсталлятор Arch Linux ver. 3.8.2
Благодарности принимаются на ЯД 410012815723874
cat /etc/lirc/lircd.conf 
# Please make this file available to others
# by sending it to <[email protected]>;
#
# this config file was automatically generated
# using lirc-0.8.6(devinput) on Tue Oct 19 23:48:01 2010
#
# contributed by 
#
# brand:                       ~/lircd.conf
# model no. of remote control: 
# devices being controlled by this remote:
#
begin remote
  name  ~/lircd.conf
  bits           16
  eps            30
  aeps          100
  one             0     0
  zero            0     0
  pre_data_bits   16
  pre_data       0x8001
  gap          107818
  toggle_bit_mask 0x0
      begin codes
          BTN_0                    0x000B
          BTN_1                    0x0002
          BTN_2                    0x0003
          BTN_3                    0x0004
          BTN_4                    0x0005
          BTN_5                    0x0006
          BTN_6                    0x0007
          BTN_7                    0x0008
          BTN_8                    0x0009
          BTN_9                    0x000A
          KEY_TV                   0x0175
          KEY_VIDEO                0x0189
          KEY_AUDIO                0x0188
          KEY_POWER                0x0074
          KEY_AB                   0x0182
          KEY_SCREEN               0x0174
          KEY_CD                   0x0170
          KEY_MUTE                 0x0071
          KEY_VOLUMEUP             0x0073
          KEY_VOLUMEDOWN           0x0072
          KEY_CHANNELUP            0x0192
          KEY_CHANNELDOWN          0x0193
          KEY_ENTER                0x001C
          KEY_REFRESH              0x0081
      end codes
end remote

Покажи вывод ls /etc/conf.d и ls /etc/lirc
www.linux32.ru - новости и статьи о Linux
ls /etc/conf.d
./     apache     clamav    dnsmasq          iptables     lircd.conf  nfs              ntpd.conf       privoxy  selenium-server.conf  spamd      tftpd      wireless-regdom
../    bluetooth  cpupower  ftpd             irexec.conf  lm_sensors  nfs-common.conf  openntpd        proftpd  sensord               sshd       ulatencyd  ypbind
acpid  bonding    crond     git-daemon.conf  irqbalance   named       nfs-server.conf  openvpn-tapdev  rfkill   smartd                svnserve   usbipd
alsa   bridges    dhcpcd    gpm              kexec        netcfg      nisdomainname    postgresql      samba    snmpd                 syslog-ng  vboxweb
ls /etc/lirc
./  ../  lircd.conf@

сделал
ln -s /usr/share/lirc/remotes/avermedia/lircd.conf.avermedia /etc/lirc/lircd.conf
systemctl status lirc.service
lirc.service - Linux Infrared Remote Control
          Loaded: loaded (/usr/lib/systemd/system/lirc.service; enabled)
          Active: active (running) since Mon, 08 Oct 2012 20:19:08 +0300; 2min 5s ago
         Process: 5536 ExecStart=/usr/sbin/lircd --pidfile=/run/lirc/lircd.pid (code=exited, status=0/SUCCESS)
         Process: 5533 ExecStartPre=/usr/bin/ln -sf /run/lirc/lircd /dev/lircd (code=exited, status=0/SUCCESS)
        Main PID: 5537 (lircd)
          CGroup: name=systemd:/system/lirc.service
                  └ 5537 /usr/sbin/lircd --pidfile=/run/lirc/lircd.pid
Oct 08 20:19:08 b systemd[1]: Starting Linux Infrared Remote Control...
Oct 08 20:19:08 b systemd[1]: Started Linux Infrared Remote Control.

как видно уже без предупреждения что было выше. и пульт от авермедиа 202 работает
Псевдографический инсталлятор Arch Linux ver. 3.8.2
Благодарности принимаются на ЯД 410012815723874
У меня тюнер life-view 3000. Конфиг к нему я делал сам с помощью irrecord очень давно уже.
Покажи
cat /etc/conf.d/lircd.conf
www.linux32.ru - новости и статьи о Linux
 
Зарегистрироваться или войдите чтобы оставить сообщение.