# [SOLVED] scrollwheel misbehaving / switching to evdev

## red-wolf76

Evdev is getting on my nerves. It's working perfectly with my keyboard (a Logitech diNovo Bluetooth) even though I haven't yet managed to get bt to work automagically after booting, but it giving me heartburn with the mouse. I have the cordless MX900 that came with the keyboard (3 axes, 8 buttons) as well as a "simpler" Logitech Optical Mouse (3 axes, 3 buttons). I also have a wacom tablet, which isn't connected currently.

Point & Click works, as do buttons 1 through 3. (both mice). When using the scroll wheel... well... hilarity ensues. The problem being that the events are completely off. Scrolling down sends me all the way back in the browser tab history. So I guess I only need to tell Xorg how to arrange the buttons correctly.

I've searched high and wide but all solutions offered in the threads that can be found so far haven't cut any cheese. It seems as if Xorg sees the mouse options I care to enter into xorg.conf - only to completely ignore them.

Here's my

```
Section "ServerLayout"

    Identifier     "Layout0"

    Screen      0  "Screen0" 0 0

    InputDevice    "Mouse0"     "SendCoreEvents"

    InputDevice    "stylus"     "SendCoreEvents"

    InputDevice    "cursor"     "SendCoreEvents"

    Option         "Xinerama" "false"

    Option      "IgnoreAPI"

EndSection

Section "ServerFlags"

    Option         "AutoAddDevices"

    Option         "AutoEnableDevices"

EndSection

Section "InputDevice"

    Identifier     "Mouse0"

    Driver      "evdev"

    Option         "CorePointer"

    Option         "Protocol" "auto"

    Option         "Device" "/dev/input/mice"

    Option         "Resolution" "1200"

    Option         "Buttons" "8"

    Option         "ZAxisMapping" "7 8"

    Option         "Emulate3Buttons" "false"

EndSection

Section "InputDevice"

     Driver        "hid-wacom"

     Identifier    "stylus"

     Option        "Device"       "/dev/input/wacom-bamboo-one"

     Option        "Type"         "stylus"

     Option        "USB"          "on"                 # USB ONLY

     Option        "Mode"         "Absolute"           # other option: "Relative"

     Option        "Vendor"       "WACOM"

     Option        "Threshold"    "5"   # the official linuxwacom howto advises this line

EndSection

Section "InputDevice"

     Driver        "hid-wacom"

     Identifier    "cursor"

     Option        "Device"       "/dev/input/wacom-bamboo-one"

     Option        "Type"         "cursor"

     Option        "USB"          "on"                  # USB ONLY

     Option        "Mode"         "Absolute"            # other option: "Absolute"

     Option        "Vendor"       "WACOM"

EndSection

Section "Monitor"

    Identifier     "Monitor0"

    VendorName     "LG"

    ModelName      "FLATRON L2000CE"

    HorizSync       28.0 - 83.0

    VertRefresh     56.0 - 75.0

    Option         "DPMS"

    ModeLine "1400x1050" 121.75  1400 1488 1632 1864  1050 1053 1057 1089 +hsync +vsync

EndSection

Section "Device"

    Identifier      "Videocard0"

    Driver      "nvidia"

    VendorName      "NVIDIA Corporation"

    BoardName      "GeForce 7600 GS"

    Option      "Coolbits" "true"

    Option      "RenderAccel" "true"

    Option      "AllowGLXWithComposite" "true"

    Option      "NoPowerConnectorCheck" "true"

    Option      "Backingstore" "true"

    Option      "Triplebuffer" "true"

    Option      "AddARGBGLXVisuals" "true"

    Option      "NoLogo" "true"

    Option      "FlatPanelProperties" "Scaling = native"

EndSection

Section "Screen"

    Identifier     "Screen0"

    Device         "Videocard0"

    Monitor        "Monitor0"

    DefaultDepth    24

    SubSection     "Display"

        Depth       24

   Virtual     1400 1050

    EndSubSection

EndSection

Section "Extensions"

    Option      "Composite" "Enable"

EndSection
```

And my

