Menu

Which driver to use with MS remote/receiver?

Help
Anonymous
2007-04-08
2013-04-15
  • Anonymous

    Anonymous - 2007-04-08

    Florian,

    First of all great job creating these sets of drivers for the MS MCE keyboard.

    I just wanted to check which driver I should use with my MS MCE keyboard that I want to have working at the same time as my MS MCE remote and USB receiver (as supplied with remote) as it isn't clear (to me) which driver I need to compile (and your answer to cheuschober's question is slightly differently worded).  The MS MCE remote is already working via LIRC and lirc_mceusb2.

    From your web page:

    "mod_mce: Since some new input functions are used in this project, please update your kernel. You have to enable USB and input in your kernel configuration. Building is done by executing 'make'.

    mce_lircd: This is a daemon for those without the USB receiver but with a lirc-compatible receiver. This daemon relies on user input to be activated in your kernel.

    lirc_mod_mce: Due to popular demand, I quickly assembled this driver which is basically a combination of mod_mce and a lirc module. This driver allows you to use the keyboard/mouse features as well as the remote control features at the same time."

    From your reply to cheuschober:

    "mod_mce: Directly registers as a USB device handler for the MCE receiver and generates mouse and keyboard input.

    lirc_mod_mce: The same as mod_mce but also offers a lirc compatible receiver module, i.e. the ir input is also given to lirc.

    mce_lircd: The same as mod_mce with the difference that the input is not taken from the MCE receiver but from a lirc-style receiver module."

    From your web page I had figured I needed mod_mce but I had trouble getting this working with KnoppMyth (Knoppix/Debian-based mythTV box) whereas lirc_mod_mce is now working (fingers crossed!) and this sort of ties in with your response to cheuschober.

    Please can you clarify?

    Many thanks,

    Simon

     
    • Anonymous

      Anonymous - 2007-04-09

      Simon,

      the first version of the driver was mod_mce, which only works with the usb receiver distributed with the mce keyboard (though in that casing there are possibly different receivers but providing the same output). This is a kernel mode which can be loaded with modprobe or insmod and only provides keyboard and mouse functionality.

      For using other receivers (that provide lirc-style raw output), mce_lircd could be used. This also only provides keyboard and mouse functionality. The difference is that this is a user space program that runs in background (daemon) and sends the keyboard/mouse events through uinput into the kernel (which is a kernel feature that has to be compiled into the kernel or whose module has to be loaded). The input from the receiver is taken from a lirc module via a device node (e.g. /dev/lirc/0), so the corresponding driver has to be loaded, too.

      lirc_mod_mce is a kernel module for the usb receiver mentioned above, handles keyboard/mouse action directly, but also is a lirc driver (i.e. provides /dev/lirc/X), so all ir data is sent to lirc (if it is instructed to used that driver). This can be used for reacting on other remotes as well as sending ir data and is de facto an extended mod_mce.

      In reference to the other posts regarding that irTrans receiver:

      The basic lirc architecture is:

      [Transceiver Hardware] - [Driver Module] --(/dev/lirc/X [char device])-- [lirc daemon] --(/dev/lircd [TCP/IP socket])-- [User Program]

      mod_mce has nothing to do with lirc:
      [Transceiver Hardware] - [mod_mce]

      mce_lircd:
      [Transceiver Hardware] - [Driver Module] --(/dev/lirc/X)-- [mce_lircd]

      lirc_mod_mce:
      [Transceiver Hardware] - [lirc_mod_mce] --(/dev/lirc/X)-- [lirc daemon] --(/dev/lircd)-- [User Program]

      Now to the irServer thing:
      [Hardware] -(serial driver)- [irServer] --(/dev/lircd [TCP/IP socket])-- [User Program]

      So no lirc daemon here. irServer emulates a complete lirc daemon.

      Both mod_mce and lirc_mod_mce are based upon lirc_mceusb2. There is a statement on the project page ( http://mod-mce.sourceforge.net/ ), that only one of lirc, mode_mce or mce_lircd can be used. This has changed since lirc_mod_mce is available. In order to get other remotes (also the MCE remote) working the same time the keyboard is working, you need lirc_mod_mce. There also is a lircd.conf provided on that page in which all codes for the keys on the remote are present.

      Installation should be simple.

      Just execute 'make' and (for mod_mce or lirc_mod_mce) you should get a kernel module (*.ko). This could be loaded with insmod directly or (the preferred way) copied into the correct /lib/modules/X directory (where X is the same as the output from 'uname -r'). You could then execute 'depmod -A'. From then on, the module can be loaded with modprobe or directly with init scripts. This assures that all dependencies are also loaded (if your kernel supports that).

      I hope, I could be at least of little help.

      Cheers,

      Florian

       
    • Anonymous

      Anonymous - 2007-04-09

      Florian,

      Thanks for your very complete explanations of which module does what and how each interacts with the hardware.  I found it very useful and I'm sure others will too.

      You may or may not have noticed that I submitted 3 bug reports yesterday - two relate to the kernel version being checked to make sure it is 2.6.19 to use linux/usb/input.h whereas the change from linux/usb_input.h to linux/usb/input.h came with 2.6.18.  The third questions whether the correct kernel version is being checked to compile lirc_mod_mce - you check for 2.6.5 yet the header suggests 2.6.10 is required (as is looked for with mod_mce).

      Hopefully the patches I've provided will help correct your code.  Whilst I'm not a developer I hope that my little contribution is helpful.

      Simon

       
      • Anonymous

        Anonymous - 2007-04-09

        Simon,

        I did not notice the bug reports, because I simply forgot to set my e-mail address for notifications. Unfortunately I did not test the kernel version stuff very well, so I just believe your results. I am going to change the code tomorrow, since now my machine is somewhat under load and it is no fun working with it.

        Regards,

        Florian

         
        • Anonymous

          Anonymous - 2007-04-13

          I am sorry that there has been no change at that 'tomorrow' metioned. I simply was a bit busy, but be sure, I did not forget about that.

          Florian

           
          • Anonymous

            Anonymous - 2007-04-17

            No problem with the delay other than inconvenience factor - the driver works after all (the code just needs tweaking for a particular set of users and it only needs doing once).

            If it helps I'll submit my diffs in unified format as patches (rather than attached to bug reports).

            Also what do both lirc_mod_mce and mod_mce need from compat.h with kernel >= 2.6.19 but config.h with kernel < 2.6.19.  Haven't found a reference to something changing with kernel 2.6.19.

            Many thanks,

            Simon

             
    • Anonymous

      Anonymous - 2007-04-17

      Hi Simon,

      I just uploaded new versions with the changes you proposed.

      Regards,

      Florian

       
      • Anonymous

        Anonymous - 2007-04-17

        Florian,

        Thanks!

        However unfortunately you missed one "cosmetic" change with lirc_mod_mce - the error message associated with minimum kernel requirement still refers to version 2.6.5 rather than 2.6.10.  Whilst it doesn't affect compilation & use it could lead to confusion.

        Simon

         
        • Anonymous

          Anonymous - 2007-04-17

          Simon,

          I just changed that (w/o creating a new release), since there were not that much downloads.

          Florian

           
          • Anonymous

            Anonymous - 2007-04-17

            Florian,

            Possibly just the one?  Me! ;-)

            Many thanks,

            Simon

             
    • Andre

      Andre - 2007-05-31

      Hi Florian,
      great job!
      I am running Ubuntu Feisty on a Tyrannosaurus Rex (Pentium III 450Mhz, 128 MB RAM), with a DWL-G510 Wi-fi card ans MCE Remote keyboard and receiver.
      I installed lirc 0.8.1 and when I issue 'irw' I get the response for the media keys.
      I tried installing both mod_mce and lirc_mod_mce following your suggestions, but I am in troubles: when I use mod_mce, modprobe is OK, but I can see only media keys, and when I use lirc_mod_mce, I get "Module not found" when I try 'modprobe lirc_mod_mce'.
      I am surely making a mess...
      Thank you in advance for your help!!

      Andrea

       
      • Anonymous

        Anonymous - 2007-06-01

        Hi Andrea,

        when you use mod_mce and still can see the media keys, then most probably lirc_mceusb2 still is loaded (check with lsmod). But when you also want to use the media keys, please use lirc_mod_mce.

        You can't load it, because probably is not installed correctly. The .ko file needs to be copied somewhere under /lib/modules/xxx/ where xxx is the output of uname -r (i.e. your kernel version). After that you like to run depmod -A so that modprobe is able to find the module.

        If you don't know how to unload lirc_mceusb2, here's the solution, the solution is running rmmod lirc_mceusb2

        There may be more steps necessary to prevent your system of loading lirc_mceusb2 automatically each time you re-boot, but that depends on your distribution. I don't use Ubuntu, so I cannot give you any advice on that.

        Cheers,

        Florian

         
        • Andre

          Andre - 2007-06-02

          Hi Florian,

          IT WORKS!!

          Congratulations for the driver and thank you so much for your great and superfast help.

          For other Ubuntu users' sake, here are some additional infos:

          - lirc_mod_mce.ko file needs to copied in /lib/modules/xxx/misc where xxx is the output of uname -r

          - in order to unload lirc_mceusb2 and load lirc_mod_mce at boot:
          sudo gedit /etc/lirc/hardware.conf
          and replace MODULES = lirc_mceuscb2 with MODULES = lirc_mod_mce.

          Hi

          Andrea

           

Log in to post a comment.