I tried to build lirc-0.8.6 with kernel-2.6.36.1 and got some errors:
const struct file_operations' has no member named 'ioctl'
I apllied two patches from the ArchLinux lirc Package
kernel-2.6.33.patch
http://pastebin.com/5Hdm4WvL
kenrnel-2.6.35.patch
http://pastebin.com/b5yszThH
and made these changes in /drivers/lirc_dev/lirc_dev.c
http://lirc.cvs.sourceforge.net/viewvc/lirc/lirc/drivers/lirc_dev/lirc_dev.c?r1=1.106&r2=1.107
but still get this errors
http://pastebin.com/u5PWARbh
/home/michael/AUR/lirc/src/lirc-0.8.6/drivers/lirc_dev/lirc_dev.c: In
function 'irctl_ioctl':
/home/michael/AUR/lirc/src/lirc-0.8.6/drivers/lirc_dev/lirc_dev.c:686:30: error:
'const struct file_operations' has no member named 'ioctl'
/home/michael/AUR/lirc/src/lirc-0.8.6/drivers/lirc_dev/lirc_dev.c:687:22: error:
'const struct file_operations' has no member named 'ioctl'
/home/michael/AUR/lirc/src/lirc-0.8.6/drivers/lirc_dev/lirc_dev.c: At
top level:
/home/michael/AUR/lirc/src/lirc-0.8.6/drivers/lirc_dev/lirc_dev.c:1024:2: error:
unknown field 'ioctl' specified in initializer
/home/michael/AUR/lirc/src/lirc-0.8.6/drivers/lirc_dev/lirc_dev.c:1024:2: warning:
initialization from incompatible pointer type
this are the lines 685 to 690 from lirc_dev.c I used
/* if the driver has a ioctl function use it instead */
if (ir->d.fops && ir->d.fops->ioctl) {
result = ir->d.fops->ioctl(inode, file, cmd, arg);
if (result != -ENOIOCTLCMD)
return result;
}
and this lines 1019 to 1030
static struct file_operations fops = {
.owner = THIS_MODULE,
.read = irctl_read,
.write = irctl_write,
.poll = irctl_poll,
.ioctl = irctl_ioctl,
#ifdef CONFIG_COMPAT
.compat_ioctl = irctl_compat_ioctl,
#endif
.open = irctl_open,
.release = irctl_close
};
this is the complete lirc_dev.c
http://pastebin.com/M5ySc1mA
Seems to me as line 686 and 687 needs to be changed, but I don't know
how. Is it possible to get 0.8.6 built with kernel >= 2.6.36 ?
|