[mac] 맥과 윈도우 듀얼부팅시 맥에서만 특정 M.2 슬롯 비활성화








1. 맥과 호환되지 않는 NVMe이슈

  • SK Hynix P31 1Tb는 맥과 호환이 안되서 사용을 못하고 있었습니다. 메인보드를 ASUS Tuf B450m Pro S로 바꾸게 되서 M.2 슬롯이 2개인 모델이라  삼성 P961에 맥을 설치하고 SK P31은 윈도우만 설치해서 사용하려고 했습니다.
  • 맥OS 영역이랑 관계 없으니 당연히 부팅하는데 문제가 없겠지했는데, M.2_1 슬롯에 P961을 끼우고 M.2_2 슬롯에 P31이 끼워져 있으니 부팅이 안됩니다.






2. 맥과 윈도우 듀얼부팅시 맥에서만 특정 M.2 슬롯 비활성화하기

  • Opencore 이용 시 SSDT 파일로 PCI 슬롯을 비활성화하여 외장 GPU를 사용하지 않도록 변경하는 방법이 있습니다.
  • 이와 동일한 방법으로 호환이 안되는 SSD나 NVMe 를 사용해야 할 경우 SSDT 파일을 맥 부팅시 로딩해 주면 맥에서는 비활성화, 윈도우에서는 활성화 상태로 사용가능합니다.
  • SSDT 파일 생성을 위한 도구 준비





3. M.2 비활성화 SSDT 파일 생성 방법

  • 비활성화 하고 싶은 M.2 슬롯에 맥과 호환되는 NVMe 장치를 장착하고 맥이나 윈도우로로 부팅합니다.
    • 이때, 맥과 호환이 안되는 NVMe는 M.2 슬롯에서 제거한 상태로 둡니다.
    • 작업이 끝난 후 이 슬롯에 호환이 안되고 있는 장치를 끼워서 사용할 겁니다.
  • 맥에서는 IORegistryExplorer 로 로딩된 NVMe 장치를 찾아 ACPI 경로를 확인합니다.
    • 아래의 경우 _SB.PCI0.GPP0.pci1c5c, 174a 입니다.
    • 장치의 ACPI 경로가 위와 같이 불명확하다면 윈도우에서 다시 확인합니다.


  • 윈도우에서는 장치관리자로 들어갑니다. 저장장치 컨트롤러 중 NVMe를 찾습니다.
    • 자세히 > BIOS 장치 ID를 확인합니다.


  • Macisal로 샘플 Spoof-SSDT.dsl 파일을 엽니다.
    • 아래 코드에서 External과 Method  두가지 경로를 자신의 ACPI 경로로 바꿔 줍니다.

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      27
      28
      29
      30
      31
      32
      DefinitionBlock ("""SSDT"2"DRTNIA""spoof"0x00000000)
      {
          External (_SB_.PCI0.PEG0.PEGP, DeviceObj)
          Method (_SB.PCI0.PEG0.PEGP._DSM4, NotSerialized)
          {
          If ((!Arg2 || !_OSI ("Darwin")))
          {
              Return (Buffer (One)
                  {
                      0x03
                  }
              )
          }
              Return (Package (0x0A)
                  {
                      "name",
                      Buffer (0x09)
                      {
                          "#display"
                      },
                      "IOName",
                      "#display",
                      "class-code",
                      Buffer (0x04)
                      {
                          0xFF0xFF0xFF0xFF
                      }
                  }
              )
          }
      }
       
      cs

    • 파일을 다른이름으로 저장하면서 확장자를 aml 로 지정합니다.










4. Opnecore SSDT파일 적용 방법

  • EFI > OC > ACPI 폴더에 파일을 옮겨놓고, config.plist 파일에 적용합니다.
  • 컴퓨터를 종료하고 비활성화할 슬롯에 호환되지 않는 장치를 끼웁니다. 
    • 3번에서 비활성화를 위해 경로를 확인한 슬롯입니다.
  • 해당 비활성화 대상 M.2 슬롯에 호환이 안되는 NVMe를 장착해 줍니다.
  • 이제, 맥으로 부팅했을 때는 해당 NVMe는 비활성화 상태라 부팅에 문제가 없고, 윈도우로 부팅한 경우는 해당 장치를 활용 가능합니다.








💡 팁 5.17일자 펌웨어 업데이트로 P31 NVMe도 맥과 호환 가능합니다  

↓↓↓






댓글 쓰기

0 댓글