x86 주요 단축키
  • 1 X86 톺아보기
  • 2 커스텀맥 최신글
  • 3 커뮤니티 최신글
  • 4 X86클럽 최신글
  • 5 히든 정보(19+)
  • H 단축키 도움말

3일간 참으로 억겹의 시간을 보내면서, 허리가 많이 아팠습니다만..
큰 힌트를 주신 여섯길타래 뉴해킨님께 큰 감사의 이야기 전해 드리고 싶습니다.

결국 충돌없이 잘 인식 시키면서 Z420을 아끼게 되는데요. 사실 오늘 새벽까지만해도 팔아버리고 싶었던게 함정입니다만 각설하고 본문으로 직행하겠습니다.

 

준비물 

1. FL1100칩셋의 USB 3.0 (국내에선 BZ1-Ultra USB 3.0 PCIe로 판매중입니다)
2. /System/Library/Extensions/IOUSBHostFamily.kext
3. EFI/Clover/patched/SSDT-1.aml
4. USBInjectAll.kext (최신 버전 필요)
5. IORegistryExplorer (없어도 되긴 하지만 있으면 더더욱 좋아요)
6. 웅녀를 능가할 인내심
 

 

** Z420의 슬롯 번호에 대해

CPU에서 가까운 슬롯이 1번이며 대부분 BCM94360CD를 여기에 장착 하시죠
그 다음 2번 슬롯은 GPU를 장착하시게 되는데... 대부분 이런 케이스가 발생하면 추가 PCIe는 바로 5번에 설치를 하도록 합니다. 행여나 슬롯이 부족하신 분께서는 GPU 쿨러를 1 slot으로 변경하시면 좀 나아지시리라 여깁니다.

자 그럼, AppleUSBXHCIFL1100을 인식 시키는 HP Z420의 SSDT-1.aml을 수정하도록 하겠습니다.

 

