Embedded

u-boot bootdelay=2 啟動 ext4 時 bootdelay=0 啟動 fat

  • April 5, 2018

我在 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

引用自:https://unix.stackexchange.com/questions/432866