1 |
Hello! |
2 |
|
3 |
Apologies if this really is't the right forum (suggestions on the |
4 |
right forum would be welcome). |
5 |
|
6 |
Our company presently operates a large number of thin client terminals |
7 |
running LTSP, with a shared NFS root filesystem, and all that stuff. |
8 |
To remove the external runtime dependencies from the image, I've built |
9 |
a gentoo ramdisk that contains all the tools needed for the terminals |
10 |
- which can be downloaded via tftp. |
11 |
|
12 |
Things are working well - except for one problem. One the new image, |
13 |
some of the input devices don't work we expected. As you might |
14 |
imagine in a production environment, we have a number of different |
15 |
barcode scanners that attach to these terminals. Many of the new ones |
16 |
are USB HID compliant devices - which is great. Most of them are |
17 |
actually serial port devices, that connect to the terminal via a |
18 |
serial --> PS/2 'wedge'. The PS/2 wedge devices are the ones that |
19 |
don't work correctly. |
20 |
|
21 |
If we connect the scanner to the thin client, and boot the image, the |
22 |
scanner does not work. It does not show up at all as an input device: |
23 |
|
24 |
blablahostname / # cat /proc/bus/input/devices |
25 |
I: Bus=0003 Vendor=046d Product=c001 Version=0110 |
26 |
N: Name="Logitech USB Mouse" |
27 |
P: Phys=usb-0000:00:03.0-1/input0 |
28 |
S: Sysfs=/devices/pci0000:00/0000:00:03.0/usb2/2-1/2-1:1.0/input/input0 |
29 |
U: Uniq= |
30 |
H: Handlers=mouse0 event0 |
31 |
B: EV=17 |
32 |
B: KEY=70000 0 0 0 0 0 0 0 0 |
33 |
B: REL=103 |
34 |
B: MSC=10 |
35 |
|
36 |
I: Bus=0003 Vendor=03f0 Product=0024 Version=0110 |
37 |
N: Name="CHICONY HP Basic USB Keyboard" |
38 |
P: Phys=usb-0000:00:03.1-2/input0 |
39 |
S: Sysfs=/devices/pci0000:00/0000:00:03.1/usb3/3-2/3-2:1.0/input/input1 |
40 |
U: Uniq= |
41 |
H: Handlers=kbd event1 |
42 |
B: EV=120013 |
43 |
B: KEY=10000 7 ff9f207a c14057ff febeffdf ffefffff ffffffff fffffffe |
44 |
B: MSC=10 |
45 |
B: LED=7 |
46 |
|
47 |
I: Bus=0010 Vendor=001f Product=0001 Version=0100 |
48 |
N: Name="PC Speaker" |
49 |
P: Phys=isa0061/input0 |
50 |
S: Sysfs=/devices/platform/pcspkr/input/input2 |
51 |
U: Uniq= |
52 |
H: Handlers=kbd event2 |
53 |
B: EV=40001 |
54 |
B: SND=6 |
55 |
|
56 |
So, I enabled debugging on the contoller driver(serio.c), and I see |
57 |
that the device generates noise when connected: |
58 |
|
59 |
[ 458.875614] drivers/input/serio/i8042.c: f2 -> i8042 (kbd-data) [444989] |
60 |
[ 458.908119] drivers/input/serio/i8042.c: fe <- i8042 (interrupt, 0, |
61 |
1, timeout) [445022] |
62 |
[ 458.908144] drivers/input/serio/i8042.c: ed -> i8042 (kbd-data) [445022] |
63 |
[ 458.940151] drivers/input/serio/i8042.c: fe <- i8042 (interrupt, 0, |
64 |
1, timeout) [445054] |
65 |
[ 458.940225] drivers/input/serio/i8042.c: d4 -> i8042 (command) [445054] |
66 |
[ 458.940234] drivers/input/serio/i8042.c: f2 -> i8042 (parameter) [445054] |
67 |
[ 458.972190] drivers/input/serio/i8042.c: fe <- i8042 (interrupt, 1, |
68 |
12, timeout) [445086] |
69 |
[ 458.972204] drivers/input/serio/i8042.c: d4 -> i8042 (command) [445086] |
70 |
[ 458.972212] drivers/input/serio/i8042.c: ed -> i8042 (parameter) [445086] |
71 |
[ 459.004227] drivers/input/serio/i8042.c: fe <- i8042 (interrupt, 1, |
72 |
12, timeout) [445118] |
73 |
[20171.684870] drivers/input/serio/i8042.c: 0b <- i8042 (interrupt, 0, |
74 |
1) [20162195] |
75 |
|
76 |
However - the atkbd driver does not pick the device up at all. |
77 |
|
78 |
So, I did find a workaround (which is NOT acceptable for this |
79 |
deployment). Remember the PS/2 'wedge' I mentioned? Well, it has an |
80 |
extra PS/2 port for your keyboard. If I connect a PS/2 keyboard to |
81 |
that thing, suddenly my scanner starts working. |
82 |
|
83 |
We see some chatter from the controller driver, then one of these: |
84 |
|
85 |
[23811.805578] input: AT Translated Set 2 keyboard as |
86 |
/devices/platform/i8042/serio0/input/input6 |
87 |
|
88 |
Aaaand a new device is registered as an input device: |
89 |
|
90 |
yayayayhostname# cat /proc/bus/input/devices |
91 |
I: Bus=0003 Vendor=046d Product=c001 Version=0110 |
92 |
N: Name="Logitech USB Mouse" |
93 |
P: Phys=usb-0000:00:03.0-1/input0 |
94 |
S: Sysfs=/devices/pci0000:00/0000:00:03.0/usb2/2-1/2-1:1.0/input/input0 |
95 |
U: Uniq= |
96 |
H: Handlers=mouse0 event0 |
97 |
B: EV=17 |
98 |
B: KEY=70000 0 0 0 0 0 0 0 0 |
99 |
B: REL=103 |
100 |
B: MSC=10 |
101 |
|
102 |
I: Bus=0003 Vendor=03f0 Product=0024 Version=0110 |
103 |
N: Name="CHICONY HP Basic USB Keyboard" |
104 |
P: Phys=usb-0000:00:03.1-2/input0 |
105 |
S: Sysfs=/devices/pci0000:00/0000:00:03.1/usb3/3-2/3-2:1.0/input/input1 |
106 |
U: Uniq= |
107 |
H: Handlers=kbd event1 |
108 |
B: EV=120013 |
109 |
B: KEY=10000 7 ff9f207a c14057ff febeffdf ffefffff ffffffff fffffffe |
110 |
B: MSC=10 |
111 |
B: LED=7 |
112 |
|
113 |
I: Bus=0010 Vendor=001f Product=0001 Version=0100 |
114 |
N: Name="PC Speaker" |
115 |
P: Phys=isa0061/input0 |
116 |
S: Sysfs=/devices/platform/pcspkr/input/input2 |
117 |
U: Uniq= |
118 |
H: Handlers=kbd event2 |
119 |
B: EV=40001 |
120 |
B: SND=6 |
121 |
|
122 |
I: Bus=0011 Vendor=0001 Product=0001 Version=ab41 |
123 |
N: Name="AT Translated Set 2 keyboard" |
124 |
P: Phys=isa0060/serio0/input0 |
125 |
S: Sysfs=/devices/platform/i8042/serio0/input/input6 |
126 |
U: Uniq= |
127 |
H: Handlers=kbd event3 |
128 |
B: EV=120013 |
129 |
B: KEY=4 2000000 3803078 f800d001 feffffdf ffefffff ffffffff fffffffe |
130 |
B: MSC=10 |
131 |
B: LED=7 |
132 |
|
133 |
So, I don't get it. We had this all working fine with the (now |
134 |
ancient version) LTSP configuration, linux 2.4, etc. Did some drastic |
135 |
things change in 2.6 with keyboard management? |
136 |
|
137 |
I am completely out of ideas. The only thing I can figure is that the |
138 |
PS/2 wedge thing isn't doing the right thing, and as a result the 2.6 |
139 |
version of the atkbd driver isn't binding it? Maybe there is some |
140 |
udev magic I need to know? Maybe the serio controller driver isn't |
141 |
doing the right thing? |
142 |
|
143 |
I'm fairly new to Gentoo - so apologies if I've missed something |
144 |
obvious here. Any help would be much appreciated - because I'd really |
145 |
like for this Gentoo image to work out. |
146 |
|
147 |
Thanks! |
148 |
|
149 |
-- |
150 |
Matt |