SSDT-1.aml에서 (\_SB.PCI0.NEP3.SLT5 에 USB 3.0 PCIe 카드가 장착되었으나,
IORE에서는. 운영체제에서 불러오는 변수인 XHC1과는 거리가 먼 SLT5로 표시됩니다. 이것을 XHC1으로 Fake 시켜 버리겠습니다.

 

가. SSDT-1.aml

/*
 * Intel ACPI Component Architecture
 * AML Disassembler version 20100331
 *
 * Disassembly of iASL2X5ZTg.aml, Sun Oct 16 16:57:15 2016
 *
 *
 * Original Table Header:
 *     Signature        "SSDT"
 *     Length           0x00000615 (1557)
 *     Revision         0x01
 *     Checksum         0x0A
 *     OEM ID           "APPLE "
 *     OEM Table ID     "Devicein"
 *     OEM Revision     0x00015601 (87553)
 *     Compiler ID      "INTL"
 *     Compiler Version 0x20100331 (537920305)
 */
DefinitionBlock ("iASL2X5ZTg.aml", "SSDT", 1, "APPLE ", "Devicein", 0x00015601)
{
    External (\_SB_.PCI0, DeviceObj)
    External (\_SB_.PCI0.NPE2, DeviceObj)
    External (\_SB_.PCI0.NPE3, DeviceObj). /* 시스템 버스 NPE3를 DSDT.aml에서 참조 합니다 */
    External (\_SB_.PCI0.NPE2.SLT2, DeviceObj)
    External (\_SB_.PCI0.NPE3.SLT5, DeviceObj) /* 시스템 버스 SLT5를 DSDT.aml에서 참조 합니다 */

    Method (XOSI, 1, NotSerialized)
    {
        Name (WINV, Package (0x06)
        {
            "Windows", 
            "Windows 2001", 
            "Windows 2001 SP2", 
            "Windows 2006", 
            "Windows 2006 SP1", 
            "Windows 2009"
        })
        Return (LNotEqual (Match (WINV, MEQ, Arg0, MTR, Zero, Zero), 
            Ones))
    }

    Scope (\_SB.PCI0)
    {
        Device (HDEF)
        {
            Name (_ADR, 0x001B0000)
            Name (_PRW, Package (0x02)
            {
                0x08, 
                0x04
            })
            Method (_DSM, 4, NotSerialized)
            {
                If (LEqual (Arg2, Zero))
                {
                    Return (Buffer (One)
                    {
                        0x03
                    })
                }

                Return (Package (0x02)
                {
                    "hda-gfx", 
                    Buffer (0x0A)
                    {
                        "onboard-1"
                    }
                })
            }
        }
    }

    Scope (\_SB.PCI0.NPE3.SLT5)
    {
        Name (_STA, Zero)/* NPE3.SLT5의 DSDT내용을 삭제 시킵니다 */
    }

    Scope (\_SB.PCI0.NPE3) 
    {
        Device (XHC1) /* NPE3.XHC1 장치를 새롭게 만들어 _DSM구문을 로딩 합니다 */
        {
            Name (_ADR, Zero)
            Name (_SUN, 0x05)
            Method (_DSM, 4, NotSerialized)
            {
                If (LEqual (Arg2, Zero))
                {
                    Return (Buffer (One)
                    {
                        0x03
                    })
                }

                Return (Package (0x18)
                {
                    "device-id", 
                    Buffer (0x04)
                    {
                        0x00, 0x11, 0x00, 0x00
                    }, 

                    "IOName", 
                    Buffer (0x0D)
                    {
                        "pci1b73,1100"
                    }, 

                    "name", 
                    Buffer (0x0D)
                    {
                        "pci1b73,1100"
                    }, 

                    "compatible", 
                    Buffer (0x0D)
                    {
                        "pci1b73,1100"
                    }, 

                    "built-in", 
                    Buffer (One)
                    {
                        0x00
                    }, 

                    "device_type", 
                    Buffer (0x10)
                    {
                        "XHCI Controller"
                    }, 

                    "AAPL,clock-id", 
                    Buffer (One)
                    {
                        0x00
                    }, 

                    "AAPL,current-available", 
                    0x0834, 
                    "AAPL,current-extra", 
                    0x0898, 
                    "AAPL,current-extra-in-sleep", 
                    0x0640, 
                    "AAPL,max-port-current-in-sleep", 
                    0x0834, 
                    "AAPL,device-internal", 
                    Zero
                })
            }
        }
    }

    Scope (\_SB.PCI0.NPE2.SLT2)
    {
        Name (_STA, Zero)
    }

    Scope (\_SB.PCI0.NPE2)
    {
        Device (GFX1)
        {
            Name (_ADR, Zero)
            Name (_SUN, 0x02)
            Method (_DSM, 4, NotSerialized)
            {
                If (LEqual (Arg2, Zero))
                {
                    Return (Buffer (One)
                    {
                        0x03
                    })
                }

                Return (Package (0x0A)
                {
                    "@0,connector-type", 
                    Buffer (0x04)
                    {
                        0x00, 0x08, 0x00, 0x00
                    }, 

                    "@1,connector-type", 
                    Buffer (0x04)
                    {
                        0x00, 0x08, 0x00, 0x00
                    }, 

                    "@2,connector-type", 
                    Buffer (0x04)
                    {
                        0x00, 0x08, 0x00, 0x00
                    }, 

                    "@3,connector-type", 
                    Buffer (0x04)
                    {
                        0x00, 0x08, 0x00, 0x00
                    }, 

                    "hda-gfx", 
                    Buffer (0x0A)
                    {
                        "onboard-1"
                    }
                })
            }
        }

        Device (HDAU)
        {
            Name (_ADR, One)
            Method (_DSM, 4, NotSerialized)
            {
                If (LEqual (Arg2, Zero))
                {
                    Return (Buffer (One)
                    {
                        0x03
                    })
                }

                Return (Package (0x02)
                {
                    "hda-gfx", 
                    Buffer (0x0A)
                    {
                        "onboard-1"
                    }
                })
            }
        }
    }

    Device (UIAC)
    {
        Name (_HID, "UIA00000")
        Name (RMCF, Package (0x04)
        {
            "EH01", 
            Package (0x04)
            {
                "port-count", 
                Buffer (0x04)
                {
                    0x08, 0x00, 0x00, 0x00
                }, 

                "ports", 
                Package (0x10)
                {
                    "PR11", 
                    Package (0x04)
                    {
                        "UsbConnector", 
                        0xFF, 
                        "port", 
                        Buffer (0x04)
                        {
                            0x01, 0x00, 0x00, 0x00
                        }
                    }, 

                    "PR12", 
                    Package (0x04)
                    {
                        "UsbConnector", 
                        Zero, 
                        "port", 
                        Buffer (0x04)
                        {
                            0x02, 0x00, 0x00, 0x00
                        }
                    }, 

                    "PR13", 
                    Package (0x04)
                    {
                        "UsbConnector", 
                        Zero, 
                        "port", 
                        Buffer (0x04)
                        {
                            0x03, 0x00, 0x00, 0x00
                        }
                    }, 

                    "PR14", 
                    Package (0x04)
                    {
                        "UsbConnector", 
                        Zero, 
                        "port", 
                        Buffer (0x04)
                        {
                            0x04, 0x00, 0x00, 0x00
                        }
                    }, 

                    "PR15", 
                    Package (0x04)
                    {
                        "UsbConnector", 
                        Zero, 
                        "port", 
                        Buffer (0x04)
                        {
                            0x05, 0x00, 0x00, 0x00
                        }
                    }, 

                    "PR16", 
                    Package (0x04)
                    {
                        "UsbConnector", 
                        Zero, 
                        "port", 
                        Buffer (0x04)
                        {
                            0x06, 0x00, 0x00, 0x00
                        }
                    }, 

                    "PR17", 
                    Package (0x04)
                    {
                        "UsbConnector", 
                        Zero, 
                        "port", 
                        Buffer (0x04)
                        {
                            0x07, 0x00, 0x00, 0x00
                        }
                    }, 

                    "PR18", 
                    Package (0x04)
                    {
                        "UsbConnector", 
                        Zero, 
                        "port", 
                        Buffer (0x04)
                        {
                            0x08, 0x00, 0x00, 0x00
                        }
                    }
                }
            }, 

            "EH02", 
            Package (0x04)
            {
                "port-count", 
                Buffer (0x04)
                {
                    0x06, 0x00, 0x00, 0x00
                }, 

                "ports", 
                Package (0x0C)
                {
                    "PR21", 
                    Package (0x04)
                    {
                        "UsbConnector", 
                        0xFF, 
                        "port", 
                        Buffer (0x04)
                        {
                            0x01, 0x00, 0x00, 0x00
                        }
                    }, 

                    "PR22", 
                    Package (0x04)
                    {
                        "UsbConnector", 
                        Zero, 
                        "port", 
                        Buffer (0x04)
                        {
                            0x02, 0x00, 0x00, 0x00
                        }
                    }, 

                    "PR23", 
                    Package (0x04)
                    {
                        "UsbConnector", 
                        Zero, 
                        "port", 
                        Buffer (0x04)
                        {
                            0x03, 0x00, 0x00, 0x00
                        }
                    }, 

                    "PR24", 
                    Package (0x04)
                    {
                        "UsbConnector", 
                        Zero, 
                        "port", 
                        Buffer (0x04)
                        {
                            0x04, 0x00, 0x00, 0x00
                        }
                    }, 

                    "PR25", 
                    Package (0x04)
                    {
                        "UsbConnector", 
                        Zero, 
                        "port", 
                        Buffer (0x04)
                        {
                            0x05, 0x00, 0x00, 0x00
                        }
                    }, 

                    "PR26", 
                    Package (0x04)
                    {
                        "UsbConnector", 
                        Zero, 
                        "port", 
                        Buffer (0x04)
                        {
                            0x06, 0x00, 0x00, 0x00
                        }
                    }
                }
            }
        })
    }
}

위 내용처럼 SSDT-1.aml을 작성하셨다면, /EFI/Clover/patched에 저장하시면 됩니다.

 

나. AppleUSBXHCIPCI.kext 수정

/System/Library/Extensions/IOUSBFamily.kext를 바탕화면에 복사한 다음,
패키지 내용 보기를 눌러서 다음의 경로로 이동합니다.

Contents/Plugins/AppleUSBXHCIPCI.kext/Info.plist

PlistEditor를 이용해 아래의 스샷처럼 수정을 하면 됩니다.

ScreenCapture 3.jpg

위 스샷은 타 모델은 모두 삭제하고 MacPro6,1-XHC1만 남겨 놓았습니다. 혹시라도 불안하신 분께서는
MacPro6,1-XHC1만 수정하세요... 

수정이 완료되면. KCPM Utility Pro를 이용해 S/L/E에 복사 하시고, 권한 복구를 해주세요. : )