```
Portage 2.2_rc67 (default/linux/x86/10.0/desktop/gnome, gcc-4.4.3, glibc-2.11-r1, 2.6.33-gentoo-r1 i686)

=================================================================

System uname: Linux-2.6.33-gentoo-r1-i686-AMD_Athlon-tm-_XP_3000+-with-gentoo-2.0.1

Timestamp of tree: Thu, 06 May 2010 16:45:01 +0000

app-shells/bash:     4.1_p5

dev-java/java-config: 2.1.11

dev-lang/python:     2.6.5-r2, 3.1.2-r3

dev-util/cmake:      2.8.1-r1

sys-apps/baselayout: 2.0.1

sys-apps/openrc:     0.6.1-r1

sys-apps/sandbox:    2.2

sys-devel/autoconf:  2.13, 2.65

sys-devel/automake:  1.8.5-r4, 1.9.6-r3, 1.10.3, 1.11.1

sys-devel/binutils:  2.20.1

sys-devel/gcc:       4.4.3-r2

sys-devel/gcc-config: 1.4.1

sys-devel/libtool:   2.2.6b

virtual/os-headers:  2.6.33

ACCEPT_KEYWORDS="x86"

ACCEPT_LICENSE="* -@EULA dlj-1.1"

CBUILD="i686-pc-linux-gnu"

CFLAGS="-O2 -march=native -pipe"

CHOST="i686-pc-linux-gnu"

CONFIG_PROTECT="/etc /usr/share/X11/xkb /var/lib/hsqldb"

CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo"

CXXFLAGS="-O2 -march=native -pipe"

DISTDIR="/usr/portage/distfiles"

EMERGE_DEFAULT_OPTS="--with-bdeps=y"

FEATURES="assume-digests distlocks fixpackages news parallel-fetch preserve-libs protect-owned sandbox sfperms strict unmerge-logs unmerge-orphans userfetch"

GENTOO_MIRRORS="ftp://linux.rz.ruhr-uni-bochum.de/gentoo-mirror ftp://ftp.uni-erlangen .de/pub/mirrors/gentoo ftp://ftp.join.uni-muenster.de/pub/linux/distributions/gentoo ftp://ftp.wh2.tu-dresden.de/pub/mirrors/gentoo ftp://ftp-stud.fht-esslingen.de/pub/Mirrors/gentoo ftp://ftp.gentoo.mesh-solutions.com/gentoo ftp://ftp.tu-clausthal.de/pub/linux/gentoo ftp://sunsite.informatik.rwth-aachen.de/pub/Linux/gentoo"

LANG="de_DE.utf8"

LC_ALL=""

LDFLAGS="-Wl,-O1"

LINGUAS="de"

MAKEOPTS="-j2"

PKGDIR="/usr/portage/packages"

PORTAGE_CONFIGROOT="/"

PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"

PORTAGE_TMPDIR="/var/tmp"

PORTDIR="/usr/portage"

PORTDIR_OVERLAY="/usr/local/portage /var/lib/layman/enlightenment-niifaq"

SYNC="rsync://rsync.de.gentoo.org/gentoo-portage"

USE="3dnow 3dnowext X Xaw3d a52 aac acl acpi alsa berkdb bluetooth branding bzip2 cairo cdparanoia cdr cli consolekit cracklib crypt cups cxx dbus dmi dri dts dvd dvdr emboss encode evo exif fam ffmpeg firefox flac fortran gconf gdbm gdu gif gnome gnome-keyring gnutls gpm gstreamer gtk iconv ipv6 java jpeg lcms libnotify mad mikmod mmap mmx mmxext mng modules moznopango mp3 mp4 mpeg mudflap nautilus ncurses nforce2 nfs nls nptl nptlonly nsplugin nvidia odbc offensive ogg opengl openmp pam pango pcre pdf perl pidgin png policykit ppds pppd python python3 qt3support qt4 readline reflection reiserfs rtc samba sdl session spell spl sqlite sse ssl startup-notification svg sysfs tcpd threads thunderbird tiff truetype unicode usb v4l v4l2 vorbis x264 x86 xcb xml xorg xulrunner xv xvid xvmc zlib" ALSA_CARDS="intel8x0 intel8x0m mpu401 usb-audio virmidi" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CAMERAS="canon ptp2" ELIBC="glibc" INPUT_DEVICES="evdev joystick mouse wacom" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="de" RUBY_TARGETS="ruby18" USERLAND="GNU" VIDEO_CARDS="nouveau nvidia nv vesa v4l vga" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account" 

Unset:  CPPFLAGS, CTARGET, FFLAGS, INSTALL_MASK, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
```

Tried it using no input devices at all already - to no avail. Mouse will work, but scrollwheel is the plague.

Any pointers?

EDITH See last post. Solved by using the Option "ButtonMapping" "1 2 3 7 8 ..." in the corresponding InputDevice Section.

----------

## NeddySeagoon

red-wolf76,

What version of Xorg do you have ?

Look at the top of /var/log/Xorg.0.log as what you need to do changes at version 1.8.0.

