basic evdev setup

Vladimir Kondratyev vladimir at kondratyev.su
Wed Feb 15 23:45:06 UTC 2017


Hi, Andriy

I can add my 2 cents to Oleksander`s

1. If xf86-input-keyboard is not used as primary keyboard driver, patch 
[1] should be applied to xorg-server to prevent ttyv8<->xorg frame 
buffers interference
2. It`s also worth trying one of PR/196678 patches to xorg devd 
configuration backend [2]
3. To see events going through evdev interface, evemu-record utility 
from evemu package [3] can be used.

[1] https://reviews.freebsd.org/differential/changeset/?ref=218662
[2] https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=196678
[3] https://www.freedesktop.org/software/evemu/

1, 2 and 3 was collected together at https://reviews.freebsd.org/D7588 
but this review is somewhat outdated now.


On 2017-02-16 00:57, Oleksandr Tymoshenko wrote:
> 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


More information about the freebsd-current mailing list