Difference between revisions of "ATI Remote Wonder"

From MythTV Official Wiki
Jump to: navigation, search
(Added Mythbuntu 8.10 Section Based on SuSE 10.2)
m (add category)
 
(20 intermediate revisions by 5 users not shown)
Line 1: Line 1:
 +
{{cleanup}}
 +
 
== ATI Remote Wonder (RF, USB, full size) ==
 
== ATI Remote Wonder (RF, USB, full size) ==
 
Vendors Support Website: http://mirror.ati.com/products/remotewonder/index.html
 
Vendors Support Website: http://mirror.ati.com/products/remotewonder/index.html
Line 6: Line 8:
 
Support Status: USB RF Receiver Supported
 
Support Status: USB RF Receiver Supported
  
=== Description ===
+
== Description ==
  
 
USB Remote intended for Media Center PCs
 
USB Remote intended for Media Center PCs
 
The original ATI Remote Wonder. There are two other models: Remote Wonder Plus and Remote Wonder II.
 
The original ATI Remote Wonder. There are two other models: Remote Wonder Plus and Remote Wonder II.
  
=== Issues and Problems ===
+
== Issues and Problems ==
 
This works as of Lirc 8.0 using the lirc module: "lirc_atiusb"
 
This works as of Lirc 8.0 using the lirc module: "lirc_atiusb"
  
 
You must disable the ati_remote module from loading. <br>
 
You must disable the ati_remote module from loading. <br>
FC4:        Disable it by adding ati_remote into the /etc/hotplug/blacklist file.
 
 
  SuSE 10.2, FC7, Debian Etch, Ubuntu 7.10:  Disable it by adding "blacklist  ati_remote" to /etc/modprobe.d/blacklist
 
  SuSE 10.2, FC7, Debian Etch, Ubuntu 7.10:  Disable it by adding "blacklist  ati_remote" to /etc/modprobe.d/blacklist
 +
FC4:        Disable it by adding ati_remote into the /etc/hotplug/blacklist file.
  
=== Associated Software ===
+
== Associated Software ==
 
Lirc: http://www.lirc.org/
 
Lirc: http://www.lirc.org/
  
=== Installation guide ===
+
== Installation guide ==
 
Here are the directions for setting up the ATI Remote Wonder with lirc.<br>
 
Here are the directions for setting up the ATI Remote Wonder with lirc.<br>
==== Fedora Core ====
+
=== Fedora ===
 +
 
 +
====Fedora 10====
 +
 
 +
