[systemd-devel] udev/command/module/service

Zbigniew Jędrzejewski-Szmek zbyszek at in.waw.pl
Sun Sep 2 07:04:44 PDT 2012


On Sun, Sep 02, 2012 at 05:47:32PM +0400, Вечный Студент wrote:
> The aim is to use LIRC with lirc_serial module. To get it these operations must take place in a given order:
> 
> - udev must name a serial port
> - serial port must be freed from (built in) kernel serial driver with command 'setserial /dev/ttyS0 uart none'
> - lirc_serial driver must be loaded
> - lircd service must be started
> 
> I have tried to add 'setserial ...' command into udev rule (RUN+=), add lirc_serial module to /etc/modules-load and enable lircd service - all these under systemd - but needed sequence of operation takes place randomly only. Currently I use custom script which I start manually after booting (and, of course, it does work always):
> 
> ~ $ cat `which mylirc.sh`
> #!/bin/bash
> 
> /usr/bin/systemctl stop lircd.service
> /usr/bin/rmmod lirc_serial
> /usr/bin/setserial /dev/ttyS0 uart none
> /sbin/modprobe lirc_serial
> /usr/bin/systemctl start lircd.service
Why don't you add
  ExecStartPre=/usr/bin/setserial /dev/ttyS0 uart none
  ExecStartPre=/sbin/modprobe lirc_serial
in lircd.service?

Zbyszek


More information about the systemd-devel mailing list