Are you deliberately not using hal?

At least, its not in your USE flags.

```
Section "InputDevice"

    Identifier     "Mouse0"

    Driver      "evdev"

    Option         "CorePointer"

    Option         "Protocol" "auto"

    Option         "Device" "/dev/input/mice" 
```

This is confused.

evdev uses /dev/input/eventX nodes for its input events, not /dev/input/mice ... thats for the old kernel and Xorg driver.

You have

```
     Option         "AutoAddDevices"

    Option         "AutoEnableDevices" 
```

in which case all your Section "InputDevice" sections are ignored but that also needs hald running and Xorg built with the hal USE flag

----------

## red-wolf76

Hi Neddy, thanks for helping.

My xorg.conf is a dried old remnant.  :Smile:  I deliberately have eliminated hal from my make.conf, as it is being merged into udev. It is still installed - and running currently - until it can be safely assumed that everything that used it was turned to udev. Call it backwards compatibility paranoia...  :Cool: 

Here's my versions:

```
These are the packages that would be merged, in order:

[ebuild   R   ] sys-fs/udev-151-r4  USE="extras -devfs-compat -old-hd-rules (-selinux) -test" 0 kB

[ebuild   R   ] sys-apps/hal-0.5.14-r2  USE="X acpi consolekit crypt policykit -apm -debug -dell -disk-partition -doc -laptop (-selinux)" 0 kB

[ebuild   R   ] x11-base/xorg-server-1.8.0  USE="ipv6 kdrive nptl udev xorg -dmx -doc -hal -minimal -static-libs -tslib" 0 kB
```

I suspected that having AutoAddDevices and AutoEnableDevices options would trample on sections, but how on earth am I supposed to correct stuff if things go wrong (as in my case with the mouse)? Is it really "all or nothing"? As my keyboard was working, I'm quite comfy with not having a section for it, but it's evident that the mouse still needs work.

Do I have to fiddle with udev somewhere?

----------

## NeddySeagoon

red-wolf76,

Ahhhh.  xorg-1.8. with udev and without hal.

