multihead, xorg, and bluetooth keyboard failure

Yan Seiner yan at seiner.com
Sun Nov 22 05:36:23 PST 2009


I am running a multi-seat config where I have one x server running two 
heads on one card and a second x server running a single head on another 
card.

yan at selene:~/xorg$ ps auxwww | grep X
root 14256 0.6 0.4 623896 17232 tty8 Ss+ Nov21 3:26 /usr/local/bin/X :3 
-config /etc/mdm/xorg.conf.nvidia -audit 0 -layout Myth -novtswitch 
-sharevts -noreset -auth /var/lib/gdm/:3.Xauth -nolisten tcp vt8
root 30415 0.1 0.3 632500 12780 tty9 Ss+ Nov17 12:41 /usr/local/bin/X :0 
-config /etc/mdm/xorg.conf.nvidia -noreset -auth /var/lib/gdm/:0.Xauth 
-nolisten tcp vt9

The server on :0 further runs a couple of Xephyr sessions, but that's 
not relevant to the issue.

My problem is with the server on :3. It uses a bluetooth keyboard. When 
the bluetooth keyboard goes to sleep, the /dev/input/event* device 
disappears., Once I touch a key, the bluetooth subsystem creates the 
device again, but X never picks it up.

I have this same keyboard on 2 other systems, and it works perfectly, so 
it has something to do with my setup; possibly with the two X servers.

In order to tell evdev which device to use, I create several symlinks 
pointing to the keyboard:

yan at selene:~/xorg$ ls -l /etc/mdm/devices
celkem 0
lrwxrwxrwx 1 root root 14 12. dub 2009 keyboard1 -> /dev/seat1/kbd
lrwxrwxrwx 1 root root 14 12. dub 2009 keyboard2 -> /dev/seat2/kbd
lrwxrwxrwx 1 root root 13 12. dub 2009 keyboard3 -> /dev/myth/kbd <- 
keyboard in question
lrwxrwxrwx 1 root root 16 21. říj 18.08 mouse1 -> /dev/seat1/mouse
lrwxrwxrwx 1 root root 16 12. dub 2009 mouse2 -> /dev/seat2/mouse
lrwxrwxrwx 1 root root 15 12. dub 2009 mouse3 -> /dev/myth/mouse

Keyboard is asleep:

yan at selene:~/xorg$ ls -l /dev/myth/
celkem 0
lrwxrwxrwx 1 root root 7 21. lis 07.47 dvd -> ../scd0
lrwxrwxrwx 1 root root 14 21. lis 07.47 ttyTV -> ../usb/ttyUSB1

Keyboard is awake:

yan at selene:~/xorg$ ls -l /dev/myth/
celkem 0
lrwxrwxrwx 1 root root 7 21. lis 07.47 dvd -> ../scd0
lrwxrwxrwx 1 root root 15 22. lis 05.30 kbd -> ../input/event9
lrwxrwxrwx 1 root root 14 21. lis 07.47 ttyTV -> ../usb/ttyUSB1

yan at selene:~/xorg$ ls -alt /dev/input
celkem 0
drwxr-xr-x 20 root root 6800 22. lis 05.30 ..
drwxr-xr-x 4 root root 480 22. lis 05.30 .
drwxr-xr-x 2 root root 360 22. lis 05.30 by-path
crw-rw---- 1 root root 13, 73 22. lis 05.30 event9
drwxr-xr-x 2 root root 220 21. lis 07.47 by-id
crw-rw-r-- 1 root audio 13, 72 21. lis 07.47 event8
crw-rw-r-- 1 root root 13, 0 21. lis 07.47 js0
.....

The symlink in /dev/myth is created by udev:

KERNEL=="event*", ENV{ID_PATH}=="pci-0000:00:02.1-usb-0:2.4.4.4.2:1.0", \
SYMLINK+="myth/kbd"


Once the keyboard goes to sleep, X never picks it up again.

So udev is removing / creating the device correctly, but once X loses it 
it doesn't pick it up again.

Any suggestions?

-- 

   o__
   ,>/'_         o__
   (_)\(_)       ,>/'_          o__
A day may come  (_)\(_)         ,>/'_      o__
when the courage of men fails, (_)\(_)     ,>/'_ 
when we forsake our friends and break all (_)\(_)
bonds of fellowship, but it is not this day.
It is not this day!
This day we ride!

-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: xorg.conf.nvidia
URL: <http://lists.x.org/archives/xorg/attachments/20091122/ffd55050/attachment.ksh>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Xorg.3.log
Type: text/x-log
Size: 273114 bytes
Desc: not available
URL: <http://lists.x.org/archives/xorg/attachments/20091122/ffd55050/attachment.bin>


More information about the xorg mailing list