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

Re: USB on X86 platform boot

On Mon, 4 Jun 2001, Karl Hammar wrote:

> Strange behaviour, you can use the USB without USB support in the bios
> nor the kernel, the only thing you need is a PS/2 keyboard connected.

I am afraid I failed miserably to explain the behaviour of the system in
question. Of course there is BIOS support for USB devices keyboard and
mouse. And it can be enabled or disabled and then of course the outcome is
as advertised. It is there with USB CHIP support enabled and USB Keyboard
enabled and attached with no PS/2 keyboard. All the initial setting of the
BIOS can be done and the syslinux dialig works OK.  And is not there when
the BIOS USB functions are switched off. So far for the hardware behaves
as one would expect. No problems so far. OK? Now when the distribution
disk or CD boots the kernel regardless of state of BIOS USB support the
message that the keyboard is missing is coming up and no input is possible
when it reaches the point to ask for a key press in "newt" as I understood
it is and not curses, as I have stated in a previous message. The physical
presence of a connected PS/2 keyboard _with_ enabled BIOS USB support for
keyboard and said USB keyboard attached also lets the kernel boot past the
point where the keyboard missing message would be generated (and no the
booting does not stop when that message is generated it continues after
the timout message only the keyboard as input device device seems to be
disabled after that). USB keyboard can be used for input and all is fine.

I hope this description does not make the confusion even bigger.  

> This makes one wonder whether it is the hw or the linux kernel that
> needs to be fooled to believe that you have a PS/2 kbd. when you really
> are using a USB kbd.

For me it seems to be a problem of the kernel is erroneously assuming that
the keyboard is missing and stopps expecting input from there. When the
PS/2 keyboard is attached (and never really used) it is happily accepting
input from the USB keyboard.

> Interesting question, but I wont pursue it further. You have to find
> someone knowledgable in the PS/2 input hardware and linux keyboard
> low level routines for that.
> BTW, the send_data routine mentioned is only used by:
>   void pckbd_leds(unsigned char leds)                                                                                                                         
>   {                                                                                                                                                           
> 	  if (kbd_exists && (!send_data(KBD_CMD_SET_LEDS) || !send_data(leds))) {                                                                             
> 		  send_data(KBD_CMD_ENABLE);      /* re-enable kbd if any errors */                                                                           
> 		  kbd_exists = 0;                                                                                                                             
> 	  }                                                                                                                                                   
>   }                                                                                                                                                           
> in the same file. I have not found a reference to it anywhare else in
> the kernel source:
> $ find . -name \*.c -or -name \*.h | sort | xargs grep send_data | less

Thanks for your patiance and investigations so far. I have managed with
the hints from you to successfully boot and insatll the basic system and
will in near future set up a working environment on the machine. I am
totally lacking the skills to investigate or search for reasons of the
problem, am nowhere in the position to provide a fix for the observed
behaviour. Anyway the workaround was good enough for me. 

Thanks and best wishes,

Reply to: