Console support on 10.1 amd64 for 2014 MacBook Pro 15" Retina


Active Member

Thanks: 38
Messages: 103

I have a new MBP, and successfully installed FreeBSD 10-STABLE with boot to ZFS using the EFI partition to hold the boot loader.

At the boot loader console, I can choose "mode 2" and get a nice font that uses the full screen space. Beautiful!

However as soon as the loader runs, it switches into about a 1/4 screen size view that is almost unreadable due to small size. This happens even if I don't change the mode during boot loader BTW.

After booting, I can log in and switch to terminus font, but the screen real estate is still not full screen.

This is of course a haswell architecture, so there's no point trying to get X going, but I'd be very happy if there's a way to get the vt console to keep the screen size at max.

Any suggestions? config files follow, trimmed where appropriate. Photos to match the story coming soon.

# /boot/loader.conf console entries only
# let there be light
# boot time console
# this parameter has no effect
# dmesg
Copyright (c) 1992-2015 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
   The Regents of the University of California. All rights reserved.
FreeBSD is a registered trademark of The FreeBSD Foundation.
FreeBSD 10.1-STABLE #0 r282689: Sat May  9 22:15:41 UTC 2015 amd64
FreeBSD clang version 3.4.1 (tags/RELEASE_34/dot1-final 208032) 20140512
VT: running with driver "efifb".
module_register: module at91_mci/mmc already exists!
Module at91_mci/mmc failed to register: 17
module_register: module sdhci_bcm/mmc already exists!
Module sdhci_bcm/mmc failed to register: 17
module_register: module sdhci_fdt/mmc already exists!
Module sdhci_fdt/mmc failed to register: 17
module_register: module sdhci_imx/mmc already exists!
Module sdhci_imx/mmc failed to register: 17
module_register: module sdhci_pci/mmc already exists!
Module sdhci_pci/mmc failed to register: 17
module_register: module sdhci_ti/mmc already exists!
Module sdhci_ti/mmc failed to register: 17
module_register: module ti_mmchs/mmc already exists!
Module ti_mmchs/mmc failed to register: 17
module_register: module mmc/mmcsd already exists!
Module mmc/mmcsd failed to register: 17
CPU: Intel(R) Core(TM) i7-4770HQ CPU @ 2.20GHz (2194.96-MHz K8-class CPU)
  Origin="GenuineIntel"  Id=0x40661  Family=0x6  Model=0x46  Stepping=1
  AMD Features=0x2c100800<SYSCALL,NX,Page1GB,RDTSCP,LM>
  AMD Features2=0x21<LAHF,ABM>
  Structured Extended Features=0x27ab<FSGSBASE,TSCADJ,BMI1,AVX2,SMEP,BMI2,ERMS,INVPCID>
  XSAVE Features=0x1<XSAVEOPT>
  TSC: P-state invariant, performance statistics
real memory  = 19316867072 (18422 MB)
avail memory = 16456269824 (15693 MB)
Event timer "LAPIC" quality 600
ACPI APIC Table: <APPLE  Apple00>
FreeBSD/SMP: Multiprocessor System Detected: 8 CPUs
FreeBSD/SMP: 1 package(s) x 4 core(s) x 2 SMT threads
 cpu0 (BSP): APIC ID:  0
 cpu1 (AP): APIC ID:  1
 cpu2 (AP): APIC ID:  2
 cpu3 (AP): APIC ID:  3
 cpu4 (AP): APIC ID:  4
 cpu5 (AP): APIC ID:  5
 cpu6 (AP): APIC ID:  6
 cpu7 (AP): APIC ID:  7
