Translation(s): none
MacBookPro5,1
MacBook Pro 15" Oct 2008, 15" Mar 2009
Contents
- Install Debian
-
Hardware
- CPU / Core 2 Duo T9550
- GPU / Nvidia GeForce 9600M GT and Nvidia GeForce 9400M
- Apple ClickPad
- Apple Keyboard
- SATA / Nvidia MCP79
- Gigabit Ethernet / Broadcom BCM5764M
- WiFi / Broadcom BCM432x
- Bluetooth / Broadcom BCM2046
- Audio / Nvidia MCP79
- Power Management
- Firewire / Agere Systems FW643 (1394b)
- Apple iSight
- Apple IR Receiver
- Apple ExpressCard slot
- System Summary
Install Debian
Hardware
CPU / Core 2 Duo T9550
See #cpuinfo for more details.
GPU / Nvidia GeForce 9600M GT and Nvidia GeForce 9400M
The GPU is an NV96 dedicated graphics core. There's also an NVAC integrated graphics core in the MCP79 chipset.
Switching between the two is untested.
2D
- KMS works.
- no xorg.conf needed for X
3D
- mesa's nouveau_dri driver works. FIXME: untested
External display
mini-?DisplayPort connector should work FIXME: untested
Backlight control
- nv_backlight (nouveau) works in recent kernels
- apple_bl works too, but nv_backlight is preferred by gnome-settings-daemon FIXME: untested
Apple ClickPad
Multi-touch gestures like the drag two-finger drag gesture are supported in the current xserver-xorg-input-synaptics package (>1.6.1).
If you would like your touchpad to behave like the natural scrolling mode in Mac OS X Lion, you have to add the next line to your ~/.Xmodmap
pointer = 1 2 3 5 4 7 6 8 9 10 11 12
Apple Touchpad
?MacBookPro3,1 touchpad behavior might be smoother with the kernel boot option:
appletouch.threshold=3
possibly adding it to the GRUB_CMDLINE_LINUX_DEFAULT line in /etc/defaults/grub
For older versions you can check PageFragmentClickPadOld
Apple Keyboard
Configuration
You can set up the keyboard layout with this command:
$ sudo dpkg-reconfigure keyboard-configuration
This will change the config file /etc/default/keyboard into something like this:
XKBMODEL="apple_laptop" XKBLAYOUT="us" XKBVARIANT="mac" XKBOPTIONS="terminate:ctrl_alt_bksp"
… or another example:
XKBMODEL="pc105" XKBLAYOUT="fr" XKBVARIANT="mac" XKBOPTIONS="lv3:rwin_switch"
Default behaviour
'fn'+'Enter' -> Insert
'fn'+'Backspace' -> Delete
'fn'+'Up' -> PageUp
'fn'+'Down' -> PageDown
'fn'+'Left' -> Home
'fn'+'Right' -> End
'Clear' -> NumLock
Function key behaviour
The hid_apple module has a parameter called 'fnmode' to change the behaviour of the 'fn'-key
There's three settings for fnmode:
- 0 = disabled: Disable the 'fn' key. Pressing 'fn' has no effect
- 1 = fkeyslast: Enable the 'fn' key. Pressing 'F1-F12' keys will act as special keys. Pressing 'fn'+'F1-F12' will behave like 'F1-F12'.
- 2 = fkeysfirst: Enable the 'fn' key. Pressing 'F1-F12' keys will behave like the real 'F1-F12'. Pressing 'fn'+'F8' will act as the special key (play/pause in this case).
There's several ways to set this parameter:
using sysfs, for example:
$ echo 2 | sudo tee /sys/module/hid_apple/parameters/fnmode
as a module parameter (won't work if you compile hid_apple in your kernel):
$ echo options hid_apple fnmode=2 | sudo tee -a /etc/modprobe.d/hid_apple.conf $ sudo modprobe --dry-run hid_apple
if this throws no error you can
$ sudo update-initramfs -u
on the kernel command line: edit /etc/default/grub, and add the following to the GRUB_CMDLINE_LINUX_DEFAULT variable:
hid_apple.fnmode=2
Swapped keys on international keyboards
The hid_apple module also has a parameter called 'iso_layout'
- 0 means international layout, so on an 'English International' keyboard the '§±'-key will be top left, and the '`~'-key will be next to left shift
- 1 swaps it around
There's several ways to set this parameter:
using sysfs, for example:
$ echo 0 | sudo tee /sys/module/hid_apple/parameters/iso_layout
as a module parameter (won't work if you compile hid_apple in your kernel):
$ echo options hid_apple iso_layout=0 | sudo tee -a /etc/modprobe.d/hid_apple.conf $ sudo modprobe --dry-run hid_apple
if this throws no error you can
$ sudo update-initramfs -u
on the kernel command line: edit /etc/default/grub, and add the following to the GRUB_CMDLINE_LINUX_DEFAULT variable:
hid_apple.iso_layout=0
See also
See also AppleKeyboard on Ubuntu's wiki.
SATA / Nvidia MCP79
The firmware switches the SATA controller in two different modes depending on how the system was booted. In BIOS mode you'll need to use the sata_generic driver; in EFI mode you need the ahci driver.
Gigabit Ethernet / Broadcom BCM5764M
Works our of the box with the tg3 driver.
WiFi / Broadcom BCM432x
Installing the driver
The Broadcom BCM4321 and BCM4322 are supported by the b43 driver as of Linux 2.6.38. Later kernels improve the speed and stability of the aforementioned “N-PHY” hardware considerably (thank you, Rafał Miłecki).
To confirm you have such hardware you can refer to http://wireless.kernel.org/en/users/Drivers/b43#Device_firmware_installation
Installing the firmware
Ensure you have “contrib” archive area set up in your /etc/apt/sources.list, for example:
deb http://ftp.us.debian.org/debian wheezy main contrib non-free
Next (after an “apt-get update” of course) install the firmware-b43-installer package:
$ sudo apt-get install firmware-b43-installer
The hardware will be fully functional the next time the b43 driver is loaded (after reboot or by explicitly unloading/loading the driver).
Alternative driver
This hardware is also supported by the proprietary wl driver.
Known issues
BCM4321: The wl driver offers many more options than b43, this is specially useful for some advanced wireless scanning and performance data. The main difference, however, is that the b43 driver does not know how to do proper power-saving with this card. The wl driver does a much better job. This is noticeable in the temperature of the card, usually a difference of 10-15°C. In favor of the b43 driver, it is much faster to scan and join wireless networks.
See also
Bluetooth / Broadcom BCM2046
Works out of the box with the btusb driver.
Audio / Nvidia MCP79
Works out of the box with the snd-hda-intel driver.
Power Management
Suspend to ram works out of the box.
Firewire / Agere Systems FW643 (1394b)
Works out of the box.
Apple iSight
Works out of the box with the uvcvideo driver.
Apple IR Receiver
Untested. See also:
Apple ExpressCard slot
Untested.
System Summary
cpuinfo
processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 23 model name : Intel(R) Core(TM)2 Duo CPU T9550 @ 2.66GHz stepping : 10 microcode : 0xa07 cpu MHz : 1596.000 cache size : 6144 KB physical id : 0 siblings : 2 core id : 0 cpu cores : 2 apicid : 0 initial apicid : 0 fpu : yes fpu_exception : yes cpuid level : 13 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good nopl aperfmperf pni dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm sse4_1 xsave lahf_lm dts tpr_shadow vnmi flexpriority bogomips : 5306.36 clflush size : 64 cache_alignment : 64 address sizes : 36 bits physical, 48 bits virtual power management: processor : 1 vendor_id : GenuineIntel cpu family : 6 model : 23 model name : Intel(R) Core(TM)2 Duo CPU T9550 @ 2.66GHz stepping : 10 microcode : 0xa07 cpu MHz : 1596.000 cache size : 6144 KB physical id : 0 siblings : 2 core id : 1 cpu cores : 2 apicid : 1 initial apicid : 1 fpu : yes fpu_exception : yes cpuid level : 13 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good nopl aperfmperf pni dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm sse4_1 xsave lahf_lm dts tpr_shadow vnmi flexpriority bogomips : 5306.61 clflush size : 64 cache_alignment : 64 address sizes : 36 bits physical, 48 bits virtual power management:
lspci
00:00.0 Host bridge [0600]: NVIDIA Corporation MCP79 Host Bridge [10de:0a82] (rev b1) 00:00.1 RAM memory [0500]: NVIDIA Corporation MCP79 Memory Controller [10de:0a88] (rev b1) 00:03.0 ISA bridge [0601]: NVIDIA Corporation MCP79 LPC Bridge [10de:0aae] (rev b3) 00:03.1 RAM memory [0500]: NVIDIA Corporation MCP79 Memory Controller [10de:0aa4] (rev b1) 00:03.2 SMBus [0c05]: NVIDIA Corporation MCP79 SMBus [10de:0aa2] (rev b1) 00:03.3 RAM memory [0500]: NVIDIA Corporation MCP79 Memory Controller [10de:0a89] (rev b1) 00:03.4 RAM memory [0500]: NVIDIA Corporation Device [10de:0a98] (rev b1) 00:03.5 Co-processor [0b40]: NVIDIA Corporation MCP79 Co-processor [10de:0aa3] (rev b1) 00:04.0 USB controller [0c03]: NVIDIA Corporation MCP79 OHCI USB 1.1 Controller [10de:0aa5] (rev b1) 00:04.1 USB controller [0c03]: NVIDIA Corporation MCP79 EHCI USB 2.0 Controller [10de:0aa6] (rev b1) 00:06.0 USB controller [0c03]: NVIDIA Corporation MCP79 OHCI USB 1.1 Controller [10de:0aa7] (rev b1) 00:06.1 USB controller [0c03]: NVIDIA Corporation MCP79 EHCI USB 2.0 Controller [10de:0aa9] (rev b1) 00:08.0 Audio device [0403]: NVIDIA Corporation MCP79 High Definition Audio [10de:0ac0] (rev b1) 00:09.0 PCI bridge [0604]: NVIDIA Corporation MCP79 PCI Bridge [10de:0aab] (rev b1) 00:0a.0 Ethernet controller [0200]: NVIDIA Corporation MCP79 Ethernet [10de:0ab0] (rev b1) 00:0b.0 IDE interface [0101]: NVIDIA Corporation MCP79 SATA Controller [10de:0ab5] (rev b1) 00:0c.0 PCI bridge [0604]: NVIDIA Corporation MCP79 PCI Express Bridge [10de:0ac4] (rev b1) 00:15.0 PCI bridge [0604]: NVIDIA Corporation MCP79 PCI Express Bridge [10de:0ac6] (rev b1) 00:16.0 PCI bridge [0604]: NVIDIA Corporation MCP79 PCI Express Bridge [10de:0ac7] (rev b1) 00:17.0 PCI bridge [0604]: NVIDIA Corporation MCP79 PCI Express Bridge [10de:0ac7] (rev b1) 02:00.0 VGA compatible controller [0300]: NVIDIA Corporation G96 [GeForce 9600M GT] [10de:0647] (rev a1) 04:00.0 Network controller [0280]: Broadcom Corporation BCM4322 802.11a/b/g/n Wireless LAN Controller [14e4:432b] (rev 01) 05:00.0 FireWire (IEEE 1394) [0c00]: LSI Corporation FW643 PCI Express 1394b Controller (PHY/Link) [11c1:5901] (rev 07)
lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 001 Device 002: ID 05ac:8507 Apple, Inc. Built-in iSight Bus 004 Device 002: ID 0a5c:4500 Broadcom Corp. BCM2046B1 USB 2.0 Hub (part of BCM2046 Bluetooth) Bus 003 Device 002: ID 05ac:8242 Apple, Inc. IR Receiver [built-in] Bus 003 Device 003: ID 05ac:0236 Apple, Inc. Internal Keyboard/Trackpad (ANSI) Bus 004 Device 003: ID 05ac:8213 Apple, Inc. Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub bDeviceClass 9 Hub bDeviceProtocol 0 Full speed (or root) hub iProduct 2 EHCI Host Controller Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub bDeviceClass 9 Hub bDeviceProtocol 0 Full speed (or root) hub iProduct 2 EHCI Host Controller Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub bDeviceClass 9 Hub bDeviceProtocol 0 Full speed (or root) hub iProduct 2 OHCI Host Controller Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub bDeviceClass 9 Hub bDeviceProtocol 0 Full speed (or root) hub iProduct 2 OHCI Host Controller Bus 001 Device 002: ID 05ac:8507 Apple, Inc. Built-in iSight bDeviceClass 239 Miscellaneous Device bDeviceProtocol 1 Interface Association iProduct 2 Built-in iSight (Bus Powered) bDeviceClass 239 Miscellaneous Device bDeviceProtocol 1 Interface Association (Bus Powered) Bus 004 Device 002: ID 0a5c:4500 Broadcom Corp. BCM2046B1 USB 2.0 Hub (part of BCM2046 Bluetooth) bDeviceClass 9 Hub bDeviceProtocol 0 Full speed (or root) hub iProduct 2 BRCM2046 Hub Bus 003 Device 002: ID 05ac:8242 Apple, Inc. IR Receiver [built-in] bDeviceClass 0 (Defined at Interface level) bDeviceProtocol 0 iProduct 2 IR Receiver (Bus Powered) (Bus Powered) Bus 003 Device 003: ID 05ac:0236 Apple, Inc. Internal Keyboard/Trackpad (ANSI) bDeviceClass 0 (Defined at Interface level) bDeviceProtocol 0 iProduct 2 Apple Internal Keyboard / Trackpad (Bus Powered) (Bus Powered) Bus 004 Device 003: ID 05ac:8213 Apple, Inc. bDeviceClass 224 Wireless bDeviceProtocol 1 Bluetooth iProduct 2 Bluetooth USB Host Controller