
예를 들어 x64 시스템에 Linux 배포판을 설치한 경우 스토리지 드라이브를 분리하여 다른 x64 시스템에 넣고 그래픽 드라이버와 같은 몇 가지 HL 드라이버를 설치하면 문제 없이 실행될 가능성이 높습니다.
ARM 시스템, 특히 모든 종류의 스마트폰과 같은 ARM SoC의 경우 완전히 다른 그림이 있습니다. 모든 단일 스마트폰에는 동일한 OS(예: OEM Android 배포판)의 다른 빌드가 있습니다.
내 질문은: 왜 그렇죠?
표준화된 아키텍처를 갖춘 PC와 달리 SoC 칩과 아키텍처가 엄청나게 많다는 것을 이해합니다. 그러나 장치 트리를 염두에 두고 나는 왜 장치 트리를 일부 ROM 칩의 부트로더와 함께 하드웨어 설명으로 배치하고 적어도 하드웨어 사양과 상관없이 Linux OS를 독립적으로 구축할 수 있는 방법이 없는지 스스로에게 묻습니다. 일부 정의된 한계.
답변1
나는 하드웨어 설명으로서 장치 트리를 일부 ROM 칩의 부트로더와 함께 배치하고 적어도 정의된 제한 내에서 모든 하드웨어 사양과 독립적으로 Linux OS를 구축할 수 있는 방법이 없는 이유를 스스로에게 묻습니다.
답: 저렴함. 누구도 ROM 칩에 대한 비용을 지불하고 싶어하지 않습니다. SoC에는 부트 ROM이 있지만 장치 트리는 SoC가 있는 회로에 따라 다르기 때문에 좋지 않습니다. 이 작업을 수행하려면 x86 보드와 같은 별도의 "BIOS 칩"이 필요합니다.
대부분의 ARM 보드가 부팅하는 SD 카드를 BIOS 칩으로 처리하여 작동하게 할 수 있습니다. U-Boot와 장치 트리를 그 위에 놓고 U-Boot가 USB 드라이브에서 커널을 로드하도록 하세요. 그러면 USB 드라이브는 ARM 보드에서 ARM 보드로 (상당히) 이식 가능합니다.
최적화 측면에서 일반적으로 ARM용으로 컴파일할 수 있지만 특정 프로세서를 대상으로 하는 것이 실제로 이익이 됩니다(x86_64보다 훨씬 더 그렇습니다).