Subject: multiple keyboards with XFree86
To: None <netbsd-help@netbsd.org>
From: Matthias Pfaller <leo@dachau.marco.de>
List: netbsd-help
Date: 08/13/2001 10:56:16
Hi,

I'm trying to configure a machine with multiple keyboards/graphicboards.
One of the keyboards is connected to the mainboard's mouseport.
The following lines in the kernel configuration file

	pckbc0	at isa? 			# PC keyboard controller
	pckbd0	at pckbc0 slot 0		# PC keyboard #0
	pckbd1	at pckbc0 slot 1		# PC keyboard #1
	wskbd0	at pckbd0 console ? mux 1
	wskbd1	at pckbd1

made this work without problems. As a first test I connected the second
keyboard to mux1 as well and typing to the console did work from both
keybords. So the kernel is doing the right thing, but now I seem to
be unable to make X work with the second keyboard. My XF86Config file
is appended to the end of this message.
When I startup X, it enters an endless loop. ktruss tells me the
following:

	...
	2326 XFree86  read(0x5, 0xbfbfdb80, 0x4)	 Err#40 EMSGSIZE
	2326 XFree86  select(0x100, 0xbfbfdb8c, 0, 0, 0xbfbfdb84) =3D 1
	2326 XFree86  read(0x5, 0xbfbfdb80, 0x4)	 Err#40 EMSGSIZE
	2326 XFree86  select(0x100, 0xbfbfdb8c, 0, 0, 0xbfbfdb84) =3D 1
	2326 XFree86  read(0x5, 0xbfbfdb80, 0x4)	 Err#40 EMSGSIZE
	...

Can anybody give me a hint what I'm doing wrong here?

