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