You are not logged in.

#1 2011-03-04 22:36:32

Padfoot
Member
Registered: 2010-09-03
Posts: 381

[SOLVED] - LIRC and pci tv card remote problems

Hi,

I have an AVerMedia TV Hybrid A16AR pci tv card with remote control which I am having difficulty configuring under Arch.

I have an old PC I am using as a media server running XBMC. Previously I had Ubuntu on this box, but  I have chosen to move away from the *buntus and seeing as my main box is Arch....

Anyway, under Ubuntu the remote worked flawlessly. The only config I had to do was add a module option for saa7134 to select the correct card type (99), a udev rule to create a static device node (the remote uses "devinput" so the device node can change when other devices are added/removed), and drop in my lirc hardware.conf and lircd.conf (previously created using irrecord).

Now, under Arch, I can not get the remote to work correctly. The pci card is recognised and loaded correctly, the udev rule is actioned correctly, the lirc daemon starts correctly and the hardware.conf file appears to be recognised as I can use irrecord to successfully create an lircd.conf file.

The problem is the remote (testing with irw) appears to be acting as a keyboard. No IR codes set in my lircd.conf are issued. The number buttons will output the corresponding number to the console and the other buttons either output nothing or what appears to be "special key" codes (for example if you press ESC in the console).

Following are copies of my config files along with any differences I have noticed between the Arch and Ubuntu versions.

All help greatly appreciated - it feels like just the tiniest thing I am missing!

Output of dmesg (Arch):

