저는 Beaglebone Black 사용자 정의 설치에서 u-boot를 실행하고 ./include/configs/am335x_evm.h를 수정하여 기본 부팅 지연을 0으로 설정했습니다. 이는 fat 분할에서 커널과 장치 트리를 로드할 때 제대로 작동합니다. 하지만 파티션 1을 fat에서 ext4로 전환하고 uEnv.txt의 fatload 문을 ext4load로 변경했습니다. 모든 것이 이전처럼 작동하지만 이제 2초의 시작 지연으로 돌아갑니다. 파티션 유형을 전환하면 왜 이런 일이 발생하는지 이해할 수 없습니다.
ext4 부팅 파티션을 사용하는 경우 u-boot를 다시 컴파일하여 bootdelay를 0으로 다시 설정하는 방법을 아는 사람이 있습니까?
또는 saveenv를 작동시키는 방법을 알아낼 수 있을 것 같습니다. 현재 다음을 제공합니다.
=> saveenv
Saving Environment to FAT... MMC: no card present
** Bad device mmc 0 **
Failed (1)
하지만 솔직히 저는 컴파일 타임에 기본값을 변경하고 싶습니다.
답변1
PC에 ARM 크로스 컴파일러 GCC를 다운로드하세요.
wget -c https://releases.linaro.org/components/toolchain/binaries/6.4-2017.11/arm-linux-gnueabihf/gcc-linaro-6.4.1-2017.11-x86_64_arm-linux-gnueabihf.tar.xz
tar xf gcc-linaro-6.4.1-2017.11-x86_64_arm-linux-gnueabihf.tar.xz
export CC=**/path to**/gcc-linaro-6.4.1-2017.11-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-
경로가 올바른지 확인하세요. /home/username/gcc-linaro/bin/arm-linux-gnueabihf-와 유사한 경로인 루트 디렉터리에 있어야 합니다.
크로스 컴파일러를 테스트합니다.
${CC}gcc --version
올바른 경로가 있으면 터미널에 다음이 표시되어야 합니다.
arm-linux-gnueabihf-gcc (Linaro GCC 6.4-2017.11) 6.4.1 20171012
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
u-부트 다운로드
git clone https://github.com/u-boot/u-boot
cd u-boot/
git checkout v2018.01 -b tmp
패치 받기(인터넷 연결 필요)
wget -c https://rcn-ee.com/repos/git/u-boot-patches/v2018.01/0001-am335x_evm-uEnv.txt-bootz-n-fixes.patch
wget -c https://rcn-ee.com/repos/git/u-boot-patches/v2018.01/0002-U-Boot-BeagleBone-Cape-Manager.patch
wget -c https://raw.githubusercontent.com/RobertCNelson/Bootloader-Builder/master/patches/v2018.03-rc1/0002-NFM-Production-eeprom-assume-device-is-BeagleBone-Bl.patch
u-boot 패치
patch -p1 < 0001-am335x_evm-uEnv.txt-bootz-n-fixes.patch
patch -p1 < 0002-U-Boot-BeagleBone-Cape-Manager.patch
patch -p1 < 0002-NFM-Production-eeprom-assume-device-is-BeagleBone-Bl.patch
구성 및 구축
make ARCH=arm CROSS_COMPILE=${CC} distclean
make ARCH=arm CROSS_COMPILE=${CC} am335x_evm_defconfig
이제 u-boot 폴더에 .config 파일이 있으며 bootdelay 매개변수를 편집하고 변경할 수 있습니다. 세워
make ARCH=arm CROSS_COMPILE=${CC}
SD 카드를 컴퓨터에 연결하고 "lsblk"를 실행하여 SD 카드의 ID를 찾으세요. 제 경우에는 ID가 "sdb"입니다.
설치하다:
export DISK=/dev/sdb
sudo dd if=./MLO of=${DISK} count=1 seek=1 bs=128k
sudo dd if=./u-boot.img of=${DISK} count=2 seek=1 bs=384k