Apple MacBookPro and T2/Linux

MacBookPro

The x86 based Apple PowerBook successor.

Stuff that doesn't work

For strange, apparently USB address programming related issues the USB connected bluetooth module does not show up as USB device under Linux and thus does not work.

Notes

The Atheros wireless chip requiers latest (SVN) Madwifi HAL.

The integrated webcam required a modified linux-uvc and firmware to be up-loaded.

Suspend to RAM apparently only works (for me) with the binary only Nvidia driver, with just a text VT or the open source X.org xf86-video-nv driver, the machine does not come back from suspend.

As Apple based x86 hardware the devices comes with EFI instead fo the old-style PC BIOS. As such it requiers an additional boot loader to load a classic boot loader and thus a "classic" i386 Linux. This can be achieved with Apple's boot camp or the open source rEFIt. EFI enabled versions of Linux can be directly loaded without the BIOS cludge thru the elilo loader that was already created for IA-64 Linux, or since then simply with GRUB 2.

With modern kernels, you likely want to boot at least with nouveau.modeset=1 as the linux kernel driver fails to map a valid BIOS and thus errors out taking over, and half re-initializing the GPU resulting in loss of console updates as soon as udevd modprobes the module.

Performance Index

11:05m to build binutils-2.41 w/ gcc-13.2 (LTO, -Osmart), linux-6.5
1:49m to build bash-5.2-015 w/ gcc-13.2 (LTO, -Osmart), linux-6.5
53s to build lua-5.4.6 w/ gcc-13.2 (LTO, -Osmart), linux-6.5

/proc/cpuinfo

processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 15
model name : Intel(R) Core(TM)2 Duo CPU T7500 @ 2.20GHz
stepping : 11
cpu MHz : 800.000
cache size : 4096 KB
physical id : 0
siblings : 2
core id : 0
cpu cores : 2
fpu : yes
fpu_exception : yes
cpuid level : 10
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 pni monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr lahf_lm
bogomips : 4393.79
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 : 15
model name : Intel(R) Core(TM)2 Duo CPU T7500 @ 2.20GHz
stepping : 11
cpu MHz : 800.000
cache size : 4096 KB
physical id : 0
siblings : 2
core id : 1
cpu cores : 2
fpu : yes
fpu_exception : yes
cpuid level : 10
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 pni monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr lahf_lm
bogomips : 4389.06
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual
power management:

lspci

00:00.0 Host bridge: Intel Corporation Mobile Memory Controller Hub (rev 03)
00:01.0 PCI bridge: Intel Corporation Mobile PCI Express Root Port (rev 03)
00:1a.0 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Contoller #4 (rev 03)
00:1a.1 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #5 (rev 03)
00:1a.7 USB Controller: Intel Corporation 82801H (ICH8 Family) USB2 EHCI Controller #2 (rev 03)
00:1b.0 Audio device: Intel Corporation 82801H (ICH8 Family) HD Audio Controller (rev 03)
00:1c.0 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 1 (rev 03)
00:1c.2 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 3 (rev 03)
00:1c.4 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 5 (rev 03)
00:1c.5 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 6 (rev 03)
00:1d.0 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #1 (rev 03)
00:1d.1 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #2 (rev 03)
00:1d.2 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #3 (rev 03)
00:1d.7 USB Controller: Intel Corporation 82801H (ICH8 Family) USB2 EHCI Controller #1 (rev 03)
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev f3)
00:1f.0 ISA bridge: Intel Corporation Mobile LPC Interface Controller (rev 03)
00:1f.1 IDE interface: Intel Corporation Mobile IDE Controller (rev 03)
00:1f.2 IDE interface: Intel Corporation Mobile SATA IDE Controller (rev 03)
00:1f.3 SMBus: Intel Corporation 82801H (ICH8 Family) SMBus Controller (rev 03)
01:00.0 VGA compatible controller: nVidia Corporation Unknown device 0407 (rev a1)
0b:00.0 Network controller: Atheros Communications, Inc. AR5418 802.11a/b/g/n Wireless PCI Express Adapter (rev 01)
0c:00.0 Ethernet controller: Marvell Technology Group Ltd. Unknown device 436a (rev 13)
0d:03.0 FireWire (IEEE 1394): Texas Instruments TSB82AA2 IEEE-1394b Link Layer Controller (rev 02)

lsusb

Bus 7 Device 2: ID 05ac:8242 Apple Computer, Inc.
Bus 7 Device 3: ID 05ac:021b Apple Computer, Inc.
Bus 3 Device 2: ID 05ac:1000 Apple Computer, Inc.
Bus 2 Device 8: ID 05ac:1702 Apple Computer, Inc.
Bus 2 Device 9: ID 05ac:0221 Apple Computer, Inc.
Bus 2 Device 6: ID 05ac:1006 Apple Computer, Inc.
Bus 2 Device 7: ID 05ac:9222 Apple Computer, Inc.
Bus 2 Device 10: ID 05ac:0304 Apple Computer, Inc.
Bus 2 Device 3: ID 05ac:8502 Apple Computer, Inc.
Bus 2 Device 2: ID 05ac:9130 Apple Computer, Inc.