* HS01~HS04번 포트는 삭제 합니다. 그래야 BCM94360CD와 포트 충돌이 일어나지 않습니다.
* 포트 충돌이 일어나는 증상으로는 USB3.0도 데이터 읽기 쓰기가 안되고 와이파이 모듈이 다운됩니다.

 

다. USBInjectAll.kext 수정

ScreenCapture 4.jpg

USBInjectAll.kext/Contents/Info.plist를 PlistEditor로 열은다음 위 스샷처럼 수정해 주세요.
- 위 스샷도 HP Z420 기준으로 정리를 했습니다. 타기종 유저분께는 참으로 죄송합니다만... 이와 비슷하게 작업 하시면 됩니다.

IOKitPersonalities/ConfigurationData/ConfigurationXHC1을 추가하고 

-----------------------------------------------------------------------------
- XHC1 : Dictionary
        ㄴ Port Count : Data :
06000000 (스샷은 오타입니다)
        ㄴ Port : Dictionary 
                ㄴ SSP1 : Dictionary
                        ㄴ UsbConnector : Number : 0
                        ㄴ port : Data : 05000000
                ㄴ SSP2 : Dictionary
                        ㄴ UsbConnector : Number : 0
                        ㄴ port : Data : 06000000       
                ㄴ SSP3 : Dictionary
                        ㄴ UsbConnector : Number : 0
                        ㄴ port : Data : 01000000
                ㄴ SSP4 : Dictionary
                        ㄴ UsbConnector : Number : 0
                        ㄴ port : Data : 02000000

