Bug 658628 - lirc irsend mceusb hardware does not support sending after installing Fedora 14
Summary: lirc irsend mceusb hardware does not support sending after installing Fedora 14
Keywords:
Status: CLOSED NOTABUG
Alias: None
Product: Fedora
Classification: Fedora
Component: lirc
Version: 14
Hardware: x86_64
OS: Linux
low
medium
Target Milestone: ---
Assignee: Jarod Wilson
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2010-11-30 20:52 UTC by Roger J. Allen
Modified: 2011-05-16 18:28 UTC (History)
3 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2011-05-16 18:28:11 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)
modified lirc configuration file (496 bytes, application/octet-stream)
2010-11-30 20:52 UTC, Roger J. Allen
no flags Details
modified keycodes and added BTN_STAR and BTN_POUND (14.46 KB, application/octet-stream)
2010-11-30 20:55 UTC, Roger J. Allen
no flags Details
DIsh Network and other old remotes (88.48 KB, application/octet-stream)
2010-11-30 20:56 UTC, Roger J. Allen
no flags Details
/etc/sysconfig/lirc Fedora 13 config file which allows irsend to work. (797 bytes, application/octet-stream)
2010-12-01 22:16 UTC, Roger J. Allen
no flags Details

Description Roger J. Allen 2010-11-30 20:52:48 UTC
Created attachment 463826 [details]
modified lirc configuration file

Description of problem:

Fedora 13 (and earlier Fedora versions) of irsend with lirc_mceusb2 transmitted Mythtv IR signals to Dish Network STB to change channels.  After installing Fedora 14, the new mceusb module receives IR signals correctly with irw command, but irsend fails with "hardware does not support sending" error message.

Version-Release number of selected component (if applicable):

gnome-lirc-properties-0.5.1-2.fc14.noarch
lirc-0.8.7-1.fc14.x86_64
lirc-devel-0.8.7-1.fc14.x86_64
lirc-libs-0.8.7-1.fc14.x86_64
lirc-remotes-0.8.7-1.fc14.x86_64

How reproducible:

Every time irsend tries to transmit.

Steps to Reproduce:

1. Use gnome-lirc-properties to setup devinput with mceusb transceiver.
   A.  Manufacturer: Linux Input Device
   B.  Model: Media Center Ed. eHome Infrared Remote Transceiver (0609:031d)
   C.  Device: /dev/input/event9
   D.  Use supplied remote control
       i.  Add 100 to number keys and add BTN_STAR and BTN_POUND keys to
           linux-input-layer lirc configuration file /etc/lirc/lircd.conf.gnome.

    BTN_0                 0x10200
    BTN_1                 0x10201
    BTN_2                 0x10202
    BTN_3                 0x10203
    BTN_4                 0x10204
    BTN_5                 0x10205
    BTN_6                 0x10206
    BTN_7                 0x10207
    BTN_8                 0x10208
    BTN_9                 0x10209
    BTN_STAR              0x1020a
    BTN_POUND             0x1020b

   e. Press button on remote and see it's name appear in Configuration Test.
 
2. Run irw to test receiving IR signals.

[rja@moria lirc]$ irw
0000000000010200 00 BTN_0 linux-input-layer
000000000001020a 00 BTN_STAR linux-input-layer
0000000000010160 00 KEY_OK linux-input-layer

3. Add Dish Network IR commands to /etc/lirc/lircd.conf.

# Configuration selected with GNOME LIRC Properties
#include </etc/lirc/lircd.conf.gnome>
include </etc/lirc/lircd.conf.gnome-mceusb>

# rja extra remotes
include </etc/lirc/lircd.conf-moria-Dish_Network>

4. Run irsend to test transmitting IR signals.

[rja@moria lirc]$ irsend LIST "" ""
irsend: dish
irsend: dish1
irsend: dish2
irsend: dish3
irsend: dish4
irsend: dish5
irsend: dish6
irsend: dish7
irsend: dish8
irsend: dish9
irsend: dish10
irsend: dish11
irsend: dish12
irsend: dish13
irsend: dish14
irsend: dish15
irsend: dish16
irsend: linux-input-layer
(plus many other old remotes).

