There's no legacy ISA support either. Windows XP's 7 year old HID works fine with the keyboards, while I have nothing but problems with Solaris because the implementation clearly thinks for itself and has limited range of design. X11 should support HID just fine, it handles tons of input devices and locales, not sure why X.modern org can't. I see a limited but good deal of success with modified kernel input drivers in the linux camps for MacBook Pros.
The MacBook Pro keyboard (Revision 3, June 2007) works with basic functionality, and things are broke because the compact design makes use of meta function keys which Solaris does not support. External keyboards work. External mice are a better option at the moment as well. Coming from user experience and not technical studies, basic input functionality works with the onboard devices, while everything else is pretty well supported, such as NVIDIA graphics and things related to Intel chipsets (Suspend/Resume I suspect could work). Atheros and Yukon ethernet which unfortunately still require a brandead manual install using a pendrive work too. The latest iterations supposedly use Broadcom but nothing else should had changed. As for the play school cheapo MacBook and its sticky flat pebble buttons it's not really a good platform for any "real" work anyway. James On Thu, 2008-07-10 at 09:47 -0700, Garrett D'Amore wrote: > I believe that Solaris uses keyboards (and maybe mice too) in what is > called "BOOT Protocol" mode. This is a simplistic report format that > was originally intended to allow simple translation to BIOS-compatible > keyboard support. (I.e. so you don't have to have a full HID parser > in your BIOS or other embedded environments if you only want basic > keyboard/mouse support.) > > Apple doesn't have BIOS, and I *suspect* doesn't support the BOOT > protocol in their latest products. Having a full HID parser would > probably solve the problem. That might be difficult to get into > something the likes of GRUB.... > > A question: do the keyboard/mouse work in X11 after the system has > booted (assuming you used an external keyboard to get that far)? I > don't know if the code in X11 support the full HID protocol either... > > -- Garrett > > J?rgen Keil wrote: > > On Mar 10, 2008, Darren Kenny wrote: > > > > > > > Karl Rossing wrote: > > > > > > > Darren Kenny wrote: > > > > > > > > > And to top it off, the [Apple MacBook Pro] built-in keyboard doesn't > > > > > work in Solaris. > > > > > > > > > > With the keyboard, I've no idea where to start. > > > > > > > > > > > > > > Does a USB keyboard work? > > > > > > > And external USB keyboard works perfectly... > > > > > > > Yep, same here. > > > > > > > The Internal Keyboard / Trackpad combo on the MBP appear to be USB > > > devices too... > > > > > > > Yes. > > > > > > I suspect the MacBook's internal USB keyboard doesn't work because Solaris' > > USB keyboard driver is using/expecting a more or less hardcoded USB keyboard > > report format; but the Apple MacBook USB keyboard seems to use a more > > complicated USB keyboard report format. > > > > E.g. it seems that Apple is using "report id" bytes in their keyboard > > data, but Solaris' usbkbm driver has no code to handle these > > "report id" bytes. > > > > > > Here are USB report descriptors extracted with "::prtusb -t" from "mdb -k": > > > > > > e usb_mid 2 device 05ac.0231 > > Apple Internal Keyboard / Trackpad > > > > usba_device: 0xd2cd7800 > > mfg_prod_sn: Apple, Inc. - Apple Internal Keyboard / Trackpad - NULL > > > > device, instance #2 (driver name: usb_mid) > > /pci at 0,0/pci106b,a3 at 1d,2/device at 2 > > dip: 0xd10aa730 > > usb_mid_statep: 0xd237a080 > > usb_mid_errlevel: 0x4 > > > > { > > keyboard, instance #4 (driver name: hid) > > /pci at 0,0/pci106b,a3 at 1d,2/device at 2/keyboard at 0 > > dip: 0xd3416e28 > > hid_statep: 0xd224f740 > > hid_errlevel: 0x4 > > > > usage page ( 0x01 ) > > usage ( 0x06 ) > > COLLECTION ( 0x01 ) > > report id ( 0x01 ) > > usage page ( 0x07 ) > > logical minimum ( 0x00 ) > > logical maximum ( 0x01 ) > > report size ( 0x01 ) > > report count ( 0x08 ) > > usage min ( 0xe0 ) > > usage max ( 0xe7 ) > > INPUT ( 0x02 ) > > report id ( 0x01 ) > > usage page ( 0x07 ) > > logical minimum ( 0x00 ) > > logical maximum ( 0x01 ) > > report count ( 0x01 ) > > report size ( 0x08 ) > > INPUT ( 0x01 ) > > report id ( 0x01 ) > > logical minimum ( 0x00 ) > > logical maximum ( 0x01 ) > > report count ( 0x05 ) > > report size ( 0x01 ) > > usage page ( 0x08 ) > > usage min ( 0x01 ) > > usage max ( 0x05 ) > > OUTPUT ( 0x02 ) > > report id ( 0x01 ) > > logical minimum ( 0x00 ) > > logical maximum ( 0x01 ) > > usage page ( 0x08 ) > > report count ( 0x01 ) > > report size ( 0x03 ) > > OUTPUT ( 0x01 ) > > report id ( 0x01 ) > > report count ( 0x06 ) > > report size ( 0x08 ) > > logical minimum ( 0x00 ) > > logical maximum ( 0xff 0x00 ) > > usage page ( 0x07 ) > > usage min ( 0x00 ) > > usage max ( 0xff ) > > INPUT ( 0x00 ) > > report id ( 0x01 ) > > usage page ( 0x0c ) > > report size ( 0x01 ) > > report count ( 0x01 ) > > logical minimum ( 0x00 ) > > logical maximum ( 0x01 ) > > usage ( 0xb8 ) > > INPUT ( 0x02 ) > > report id ( 0x01 ) > > logical minimum ( 0x00 ) > > logical maximum ( 0x01 ) > > usage page ( 0xff ) > > report size ( 0x07 ) > > report count ( 0x01 ) > > usage ( 0x03 ) > > INPUT ( 0x02 ) > > END_COLLECTION ( ) > > report id ( 0x01 ) > > logical minimum ( 0x00 ) > > logical maximum ( 0x01 ) > > report size ( 0x07 ) > > report count ( 0x01 ) > > usage page ( 0x0c ) > > usage ( 0x01 ) > > COLLECTION ( 0x01 ) > > usage page ( 0x0c ) > > report id ( 0x52 ) > > logical minimum ( 0x00 ) > > logical maximum ( 0x01 ) > > report size ( 0x01 ) > > report count ( 0x01 ) > > usage ( 0xcd ) > > INPUT ( 0x02 ) > > usage page ( 0x0c ) > > report id ( 0x52 ) > > logical minimum ( 0x00 ) > > logical maximum ( 0x01 ) > > report size ( 0x01 ) > > report count ( 0x01 ) > > usage ( 0xb3 ) > > INPUT ( 0x02 ) > > usage page ( 0x0c ) > > report id ( 0x52 ) > > logical minimum ( 0x00 ) > > logical maximum ( 0x01 ) > > report size ( 0x01 ) > > report count ( 0x01 ) > > usage ( 0xb4 ) > > INPUT ( 0x02 ) > > usage page ( 0x0c ) > > report id ( 0x52 ) > > logical minimum ( 0x00 ) > > logical maximum ( 0x01 ) > > report size ( 0x01 ) > > report count ( 0x01 ) > > usage ( 0xb5 ) > > INPUT ( 0x02 ) > > usage page ( 0x0c ) > > report id ( 0x52 ) > > logical minimum ( 0x00 ) > > logical maximum ( 0x01 ) > > report size ( 0x01 ) > > report count ( 0x01 ) > > usage ( 0xb6 ) > > INPUT ( 0x02 ) > > usage page ( 0x0c ) > > report id ( 0x52 ) > > logical minimum ( 0x00 ) > > logical maximum ( 0x01 ) > > report size ( 0x01 ) > > report count ( 0x01 ) > > INPUT ( 0x01 ) > > usage page ( 0x0c ) > > report id ( 0x52 ) > > logical minimum ( 0x00 ) > > logical maximum ( 0x01 ) > > report size ( 0x01 ) > > report count ( 0x01 ) > > INPUT ( 0x01 ) > > usage page ( 0x0c ) > > report id ( 0x52 ) > > logical minimum ( 0x00 ) > > logical maximum ( 0x01 ) > > report size ( 0x01 ) > > report count ( 0x01 ) > > INPUT ( 0x01 ) > > report id ( 0x09 ) > > logical minimum ( 0x00 ) > > logical maximum ( 0x01 ) > > report size ( 0x08 ) > > report count ( 0x01 ) > > usage page ( 0x01 0xff ) > > usage ( 0x0b ) > > FEATURE ( 0x02 ) > > report id ( 0x09 ) > > logical minimum ( 0x00 ) > > logical maximum ( 0x01 ) > > usage page ( 0x01 0xff ) > > report size ( 0x08 ) > > report count ( 0x02 ) > > FEATURE ( 0x01 ) > > END_COLLECTION ( ) > > > > input, instance #5 (driver name: hid) > > /pci at 0,0/pci106b,a3 at 1d,2/device at 2/input at 1 > > dip: 0xd2b69060 > > hid_statep: 0xd341ed80 > > hid_errlevel: 0x4 > > > > usage page ( 0x00 0xff ) > > usage ( 0x01 ) > > COLLECTION ( 0x03 ) > > usage page ( 0x00 0xff ) > > logical minimum ( 0x00 ) > > logical maximum ( 0xff 0x00 ) > > report id ( 0x44 ) > > report size ( 0x08 ) > > report count ( 0xff 0x01 ) > > usage ( 0x01 ) > > INPUT ( 0x00 ) > > END_COLLECTION ( ) > > > > mouse, instance #6 (driver name: hid) > > /pci at 0,0/pci106b,a3 at 1d,2/device at 2/mouse at 2 > > dip: 0xd3416a08 > > hid_statep: 0xd341ec80 > > hid_errlevel: 0x4 > > > > usage page ( 0x01 ) > > usage ( 0x02 ) > > COLLECTION ( 0x01 ) > > usage page ( 0x01 ) > > usage ( 0x01 ) > > COLLECTION ( 0x00 ) > > usage page ( 0x09 ) > > logical minimum ( 0x00 ) > > logical maximum ( 0x01 ) > > report id ( 0x02 ) > > report count ( 0x03 ) > > report size ( 0x01 ) > > usage min ( 0x01 ) > > usage max ( 0x03 ) > > INPUT ( 0x02 ) > > usage page ( 0x09 ) > > logical minimum ( 0x00 ) > > logical maximum ( 0x01 ) > > report id ( 0x02 ) > > report count ( 0x01 ) > > report size ( 0x05 ) > > INPUT ( 0x01 ) > > report id ( 0x02 ) > > usage page ( 0x01 ) > > logical minimum ( 0x81 ) > > logical maximum ( 0x7f ) > > report size ( 0x08 ) > > report count ( 0x02 ) > > usage ( 0x30 ) > > usage ( 0x31 ) > > INPUT ( 0x06 ) > > END_COLLECTION ( ) > > END_COLLECTION ( ) > > > > } > > > > > > This message posted from opensolaris.org > > _______________________________________________ > > laptop-discuss mailing list > > laptop-discuss at opensolaris.org > > > > _______________________________________________ > laptop-discuss mailing list > laptop-discuss at opensolaris.org