Orchard
Apple 장치에서 구동되는 Linux입니다. 이 저장소는 장치가 필요로 하는 모든 것과 이를 빌드, 부팅 및 설치하는 ¬aord¬ 도구를 담고 있습니다: 장치 설명자(device descriptions), 커널 패치 및 구성, m1n1 및 Pongo 패치, 펌웨어 레시피, 복구 모드(recovery) 및 장치 런타임, 그리고 호스트 측면(USB 전송, 펌웨어 변환, 설치, 실행).
¬omarchy-a나 ¬minimal-linux와 같은 배포판들이 이를 기반으로 빌드됩니다.
시작하기 (Start)
git clone https://github.com/OrchardLinux/orchard && cd orchard
./setup
orchard run examples/minimal-boot
¬setup은 이 컴퓨터가 빌드 및 부팅하는 데 필요한 것들(uv, Podman, libusb, palera1n, ¬aord¬ 명령어)을 보여주고, 질문하며, 이를 설정합니다. 'Ready' 메시지가 나올 때까지 다시 실행하세요. ¬aordctor는 아무것도 변경하지 않고 동일한 내용을 보여줍니다. 장치를 ¬orchard run을 수행하기 전에 DFU 모드로 넣으세요: 그러면 연결된 보드에 누락된 부분을 빌드한 다음 부팅합니다. 첫 번째 빌드는 Linux를 컴파일하며 시간이 오래 걸리지만, 이후의 빌드는 이를 재사용합니다.
지원되는 하드웨어 (Supported hardware)
현재:
- iPad 6 Wi-Fi (¬iPad7,5¬, J71b), 실험적입니다. 부팅은 테더링(tethered) 방식이며 GPU 가속은 사용할 수 없습니다.
- iPhone 6 (¬iPhone7,2¬, N61AP)는 실험적인 테더링 지원을 가지고 있습니다. 테스트된 기능과 남아있는 작업에 대해서는 bring-up record를 참조하십시오.
시스템 설치 (Install a system)
예를 들어, ¬omarchy-a의 설치 지침을 따르십시오. 배포판의 모든 릴리스에는 자체 설치 프로그램이 포함되어 있습니다:
curl -fsSL https://github.com/OrchardLinux/omarchy-a/releases/latest/download/install.sh | sh
Python, uv 또는 checkout이 필요 없습니다: install.sh는 고정된 독립형 Python과 해당 릴리스의 orchard-install.pyz를 다운로드하고, 둘 다 확인한 후 설치합니다. 이 과정은 사용자의 PATH에 orchard(install, launch, devices, update)을 남기며, 이는 나중에 더 새로운 버전으로만 교체됩니다. orchard 0.2 이전에 빌드된 릴리스는 릴리스된 Orchard 0.1.10과 함께 설치됩니다 (OrchardLinux/cli releases).
설치된 시스템을 다시 시작하려면, 장치를 DFU 모드로 연결하고 orchard launch를 실행합니다. 호스트는 Pongo와 m1n1만 전송하며, m1n1은 장치의 부팅 파티션에서 부팅 항목을 읽어 사용자가 선택한 것을 시작합니다 (--entry ID는 질문 없이 하나를 선택합니다). Orchard가 있는 모든 컴퓨터는 설치된 모든 시스템을 실행할 수 있습니다.
개발 (Develop)
orchard 명령어 ./setup은 PATH에 (tools/launcher)를 설정하고, orchard의 최신 나이틀리(nightly) 버전, 그 도구 및 구성 요소를 해당 명령당 한 번 조회하여 실행합니다; ORCHARD_VERSION은 특정 버전을 고정하며, orchard update는 최신 나이틀리의 런처를 설치합니다. orchard 자체에 대해 작업하려면, checkout의 경로를 통해 자체 bin/orchard를 실행하십시오: 이는 모든 디렉토리에서 해당 checkout을 실행하며, 그 옆에는 하드웨어 데이터와 레시피가 있는 src/ 폴더가 있습니다.
하나의 플랫폼에 속한 모든 보드마다 페이로드(payload)가 빌드됩니다 (out/apple-16k/, out/apple-4k/). orchard run은 연결된 보드로부터 플랫폼을 가져옵니다; orchard build는 --device BOARD, --platform, checkout의 orchard.local.toml에 있는 device (절대 커밋되지 않음) 또는 연결된 보드로부터 값을 받습니다. 저장소 내 어느 것도 보드의 이름을 지정하지 않습니다.
장치를 부팅하거나 드라이버를 자체 작업 트리(worktree)에서 테스트하려면:
git worktree add ../orchard-gpu -b gpu-a10
cd ../orchard-gpu/examples/minimal-boot
orchard run
예제는 시작점입니다. 여기에는 minimal-boot(시리얼 쉘), charger-001(읽기 전용 관찰), hardware-check(장치가 제공하는 기능에 대한 보고서)가 있습니다. orchard python ARGS는 체크아웃 환경에서 Python을 실행하며, 예를 들어 배포판 자체의 스크립트나 orchard python -m unittest discover -s tests와 같습니다. 구성 요소를 직접 빌드하려면 BUILD.md를 참조하십시오.
배포판 체크아웃에는 빌드 항목을 지정하는 [release] 테이블이 포함된 orchard.toml 파일이 있습니다 (name = "...", [release] build = "tools/build.py"). 여기에 orchard build는 전체 릴리스를 out/releases/dev-DATE-TIME에 빌드하고, orchard run은 설치 없이 연결된 장치에서 복구(recovery)를 부팅하며, orchard install은 마지막 빌드를 설치합니다 (tooling).
이 저장소에는 레시피와 코드가 포함되어 있으며, 사설 Apple 펌웨어, 보정(calibration), 하드웨어에서 캡처된 장치 트리(device trees), 또는 세션 자격 증명은 포함하고 있지 않습니다. 장치별 입력값은 사용자의 호스트에서 준비해야 합니다.
라이선스
구성 요소 라이선스 및 상위 스트림 크레딧(upstream credits)을 확인하려면 LICENSE, NOTICE, LICENSES/ 및 파일별 SPDX 식별자를 참조하십시오.