You are not logged in.
I am trying to get the IR Remote of my DVB-T USB Reciever to work.
In this HowTo they say to get it work the module needs to be
loaded with IR-Protocol NEC instead of RC5 (default).
I added this to /etc/modprobe.d/modprobe.conf
# set IR protocol to NEC
options dvb_usb_dib0700 dvb_usb_dib0700_ir_proto=0
but modprobe fails:
# modprobe dvb_usb_dib0700
FATAL: Error inserting dvb_usb_dib0700 (/lib/modules/3.0-ARCH/kernel/drivers/media/dvb/dvb-usb/dvb-usb-dib0700.ko.gz): Unknown symbol in module, or unknown parameter (see dmesg)
dmesg
[ 1655.397125] dvb_usb_dib0700: Unknown parameter `dvb_usb_dib0700_ir_proto'
Last edited by SiD (2011-12-13 08:42:55)
Offline
That HowTo hasn't been updated in 2 years. The kernel isn't lying to you -- that option really isn't valid. You can always get a list of valid parameters directly from the module itself:
$ modinfo dvb_usb_dib0700 -F parm
Offline
hm, ok.
I looked into the kernel-3.0.4 sources.
In "linux-3.0.4/drivers/media/dvb/dvb-usb/dib0700_core.c" there is a function (?) to change the ir protocol
int dib0700_change_protocol(struct rc_dev *rc, u64 rc_type)
{
struct dvb_usb_device *d = rc->priv;
struct dib0700_state *st = d->priv;
int new_proto, ret;
st->buf[0] = REQUEST_SET_RC;
st->buf[1] = 0;
st->buf[2] = 0;
/* Set the IR mode */
if (rc_type == RC_TYPE_RC5)
new_proto = 1;
else if (rc_type == RC_TYPE_NEC)
new_proto = 0;
else if (rc_type == RC_TYPE_RC6) {
if (st->fw_version < 0x10200)
return -EINVAL;
new_proto = 2;
} else
return -EINVAL;
st->buf[1] = new_proto;
ret = dib0700_ctrl_wr(d, st->buf, 3);
if (ret < 0) {
err("ir protocol setup failed");
return ret;
}
d->props.rc.core.protocol = rc_type;
return ret;
}
and in "linux-3.0.4/drivers/media/dvb/dvb-usb/dib0700.h" there is this
extern int dvb_usb_dib0700_ir_proto;
I am not a programmer (knowing just some C basics). It seems to me that it's possible to change the IR-Protocol to NEC, but how?
Offline
Newer kernel modules don't have dvb_usb_dib0700_ir_proto but a new command:
ir-keytable --protocol=nec --sysdev=rc0
Offline
ok how can I load dvb_usb_dib0700 with this options?
options dvb_usb_dib0700 ir-keytable --protocol=nec --sysdev=rc0
in modprobe.conf does not work.
dmesg
[ 487.280139] dvb_usb_dib0700: Unknown parameter `ir-keytable'
modinfo dvb_usb_dib0700 -F parm
adapter_nr:DVB adapter numbers
nb_packet_buffer_size:Set the dib0700 driver data buffer size. This parameter corresponds to the number of TS packets. The actual size of the data buffer corresponds to this parameter multiplied by 188 (default: 21)
debug:set debugging level (1=info,2=fw,4=fwdata,8=data (or-able)). (debugging is not enabled)
force_lna_activation:force the activation of Low-Noise-Amplifyer(s) (LNA), if applicable for the device (default: 0=automatic/off).
Offline
ir-keytable is a command, not a module option.
Offline
ah ok.
now the terratec remote works with LIRC.
Thanks.
Offline