Ayuda para migrar Lircd a Systemd [SOLUCIONADO]

Todo lo relacionado con los entornos de escritorio, todas las aplicaciones, tanto KDE, Gnome y otros. Si tenes un problema con un programa, muy probablemente este sea el foro indicado.
Avatar de Usuario
Arch2Rafa
Archer Extremo
Archer Extremo
Mensajes: 400
Registrado: 24 Feb 2012, 17:16

Ayuda para migrar Lircd a Systemd [SOLUCIONADO]

Mensaje por Arch2Rafa » 29 Oct 2012, 16:51

Saludos.

Estoy intentando migrar a Systemd pero Lircd se me resiste.

He seguido las indicaciones de la Wiki:

https://wiki.archlinux.org/index.php?ti ... 5468#lircd

Y he creado el archivo "/etc/systemd/system/lircd.service" con el siguiente contenido:

Código: Seleccionar todo

[Unit]
Description=LIRC Daemon
After=network.target

[Service]
Type=forking
EnvironmentFile=/etc/conf.d/lircd.conf
PIDFile=/run/lirc/lircd.pid
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 -d $LIRC_DEVICE -P /run/lirc/lircd.pid -H $LIRC_DRIVER $LIRC_CONFIGFILE
ExecStopPost=/bin/rm -f /dev/lircd
ExecStopPost=/bin/rm -fR /run/lirc

[Install]
WantedBy=multi-user.target
Realmente no sé que hace este script pero al ejecutar "sudo systemctl enable lircd.service" todo aparenta ir bien pero la verdad es que al reiniciar da error.

La pantalla de inicio va demasiado rápido para poder anotar el error pero al ejecutar "sudo systemctl status lircd.service" me muestra lo siguiente:

Código: Seleccionar todo

lircd.service - LIRC Daemon
	  Loaded: loaded (/etc/systemd/system/lircd.service; enabled)
	  Active: failed (Result: exit-code) since Mon, 2012-10-29 20:02:00 CET; 42min ago
	 Process: 276 ExecStart=/usr/sbin/lircd -d $LIRC_DEVICE -P /run/lirc/lircd.pid -H $LIRC_DRIVER $LIRC_CONFIGFILE (code=exited, status=1/FAILURE)
	 Process: 273 ExecStartPre=/bin/ln -s /run/lirc/lircd /dev/lircd (code=exited, status=0/SUCCESS)
	 Process: 270 ExecStartPre=/bin/rm -f /run/lirc/lircd (code=exited, status=0/SUCCESS)
	 Process: 267 ExecStartPre=/bin/rm -f /dev/lircd (code=exited, status=0/SUCCESS)
	 Process: 264 ExecStartPre=/bin/mkdir -p /run/lirc (code=exited, status=0/SUCCESS)
	  CGroup: name=systemd:/system/lircd.service

Oct 29 20:02:00 moeris systemd[1]: Starting LIRC Daemon...
Oct 29 20:02:00 moeris systemd[1]: Failed to start LIRC Daemon.
Oct 29 20:02:00 moeris systemd[1]: Unit lircd.service entered failed state
Oct 29 20:02:03 moeris lircd[276]: /usr/sbin/lircd: option requires an argument -- 'H'
Oct 29 20:02:03 moeris lircd[276]: Usage: lircd [options] [config-file]
No entiendo nada de lo que se muestra. ¿Alguna idea de cómo solucionar esto?

Gracias de antemano.
Última edición por Arch2Rafa el 31 Oct 2012, 14:21, editado 1 vez en total.

Fgvolonterio
Archer
Archer
Mensajes: 38
Registrado: 01 Oct 2012, 18:43
Contactar:

Re: Ayuda para migrar Lircd a Systemd

Mensaje por Fgvolonterio » 29 Oct 2012, 19:26

Proba iniciandolo como root ("sudo su" y "despues systemctl enable lircd.service && systemctl start lircd.service"). Sin las comillas obviamente.
Quizas https://wiki.archlinux.org/index.php/LIRC pueda ayudarte un poco mas.

Saludos
Desktop enviroment: xfce 4.10 + conky.
http://guias-gnu-linux.foro-gratis.net/