ACPI BIOS Warning (bug): 32/64X length mismatch in FADT/Gpe0Block: 128/0 (20150410/tbfadt-644)
ioapic0 <Version 2.0> irqs 0-23 on motherboard
random: <Software, Yarrow> initialized
module_register_init: MOD_LOAD (vesa, 0xffffffff80d97a90, 0) error 19
kbd0 at kbdmux0
acpi0: <APPLE Apple00> on motherboard
acpi_ec0: <Embedded Controller: GPE 0x17, ECDT> port 0x62,0x66 on acpi0
acpi0: Power Button (fixed)
unknown: I/O range not supported
Timecounter "HPET" frequency 14318180 Hz quality 950
Event timer "HPET" frequency 14318180 Hz quality 550
cpu0: <ACPI CPU> port 0x100-0x107 on acpi0
cpu1: <ACPI CPU> port 0x100-0x107 on acpi0
cpu2: <ACPI CPU> port 0x100-0x107 on acpi0
cpu3: <ACPI CPU> port 0x100-0x107 on acpi0
cpu4: <ACPI CPU> port 0x100-0x107 on acpi0
cpu5: <ACPI CPU> port 0x100-0x107 on acpi0
cpu6: <ACPI CPU> port 0x100-0x107 on acpi0
cpu7: <ACPI CPU> port 0x100-0x107 on acpi0
atrtc0: <AT realtime clock> port 0x70-0x77 on acpi0
Event timer "RTC" frequency 32768 Hz quality 0
attimer0: <AT timer> port 0x40-0x43,0x50-0x53 on acpi0
Timecounter "i8254" frequency 1193182 Hz quality 0
Event timer "i8254" frequency 1193182 Hz quality 100
Timecounter "ACPI-fast" frequency 3579545 Hz quality 900
acpi_timer0: <24-bit timer at 3.579545MHz> port 0x408-0x40b on acpi0
pcib0: <ACPI Host-PCI bridge> port 0xcf8-0xcff on acpi0
pci0: <ACPI PCI bus> on pcib0
pcib1: <ACPI PCI-PCI bridge> at device 1.0 on pci0
pci5: <ACPI PCI bus> on pcib1
pcib2: <ACPI PCI-PCI bridge> at device 0.0 on pci5
pci6: <ACPI PCI bus> on pcib2
pcib3: <ACPI PCI-PCI bridge> at device 0.0 on pci6
pci7: <ACPI PCI bus> on pcib3
pcib4: <ACPI PCI-PCI bridge> at device 3.0 on pci6
pci8: <ACPI PCI bus> on pcib4
pcib5: <ACPI PCI-PCI bridge> at device 0.0 on pci8
pci9: <ACPI PCI bus> on pcib5
pcib6: <ACPI PCI-PCI bridge> at device 0.0 on pci9
pci10: <ACPI PCI bus> on pcib6
bge0: <Thunderbolt Ethernet, ASIC rev. 0x57766000> mem 0xacc00000-0xacc0ffff,0xacc10000-0xacc1ffff at device 0.0 on pci10
bge0: CHIP ID 0x57766000; ASIC REV 0x57766; CHIP REV 0x577660; PCI-E
miibus0: <MII bus> on bge0
brgphy0: <BCM57765 1000BASE-T media interface> PHY 1 on miibus0
brgphy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT, 1000baseT-master, 1000baseT-FDX, 1000baseT-FDX-master, auto, auto-flow
bge0: Using defaults for TSO: 65518/35/2048
bge0: Ethernet address: ac:87:a3:27:f5:44
pcib7: <ACPI PCI-PCI bridge> at device 4.0 on pci6
pci57: <ACPI PCI bus> on pcib7
pcib8: <ACPI PCI-PCI bridge> at device 5.0 on pci6
pci58: <ACPI PCI bus> on pcib8
pcib9: <ACPI PCI-PCI bridge> at device 6.0 on pci6
pci107: <ACPI PCI bus> on pcib9
vgapci0: <VGA-compatible display> port 0x1000-0x103f mem 0xa0000000-0xa03fffff,0x90000000-0x9fffffff at device 2.0 on pci0
vgapci0: Boot video device
hdac0: <Intel Haswell HDA Controller> mem 0xa0a10000-0xa0a13fff at device 3.0 on pci0
xhci0: <Intel Lynx Point USB 3.0 controller> mem 0xa0a00000-0xa0a0ffff at device 20.0 on pci0
xhci0: 32 bytes context size, 64-bit DMA
xhci0: Port routing mask set to 0xffffffff
usbus0 on xhci0
pci0: <simple comms> at device 22.0 (no driver attached)
hdac1: <Intel Lynx Point HDA Controller> mem 0xa0a14000-0xa0a17fff at device 27.0 on pci0
pcib10: <PCI-PCI bridge> at device 28.0 on pci0
pci1: <PCI bus> on pcib10
pcib11: <ACPI PCI-PCI bridge> at device 28.2 on pci0
pci2: <ACPI PCI bus> on pcib11
pci2: <network> at device 0.0 (no driver attached)
pcib12: <ACPI PCI-PCI bridge> at device 28.3 on pci0
pci3: <ACPI PCI bus> on pcib12
pci3: <multimedia> at device 0.0 (no driver attached)
pcib13: <ACPI PCI-PCI bridge> at device 28.4 on pci0
pci4: <ACPI PCI bus> on pcib13
ahci0: <AHCI SATA controller> mem 0xa0700000-0xa0701fff at device 0.0 on pci4
ahci0: AHCI v1.30 with 1 6Gbps ports, Port Multiplier not supported
ahcich0: <AHCI channel> at channel 0 on ahci0
isab0: <PCI-ISA bridge> at device 31.0 on pci0
isa0: <ISA bus> on isab0
battery0: <ACPI Control Method Battery> on acpi0
acpi_acad0: <AC Adapter> on acpi0
acpi_lid0: <Control Method Lid Switch> on acpi0
acpi_button0: <Power Button> on acpi0
acpi_button1: <Sleep Button> on acpi0
ppc0: cannot reserve I/O port range
uart0: <8250 or 16450 or compatible> at port 0x3f8-0x3ff irq 4 flags 0x10 on isa0
coretemp0: <CPU On-Die Thermal Sensors> on cpu0
est0: <Enhanced SpeedStep Frequency Control> on cpu0
coretemp1: <CPU On-Die Thermal Sensors> on cpu1
est1: <Enhanced SpeedStep Frequency Control> on cpu1
coretemp2: <CPU On-Die Thermal Sensors> on cpu2
est2: <Enhanced SpeedStep Frequency Control> on cpu2
coretemp3: <CPU On-Die Thermal Sensors> on cpu3
est3: <Enhanced SpeedStep Frequency Control> on cpu3
coretemp4: <CPU On-Die Thermal Sensors> on cpu4
est4: <Enhanced SpeedStep Frequency Control> on cpu4
coretemp5: <CPU On-Die Thermal Sensors> on cpu5
est5: <Enhanced SpeedStep Frequency Control> on cpu5
coretemp6: <CPU On-Die Thermal Sensors> on cpu6
est6: <Enhanced SpeedStep Frequency Control> on cpu6
coretemp7: <CPU On-Die Thermal Sensors> on cpu7
est7: <Enhanced SpeedStep Frequency Control> on cpu7
random: unblocking device.
usbus0: 5.0Gbps Super Speed USB v3.0
fuse-freebsd: version 0.4.4, FUSE ABI 7.8
ZFS filesystem version: 5
ZFS storage pool version: features support (5000)
Timecounters tick every 1.000 msec
hdacc0: <Intel Haswell HDA CODEC> at cad 0 on hdac0
hdaa0: <Intel Haswell Audio Function Group> at nid 1 on hdacc0
pcm0: <Intel Haswell (HDMI/DP 8ch)> at nid 3 on hdaa0
hdacc1: <Cirrus Logic (0x4208) HDA CODEC> at cad 0 on hdac1
hdaa1: <Cirrus Logic (0x4208) Audio Function Group> at nid 1 on hdacc1
pcm1: <Cirrus Logic (0x4208) (Analog 4.0/2.0)> at nid 18,19 and 24 on hdaa1
pcm2: <Cirrus Logic (0x4208) (Analog Headphones)> at nid 16 on hdaa1
pcm3: <Cirrus Logic (0x4208) (Digital)> at nid 33 on hdaa1
ada0 at ahcich0 bus 0 scbus0 target 0 lun 0
ugen0.1: <0x8086> at usbus0
uhub0: <0x8086 XHCI root HUB, class 9/0, rev 3.00/1.00, addr 1> on usbus0

