I spent a lot of time to figure out how to make my soundcard remote work with lirc on my asus wl500gp, so..its time to write something
Goal: sound blaster live 24bit usb remote working with lirc \ irexec on kamikaze 2.6
First of all, the lack of a Makefile. I've written one:
#
# Copyright (C) 2006 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
# $Id: Makefile 5624 2007-09-04 00:29:07Z Dottout $
include $(TOPDIR)/rules.mk
PKG_NAME:=lirc
PKG_VERSION:=0.8.2
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
PKG_SOURCE_URL:=@SF/lirc
PKG_CAT:=bzcat
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
PKG_INSTALL_DIR:=$(PKG_BUILD_DIR)/ipkg-install
include $(INCLUDE_DIR)/package.mk
define Package/lirc
SECTION:=utils
CATEGORY:=Utilities
TITLE:=lirc
DESCRIPTION:=lirc
endef
define Package/lirc/conffiles
/etc/lircd.conf
endef
define Build/Configure
$(call Build/Configure/Default, \
--disable-nls \
--disable-static \
--with-kerneldir=$(LINUX_DIR) \
--with-driver="alsa_usb" \
--without-x \
--with-pic \
--with-gnu-ld \
--enable-sandboxed )
endef
define Build/Compile
$(MAKE) -C $(PKG_BUILD_DIR) \
DESTDIR="$(PKG_INSTALL_DIR)" \
all installendef
define Package/lirc/install
$(INSTALL_DIR) $(1)/usr/sbin/
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/lircd $(1)/usr/sbin/
$(INSTALL_DIR) $(1)/etc
$(INSTALL_CONF) $(PKG_BUILD_DIR)/contrib/lircd.conf $(1)/etc/
endef
$(eval $(call BuildPackage,lirc))
Put this Makefile in kamikaze/package/lirc, then as usual run make menuconfig, select it and run make package/lirc-compile package/index (this syntax allow you to compile directly lirc)
Who owns a different remote controller has to look at --with-driver="alsa_usb" parameter. Well, change it according to your needs
Install it and take somewhere or write your /etc/lircd.conf and /etc/lircrc files. here you can take mine:
http://www.dottout.com/files/lircd.conf
http://www.dottout.com/files/lircrc
For my lircrc you need mpc (I run mpd on my openwrt, this way I can control it with my remote) and aumix to control the volume.
At this point I had to do a little dirty trick: lircd didnt saw my remote device, so I had to install udev. so, get it and create these two files:
/etc/udev/rules.d/50-alsa.rules:
# alsa devices
SUBSYSTEM=="sound", GROUP="audio"
KERNEL=="controlC[0-9]*", NAME="snd/%k"
KERNEL=="hw[CD0-9]*", NAME="snd/%k"
KERNEL=="pcm[CD0-9cp]*", NAME="snd/%k"
KERNEL=="midiC[D0-9]*", NAME="snd/%k"
KERNEL=="timer", NAME="snd/%k"
KERNEL=="seq", NAME="snd/%k"
/etc/udev/rules.d/10-lirc.rules:
KERNEL=="lirc[0-9]*", NAME="lirc/%n"
then you are ready to run it as a daemon:
udevd --daemon
plug your sb live into the router, then launch lircd & lirexec:
lircd -d hw:External &
irexec --daemon
Now your remote should work
Probably you want your own lircrc. nothing easier: run irw (provided by my lirc Makefile), push the remote buttons and use the output to map them