u-Boot dtb 파일이란 무엇이며 어떻게 사용합니까 (BeagleBoard xM)? 설정하는 지침을 제공합니다. 그러나

BeagleBoard xM (Rev. C) 용 사용자 지정 Linux를 구축하려고합니다. 저는 많은 C / C ++를 사용하지만 처음부터 Linux를 빌드하고 설치하는 초보자입니다.

유망한 것처럼 보이는 Yocto Project 빌드 어플라이언스 ( https://www.yoctoproject.org/ )를 사용했습니다. u-Boot 부트 로더, Linux 커널 및 루트 파일 시스템 용 파일을 빌드했습니다.

이 페이지 는 Yocto에서 생성 된 파일을 사용하여 마이크로 SD 카드를 설정하는 지침을 제공합니다. 그러나 이미지 파일에는 설정 지침에 언급되지 않은 “.dtb”파일이 포함되어 있습니다.

이 파일은 보드 하드웨어와 관련이 있습니까? 여러 사이트에서 dtd 파일로드 (uEnv.txt에있을 수 있습니까?)에 대해 언급했지만 자세한 정보를 찾지 못했습니다.

위의 지침을 사용하여 MLO 및 u-boot.img로 부팅 파티션을 설정하고 uEnv.txt로 약간 엉망이되었습니다. 또한 루트 파일 시스템으로 두 번째 파티션을 설정했습니다.

부팅 및 로그인 (직렬 포트 콘솔을 통해) 할 수 있었지만 대부분의 보드 하드웨어 (예 : 비디오 및 이더넷을 포함한 모든 USB 장치)가 작동하지 않는 것 같습니다. .dtb 파일을 사용하지 않았기 때문일 수 있습니까?

누군가 dtb를 설명하고 비글 보드에서 사용하는 방법을 설명 할 수 있습니까? 감사!



답변

무엇을 검색해야하는지 알아 낸 후에 내 자신의 질문에 대답합니다. “dtb”파일에는 장치 트리 Blob (또는 이진)이 포함되어 있습니다 ( 여기서 설명 ). 보드에 대한 하드웨어 정보를 Linux 커널에 전달하는 새로운 방법입니다.

u-Boot에 의해 메모리에로드되고 커널로 전달 될 수 있습니다.

내가 사용한 u-Boot 명령은 다음과 같습니다.

setenv bootargs 'console=tty0 console=ttyO2,115200n8 root=/dev/mmcblk0p2 rootwait rootfstype=ext4 rw'
fatload mmc 0:1 0x80300000 zImage
fatload mmc 0:1 0x815f0000 beagle-xm.dtb
bootz 0x80300000 - 0x815f0000

zImage는 커널이고 beagle-xm.dtb는 장치 트리 Blob입니다. uEnv.txt에 “uenvcmd = …”변수를 설정하여 부팅 프로세스를 자동화했습니다 (위의 내용이 포함됨).

부팅되고 장치 트리가로드되었다고 표시됩니다. 그러나 여전히 USB 장치 또는 비디오가 없습니다 (알 수있는 한). 그러나 나는 그것이 다른 문제 일 수 있다고 생각합니다.


답변

비글 본 블랙에서 우분투 14.04를 사용하고 있으므로 설정이 약간 다를 수 있지만 다음은 사용자 정의 dtb를로드하는 방법입니다.

uEnv.txt에서 다음과 같은 줄을 추가하십시오. dtb=name-of-desired.dtb

검색된 위치는 여기에 지정되어 있어야합니다 . 나를 위해 이것은 /boot/dtbs/linux-kernel/linux-kernel 이로 드 된 버전의 이름입니다.


답변

2 dtb가 있습니다. u-boot dtb와 커널 dtb. 그것들은 2 가지입니다. U- 부트 보드 dts / dtb는 항상 사용되는 것은 아니며 필수는 아닙니다. u-boot에서 btw “u-boot”dtb를 사용하여 u-boot에 포함 시키거나 u-boot에 연결할 수 있습니다.