Timecounter "TSC-low" frequency 1097480733 Hz quality 1000
Root mount waiting for: usbus0
uhub0: 21 ports with 21 removable, self powered
Root mount waiting for: usbus0
ugen0.2: <Apple Inc.> at usbus0
uhub1: <Apple Inc. BRCM20702 Hub, class 9/0, rev 2.00/1.00, addr 1> on usbus0
Root mount waiting for: usbus0
uhub1: 3 ports with 0 removable, self powered
ugen0.3: <vendor 0x05ac> at usbus0
ukbd0: <vendor 0x05ac product 0x820a, class 0/0, rev 2.00/1.00, addr 2> on usbus0
kbd1 at ukbd0
umass0:1:0:-1: Attached to scbus1ugen0.8: <Apple> at usbus0
umass1: <Apple Card Reader, class 0/0, rev 3.00/8.20, addr 7> on usbus0
umass1:  SCSI over Bulk-Only; quirks = 0x4000
umass1:2:1:-1: Attached to scbus2
Trying to mount root from zfs:tank/ROOT/default []...
(probe0:umass-sim1:1:0:0): REPORT LUNS. CDB: a0 00 00 00 00 00 00 00 00 10 00 00
(probe0:umass-sim1:1:0:0): CAM status: SCSI Status Error
(probe0:umass-sim1:1:0:0): SCSI status: Check Condition
(probe0:umass-sim1:1:0:0): SCSI sense: NOT READY asc:3a,0 (Medium not present)
(probe0:umass-sim1:1:0:0): Error 6, Unretryable error
da1 at umass-sim1 bus 1 scbus2 target 0 lun 0
da1: <APPLE SD Card Reader 3.00> Removable Direct Access SPC-4 SCSI device
da1: Serial Number 000000000820
da1: 400.000MB/s transfers
da1: Attempt to query device size failed: NOT READY, Medium not present
da1: quirks=0x2<NO_6_BYTE>
ums0: <vendor 0x05ac product 0x820b, class 0/0, rev 2.00/1.00, addr 3> on usbus0
ums0: 3 buttons and [XY] coordinates ID=2
ums1: <Touchpad> on usbus0
ums1: 3 buttons and [XY] coordinates ID=2
ubt0: <Apple Inc. Bluetooth USB Host Controller, rev 2.00/1.03, addr 4> on usbus0
wsp0: <Touchpad> on usbus0
WARNING: attempt to domain_add(bluetooth) after domainfinalize()
WARNING: attempt to domain_add(netgraph) after domainfinalize()
ugen0.3: <vendor 0x05ac> at usbus0 (disconnected)
ukbd0: at uhub1, port 1, addr 2 (disconnected)
ugen0.4: <vendor 0x05ac> at usbus0 (disconnected)
ums0: at uhub1, port 2, addr 3 (disconnected)
# /etc/rc.conf
ifconfig_bge0_ipv6="inet6 accept_rtadv"
# Set dumpdev to "AUTO" to enable crash dumps, "NO" to disable

