laptops:apple_macbookpro9_2

This is an old revision of the document!


Apple MacBook Pro 13-Inch "Core i5" 2.5 / "Core i7 2.9" (Mid-2012)

Identifiers: Mid-2012 - MD101LL/A* (i5) - MD102LL/A (i7) - MacBookPro9,2 - A1278/2554*


Year introduced June 11, 2012
CPU Intel(R) Core(TM) i5-3210M @ 2.50Ghz / i7-3520M @ 2.90Ghz (Ivy Bridge)
Ethernet Broadcom NetXtreme BCM57765 Gigabit Ethernet PCIe
Graphics Intel(R) HD Graphics 4000 (integrated GPU with 1.5GB shared memory)
Memory 4GB (or 8GB for the i7) RAM DDR3 @ 1600Mhz
Screen LED-backlit 13,3“ widescreen TFT active-matrix “glossy” @ 1280×800
Wireless Broadcom BCM4331 802.11a/b/g/n Dual-Band Wireless
Sound Cirrus Logic CS4206 (Internal Analog 3.1/2.0)

Component Status Details
Graphics Graphical sessions ✔ Xorg works out of the box
Backlight (brightness) control :?: Requires asmc(4) and acpi_video(4) drivers
Input devices Keyboard backlight :?: Requires asmc(4) and acpi_video(4) drivers
Touchpad :?: Requires wsp(4) driver
Media keys Brightness keys :?: Requires sysutils/asmctl port
Volume keys :!: Doesn't work out of the box
Network Ethernet ✔ Works out of the box with bge(4) driver
Wi-Fi ✘ BCM4331's driver not ready yet
Other Battery ✔ Works out of the box
Bluetooth :!: Untested but detected
CD/DVD drive ✔ Works out of the box
Fan :?: Requires coretemp(4) driver
SD card reader ✔ Works out of the box
Suspend & resume :?: Requires sysctl hw.acpi.lid_switch_state=S3
Webcam :!: Untested but detected
Ports DisplayPort :!: Untested but detected
FireWire :!: Untested but detected
Thunderbolt ✘
USB ✔
Headphone jack ✔ Available on pcm1
Sound Speakers :?: Requires tweaking to power up the sub-woofer
Last update: 2021-06-13 12:58:27+0200
  • Legend
    • ✔ OK
    • :?: Somewhat OK: requires additional tweaking or works worse than expected
    • :!: Present but status unknown or untested
    • ✘ Does not work
    • nothing Not sure if present

  • Internal battery is detected out of the box. Maximum efficiency while on battery is done with powerd(8) and the following settings on /etc/rc.conf:
# Enable powerd(8) at boot
powerd_enable="YES"

# powerd(8) flags
power_flags="-n min -a hiadaptive -b adaptive"
  • Fan control needs the asmc(4) driver. Once the driver loaded with kldload asmc, control of the fan is done with sysctl(8). For example, the following would set the fan speed running at 3200 RPM:
sysctl dev.asmc.0.fan.0.minspeed=3200
  • A quick and dirty shell script to control the fan based on the current temperature of the cpu: asmcfan
  • Make a cronjob running every minute on /etc/crontab (or root's crontab by making the proper change on the cron entry below):
# Setting fan speed based on current temperature
*	*	*	*	*	root	/opt/local/bin/asmcfan
  • Kernel driver for the Cirrus Logic CS4206: snd_hda(4)
  • List of pcm devices:
% cat /dev/sndstat 
FreeBSD Audio Driver (64bit 2009061500/amd64)
Installed devices:
pcm0: <Cirrus Logic CS4206 (Internal Analog 3.1/2.0)> on hdaa0  (1p:4v/1r:4v) default
pcm1: <Cirrus Logic CS4206 (Analog Headphones)> on hdaa0  (1p:1v/0r:0v)
pcm2: <Cirrus Logic CS4206 (Digital)> on hdaa0  (1p:1v/0r:0v)
No devices installed from userspace.
  • By default, sound is tiny (it does sound muffled). These laptops has 2 internal speakers (the right is tied to a tiny sub-woofer) so the default pin assignment should be corrected by inverting sequence of internal speakers pins that are in the same association to correctly power up the sub-woofer. From snd_hda(4) sequences are explained:
For multichannel input/output associations sequence
numbers encode channel pairs positions: 0 - Front, 1 -
Center/LFE, 2 - Back, 3 - Front Wide Center, 4 - Side.
Standard combinations are: (0) - Stereo; (0, 2), (0,
4) - Quadro; (0, 1, 2), (0, 1, 4) - 5.1; (0, 1, 2, 4)
- 7.1.
  • To correct this the pins need to be ajusted via sysctl(8). Put this on /etc/sysctl.conf:
hint.hdaa.0.nid10.config="seq=0"
hint.hdaa.0.nid11.config="seq=1"
  • The sound may be too low out of the box. Raise up the relative level with:
sysctl hw.snd.vpc_0db=1
  • The autosense of the headphone jack port while being correctly detected does not work when in the same association as the speakers and use the correct seq=15. Use a graphical mixer (ie. audio/gtk-mixer) or sysctl hw.snd.default_unit=1 to switch to the headphones as a workaround.
  • Equalizers in mixer applications are possible via the following device hints on /boot/loader.conf:
# Enable equalizer in mixer applications for internal speakers (pcm0)
hint.pcm.0.eq=1
 
# Enable equalizer in mixer applications for analog headphones (pcm1)
hint.pcm.1.eq=1
 
# Enable equalizer in mixer applications for digital line (pcm2)
hint.pcm.2.eq=1
  • Suspend and resume is working after setting the following in /etc/sysctl.conf.
  • To suspend when closing the lid:
hw.acpi.lid_switch_state=S3
  • To suspend when using the power button:
hw.acpi.power_button_state=S3
  1. The atp(4) driver is old making the trackpad fuzzy. Use the more recent kernel driver wsp(4).
  1. Put the following on /etc/sysctl.conf:
hw.usb.wsp.enable_single_tap_clicks: 0
hw.usb.wsp.scr_hor_threshold: 20
hw.usb.wsp.pressure_tap_threshold: 120
hw.usb.wsp.pressure_untouch_threshold: 10
hw.usb.wsp.pressure_touch_threshold: 50
hw.usb.wsp.z_factor: 5
hw.usb.wsp.scale_factor: 12
hw.usb.wsp.debug: 1
  1. To make the trackpad working in Xorg, add this to /etc/sysctl.conf:
kern.evdev.rcpt_mask=3

  • laptops/apple_macbookpro9_2.1623608014.txt.gz
  • Last modified: 2021/06/13 18:13
  • by MattAnton