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을 사용하시는 모든 분께서 보다 쉽게 안정화를 마치셨으면 합니다~!

 

 

 

 

조회수 증가를 위해 #해시태그를 넣어보세요. 글 수정을 눌러 본문 아무곳에나 글 내용 키워드#기호와 함께 붙여서 적으면 됩니다.

ex) #N당 #해상도 #성공후기

클럽 : 당주

See the Unseen

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

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



No 제목 조회 닉네임 추천
882 팁/안정화| HOT HP Z620 이더넷 82574L칩셋 정상인식시키기 16 556 BBongs 3 - 0
881 팁/안정화| HOT SM951 NVMe 안정화 (부팅 가능 미디어 전환 방법) 14 1015 zisqo 5 - 0
880 macOS팁| 2016년 맥북프로 nvram 재설정 방법 294 Mactopia 0 - 0
879 팁/안정화| 부트 arg for applesklgraphic.kext 1 85 Mactopia 0 - 0
878 팁/안정화| B85m-d3h 보드 -오류 __UEFI방식으로 USB설치시__바이오스 최신 필수 412 빗소리들으며 0 - 0
877 macOS팁| HOT 시에라 HD530 글리치 이슈 해결팁이 나왔습니다. 12 1607 soullees 4 - 0
876 팁/안정화| HOT 기가바이트 B85M-D3H Rev 3.0 한 방 설치를 간편하게 모아 봤습니다. 6 1158 zisqo 3 - 0
875 팁/안정화| Laptop HD530 부팅화면 애플로고 깨짐 DSDT fix 1 716 comed78 1 - 0
874 팁/안정화| HOT 퓨리온님의 사운드잡아볼까요? 보충입니다. 2 1809 아이뱅크 3 - 0
873 팁/안정화| HOT HP Z420 MOD BIOS v3.91 4 703 zisqo 3 - 0
872 팁/안정화| 시에라(Sierra)의 사파리가 시스템 다운 시키는 문제 패치 1 525 terminator 2 - 0
871 팁/안정화| HOT 10.12.1로 업데이트 후 BCM94352가 인식이 안되는 오류 패치 1 733 dlgmlrjs 4 - 0
870 팁/안정화| HOT Device Properties를 이용한 HP Z420 EFI String 변경(GPU 인젝션 가능) 4 771 zisqo 3 - 0
869 macOS팁| 시리 사용법 도움말 페이지 253 Mactopia 0 - 0
868 팁/안정화| HOT Nvidia Webdriver의 OS 버전 패치를 직접 하는 방법 1 749 zisqo 3 - 0
867 팁/안정화| 앨캐피탄 업데이트 설치후 사운드가 먹통일때! 조치! 5 362 홍대퀸카 0 - 0
866 팁/안정화| 10.12.1(16B2555) 업데이트 이후 Nvidia 웹 드라이버 설치 오류 9 1152 zisqo 2 - 0
865 macOS팁| 베타 인증서 받는 곳 200 SenkovLee 2 - 0
864 팁/안정화| usb 없이 해킨 설치하기! 3 1002 대낮의호롱불 0 - 0
863 macOS팁| MAC을 처음 사용하시나요? 400 Mactopia 0 - 0
862 macOS팁| 시리 호출 단축키 변경방법 1 223 Mactopia 0 - 0
861 팁/안정화| aspire v3 571g + bcm94352 업그레이드버전 310 하수 2 - 0
860 팁/안정화| Cosmetic) SSDT EFI String Injection 6 843 zisqo 1 - 0
» 팁/안정화| [HP Z420] FL1100 USB 3.0 인식 시키기 (와이파이 모듈 충돌 회피) 4 745 zisqo 2 - 0
858 팁/안정화| 아이메시지 문자전달 코드 안될 때 해결 방법 8 909 각시수련 2 - 0
857 팁/안정화| 간편하게 Trim을 활성화 하는 방법 (클로버 부트로더) 7 1105 zisqo 2 - 0
856 팁/안정화| HOT 시에라 USB3.0 관련 SSDT INJECTION+클로버 패치 1507 Mactopia 3 - 0
855 팁/안정화| SSD가 링크 속도 3기가로 뜰 경우 해결 방법 7 449 zisqo 1 - 0
854 팁/안정화| HOT config.plist를 clover configurator어플 이용방법 4 2857 아이뱅크 8 - 0
853 팁/안정화| (NSRangeException) 디스플레이 환경설정 패널을 로드할 수 없습니다 문제 해결하기 3 686 하늘처럼 1 - 0
852 macOS팁| 시에라 - 모든곳에서 다운로드한 앱 허용 1 769 Mactopia 2 - 0
851 팁/안정화| rx480 시에라에서 기본 잡기 입니다. 28 1919 아이뱅크 2 - 0
850 macOS팁| 맥 OS 바탕화면 사이트 357 Mactopia 0 - 0
849 강좌/연재| 2016 ~ 2017 맥북시리즈 예상 라인업 6 933 KsJ 1 - 0
848 macOS팁| 앱스토어 다운로드 이슈 - 캐시삭제 383 Mactopia 0 - 0
847 팁/안정화| HOT Nvidia GPU를 SSDT-1.aml에 인젝션하는 글타래입니다. 63 2971 zisqo 8 - 0
846 macOS팁| 씨에라용 Nvidia 드라이버 4 1006 마음의창 0 - 0
845 팁/안정화| HOT HP Z420/620 GPU inject를 통해 nv_disable=1을 벗어나 봅니다 3 846 zisqo 3 - 0
844 팁/안정화| HOT HP Z420 / Z620 디스플레이 블랙아웃 회피 방법입니다. 7 1007 zisqo 3 - 0
843 macOS팁| HOT 106키 한국어키보드에서 한영키 인식시키기 11 1973 안녕하세요 10 - 0
842 팁/안정화| HOT 퓨리온님의 시에라&엘캐피탄 16GB 용량초과문제 & dd명령 더 빠르게 2 642 안녕하세요 4 - 0
841 팁/안정화| 키보드 언어변경 1 366 아이뱅크 0 - 0
840 팁/안정화| HOT 디스플레이 EDID 정보 편집 방법입니다. 5 1034 zisqo 4 - 0
839 팁/안정화| HOT rx480 관련 글타래 6 1123 KsJ 4 - 0
838 팁/안정화| 스피드스텝 이후 잠자기에서 깨어나지 않을 때 조치 방법중 하나입니다. 1 762 zisqo 1 - 0
837 macOS팁| HOT 맥의 키보드 및 디스플레이 설정 초기화 5 766 XEXEX 3 - 0
836 팁/안정화| [시에라 성공]b150-ds3h 사운드 잡기 alc887 2 1154 SeungHanKim 1 - 0
835 팁/안정화| VGA -> DVI 컨버터 쓰지 마세요! 2 544 SangHoMetHackin 1 - 0
834 macOS팁| macOS 또는 OS X에서 Caps lock 키 지연시간 제거방법 (Elimination of Caps lock key delay on 10.11 +) 396 D'Artagnan 1 - 0
833 팁/안정화| [임시 글타래] RX 480으로 1순위 부팅 이슈 66 1162 D'Artagnan 2 - 0
서버에 요청 중입니다. 잠시만 기다려 주십시오...