basic evdev setup

Oleksandr Tymoshenko gonzo at freebsd.org
Wed Feb 15 21:57:34 UTC 2017


Andriy Gapon (avg at FreeBSD.org) wrote:
> 
> Oleksandr,
> 
> at the moment the documentation for evdev on FreeBSD is very scarce, even if we
> talk about wiki pages, informal howto-s or blog posts.
> So, I would like to ask your help for a very basic evdev test setup.
> 
> All input devices I have are standard keyboard and a mouse with some extra keys.
> I would like to be able to use the keyboard and the mouse as usual when in the
> console.  And I would like to be able to use the extra mouse keys in X.
> 
> What steps should I take to achieve that?
> I already evdev + EVDEV_SUPPORT on the kernel side in addition to the regular
> keyboard and mouse drivers (atkbdc + ums).
> I have also installed xf86-input-evdev.
> 
> Do I need any additional kernel evedev configuration via sysctl?
> What should I add to xorg configuration to enable evdev for X?

* Adding Vladimir Kondratyev to Cc since he's contributed evdev patch

Hi Andriy,

evdev works in parallel with standard input system, so you don't
have to worry about console input support. 

Current evdev implementation uses following devices as a source
of input events: ukbd(4), ums(4), atkbd(4), kbdmux(4), sysmouse(4)

As you see three of them are actual hardware and two of them are
virtual aggregating devices. You can enable/disable particular
sources using kern.evdev.rcpt_mask sysctl. There are four controlling
bits to enable/disable driver as a source of events:
    bit 0: is set enables sysmouse
    bit 1: is set enables kbdmux
    bit 2: is set enables ums
    bit 3: is set enables atkbd, ukbd

By default sysmouse and kbdmux are enabled. Sysmouse requires
moused to work, so make sure that moused is running on your system.

In your Xorg config you'll need something like this:

Section "InputDevice"
      Identifier "Mouse0"
      Driver     "evdev"
      Option     "Device" "/dev/input/event0"
EndSection

Section "InputDevice"
      Identifier "Keyboard0"
      Driver     "evdev"
      Option     "Device" "/dev/input/event1"
EndSection

I didn't test Xorg thoroughly so there might be some undiscovered
bugs. My target use case was Qt in EGLFS mode. If you have any
questions or bugreports - I'll be glad to answer them

-- 
gonzo


More information about the freebsd-current mailing list