-----------------------------------------------------------------------------

ScreenCapture 5.jpg

그리고  하단의 MacPro6,1-XHCMacPro6,1-XHC1으로 변경합니다. (XHC to XHC1)

* IOnameMatch : 1b73_1100
* IOPCIPrimaryMatch : 0x11001b73
* kConfigurationName : XHC1


으로 수정한 다음 저장하고, USBInjectAll.kext 파일을 /EFI/Clover/kexts/10.12에 복사해 줍니다.

 

ScreenCapture 0.jpg

IORegistryExplorer를 이용해 확인하면, NEP3.XHC1으로 장치가 등록된 것을 확인할 수 있습니다. 아쉽게도 SSP3/SSP4의 포트는 활성화 되지 않지만, 차차 방법이 생길거라고 예상합니다. 이렇게 된 케이스라면 BZ1-Ultra의 내장 19핀 USB 3.0은 동작하지 않고  PCIe 카드 슬롯의 USB3.0 포트만 동작하는거라 여기시면 됩니다.


혹시라도 전면 USB 3.0활성화가 꼭 되야 한다면 5.25인치 베이 타입 USB 3.0확장을 노리시면 급한 불은 꺼지겠고요. 후면에서 USB 3.0 케이블을 연장해서 오면 되지 않을까 싶습니다.

 

ScreenCapture 1.jpg

시스템 정보에서 USB3.0버스에 장착된 동기 속도가 최대  5Gbps인지 확인 합니다.

 

ScreenCapture 2.jpg

속도 테스트를 통해 확인하는 이상적인 결과는 UASP를 지원하는 외장하드 케이스에 SSD타입입니다. : )
물론 USB3.0 메모리 스틱도 나쁘지 않은 결과를 줄 것으로 예상합니다.

 

작성하고나면 무쟈게 쉬워 보이는것이지만... FL1100은 OOB 즉 Kext없이 잘 돌아간다는 말만 있을 뿐..
이를 다양한 환경에서 적용하는 방법이 없더라고요.. 그래서 7가지 정도의 조합을 통해서 테스트 하다가 결국 낚여 올라왔습니다!!!

 

3일 동안 대장정을 통해서 마지막 안정화까지 끝냈으니 이제는 생업에 종사할 그 때인 것 같습니다!!!
HP Z420을 사용하시는 모든 분께서 보다 쉽게 안정화를 마치셨으면 합니다~!


#FL1100, #USB3, #HP, #Z420, #Z620, #ZISQO, #BCM

See the Unseen

★ 글쓴이에게 고마우시면 커피한잔 후원(클릭) ★ 후원 정보를 입력하지 않았습니다.

"[HP Z420] FL1100 USB 3.0 인식 시키기 (와이파이 모듈 충돌 회피)"글의 댓글은 현재 4개 있습니다.
비회원은 47분 42초 후에 댓글을 열람할수 있습니다.
로그인 하시면 바로 확인 하실수 있습니다.