Avatar de Usuario
cargoan
Archer Confiable
Archer Confiable
Mensajes: 605
Registrado: 13 Mar 2011, 04:39

Re: Ayuda para migrar Lircd a Systemd

Mensaje por cargoan » 30 Oct 2012, 06:47

Yo lo inicio con este servicio:

Código: Seleccionar todo

$ cat /etc/systemd/system/lircd.service 
[Unit]
Description=LIRC Daemon

[Service]
Type=forking
EnvironmentFile=/etc/conf.d/lircd.conf
ExecStart=/usr/sbin/lircd -d $LIRC_DEVICE -P /run/lirc/lircd.pid
#ExecStartPost=/bin/sh -c "echo 'lirc' > /sys/class/rc/rc0/protocols"
ExecStartPost=/usr/bin/ir-keytable --protocol=LIRC

[Install]
WantedBy=multi-user.target
«La simplicidad es la máxima sofisticación» (Leonardo da Vinci)

Avatar de Usuario
Arch2Rafa
Archer Extremo
Archer Extremo
Mensajes: 400
Registrado: 24 Feb 2012, 17:16

Re: Ayuda para migrar Lircd a Systemd

Mensaje por Arch2Rafa » 30 Oct 2012, 12:06

cargoan escribió:Yo lo inicio con este servicio...

Buenas Cargoan.

Puse lo que me indicaste y casi.

Verás, en el inicio no aparece error alguno y si ejecuto sudo systemctl status lircd.service obtengo:

Código: Seleccionar todo

lircd.service - LIRC Daemon
	  Loaded: loaded (/etc/systemd/system/lircd.service; enabled)
	  Active: active (running) since Tue, 2012-10-30 15:58:39 CET; 3min 28s ago
	 Process: 255 ExecStartPost=/usr/bin/ir-keytable --protocol=LIRC (code=exited, status=0/SUCCESS)
	 Process: 249 ExecStart=/usr/sbin/lircd -d $LIRC_DEVICE -P /run/lirc/lircd.pid (code=exited, status=0/SUCCESS)
	Main PID: 254 (lircd)
	  CGroup: name=systemd:/system/lircd.service
		  └ 254 /usr/sbin/lircd -d /dev/lirc0 -P /run/lirc/lircd.pid

Oct 30 15:58:45 moeris ir-keytable[255]: Protocols changed to LIRC
O sea, no hay ningún error y aparentemente todo bien pero me temo que el mando no responde.

¿Que puede ser?

Avatar de Usuario
cargoan
Archer Confiable
Archer Confiable
Mensajes: 605
Registrado: 13 Mar 2011, 04:39

Re: Ayuda para migrar Lircd a Systemd

Mensaje por cargoan » 30 Oct 2012, 12:50

Pues no sé, a mí me funciona perfectamente.
El archivo /etc/lirc/lircd.conf ¿es el correcto?.
¿Cómo tienes el /etc/conf.d/lircd.conf? Este es el mío:

Código: Seleccionar todo

$ cat /etc/conf.d/lircd.conf 
#
# Parameters for lirc daemon
#

LIRC_DEVICE="/dev/lirc0"
LIRC_DRIVER=""
LIRC_EXTRAOPTS=""
LIRC_CONFIGFILE=""

¿Has probado con irw? A ver si te reconoce algún botón.
«La simplicidad es la máxima sofisticación» (Leonardo da Vinci)

Avatar de Usuario
Arch2Rafa
Archer Extremo
Archer Extremo
Mensajes: 400
Registrado: 24 Feb 2012, 17:16

Re: Ayuda para migrar Lircd a Systemd

Mensaje por Arch2Rafa » 30 Oct 2012, 13:48

Me he dado cuenta ahora mismo que el mando si que funciona.

Es con XBCM cuando no lo hace, sin embargo si habilito lircd en el rc.conf, el mando funciona con esta aplicación sin más.

El archivo /etc/conf.d/lircd.conf lo tengo igual que tu, irw me reconoce los botones (Usando systemd) incluso accediendo por terminal remoto :shock:

Es algo del XBMC lo que está fallando.

¿Hay que cambiar algo en la configuración de este programa?

¿O a caso hay que configurar el lircd.service de alguna forma especial?

