LIRC missing irman driver

LIRC as installed via zypper would appear to be missing the one driver that I need: irman. Is there any way around this (an alternate package maybe) that I can use other than compiling it myself?

I compiled and installed libirman 0.4.5, but that did not change the output of the following:

$ irrecord -n -H irman -d /dev/ttyACM0 Remote001.conf
Driver `irman' not supported.
Supported drivers:
        accent
        alsa_usb
        asusdh
        atilibusb
        atwf83
        audio_alsa
        awlibusb
        bte
        bw6130
        commandir
        creative
        creative_infracd
        default
        devinput
        dfclibusb
        dsp
        dvico
        ea65
        i2cuser
        irlink
        livedrive_midi
        livedrive_seq
        logitech
        macmini
        mp3anywhere
        mplay
        mplay2
        mouseremote
        mouseremote_ps2
        null
        pcmak
        pinsys
        pixelview
        samsung
        sb0540
        silitek
        srm7500libusb
        tira
        tira_raw
        udp
        uirt2
        uirt2_raw
        usb_uirt_raw
        usbx

OpenSUSE 13.2 i586
Kernel 3.16.7-21-desktop
LIRC 0.9.0-11.1.3 installed via the Main Repository (OSS)

Further research tells me that libirman must be installed when compiling LIRC in order for it to add the irman driver. I can see why this didn’t happen since libirman isn’t even a package. Would it be possible that the next version of LIRC in the main repo could be compiled with libirman too? It’s available here: https://sourceforge.net/projects/lirc/files/libirman/.

Well, as libirman is not included in the distribution, it’s not possible to add this with an update I suppose.
But it should be possible to include it in the next openSUSE release, if somebody is willing to create a package and submit it to Factory.

You probably should file a bug report about this.
http://bugzilla.opensuse.org/ (same username/password as here).

In any case, it would definitely be possible to build a lirc package with irman support on OBS.
I will give it a try.

The packages are available here:
http://download.opensuse.org/repositories/home:/wolfi323:/irman/openSUSE_13.2/

To simplify the installation, add this as repo in YaST->Software Repositories and do a full switch to it or run:

sudo zypper ar -f http://download.opensuse.org/repositories/home:/wolfi323:/irman/openSUSE_13.2/ irman
sudo zypper dup --from irman

(the repo only contains libirman and a lirc built against it)

Why not an update? If they add the libirman package then the next version of LIRC could have irman in it.

Should I file it under 13.2 or Factory?

Thank you very much. I’ve been trying to get this to work now for several days.

Updates normally only provide bug and security fixes.
No new packages.

OTOH, libirman is quite old, the last release was in 2009.
There might be a reason why it’s not included.
Although apparently it never was in openSUSE at all AFAICS.

Should I file it under 13.2 or Factory?

Doesn’t matter I suppose.
As you are using 13.2 I think that’s the better choice, but as explained I wouldn’t really expect it to be fixed in 13.2…

Thank you very much. I’ve been trying to get this to work now for several days.

You’re welcome.
So it works?

Well now I think I have a non-LIRC problem:

$ irrecord -n -H irman -d /dev/ttyACM0 Remote003.conf

irrecord -  application for recording IR-codes for usage with lirc

Copyright (C) 1998,1999 Christoph Bartelmus(lirc@bartelmus.de)

irrecord: could not create lock file "/var/lock/LCK..ttyACM0"
irrecord: Permission denied
irrecord: could not create lock files
irrecord: could not init hardware (lircd running ? --> close it, check permissions)

Am I suposed to be able to create lock files as non-root? And as root:

# irrecord -n -H irman -d /dev/ttyACM0 Remote003.conf

irrecord -  application for recording IR-codes for usage with lirc

Copyright (C) 1998,1999 Christoph Bartelmus(lirc@bartelmus.de)
---It hangs here for a while---
irrecord: could not open /dev/ttyACM0
irrecord: irman_init(): Connection timed out
irrecord: WARNING: invalid lockfile (/var/lock/asound.state.lock) detected
irrecord: could not init hardware (lircd running ? --> close it, check permissions)

It leaves a lock file behind afterwards that I have to delete. I’m pretty darn sure that LIRC isn’t running and my device is connected (it appears in /dev), so I don’t know what’s going on.

I just tried, and as root I can open it up in screen and it prints everything properly. This might be more of a problem with my device.

That lock file is from ALSA, not LIRC.
But it doesn’t seem to be the problem.

Looks like a permission problem then.

Apparently your user cannot access /dev/ttyACM0.
This should “fix” it, but will not survive a reboot:

sudo chmod a+rw /dev/ttyACM0

Hmm. That still didn’t help. It still needs root. I just experimented and the usbx driver seems to work somewhat. It properly records commands, but I once I start LIRC with its generated config file, I get no output from irw. I’ve tried using both the service and the I should be using irman, but usbx seems to be yielding better results. Here’s the config it generated and I moved to /etc/lirc/lircd.conf:

# Please make this file available to others
# by sending it to <lirc@bartelmus.de>
#
# this config file was automatically generated
# using lirc-0.9.0(usbx) on Wed Aug  5 14:44:14 2015
#
# contributed by
#
# brand:                       lircd.conf
# model no. of remote control:
# devices being controlled by this remote:
#

begin remote

  name  lircd.conf
  bits           48
  eps            30
  aeps          100

  one             0     0
  zero            0     0
  gap          215959
  toggle_bit_mask 0x0

      begin codes
          KEY_0                    0x666536383936 0x000066666666
          KEY_1                    0x666535306166 0x000066666666
          KEY_2                    0x666539303666 0x000066666666
          KEY_3                    0x666531306566 0x000066666666
          KEY_4                    0x666537303866 0x000066666666
          KEY_5                    0x666562303466 0x000066666666
          KEY_6                    0x666533306366 0x000066666666
          KEY_7                    0x666534386236 0x000066666666
          KEY_8                    0x666538383736 0x000066666666
          KEY_9                    0x666530386636 0x000066666666
          KEY_BACKSPACE            0x666538303766 0x000066666666
          KEY_ENTER                0x666538323764 0x000066666666
          KEY_UP                   0x666562383436 0x000066666666
          KEY_DOWN                 0x666537613834 0x000066666666
          KEY_LEFT                 0x666537383836 0x000066666666
          KEY_RIGHT                0x666533386336 0x000066666666
          KEY_OK                   0x666535616134 0x000066666666
          KEY_STOP                 0x666565303166 0x000066666666
          KEY_BACK                 0x666531616534 0x000066666666
          KEY_PREVIOUS             0x666533326364 0x000066666666
          KEY_NEXT                 0x666562323464 0x000066666666
          KEY_PLAY                 0x666561323564 0x000066666666
          KEY_RECORD               0x666532306466 0x000066666666
          KEY_REWIND               0x666531326564 0x000066666666
          KEY_FORWARD              0x666539323664 0x000066666666
          KEY_PAUSE                0x666532326464 0x000066666666
          KEY_MENU                 0x666534326264 0x000066666666
          KEY_MODE                 0x666539613634 0x000066666666
          KEY_EXIT                 0x666539613634 0x000066666666
          KEY_POWER                0x666534306266 0x000066666666
          KEY_EJECT                0x666530306666 0x000066666666
          KEY_BLUE                 0x666563303366 0x000066666666
          KEY_INFO                 0x666531386536 0x000066666666
          KEY_SUBTITLE             0x666536303966 0x000066666666
          KEY_GREEN                0x666561303566 0x000066666666
          KEY_RED                  0x666532386436 0x000066666666
          KEY_YELLOW               0x666535386136 0x000066666666
          KEY_ESC                  0x666539383636 0x000066666666
          KEY_NUMERIC_STAR         0x666561383536 0x000066666666
          KEY_PAGEUP               0x666564303266 0x000066666666
          KEY_PAGEDOWN             0x666566303066 0x000066666666
          KEY_CHANNELUP            0x666530326664 0x000066666666
          KEY_CHANNELDOWN          0x666561613534 0x000066666666
      end codes

end remote

Before you ask, no, all these commands aren’t actually on my remote (they have differnt names), but LIRC and my Harmony Remote don’t need to know that. :wink:

Also, here is the output of /etc/sysconfig/lirc:

## Path:           Hardware/Lirc
## Description:    lirc (infrared remote control) configuration
## Type:           string
## Default:        "660"
## ServiceRestart: lirc
#
# permissions for /dev/lircd
#
LIRCD_DEV_PERMISSIONS="660"

## Type:        string
## Default:     "root:video"
#
# owner and group for /dev/lircd
#
LIRCD_DEV_OWNER="root:video"

## Type:        string
## Default:     ""
#
# use given driver
#
LIRCD_DRIVER="usbx"

## Type:        string
## Default:     ""
#
# read from given device
#
LIRCD_DEVICE="/dev/ttyACM0"

## Type:        string(lirc_bt829,lirc_gpio,lirc_i2c,lirc_it87,lirc_parallel,lirc_sir,ir-kbd-i2c,ir-kbd-gpio)
## Default:     ""
#
# load given lirc driver module
#
LIRC_MODULE=

## Type:        string
## Default:     ""
#
# listen for network connections on specified port.
# WARNING: don't use this on a machine with an internet
# connection as lircd is running as root!
#
LIRCD_LISTENPORT=

## Type:        string
## Default:     ""
#
# connect lircd to specified host
#
LIRCD_CONNECT=

Do I need to supply something in the module setting?

Sort of fantastic news! I got irman to work (sort of)! My device need a firmware update. Apparently irman sends out “IR” at the start and the device must then write “OK” in response. As before, I can irrecord (now with irrecord), but neither the service nor starting lirc manually works. I still can’t get irw to work! It connects to the socket and all, but nothing is echoed out when I press buttons. It’s the same problem that I had with usbx. I think that it may be a problem with that special version of lirc.