No keyboard in sysinstall in 6.0-BETA2

Maksim Yevmenkin maksim.yevmenkin at savvis.net
Sun Aug 7 17:04:58 GMT 2005


> Joe Marcus Clarke wrote:
> 
>> On Sat, 2005-08-06 at 19:08 -0400, Joe Marcus Clarke wrote:
>>
>>> I'm trying to install FreeBSD 6.0-BETA2 from CD on Dell Precision 380.
>>> The machine has a PS/2 keyboard on it.  The keyboard works fine in the
>>> BIOS, and at the Booting... prompt.  However, once sysinstall comes up,
>>> the keyboard is dead.  Nothing I type will be accepted.  The machine
>>> does not appear to be panicked or hung.
>>>
>>> I switched from vidconsole to comconsole, and sysinstall works, so
>>> perhaps this has something to do with the new keyboard mux?
>>>
>>> Dmesg is at http://www.marcuscom.com/downloads/NEW-SHUMAI.dmesg
>>
>>
>>
>> More news on this.  After getting 6.0-BETA2 installed from the serial
>> console, I found that _any_ input on the PS/2 port causes the machine to
>> lock up hard.  I can break into the debugger, but as soon as I hit any
>> key on the PS/2 keyboard, the machine locks up. I can't type anything
>> (even from the serial console).  The only way out is to do a hard reset.
>>
>> I've tried building a custom kernel and disabling apic and acpi.
>> Nothing will get 6.0 to work with any locally attached keyboard.
>>
>> I also found a CD of 5.4-RC3, which boots perfectly on this machine with
>> working PS/2 and USB keyboards.  So, I thought maybe the kbdmux was the
>> problem.  I reverted the kbd code to original RELENG_6 version (kbd.c
>> rev. 1.43 and kbdreg.h rev. 1.17), and the keyboard works once again.
>> Anything else I can try to debug this problem with kbdmux further?
> 
> 
> i doubt kbdmux(4) is your problem. according to the dmesg you have 
> posted you dont seem to use/load kbdmux(4) driver. it is highly unlikely 
> that my changes in /sys/dev/kbd/ cause this. kbdmux(4) is not default 
> keyboard and, at this point, one must configure/load it by hand. my 
> guess would be that you, perhaps, have some sort of interrupt routing 
> problem or something like it.


actually, now i'm confused. as you stated you have reverted 
/sys/dev/kbd/kbd.c and /sys/dev/kbd/kbdreg.h. are these only files you 
have reverted?

i think, i can rule out /sys/dev/kbd/kbdreg.h - this just add a 
prototype for kbd_find_keyboard2().

so this leaves only /sys/dev/kbd/kbd.c. the only change here was new 
kbd_find_keyboard2() function and change to the original 
kbd_find_keyboard() function. kbd_find_keyboard2() function is almost 
the same as the original kbd_find_keyboard() function. the only 
difference is that kbd_find_keyboard2() accepts one extra parameter that 
specifies starting index for search. it also checks the index to make 
sure it is within valid bounds. naturally, kbd_find_keyboard() can just 
call kbd_find_keyboard2() with starting index of 0 to emulate old 
behavior. unless i screwed up here, i do not see how this would break 
anything.

also, one thing i noticed in your dmesg output

atkbdc0: <Keyboard controller (i8042)> port 0x60,0x64 irq 1 on acpi0
atkbd0: <AT Keyboard> flags 0x3 irq 1 on atkbdc0
atkbd: the current kbd controller command byte 0065
atkbd: keyboard ID 0xffffffff (1)
kbd0 at atkbd0
kbd0: atkbd0, AT 84 (1), config:0x3, flags:0x3d0000
atkbd0: [GIANT-LOCKED]

just wanted to clarify - do you really have 84-keys at keyboard?

thanks,
max



More information about the freebsd-current mailing list