[rja@moria lirc]$ irsend LIST dish ""
irsend: 0000000000000000 info
irsend: 0000000000000001 power_on
irsend: 0000000000000002 power
irsend: 0000000000000004 1
irsend: 0000000000000005 2
irsend: 0000000000000006 3
irsend: 0000000000000008 4
irsend: 0000000000000009 5
irsend: 000000000000000a 6
irsend: 000000000000000c 7
irsend: 000000000000000d 8
irsend: 000000000000000e 9
irsend: 0000000000000011 0
irsend: 000000000000000b menu
irsend: 0000000000000010 select
irsend: 0000000000000012 cancel
irsend: 0000000000000014 guide
irsend: 0000000000000016 view
irsend: 0000000000000017 tv_vcr
irsend: 0000000000000018 right
irsend: 000000000000001a up
irsend: 000000000000001b recall
irsend: 000000000000001c left
irsend: 000000000000001e down
irsend: 000000000000001f record
irsend: 0000000000000020 pause
irsend: 0000000000000021 stop
irsend: 0000000000000024 sys_info
irsend: 0000000000000025 asterisk
irsend: 0000000000000026 pound
irsend: 0000000000000027 power_off
irsend: 0000000000000029 sat
irsend: 0000000000000034 dish_home
irsend: 0000000000000036 sys_info2
irsend: 0000000000000038 dish_home2

[rja@moria lirc]$ irsend SEND_ONCE dish OK
irsend: command failed: SEND_ONCE dish OK
irsend: hardware does not support sending

rja@moria lirc]$ irsend SEND_ONCE linux-input-layer KEY_OK
irsend: command failed: SEND_ONCE linux-input-layer KEY_OK
irsend: hardware does not support sending

also tried as root with SET_TRANSMITTERS:

[root@moria lirc]# irsend SET_TRANSMITTERS 1
irsend: command failed: SET_TRANSMITTERS 1
irsend: hardware does not support sending
  
Actual results:

irsend: hardware does not support sending

Expected results:

Blinking red LED on transmitter and (with a few more irsend commands) channel change on Dish Network STB.

Additional info:

I don't know if I am incorrectly configuring this or if mceusb transmitting is still on the todo list.  I tried searching on different mailing lists and forums, but found no info on Fedora 14 and irsend with the new mceusb.

Comment 1 Roger J. Allen 2010-11-30 20:55:18 UTC
Created attachment 463827 [details]
modified keycodes and added BTN_STAR and BTN_POUND

Comment 2 Roger J. Allen 2010-11-30 20:56:36 UTC
Created attachment 463828 [details]
DIsh Network and other old remotes

Comment 3 Roger J. Allen 2010-11-30 21:03:08 UTC
I made a mistake using "OK" as a dish key.  It should have been "select":

[rja@moria lirc]$ irsend SEND_ONCE dish select
irsend: command failed: SEND_ONCE dish select
irsend: hardware does not support sending

Same result.

Comment 4 Jarod Wilson 2010-12-01 03:15:53 UTC
Load mceusb and ir-core with debugging enabled (options ir-core debug=1, options mceusb debug=1), run lircd in the foreground (lircd -n), then try an irsend. Collect dmesg output and lircd output, and I'll see what I can see. I've got five mceusb devices of my own that all work just fine though, transmit and receive.

Comment 5 Roger J. Allen 2010-12-01 22:14:42 UTC
I didn't need to use the debug options on those modules.  Running "lircd -n", which uses the default driver was all it took to get irsend to work.  It does not transmit if lircd is configured by gnome-lirc-properties to run as:

/usr/sbin/lircd --driver=devinput --device=/dev/input/event9

with the devinput driver, /var/log/messages shows:

Dec  1 06:48:14 moria lircd-0.8.7[4864]: you should specify a valid gap value
Dec  1 06:48:14 moria lircd-0.8.7[4864]: lircd(devinput) ready, using /var/run/lirc/lircd
Dec  1 06:48:23 moria lircd-0.8.7[4864]: accepted new client on /var/run/lirc/lircd
Dec  1 06:48:23 moria lircd-0.8.7[4864]: initializing '/dev/input/event9'
Dec  1 06:48:23 moria lircd-0.8.7[4864]: error processing command: SEND_ONCE dish select
Dec  1 06:48:23 moria lircd-0.8.7[4864]: hardware does not support sending
Dec  1 06:48:23 moria lircd-0.8.7[4864]: removed client
Dec  1 06:48:23 moria lircd-0.8.7[4864]: closing '/dev/input/event9'

This also appears in the syslog when configured with gnome-lirc-properties:

Dec  1 13:25:42 moria lircd-0.8.7[3495]: you are using an obsolete devinput config file: Success
Dec  1 13:25:42 moria lircd-0.8.7[3495]: get the new version at http://lirc.sourceforge.net/remotes/devinput/lircd.conf.devinput: Success

If I replace the /etc/sysconfig/lirc and /etc/lirc/lircd.conf files that gnome-lirc-properties created with the files that I was using with Fedora 13, then lircd runs as:

/usr/sbin/lircd --device=/dev/lirc0

and both irw and irsend work.  The /etc/lirc/lircd.conf file that I was using in Fedora 13 is already attached as the second comment.  I'll attach the /etc/sysconfig/lirc file after this comment.

I did have to disable the in-kernel decoders and enable only the lirc bridge dirver (which I saw from your post on mythtv-users) because the arrow keys would cause a double entry with mythtv.  Running irw, the arrow keys would display both the keycodes and the escape sequence for an arrow key.  