Avatar de Usuario
cargoan
Archer Confiable
Archer Confiable
Mensajes: 605
Registrado: 13 Mar 2011, 04:39

Re: Ayuda para migrar Lircd a Systemd

Mensaje por cargoan » 30 Oct 2012, 14:58

XBMC no utiliza el protocolo lirc, utiliza rc-6 que es el que utiliza el kernel por defecto. Añadelo a la línea ExecStartPost=/usr/bin/ir-keytable --protocol=lirc --protocol=rc-6.
«La simplicidad es la máxima sofisticación» (Leonardo da Vinci)

Avatar de Usuario
Arch2Rafa
Archer Extremo
Archer Extremo
Mensajes: 400
Registrado: 24 Feb 2012, 17:16

Re: Ayuda para migrar Lircd a Systemd

Mensaje por Arch2Rafa » 30 Oct 2012, 16:32

Añadí lo que me comentaste y quedó de la siguiente forma:

Código: Seleccionar todo

# cat /etc/systemd/system/lircd.service

[Unit]
Description=LIRC Daemon

[Service]
Type=forking
EnvironmentFile=/etc/conf.d/lircd.conf
ExecStart=/usr/sbin/lircd -d $LIRC_DEVICE -P /run/lirc/lircd.pid
#ExecStartPost=/bin/sh -c "echo 'lirc' > /sys/class/rc/rc0/protocols"
ExecStartPost=/usr/bin/ir-keytable --protocol=LIRC --protocol=rc-6

[Install]
WantedBy=multi-user.target
A pesar de no dar ningún problema en el arranque del sistema me temo que XBMC sigue sin funcionar.

Lo mismo hice algo mal, ojalá sea eso. :|

Avatar de Usuario
cargoan
Archer Confiable
Archer Confiable
Mensajes: 605
Registrado: 13 Mar 2011, 04:39

Re: Ayuda para migrar Lircd a Systemd

Mensaje por cargoan » 30 Oct 2012, 17:44

Tienes el nombre del mando correcto en Lircmap.xml?
http://wiki.xbmc.org/?title=HOW-TO_setu ... s_commands
«La simplicidad es la máxima sofisticación» (Leonardo da Vinci)

Avatar de Usuario
Arch2Rafa
Archer Extremo
Archer Extremo
Mensajes: 400
Registrado: 24 Feb 2012, 17:16

Re: Ayuda para migrar Lircd a Systemd

Mensaje por Arch2Rafa » 30 Oct 2012, 20:40

Si, el archivo ~/.xbmc/userdata/Lircmap.xml tiene el "remote device" según lo mostrado en /etc/lirc/lircd.conf

He estado mirando los logs de pacman por otros motivos y me he encontrado con esto, lo mismo guarda relación:

Código: Seleccionar todo

[2012-10-29 20:10] useradd: el grupo xbmc existe - si quiere añadir este usuario a ese grupo, use -g.
[2012-10-29 20:10] usermod: el usuario «xbmc» no existe
[2012-10-29 20:10] upgraded xbmc (11.0-9 -> 11.0-11)
Es como si la nueva versión necesitase añadir el grupo XBMC a mi cuenta de usuario pero al ejecutar:

sudo gpasswd -a sobek xmbc

Donde "sobek" es mi nombre de usuario, me da el siguiente error:

Código: Seleccionar todo

gpasswd: el grupo «xmbc» no existe en /etc/group
Ya seguiré investigando mañana...

Avatar de Usuario
cargoan
Archer Confiable
Archer Confiable
Mensajes: 605
Registrado: 13 Mar 2011, 04:39

Re: Ayuda para migrar Lircd a Systemd

Mensaje por cargoan » 31 Oct 2012, 07:23

Hace tiempo que no utilizaba xbmc, solamente lo instalé para configurar y probar el mando y acabé desinstalándolo.
Ayer lo instalé y al probarlo me dí cuenta de que no funcionaba del todo bien, cuando antes funcionaba perfectamente con lirc. Al final he podido hacer que funcione lirc con xbmc en systemd.
Se necesita un enlace al socket en /dev y además poner el driver lirc explícitamente, default en mi caso (mceusb), en la variable LIRC_DRIVER de /etc/conf.d/lircd.conf. http://www.lirc.org/html/table.html
Sin eso, en xbmc solo me funcionan algunos botones... y cuando quieren, aunque con otros programas todo va bien.
Al final estos son los archivos modificados:

