Apple 또는 사용자의 소프트웨어 업데이트 서버에서 특정 Mac 모델용 Boot Camp ESD("전자 소프트웨어 배포")를 가져오는 Windows 및 OS X 호환 Python 스크립트입니다. 플랫 패키지 내에서 여러 계층의 아카이브 압축을 풀고 --install
옵션을 사용하여 Windows에서 스크립트를 실행하는 경우 64비트 MSI 설치 프로그램도 실행합니다.
Windows에서는 7-Zip을 사용하여 아카이브의 압축을 풀고 7-Zip MSI가 다운로드되어 설치되며 나중에 Brigadier가 설치한 경우 제거됩니다. 이 도구는 dmg2img를 사용하여 Apple의 WindowsSupport.dmg
파일에서 파일을 추출하는 데 사용되었지만 최신 버전의 7-Zip에는 DMG에 대한 더 완벽한 지원이 포함되어 있으므로 dmg2img는 더 이상 필요하지 않은 것 같습니다.
이 글은 두 가지 이유로 작성되었습니다:
원래는 Mac에 대한 Boot Camp 배포를 위한 사후 이미징 단계로 실행되도록 설계되었지만 네트워크 연결이 필요하므로 시스템에서 네트워크 드라이버를 이미 사용할 수 있어야 합니다. (아래 주의사항 참조)
Brigadier는 최신 버전의 Boot Camp 5와 현재 Boot Camp 6에서 드라이버 패키지와 하드웨어 모델의 일부 조합으로 좋지 않은 결과를 얻었습니다. 일부 사람들은 일반적으로 Boot Camp 6 및 Windows 7에서 문제를 확인했습니다. 전적으로 Brigadier의 잘못이 아닐 수도 있습니다. Boot Camp setup.exe
를 조사해 보면 이 실행 파일이 여러 작업을 수행하고 BootCamp.msi
의 최종 실행을 위한 일부 환경을 설정하는 것으로 나타났습니다. Brigadier가 설치하기 위해 msiexec
를 간단히 호출하는 방법으로는 항상 이러한 환경을 얻을 수 있는 것은 아닙니다. MSI가 직접.
저는 setup.exe가 실제로 수행하는 모든 작업의 완전 자동화된 버전을 수행하는 방법을 이해할 만큼 Windows 내부에 대해 충분히 지식이 없습니다(최종적으로 MSI에서 msiexec /i /qr
실행하는 것 외에). 예를 들어, 이 PR에서는 msiexec
에 대해 다른 "조용한" 옵션을 사용하면 더 나은 결과를 얻을 수 있다고 제안하지만 setup.exe
를 디스어셈블리하면 현재 마스터 분기의 코드와 마찬가지로 실제로 /qr
실행하고 있음을 알 수 있습니다. 이런 종류의 질문은 답변을 시도할 만큼 충분한 지식이 없다고 생각되는 질문입니다.
몇 년 전에도 경험했던 이상한 문제가 있었습니다. 예를 들어, 모든 드라이버 현지화 파일(실행 가능하지도 않음)을 순차적으로 실행하려고 시도하기 때문에 일련의 WinRAR SFX 오류가 나타나는 단일 드라이버 설치 프로그램(인텔 칩셋 관련)이 있습니다. 이 대화 상자를 클릭하기만 하면 결국 설치가 계속되지만 그 전까지는 프로세스가 차단됩니다. 이 오류는 사용자가 setup.exe
수동으로 실행할 때는 발생하지 않지만 왜 이해가 되지 않습니다.
이러한 문제를 해결할 수 있다는 희망을 갖고 있지만 내 환경에서 이중 부팅 랩에 대한 사용 사례가 줄어들고 있으므로 이러한 문제를 추가로 조사하는 데 필요한 시간을 정당화하기가 어렵습니다. setup.exe
와 유사한 설치 프로그램 래퍼 및 MSI 설치 프로그램을 되돌리는 방법과 일반적인 Windows 시스템 관리에 대해 잘 아는 사람이라면 이 도구에서 현재 다소 손상된 Boot Camp 드라이버 자동 설치 지원 문제를 해결하는 데 관심이 있는 경우 도움이 필요해요! BootCamp.msi
에는 이 문제를 해결하는 데 도움이 될 수 있는 여러 설치 프로그램 속성이 있습니다.
이 모델에 적용되는 ESD를 현재 작업 디렉터리에 다운로드하고 압축을 풀려면 옵션 없이 brigadier를 실행하세요. OS X에서는 디스크에 쉽게 구울 수 있도록 ESD가 .dmg 형식으로 유지됩니다. Windows에서는 드라이버 파일이 추출됩니다.
MacPro3,1
등의 형식으로 대체 모델을 지정하려면 --model
옵션과 함께 실행하세요.
--install
옵션과 함께 실행하여 다운로드와 설치를 모두 수행하고 설치 후 드라이버를 삭제합니다. 이것은 분명히 Windows에서만 작동합니다. 이 옵션은 Boot Camp 드라이버의 자동 설치를 수행하기 위해 만들어졌습니다.
brigadier.plist
파일을 스크립트와 동일한 폴더에 배치하여 내부 Software Update Server 카탈로그를 가리키도록 .sucatalog URL을 재정의합니다(자세한 내용은 아래 참조).
아래에 추가 옵션이 표시됩니다.
릴리스 영역에서 Windows용으로 미리 컴파일된 바이너리를 찾을 수 있습니다. 이는 Windows에 아직 Python이 설치되어 있지 않은 경우 유용할 수 있습니다. 이것은 PyInstaller를 사용하여 구축되었습니다. 아래에서 직접 구축하는 방법에 대한 자세한 내용을 알아보세요.
OS X 또는 Windows의 Git 체크아웃에서 직접 실행할 수도 있습니다.
몇 가지 명령줄 옵션 외에도:
Usage: brigadier [options]
Options:
-h, --help show this help message and exit
-m MODEL, --model=MODEL
System model identifier to use (otherwise this
machine's model is used).
-i, --install After the installer is downloaded, perform the install
automatically. Can be used on Windows only.
-o OUTPUT_DIR, --output-dir=OUTPUT_DIR
Base path where the installer files will be extracted
into a folder named after the product, ie.
'BootCamp-041-1234'. Uses the current directory if
this option is omitted.
-k, --keep-files Keep the files that were downloaded/extracted. Useful
only with the '--install' option on Windows.
또한 brigadier.plist
XML plist 파일을 생성하여 스크립트와 동일한 디렉터리에 배치할 수도 있습니다. 현재는 BootCampESD 패키지가 포함된 내부 SUS 카탈로그 URL을 가리키는 문자열인 CatalogURL
하나의 키를 지원합니다. 이 저장소의 예를 참조하세요.
모델 및 필수 Boot Camp 패키지를 고려하지 않고 동일한 이미지를 다른 모델에 배포할 수 있도록 이미징 후 Sysprep 단계에서 Boot Camp 드라이버를 수행하는 것이 일반적입니다. Brigadier는 SysPrep FirstLogonCommand의 맥락에서 작동하는 것 같습니다.
이 시나리오에서 실행할 때 스크립트가 수행하는 한 가지 해결 방법이 있습니다. 여기서 현재 작업은 일반적으로 windowssystem32
입니다. 64비트 시스템에 대한 테스트에서 Windows가 System32
폴더를 32비트 응용 프로그램용 SysWoW64
로 분기하는 방식으로 인해 MSI는 설치 프로그램 구성 요소를 찾으려는 시도를 중단했습니다. 스크립트가 --output-dir
옵션을 무시하지 않고 이 작업 디렉터리를 감지하면 출력 디렉터리를 시스템의 루트로 설정합니다. %SystemRoot%
.
기본적으로 --install
사용하면 --keep-files
옵션을 지정하지 않는 한 설치 후 추출된 파일을 정리하므로 파일을 유지하려는 경우가 아니면 설치 후 정리할 필요가 없습니다. .
표준 Python 스크립트로 실행하려는 경우 스크립트를 실행하려면 Windows용 Python(최신 2.7 릴리스에서 테스트됨)이 필요합니다.
직접 빌드하고 싶다면 포함된 빌드 스크립트를 사용할 수 있습니다. Python과 일치하는 버전의 pywin32가 필요합니다. PyInstaller 다운로드를 처리합니다. 인수 없이 간단히 실행하면 현재 작업 디렉터리에 zip 파일이 생성됩니다.
c:python27python build_windows_exe.py
OS X에는 드라이버 파일의 압축을 푸는 작업을 수행하는 기본 hdiutil 및 pkgutil 명령이 있습니다. Windows에서는 다음을 수행합니다.
WindowsSupport.dmg
파일에서 드라이버 파일을 추출합니다.C:WindowsINF
내의 "BootCamp"(또는 이와 유사한) 폴더에 배치하는 것입니다. 이 폴더는 장치 드라이버의 기본 검색 위치이며, 알려지지 않은 모든 하드웨어에 대해 여기에 있는 드라이버를 자동으로 감지하고 설치해야 합니다. DevicePath
레지스트리 키를 수정하여 사용자 정의 위치를 추가할 수도 있지만 기존 INF
폴더를 사용하면 기존 이미지의 드라이버를 업데이트하는 데 파일 복사 외에 다른 변경이 필요하지 않으므로 실제로 이미지를 복원하고 부팅하지 않고도 이 작업을 수행할 수 있습니다. 그냥 드라이버를 설치하면 됩니다. WIM 이미지의 경우 Windows 및 DISM을 사용한 오프라인 드라이버 서비스가 쉽지만 대부분의 관리자는 WIM 이미지를 Mac에 배포하지 않고 ntfsprogs를 래핑하는 도구를 사용할 가능성이 높습니다.brigadier.plist
개인 웹 서버에 저장된 복사본으로 이러한 URL을 재정의하는 기능을 지원할 것입니다.HKEY_CURRENT_USERSoftwareApple Inc.Apple Keyboard Support
에서 FirstTimeRun
레지스트리 키를 설정하여 첫 실행 Boot Camp 도움말 팝업을 비활성화하지만 현재 이 동작을 비활성화할 수 있는 옵션은 없습니다.