On Wed, Mar 27, 2002 at 09:50:25PM +0100, Eduard Bloch wrote:

> Vojtech Pavlik wrote on Wed Mar 27, 2002 um 08:58:32PM:
> > > and the keyboard should work when you change the (first!) installation
> > > disk at boot time. At this point, there is no chance to load modules.
> > 
> > If you want the BIOS legacy keyboard emulation to keep working after you
> > load USB modules in Linux, that's simply impossible. Once the OS drivers
> 
> Now, I want to have working keyboard before any USB driver has been
> loaded. Currently, the emulation breaks after Linux's hardware detection
> loop.

This looks like a buggy BIOS. I suppose it breaks when Linux tries to
detect an AT keyboard and fails, because the keyboard emulation isn't
good enough. Thus it decides there is no keyboard present (AT keyboard
failed, USB drivers not loaded yet).

> > take over the USB controller, no more legacy emulation can be done by
> > the BIOS.
> 
> We have a workaround for this problem. Though I wish that USB controller
> drivers scan the presense of the AT keyboard and load usbkbd||hid when
> needed.

USB drivers of course can't scan for the presence of the AT keyboard.
It's an USB driver, not an AT keyboard driver. Furthermore, it will call
the hotplug agent (when hotplug is enabled) to load any needed drivers
when a HID device (USB keyboard) is detected.

Configure the hotplug agent to load the needed drivers.

> > > problem - the drivers have been loaded, the keyboard has been
> > > found, but if keeped beeing non-functional. Only forced load of
> > > "keybdev" module (note that the driver has also been compiled into the
> > > kernel!) woke it up.
> > 
> > That's weird. It works for everyone else OK.
> 
> I tried this on two machines, on both the same behavior. Without keybdev
> - no go, with "hid" as well as with "usbkbd".

Without keybdev, it can't work. Keybdev is bridging between the input
code and the console code, without it, the keypresses are detected, but
not acted upon. That's OK.

> > > Call Trace: [<d8904a48>] [<d8904c21>] [<d8905ef9>] [<d89076c0>] [<d89083c0>]
> > >    [<d8906b7a>] [<c01fcc5f>] [<d890707a>] [<d89083c0>] [<c0117017>] [<c01163a7>]
> > >    [<c0106c5b>]
> > > 
> > > Code:  Bad EIP value.
> > 
> > Care to provide the relevant System.map or run the oops through
> > ksymoops?
> 
> http://sites.inka.de/~W1752/System.map-2.4.18

Hmm, this oops is in the module code, not covered in System.map. You'll
need to run ksymoops right after the oops.

> > > modprobe returned, and I saw a bunch of "ust_control/bulk_msg: timeout"
> > > messages.
> > > As far as I can see, there is currently NO WAY to make the keyboard work
> > > without modules.
> > 
> > Have you tried unplugging and replugging it while the system is running?
> 
> Sure, does not help.

What does it print then?

> > > input1,hiddev0: USB HID v1.00 Pointer [Compaq Compaq] on usb1:2.1
> > > usb.c: hid driver claimed interface cff42ed8
> > > usb.c: kusbd: /sbin/hotplug add 2
> > > hub.c: port 1 connection change
> > > hub.c: port 1, portstatus 300, change 3, 1.5 Mb/s
> > 
> > This is a very weird keyboard (if it is a keyboard at all!). It seems
> 
> It is one of those special Compaq internet keyboards sold with thousands
> of discount-class systems in Germany. It has additional keys, that seem
> not to be supported from any application I have tried. 
> 
> cat /dev/input/event0
> 
> does not show anything on pressing the extra keys.

Perhaps /dev/input/event1 is the place to look at?

> > like it doesn't like the get_report request or something like that. 
> > Can you send me the contents of /proc/bus/usb/devices on your system?
> 
> Sure.

> T:  Bus=02 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=12  MxCh= 2
> B:  Alloc=  0/900 us ( 0%), #Int=  0, #Iso=  0
> D:  Ver= 1.00 Cls=09(hub  ) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
> P:  Vendor=0000 ProdID=0000 Rev= 0.00
> S:  Product=USB UHCI Root Hub
> S:  SerialNumber=cc00
> C:* #Ifs= 1 Cfg#= 1 Atr=40 MxPwr=  0mA
> I:  If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub
> E:  Ad=81(I) Atr=03(Int.) MxPS=   8 Ivl=255ms
> T:  Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=12  MxCh= 2
> B:  Alloc=  0/900 us ( 0%), #Int=  0, #Iso=  0
> D:  Ver= 1.00 Cls=09(hub  ) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
> P:  Vendor=0000 ProdID=0000 Rev= 0.00
> S:  Product=USB UHCI Root Hub
> S:  SerialNumber=c800
> C:* #Ifs= 1 Cfg#= 1 Atr=40 MxPwr=  0mA
> I:  If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub
> E:  Ad=81(I) Atr=03(Int.) MxPS=   8 Ivl=255ms

How about one more, this time with the keyboard connected?

-- 
Vojtech Pavlik
SuSE Labs

_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-users

Reply via email to