Server output on startup is:
	XFree86 Version 4.1.0 / X Window System
	(protocol Version 11, revision 0, vendor release 6510)
	Release Date: 2 June 2001
		If the server is older than 6-12 months, or if your card is
		newer than the above date, look for a newer version before
		reporting problems.  (See http://www.XFree86.Org/FAQ)
	Build Operating System: NetBSD/i386 1.5.1 [ELF] The NetBSD Foundation, Inc.
	Module Loader present
	(=3D=3D) Log file: "/var/log/XFree86.0.log", Time: Mon Aug 13 10:36:20 2001
	(=3D=3D) Using config file: "/etc/XF86Config"
	Markers: (--) probed, (**) from config file, (=3D=3D) default setting,
		 (++) from command line, (!!) notice, (II) informational,
		 (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
	(=3D=3D) ServerLayout "Main Layout"
	(**) |-->Screen "Screen" (0)
	(**) |	 |-->Monitor "generic"
	(**) |	 |-->Device "generic"
	(**) |-->Input Device "Mouse"
	(**) |-->Input Device "Keyboard"
	(**) Keyboard: Protocol: wskbd
	(**) FontPath set to "/usr/X11R6/lib/X11/fonts/misc/:unscaled,/usr/X11R6/l=
ib/X11/fonts/75dpi/:unscaled,/usr/X11R6/lib/X11/fonts/100dpi/:unscaled,/usr=
/X11R6/lib/X11/fonts/Type1,/usr/X11R6/lib/X11/fonts/misc,/usr/X11R6/lib/X11=
/fonts/75dpi,/usr/X11R6/lib/X=
11/fonts/100dpi,/usr/X11R6/lib/X11/fonts/cyrillic"
	(**) RgbPath set to "/usr/X11R6/lib/X11/rgb"
	(=3D=3D) ModulePath set to "/usr/X11R6/lib/modules"
	(--) Using pcvt driver (version 3.32)
	(II) Loading /usr/X11R6/lib/modules/fonts/libbitmap.a
	(II) Module bitmap: vendor=3D"The XFree86 Project"
		compiled for 4.1.0, module version =3D 1.0.0
	(II) Loading /usr/X11R6/lib/modules/libpcidata.a
	(II) Module pcidata: vendor=3D"The XFree86 Project"
		compiled for 4.1.0, module version =3D 0.1.0
	(II) Loading /usr/X11R6/lib/modules/libscanpci.a
	(II) Module scanpci: vendor=3D"The XFree86 Project"
		compiled for 4.1.0, module version =3D 0.1.0
	(II) Unloading /usr/X11R6/lib/modules/libscanpci.a
	(--) PCI: (0:10:0) ATI Mach64 GX rev 3, Mem @ 0xd8000000/24
	(--) PCI:*(1:0:0) NVidia Riva Ultra 64 rev 21, Mem @ 0xd6000000/24, 0xd400=
0000/25
	(II) Loading /usr/X11R6/lib/modules/drivers/nv_drv.o
	(II) Module nv: vendor=3D"The XFree86 Project"
		compiled for 4.1.0, module version =3D 1.0.1
	(II) Loading /usr/X11R6/lib/modules/input/mouse_drv.o
	(II) Module mouse: vendor=3D"The XFree86 Project"
		compiled for 4.1.0, module version =3D 1.0.0
	(II) NV: driver for NVIDIA chipsets: RIVA128, RIVATNT, RIVATNT2,
		RIVATNT2 (A), RIVATNT2 (B), RIVATNT2 (Ultra), RIVATNT2 (Vanta),
		RIVATNT2 M64, RIVATNT2 (Integrated), GeForce 256, GeForce DDR,
		Quadro, GeForce2 GTS, GeForce2 GTS (rev 1), GeForce2 ultra,
		Quadro 2 Pro, GeForce2 MX, GeForce2 MX DDR, Quadro 2 MXR,
		GeForce 2 Go, GeForce3, GeForce3 (rev 1), GeForce3 (rev 2),
		GeForce3 (rev 3)
	(--) Assigning device section with no busID to primary device
	(--) Chipset RIVATNT2 M64 found
	(II) Loading /usr/X11R6/lib/modules/libint10.a
	(II) Module int10: vendor=3D"The XFree86 Project"
		compiled for 4.1.0, module version =3D 1.0.0
	(II) NV(0): Initializing int10
	(II) NV(0): Primary V_BIOS segment is: 0xc000
	(--) NV(0): Chipset: "RIVATNT2 M64"
	(**) NV(0): Depth 16, (--) framebuffer bpp 16
	(=3D=3D) NV(0): RGB weight 565
	(=3D=3D) NV(0): Default visual is TrueColor
	(II) Loading /usr/X11R6/lib/modules/libvgahw.a
	(II) Module vgahw: vendor=3D"The XFree86 Project"
		compiled for 4.1.0, module version =3D 0.1.0
	(=3D=3D) NV(0): Using HW cursor
	(--) NV(0): Linear framebuffer at 0xD4000000
	(--) NV(0): MMIO registers at 0xD6000000
	(--) NV(0): VideoRAM: 32768 kBytes
	(II) Loading /usr/X11R6/lib/modules/libddc.a
	(II) Module ddc: vendor=3D"The XFree86 Project"
		compiled for 4.1.0, module version =3D 1.0.0
	(II) Loading /usr/X11R6/lib/modules/libi2c.a
	(II) Module i2c: vendor=3D"The XFree86 Project"
		compiled for 4.1.0, module version =3D 1.2.0
	(II) NV(0): I2C bus "DDC" initialized.
	(II) NV(0): I2C device "DDC:ddc2" registered.
	(II) NV(0): I2C device "DDC:ddc2" removed.
	(II) NV(0): I2C device "DDC:ddc2" registered.
	(II) NV(0): I2C device "DDC:ddc2" removed.
	(II) NV(0): DDC Monitor info: 0x8271c00
	(II) NV(0): Manufacturer: CTX  Model: 3680  Serial#: 0
	(II) NV(0): Year: 1998	Week: 0
	(II) NV(0): EDID Version: 1.1
	(II) NV(0): Analog Display Input,  Input Voltage Level: 0.700/0.300 V
	(II) NV(0): Signal levels configurable
	(II) NV(0): Sync:  Separate  CompositeSerration on. V.Sync Pulse req. if C=
ompSync or SyncOnGreen
	(II) NV(0): Max H-Image Size [cm]: horiz.: 33  vert.: 25
	(II) NV(0): Gamma: 2.10
	(II) NV(0): DPMS capabilities: StandBy Suspend Off; RGB/Color Display
	(II) NV(0): redX: 0.627 redY: 0.337   greenX: 0.277 greenY: 0.588
	(II) NV(0): blueX: 0.143 blueY: 0.062	whiteX: 0.277 whiteY: 0.312
	(II) NV(0): Supported VESA Video Modes:
	(II) NV(0): 720x400@70Hz
	(II) NV(0): 640x480@60Hz
	(II) NV(0): 640x480@67Hz
	(II) NV(0): 640x480@72Hz
	(II) NV(0): 640x480@75Hz
	(II) NV(0): 800x600@56Hz
	(II) NV(0): 800x600@60Hz
	(II) NV(0): 800x600@72Hz
	(II) NV(0): 800x600@75Hz
	(II) NV(0): 832x624@75Hz
	(II) NV(0): 1024x768@87Hz (interlaced)
	(II) NV(0): 1024x768@60Hz
	(II) NV(0): 1024x768@70Hz
	(II) NV(0): 1024x768@75Hz
	(II) NV(0): 1280x1024@75Hz
	(II) NV(0): 1152x870@75Hz
	(II) NV(0): Manufacturer's mask: 0
	(II) NV(0): Supported Future Video Modes:
	(II) NV(0): #0: hsize: 640  vsize 480  refresh: 120  vid: 31793
	(II) NV(0): #1: hsize: 800  vsize 600  refresh: 120  vid: 31813
	(II) NV(0): #2: hsize: 1024  vsize 768	refresh: 100  vid: 26721
	(II) NV(0): #3: hsize: 1152  vsize 864	refresh: 100  vid: 26737
	(II) NV(0): #4: hsize: 1280  vsize 1024  refresh: 85  vid: 39297
	(II) NV(0): #5: hsize: 1600  vsize 1200  refresh: 75  vid: 20393
	(II) NV(0): Supported additional Video Mode:
	(II) NV(0): clock: 25.2 MHz   Image Size:  310 x 232 mm
	(II) NV(0): h_active: 640  h_sync: 656	h_sync_end 752 h_blank_end 800 h_bo=
rder: 0
	(II) NV(0): v_active: 350  v_sync: 387	v_sync_end 389 v_blanking: 449 v_bo=
rder: 0
	(II) NV(0): Supported additional Video Mode:
	(II) NV(0): clock: 36.0 MHz   Image Size:  310 x 232 mm
	(II) NV(0): h_active: 640  h_sync: 672	h_sync_end 720 h_blank_end 832 h_bo=
rder: 0
	(II) NV(0): v_active: 480  v_sync: 481	v_sync_end 484 v_blanking: 509 v_bo=
rder: 0
	(II) NV(0): Supported additional Video Mode:
	(II) NV(0): clock: 56.2 MHz   Image Size:  310 x 232 mm
	(II) NV(0): h_active: 800  h_sync: 832	h_sync_end 896 h_blank_end 1048 h_b=
order: 0
	(II) NV(0): v_active: 600  v_sync: 601	v_sync_end 604 v_blanking: 631 v_bo=
rder: 0
	(II) NV(0): Supported additional Video Mode:
	(II) NV(0): clock: 94.5 MHz   Image Size:  310 x 232 mm
	(II) NV(0): h_active: 1024  h_sync: 1072  h_sync_end 1168 h_blank_end 1376=
 h_border: 0
	(II) NV(0): v_active: 768  v_sync: 769	v_sync_end 772 v_blanking: 808 v_bo=
rder: 0
	(II) NV(0): end of DDC Monitor info

	(=3D=3D) NV(0): Using gamma correction (1.0, 1.0, 1.0)
	(II) NV(0): generic: Using hsync range of 30.00-85.00 kHz
	(II) NV(0): generic: Using vrefresh range of 50.00-100.00 Hz
	(II) NV(0): Clock range:  12.00 to 350.00 MHz
	(II) NV(0): Not using mode "1280x1024" (hsync out of range)
	(II) NV(0): Not using default mode "1280x960" (hsync out of range)
	(II) NV(0): Not using default mode "1600x1200" (hsync out of range)
	(II) NV(0): Not using default mode "1600x1200" (hsync out of range)
	(II) NV(0): Not using default mode "1600x1200" (hsync out of range)
	(II) NV(0): Not using default mode "1792x1344" (hsync out of range)
	(II) NV(0): Not using default mode "1856x1392" (hsync out of range)
	(II) NV(0): Not using default mode "1856x1392" (hsync out of range)
	(II) NV(0): Not using default mode "1920x1440" (hsync out of range)
	(II) NV(0): Not using default mode "1920x1440" (hsync out of range)
	(--) NV(0): Virtual size is 1200x900 (pitch 1216)
	(**) NV(0): Mode "1200x900": 120.0 MHz, 75.0 kHz, 77.8 Hz
	(--) NV(0): Display dimensions: (33, 25) cm
	(--) NV(0): DPI set to (92, 91)
	(II) Loading /usr/X11R6/lib/modules/libfb.a
	(II) Module fb: vendor=3D"The XFree86 Project"
		compiled for 4.1.0, module version =3D 1.0.0
	(II) Loading /usr/X11R6/lib/modules/libxaa.a
	(II) Module xaa: vendor=3D"The XFree86 Project"
		compiled for 4.1.0, module version =3D 1.0.0
	(II) Loading /usr/X11R6/lib/modules/libramdac.a
	(II) Module ramdac: vendor=3D"The XFree86 Project"
		compiled for 4.1.0, module version =3D 0.1.0
	(II) NV(0): Using XFree86 Acceleration Architecture (XAA)
		Screen to screen bit blits
		Solid filled rectangles
		8x8 mono pattern filled rectangles
		Indirect CPU to Screen color expansion
		Solid Lines
		Offscreen Pixmaps
		Setting up tile and stipple cache:
			32 128x128 slots
			32 256x256 slots
			16 512x512 slots
	(=3D=3D) NV(0): Backing store disabled
	(=3D=3D) NV(0): Silken mouse enabled
	(**) Mouse: Protocol: "auto"
	(**) Mouse: Core Pointer
	(=3D=3D) Mouse: Buttons: 3
	(II) Keyboard "Keyboard" handled by legacy driver
	(II) XINPUT: Adding extended input device "Mouse" (type: MOUSE)

/etc/XF86Config:
	Section "Files"
		RgbPath 	"/usr/X11R6/lib/X11/rgb"
		FontPath	"/usr/X11R6/lib/X11/fonts/misc/:unscaled"
		FontPath	"/usr/X11R6/lib/X11/fonts/75dpi/:unscaled"
		FontPath	"/usr/X11R6/lib/X11/fonts/100dpi/:unscaled"
		FontPath	"/usr/X11R6/lib/X11/fonts/Type1"
		FontPath	"/usr/X11R6/lib/X11/fonts/misc"
		FontPath	"/usr/X11R6/lib/X11/fonts/75dpi"
		FontPath	"/usr/X11R6/lib/X11/fonts/100dpi"
		FontPath	"/usr/X11R6/lib/X11/fonts/cyrillic"
	EndSection

	Section "InputDevice"
		Identifier	"Keyboard"
		Driver		"keyboard"

		Option	"Protocol"	"wskbd"
		Option	"Device"	"/dev/wskbd1"
	EndSection

	Section "InputDevice"
		Identifier	"Mouse"
		Driver		"mouse"

		Option	"Protocol"	"auto"
		Option	"Device"	"/dev/tty00"
	EndSection

	Section "Monitor"
		Identifier	"generic"

		HorizSync	30-85	# kHz
		VertRefresh	50-100	# Hz

									   # kHz   Hz
	#awk '{ printf("%s %11s %5.1f %4d %4d %4d %4d %4d %4d %4d %4d # %.2f %.1f\=
n", $1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11, $3*1000/$7, $3*1000000/($7*$11)); }=
' | sort -u
	ModeLine    "golem8"  95.0 1152 1162 1262 1458	900  901  902  944 # 65.16 =
69.0
	ModeLine   "640x480"  25.0  640  672  768  800	480  490  492  525 # 31.25 =
59.5
	ModeLine   "640x480"  31.5  640  680  720  864	480  488  491  521 # 36.46 =
70.0
	ModeLine   "800x600"  36.0  800  824  896 1024	600  601  603  625 # 35.16 =
56.2
	ModeLine   "800x600"  40.0  800  840  968 1056	600  601  605  628 # 37.88 =
60.3
	ModeLine   "800x600"  50.0  800  856  976 1040	600  637  643  666 # 48.08 =
72.2
	ModeLine   "golem16" 110.0 1024 1040 1160 1360	768  784  787  823 # 80.88 =
98.3
	ModeLine  "1024x768"  65.0 1024 1032 1176 1344	768  771  777  806 # 48.36 =
60.0
	ModeLine  "1024x768"  80.0 1024 1032 1152 1360	768  784  787  823 # 58.82 =
71.5
	ModeLine  "1024x768"  85.0 1024 1032 1152 1360	768  784  787  823 # 62.50 =
75.9
	ModeLine  "1024x768" 110.0 1024 1032 1152 1360	768  784  787  823 # 80.88 =
98.3
	ModeLine  "1152x900"  80.0 1152 1200 1250 1440	900  900  931  939 # 55.56 =
59.2
	ModeLine  "1152x900"  85.0 1152 1200 1250 1440	900  900  931  939 # 59.03 =
62.9
	ModeLine  "1152x900"  90.0 1152 1200 1350 1400	900  900  901  928 # 64.29 =
69.3
	ModeLine  "1152x900"  95.0 1152 1250 1350 1450	900  901  902  924 # 65.52 =
70.9
	ModeLine  "1152x900" 110.0 1152 1284 1416 1536	900  902  905  941 # 71.61 =
76.1
	ModeLine  "1200x900"  94.5 1200 1250 1300 1440	900  900  931  939 # 65.62 =
69.9
	ModeLine  "1200x900" 100.0 1200 1220 1360 1500	900  918  922  964 # 66.67 =
69.2
	ModeLine  "1200x900" 110.0 1200 1250 1417 1600	900  900  901  928 # 68.75 =
74.1
	ModeLine  "1200x900" 120.0 1200 1250 1417 1600	900  918  922  964 # 75.00 =
77.8
	ModeLine "1280x1024" 110.0 1280 1312 1416 1664 1024 1027 1030 1064 # 66.11=
 62.1
	ModeLine "1280x1024" 125.0 1280 1312 1416 1664 1024 1027 1030 1064 # 75.12=
 70.6
	Modeline "1280x1024" 133.1 1280 1312 1568 1664 1024 1024 1036 1070 # 79.99=
 74.8
	ModeLine "1280x1024" 135.0 1280 1312 1416 1664 1024 1027 1030 1064 # 81.13=
 76.2
	Modeline "1280x1024" 159.7 1280 1312 1568 1664 1024 1024 1039 1062 # 95.97=
 90.4
	ModeLine "1600x1016" 160.0 1600 1640 1889 2048 1016 1027 1030 1064 # 78.12=
 73.4
	Modeline     "tichy"  80.2 1024 1076 1196 1336	768  784  787  823 # 60.03 =
72.9

	EndSection

	Section "Device"
		Identifier	"generic"
	#	BusID		"pci:0:10:0"
		Driver		"nv"
	EndSection

	Section "Screen"
		Identifier	"Screen"
		Device		"generic"
		Monitor 	"generic"
		DefaultColorDepth	16
		Subsection "Display"
			Depth		8
			Modes		"1200x900"
		EndSubsection
		Subsection "Display"
			Depth		16
			Modes		"1200x900"
		EndSubsection
		Subsection "Display"
			Depth		32
			Modes		"800x600"
		EndSubsection
	EndSection

	Section "ServerLayout"
		Identifier	"Main Layout"
		Screen		"Screen"

		InputDevice	"Mouse" 	"CorePointer"
		InputDevice	"Keyboard"	"CoreKeyboard"
	EndSection
--=20
Matthias Pfaller                            Software Entwicklung
marco Systemanalyse und Entwicklung GmbH    Tel   +49 8131 5161-41
Hans-B=F6ckler-Str. 2, D 85221 Dachau         Fax   +49 8131 5161-66
http://www.marco.de/                        Email leo@marco.de