The lirc driver for the ATI Remote Wonder is no longer included in Fedora 10 (https://bugzilla.redhat.com/show_bug.cgi?id=462212), so you have to use the ati_remote module instead.
 +
 
 +
The ati_remote module is installed and runs as default, but do not blacklist it. If you did blacklist it or rename it by mistake, then undo it and run the command ''depmod -a'' to reactivate the ati_remote module and then reboot.
 +
 
 +
You have to map some keys (e.g a button for the escape function) in order to use the ati_remote module. Do that via the key settings in mythfrontend.
  
Fedora Core 5 and 6 steps:
+
====Fedora Core 5 and 6====
  
 
1. Make sure "ati_remote" is blacklisted.
 
1. Make sure "ati_remote" is blacklisted.
Line 65: Line 75:
 
10. For MythTV users Make your /home/username/.mythtv/lircrc file (listed below)
 
10. For MythTV users Make your /home/username/.mythtv/lircrc file (listed below)
  
==== openSUSE 10.2 ====
+
=== openSUSE 10.2 ===
 
[[Image:Geeko_head48.png|25px]]
 
[[Image:Geeko_head48.png|25px]]
 
<BR><BR>1. Make sure "ati_remote" is blacklisted.<br>
 
<BR><BR>1. Make sure "ati_remote" is blacklisted.<br>
Line 111: Line 121:
 
13. Start up mythfrontend as mythtv (assuming that is your account) and the remote should  be working.<br>
 
13. Start up mythfrontend as mythtv (assuming that is your account) and the remote should  be working.<br>
  
==== Mythbuntu 8.10 ====
+
=== Mythbuntu 8.10 ===
  
 
This information is based on the SUSE 10.2 guide on this page and the modifications suggested by wmwong at the following URL:   
 
This information is based on the SUSE 10.2 guide on this page and the modifications suggested by wmwong at the following URL:   
Line 119: Line 129:
 
Please note that this will only provide basic functionality and that additional configuration will probably be desired.
 
Please note that this will only provide basic functionality and that additional configuration will probably be desired.
  
<BR><BR>1. Blacklist lirc_atiusb by adding the line "blacklist lirc_atiusb in /etc/modprobe.d/blacklist. <br>
+
<BR><BR>1. Blacklist ati_remote by adding the line "blacklist ati_remote in /etc/modprobe.d/blacklist. <br>
 +
The installed remote driver treats it as a wireless keyboard and mouse. You do not want this.<br>
 
2. Unplug the IR receiver.<br>
 
2. Unplug the IR receiver.<br>
3. ''Not needed.''<br>
+
3. Plug in the USB receiver back in<br>
4. Plug in the USB receiver back in<br>
+
4. Type in "lsmod | grep -i ati".  The output should look something like this:
5. Type in "lsmod | grep -i ati".  The output should look something like this:
+
 
  lirc_atiusb            21408  0
 
  lirc_atiusb            21408  0
 
  lirc_dev              18548  1 lirc_atiusb
 
  lirc_dev              18548  1 lirc_atiusb
 
  usbcore              114896  3 lirc_atiusb,usbhid,uhci_hcd
 
  usbcore              114896  3 lirc_atiusb,usbhid,uhci_hcd
 
"lirc_atiusb" is the module for the ATI USB Wonder remote<br><br>
 
"lirc_atiusb" is the module for the ATI USB Wonder remote<br><br>
6. ''Not needed.'' <br>
+
5. Copy the contents of the example lircd.conf config file below to /etc/lirc/lircd.conf <br>
7. Copy the contents of the example lircd.conf config file below to /etc/lirc/lircd.conf <br>
+
6. Copy the contents of the example hardware.conf config file below to /etc/lirc/hardware.conf <br>
8. Save the example lircrc file below to /home/''[user]''/.lirc/mythtv <br>
+
7. Save the example lircrc file below to /home/''[user]''/.lirc/mythtv <br>
9. Restart lirc from a terminal window with the following command:
+
8. Restart lirc from a terminal window with the following command:
 
  /etc/init.d/lirc restart
 
  /etc/init.d/lirc restart
10. Verify it is running.  This should return a line with "lircd" in it besides the 'grep' line
+
9. Verify it is running.  This should return a line with "lircd" in it besides the 'grep' line
 
  ps -ef | grep lircd
 
  ps -ef | grep lircd
11. Run "irw" from a terminal and press any button on your remote.  If the mappings are correct, you should see output for each button you press.''  If nothing is showing up, make sure you named the file "/etc/lirc'''d'''.conf" and not "/etc/lirc.conf".  I have done this a few times.  If that is correct, you may need to use "irrecord ''config_file.conf''" to record your own ir mappings.''
+
10. Run "irw" from a terminal and press any button on your remote.  If the mappings are correct, you should see output for each button you press.''  If nothing is showing up, make sure you named the file "/etc/lirc'''d'''.conf" and not "/etc/lirc.conf".  I have done this a few times.  If that is correct, you may need to use "irrecord ''config_file.conf''" to record your own ir mappings.''
 
  mythbox:/etc # irw
 
  mythbox:/etc # irw
 
  00000014527d0000 00 mouse-button_right ./lircd.conf
 
  00000014527d0000 00 mouse-button_right ./lircd.conf
Line 147: Line 157:
 
Use "Ctrl-C" to quit irw
 
Use "Ctrl-C" to quit irw
  
12. ''Not needed.''<br>
+
If irw does not run, reinstall the lirc package. This happened to me on an out of the box mythbuntu install. Then return to step 5.
13. Restart the machine.<br>
+
 
 +
 
 +
11. Restart the machine.<br>
  
 
''Author's Note:  In order to edit the required configuration files, you will need the appropriate permissions and a text editor.  For me, this was accomplished by running Thunar file manager with root permissions.  Do this by typing ''sudo thunar'' in a terminal window.  Also note that certain files/directories shown above are hidden by default and the "View Hidden Files" option must be enabled.  It is also recommended to backup your original lircd.conf and lircrc files before modifying them.''
 
''Author's Note:  In order to edit the required configuration files, you will need the appropriate permissions and a text editor.  For me, this was accomplished by running Thunar file manager with root permissions.  Do this by typing ''sudo thunar'' in a terminal window.  Also note that certain files/directories shown above are hidden by default and the "View Hidden Files" option must be enabled.  It is also recommended to backup your original lircd.conf and lircrc files before modifying them.''
  
 +
=== Mythbuntu 10.10 without lirc ===
  
=== Example of a lircd.conf ===
+
In order to control the mouse with the mouse-buttons on the remote (outside of MythTV of course, because there is no mouse in MythTV), one should use the ''ati_remote'' driver. This has additional benefits, namely that there is no delay in using the same button again, so you can scroll very fast. This driver sees the remote as a keyboard. This driver loaded automatically on my box, but I removed lirc first. I don't know if that is neccesary. If you can use your mouse-move buttons, you know the module ''ati_remote'' is loaded. The only problem this driver has, is that some buttons do not work: channel up and down, TV, DVD, and the OK button. This is because these keys have a keycode higher than 255 and thus X cannot read them (see http://bugs.freedesktop.org/show_bug.cgi?id=11227).
 +
 
 +
====Building the driver====
 +
 
 +
To fix the keycode>255 issue, follow the first part of this guide: [[Remapping remote control key codes greater than 255]] (just the part "Building the xf86-input-evdev driver").
 +
 
 +
Remote-specific tips on the guide:
 +
 
 +
This is how my xorg.conf looked like for the ATI Remote Wonder:
 +
 
 +
<pre>    Section "ServerLayout"
 +
        Identifier      "your-layout-name"
 +
        ... add the following line to the existing lines in this section ...
 +
        InputDevice    "RF remote" "SendCoreEvents"
 +
    EndSection
 +
 
 +
    Section "InputDevice"
 +
        Identifier  "RF remote"
 +
        Driver      "evdev"
 +
        Option      "Device" "your-device-id"              <-- use the guide to find out your device ID
 +
        Option      "event_key_remap" "402=112 403=117 377=156 389=157 352=36"
 +
    EndSection </pre>
 +
 
 +
====Results of remapping====
 +
 
 +
This remapping maps ChannelUp to PageUp, ChannelDown to PageDown, OK button to Enter, and TV and DVD to the so called keys PROG1 and PROG2 and results in the following:
 +
 
 +
{| border=1 cellspacing=0 cellpadding=2
 +
| '''Button'''
 +
| '''Keycode'''
 +
|-
 +
| power
 +
| 124
 +
|-
 +
| tv
 +
| 156
 +
|-
 +
| dvd
 +
| 157
 +
|-
 +
| web
 +
| 158
 +
|-
 +
| media_library
 +
| 164
 +
|-
 +
| drag
 +
| 184
 +
|-
 +
| vol-up
 +
| 123
 +
|-
 +
| vol-down
 +
| 122
 +
|-
 +
| mute
 +
| 121
 +
|-
 +
| chan-up
 +
| 112
 +
|-
 +
| chan-down
 +
| 117
 +
|-
 +
| dvd-root_menu
 +
| 147
 +
|-
 +
| launch_setup
 +
| 104
 +
|-
 +
| timer
 +
| 160
 +
|-
 +
| max_window
 +
| 140
 +
|-
 +
| rewind
 +
| 176
 +
|-
 +
| play
 +
| 208
 +
|-
 +
| fastforward
 +
| 167
 +
|-
 +
| record
 +
| 175
 +
|-
 +
| stop
 +
| 136
 +
|-
 +
| pause
 +
| 127
 +
|}
 +
 
 +
====Another remap using Xmodmap====
 +
 
 +
If you are done with the remapping, there is one more thing to do. The buttons do not yet give the right keys that MythTV understands. There are two solutions: 1. Xmodmap and 2. configuring your keys in MythTV. I chose the Xmodmap way so I wouldn't have to think about key mapping in MythTV.
 +
 
 +
The Xmodmap file remaps the keys of your remote to other keys, so for instance the buttun KEY_MUTE gets mapped to the key F9 and it does that by looking at a file in this location: ~/.Xmodmap
 +
 
 +
Create the following file:
 +
{{Code box|~/.Xmodmap|
 +
<pre> keycode 164 = S
 +
keycode 123 = F11
 +
keycode 122 = F10
 +
keycode 121 = F9
 +
keycode 147 = M
 +
keycode 104 = I
 +
keycode 160 = F8
 +
keycode 140 = W
 +
keycode 176 = Left
 +
keycode 208 = P
 +
keycode 167 = Right
 +
keycode 175 = R
 +
keycode 136 = Escape
 +
keycode 127 = P</pre>
 +
}}
 +
 
 +
To understand this file, compare the keycodes from the table with this file.
 +
 
 +
Done! Your computer will even power down when you press the right button.
 +
 
 +
=== MythDora 12.23 ===
 +
 
 +
MythDora configures the ati_remote kernel module by default (just like Fedora). However, this module is not quite as ideal to use as lirc (IMO) for this particular purpose.
 +
 
 +
1. Make sure lirc is installed by RPM (we'll want to use its init script for convenience) -- note -- any RPM upgrade of lirc may clobber this install -- I recommend you don't or you may have to do this all over again.
 +
<pre># yum -y install lirc</pre>
 +
<br>2. Blacklist and rmmod ati_remote, lirc_dev, lirc_atiusb by editing the file /etc/modprobe.d/blacklist.conf and adding the following lines to the bottom of it:
 +
{{Code box|/etc/modprobe.d/blacklist.conf|
 +
blacklist ati_remote
 +
blacklist lirc_dev
 +
blacklist lirc_atiusb
 +
}}
 +
3. Unload the kernel modules (Only the ati_remote should be loaded, but the others won't hurt):
 +
<pre>
 +
# /sbin/rmmod ati_remote
 +
# /sbin/rmmod lirc_dev
 +
# /sbin/rmmod lirc_atiusb
 +
</pre>
 +
4. Download a copy of the lirc code, extract, build and install (You may need to install several RPMs for this build to work, hopefully someone will document the dependencies in the future):
 +
<pre>
 +
# wget -c http://sourceforge.net/projects/lirc/files/LIRC/0.8.6/lirc-0.8.6.tar.bz2/download
 +
# tar jxvf lirc-0.8.6.tar.bz2
 +
# cd lirc-0.8.6
 +
# ./configure --prefix=/usr --with-driver=atiusb --with-driver=atilibusb
 +
# make
 +
# make check
 +
# make install
 +
</pre>
 +
5. Set the lirc service to start on boot:
 +
<pre># service lirc start</pre>
 +
6. Change the permissions on the lirc socket:
 +
<pre># chmod ugo+rwx /var/run/lirc/lircd</pre>
 +
7. Copy the lircd.conf into place (it should support a bunch of variants of this remote):
 +
<pre># cp /usr/share/lirc-remotes/atiusb/lircd.conf.atiusb /etc/lirc/lircd.conf</pre>
 +
8. Use the following as your /etc/sysconfig/lirc file:
 +
{{Code box|/etc/sysconfig/lirc|
 +
<pre>
 +
# 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="atilibusb"
 +
 
 +
# 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=""
 +
 
 +
# If "yes", the init script will try to start lircmd(8) too.
 +
ENABLE_LIRCMD="no"
 +
 
 +
# Options to lircmd(8).
 +
LIRCMD_OPTIONS=""
 +
 
 +
</pre>
 +
}}
 +
9. Use the following as your /home/mythtv/.mythtv/lircrc file:
 +
{{Code box|/home/mythtv/.mythtv/lircrc|
 +
<pre>
 +
# ~/.mythtv/lircrc
 +
#
 +
# MythTV native LIRC config file for
 +
# the ATI-Wonder Remote
 +
# using lirc_atiusb driver
 +
#
 +
 
 +
begin
 +
prog = mythtv
 +
button = a
 +
config = E
 +
repeat = 2
 +
delay = 10
 +
end
 +
 
 +
begin
 +
prog = mythtv
 +
button = b
 +
config = O
 +
repeat = 2
 +
delay = 10
 +
end
 +
 
 +
#begin
 +
#prog = mythtv
 +
#button = tv
 +
#config = Key Alt-T CurrentWindow
 +
#repeat = 2
 +
#end
 +
 
 +
begin
 +
prog = mythtv
 +
button = stop
 +
config = Esc
 +
repeat = 2
 +
delay = 10
 +
end
 +
 
 +
#begin
 +
#prog = mythtv
 +
#button = stop
 +
#config = Esc
 +
#repeat = 10
 +
#delay = 20
 +
#end
 +
 
 +
begin
 +
prog = mythtv
 +
button = fastforward
 +
config = Right
 +
repeat = 2
 +
delay = 10
 +
end
 +
 
 +
begin
 +
prog = mythtv
 +
button = rewind
 +
config = Left
 +
repeat = 2
 +
delay = 10
 +
end
 +
 
 +
begin
 +
prog = mythtv
 +
button = pip
 +
config = V
 +
repeat = 2
 +
delay = 10
 +
end
 +
 
 +
begin
 +
prog = mythtv
 +
button = pause
 +
config = P
 +
repeat = 2
 +
delay = 10
 +
end
 +
 
 +
begin
 +
prog = mythtv
 +
button = pause
 +
config = P
 +
repeat = 2
 +
delay = 10
 +
end
 +
 
 +
begin
 +
prog = mythtv
 +
button = play
 +
config = P
 +
repeat = 2
 +
delay = 10
 +
end
 +
 
 +
begin
 +
prog = mythtv
 +
button = mute
 +
config = F9
 +
repeat = 2
 +
delay = 10
 +
end
 +
 
 +
begin
 +
prog = mythtv
 +
button = vol-
 +
config = F10
 +
repeat = 2
 +
delay = 10
 +
end
 +
 
 +
begin
 +
prog = mythtv
 +
button = vol+
 +
config = F11
 +
repeat = 2
 +
delay = 10
 +
end
 +
 
 +
begin
 +
prog = mythtv
 +
button = f
 +
config = PgDown
 +
repeat = 2
 +
delay = 10
 +
end
 +
 
 +
begin
 +
prog = mythtv
 +
button = d
 +
config = PgUp
 +
repeat = 2
 +
delay = 10
 +
end
 +
 
 +
begin
 +
prog = mythtv
 +
button = c
 +
config = F4
 +
repeat = 2
 +
delay = 10
 +
end
 +
 
 +
begin
 +
prog = mythtv
 +
button = e
 +
config = Esc
 +
repeat = 10
 +
delay = 20
 +
end
 +
 
 +
begin
 +
prog = mythtv
 +
button = cursor-right
 +
config = Right
 +
repeat = 2
 +
delay = 10
 +
end
 +
 
 +
begin
 +
prog = mythtv
 +
button = cursor-left
 +
config = Left
 +
repeat = 2
 +
delay = 10
 +
end
 +
 
 +
begin
 +
prog = mythtv
 +
button = cursor-up
 +
config = Up
 +
repeat = 2
 +
delay = 10
 +
end
 +
 
 +
begin
 +
prog = mythtv
 +
button = cursor-down
 +
config = Down
 +
repeat = 2
 +
delay = 10
 +
end
 +
 
 +
begin
 +
prog = mythtv
 +
button = ch+
 +
config = Up
 +
repeat = 2
 +
delay = 10
 +
end
 +
 
 +
begin
 +
prog = mythtv
 +
button = ch-
 +
config = Down
 +
repeat = 2
 +
delay = 10
 +
end
 +
 
 +
begin
 +
prog = mythtv
 +
button = rewind
 +
config = Left
 +
repeat = 2
 +
delay = 10
 +
end
 +
 
 +
begin
 +
prog = mythtv
 +
button = ok
 +
config = Enter
 +
repeat = 2
 +
delay = 10
 +
end
 +
 
 +
#begin
 +
#prog = mythtv
 +
#button = 3
 +
#config = Key Page_Up CurrentWindow
 +
#repeat = 2
 +
#end
 +
 
 +
begin
 +
prog = mythtv
 +
button = select
 +
config = Return
 +
repeat = 2
 +
delay = 10
 +
end
 +
 
 +
begin
 +
prog = mythtv
 +
button = 1
 +
config = 1
 +
repeat = 2
 +
delay = 10
 +
end
 +
 
 +
begin
 +
prog = mythtv
 +
button = 2
 +
config = 2
 +
repeat = 2
 +
delay = 10
 +
end
 +
 
 +
begin
 +
prog = mythtv
 +
button = 3
 +
config = 3
 +
repeat = 2
 +
delay = 10
 +
end
 +
 
 +
begin
 +
prog = mythtv
 +
button = 4
 +
config = 4
 +
repeat = 2
 +
delay = 10
 +
end
 +
 
 +
begin
 +
prog = mythtv
 +
button = 5
 +
config = 5
 +
repeat = 2
 +
delay = 10
 +
end
 +
 
 +
begin
 +
prog = mythtv
 +
button = 6
 +
config = 6
 +
repeat = 2
 +
delay = 10
 +
end
 +
 
 +
begin
 +
prog = mythtv
 +
button = 7
 +
config = 7
 +
repeat = 2
 +
delay = 10
 +
end
 +
 
 +
begin
 +
prog = mythtv
 +
button = 8
 +
config = 8
 +
repeat = 2
 +
delay = 10
 +
end
 +
 
 +
begin
 +
prog = mythtv
 +
button = 9
 +
config = 9
 +
repeat = 2
 +
delay = 10
 +
end
 +
 
 +
begin
 +
prog = mythtv
 +
button = 0
 +
config = 0
 +
repeat = 2
 +
delay = 10
 +
end
 +
 
 +
begin
 +
prog = mythtv
 +
button = record
 +
config = R
 +
repeat = 2
 +
delay = 10
 +
end
 +
 
 +
begin
 +
prog = mythtv
 +
button = check
 +
config = Enter
 +
repeat = 2
 +
delay = 10
 +
end
 +
</pre>
 +
}}
 +
10. Set lirc to start on boot:
 +
<pre># chkconfig lirc on</pre>
 +
 
 +
== Example of a lircd.conf ==
  
 
{{Code box|lircd.conf|
 
{{Code box|lircd.conf|
Line 236: Line 766:
 
}}
 
}}
  
=== Example of a lircrc - works with lircd.conf above ===
+
== Example of a lircrc - works with lircd.conf above ==
  
 
{{Code box|lircrc|
 
{{Code box|lircrc|
Line 566: Line 1,096:
  
 
</pre>  
 
</pre>  
 +
}}
 +
 +
== Example of a hardware.conf ==
 +
 +
{{Code box|hardware.conf|
 +
<pre>
 +
# /etc/lirc/hardware.conf
 +
#
 +
#Chosen Remote Control
 +
REMOTE="ATI/NVidia X10 RF (kernel)"
 +
 +
# Arguments which will be used when launching lircd
 +
LIRCD_ARGS=""
 +
 +
#Don't start lircmd even if there seems to be a good config file
 +
#START_LIRCMD=false
 +
 +
#Try to load appropriate kernel modules
 +
LOAD_MODULES=true
 +
 +
# Run "lircd --driver=help" for a list of supported drivers.
 +
DRIVER=""
 +
# If DEVICE is set to /dev/lirc and devfs is in use /dev/lirc/0 will be
 +
# automatically used instead
 +
DEVICE=""
 +
MODULES=""
 +
 +
# Default configuration files for your hardware if any
 +
#LIRCD_CONF="atiusb/lircd.conf.atilibusb"
 +
#LIRCMD_CONF=""
 +
LIRCD_CONF="lircd.conf"
 +
 +
</pre>
 
}}
 
}}
  
 
[[Category:Remote Controls]]
 
[[Category:Remote Controls]]
 +
[[Category:LIRC_Configuration_Files]]

Latest revision as of 15:57, 22 October 2010

Clean.png Cleanup: This article or section may require cleanup. Discuss the issue on the talk page

ATI Remote Wonder (RF, USB, full size)

Vendors Support Website: http://mirror.ati.com/products/remotewonder/index.html

Remotewonder1.jpgRemotewonder2.jpg

Support Status: USB RF Receiver Supported

Description

USB Remote intended for Media Center PCs The original ATI Remote Wonder. There are two other models: Remote Wonder Plus and Remote Wonder II.

Issues and Problems

This works as of Lirc 8.0 using the lirc module: "lirc_atiusb"

You must disable the ati_remote module from loading.

SuSE 10.2, FC7, Debian Etch, Ubuntu 7.10:  Disable it by adding "blacklist  ati_remote" to /etc/modprobe.d/blacklist
FC4:        Disable it by adding ati_remote into the /etc/hotplug/blacklist file.

Associated Software

Lirc: http://www.lirc.org/

Installation guide

Here are the directions for setting up the ATI Remote Wonder with lirc.

Fedora

Fedora 10

The lirc driver for the ATI Remote Wonder is no longer included in Fedora 10 (https://bugzilla.redhat.com/show_bug.cgi?id=462212), so you have to use the ati_remote module instead.

The ati_remote module is installed and runs as default, but do not blacklist it. If you did blacklist it or rename it by mistake, then undo it and run the command depmod -a to reactivate the ati_remote module and then reboot.

You have to map some keys (e.g a button for the escape function) in order to use the ati_remote module. Do that via the key settings in mythfrontend.

Fedora Core 5 and 6

1. Make sure "ati_remote" is blacklisted.

2. Plug in the USB reciever

3. Type in:

# lsmod

Or maybe better:

# lsmod | grep ati

4. You should see a module called "lirc_atiusb" this actually the module for the ATI USB Wonder remote

5. (fedora core 4). Add these lines to your /etc/modprobe.conf (for fedora core 4 and before only!)

Script.png /etc/modprobe.conf

alias char-major-61 lirc_atiusb
alias lirc_dev lirc_atiusb

6. (fedora core 5) Add this line to /etc/rc.local

# /sbin/modprobe lirc_atiusb

7. Copy the contents of the example lircd.conf config file to /etc/lircd.conf.

8. start the lircd daemon:

# service lircd start

And make sure that it starts automatically on next boot:

# chkconfig lircd on

9. Run "irw" and press buttons on your remote you should see output for each button.

10. For MythTV users Make your /home/username/.mythtv/lircrc file (listed below)

openSUSE 10.2

Geeko head48.png

1. Make sure "ati_remote" is blacklisted.

Disable it by adding "blacklist  ati_remote" to /etc/modprobe.d/blacklist

2. If you have already plugged in the usb receiver, physically remove it and use "rmmod ati_remote" to remove the module.
3. check that "lirc-kmp-default" is installed: rpm -qa | grep -i lirc
This contains the required "lirc_atiusb" module. If it is not installed, install it with

yast -> Software -> Software Management -> Search -> "lirc" -> 
select "lirc-kmp-default" -> Accept

(You may need your installation CDs or DVD for the filesets.)
4. Plug in the USB receiver back in
5. Type in "lsmod | grep -i ati". The output should look something like this:

lirc_atiusb            21408  0
lirc_dev               18548  1 lirc_atiusb
usbcore               114896  3 lirc_atiusb,usbhid,uhci_hcd

"lirc_atiusb" is the module for the ATI USB Wonder remote
6. Add these lines to your /etc/modprobe.conf:

alias char-major-61 lirc_atiusb
alias lirc_dev lirc_atiusb

7. Copy the contents of the example lircd.conf config file below to /etc/lircd.conf or go ahead and create your own lircd.conf file using irrecord. irrecord takes a while to run through, but it sure is nice to have the remote work in the end.

cd /etc
irrecord ./lircd.conf

8. Save the example lircrc file below to /home/mythtv/.mythtv/lircrc -change the owner mythtv (assuming you're running mythTV as 'mythtv') and the group to 'users'

chown mythtv:users /home/mythtv/.mythtv/lircrc

9. Start the lircd daemon

lircd

10. Verify it is running. This should return a line with "lircd" in it besides the 'grep' line

ps -ef | grep lircd

11. Run "irw" and press any button on your remote. If the mappings are correct, you should see output for each button you press. If nothing is showing up, make sure you named the file "/etc/lircd.conf" and not "/etc/lirc.conf". I have done this a few times. If that is correct, you may need to use "irrecord config_file.conf" to record your own ir mappings.

mythbox:/etc # irw
00000014527d0000 00 mouse-button_right ./lircd.conf
000000144b760000 00 mouse-right_down ./lircd.conf
0000001446710000 00 mouse-right ./lircd.conf
0000001448730000 00 mouse-down ./lircd.conf
00000014de090000 00 vol-down ./lircd.conf
00000014de090000 01 vol-down ./lircd.conf
00000014dd080000 00 vol-up ./lircd.conf
00000014dd080000 01 vol-up ./lircd.conf

Use "Ctrl-C" to quit irw

When using irrecord and naming the buttons, be sure to use the same naming schemes as those in the "begin codes" section of the lircrc file (see example below). This will allow you to copy/paste the example lircrc given below it in the next step. The example lirc.conf given has the buttons listed in the same order as the are placed on the remote. It is very important that the "button" names in the lircrc match those specified in the lirc.conf.

12. Use yast to setup the lirc daemon to start at boot time:

yast -> System -> System Services (Runlevel) -> lirc -> Enable -> ok
-> Finish -> yes -> Quit

13. Start up mythfrontend as mythtv (assuming that is your account) and the remote should be working.

Mythbuntu 8.10

This information is based on the SUSE 10.2 guide on this page and the modifications suggested by wmwong at the following URL:

http://ubuntu-virginia.ubuntuforums.org/showthread.php?t=886179&page=2

Please note that this will only provide basic functionality and that additional configuration will probably be desired.



1. Blacklist ati_remote by adding the line "blacklist ati_remote in /etc/modprobe.d/blacklist.
The installed remote driver treats it as a wireless keyboard and mouse. You do not want this.
2. Unplug the IR receiver.
3. Plug in the USB receiver back in
4. Type in "lsmod | grep -i ati". The output should look something like this:

lirc_atiusb            21408  0
lirc_dev               18548  1 lirc_atiusb
usbcore               114896  3 lirc_atiusb,usbhid,uhci_hcd

"lirc_atiusb" is the module for the ATI USB Wonder remote

5. Copy the contents of the example lircd.conf config file below to /etc/lirc/lircd.conf
6. Copy the contents of the example hardware.conf config file below to /etc/lirc/hardware.conf
7. Save the example lircrc file below to /home/[user]/.lirc/mythtv
8. Restart lirc from a terminal window with the following command:

/etc/init.d/lirc restart

9. Verify it is running. This should return a line with "lircd" in it besides the 'grep' line

ps -ef | grep lircd

10. Run "irw" from a terminal and press any button on your remote. If the mappings are correct, you should see output for each button you press. If nothing is showing up, make sure you named the file "/etc/lircd.conf" and not "/etc/lirc.conf". I have done this a few times. If that is correct, you may need to use "irrecord config_file.conf" to record your own ir mappings.

mythbox:/etc # irw
00000014527d0000 00 mouse-button_right ./lircd.conf
000000144b760000 00 mouse-right_down ./lircd.conf
0000001446710000 00 mouse-right ./lircd.conf
0000001448730000 00 mouse-down ./lircd.conf
00000014de090000 00 vol-down ./lircd.conf
00000014de090000 01 vol-down ./lircd.conf
00000014dd080000 00 vol-up ./lircd.conf
00000014dd080000 01 vol-up ./lircd.conf

Use "Ctrl-C" to quit irw

If irw does not run, reinstall the lirc package. This happened to me on an out of the box mythbuntu install. Then return to step 5.


11. Restart the machine.

Author's Note: In order to edit the required configuration files, you will need the appropriate permissions and a text editor. For me, this was accomplished by running Thunar file manager with root permissions. Do this by typing sudo thunar in a terminal window. Also note that certain files/directories shown above are hidden by default and the "View Hidden Files" option must be enabled. It is also recommended to backup your original lircd.conf and lircrc files before modifying them.

Mythbuntu 10.10 without lirc

In order to control the mouse with the mouse-buttons on the remote (outside of MythTV of course, because there is no mouse in MythTV), one should use the ati_remote driver. This has additional benefits, namely that there is no delay in using the same button again, so you can scroll very fast. This driver sees the remote as a keyboard. This driver loaded automatically on my box, but I removed lirc first. I don't know if that is neccesary. If you can use your mouse-move buttons, you know the module ati_remote is loaded. The only problem this driver has, is that some buttons do not work: channel up and down, TV, DVD, and the OK button. This is because these keys have a keycode higher than 255 and thus X cannot read them (see http://bugs.freedesktop.org/show_bug.cgi?id=11227).

Building the driver

To fix the keycode>255 issue, follow the first part of this guide: Remapping remote control key codes greater than 255 (just the part "Building the xf86-input-evdev driver").

Remote-specific tips on the guide:

This is how my xorg.conf looked like for the ATI Remote Wonder:

    Section "ServerLayout"
        Identifier      "your-layout-name"
        ... add the following line to the existing lines in this section ...
        InputDevice     "RF remote" "SendCoreEvents"
    EndSection

    Section "InputDevice"
        Identifier  "RF remote"
        Driver      "evdev"
        Option      "Device" "your-device-id"               <-- use the guide to find out your device ID
        Option      "event_key_remap" "402=112 403=117 377=156 389=157 352=36"
    EndSection 

Results of remapping

This remapping maps ChannelUp to PageUp, ChannelDown to PageDown, OK button to Enter, and TV and DVD to the so called keys PROG1 and PROG2 and results in the following:

Button Keycode
power 124
tv 156
dvd 157
web 158
media_library 164
drag 184
vol-up 123
vol-down 122
mute 121
chan-up 112
chan-down 117
dvd-root_menu 147
launch_setup 104
timer 160
max_window 140
rewind 176
play 208
fastforward 167
record 175
stop 136
pause 127

Another remap using Xmodmap

If you are done with the remapping, there is one more thing to do. The buttons do not yet give the right keys that MythTV understands. There are two solutions: 1. Xmodmap and 2. configuring your keys in MythTV. I chose the Xmodmap way so I wouldn't have to think about key mapping in MythTV.

The Xmodmap file remaps the keys of your remote to other keys, so for instance the buttun KEY_MUTE gets mapped to the key F9 and it does that by looking at a file in this location: ~/.Xmodmap

Create the following file:

Script.png ~/.Xmodmap

 keycode 164 = S
 keycode 123 = F11
 keycode 122 = F10
 keycode 121 = F9
 keycode 147 = M
 keycode 104 = I
 keycode 160 = F8
 keycode 140 = W
 keycode 176 = Left
 keycode 208 = P
 keycode 167 = Right
 keycode 175 = R
 keycode 136 = Escape
 keycode 127 = P

To understand this file, compare the keycodes from the table with this file.

Done! Your computer will even power down when you press the right button.

MythDora 12.23

MythDora configures the ati_remote kernel module by default (just like Fedora). However, this module is not quite as ideal to use as lirc (IMO) for this particular purpose.

1. Make sure lirc is installed by RPM (we'll want to use its init script for convenience) -- note -- any RPM upgrade of lirc may clobber this install -- I recommend you don't or you may have to do this all over again.

# yum -y install lirc


2. Blacklist and rmmod ati_remote, lirc_dev, lirc_atiusb by editing the file /etc/modprobe.d/blacklist.conf and adding the following lines to the bottom of it:

Script.png /etc/modprobe.d/blacklist.conf

blacklist ati_remote
blacklist lirc_dev
blacklist lirc_atiusb

3. Unload the kernel modules (Only the ati_remote should be loaded, but the others won't hurt):

# /sbin/rmmod ati_remote
# /sbin/rmmod lirc_dev
# /sbin/rmmod lirc_atiusb

4. Download a copy of the lirc code, extract, build and install (You may need to install several RPMs for this build to work, hopefully someone will document the dependencies in the future):

# wget -c http://sourceforge.net/projects/lirc/files/LIRC/0.8.6/lirc-0.8.6.tar.bz2/download
# tar jxvf lirc-0.8.6.tar.bz2
# cd lirc-0.8.6
# ./configure --prefix=/usr --with-driver=atiusb --with-driver=atilibusb
# make
# make check
# make install

5. Set the lirc service to start on boot:

# service lirc start

6. Change the permissions on the lirc socket:

# chmod ugo+rwx /var/run/lirc/lircd

7. Copy the lircd.conf into place (it should support a bunch of variants of this remote):

# cp /usr/share/lirc-remotes/atiusb/lircd.conf.atiusb /etc/lirc/lircd.conf

8. Use the following as your /etc/sysconfig/lirc file:

Script.png /etc/sysconfig/lirc

# 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="atilibusb"

# 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=""

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

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

9. Use the following as your /home/mythtv/.mythtv/lircrc file:

Script.png /home/mythtv/.mythtv/lircrc

# ~/.mythtv/lircrc
#
# MythTV native LIRC config file for
# the ATI-Wonder Remote
# using lirc_atiusb driver
#

begin
prog = mythtv
button = a
config = E
repeat = 2
delay = 10
end

begin
prog = mythtv
button = b
config = O
repeat = 2
delay = 10
end

#begin
#prog = mythtv
#button = tv
#config = Key Alt-T CurrentWindow
#repeat = 2
#end

begin
prog = mythtv
button = stop
config = Esc
repeat = 2
delay = 10
end

#begin
#prog = mythtv
#button = stop
#config = Esc
#repeat = 10
#delay = 20
#end

begin
prog = mythtv
button = fastforward
config = Right
repeat = 2
delay = 10
end

begin
prog = mythtv
button = rewind
config = Left
repeat = 2
delay = 10
end

begin
prog = mythtv
button = pip
config = V
repeat = 2
delay = 10
end

begin
prog = mythtv
button = pause
config = P
repeat = 2
delay = 10
end

begin
prog = mythtv
button = pause
config = P
repeat = 2
delay = 10
end

begin
prog = mythtv
button = play
config = P
repeat = 2
delay = 10
end

begin
prog = mythtv
button = mute
config = F9
repeat = 2
delay = 10
end

begin
prog = mythtv
button = vol-
config = F10
repeat = 2
delay = 10
end

begin
prog = mythtv
button = vol+
config = F11
repeat = 2
delay = 10
end

begin
prog = mythtv
button = f
config = PgDown
repeat = 2
delay = 10
end

begin
prog = mythtv
button = d
config = PgUp
repeat = 2
delay = 10
end

begin
prog = mythtv
button = c
config = F4
repeat = 2
delay = 10
end

begin
prog = mythtv
button = e
config = Esc
repeat = 10
delay = 20
end

begin
prog = mythtv
button = cursor-right
config = Right
repeat = 2
delay = 10
end

begin
prog = mythtv
button = cursor-left
config = Left
repeat = 2
delay = 10
end

begin
prog = mythtv
button = cursor-up
config = Up
repeat = 2
delay = 10
end

begin
prog = mythtv
button = cursor-down
config = Down
repeat = 2
delay = 10
end

begin
prog = mythtv
button = ch+
config = Up
repeat = 2
delay = 10
end

begin
prog = mythtv
button = ch-
config = Down
repeat = 2
delay = 10
end

begin
prog = mythtv
button = rewind
config = Left
repeat = 2
delay = 10
end

begin
prog = mythtv
button = ok
config = Enter
repeat = 2
delay = 10
end

#begin
#prog = mythtv
#button = 3
#config = Key Page_Up CurrentWindow
#repeat = 2
#end

begin
prog = mythtv
button = select
config = Return
repeat = 2
delay = 10
end

begin
prog = mythtv
button = 1
config = 1
repeat = 2
delay = 10
end

begin
prog = mythtv
button = 2
config = 2
repeat = 2
delay = 10
end

begin
prog = mythtv
button = 3
config = 3
repeat = 2
delay = 10
end

begin
prog = mythtv
button = 4
config = 4
repeat = 2
delay = 10
end

begin
prog = mythtv
button = 5
config = 5
repeat = 2
delay = 10
end

begin
prog = mythtv
button = 6
config = 6
repeat = 2
delay = 10
end

begin
prog = mythtv
button = 7
config = 7
repeat = 2
delay = 10
end

begin
prog = mythtv
button = 8
config = 8
repeat = 2
delay = 10
end

begin
prog = mythtv
button = 9
config = 9
repeat = 2
delay = 10
end

begin
prog = mythtv
button = 0
config = 0
repeat = 2
delay = 10
end

begin
prog = mythtv
button = record
config = R
repeat = 2
delay = 10
end

begin
prog = mythtv
button = check
config = Enter
repeat = 2
delay = 10
end

10. Set lirc to start on boot:

# chkconfig lirc on

Example of a lircd.conf

Script.png lircd.conf

# brand: ATI Remote Wonder
# model no. of remote control: 5000023600
# devices being controlled by this remote: ATI USB Receiver
#
# Found on a linpvr.org forum, thanks.

begin remote

  name  ati_remote
  bits           40
  eps            30
  aeps          100

  one             0     0
  zero            0     0
  gap          235966
  toggle_bit      0


      begin codes
          a                        0x00000014D5000000
          b                        0x00000014D6010000
          power                    0x00000014D7020000
          tv                       0x00000014D8030000
          dvd                      0x00000014D9040000
          web                      0x00000014DA050000
          media_library            0x00000014DB060000
          drag                     0x00000014DC070000
          mouse-button_left        0x000000144D780000
          mouse-button_right       0x00000014517C0000
          mouse-up                 0x0000001447720000
          mouse-down               0x0000001448730000
          mouse-left               0x0000001445700000
          mouse-right              0x0000001446710000
          mouse-left_up            0x0000001449740000
          mouse-right_up           0x000000144A750000
          mouse-left_down          0x000000144C770000
          mouse-right_down         0x000000144B760000
          vol-up                   0x00000014DD080000
          vol-down                 0x00000014DE090000
          mute                     0x00000014DF0A0000
          chan-up                  0x00000014E00B0000
          chan-down                0x00000014E10C0000
          1                        0x00000014E20D0000
          2                        0x00000014E30E0000
          3                        0x00000014E40F0000
          4                        0x00000014E5100000
          5                        0x00000014E6110000
          6                        0x00000014E7120000
          7                        0x00000014E8130000
          8                        0x00000014E9140000
          9                        0x00000014EA150000
          0                        0x00000014EC170000
          dvd-root_menu            0x00000014EB160000
          launch_setup             0x00000014ED180000
          c                        0x00000014EE190000
          d                        0x00000014F01B0000
          tv_on_demand             0x00000014F11C0000
          max_window               0x00000014F5200000
          cursor-up                0x00000014EF1A0000
          cursor-down              0x00000014F7220000
          cursor-left              0x00000014F21D0000
          cursor-right             0x00000014F41F0000
          ok                       0x00000014F31E0000
          e                        0x00000014F6210000
          f                        0x00000014F8230000
          rewind                   0x00000014F9240000
          play                     0x00000014FA250000
          fastforward              0x00000014FB260000
          record                   0x00000014FC270000
          stop                     0x00000014FD280000
          pause                    0x00000014FE290000
      end codes

end remote

Example of a lircrc - works with lircd.conf above

Script.png lircrc

#
# MythTV native LIRC config file for
# the ATI-Wonder Remote
# using lirc_atiusb driver
#

begin
prog = mythtv
button = a
config = E
repeat = 2
end

begin
prog = mythtv
button = b
config = O
repeat = 2
end

#begin
#prog = mythtv
#button = tv
#config = Key Alt-T CurrentWindow
#repeat = 2
#end

begin
prog = mythtv
button = stop
config = Esc
repeat = 2
end

begin
prog = mythtv
button = fastforward
config = Right
repeat = 2
end

begin
prog = mythtv
button = rewind
config = Left
repeat = 2
end

begin
prog = mythtv
button = max_window
config = V
repeat = 2
end

begin
prog = mythtv
button = pause
config = P
repeat = 2
end

begin
prog = mythtv
button = play
config = P
repeat = 2
end

begin
prog = mythtv
button = mute
config = F9
repeat = 2
end

begin
prog = mythtv
button = vol-down
config = F10
repeat = 2
end

begin
prog = mythtv
button = vol-up
config = F11
repeat = 2
end

begin
prog = mythtv
button = f
config = PgDown
repeat = 2
end

begin
prog = mythtv
button = d
config = PgUp
repeat = 2
end

begin
prog = mythtv
button = c
config = F4
repeat = 2
end

begin
prog = mythtv
button = e
config = Esc
repeat = 2
end

begin
prog = mythtv
button = cursor-right
config = Right
repeat = 2
end

begin
prog = mythtv
button = cursor-left
config = Left
repeat = 2
end

begin
prog = mythtv
button = cursor-up
config = Up
repeat = 2
end

begin
prog = mythtv
button = cursor-down
config = Down
repeat = 2
end

begin
prog = mythtv
button = chan-up
config = Up
repeat = 2
end

begin
prog = mythtv
button = chan-down
config = Down
repeat = 2
end

begin
prog = mythtv
button = rewind
config = Left
repeat = 2
end

begin
prog = mythtv
button = ok
config = Enter
repeat = 2
end

begin
prog = mythtv
button = 1
config = 1
repeat = 2
end

begin
prog = mythtv
button = 2
config = 2
repeat = 2
end

begin
prog = mythtv
button = 3
config = 3
repeat = 2
end

begin
prog = mythtv
button = 4
config = 4
repeat = 2
end

begin
prog = mythtv
button = 5
config = 5
repeat = 2
end

begin
prog = mythtv
button = 6
config = 6
repeat = 2
end

begin
prog = mythtv
button = 7
config = 7
repeat = 2
end

begin
prog = mythtv
button = 8
config = 8
repeat = 2
end

begin
prog = mythtv
button = 9
config = 9
repeat = 2
end

begin
prog = mythtv
button = 0
config = 0
repeat = 2
end

begin
prog = mythtv
button = record
config = R
repeat = 2
end

begin
prog = mythtv
button = check
config = Enter
repeat = 2
end

### MPlayer lirc setup
#
# Remember to ln -s ./.mythtv/lircrc ../.lircrc for mplayer to work!

# Show OSD
begin
prog = mplayer
button = tv_on_demand
repeat = 3
config = osd
end

# Pause playback
begin
prog = mplayer
button = pause
repeat = 3
config = pause
end

begin
prog = mplayer
button = play
repeat = 3
config = pause
end

# Stop playback and exit
begin
prog = mplayer
button = stop
repeat = 3
config = quit
end

# Mute
begin
prog = mplayer
button = mute
repeat = 3
config = mute
end

# Seek back 10 seconds
begin
prog = mplayer
button = rewind
repeat = 3
config = seek -10
end

# Seek forward 30 seconds
begin
prog = mplayer
button = fastforward
repeat = 3
config = seek +30
end

# Quit
begin
prog = mplayer
button = e
repeat = 3
config = quit
end

Example of a hardware.conf

Script.png hardware.conf

# /etc/lirc/hardware.conf
#
#Chosen Remote Control
REMOTE="ATI/NVidia X10 RF (kernel)"

# Arguments which will be used when launching lircd
LIRCD_ARGS=""

#Don't start lircmd even if there seems to be a good config file
#START_LIRCMD=false

#Try to load appropriate kernel modules
LOAD_MODULES=true

# Run "lircd --driver=help" for a list of supported drivers.
DRIVER=""
# If DEVICE is set to /dev/lirc and devfs is in use /dev/lirc/0 will be
# automatically used instead
DEVICE=""
MODULES=""

# Default configuration files for your hardware if any
#LIRCD_CONF="atiusb/lircd.conf.atilibusb"
#LIRCMD_CONF=""
LIRCD_CONF="lircd.conf"