# powerd: hiadaptive speed while on AC power, adaptive while on battery power
powerd_flags="-a hiadaptive -b adaptive"

# Enable BlueTooth

# Synchronize system time
# Let ntpd make time jumps larger than 1000sec



Active Member

Thanks: 38
Messages: 103

screen shots:

by default the EFI boot stage occupies the centre of the screen only:

however we can select `mode 2` and use the full screen with a very nice default font:

after the boot loader runs, we only use the top left corner of the screen and a very small font. The screen is also not fully cleared.

once in FreeBSD we can switch to a nicer console font like terminus, which is very readable, but still we are stuck in a quadrant.


Active Member

Thanks: 38
Messages: 103

trev good link but none of these address the mismatched console size.

Output of vidcontrol -i mode < /dev/console is garbage, full output

[*] mode#  flags  type size  font window linear buffer
[*] 0 (0x000) 0x00000000 T 0x0  0x0  0x00000 -6k 6284k 0x7fffffffe780 -6k
[*] 1 (0x001) 0x00000000 T 0x0  0x0  0x00000 -6k 6284k 0x7fffffffe780 -6k
And as one might expect none of these modes are selectable. kldload i915kms succeeds but nothing else changes because Haswell I'm guessing.

Trying to boot with sc fails;

# /boot/loader.conf
doesn't get past loading kernel, screen never changes and there's no response from network ping after 1 minute or so in case its just a driver issue.


Active Member

Thanks: 22
Messages: 104

I have been away from the MacBookPro11,4 for a few months.That aside …

Based on my most recent experience with an installation of PC-BSD 11.0-CURRENTAPR2016 (from PCBSD11.0-CURRENTAPRIL2016-03-31-2016-x64-DVD.iso (not from a USB flash drive)) on a Broadwell notebook (HP EliteBook 850 G2), with SCFB, I'd say that things have advanced reasonably well.

Will brightness be controllable? Maybe not at this stage.

That's all quite off-topic from the original subject (10.1 on a 2014 MacBook Pro 15" Retina) … apologies to the opening poster!


Active Member

Thanks: 38
Messages: 103

Any update on this? I am in essentially the same situation.
I'm happily running 11.0-CURRENT from 29 April 2016 with scfb driver for X, and i3 now, full screen. The original reduced size console issue is still present but now that I have X up & running it's really not a major problem. I can share config details if needed, but basically it's:

- full disk install of CURRENT with zfs all the way
- minimal xorg.conf from here
- slim & i3
- brightness & similar things can't be controlled but this is more than good enough for the moment

BTW I suspect this setup will work just fine with 10.3R as well, just I've not had the time to break things just yet by reverting.