You now have /etc/X11/xorg.conf.d/* which contains the default configurations for Xorg and an  /etc/X11/xorg.conf that overrides the defaults.

Some of the section names have changed. To customise input devices, copy the section of interest from /etc/X11/xorg.conf.d/10-evdev.conf, to xorg.conf, change the identifier, then the options are pretty much the same as xorg prior to hal.

The man page has been updated too - see man xorg.conf

----------

## red-wolf76

Ok, I've looked into the man page and copied some of the stuff from /etc/X11/xorg.conf.d/05-keyboard.conf and /etc/X11/xorg.conf.d/10-evdev.conf over to xorg.conf... It now looks like this:

```
Section "ServerLayout"

    Identifier     "Layout0"

    Screen      0  "Screen0" 0 0

    InputDevice    "german keyboard"  "CoreKeyboard"

    InputDevice    "Mouse0"     "CorePointer"

    InputDevice    "Mouse1"     "SendCoreEvents"

#    InputDevice    "stylus"     "SendCoreEvents"

#    InputDevice    "cursor"     "SendCoreEvents"

    Option         "Xinerama" "false"

    Option      "IgnoreABI"

EndSection

#Section "Files"

#    ModulePath      "/usr/lib/xorg/modules/extensions/nvidia"

#    ModulePath      "/usr/lib/xorg/modules/drivers"

#    ModulePath      "/usr/lib/xorg/modules"

#    RgbPath         "/usr/lib/X11/rgb"

#EndSection

#Section "Module"

#    Load           "dbe"

#    Load           "extmod"

##    Load           "type1"

##    Load           "freetype"

#    Load           "glx"

#EndSection

#Section "ServerFlags"

#    Option         "AutoAddDevices"

#    Option         "AutoEnableDevices"

#    Option         "AllowEmptyInput" 

#EndSection

Section "InputDevice"

        Identifier "Mouse0"

        Driver "evdev"

#        MatchIsPointer "on"

#        MatchDevicePath "/dev/input/event*"

        Option "AutoServerLayout"

        Option "SendCoreEvents"

        Option "Protocol" "auto"

        Option "Resolution" "1200"

        Option "Buttons" "8"

        Option "ZAxisMapping" "7 8"

        Option "Emulate3Buttons" "false"

EndSection

Section "InputDevice"

        Identifier "Mouse1"

        Driver "evdev"

#        MatchIsPointer "on"

#        MatchDevicePath "/dev/input/event*"

        Option "AutoServerLayout"

        Option "SendCoreEvents"

        Option "Protocol" "auto"

        Option "Resolution" "1200"

        Option "Buttons" "5"

        Option "ZAxisMapping" "4 5"

        Option "Emulate3Buttons" "false"

EndSection

Section "InputDevice"

        Identifier "german keyboard"

        Driver "evdev"

#        MatchIsKeyboard "on"

#        MatchDevicePath "/dev/input/event*"

        Option "AutoServerLayout"

        Option "SendCoreEvents"

        Option "xkbmodel" "evdev"

        Option "xkblayout" "de"

        Option "xkbvariant" "deadgraveacute"

        Option "xkbrules" "base"

EndSection

#Section "InputClass"

#        Identifier "evdev tablet catchall"

#        MatchIsTablet "on"

#        MatchDevicePath "/dev/input/event*"

#        Driver "evdev"

#EndSection

#Section "InputDevice"

#     Driver        "hid-wacom"

#     Identifier    "stylus"

#     Option        "Device"       "/dev/input/wacom-bamboo-one"

#     Option        "Type"         "stylus"

#     Option        "USB"          "on"                 # USB ONLY

#     Option        "Mode"         "Absolute"           # other option: "Relative"

#     Option        "Vendor"       "WACOM"

#     Option        "tilt"         "on"  # add this if your tablet supports tilt

#     Option        "Threshold"    "5"   # the official linuxwacom howto advises this line

#EndSection

#Section "InputDevice"

#     Driver        "hid-wacom"

#     Identifier    "cursor"

#     Option        "Device"       "/dev/input/wacom-bamboo-one"

#     Option        "Type"         "cursor"

#     Option        "USB"          "on"                  # USB ONLY

#     Option        "Mode"         "Absolute"            # other option: "Absolute"

#     Option        "Vendor"       "WACOM"

#EndSection

Section "Monitor"

    # HorizSync source: edid, VertRefresh source: edid

    Identifier     "Monitor0"

    VendorName     "LG"

    ModelName      "FLATRON L2000CE"

    HorizSync       28.0 - 83.0

    VertRefresh     56.0 - 75.0

    Option         "DPMS"

    ModeLine "1400x1050" 121.75  1400 1488 1632 1864  1050 1053 1057 1089 +hsync +vsync

EndSection

Section "Device"

    Identifier "Videocard0"

    Driver "nvidia"

    VendorName "NVIDIA Corporation"

    BoardName "GeForce 7600 GS"

#    Option "ExactModeTimingsDVI" "true" 

#    Option    "NvAGP" "1"

    Option "Coolbits" "true"

    Option "RenderAccel" "true"

#    Option "DisableGLXRootClipping" "true"

    Option "AllowGLXWithComposite" "true"

    Option "NoPowerConnectorCheck" "true"

    Option "Backingstore" "true"

    Option "Triplebuffer" "true"

    Option "AddARGBGLXVisuals" "true"

    Option "NoLogo" "true"

#    Option "UseEDID" "true"

    Option "FlatPanelProperties" "Scaling = native"

EndSection

Section "Screen"

    Identifier     "Screen0"

    Device         "Videocard0"

    Monitor        "Monitor0"

    DefaultDepth    24

#    Option         "MetaModes" "1400x1050 1280x1024 1024x768 640x480"

    SubSection     "Display"

        Depth       24

   Virtual     1400 1050

#        Modes      "1400x1050"

    EndSubSection

EndSection

Section "Extensions"

    Option      "Composite" "Enable"

#    Option      "RENDER"    "Enable"

EndSection
```

Problem persists, however... I noted a difference between the sections "InputDevice" and "InputClass" in the man page. Looks like the latter is more general and the former more specific... But I'm unsure about the device path option and obviously, I'm still doing something wrong here, as shows the log:

```
[187069.866] (II) config/udev: Adding input device Logitech USB-PS/2 Optical Mouse (/dev/input/event3)

[187069.866] (**) Logitech USB-PS/2 Optical Mouse: Applying InputClass "evdev pointer catchall"

[187069.866] (**) Logitech USB-PS/2 Optical Mouse: always reports core events

[187069.866] (**) Logitech USB-PS/2 Optical Mouse: Device: "/dev/input/event3"

[187069.866] (II) Logitech USB-PS/2 Optical Mouse: Found 3 mouse buttons

[187069.866] (II) Logitech USB-PS/2 Optical Mouse: Found scroll wheel(s)

[187069.866] (II) Logitech USB-PS/2 Optical Mouse: Found relative axes

[187069.866] (II) Logitech USB-PS/2 Optical Mouse: Found x and y relative axes

[187069.866] (II) Logitech USB-PS/2 Optical Mouse: Configuring as mouse

[187069.866] (**) Logitech USB-PS/2 Optical Mouse: YAxisMapping: buttons 4 and 5

[187069.866] (**) Logitech USB-PS/2 Optical Mouse: EmulateWheelButton: 4, EmulateWheelInertia: 10, EmulateWheelTimeout: 200

[187069.866] (II) XINPUT: Adding extended input device "Logitech USB-PS/2 Optical Mouse" (type: MOUSE)

[187069.867] (**) Logitech USB-PS/2 Optical Mouse: (accel) keeping acceleration scheme 1

[187069.867] (**) Logitech USB-PS/2 Optical Mouse: (accel) acceleration profile 0

[187069.867] (**) Logitech USB-PS/2 Optical Mouse: (accel) acceleration factor: 2.000

[187069.867] (**) Logitech USB-PS/2 Optical Mouse: (accel) acceleration threshold: 4

[187069.867] (II) Logitech USB-PS/2 Optical Mouse: initialized for relative axes.

[187069.867] (II) config/udev: Adding input device Logitech USB-PS/2 Optical Mouse (/dev/input/mouse0)

[187069.867] (EE) No input driver/identifier specified (ignoring)

[187069.868] (II) config/udev: Adding input device Logitech USB Receiver (/dev/input/event4)

[187069.868] (**) Logitech USB Receiver: Applying InputClass "german keyboard"

[187069.868] (**) Logitech USB Receiver: Applying InputClass "evdev keyboard catchall"

[187069.868] (**) Logitech USB Receiver: always reports core events

[187069.868] (**) Logitech USB Receiver: Device: "/dev/input/event4"

[187069.868] (II) Logitech USB Receiver: Found keys

[187069.868] (II) Logitech USB Receiver: Configuring as keyboard

[187069.868] (II) XINPUT: Adding extended input device "Logitech USB Receiver" (type: KEYBOARD)

[187069.868] (**) Option "xkb_rules" "evdev"

[187069.868] (**) Option "xkb_model" "evdev"

[187069.868] (**) Option "xkb_layout" "de"

[187069.868] (**) Option "xkb_variant" "deadgraveacute"

[187069.869] (II) config/udev: Adding input device Logitech USB Receiver (/dev/input/event5)

[187069.869] (**) Logitech USB Receiver: Applying InputClass "german keyboard"

[187069.869] (**) Logitech USB Receiver: Applying InputClass "evdev pointer catchall"

[187069.869] (**) Logitech USB Receiver: Applying InputClass "evdev keyboard catchall"

[187069.870] (**) Logitech USB Receiver: always reports core events

[187069.870] (**) Logitech USB Receiver: Device: "/dev/input/event5"

[187069.870] (II) Logitech USB Receiver: Found 12 mouse buttons

[187069.870] (II) Logitech USB Receiver: Found scroll wheel(s)

[187069.870] (II) Logitech USB Receiver: Found relative axes

[187069.870] (II) Logitech USB Receiver: Found x and y relative axes

[187069.870] (II) Logitech USB Receiver: Found absolute axes

[187069.870] (II) Logitech USB Receiver: Found keys

[187069.870] (II) Logitech USB Receiver: Configuring as mouse

[187069.870] (II) Logitech USB Receiver: Configuring as keyboard

[187069.870] (**) Logitech USB Receiver: YAxisMapping: buttons 4 and 5

[187069.870] (**) Logitech USB Receiver: EmulateWheelButton: 4, EmulateWheelInertia: 10, EmulateWheelTimeout: 200

[187069.870] (II) XINPUT: Adding extended input device "Logitech USB Receiver" (type: KEYBOARD)

[187069.870] (**) Option "xkb_rules" "evdev"

[187069.870] (**) Option "xkb_model" "evdev"

[187069.870] (**) Option "xkb_layout" "de"

[187069.870] (**) Option "xkb_variant" "deadgraveacute"

[187069.870] (**) Logitech USB Receiver: (accel) keeping acceleration scheme 1

[187069.870] (**) Logitech USB Receiver: (accel) acceleration profile 0

[187069.870] (**) Logitech USB Receiver: (accel) acceleration factor: 2.000

[187069.871] (**) Logitech USB Receiver: (accel) acceleration threshold: 4

[187069.871] (II) Logitech USB Receiver: initialized for relative axes.

[187069.871] (WW) Logitech USB Receiver: ignoring absolute axes.

[187069.871] (II) config/udev: Adding input device Logitech USB Receiver (/dev/input/mouse1)

[187069.871] (**) Logitech USB Receiver: Applying InputClass "german keyboard"

[187069.871] (**) Logitech USB Receiver: always reports core events

[187069.871] (**) Logitech USB Receiver: Device: "/dev/input/mouse1"

[187069.871] (EE) ioctl EVIOCGNAME failed: Inappropriate ioctl for device

[187069.871] (II) UnloadModule: "evdev"

[187069.871] (EE) PreInit returned NULL for "Logitech USB Receiver"

[187069.876] (II) config/udev: Adding input device AT Translated Set 2 keyboard (/dev/input/event1)

[187069.877] (**) AT Translated Set 2 keyboard: Applying InputClass "german keyboard"

[187069.877] (**) AT Translated Set 2 keyboard: Applying InputClass "evdev keyboard catchall"

[187069.877] (**) AT Translated Set 2 keyboard: always reports core events

[187069.877] (**) AT Translated Set 2 keyboard: Device: "/dev/input/event1"

[187069.877] (II) AT Translated Set 2 keyboard: Found keys

[187069.877] (II) AT Translated Set 2 keyboard: Configuring as keyboard

[187069.877] (II) XINPUT: Adding extended input device "AT Translated Set 2 keyboard" (type: KEYBOARD)

[187069.877] (**) Option "xkb_rules" "evdev"

[187069.877] (**) Option "xkb_model" "evdev"

[187069.877] (**) Option "xkb_layout" "de"

[187069.877] (**) Option "xkb_variant" "deadgraveacute"

[187069.878] (II) config/udev: Adding input device PC Speaker (/dev/input/event0)

[187069.878] (EE) No input driver/identifier specified (ignoring)
```

----------

## krinn

to quote someone that might know the answer....

bah, look at what this wise guy said there : https://forums.gentoo.org/viewtopic-p-6269843.html#6269843

to pray the wise guy it's there: https://forums.gentoo.org/viewtopic-t-819042-highlight-.html

----------

## red-wolf76

There is a difference between Section "InputDevice" and Section "InputClass". They are not equivalent, as per the man page...

```
The section names are:

(...)

           InputDevice    Input device description

           InputClass     Input class description

(...)

       The  following obsolete section names are still recognised for compati‐

       bility purposes.  In new config files, the InputDevice  section  should

       be used instead.

(...)
```

----------

## krinn

well, i was having trouble to let xorg understand my change within xorg.conf.

after removing any inputdevice section from xorg.conf, xorg was doing as previously: doing what he want to do with my keyboard and mouse.

but after modifying InputClass section from xorg.conf.d this time: xorg start doing some default mouse & keyboard and then switch to option he found in xorg.conf.d directory (in my case, switch keyboard to fr)

```

cat /etc/X11/xorg.conf | grep -i Input

# Uncomment this to disable dynamically modifying the input device

head /etc/X11/xorg.conf

# **********************************************************************

# Server flags section.  This contains various server-wide Options.

# **********************************************************************

# mitsu H: 30.0-96 V: 50.0-1620

# iiyama H: 30.0-132 V: 50.0-200

Section "ServerLayout"

    Identifier     "X.org Configured"

    Screen      0  "Screen0" 0 0

EndSection

ls /etc/X11/xorg.conf.d/

10-evdev.conf  97-evdev.conf

cat /etc/X11/xorg.conf.d/97-evdev.conf 

Section "InputClass"

   Identifier "mouse-all"

        MatchIsPointer "on"

        MatchDevicePath "/dev/input/event*"

        Driver "evdev"

        Option "AutoServerLayout" "on"

EndSection

Section "InputClass"

        Identifier "keyboard-all"

        MatchIsKeyboard "on"

        MatchDevicePath "/dev/input/event*"

        Driver "evdev"

        Option "XkbLayout" "fr"

        Option "XkbRules"  "xorg"

        Option "XkbModel"  "pc105"

        Option "AutoServerLayout" "on"

EndSection

```

why? not sure, my best guess is that like my xorg.log show me, when starting udev/hal/xorg (pick the name of the dog you wish to kill) configure devices in strange manner (my keyboard is detect as a keyboard, then as mouse) and if you specify an option a keyboard could handle, but not a mouse, xorg fail to setup the keyboard as i was wishing.

Next to that, he found again the keyboard (maybe some other options of the keyboard as that device have many option in my case) and default to a "default" keyboard layout because he will ignore the 1st inputSection as it as already fail 1 time = options ignore and xorg use a default schem to ignit my keyboard.

So: always end with a working keyboard, but the fr option was always drop.

but after this faulty starting, the keyboard is init and work, and then xorg apply the more target inputclass options and this time he won't fail because he will not try to apply them when detecting the device, but to an already detect (and well identified) keyboard.

and as i see in your xorg.log, you seems to have the same problem:

detect: USB Receiver set as keyboard

detect: USB Receiver set as a mouse

error setting a parameter : (EE) ioctl EVIOCGNAME failed: Inappropriate ioctl for device

unloading module: (II) UnloadModule: "evdev"

and again, confirming your USB receiver (and options) will be dropped: (EE) PreInit returned NULL for "Logitech USB Receiver"

As i said, i don't really know why xorg/hal/udev do that, but this was best explain i could think of (and how i pass over my problem).

And so, passing options to inputclass instead of inputdevice was my solve (as neddy show in that thread, seems not only for me)

----------

## red-wolf76

Ah, I see now what you meant...

Trouble is, my Logitech USB Receiver is supposed to (and does) work both as a mouse and a keyboard. I guess it should be possible to develop an input class that specifically adresses this, but so far I haven't found it.

I'll keep doctoring and will mark this solved once I've fixed it.

----------

## red-wolf76

Ho-hum... still no luck. I tried specifically limiting the Buttons, but all in vain. Xorg insist on not just using the info provided in xorg.conf, but also the fallback-stuff in the xorg.conf.d. As if there was no precedence whatsoever or if there is a precedence it's either misleadingly referred to in the manuals or ignored somehow.

This setting up needs a more thorough HOWTO. At present the documentation is too abstract to actually help.

----------

## VoidMage

As I noted few times already, 'Option "XkbRules"  "xorg"' is both

invalid and redundant for evdev driver.

Also a minor note: no ZAxisMapping for evdev driver, it's

YAxisMapping

Try using 'xinput test' (or 'xinput test-xi2' or 'xev') on your mouse, to see if the mapping is correct.

----------

## red-wolf76

 *VoidMage wrote:*   

> As I noted few times already, 'Option "XkbRules"  "xorg"' is both
> 
> invalid and redundant for evdev driver.

 Yes, well... If I run into trouble with my keyboard, I will keep that in mind. As for now, my trouble concerns the mouse setup, for which I am not only using the MX900 that came with the diNovo set, but a USB cabled Pilot Optical. Or am I to think that having invalid/redundant info in a whole different device class section confuses the driver so much it borks up the scroll wheel?!

 *Quote:*   

> Also a minor note: no ZAxisMapping for evdev driver, it's
> 
> YAxisMapping

 Yes, I have tried both, with the identical result of FAIL.  :Sad: 

 *Quote:*   

> Try using 'xinput test' (or 'xinput test-xi2' or 'xev') on your mouse, to see if the mapping is correct.

 Ok, I get the following info:

```
user@hostname ~ $ xinput list

⎡ Virtual core pointer                       id=2   [master pointer  (3)]

⎜   ↳ Virtual core XTEST pointer                 id=4   [slave  pointer  (2)]

⎜   ↳ Logitech USB-PS/2 Optical Mouse            id=7   [slave  pointer  (2)]

⎣ Virtual core keyboard                      id=3   [master keyboard (2)]

    ↳ Virtual core XTEST keyboard                id=5   [slave  keyboard (3)]

    ↳ Logitech diNovo de keyboard                id=6   [slave  keyboard (3)]
```

```
user@hostname ~ $ xinput get-button-map "Logitech USB-PS/2 Optical Mouse"

1 2 3 4 5 6 7 
```

This is already b*ll*cks! The mouse only has five buttons.

EDITH says: the mapping can be changed to

```
user@hostname ~ $ xinput set-button-map "Logitech USB-PS/2 Optical Mouse" 1 2 3 7 8 
```

 and it'll work for the Optical Mouse. The MX900 has (if I can count correctly) 10 Buttons. So I'll try setting that up next.

----------

## VoidMage

Well, quite obviously InputDevice and InputClass are not

equivalent, so the construct from your previous post can't work.

----------

## red-wolf76

 *VoidMage wrote:*   

> Well, quite obviously InputDevice and InputClass are not
> 
> equivalent, so the construct from your previous post can't work.

 

Which previous post? Do you mean the one in which I'm saying the exact same thing that you've now "obviously" pointed out?   :Rolling Eyes:  To quote: *red-wolf76 wrote:*   

> There is a difference between Section "InputDevice" and Section "InputClass". They are not equivalent, as per the man page... 

 

You did realize that I have been switching back and forth between using InputDevice and InputClass and maybe was using stuff that I merely commented out so it would be easier to switch, did you?

Actually, it has now been fully solved using the following xorg.conf (minus commented lines):

```
Section "ServerLayout"

    Identifier     "Layout0"

    Screen      0  "Screen0" 0 0

    InputDevice    "Logitech diNovo de keyboard" "CoreKeyboard"

    InputDevice    "Logitech USB-PS/2 Optical Mouse" "CorePointer"

    InputDevice    "Logitech MX 900" "SendCoreEvents"

   Option      "IgnoreABI"

EndSection

Section "ServerFlags"

    Option         "Xinerama" "false"

    Option         "AutoAddDevices" "false"

    Option         "AutoEnableDevices" "true"

    Option         "AllowEmptyInput" 

EndSection

Section "InputDevice"

        Identifier "Logitech USB-PS/2 Optical Mouse"

        Driver "evdev"

        Option "Device" "/dev/input/event3"

        Option "SendCoreEvents" "true"

        Option "Protocol" "event"

        Option "Resolution" "1200"

        Option "ButtonMapping" "1 2 3 7 8"

        Option "EmulateWheel" "false"

EndSection

Section "InputDevice"

        Identifier "Logitech diNovo de keyboard"

        Driver "evdev"

        Option "Device" "/dev/input/event4"

        Option "AutoServerLayout"

        Option "SendCoreEvents"

        Option "xkbmodel" "evdev"

        Option "xkblayout" "de"

        Option "xkbvariant" "deadgraveacute"

        Option "xkbrules" "base"

EndSection

Section "InputDevice"

        Identifier "Logitech MX900"

        Driver "evdev"

        Option "Device" "/dev/input/event5"

        Option "SendCoreEvents"

        Option "Protocol" "event"

        Option "Resolution" "1200"

        Option "Buttons" "10"

        Option "ButtonMapping" "1 2 3 7 8 4 5 6 9 10"

        Option "EmulateWheel" "false"

EndSection

Section "Monitor"

    # HorizSync source: edid, VertRefresh source: edid

    Identifier     "Monitor0"

    VendorName     "LG"

    ModelName      "FLATRON L2000CE"

    HorizSync       28.0 - 83.0

    VertRefresh     56.0 - 75.0

    Option         "DPMS"

    ModeLine "1400x1050" 121.75  1400 1488 1632 1864  1050 1053 1057 1089 +hsync +vsync

EndSection

Section "Device"

    Identifier "Videocard0"

    Driver "nvidia"

    VendorName "NVIDIA Corporation"

    BoardName "GeForce 7600 GS"

    Option "Coolbits" "true"

    Option "RenderAccel" "true"

    Option "AllowGLXWithComposite" "true"

    Option "NoPowerConnectorCheck" "true"

    Option "Backingstore" "true"

    Option "Triplebuffer" "true"

    Option "AddARGBGLXVisuals" "true"

    Option "NoLogo" "true"

    Option "FlatPanelProperties" "Scaling = native"

EndSection

Section "Screen"

    Identifier     "Screen0"

    Device         "Videocard0"

    Monitor        "Monitor0"

    DefaultDepth    24

    SubSection     "Display"

        Depth       24

   Virtual     1400 1050

    EndSubSection

EndSection

Section "Extensions"

    Option      "Composite" "Enable"

EndSection
```

Thanks everyone for chipping in and helping.

----------

## VoidMage

That's a rather ugly way of solving it - even if those two mouses

do have different button mapping, it could be done a bit cleaner,

especially given that a few of the lines you've put in InputDevice

section are redundant.

----------

## RickyLoad

Hello

Ok this post because I have the same problem with a mouse ==> Logitech MX900

By cons, since working with evdev ==> /dev/input/eventX

Why not simply "deleted" all ==> /dev/input/mice and  /dev/input/mouse0 or /dev/input/mouse1

In this way, at the launch, only see the evdev devices ==> /dev/input/eventX

So no more problem ......

Thank you for giving me your opinion on this

@ Head

----------

## P.Kosunen

 *krinn wrote:*   

> error setting a parameter : (EE) ioctl EVIOCGNAME failed: Inappropriate ioctl for device

 

xorg.conf:

```

Section "InputClass"

     Identifier      "Ignore Mouse Alias"

     MatchDevicePath "/dev/input/mouse0"

     Option          "Ignore" "true"

EndSection

```

This get error away from Xorg.0.log.

----------