Código: Seleccionar todo

$  cat /etc/conf.d/lircd.conf 
#
# Parameters for lirc daemon
#

LIRC_DEVICE="/dev/lirc0"
LIRC_DRIVER="default"
LIRC_EXTRAOPTS=""
LIRC_CONFIGFILE=""

$ cat /etc/systemd/system/lircd.service 
[Unit]
Description=LIRC Daemon
After=systemd-user-sessions.service

[Service]
Type=forking
EnvironmentFile=/etc/conf.d/lircd.conf
ExecStartPre=/bin/ln -s /run/lirc/lircd /dev/lircd
ExecStart=/usr/sbin/lircd -d $LIRC_DEVICE 
ExecStartPost=/usr/bin/ir-keytable --protocol=LIRC
ExecStopPost=/bin/rm -f /dev/lircd

[Install]
WantedBy=multi-user.target
Ahora parece que todo anda bien y ya puedo controlar totalmente xbmc con mi mando.
«La simplicidad es la máxima sofisticación» (Leonardo da Vinci)

Avatar de Usuario
Arch2Rafa
Archer Extremo
Archer Extremo
Mensajes: 400
Registrado: 24 Feb 2012, 17:16

Re: Ayuda para migrar Lircd a Systemd

Mensaje por Arch2Rafa » 31 Oct 2012, 12:00

Amigo, me he perdido.

¿Cómo es eso del enlace al socket en /dev?

No sé que he de hacer exáctamente.

Avatar de Usuario
cargoan
Archer Confiable
Archer Confiable
Mensajes: 605
Registrado: 13 Mar 2011, 04:39

Re: Ayuda para migrar Lircd a Systemd

Mensaje por cargoan » 31 Oct 2012, 12:09

Código: Seleccionar todo

...
ExecStartPre=/bin/ln -s /run/lirc/lircd /dev/lircd
...
ExecStopPost=/bin/rm -f /dev/lircd
...
«La simplicidad es la máxima sofisticación» (Leonardo da Vinci)

Avatar de Usuario
Arch2Rafa
Archer Extremo
Archer Extremo
Mensajes: 400
Registrado: 24 Feb 2012, 17:16

Re: Ayuda para migrar Lircd a Systemd

Mensaje por Arch2Rafa » 31 Oct 2012, 13:38

Ok.

Pero ¿No hay que poner --protocol=rc-6 en la línea aquella que me comentaste anteriormente???

archoso
Novato
Mensajes: 11
Registrado: 06 Sep 2012, 18:20

Re: Ayuda para migrar Lircd a Systemd

Mensaje por archoso » 31 Oct 2012, 14:05

Hola para no abrir un hilo nuevo yo estoy igual el mando me funciona como un teclado a medias, he creado el nuevo archivo como el que recomienda la wiki y al hacer status me da este error

Código: Seleccionar todo

systemctl status lircd.service
lircd.service - LIRC Daemon
          Loaded: loaded (/etc/systemd/system/lircd.service; enabled)
          Active: failed (Result: exit-code) since Wed, 2012-10-31 17:53:07 CET; 7min ago
         Process: 1203 ExecStart=/usr/sbin/lircd -d $LIRC_DEVICE -P /run/lirc/lircd.pid (code=exited, status=1/FAILURE)
          CGroup: name=systemd:/system/lircd.service

Oct 31 17:53:07 npe systemd[1]: Starting LIRC Daemon...
Oct 31 17:53:07 npe lircd[1203]: lircd: there seems to already be a lircd process with pid 400
Oct 31 17:53:07 npe lircd[1203]: lircd: otherwise delete stale lockfile /run/lirc/lircd.pid
Oct 31 17:53:07 npe systemd[1]: Failed to start LIRC Daemon.
Oct 31 17:53:07 npe systemd[1]: Unit lircd.service entered failed state

Warning: Unit file changed on disk, 'systemctl --system daemon-reload' recommended


Como lo puedo solucionar?

Responder