[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Call for testers: X with devd backend



This new patch should fix it. Anybody wants to test?

If nothing wrong is found, I'd like to send it to X11 maintainers.

On 04/02/2014 22:50, Christoph Egger wrote:
> Robert Millan <rmh@debian.org> writes:
>> On 04/02/2014 22:11, Christoph Egger wrote:
>>> However after removing the USB keyboard again I
>>> couldn't type on the notebook's builtin keyboard any more
>>
>> Can I see your Xorg.0.log ?
> 
> X.Org X Server 1.14.5
> Release Date: 2013-12-12
> [    17.049] X Protocol Version 11, Revision 0
> [    17.049] Build Operating System: GNU/kFreeBSD 10.0-0-amd64 x86_64 Debian
> [    17.049] Current Operating System: GNU/kFreeBSD mitoraj 10.0-0-amd64 #0 Thu, 26 Dec 2013 01:32:04 +0100 x86_64
> [    17.049] Build Date: 04 February 2014  10:39:44PM
> [    17.049] xorg-server 2:1.14.5-1 (Maarten Lankhorst <maarten.lankhorst@ubuntu.com>) 
> [    17.049] Current version of pixman: 0.32.4
> [    17.049] 	Before reporting problems, check http://wiki.x.org
> 	to make sure that you have the latest version.
> [    17.049] Markers: (--) probed, (**) from config file, (==) default setting,
> 	(++) from command line, (!!) notice, (II) informational,
> 	(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
> [    17.049] (==) Log file: "/var/log/Xorg.0.log", Time: Tue Feb  4 23:07:03 2014
> [    17.050] (==) Using system config directory "/usr/share/X11/xorg.conf.d"
> [    17.051] (==) No Layout section.  Using the first Screen section.
> [    17.051] (==) No screen section available. Using defaults.
> [    17.051] (**) |-->Screen "Default Screen Section" (0)
> [    17.051] (**) |   |-->Monitor "<default monitor>"
> [    17.051] (==) No monitor specified for screen "Default Screen Section".
> 	Using a default monitor configuration.
> [    17.051] (==) Automatically adding devices
> [    17.051] (==) Automatically enabling devices
> [    17.051] (==) Not automatically adding GPU devices
> [    17.053] (WW) The directory "/usr/share/fonts/X11/cyrillic" does not exist.
> [    17.053] 	Entry deleted from font path.
> [    17.053] (WW) The directory "/usr/share/fonts/X11/100dpi/" does not exist.
> [    17.053] 	Entry deleted from font path.
> [    17.054] (WW) The directory "/usr/share/fonts/X11/75dpi/" does not exist.
> [    17.054] 	Entry deleted from font path.
> [    17.054] (WW) The directory "/usr/share/fonts/X11/100dpi" does not exist.
> [    17.054] 	Entry deleted from font path.
> [    17.054] (WW) The directory "/usr/share/fonts/X11/75dpi" does not exist.
> [    17.054] 	Entry deleted from font path.
> [    17.054] (==) FontPath set to:
> 	/usr/share/fonts/X11/misc,
> 	/usr/share/fonts/X11/Type1,
> 	built-ins
> [    17.054] (==) ModulePath set to "/usr/lib/xorg/modules"
> [    17.054] (WW) Hotplugging requested but the server was compiled without a config backend. No input devices were configured, the server will start without any input devices.
> [    17.054] (II) Loader magic: 0x7fab00
> [    17.054] (II) Module ABI versions:
> [    17.054] 	X.Org ANSI C Emulation: 0.4
> [    17.054] 	X.Org Video Driver: 14.1
> [    17.054] 	X.Org XInput driver : 19.1
> [    17.054] 	X.Org Server Extension : 7.0
> [    17.054] (--) PCI:*(0:0:2:0) 8086:0126:17aa:21da rev 9, Mem @ 0xf0000000/4194304, 0xe0000000/268435456, I/O @ 0x00005000/64, BIOS @ 0x????????/65536
> [    17.054] Initializing built-in extension Generic Event Extension
> [    17.054] Initializing built-in extension SHAPE
> [    17.054] Initializing built-in extension MIT-SHM
> [    17.055] Initializing built-in extension XInputExtension
> [    17.055] Initializing built-in extension XTEST
> [    17.055] Initializing built-in extension BIG-REQUESTS
> [    17.055] Initializing built-in extension SYNC
> [    17.055] Initializing built-in extension XKEYBOARD
> [    17.055] Initializing built-in extension XC-MISC
> [    17.055] Initializing built-in extension SECURITY
> [    17.055] Initializing built-in extension XINERAMA
> [    17.055] Initializing built-in extension XFIXES
> [    17.055] Initializing built-in extension RENDER
> [    17.055] Initializing built-in extension RANDR
> [    17.055] Initializing built-in extension COMPOSITE
> [    17.055] Initializing built-in extension DAMAGE
> [    17.055] Initializing built-in extension MIT-SCREEN-SAVER
> [    17.055] Initializing built-in extension DOUBLE-BUFFER
> [    17.055] Initializing built-in extension RECORD
> [    17.055] Initializing built-in extension DPMS
> [    17.055] Initializing built-in extension X-Resource
> [    17.055] Initializing built-in extension XVideo
> [    17.055] Initializing built-in extension XVideo-MotionCompensation
> [    17.055] Initializing built-in extension XFree86-VidModeExtension
> [    17.055] Initializing built-in extension XFree86-DGA
> [    17.055] Initializing built-in extension XFree86-DRI
> [    17.055] Initializing built-in extension DRI2
> [    17.055] (II) LoadModule: "glx"
> [    17.057] (II) Loading /usr/lib/xorg/modules/extensions/libglx.so
> [    17.062] (II) Module glx: vendor="X.Org Foundation"
> [    17.062] 	compiled for 1.14.5, module version = 1.0.0
> [    17.062] 	ABI class: X.Org Server Extension, version 7.0
> [    17.062] (==) AIGLX enabled
> [    17.064] Loading extension GLX
> [    17.064] (==) Matched intel as autoconfigured driver 0
> [    17.064] (==) Matched vesa as autoconfigured driver 1
> [    17.064] (==) Matched fbdev as autoconfigured driver 2
> [    17.064] (==) Assigned the driver to the xf86ConfigLayout
> [    17.064] (II) LoadModule: "intel"
> [    17.065] (II) Loading /usr/lib/xorg/modules/drivers/intel_drv.so
> [    17.075] (II) Module intel: vendor="X.Org Foundation"
> [    17.076] 	compiled for 1.14.3, module version = 2.21.15
> [    17.076] 	Module class: X.Org Video Driver
> [    17.076] 	ABI class: X.Org Video Driver, version 14.1
> [    17.076] (II) LoadModule: "vesa"
> [    17.076] (II) Loading /usr/lib/xorg/modules/drivers/vesa_drv.so
> [    17.077] (II) Module vesa: vendor="X.Org Foundation"
> [    17.077] 	compiled for 1.14.3, module version = 2.3.3
> [    17.077] 	Module class: X.Org Video Driver
> [    17.077] 	ABI class: X.Org Video Driver, version 14.1
> [    17.077] (II) LoadModule: "fbdev"
> [    17.078] (WW) Warning, couldn't open module fbdev
> [    17.078] (II) UnloadModule: "fbdev"
> [    17.078] (II) Unloading fbdev
> [    17.078] (EE) Failed to load module "fbdev" (module does not exist, 0)
> [    17.078] (II) intel: Driver for Intel(R) Integrated Graphics Chipsets:
> 	i810, i810-dc100, i810e, i815, i830M, 845G, 854, 852GM/855GM, 865G,
> 	915G, E7221 (i915), 915GM, 945G, 945GM, 945GME, Pineview GM,
> 	Pineview G, 965G, G35, 965Q, 946GZ, 965GM, 965GME/GLE, G33, Q35, Q33,
> 	GM45, 4 Series, G45/G43, Q45/Q43, G41, B43, HD Graphics,
> 	HD Graphics 2000, HD Graphics 3000, HD Graphics 2500,
> 	HD Graphics 4000, HD Graphics P4000, HD Graphics 4600,
> 	HD Graphics 5000, HD Graphics P4600/P4700, Iris(TM) Graphics 5100,
> 	HD Graphics 4400, HD Graphics 4200, Iris(TM) Pro Graphics 5200
> [    17.080] (II) VESA: driver for VESA chipsets: vesa
> [    17.080] (--) Using syscons driver with X support (version 134217730.0)
> [    17.080] (++) using VT number 7
> 
> [    17.085] (WW) Falling back to old probe method for vesa
> [    17.085] (WW) VGA arbiter: cannot open kernel arbiter, no multi-card support
> [    17.085] (II) intel(0): Creating default Display subsection in Screen section
> 	"Default Screen Section" for depth/fbbpp 24/32
> [    17.085] (==) intel(0): Depth 24, (--) framebuffer bpp 32
> [    17.085] (==) intel(0): RGB weight 888
> [    17.085] (==) intel(0): Default visual is TrueColor
> [    17.085] (--) intel(0): Integrated Graphics Chipset: Intel(R) HD Graphics 3000
> [    17.085] (**) intel(0): Relaxed fencing enabled
> [    17.085] (**) intel(0): Wait on SwapBuffers? enabled
> [    17.085] (**) intel(0): Triple buffering? enabled
> [    17.085] (**) intel(0): Framebuffer tiled
> [    17.085] (**) intel(0): Pixmaps tiled
> [    17.085] (**) intel(0): 3D buffers tiled
> [    17.085] (**) intel(0): SwapBuffers wait enabled
> [    17.085] (==) intel(0): video overlay key set to 0x101fe
> [    17.086] (II) intel(0): Output LVDS1 has no monitor section
> [    17.086] (II) intel(0): Output VGA1 has no monitor section
> [    17.294] (II) intel(0): Output HDMI1 has no monitor section
> [    17.353] (II) intel(0): Output DP1 has no monitor section
> [    17.453] (II) intel(0): Output HDMI2 has no monitor section
> [    17.462] (II) intel(0): Output HDMI3 has no monitor section
> [    17.523] (II) intel(0): Output DP2 has no monitor section
> [    17.583] (II) intel(0): Output DP3 has no monitor section
> [    17.583] (II) intel(0): EDID for output LVDS1
> [    17.583] (II) intel(0): Manufacturer: LGD  Model: 2d8  Serial#: 0
> [    17.583] (II) intel(0): Year: 2010  Week: 0
> [    17.583] (II) intel(0): EDID Version: 1.3
> [    17.583] (II) intel(0): Digital Display Input
> [    17.583] (II) intel(0): Max Image Size [cm]: horiz.: 28  vert.: 16
> [    17.583] (II) intel(0): Gamma: 2.20
> [    17.583] (II) intel(0): DPMS capabilities: StandBy Suspend Off
> [    17.583] (II) intel(0): Supported color encodings: RGB 4:4:4 YCrCb 4:4:4 
> [    17.583] (II) intel(0): First detailed timing is preferred mode
> [    17.583] (II) intel(0): redX: 0.585 redY: 0.349   greenX: 0.341 greenY: 0.543
> [    17.583] (II) intel(0): blueX: 0.159 blueY: 0.127   whiteX: 0.313 whiteY: 0.329
> [    17.583] (II) intel(0): Manufacturer's mask: 0
> [    17.583] (II) intel(0): Supported detailed timing:
> [    17.583] (II) intel(0): clock: 75.2 MHz   Image Size:  277 x 156 mm
> [    17.583] (II) intel(0): h_active: 1366  h_sync: 1414  h_sync_end 1478 h_blank_end 1582 h_border: 0
> [    17.583] (II) intel(0): v_active: 768  v_sync: 772  v_sync_end 779 v_blanking: 792 v_border: 0
> [    17.583] (II) intel(0):  LG Display
> [    17.583] (II) intel(0):  LP125WH2-SLB1
> [    17.583] (II) intel(0): EDID (in hex):
> [    17.583] (II) intel(0): 	00ffffffffffff0030e4d80200000000
> [    17.583] (II) intel(0): 	00140103801c1078ead4e59559578b28
> [    17.583] (II) intel(0): 	20505400000001010101010101010101
> [    17.583] (II) intel(0): 	010101010101601d56d8500018303040
> [    17.583] (II) intel(0): 	4700159c1000001b0000000000000000
> [    17.583] (II) intel(0): 	00000000000000000000000000fe004c
> [    17.584] (II) intel(0): 	4720446973706c61790a2020000000fe
> [    17.584] (II) intel(0): 	004c503132355748322d534c42310084
> [    17.584] (II) intel(0): Not using default mode "320x240" (doublescan mode not supported)
> [    17.584] (II) intel(0): Not using default mode "400x300" (doublescan mode not supported)
> [    17.584] (II) intel(0): Not using default mode "400x300" (doublescan mode not supported)
> [    17.584] (II) intel(0): Not using default mode "512x384" (doublescan mode not supported)
> [    17.584] (II) intel(0): Not using default mode "640x480" (doublescan mode not supported)
> [    17.584] (II) intel(0): Not using default mode "640x512" (doublescan mode not supported)
> [    17.584] (II) intel(0): Not using default mode "800x600" (doublescan mode not supported)
> [    17.584] (II) intel(0): Not using default mode "896x672" (doublescan mode not supported)
> [    17.584] (II) intel(0): Not using default mode "928x696" (doublescan mode not supported)
> [    17.584] (II) intel(0): Not using default mode "960x720" (doublescan mode not supported)
> [    17.584] (II) intel(0): Not using default mode "576x432" (doublescan mode not supported)
> [    17.584] (II) intel(0): Not using default mode "680x384" (doublescan mode not supported)
> [    17.584] (II) intel(0): Not using default mode "680x384" (doublescan mode not supported)
> [    17.584] (II) intel(0): Not using default mode "700x525" (doublescan mode not supported)
> [    17.584] (II) intel(0): Not using default mode "720x450" (doublescan mode not supported)
> [    17.584] (II) intel(0): Not using default mode "800x512" (doublescan mode not supported)
> [    17.584] (II) intel(0): Not using default mode "840x525" (doublescan mode not supported)
> [    17.584] (II) intel(0): Not using default mode "840x525" (doublescan mode not supported)
> [    17.584] (II) intel(0): Not using default mode "960x540" (doublescan mode not supported)
> [    17.584] (II) intel(0): Not using default mode "960x600" (doublescan mode not supported)
> [    17.584] (II) intel(0): Not using default mode "1024x768" (doublescan mode not supported)
> [    17.584] (II) intel(0): Printing probed modes for output LVDS1
> [    17.584] (II) intel(0): Modeline "1366x768"x60.0   75.20  1366 1414 1478 1582  768 772 779 792 +hsync -vsync (47.5 kHz eP)
> [    17.584] (II) intel(0): Modeline "1360x768"x59.8   84.75  1360 1432 1568 1776  768 771 781 798 -hsync +vsync (47.7 kHz d)
> [    17.584] (II) intel(0): Modeline "1360x768"x60.0   72.00  1360 1408 1440 1520  768 771 781 790 +hsync -vsync (47.4 kHz d)
> [    17.584] (II) intel(0): Modeline "1024x768"x60.0   65.00  1024 1048 1184 1344  768 771 777 806 -hsync -vsync (48.4 kHz d)
> [    17.584] (II) intel(0): Modeline "800x600"x60.3   40.00  800 840 968 1056  600 601 605 628 +hsync +vsync (37.9 kHz d)
> [    17.584] (II) intel(0): Modeline "800x600"x56.2   36.00  800 824 896 1024  600 601 603 625 +hsync +vsync (35.2 kHz d)
> [    17.584] (II) intel(0): Modeline "640x480"x59.9   25.18  640 656 752 800  480 490 492 525 -hsync -vsync (31.5 kHz d)
> [    17.584] (II) intel(0): EDID for output VGA1
> [    17.792] (II) intel(0): EDID for output HDMI1
> [    17.853] (II) intel(0): EDID for output DP1
> [    17.953] (II) intel(0): EDID for output HDMI2
> [    17.962] (II) intel(0): EDID for output HDMI3
> [    18.023] (II) intel(0): EDID for output DP2
> [    18.083] (II) intel(0): EDID for output DP3
> [    18.083] (II) intel(0): Output LVDS1 connected
> [    18.083] (II) intel(0): Output VGA1 disconnected
> [    18.083] (II) intel(0): Output HDMI1 disconnected
> [    18.083] (II) intel(0): Output DP1 disconnected
> [    18.083] (II) intel(0): Output HDMI2 disconnected
> [    18.083] (II) intel(0): Output HDMI3 disconnected
> [    18.083] (II) intel(0): Output DP2 disconnected
> [    18.083] (II) intel(0): Output DP3 disconnected
> [    18.083] (II) intel(0): Using exact sizes for initial modes
> [    18.083] (II) intel(0): Output LVDS1 using initial mode 1366x768
> [    18.083] (II) intel(0): Using default gamma of (1.0, 1.0, 1.0) unless otherwise stated.
> [    18.083] (II) intel(0): Kernel page flipping support detected, enabling
> [    18.083] (==) intel(0): DPI set to (96, 96)
> [    18.083] (II) Loading sub module "fb"
> [    18.083] (II) LoadModule: "fb"
> [    18.083] (II) Loading /usr/lib/xorg/modules/libfb.so
> [    18.088] (II) Module fb: vendor="X.Org Foundation"
> [    18.088] 	compiled for 1.14.5, module version = 1.0.0
> [    18.088] 	ABI class: X.Org ANSI C Emulation, version 0.4
> [    18.088] (II) Loading sub module "dri2"
> [    18.088] (II) LoadModule: "dri2"
> [    18.088] (II) Module "dri2" already built-in
> [    18.088] (II) UnloadModule: "vesa"
> [    18.088] (II) Unloading vesa
> [    18.088] (==) Depth 24 pixmap format is 32 bpp
> [    18.088] (II) intel(0): [DRI2] Setup complete
> [    18.088] (II) intel(0): [DRI2]   DRI driver: i965
> [    18.088] (II) intel(0): Allocated new frame buffer 1408x768 stride 5632, tiled
> [    18.089] (II) UXA(0): Driver registered support for the following operations:
> [    18.089] (II)         solid
> [    18.089] (II)         copy
> [    18.089] (II)         composite (RENDER acceleration)
> [    18.089] (II)         put_image
> [    18.089] (II)         get_image
> [    18.089] (==) intel(0): Backing store disabled
> [    18.089] (==) intel(0): Silken mouse enabled
> [    18.089] (II) intel(0): Initializing HW Cursor
> [    18.089] (II) intel(0): RandR 1.2 enabled, ignore the following RandR disabled message.
> [    18.090] (==) intel(0): DPMS enabled
> [    18.090] (==) intel(0): Intel XvMC decoder enabled
> [    18.090] (II) intel(0): Set up textured video
> [    18.090] (II) intel(0): [XvMC] xvmc_vld driver initialized.
> [    18.090] (II) intel(0): direct rendering: DRI2 Enabled
> [    18.266] (--) RandR disabled
> [    18.322] (II) AIGLX: enabled GLX_MESA_copy_sub_buffer
> [    18.322] (II) AIGLX: enabled GLX_INTEL_swap_event
> [    18.322] (II) AIGLX: enabled GLX_ARB_create_context
> [    18.322] (II) AIGLX: enabled GLX_ARB_create_context_profile
> [    18.322] (II) AIGLX: enabled GLX_EXT_create_context_es2_profile
> [    18.322] (II) AIGLX: enabled GLX_SGI_swap_control and GLX_MESA_swap_control
> [    18.322] (II) AIGLX: GLX_EXT_texture_from_pixmap backed by buffer objects
> [    18.322] (II) AIGLX: Loaded and initialized i965
> [    18.322] (II) GLX: Initialized DRI2 GL provider for screen 0
> [    18.323] (II) intel(0): Setting screen physical size to 361 x 203
> [    18.389] (II) config/devd: Adding input device Keyboard ()
> [    18.389] (**) Keyboard: Applying InputClass "kbd catchall"
> [    18.389] (II) LoadModule: "kbd"
> [    18.389] (II) Loading /usr/lib/xorg/modules/input/kbd_drv.so
> [    18.390] (II) Module kbd: vendor="X.Org Foundation"
> [    18.390] 	compiled for 1.14.5, module version = 1.8.0
> [    18.390] 	Module class: X.Org XInput Driver
> [    18.390] 	ABI class: X.Org XInput driver, version 19.1
> [    18.390] (II) Using input driver 'kbd' for 'Keyboard'
> [    18.390] (**) Keyboard: always reports core events
> [    18.390] (**) Keyboard: always reports core events
> [    18.390] (**) Option "Protocol" "standard"
> [    18.390] (WW) Option "Device" requires a string value
> [    18.390] (**) Option "XkbRules" "base"
> [    18.390] (**) Option "XkbModel" "pc105"
> [    18.390] (**) Option "XkbLayout" "us"
> [    18.390] (**) Option "config_info" "devd:atkbd0"
> [    18.390] (II) XINPUT: Adding extended input device "Keyboard" (type: KEYBOARD, id 6)
> [    18.393] (II) config/devd: Adding input device Mouse (/dev/psm0)
> [    18.393] (**) Mouse: Applying InputClass "mouse catchall"
> [    18.393] (II) LoadModule: "mouse"
> [    18.394] (II) Loading /usr/lib/xorg/modules/input/mouse_drv.so
> [    18.395] (II) Module mouse: vendor="X.Org Foundation"
> [    18.395] 	compiled for 1.14.3, module version = 1.9.0
> [    18.395] 	Module class: X.Org XInput Driver
> [    18.395] 	ABI class: X.Org XInput driver, version 19.1
> [    18.395] (II) Using input driver 'mouse' for 'Mouse'
> [    18.395] (**) Mouse: always reports core events
> [    18.395] (**) Option "Device" "/dev/psm0"
> [    18.395] (==) Mouse: Protocol: "Auto"
> [    18.395] (**) Mouse: always reports core events
> [    18.452] (==) Mouse: Emulate3Buttons, Emulate3Timeout: 50
> [    18.452] (**) Mouse: ZAxisMapping: buttons 4 and 5
> [    18.452] (**) Mouse: Buttons: 9
> [    18.452] (**) Option "config_info" "devd:psm0"
> [    18.452] (II) XINPUT: Adding extended input device "Mouse" (type: MOUSE, id 7)
> [    18.452] (**) Mouse: (accel) keeping acceleration scheme 1
> [    18.452] (**) Mouse: (accel) acceleration profile 0
> [    18.452] (**) Mouse: (accel) acceleration factor: 2.000
> [    18.452] (**) Mouse: (accel) acceleration threshold: 4
> [    18.471] (II) Mouse: SetupAuto: hw.iftype is 3, hw.model is 0
> [    18.471] (II) Mouse: SetupAuto: protocol is SysMouse
> [    18.489] (WW) fcntl(10, O_ASYNC): Inappropriate ioctl for device
> [    55.011] (II) intel(0): EDID vendor "LGD", prod id 728
> [    55.011] (II) intel(0): Printing DDC gathered Modelines:
> [    55.011] (II) intel(0): Modeline "1366x768"x0.0   75.20  1366 1414 1478 1582  768 772 779 792 +hsync -vsync (47.5 kHz eP)
> [    55.503] (II) intel(0): EDID vendor "LGD", prod id 728
> [    55.503] (II) intel(0): Printing DDC gathered Modelines:
> [    55.503] (II) intel(0): Modeline "1366x768"x0.0   75.20  1366 1414 1478 1582  768 772 779 792 +hsync -vsync (47.5 kHz eP)
> [   137.035] (II) config/devd: Adding input device 0x1241 USB Keyboard ()
> [   137.036] (**) 0x1241 USB Keyboard: Applying InputClass "kbd catchall"
> [   137.036] (II) Using input driver 'kbd' for '0x1241 USB Keyboard'
> [   137.036] (**) 0x1241 USB Keyboard: always reports core events
> [   137.036] (**) 0x1241 USB Keyboard: always reports core events
> [   137.037] (**) Option "Protocol" "standard"
> [   137.037] (WW) Option "Device" requires a string value
> [   137.037] (**) Option "XkbRules" "base"
> [   137.037] (**) Option "XkbModel" "pc105"
> [   137.038] (**) Option "XkbLayout" "us"
> [   137.038] (**) Option "config_info" "devd:ukbd0"
> [   137.038] (II) XINPUT: Adding extended input device "0x1241 USB Keyboard" (type: KEYBOARD, id 8)
> [   158.904] (II) config/dev: removing device 0x1241 USB Keyboard
> [   158.908] (II) UnloadModule: "kbd"
> [   181.384] (II) config/devd: Adding input device 0x1241 USB Keyboard ()
> [   181.384] (**) 0x1241 USB Keyboard: Applying InputClass "kbd catchall"
> [   181.385] (II) Using input driver 'kbd' for '0x1241 USB Keyboard'
> [   181.385] (**) 0x1241 USB Keyboard: always reports core events
> [   181.385] (**) 0x1241 USB Keyboard: always reports core events
> [   181.385] (**) Option "Protocol" "standard"
> [   181.385] (WW) Option "Device" requires a string value
> [   181.385] (**) Option "XkbRules" "base"
> [   181.385] (**) Option "XkbModel" "pc105"
> [   181.385] (**) Option "XkbLayout" "us"
> [   181.385] (**) Option "config_info" "devd:ukbd0"
> [   181.386] (II) XINPUT: Adding extended input device "0x1241 USB Keyboard" (type: KEYBOARD, id 8)
> [   288.115] (II) config/dev: removing device 0x1241 USB Keyboard
> [   288.121] (II) UnloadModule: "kbd"
> [   343.814] (II) config/devd: Adding input device 0x0566 USB Mouse (/dev/ums0)
> [   343.814] (**) 0x0566 USB Mouse: Applying InputClass "mouse catchall"
> [   343.815] (II) Using input driver 'mouse' for '0x0566 USB Mouse'
> [   343.815] (**) 0x0566 USB Mouse: always reports core events
> [   343.815] (**) Option "Device" "/dev/ums0"
> [   343.815] (==) 0x0566 USB Mouse: Protocol: "Auto"
> [   343.815] (**) 0x0566 USB Mouse: always reports core events
> [   343.816] (==) 0x0566 USB Mouse: Emulate3Buttons, Emulate3Timeout: 50
> [   343.816] (**) 0x0566 USB Mouse: ZAxisMapping: buttons 4 and 5
> [   343.816] (**) 0x0566 USB Mouse: Buttons: 9
> [   343.816] (**) Option "config_info" "devd:ums0"
> [   343.817] (II) XINPUT: Adding extended input device "0x0566 USB Mouse" (type: MOUSE, id 8)
> [   343.817] (**) 0x0566 USB Mouse: (accel) keeping acceleration scheme 1
> [   343.817] (**) 0x0566 USB Mouse: (accel) acceleration profile 0
> [   343.817] (**) 0x0566 USB Mouse: (accel) acceleration factor: 2.000
> [   343.817] (**) 0x0566 USB Mouse: (accel) acceleration threshold: 4
> [   343.817] (II) 0x0566 USB Mouse: SetupAuto: hw.iftype is 5, hw.model is 0
> [   343.817] (II) 0x0566 USB Mouse: SetupAuto: protocol is SysMouse
> [   343.817] (WW) fcntl(26, F_SETOWN): Inappropriate ioctl for device
> [   346.463] (II) config/dev: removing device 0x0566 USB Mouse
> [   346.464] (II) UnloadModule: "mouse"
> [   351.394] (II) config/devd: Adding input device 0x0566 USB Mouse (/dev/ums0)
> [   351.394] (**) 0x0566 USB Mouse: Applying InputClass "mouse catchall"
> [   351.395] (II) Using input driver 'mouse' for '0x0566 USB Mouse'
> [   351.395] (**) 0x0566 USB Mouse: always reports core events
> [   351.395] (**) Option "Device" "/dev/ums0"
> [   351.396] (==) 0x0566 USB Mouse: Protocol: "Auto"
> [   351.396] (**) 0x0566 USB Mouse: always reports core events
> [   351.396] (==) 0x0566 USB Mouse: Emulate3Buttons, Emulate3Timeout: 50
> [   351.397] (**) 0x0566 USB Mouse: ZAxisMapping: buttons 4 and 5
> [   351.397] (**) 0x0566 USB Mouse: Buttons: 9
> [   351.397] (**) Option "config_info" "devd:ums0"
> [   351.397] (II) XINPUT: Adding extended input device "0x0566 USB Mouse" (type: MOUSE, id 8)
> [   351.398] (**) 0x0566 USB Mouse: (accel) keeping acceleration scheme 1
> [   351.398] (**) 0x0566 USB Mouse: (accel) acceleration profile 0
> [   351.398] (**) 0x0566 USB Mouse: (accel) acceleration factor: 2.000
> [   351.398] (**) 0x0566 USB Mouse: (accel) acceleration threshold: 4
> [   351.399] (II) 0x0566 USB Mouse: SetupAuto: hw.iftype is 5, hw.model is 0
> [   351.399] (II) 0x0566 USB Mouse: SetupAuto: protocol is SysMouse
> [   351.399] (WW) fcntl(26, F_SETOWN): Inappropriate ioctl for device
> [   360.352] (II) config/dev: removing device 0x0566 USB Mouse
> [   360.353] (II) UnloadModule: "mouse"
> [   366.438] (II) config/devd: Adding input device 0x0566 USB Mouse (/dev/ums0)
> [   366.438] (**) 0x0566 USB Mouse: Applying InputClass "mouse catchall"
> [   366.438] (II) Using input driver 'mouse' for '0x0566 USB Mouse'
> [   366.438] (**) 0x0566 USB Mouse: always reports core events
> [   366.438] (**) Option "Device" "/dev/ums0"
> [   366.438] (==) 0x0566 USB Mouse: Protocol: "Auto"
> [   366.438] (**) 0x0566 USB Mouse: always reports core events
> [   366.438] (==) 0x0566 USB Mouse: Emulate3Buttons, Emulate3Timeout: 50
> [   366.439] (**) 0x0566 USB Mouse: ZAxisMapping: buttons 4 and 5
> [   366.439] (**) 0x0566 USB Mouse: Buttons: 9
> [   366.439] (**) Option "config_info" "devd:ums0"
> [   366.439] (II) XINPUT: Adding extended input device "0x0566 USB Mouse" (type: MOUSE, id 8)
> [   366.439] (**) 0x0566 USB Mouse: (accel) keeping acceleration scheme 1
> [   366.439] (**) 0x0566 USB Mouse: (accel) acceleration profile 0
> [   366.439] (**) 0x0566 USB Mouse: (accel) acceleration factor: 2.000
> [   366.439] (**) 0x0566 USB Mouse: (accel) acceleration threshold: 4
> [   366.439] (II) 0x0566 USB Mouse: SetupAuto: hw.iftype is 5, hw.model is 0
> [   366.439] (II) 0x0566 USB Mouse: SetupAuto: protocol is SysMouse
> [   366.439] (WW) fcntl(26, F_SETOWN): Inappropriate ioctl for device
> [   368.283] (II) config/dev: removing device 0x0566 USB Mouse
> [   368.284] (II) UnloadModule: "mouse"
> 
> 


-- 
Robert Millan
diff -Nur -x .pc xorg-server-1.14.5.old/debian/control xorg-server-1.14.5/debian/control
--- xorg-server-1.14.5.old/debian/control	2014-02-08 01:52:23.000000000 +0100
+++ xorg-server-1.14.5/debian/control	2014-02-08 01:53:10.249920492 +0100
@@ -49,8 +49,6 @@
  libpciaccess-dev (>= 0.12.901),
  libgcrypt-dev,
  nettle-dev,
- libdbus-1-dev [kfreebsd-any],
- libhal-dev [kfreebsd-any],
  libudev-dev (>= 151-3) [linux-any],
  libselinux1-dev (>= 2.0.80) [linux-any],
  libaudit-dev [linux-any],
@@ -90,6 +88,7 @@
  xserver-common (>= ${source:Version}),
  keyboard-configuration [linux-any kfreebsd-any],
  udev (>= 149) [linux-any],
+ devd [kfreebsd-any],
  ${shlibs:Depends},
  ${misc:Depends},
 Recommends: libgl1-mesa-dri (>= 7.10.2-4)
@@ -150,6 +149,7 @@
  x11-xkb-utils-udeb,
 # disabled: keyboard-configuration [linux-any kfreebsd-any],
  udev-udeb (>= 149) [linux-any],
+ devd-udeb [kfreebsd-any],
  ${shlibs:Depends},
  ${misc:Depends},
 Provides:
diff -Nur -x .pc xorg-server-1.14.5.old/debian/patches/devd.diff xorg-server-1.14.5/debian/patches/devd.diff
--- xorg-server-1.14.5.old/debian/patches/devd.diff	1970-01-01 01:00:00.000000000 +0100
+++ xorg-server-1.14.5/debian/patches/devd.diff	2014-02-08 01:58:26.401912887 +0100
@@ -0,0 +1,649 @@
+--- /dev/null
++++ b/config/devd.c
+@@ -0,0 +1,524 @@
++/*
++ * Copyright © 2012 Baptiste Daroussin
++ *
++ * Permission is hereby granted, free of charge, to any person obtaining a
++ * copy of this software and associated documentation files (the "Software"),
++ * to deal in the Software without restriction, including without limitation
++ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
++ * and/or sell copies of the Software, and to permit persons to whom the
++ * Software is furnished to do so, subject to the following conditions:
++ *
++ * The above copyright notice and this permission notice (including the next
++ * paragraph) shall be included in all copies or substantial portions of the
++ * Software.
++ *
++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
++ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
++ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
++ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
++ * DEALINGS IN THE SOFTWARE.
++ *
++ * Author: Baptiste Daroussin <bapt@FreeBSD.org>
++ */
++
++#ifdef HAVE_DIX_CONFIG_H
++#include <dix-config.h>
++#endif
++
++#include <sys/types.h>
++#include <sys/socket.h>
++#include <sys/sysctl.h>
++#include <sys/un.h>
++
++#include <ctype.h>
++#include <stdlib.h>
++#include <stdio.h>
++#include <stdarg.h>
++#include <stdbool.h>
++#include <unistd.h>
++
++#include "input.h"
++#include "inputstr.h"
++#include "hotplug.h"
++#include "config-backends.h"
++#include "os.h"
++
++#define DEVD_SOCK_PATH "/var/run/devd.pipe"
++
++#define DEVD_EVENT_ADD		'+'
++#define DEVD_EVENT_REMOVE	'-'
++
++static int sock_devd = -1;
++
++#if XORG_VERSION_CURRENT < 10800000
++enum {
++	ATTR_KEYBOARD,
++	ATTR_POINTER,
++	ATTR_JOYSTICK,
++	ATTR_TOUCHPAD,
++	ATTR_TOUCHSCREEN,
++};
++#endif
++
++struct hw_type {
++	const char *driver;
++	int flag;
++	const char *xdriver;
++};
++
++static struct hw_type hw_types[] = {
++//	{ "ukbd", ATTR_KEYBOARD, "kdb" },
++//	{ "atkbd", ATTR_KEYBOARD, "kdb" },
++	{ "ums", ATTR_POINTER, "mouse" },
++	{ "psm", ATTR_POINTER, "mouse" },
++//	{ "uhid", ATTR_POINTER, "mouse" },
++	{ "joy", ATTR_JOYSTICK, NULL },
++	{ "atp", ATTR_TOUCHPAD, NULL },
++	{ "uep", ATTR_TOUCHSCREEN, NULL },
++	{ NULL, -1, NULL },
++};
++
++#if XORG_VERSION_CURRENT < 10800000
++static void
++add_option(InputOption **options, const char *key, const char *value)
++{
++    if (!value || *value == '\0')
++        return;
++
++    for (; *options; options = &(*options)->next)
++        ;
++    *options = calloc(sizeof(**options), 1);
++    if (!*options) /* Yeesh. */
++        return;
++    (*options)->key = xstrdup(key);
++    (*options)->value = xstrdup(value);
++    (*options)->next = NULL;
++}
++
++static void
++remove_device(DeviceIntPtr dev)
++{
++    /* this only gets called for devices that have already been added */
++    LogMessage(X_INFO, "config/devd: removing device %s\n", dev->name);
++
++    /* Call PIE here so we don't try to dereference a device that's
++     * already been removed. */
++    OsBlockSignals();
++    ProcessInputEvents();
++    DeleteInputDeviceRequest(dev);
++    OsReleaseSignals();
++}
++
++static bool
++device_is_duplicate(char *config_info)
++{
++    DeviceIntPtr dev;
++
++    for (dev = inputInfo.devices; dev; dev = dev->next)
++        if (dev->config_info && (strcmp(dev->config_info, config_info) == 0))
++            return true;
++
++    for (dev = inputInfo.off_devices; dev; dev = dev->next)
++        if (dev->config_info && (strcmp(dev->config_info, config_info) == 0))
++            return true;
++
++    return false;
++}
++
++#endif
++
++static bool
++sysctl_exists(const char *format, ...)
++{
++	va_list args;
++	char *name = NULL;
++	size_t len;
++	int ret;
++
++	if (format == NULL)
++		return false;
++
++	va_start(args, format);
++	vasprintf(&name, format, args);
++	va_end(args);
++
++	ret = sysctlbyname(name, NULL, &len, NULL, 0);
++
++	if (ret == -1)
++		len = 0;
++
++	free(name);
++	return (len > 0);
++}
++
++static char *
++sysctl_get_str(const char *format, ...)
++{
++	va_list args;
++	char *name = NULL;
++	char *dest = NULL;
++	size_t len;
++
++	if (format == NULL)
++		return NULL;
++
++	va_start(args, format);
++	vasprintf(&name, format, args);
++	va_end(args);
++
++	if (sysctlbyname(name, NULL, &len, NULL, 0) == 0) {
++		dest = malloc(len + 1);
++		if (sysctlbyname(name, dest, &len, NULL, 0) == 0)
++			dest[len] = '\0';
++		else {
++			free(dest);
++			dest = NULL;
++		}
++	}
++
++	free(name);
++	return dest;
++}
++
++static void
++keyboard_added()
++{
++    InputOption *options = NULL;
++    InputAttributes attrs = {};
++    DeviceIntPtr dev = NULL;
++    int rc;
++
++    options =  input_option_new(NULL, "_source", "server/devd");
++    if (!options)
++        return;
++
++    options = input_option_new(options, "name", xstrdup("AT Keyboard"));
++    options = input_option_new(options, "path", xstrdup(""));
++    options = input_option_new(options, "device", xstrdup(""));
++    options = input_option_new(options, "config_info", xstrdup("devd:AT Keyboard"));
++
++    LogMessage(X_INFO, "config/devd: Adding AT Keyboard\n");
++
++    memset(&attrs, 0, sizeof(attrs));
++    attrs.flags = ATTR_KEYBOARD;
++    attrs.vendor = xstrdup("(unnamed)");
++    attrs.product = xstrdup("(unnamed)");
++
++    rc = NewInputDeviceRequest(options, &attrs, &dev);
++
++    if (rc != Success)
++        goto unwind;
++
++    return;
++
++ unwind:
++    input_option_free_list(&options);
++    free(attrs.vendor);
++    free(attrs.product);
++    return;
++}
++
++static void
++device_added(char *line)
++{
++    char *walk;
++    char *path;
++    char *vendor;
++    char *product = NULL;
++    char *config_info = NULL;
++    InputOption *options = NULL;
++#if XORG_VERSION_CURRENT > 10800000
++    InputAttributes attrs = {};
++#else
++    InputOption *tmpo;
++#endif
++    DeviceIntPtr dev = NULL;
++    int i, rc;
++
++    walk = strchr(line, ' ');
++    if (walk != NULL)
++        walk[0] = '\0';
++
++    for (i = 0; hw_types[i].driver != NULL; i++) {
++        if (strncmp(line, hw_types[i].driver,
++                    strlen(hw_types[i].driver)) == 0 &&
++            isdigit(*(line + strlen(hw_types[i].driver)))) {
++#if XORG_VERSION_CURRENT > 10800000
++            attrs.flags |= hw_types[i].flag;
++#endif
++            break;
++        }
++    }
++    if (hw_types[i].driver == NULL) {
++        LogMessageVerb(X_INFO, 10, "config/devd: ignoring device %s\n", line);
++        return;
++    }
++
++#if XORG_VERSION_CURRENT < 10800000
++    if (hw_types[i].xdriver == NULL) {
++        LogMessageVerb(X_INFO, 10, "config/devd: ignoring device %s\n", line);
++        return;
++    }
++#endif
++
++    if (asprintf(&path, "/dev/%s", line) == -1)
++        return;
++
++#if XORG_VERSION_CURRENT < 10800000
++    options = calloc(sizeof(*options), 1);
++    if (!options)
++        return;
++
++    add_option(&options, "_source", "server/devd");
++#else
++    options =  input_option_new(NULL, "_source", "server/devd");
++    if (!options)
++        return;
++#endif
++
++    vendor = sysctl_get_str("dev.%s.%s.%%desc", hw_types[i].driver, line + strlen(hw_types[i].driver));
++    if (vendor == NULL) {
++#if XORG_VERSION_CURRENT > 10800000
++        attrs.vendor = strdup("(unnamed)");
++#endif
++    } else {
++        if ((product = strchr(vendor, ' ')) != NULL) {
++            product[0] = '\0';
++            product++;
++        }
++#if XORG_VERSION_CURRENT > 10800000
++        attrs.vendor = strdup(vendor);
++#endif
++        if (product != NULL && (walk = strchr(product, ',')) != NULL)
++            walk[0] = '\0';
++#if XORG_VERSION_CURRENT > 10800000
++        attrs.product = strdup(product != NULL ? product : "(unnamed)");
++	options = input_option_new(options, "name", product != NULL ? product : "(unnamed)");
++#else
++        add_option(&options, "name", product != NULL ? product : "(unnamed)");
++#endif
++    }
++#if XORG_VERSION_CURRENT > 10800000
++    attrs.usb_id = NULL;
++    options = input_option_new(options, "path", xstrdup(path));
++    options = input_option_new(options, "device", path);
++#else
++    add_option(&options, "path", xstrdup(path));
++    add_option(&options, "device", path);
++#endif
++
++#if XORG_VERSION_CURRENT < 10800000
++    add_option(&options, "driver", hw_types[i].xdriver);
++#endif
++
++    if (asprintf(&config_info, "devd:%s", line) == -1) {
++        config_info = NULL;
++        goto unwind;
++    }
++
++    if (device_is_duplicate(config_info)) {
++        LogMessage(X_WARNING, "config/devd: device %s already added. "
++                              "Ignoring.\n", product != NULL ? product : "(unnamed)");
++        goto unwind;
++    }
++
++#if XORG_VERSION_CURRENT < 10800000
++    add_option(&options, "config_info", config_info);
++#else
++    options = input_option_new(options, "config_info", config_info);
++#endif
++    LogMessage(X_INFO, "config/devd: Adding input device %s (%s)\n",
++               product != NULL ? product : "(unnamed)", path);
++
++#if XORG_VERSION_CURRENT > 10800000
++    rc = NewInputDeviceRequest(options, &attrs, &dev);
++#else
++    rc = NewInputDeviceRequest(options, &dev);
++#endif
++
++    if (rc != Success)
++        goto unwind;
++
++ unwind:
++    free(config_info);
++#if XORG_VERSION_CURRENT < 10800000
++    while ((tmpo = options)) {
++        options = tmpo->next;
++        free(tmpo->key);        /* NULL if dev != NULL */
++        free(tmpo->value);      /* NULL if dev != NULL */
++        free(tmpo);
++    }
++#else
++    input_option_free_list(&options);
++#endif
++
++#if XORG_VERSION_CURRENT > 10800000
++    free(attrs.usb_id);
++    free(attrs.product);
++    free(attrs.device);
++    free(attrs.vendor);
++#endif
++
++    return;
++}
++
++static void
++device_removed(char *line)
++{
++    char *walk;
++    char *value;
++#if XORG_VERSION_CURRENT < 10800000
++    DeviceIntPtr dev, next;
++#endif
++
++    walk = strchr(line, ' ');
++    if (walk != NULL)
++        walk[0] = '\0';
++
++    if (asprintf(&value, "devd:%s", line) == -1)
++        return;
++
++#if XORG_VERSION_CURRENT > 10800000
++    remove_devices("dev", value);
++#else
++    for (dev = inputInfo.devices; dev; dev = next) {
++        next = dev->next;
++        if (dev->config_info && strcmp(dev->config_info, value) == 0)
++            remove_device(dev);
++    }
++    for (dev = inputInfo.off_devices; dev; dev = next) {
++	next = dev->next;
++        if (dev->config_info && strcmp(dev->config_info, value) == 0)
++            remove_device(dev);
++    }
++#endif
++
++    free(value);
++}
++
++static ssize_t
++socket_getline(int fd, char **out)
++{
++	char *buf;
++	ssize_t ret, cap, sz = 0;
++	char c;
++
++	cap = 1024;
++	buf = malloc(cap * sizeof(char));
++	if (!buf)
++		return -1;
++
++	for (;;) {
++		ret = read(sock_devd, &c, 1);
++		if (ret < 1) {
++			free(buf);
++			return -1;
++		}
++
++		if (c == '\n')
++			break;
++
++		if (sz + 1 >= cap) {
++			cap *= 2;
++			buf = realloc(buf, cap *sizeof(char));
++		}
++		buf[sz] = c;
++		sz++;
++	}
++
++	buf[sz] = '\0';
++	if (sz >= 0)
++		*out = buf;
++	else
++		free(buf);
++
++	return sz; /* number of bytes in the line, not counting the line break*/
++}
++
++static void
++wakeup_handler(pointer data, int err, pointer read_mask)
++{
++    char *line = NULL;
++
++    if (err < 0)
++        return;
++
++    if (FD_ISSET(sock_devd, (fd_set *)read_mask)) {
++        if (socket_getline(sock_devd, &line) < 0)
++            return;
++
++        switch(*line) {
++		case DEVD_EVENT_ADD:
++			device_added(line+1);
++			break;
++		case DEVD_EVENT_REMOVE:
++			device_removed(line+1);
++			break;
++		default:
++			break;
++	}
++	free(line);
++    }
++}
++
++static void
++block_handler(pointer data, struct timeval **tv, pointer read_mask)
++{
++}
++
++int
++config_devd_init(void)
++{
++    struct sockaddr_un devd;
++    char devicename[1024];
++    int i, j;
++
++    /* For keyboards, we don't want to open the actual device, because
++       we only need input from the VT that X is running on (see
++       xf86OpenConsole() in bsd_init.c). However, we still want
++       kbd_drv to be loaded, hence this dummy function which registers
++       a keyboard with zero-length device path. */
++    keyboard_added();
++
++    /* first scan the sysctl to determine the hardware if needed */
++
++    for (i = 0; hw_types[i].driver != NULL; i++) {
++        for (j = 0; sysctl_exists("dev.%s.%i.%%desc", hw_types[i].driver, j); j++) {
++            snprintf(devicename, 1024, "%s%i", hw_types[i].driver, j);
++            device_added(devicename);
++        }
++
++    }
++    sock_devd = socket(AF_UNIX, SOCK_STREAM, 0);
++    if (sock_devd < 0) {
++        ErrorF("config/devd: Fail opening stream socket");
++        return 0;
++    }
++
++    devd.sun_family = AF_UNIX;
++    strlcpy(devd.sun_path, DEVD_SOCK_PATH, sizeof(devd.sun_path));
++
++    if (connect(sock_devd, (struct sockaddr *) &devd, sizeof(struct sockaddr_un)) < 0) {
++        close(sock_devd);
++        ErrorF("config/devd: Fail to connect to devd");
++        return 0;
++    }
++
++    RegisterBlockAndWakeupHandlers(block_handler, wakeup_handler, NULL);
++    AddGeneralSocket(sock_devd);
++
++    return 1;
++}
++
++void
++config_devd_fini(void)
++{
++    if (sock_devd < 0)
++        return;
++
++    RemoveGeneralSocket(sock_devd);
++    RemoveBlockAndWakeupHandlers(block_handler, wakeup_handler, NULL);
++    close(sock_devd);
++}
+--- a/config/Makefile.am
++++ b/config/Makefile.am
+@@ -40,6 +40,10 @@
+ libconfig_la_SOURCES += wscons.c
+ endif # CONFIG_WSCONS
+ 
++if CONFIG_DEVD
++libconfig_la_SOURCES += devd.c
++endif
++
+ endif # CONFIG_NEED_DBUS
+ 
+ endif # !CONFIG_UDEV
+--- a/config/config-backends.h
++++ b/config/config-backends.h
+@@ -75,3 +75,8 @@
+ int config_wscons_init(void);
+ void config_wscons_fini(void);
+ #endif
++
++#ifdef CONFIG_DEVD
++int config_devd_init(void);
++void config_devd_fini(void);
++#endif
+--- a/config/config.c
++++ b/config/config.c
+@@ -64,6 +64,9 @@
+ #elif defined(CONFIG_WSCONS)
+     if (!config_wscons_init())
+         ErrorF("[config] failed to initialise wscons\n");
++#elif defined(CONFIG_DEVD)
++    if (!config_devd_init())
++        ErrorF("[config] failed to initialise devd\n");
+ #endif
+ }
+ 
+@@ -82,6 +85,8 @@
+     config_dbus_core_fini();
+ #elif defined(CONFIG_WSCONS)
+     config_wscons_fini();
++#elif defined(CONFIG_DEVD)
++    config_devd_fini();
+ #endif
+ }
+ 
+--- a/configure.ac
++++ b/configure.ac
+@@ -619,6 +619,7 @@
+ AC_ARG_ENABLE(config-udev-kms,    AS_HELP_STRING([--enable-config-udev-kms], [Build udev kms support (default: auto)]), [CONFIG_UDEV_KMS=$enableval], [CONFIG_UDEV_KMS=auto])
+ AC_ARG_ENABLE(config-dbus,    AS_HELP_STRING([--enable-config-dbus], [Build D-BUS API support (default: no)]), [CONFIG_DBUS_API=$enableval], [CONFIG_DBUS_API=no])
+ AC_ARG_ENABLE(config-hal,     AS_HELP_STRING([--disable-config-hal], [Build HAL support (default: auto)]), [CONFIG_HAL=$enableval], [CONFIG_HAL=auto])
++AC_ARG_ENABLE(config-devd,    AS_HELP_STRING([--disable-config-devd], [Build devd support (default: auto)]), [CONFIG_DEVD=$enableval], [CONFIG_DEVD=auto])
+ AC_ARG_ENABLE(config-wscons,  AS_HELP_STRING([--enable-config-wscons], [Build wscons config support (default: auto)]), [CONFIG_WSCONS=$enableval], [CONFIG_WSCONS=auto])
+ AC_ARG_ENABLE(xfree86-utils,     AS_HELP_STRING([--enable-xfree86-utils], [Build xfree86 DDX utilities (default: enabled)]), [XF86UTILS=$enableval], [XF86UTILS=yes])
+ AC_ARG_ENABLE(vgahw,          AS_HELP_STRING([--enable-vgahw], [Build Xorg with vga access (default: enabled)]), [VGAHW=$enableval], [VGAHW=yes])
+@@ -915,6 +916,21 @@
+ 	AC_DEFINE(CONFIG_WSCONS, 1, [Use wscons for input auto configuration])
+ fi
+ 
++if test "x$CONFIG_DEVD" = xauto; then
++	case $host_os in
++		freebsd* | kfreebsd*-gnu)
++			CONFIG_DEVD=yes;
++			;;
++		*)
++			CONFIG_DEVD=no;
++			;;
++	esac
++fi
++AM_CONDITIONAL(CONFIG_DEVD, [test "x$CONFIG_DEVD" = xyes])
++if test "x$CONFIG_DEVD" = xyes; then
++	AC_DEFINE(CONFIG_DEVD, 1, [Use devd for input auto configuration])
++fi
++
+ if test "x$USE_SIGIO_BY_DEFAULT" = xyes; then
+ 	USE_SIGIO_BY_DEFAULT_VALUE=TRUE
+ else
+--- a/hw/xfree86/common/xf86Config.c
++++ b/hw/xfree86/common/xf86Config.c
+@@ -1376,15 +1376,17 @@
+     }
+ 
+     if (!xf86Info.forceInputDevices && !(foundPointer && foundKeyboard)) {
+-#if defined(CONFIG_HAL) || defined(CONFIG_UDEV) || defined(CONFIG_WSCONS)
++#if defined(CONFIG_HAL) || defined(CONFIG_UDEV) || defined(CONFIG_WSCONS) || defined(CONFIG_HAL)
+         const char *config_backend;
+ 
+ #if defined(CONFIG_HAL)
+         config_backend = "HAL";
+ #elif defined(CONFIG_UDEV)
+         config_backend = "udev";
+-#else
++#elif defined(CONFIG_WSCONS)
+         config_backend = "wscons";
++#elif defined(CONFIG_DEVD)
++        config_backend = "devd";
+ #endif
+         xf86Msg(X_INFO, "The server relies on %s to provide the list of "
+                 "input devices.\n\tIf no devices become available, "
+--- a/hw/xfree86/common/xf86Globals.c
++++ b/hw/xfree86/common/xf86Globals.c
+@@ -123,7 +123,7 @@
+     .log = LogNone,
+     .disableRandR = FALSE,
+     .randRFrom = X_DEFAULT,
+-#if defined(CONFIG_HAL) || defined(CONFIG_UDEV) || defined(CONFIG_WSCONS)
++#if defined(CONFIG_HAL) || defined(CONFIG_UDEV) || defined(CONFIG_WSCONS) || defined(CONFIG_DEVD)
+     .forceInputDevices = FALSE,
+     .autoAddDevices = TRUE,
+     .autoEnableDevices = TRUE,
+--- a/include/dix-config.h.in
++++ b/include/dix-config.h.in
+@@ -411,6 +411,9 @@
+ /* Support HAL for hotplug */
+ #undef CONFIG_HAL
+ 
++/* Support devd for hotplug */
++#undef CONFIG_DEVD
++
+ /* Have a monotonic clock from clock_gettime() */
+ #undef MONOTONIC_CLOCK
+ 
diff -Nur -x .pc xorg-server-1.14.5.old/debian/patches/series xorg-server-1.14.5/debian/patches/series
--- xorg-server-1.14.5.old/debian/patches/series	2014-02-08 01:52:23.000000000 +0100
+++ xorg-server-1.14.5/debian/patches/series	2014-02-08 01:53:10.260920680 +0100
@@ -7,3 +7,4 @@
 08_xfree86_fix_ia64_inx_outx.diff
 os-move-arpa-inet.h-for-any-win32-system.patch
 xfree86-hurd-include-hurd.h.patch
+devd.diff
diff -Nur -x .pc xorg-server-1.14.5.old/debian/rules xorg-server-1.14.5/debian/rules
--- xorg-server-1.14.5.old/debian/rules	2014-02-08 01:52:23.000000000 +0100
+++ xorg-server-1.14.5/debian/rules	2014-02-08 01:55:28.331918289 +0100
@@ -57,17 +57,15 @@
 	dri = --enable-dri --enable-dri2
 endif
 
-config_backend = --disable-config-dbus
+config_backend = --disable-config-dbus --disable-config-hal
 ifeq ($(DEB_HOST_ARCH_OS), linux)
-	config_backend += --enable-config-udev --disable-config-hal
+	config_backend += --enable-config-udev
 else ifeq ($(DEB_HOST_ARCH_OS), kfreebsd)
 	config_backend += --disable-config-udev
-	config_backend_main += --enable-config-hal
-	config_backend_udeb += --disable-config-hal
 	libs = $(shell pkg-config --libs libbsd-overlay)
 	cppflags = $(shell pkg-config --cflags libbsd-overlay)
 else # hurd
-	config_backend += --disable-config-udev --disable-config-hal
+	config_backend += --disable-config-udev
 endif
 
 vars = $(shell DEB_BUILD_MAINT_OPTIONS="hardening=+pie" DEB_LDFLAGS_MAINT_APPEND="-Wl,-Bsymbolic" DEB_CPPFLAGS_MAINT_APPEND="-DPRE_RELEASE=0 $(cppflags)" dpkg-buildflags --export=configure) LIBS="$(libs)"

Reply to: