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