View previous topic :: View next topic |
Author |
Message |
Apheus Guru
Joined: 12 Jul 2008 Posts: 422
|
Posted: Sat May 25, 2013 4:00 pm Post subject: [Solved] Antec Veris: Switch to 3.x kernel and lirc-0.9.0 |
|
|
Hello,
I have an Antec Veris Remote HTPC case.
After a long time with outdated kernel/ati-drivers/xorg-server/udev because of that *$^@X* move of infrared remote drivers in-kernel, I finally decided to give it a try:
gentoo-sources-3.4.46 (ati-drivers does not compile against 3.8, and I could not get radeon to work with correct resolution)
app-misc/lirc-0.9.0-rc2
media-tv/xbmc-11.0.
Code: | # zgrep _IR /proc/config.gz
CONFIG_HAVE_IRQ_WORK=y
CONFIG_IRQ_WORK=y
CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_GENERIC_IRQ_SHOW=y
CONFIG_GENERIC_PENDING_IRQ=y
CONFIG_IRQ_FORCED_THREADING=y
CONFIG_SPARSE_IRQ=y
# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
# CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set
# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
# CONFIG_INLINE_READ_LOCK_IRQ is not set
# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
# CONFIG_INLINE_READ_UNLOCK_IRQ is not set
# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
# CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set
# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
# CONFIG_IRQ_TIME_ACCOUNTING is not set
# CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS is not set
CONFIG_HT_IRQ=y
CONFIG_NF_CONNTRACK_IRC=y
CONFIG_NF_NAT_IRC=y
# CONFIG_IRDA is not set
CONFIG_IR_NEC_DECODER=y
CONFIG_IR_RC5_DECODER=y
CONFIG_IR_RC6_DECODER=y
CONFIG_IR_JVC_DECODER=y
CONFIG_IR_SONY_DECODER=y
CONFIG_IR_RC5_SZ_DECODER=y
CONFIG_IR_SANYO_DECODER=y
CONFIG_IR_MCE_KBD_DECODER=y
CONFIG_IR_LIRC_CODEC=y
# CONFIG_IR_ENE is not set
CONFIG_IR_IMON=m
# CONFIG_IR_MCEUSB is not set
# CONFIG_IR_ITE_CIR is not set
# CONFIG_IR_FINTEK is not set
# CONFIG_IR_NUVOTON is not set
# CONFIG_IR_REDRAT3 is not set
# CONFIG_IR_STREAMZAP is not set
# CONFIG_IR_WINBOND_CIR is not set
# CONFIG_IR_GPIO_CIR is not set
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
|
Half of the buttons in XBMC do not work. I think I have to reconfigure them in XBMC's config, but for that I need to get the IR keycodes using irw. And I cannot get irw to output anything at all: It simply listens to a socket where nothing ever gets through.
I know this thread: https://forums.gentoo.org/viewtopic-t-882181.html, but nobody there explains exactly how they got irw working again. Do I need "userspace" or "devinput" in LIRC_MODULES in make.conf? I have tried with both, irw stays silent. Or is it the old "imon imon_lcd"?
Also, /dev/lirc0 does not get created by the kernel module. Do I have to write a udev rule?
I'm out of ideas here.
Last edited by Apheus on Mon May 27, 2013 12:49 pm; edited 1 time in total |
|
Back to top |
|
|
BradN Advocate
Joined: 19 Apr 2002 Posts: 2391 Location: Wisconsin (USA)
|
Posted: Sun May 26, 2013 4:10 am Post subject: |
|
|
ati-drivers should compile against 3.8, I compiled it against 3.8.5. Make sure you're using the latest version? |
|
Back to top |
|
|
Apheus Guru
Joined: 12 Jul 2008 Posts: 422
|
Posted: Sun May 26, 2013 1:01 pm Post subject: |
|
|
I need the legacy ati-drivers for my card, but the compile error was the same anyway. Kernel source was gentoo-sources-3.8.13. I have $KBUILD_OUTPUT != $KERNEL_DIR, maybe something in ati-drivers' build process does not like that for newer kernels. I will try again next week, if I find the time.
Anyway, I got the infrared remote working fine now because I found this thread: https://forums.gentoo.org/viewtopic-t-936896.html.
What I did:
Minimal kernel config:
Code: | # zgrep _IR /proc/config.gz
CONFIG_HAVE_IRQ_WORK=y
CONFIG_IRQ_WORK=y
CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_GENERIC_IRQ_SHOW=y
CONFIG_GENERIC_PENDING_IRQ=y
CONFIG_IRQ_FORCED_THREADING=y
CONFIG_SPARSE_IRQ=y
# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
# CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set
# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
# CONFIG_INLINE_READ_LOCK_IRQ is not set
# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
# CONFIG_INLINE_READ_UNLOCK_IRQ is not set
# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
# CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set
# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
# CONFIG_IRQ_TIME_ACCOUNTING is not set
# CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS is not set
CONFIG_HT_IRQ=y
CONFIG_NF_CONNTRACK_IRC=y
CONFIG_NF_NAT_IRC=y
# CONFIG_IRDA is not set
# CONFIG_IR_NEC_DECODER is not set
# CONFIG_IR_RC5_DECODER is not set
# CONFIG_IR_RC6_DECODER is not set
# CONFIG_IR_JVC_DECODER is not set
# CONFIG_IR_SONY_DECODER is not set
# CONFIG_IR_RC5_SZ_DECODER is not set
# CONFIG_IR_SANYO_DECODER is not set
# CONFIG_IR_MCE_KBD_DECODER is not set
# CONFIG_IR_LIRC_CODEC is not set
# CONFIG_IR_ENE is not set
CONFIG_IR_IMON=m
# CONFIG_IR_MCEUSB is not set
# CONFIG_IR_ITE_CIR is not set
# CONFIG_IR_FINTEK is not set
# CONFIG_IR_NUVOTON is not set
# CONFIG_IR_REDRAT3 is not set
# CONFIG_IR_STREAMZAP is not set
# CONFIG_IR_WINBOND_CIR is not set
# CONFIG_IR_GPIO_CIR is not set
CONFIG_TRACE_IRQFLAGS_SUPPORT=y |
(only the keymaps and the imon driver).
Remove LCDd and lirc from runlevel, remove everything lirc related and xbmc from autostart (for better testing).
Install media-tv/v4l-utils.
set LIRC_DEVICES=devinput in make.conf, reemerge lirc. Check that /etc/lirc/lircd.conf is the version generated by devinput.sh (comment in first line), and that /etc/lirc/ does not contain anything else.
Check which event device is the remote (ir-keytable program from v4l-utils):
Code: | # ir-keytable
Found /sys/class/rc/rc0/ (/dev/input/event5) with:
Driver imon, table rc-imon-pad
Supported protocols: RC-6 other
Enabled protocols:
Repeat delay = 500 ms, repeat period = 125 ms |
... so in my case it is event5. To future-proof this against renumbering of devices, find the device id:
Code: | # ls -l /dev/input/by-id
total 0
lrwxrwxrwx 1 root root 9 May 26 12:53 usb-15c2_0038-event-if00 -> ../event5
... |
Put this in /etc/conf.d/lircd:
Code: | # for devices using the input-layer
LIRCD_OPTS="-H devinput -d /dev/input/by-id/usb-15c2_0038-event-if00" |
This tells lirc to listen to that device.
Now, ir-keytables -t did output something. And after starting lircd service, irw prints the keystrokes (xbmc must not run when irw is started).
Some keynames have changed, but with irw output it was trivial to change the config in xbmc's Lircmap.xml. I now have xbmc behave as I'm used to with the remote (except the knob on the case, but I don't care too much about that). |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|