saa7130/34: v4l2 driver version 0.2.16 loaded
saa7134 0000:01:05.0: PCI INT A -> GSI 17 (level, low) -> IRQ 17
saa7133[0]: found at 0000:01:05.0, rev: 209, irq: 17, latency: 64, mmio: 0xfe9ed800
saa7133[0]: subsystem: 1461:2c00, board: AVerMedia TV Hybrid A16AR [card=99,insmod option]
saa7133[0]: board init: gpio is 21000
input: saa7134 IR (AVerMedia TV Hybrid as /devices/pci0000:00/0000:00:1e.0/0000:01:05.0/rc/rc0/input6
rc0: saa7134 IR (AVerMedia TV Hybrid as /devices/pci0000:00/0000:00:1e.0/0000:01:05.0/rc/rc0
saa7133[0]: i2c eeprom 00: 61 14 00 2c 00 00 00 00 00 00 00 00 00 00 00 00
saa7133[0]: i2c eeprom 10: 00 ff 82 0e ff 20 ff ff ff ff ff ff ff ff ff ff
saa7133[0]: i2c eeprom 20: 01 40 01 02 02 03 03 01 08 ff 00 a3 ff ff ff ff
saa7133[0]: i2c eeprom 30: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
saa7133[0]: i2c eeprom 40: ff 32 00 c0 86 1e ff ff ff ff ff ff ff ff ff ff
saa7133[0]: i2c eeprom 50: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
saa7133[0]: i2c eeprom 60: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
saa7133[0]: i2c eeprom 70: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
saa7133[0]: i2c eeprom 80: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
saa7133[0]: i2c eeprom 90: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
saa7133[0]: i2c eeprom a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
saa7133[0]: i2c eeprom b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
saa7133[0]: i2c eeprom c0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
saa7133[0]: i2c eeprom d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
saa7133[0]: i2c eeprom e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
saa7133[0]: i2c eeprom f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
tuner 15-0060: chip found @ 0xc0 (saa7133[0])
tuner 15-0043: chip found @ 0x86 (saa7133[0])
saa7133[0]: registered device video0 [v4l2]
saa7133[0]: registered device vbi0
saa7133[0]: registered device radio0
DVB: registering new adapter (saa7133[0])
saa7134 ALSA driver for DMA sound loaded
saa7133[0]/alsa: saa7133[0] at 0xfe9ed800 irq 17 registered as card -1

Kernel modules (Arch): (I'm thinking this may be the area of issue as on Ubuntu I loaded lirc_dev and lirc_i2c, on Arch I cannot load lirc_i2c but instead, an avermedia module has appeared)

Module                  Size  Used by
md5                     3491  2 
hmac                    2301  1 
nls_utf8                 992  1 
cifs                  238753  2 
fscache                35931  1 cifs
ext2                   55631  1 
saa7134_alsa            9255  0 
tuner_simple           12293  1 
tuner_types             7973  1 tuner_simple
mt352                   5061  1 
saa7134_dvb            19869  0 
videobuf_dvb            3938  1 saa7134_dvb
dvb_core               75727  1 videobuf_dvb
tda9887                 8158  1 
tda8290                11721  0 
tea5767                 5293  1 
tuner                  18916  2 
joydev                  7727  0 
rc_avermedia             906  0 
saa7134               138267  2 saa7134_alsa,saa7134_dvb
ir_lirc_codec           3559  0 
b44                    25117  0 
usbhid                 32307  0 
lirc_dev                9879  1 ir_lirc_codec
hid                    62031  1 usbhid
v4l2_common             5844  2 tuner,saa7134
ir_sony_decoder         1831  0 
snd_seq_dummy           1119  0 
snd_seq_oss            25232  0 
snd_seq_midi_event      4568  1 snd_seq_oss
ir_jvc_decoder          1925  0 
videodev               57747  3 tuner,saa7134,v4l2_common
ssb                    38732  1 b44
i915                  361648  0 
mmc_core               55250  1 ssb
snd_intel8x0           22270  0 
ir_rc6_decoder          2341  0 
v4l1_compat            13986  1 videodev
snd_seq                41912  5 snd_seq_dummy,snd_seq_oss,snd_seq_midi_event
snd_seq_device          4409  3 snd_seq_dummy,snd_seq_oss,snd_seq
snd_pcm_oss            33950  0 
pcmcia                 32682  1 ssb
ir_rc5_decoder          1829  0 
videobuf_dma_sg         7224  3 saa7134_alsa,saa7134_dvb,saa7134
snd_mixer_oss          15366  1 snd_pcm_oss
drm_kms_helper         23703  1 i915
snd_ac97_codec         88079  1 snd_intel8x0
drm                   141488  2 i915,drm_kms_helper
ac97_bus                 770  1 snd_ac97_codec
snd_pcm                59496  4 saa7134_alsa,snd_intel8x0,snd_pcm_oss,snd_ac97_codec
snd_timer              15687  2 snd_seq,snd_pcm
videobuf_core          13399  3 videobuf_dvb,saa7134,videobuf_dma_sg
ir_nec_decoder          2117  0 
ir_common               3506  1 saa7134
ir_core                12818  10 rc_avermedia,ir_lirc_codec,saa7134,ir_sony_decoder,ir_jvc_decoder,ir_rc6_decoder,ir_rc5_decoder,ir_nec_decoder,ir_common
uhci_hcd               19163  0 
pcmcia_core             9753  1 pcmcia
mii                     3206  1 b44
tveeprom               10577  1 saa7134
ehci_hcd               34490  0 
snd                    43987  10 saa7134_alsa,snd_seq_oss,snd_intel8x0,snd_seq,snd_seq_device,snd_pcm_oss,snd_mixer_oss,snd_ac97_codec,snd_pcm,snd_timer
ppdev                   4806  0 
evdev                   7179  0 
i2c_algo_bit            4191  1 i915
usbcore               116984  4 usbhid,uhci_hcd,ehci_hcd
parport_pc             27992  1 
shpchp                 23205  0 
intel_agp               8840  1 i915
intel_gtt              11863  3 i915,intel_agp
soundcore               4961  1 snd
processor              22529  0 
lp                      6652  0 
floppy                 48489  0 
video                  10367  1 i915
i2c_i801                6954  0 
sg                     21196  0 
psmouse                50354  0 
button                  3882  1 i915
iTCO_wdt                8877  0 
pci_hotplug            21691  1 shpchp
pcspkr                  1367  0 
parport                25787  3 ppdev,lp,parport_pc
output                  1456  1 video
serio_raw               3638  0 
dcdbas                  4300  0 
snd_page_alloc          6021  2 snd_intel8x0,snd_pcm
agpgart                22880  3 drm,intel_agp,intel_gtt
iTCO_vendor_support     1441  1 iTCO_wdt
i2c_core               16029  16 tuner_simple,mt352,saa7134_dvb,tda9887,tda8290,tea5767,tuner,saa7134,v4l2_common,videodev,i915,drm_kms_helper,drm,tveeprom,i2c_algo_bit,i2c_i801
ext4                  306640  3 
mbcache                 4338  2 ext2,ext4
jbd2                   59140  1 ext4
crc16                   1061  1 ext4
sr_mod                 13569  0 
sd_mod                 25488  7 
cdrom                  31666  1 sr_mod
ata_piix               18266  5 
pata_acpi               2348  0 
libata                151324  2 ata_piix,pata_acpi
scsi_mod              107414  4 sg,sr_mod,sd_mod,libata

Output of cat /proc/bus/input/devices (Arch):

I: Bus=0001 Vendor=1461 Product=2c00 Version=0001
N: Name="saa7134 IR (AVerMedia TV Hybrid"
P: Phys=pci-0000:01:05.0/ir0
S: Sysfs=/devices/pci0000:00/0000:00:1e.0/0000:01:05.0/rc/rc0/input6
U: Uniq=
H: Handlers=kbd event6 
B: EV=100013
B: KEY=fc310 82140000 0 0 0 0 2148000 180 4001 9e0000 0 0 ffc
B: MSC=10

udev rule (Arch & Ubuntu) /etc/udev/rules.d/10-local.rules : the device node /dev/lirc is created correctly

KERNEL=="event*",SYSFS{vendor}=="0x1131",SYMLINK="lirc"

/etc/conf.d/lircd.conf (Arch):

#
# Parameters for lirc daemon
#

LIRC_DEVICE="/dev/lirc"
LIRC_DRIVER="devinput"
LIRC_EXTRAOPTS=""
LIRC_CONFIGFILE="/etc/lirc/lircd.conf"

/etc/lirc/hardware.conf (Arch): see only lirc_dev module here, can not include lirc_i2c as in Ubuntu as it no longer seems to exist

REMOTE="custom"
REMOTE_MODULES="lirc_dev"
REMOTE_DRIVER="devinput"
REMOTE_DEVICE="/dev/lirc"
REMOTE_LIRCD_CONF="/etc/lirc/lircd.conf"
REMOTE_LIRCD_ARGS=""
TRANSMITTER="None"
TRANSMITTER_MODULES=""
TRANSMITTER_DRIVER=""
TRANSMITTER_DEVICE=""
TRANSMITTER_LIRCD_CONF=""
TRANSMITTER_LIRCD_ARGS=""
START_LIRCD="true"
START_LIRCMD=""
LOAD_MODULES="true"
LIRCMD_CONF=""
FORCE_NONINTERACTIVE_RECONFIGURATION="false"
REMOTE_SOCKET=""
TRANSMITTER_SOCKET=""

/etc/lirc/hardware.conf (Ubuntu): here you can see the lirc_i2c module to be loaded which I am unable to load in Arch.

REMOTE="custom"
REMOTE_MODULES="lirc_dev lirc_i2c"
REMOTE_DRIVER="devinput"
REMOTE_DEVICE="/dev/lirc"
REMOTE_LIRCD_CONF="/etc/lirc/lircd.conf"
REMOTE_LIRCD_ARGS=""
TRANSMITTER="None"
TRANSMITTER_MODULES=""
TRANSMITTER_DRIVER=""
TRANSMITTER_DEVICE=""
TRANSMITTER_LIRCD_CONF=""
TRANSMITTER_LIRCD_ARGS=""
START_LIRCD="true"
START_LIRCMD=""
LOAD_MODULES="true"
LIRCMD_CONF=""
FORCE_NONINTERACTIVE_RECONFIGURATION="false"
REMOTE_SOCKET=""
TRANSMITTER_SOCKET=""

/etc/lirc/lircd.conf (Arch) - truncated : the big difference is the bits line and the actual codes themselves...

begin remote

  name  custom
  bits           56
  eps            30
  aeps          100

  one             0     0
  zero            0     0
  pre_data_bits   8
  pre_data       0x0
  gap          33325
  toggle_bit_mask 0x0

      begin codes
          SOURCE                   0x01017900000001 0x00000000000000
          POWER                    0x01007400000001 0x00000000000000
          1                        0x01000200000001 0x00000000000000
          2                        0x01000300000001 0x00000000000000
          3                        0x01000400000001 0x00000000000000
          4                        0x01000500000001 0x00000000000000
          5                        0x01000600000001 0x00000000000000
          6                        0x01000700000001 0x00000000000000

/etc/lirc/lircd.conf (Ubuntu) - truncated:

begin remote

  name  custom
  bits           16
  eps            30
  aeps          100

  one             0     0
  zero            0     0
  pre_data_bits   16
  pre_data       0x8001
  gap          135992
  toggle_bit_mask 0x80010174

      begin codes
          1                        0x0002
          2                        0x0003
          3                        0x0004
          4                        0x0005
          5                        0x0006
          6                        0x0007

Last edited by Padfoot (2011-03-05 21:50:33)

Offline

#2 2011-03-05 03:33:49

Padfoot
Member
Registered: 2010-09-03
Posts: 381

Re: [SOLVED] - LIRC and pci tv card remote problems

UPDATE:

Ok, so there appears to be way to many ir kernel modules loading at boot, so I have tried the following:

rmmod rc_avermedia ir_lirc_codec ir_sony_decoder ir_jvc_decoder ir_rc6_decoder ir_rc5_decoder ir_nec_decoder

followed by adding the following to /etc/modprobe.d/modprobe.conf

blacklist rc_avermedia
blacklist ir_lirc_codec
blacklist ir_sony_decoder
blacklist ir_jvc_decoder
blacklist ir_rc6_decoder
blacklist ir_rc5_decoder
blacklist ir_nec_decoder

enabling the following line in /etc/mkinitcpio.conf

FILES="/etc/modprobe.d/modprobe.conf"

and finally

mkinitcpio -p kernel26

Upon reboot, the modules are still loaded!

I have even tried adding the following to /etc/rc.conf

MODULES=(i2c_core lirc_i2c !rc_avermedia !ir_lirc_codec !ir_sony_decoder !ir_jvc_decoder !ir_rc6_decoder !ir_rc5_decoder !ir_nec_decoder)

Now the i2c_core and lirc_i2c modules have loaded (which I could not modprobe previously) yet the blacklisted modules still load.

To me, with so many ir modules loading, I am thinking there must be a conflict causing my remote not to work.

HELP!

Offline

#3 2011-03-05 21:50:03

Padfoot
Member
Registered: 2010-09-03
Posts: 381

Re: [SOLVED] - LIRC and pci tv card remote problems

Well, I have solved my issue - and I was right in the first post - it was something very simple!

The udev rule I used to map a consistent device node for my remote was not working. The symlink was created but not actually connected to the device.

I re-mapped lirc to use the event directly and my remote is now working.

Now to just get the consistent node working (as I sometimes have a mouse and keyboard attached and sometimes i don't so the event mapped to the remote does change).

Hmmmmmm.

Offline

Board footer

Powered by FluxBB