Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 25 Apr 2010 09:51:19 +0200
From:      Hans Petter Selasky <hselasky@c2i.net>
To:        freebsd-usb@freebsd.org
Cc:        rpaulo@freebsd.org, Peter =?iso-8859-1?q?Ankerst=E5l?= <peter@pean.org>
Subject:   Re: Keyboard problem with new MacBook Pro.
Message-ID:  <201004250951.19561.hselasky@c2i.net>
In-Reply-To: <B783F7E2-A1AC-4896-9F51-4B36E2837D75@pean.org>

index | next in thread | previous in thread | raw e-mail

On Sunday 25 April 2010 09:30:12 Peter Ankerstål wrote:
> Hi,
> 
> I have the newly released macbook pro 13" (7,1). (swedish keyboard) And it
>  seems that I have some problem with the USB-keyboard driver. The keyboard
>  seems to work more or less in the boot meny, I can type and so on. But
>  when the system is booted the keyboard dosent work. It seems like ctrl is
>  constantly pressed or something like that. Nothing that I've done gives me
>  normal characters on screen. Its the FreeBSD 7.3 amd64 version i have
>  installed btw. (8.0 or 9.0 freeezes during boot due to some acpi-problem
>  http://wiki.freebsd.org/AppleMacbook#head-083ebc072fcd20e07a74a11565fc41af
> b2ca099b)
> 
> I have got the keyboard to partially work when using the fixit cd. If I
>  choose US UNIX keymap first and then switch to some other keymap, say US
>  ISO och Swedish ISO it works to type but shift, ctrl and so on doesnt
>  work.

Hi,

In 8-stable and 9-current, we have made several patches in the USB keyboard 
area for Apple Keyboards, like supporting the eject key, swapping keys, etc.

Regaring the boot issue with Mac, I think it can be solved by adding a quirk 
in the kernel:

amd64/machdep.c:                if (strncmp(sysenv, "MacBook1,1", 10) == 0 ||
amd64/machdep.c:                    strncmp(sysenv, "MacBook3,1", 10) == 0 ||
amd64/machdep.c:                    strncmp(sysenv, "MacBookPro1,1", 13) == 0 
||
amd64/machdep.c:                    strncmp(sysenv, "MacBookPro1,2", 13) == 0 
||
amd64/machdep.c:                    strncmp(sysenv, "MacBookPro3,1", 13) == 0 
||
amd64/pmap.c:                   if (strncmp(sysenv, "MacBook5,1", 10) == 0 ||
amd64/pmap.c:                       strncmp(sysenv, "MacBookPro5,5", 13) == 0 
||

Similar for i386.

Could you print out your sysenv during boot and try adding your MacBook to the 
quirk list?

--HPS


help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201004250951.19561.hselasky>