No 섬네일 제목 조회 닉네임 등록일
157 디스플레이| 새벽에 한줄로 게시판에 올렸던 rx480 바이오스 수정 후기에 대한 추가... 11 947 comed78 02.08
156 기타| 접지때문에 고생하세요? 8 572 니포 02.06
155 입력장치| 콘덴서 마이크 왔습니다.. 24 432 니포 02.05
154 기타| iODD의 VHD 기능을 이용한 커맥설치 12 347 2motive 02.02
153 무선유선| 재미있는거 하나 들고 왔습니다. 6 1054 LeeDeaRi 01.16
152 무선유선| Asus Go! AW-CB160H Bcm94360HMB 사용기 3 445 니포 01.11
151 기타| 주요 장비 11 746 개발인생40년 01.05
150 기타| 구글 크롬캐스트2 2 402 Mactopia 01.04
149 디스플레이| X-rite i1Display colorimeter 5 432 ZISQO 12.26
148 기타| usb 3.0 realtek 8153 chipset 랜카드 2 233 제러스 12.26
147 디스플레이| 크로스오버 32인치 4K 모니터 21 796 ZISQO 12.19
146 무선유선| FL1100 PCIe USB 3.0 인식 6 1036 ZISQO 12.08
145 입력장치| 트랙패드 영입! 7 452 동동이 12.04
144 무선유선| BCM94360CD 모듈을 교체했는데 한국어와 관련이 있는가? 5 225 아이뱅크 11.21
143 무선유선| 드디어 10GBE에 입성하였습니다 4 429 바나나킥 11.15
142 사운드| 요고하나 지르려는데 어떨까요?^^ 진공관 USB DAC 10 588 xpandi 11.10
141 디스플레이| 베플| ZEPA UHD TV, 시에라에서 4K@60hz 동작이 안되는 이유... 3 516 감자깡7 11.04
140 무선유선| SM951 NVMe 안정화 (부팅 가능 미디어 전환 방법) 15 1333 ZISQO 11.04
139 기타| 이왕 이렇게 된거.. NVMe까지 달아 버렸습니다;; 13 607 ZISQO 11.01
138 무선유선| 10.12.1로 업데이트 후 BCM94352가 인식이 안되는 오류 패치 1 820 dlgmlrjs 10.27
137 사운드| 이베이에서 soundblasterx g5를 구매해봤습니다. 4 248 행운돌 10.27
136 그래픽| 베플| 쿼드로 4000을 10.12.1에 웹드라이버로 붙여 봤습니다만.. 8 396 ZISQO 10.27
135 무선유선| aspire v3 571g + bcm94352 업그레이드버전 350 하수 10.21
» 무선유선| [HP Z420] FL1100 USB 3.0 인식 시키기 (와이파이 모듈 충돌 회피) 4 890 ZISQO 10.16
133 기타| 오늘의 지름 신고 1 376 D'Artagnan 10.15
132 기타| 핀마이크와 USB 3.0이 도착했습니다 ㅎㅎ 14 397 ZISQO 10.14
131 무선유선| SSD가 링크 속도 3기가로 뜰 경우 해결 방법 7 548 ZISQO 10.13
130 그래픽| rx480 구매 후기 8 351 KsJ 09.28
129 기타| 노트북 수령했습니다 6 354 LeeDeaRi 09.23
128 무선유선| 잠자기 후 블루투스 장비 페어링이 안될 때 439 작은거인 09.04
127 그래픽| RX 460으로 시에라 설치 후기... 4 524 Dyner 08.30
126 무선유선| BU-4096 블투동글 구입시 참고할 점 10 905 faananan 08.28
125 무선유선| sapphire rx480 nitro+ oc 8g 3dmark 점수 25 542 comed78 08.19
124 그래픽| GTX 1070 장착.... 커스텀맥에선 인식실패. 웹드라이버 지원은 아직 안되는군요 ㅠㅠ 4 552 투야 08.04
123 입력장치| 로지텍 K780 구매했습니다ㅎ 4 364 투야 07.22
122 기타| 산와 dp케이블이 왔습니다 10 198 XEXEX 07.16
121 무선유선| 시에라(Mac OS 10.12)에서 BCM93452 등 WIFI 인식이 안될 때 3 1306 작은거인 07.14
120 사운드| G5 HiFi Plus + HD 600 사용기 6 659 Soluzers 07.04
119 무선유선| 저번에 타오바오에서 ... 3 201 하늘의구름 07.03
118 그래픽| 라데온 480 실망입니다... 11 328 XEXEX 07.02
서버에 요청 중입니다. 잠시만 기다려 주십시오...