Linux에서 MTD의 가시성을 어떻게 제어할 수 있나요?

Linux에서 MTD의 가시성을 어떻게 제어할 수 있나요?

저는 Linux를 실행하는 보드에서 작업 중이며 두 개의 NOR 플래시 장치가 있습니다. MTD는 /dev/ 아래에 표시되도록 장치 트리에 설명되어 있습니다.

그러나 실제로 필요할 때까지(업그레이드 중) NOR 플래시 장치 중 하나에서 MTD를 숨기고 싶습니다.

부팅 후 NOR 플래시에서 드라이버를 바인딩 해제한 다음 필요할 때 다시 바인딩할 수 있다는 것을 발견했습니다. 그러나 처음에는 바인딩하지 않고 시스템을 부팅할 수 있었으면 좋겠습니다. 장치 트리를 편집하고 설정을 시도해 보았습니다.상태="비활성화"그리고호환 가능필드이지만 두 접근 방식 모두 드라이버를 NOR 플래시에 바인딩하는 것을 불가능하게 만든 것 같습니다. (없었다드라이버_오버라이드마디.)

시스템이 허용하도록 할 수 있는 방법이 있나요?드라이버를 바인딩하거나 MTD를 표시할 시기를 결정합니까?

답변1

속성 compatible은 드라이버를 장치(NOR 플래시 컨트롤러)에 연결하고 status장치에 영향을 줍니다.
당신이 시도한 것이 원하는 결과를 얻지 못했다는 것은 당연합니다.
MTD 파티션 정의가 DT에 있는 경우 표시하지 않으려는 파티션을 간단히 주석 처리할 수 없는 이유는 무엇입니까?

드라이버를 바인딩할 시기를 시스템에서 결정하도록 할 수 있는 방법이 있나요?

예, 그것이 바로 장치 트리가 할 수 있는 일입니다.
그러나 귀하의 상황에서는 장치가 아닌 파티션을 다루어야 합니다(하나의 컨트롤러에 두 개의 칩이 연결되어 있기 때문입니다)!
보다https://www.kernel.org/doc/Documentation/devicetree/bindings/mtd/partition.txt
MTD 파티션이 정의되지 않은 경우 해당 파티션에 대한 장치 노드를 생성할 수 없습니다./개발자.

관련 정보