Embedded
u-boot bootdelay=2 啟動 ext4 時 bootdelay=0 啟動 fat
我在 Beaglebone Black 自定義安裝上執行 u-boot,並修改了 ./include/configs/am335x_evm.h 以將預設 bootdelay 設置為 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)
但老實說,我寧願在編譯時更改預設值。
在您的 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/path 到 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-boot
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