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