mirror of
				https://github.com/NixOS/nixos-hardware.git
				synced 2025-11-04 17:27:14 +08:00 
			
		
		
		
	apple-macbookpro-14-1: update info, simplify and fix config
This commit is contained in:
		@@ -1,10 +1,10 @@
 | 
			
		||||
# MacBook Pro 14,1, NixOS 24.01 (2024)
 | 
			
		||||
# MacBook Pro 14,1, NixOS 24.05 (2024)
 | 
			
		||||
 | 
			
		||||
## Audio
 | 
			
		||||
 [ ] Still broken, use usb/hdmi instead, nixos pkg needed: https://github.com/davidjo/snd_hda_macbookpro
 | 
			
		||||
 [ ] broken, PR pending: https://github.com/NixOS/nixpkgs/pull/322968
 | 
			
		||||
 | 
			
		||||
## Bluetooth
 | 
			
		||||
 [ ] Still broken, even (hacky) workaround does not work any more with latest driver updates
 | 
			
		||||
 [ ] broken, PR pending: https://github.com/NixOS/nixpkgs/pull/322964
 | 
			
		||||
 | 
			
		||||
## Touchpad 
 | 
			
		||||
 [x] Working, including 'disable while typing' usable quirk
 | 
			
		||||
@@ -19,7 +19,7 @@
 | 
			
		||||
 [ ] Thunderbolt, WIFI, NVME may still need reboot (sometimes).
 | 
			
		||||
 | 
			
		||||
## Wifi
 | 
			
		||||
 [x] Working (2,4Ghz & 5Ghz supported), WEP3 currently broken b/c old brcm fw 
 | 
			
		||||
 [x] Working (2,4Ghz & 5Ghz supported), WEP3 broken -> brcm fw blob (2015) 
 | 
			
		||||
 | 
			
		||||
## Resources
 | 
			
		||||
- https://github.com/Dunedan/mbp-2016-linux?tab=readme-ov-file
 | 
			
		||||
 
 | 
			
		||||
@@ -1,38 +0,0 @@
 | 
			
		||||
#!/usr/bin/env bash
 | 
			
		||||
 | 
			
		||||
set -euo pipefail
 | 
			
		||||
 | 
			
		||||
##
 | 
			
		||||
# For some reason /dev/ttyS0 is created, and then removed by udev. We need this
 | 
			
		||||
# for bluetooth, and the only way to get it again is to reload 8502_dw. Do so.
 | 
			
		||||
##
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
##
 | 
			
		||||
# /sys/devices/pci0000:00/0000:00:1e.0/driver -> intel-lpss
 | 
			
		||||
# /sys/bus/pci/devices/0000:00:1e.0
 | 
			
		||||
# /sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:8a/BCM2E7C:00
 | 
			
		||||
##
 | 
			
		||||
 | 
			
		||||
# udevadm info --query=all --path=/sys/bus/serial/devices/serial0-0
 | 
			
		||||
# P: /devices/pci0000:00/0000:00:1e.0/dw-apb-uart.2/serial0/serial0-0
 | 
			
		||||
# M: serial0-0
 | 
			
		||||
# R: 0
 | 
			
		||||
# U: serial
 | 
			
		||||
# E: DEVPATH=/devices/pci0000:00/0000:00:1e.0/dw-apb-uart.2/serial0/serial0-0
 | 
			
		||||
# E: SUBSYSTEM=serial
 | 
			
		||||
# E: MODALIAS=acpi:BCM2E7C:APPLE-UART-BLTH:
 | 
			
		||||
# E: USEC_INITIALIZED=12406199
 | 
			
		||||
# E: PATH=/nix/store/56jhf2k9q31gwvhjxmm2akkkhi4a8nz1-udev-path/bin:/nix/store/56jhf2k9q31gwvhjxmm2akkkhi4a8nz1-udev-path/sbin
 | 
			
		||||
# E: ID_VENDOR_FROM_DATABASE=Broadcom
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
if [[ ! -e "/sys/devices/pci0000:00/0000:00:1e.0/dw-apb-uart.2/tty/ttyS0" ]]; then
 | 
			
		||||
    if [[ -e /sys/module/8250_dw ]]; then
 | 
			
		||||
        rmmod 8250_dw
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    modprobe 8250_dw
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
exec btattach --protocol=h4 --bredr=/dev/ttyS0 --speed=3000000
 | 
			
		||||
@@ -5,10 +5,10 @@
 | 
			
		||||
  ...
 | 
			
		||||
}: {
 | 
			
		||||
  imports = [
 | 
			
		||||
    ../.
 | 
			
		||||
    ../../../common/cpu/intel/kaby-lake
 | 
			
		||||
    ../../../common/gpu/intel
 | 
			
		||||
    ../../../common/hidpi.nix
 | 
			
		||||
    ../../../common/pc/laptop
 | 
			
		||||
    ../../../common/pc/laptop/ssd
 | 
			
		||||
    ../../../common/pc/laptop/acpi_call.nix
 | 
			
		||||
  ];
 | 
			
		||||
@@ -49,34 +49,10 @@
 | 
			
		||||
    cpu.intel.updateMicrocode = lib.mkDefault true;
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  # Bluetooth, only needed if kernel lacks support - custom kernel build
 | 
			
		||||
  # boot.kernelPatches = [
 | 
			
		||||
  #  {
 | 
			
		||||
  #    name = "bcrm-config";
 | 
			
		||||
  #    patch = null;
 | 
			
		||||
  #    extraConfig = ''
 | 
			
		||||
  #      BT_HCIUART_BCM y '';
 | 
			
		||||
  #  }
 | 
			
		||||
  # ];
 | 
			
		||||
  
 | 
			
		||||
  ##  [Workaround seems not to work anymore! Any Ideas?]
 | 
			
		||||
  # For some reason /dev/ttyS0 is created, and then removed by udev. We need this
 | 
			
		||||
  # for bluetooth, and the only way to get it again is to reload 8502_dw. Luckily,
 | 
			
		||||
  # nothing else uses it.
 | 
			
		||||
  ## 
 | 
			
		||||
  # systemd.services.btattach-bcm2e7c = lib.mkIf config.hardware.bluetooth.enable {
 | 
			
		||||
  #  before = [ "bluetooth.target" ];
 | 
			
		||||
  #  after = [ "sys-devices-platform-serial8250-tty-ttyS1.device" ];
 | 
			
		||||
  #  path = [ pkgs.bash pkgs.kmod pkgs.bluez ];
 | 
			
		||||
  #  serviceConfig.Type = "simple";
 | 
			
		||||
  #  serviceConfig.ExecStart = "${./btfix.sh}";
 | 
			
		||||
  #  wantedBy = [ "multi-user.target" ];
 | 
			
		||||
  # };
 | 
			
		||||
 | 
			
		||||
  ## [Enable only if needed!]
 | 
			
		||||
  # [Enable only if needed!]
 | 
			
		||||
  # Disable d3cold on older NVME controller, only if needed
 | 
			
		||||
  # https://github.com/Dunedan/mbp-2016-linux
 | 
			
		||||
  ##
 | 
			
		||||
  #
 | 
			
		||||
  #systemd.services.disable-nvme-d3cold = {
 | 
			
		||||
  #  description = "Disables d3cold on the NVME controller";
 | 
			
		||||
  #  before      = [ "suspend.target" ];
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user