[rja@moria ~]$ irw
^[[A000000037ff07be1 00 Up mceusb
000000037ff07be0 00 Down mceusb
^[[B000000037ff07be0 01 Down mceusb
000000037ff07bde 00 Right mceusb
^[[C000000037ff07bde 01 Right mceusb
^[[D000000037ff07bdf 00 Left mceusb

[root@moria ~]# cat /sys/class/rc/rc0/protocols
[rc-5] [nec] [rc-6] [jvc] [sony] [lirc]
[root@moria ~]# echo none +lirc > /sys/class/rc/rc0/protocols
[root@moria ~]# cat /sys/class/rc/rc0/protocols
rc-5 nec rc-6 jvc sony [lirc]

[rja@moria ~]$ irw
000000037ff07be1 00 Up mceusb
000000037ff07be0 00 Down mceusb
000000037ff07be0 01 Down mceusb
000000037ff07bde 00 Right mceusb
000000037ff07bdf 00 Left mceusb

If you still want debug output from the modules, then I can do that.

Comment 6 Roger J. Allen 2010-12-01 22:16:24 UTC
Created attachment 464116 [details]
/etc/sysconfig/lirc Fedora 13 config file which allows irsend to work.

Comment 7 Jarod Wilson 2010-12-02 16:03:50 UTC
D'oh. Yeah. I'd assumed you were using the same configs that were previously working. Yeah, tx definitely won't work if you're using it via lirc's devinput driver.

Nb: even better than 'none +lirc', you can just  echo 'lirc' into protocols. We still need an 'all' magic value to re-enable all of them, to make scripting this in the lirc initscript a bit more user-friendly... But in any case, yeah, I'll try to get a new package out the door sooner or later here that disables the in-kernel decode if lircd has been started up.

In the mean time... Not sure exactly what we should do with this bug. Technically, possibly NOTABUG.

Comment 8 NewBuntu81 2011-05-13 19:45:28 UTC
Hello!  I have been using Fedora 14 for a few months now, so somewhere in between newbie and somewhat green, hahha.

I have a USB IR blaster, ...RECEIVER_MODEL="Media\ Center\ Ed.\ eHome\ Infrared\ Remote\ Transceiver\ \(1934:5168\)", that I cannot seem to get working.

Note that I have entered various command outputs to http://pastebin.com/37RqEwxb.

I have been following various posts, mentioned at the end of my pastebin, on the mceusb and Fintek/ehome 1934:5168.  I cannot seem to get it working.  I have been following instructions from various sites with no luck.

As roger mentioned above, the error I keep getting is "irsend: hardware does not support sending" which makes me believe the IR blaster is not enabled.

Does anyone have advice?  I just updated my kernel last night to the latest per Software Update, and now I am running "2.6.35.13-91.fc14.i686" and still have the same problem.

Jared mentioned, "tx definitely won't work if you're using it via lirc's devinput
driver", which is what mine is set to.

Can someone point me to specific instructions on what to do?  Or feel free to ask me to run a command to see the output.  I'd greatly appreciate it.

Thanks,
Mike

Comment 9 NewBuntu81 2011-05-15 22:36:31 UTC
Today I noticed there was a new update for lirc 0.9.0, labeled 0.9.0-2.  I installed this and have noticed a few differences.  For one, I'm now able to see commands when I run irw.  That's a start!

Any thoughts or comments to get my IR blaster working will greatly be appreciated!
~NewBuntu81 (Mike)


A. Firmware from DMESG 
[root@OptiPlex280-mbe Michael]# dmesg | grep firmware
[   10.576781] intel_rng: don't want to disable this in firmware setup, and if
[   11.849023] saa7164_downloadfirmware() no first image
[   11.849036] saa7164_downloadfirmware() Waiting for firmware upload (NXP7164-2010-03-10.1.fw)
[   12.389394] saa7164_downloadfirmware() firmware read 4019072 bytes.
[   12.389400] saa7164_downloadfirmware() firmware loaded.
[   12.389424] saa7164_downloadfirmware() SecBootLoader.FileSize = 4019072
[   12.389433] saa7164_downloadfirmware() FirmwareSize = 0x1fd6
[   12.389437] saa7164_downloadfirmware() BSLSize = 0x0
[   12.389441] saa7164_downloadfirmware() Reserved = 0x0
[   12.389446] saa7164_downloadfirmware() Version = 0x1661c00
[   13.359677] ivtv0: Loaded v4l-cx2341x-enc.fw firmware (376836 bytes)
[   13.359966] ivtv1: Loaded v4l-cx2341x-enc.fw firmware (376836 bytes)
[   17.146667] cx25840 3-0044: loaded v4l-cx25840.fw firmware (16382 bytes)
[   17.197288] cx25840 2-0044: loaded v4l-cx25840.fw firmware (16382 bytes)
[   19.109047] starting firmware download(2)
[   23.739045] firmware download complete.



B. LIRC from DMESG
[root@OptiPlex280-mbe Michael]# dmesg | grep lirc
[   11.530128] lirc_dev: IR Remote Control driver registered, major 250 
[   11.534698] rc rc0: lirc_dev: driver ir-lirc-codec (mceusb) registered at minor = 0
[   44.106111] lirc_zilog: module is from the staging directory, the quality is unknown, you have been warned.
[   44.108196] lirc_zilog: Zilog/Hauppauge IR driver initializing
[   44.111200] lirc_zilog: initialization complete
[root@OptiPlex280-mbe Michael]# 


C. IRSEND shows much more than ever showed before.
irsend LIST "" ""
buffer: -BEGIN-
buffer: -LIST  -
buffer: -SUCCESS-
buffer: -DATA-
buffer: -3-
buffer: -DC50X-
irsend: DC50X
buffer: -Hauppauge-
irsend: Hauppauge
buffer: -linux-input-layer-
irsend: linux-input-layer
buffer: -END-



D. IRSEND Additional info
irsend LIST DC50x ""
buffer: -BEGIN-
buffer: -LIST DC50x -
buffer: -SUCCESS-
buffer: -DATA-
buffer: -11-
buffer: -0000000000000001 1-
irsend: 0000000000000001 1
buffer: -0000000000000002 2-
irsend: 0000000000000002 2
buffer: -0000000000000003 3-
irsend: 0000000000000003 3
buffer: -0000000000000004 4-
irsend: 0000000000000004 4
buffer: -0000000000000005 5-
irsend: 0000000000000005 5
buffer: -0000000000000006 6-
irsend: 0000000000000006 6
buffer: -0000000000000007 7-
irsend: 0000000000000007 7
buffer: -0000000000000008 8-
irsend: 0000000000000008 8
buffer: -0000000000000009 9-
irsend: 0000000000000009 9
buffer: -000000000000000a 0-
irsend: 000000000000000a 0
buffer: -000000000000000b Enter-
irsend: 000000000000000b Enter
buffer: -END-
[root@OptiPlex280-mbe Michael]# irsend LIST DC50x 7
buffer: -BEGIN-
buffer: -LIST DC50x 7-
buffer: -SUCCESS-
buffer: -DATA-
buffer: -1-
buffer: -0000000000000007 7-
irsend: 0000000000000007 7
buffer: -END-


E. This now shows lircd1, which never showed before.
ls -al /dev/ |grep lirc
crw-------   1 root root    250,   0 May 15 18:01 lirc0
srw-rw-rw-   1 root root           0 May 15 18:01 lircd1


F. However, I'm still getting errors when I try to do an IRSEND to my device

G. The DC50X shown in part C is the name for the Comcast Pace DTA.  It is loaded in the lircd.conf file, located at /etc/lirc, which shows:

# This configuration has been automatically generated
# by the GNOME LIRC Properties control panel.
#
# Feel free to add any custom remotes to the configuration
# via additional include directives or below the existing
# include directives from your selected remote and/or
# transmitter.
#

# Configuration selected with GNOME LIRC Properties
include </etc/lirc/lircd.conf.pace>
include </etc/lirc/lircd.conf.gnome>
include </usr/local/bin/pace.conf>


H. The /etc/sysconfig/lirc shows:

# Note: in addition to these parameters, you need to have working    -*- sh -*-
# configuration file for lircd (and lircmd if enabled).

# Options to lircd(8).  Typically, this will be empty, as which driver to use
# should be specified using the LIRC_DRIVER variable below.
LIRCD_OPTIONS=""

# The infrared receiver (and/or transmitter) driver to be used by lircd(8),
# similar to passing "-H driver" to lircd(8).
# Run "/usr/sbin/lircd -H help" to get a listing of supported drivers.
LIRC_DRIVER="devinput"

# Which lirc device will be used by lircd(8).
# This is the same as passing "-d device" to lircd.
# An empty value will use the default /dev/lirc0 device.
LIRC_DEVICE="name=Media\?Center\?Ed.\?eHome\?Infrared\?Remote\?Transceiver\?\(1934:5168\)"

# If "yes", the init script will try to start lircmd(8) too.
ENABLE_LIRCMD="no"

# Options to lircmd(8).
LIRCMD_OPTIONS=""


# Remote settings required by gnome-lirc-properties
MODULES=""
LIRCD_CONF=""

# Receiver settings required by gnome-lirc-properties
RECEIVER_MODEL="Media\ Center\ Ed.\ eHome\ Infrared\ Remote\ Transceiver\ \(1934:5168\)"
RECEIVER_VENDOR="Linux\ Input\ Device"

# Remote settings required by gnome-lirc-properties
MODEL="Linux\ Input\ Layer\ compatible\ Remote"
VENDOR="Generic"

Comment 10 Roger J. Allen 2011-05-16 05:52:55 UTC
(In reply to comment #9)
> Today I noticed there was a new update for lirc 0.9.0, labeled 0.9.0-2.  I
> installed this and have noticed a few differences.  For one, I'm now able to
> see commands when I run irw.  That's a start!
> 
> Any thoughts or comments to get my IR blaster working will greatly be
> appreciated!
> ~NewBuntu81 (Mike)


It looks like you are trying to use "devinput" for transmitting, which won't work.  Instead, use "mceusb".

Try replacing your /etc/sysconfig/lirc file with the one that I use.  It is attached to comment #6 above.

I also had to add this command to /etc/rc.local:


echo lirc > /sys/class/rc/rc0/protocols

Comment 11 NewBuntu81 2011-05-16 17:17:21 UTC
Thanks All.  I made those changes to my /etc/sysconfig/lirc file and restarted my computer; specifically, in the file I changed the LIRC_DRIVER from =
devinput" to ="mceusb.

I also added echo lirc > /sys/class/rc/rc0/protocols to my /etc/rc.local file.

I am receiving a different message now, that irsend could not connect to the socket.  So I tried restarting the LIRC and am receiving an error that the drier "mceusb" is not supported, and hence LIRC start has failed.  Any ideas?


DETAILS:

I'm now showing 3 lirc devies.
[root@OptiPlex280-mbe Michael]# ls -al /dev/ |grep lirc
crw-------   1 root root    250,   0 May 16 12:31 lirc0
srw-rw-rw-   1 root root           0 May 16 12:32 lircd
srw-rw-rw-   1 root root           0 May 16 12:32 lircd1


[root@OptiPlex280-mbe Michael]# dmesg | grep lirc
[   12.145115] lirc_dev: IR Remote Control driver registered, major 250 
[   12.150269] rc rc0: lirc_dev: driver ir-lirc-codec (mceusb) registered at minor = 0
[   34.377259] lirc_zilog: module is from the staging directory, the quality is unknown, you have been warned.
[   34.379388] lirc_zilog: Zilog/Hauppauge IR driver initializing
[   34.381457] lirc_zilog: initialization complete
[root@OptiPlex280-mbe Michael]# 



[root@OptiPlex280-mbe Michael]# irsend LIST ""
irsend: could not connect to socket
irsend: No such file or directory


[root@OptiPlex280-mbe Michael]# /etc/init.d/lirc restart 
Stopping infrared remote control daemon (lircd):           [  OK  ]
Starting infrared remote control daemon (lircd): Driver `mceusb' not supported.
Supported drivers:
	accent
	alsa_usb
	asusdh
	atilibusb
	atwf83
	audio
	audio_alsa
	awlibusb
	bte
	bw6130
	commandir
	creative
	creative_infracd
	default
	devinput
	dfclibusb
	dsp
	dvico
	ea65
	ftdi
	i2cuser
	irlink
	irman
	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
                                                           [FAILED]

Comment 12 NewBuntu81 2011-05-16 17:18:21 UTC
OTHER OUTPUT:

[root@OptiPlex280-mbe Michael]# dmesg | grep lirc
[   12.145115] lirc_dev: IR Remote Control driver registered, major 250 
[   12.150269] rc rc0: lirc_dev: driver ir-lirc-codec (mceusb) registered at minor = 0
[   34.377259] lirc_zilog: module is from the staging directory, the quality is unknown, you have been warned.
[   34.379388] lirc_zilog: Zilog/Hauppauge IR driver initializing
[   34.381457] lirc_zilog: initialization complete


[root@OptiPlex280-mbe Michael]# sudo gedit /etc/sysconfig/lirc
^C[root@OptiPlex280-mbe Michael]# dmesg | grep mceusb
[   11.844089] mceusb 5-1:1.0: Registered FINTEK eHome Infrared Transceiver on usb5:2
[   11.844175] usbcore: registered new interface driver mceusb
[   12.150269] rc rc0: lirc_dev: driver ir-lirc-codec (mceusb) registered at minor = 0

Comment 13 Jarod Wilson 2011-05-16 18:28:11 UTC
(In reply to comment #11)
> Thanks All.  I made those changes to my /etc/sysconfig/lirc file and restarted
> my computer; specifically, in the file I changed the LIRC_DRIVER from =
> devinput" to ="mceusb.

That's wrong. LIRC_DRIVER="" will work. (Or LIRC_DRIVER="default"). Its not the kernel driver you need to specify, its the lircd driver, which for all /dev/lircX devices, is "default".

Closing this NOTABUG, this is purely a configuration issue.

> I also added echo lirc > /sys/class/rc/rc0/protocols to my /etc/rc.local file.

This shouldn't be necessary with lirc-0.9.0-2, its done automatically by the lirc initscript.


Note You need to log in before you can comment on or make changes to this bug.