There are macros/procedures "info" and "warn" used by lirc_imon and some other lirc kernel drivers. Apparently "info" and "warn" no longer exist in kernel-2.6.29+. I got this to build, load, and work by substituting "printk" in those cases. Reproducible: Always Steps to Reproduce: 1.Boot kernel-2.6.29+ 2.Try to "emerge -a1v lirc" using some devices such as "lirc_imon" 3.Fail because of "info" and "warn" Actual Results: emerge fails, drivers not built, obviously won't load on new kernel. Expected Results: emerge to finish successfully, install drivers, etc. I found a reference to this on the web, and wrote a small sed script to changes instances of "info" and "warn" to "printk", with a few minor flourishes. I'm sure I could have done a better job, but didn't really know what the heck I was doing. But it worked. Short script below: s@info("@printk("INFO: @g s@warn("@printk("WARN: @g s@info(MOD@printk("INFO: " MOD@g This should probably go upstream. On quick perusal it affects more than just lirc_imon, but I don't have a handle on what or how many other devices.
I just double-checked the rest of lirc-0.8.4 and find that "info" is used in lirc_atiusb, lirc_cmdir, lirc_gpio, lirc_imon, lirc_mceusb, lirc_sasem and "warn" is used in lirc_imon and lirc_sasem. This problem isn't unique to lirc_imon. I've fielded one question in gentoo forums from someone having trouble with lirc_mceusb.
I know this is probably a newby question but what do I run the short script against? I looked at the ebuild but didn't see any INFO or WARN
First thing, that's obviously a sed script, not shell or any such. You apply it against the source code of the lirc driver you wish to fix. In my case, I went into "/var/tmp/portage/app-misc/lirc-0.8.4/work.../lirc_imon" and did "sed -f (my sed script) lirc_imon.c >tempfile && mv tempfile lirc_imon.c". If you're doing this with one of the other drivers, you obviously need to be in another place, working with another file.
Created attachment 191116 [details, diff] Suggested patch for making lirc 0.8.4(a) compile for kernel 2.6.29+ This is a temporary patch I checked for the imon driver - should work for the other drivers that used the info/warn/err macros from usb.h. It is temporary because hopefully future lirc versions won't use these macros at all.
Created attachment 191117 [details] An updated ebuild for applying the kernel-2.6.29+ patch The ebuild I use in a local overlay for building lirc with the kernel-2.6.29+ patch, if anyone finds it useful...
ping... 2.6.29 is planned to go stable on 23rd may, would be nice to see this fixed
it IS now stable. And yes, imon_pad does NOT compile. Will try it with the attached files now... Thanks!
works with imon_pad, thanks once more.
I am happily running lirc-0.8.7 unmasked, and was running lirc-0.8.6 prior to that. I think this problem was solved by new releases. Am I the one to fix/close this problem, or is that the developer's job? Should I call it "FIXED" since the newer releases fix the problem and have been promoted to stable?