u-boot bootdelay = 2 ao inicializar o ext4 e bootdelay = 0 ao inicializar o fat

0

Estou executando o u-boot em uma instalação personalizada do Beaglebone Black e modifiquei o ./include/configs/am335x_evm.h para definir o bootdelay padrão como 0, que estava funcionando bem quando carregava meu kernel e a árvore de dispositivos de uma partição gorda. Mas eu troquei a partição 1 de fat para ext4 e mudei as instruções de fatload em meu uEnv.txt para ext4load. Tudo funciona exatamente como antes, exceto que agora estou de volta para ter um bootdelay de 2 segundos. Não entendo porque mudar tipos de partição causaria isso.

Alguém sabe como recompilar o u-boot para definir o bootdelay de volta para 0 no caso de eu usar a partição de inicialização do ext4?

Como alternativa, suponho que consegui descobrir como fazer o saveenv funcionar. Atualmente dá:

=> saveenv
Saving Environment to FAT... MMC: no card present
** Bad device mmc 0 **
Failed (1)

Mas, honestamente, prefiro apenas alterar o padrão em tempo de compilação.

    
por Dave 22.03.2018 / 17:02

1 resposta

1

Faça o download do GCC do compilador ARM no seu PC.

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-

Verifique se você tem o caminho correto. Ele deve ser da raiz, algo como / home / username / caminho para gcc-linaro / bin / arm-linux-gnueabihf -

Teste do Cross Compiler:

${CC}gcc --version

Você deve ver isso no seu terminal se tiver o caminho correto:

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.

Faça o download do u-boot

git clone https://github.com/u-boot/u-boot
cd u-boot/
git checkout v2018.01 -b tmp

Obter os patches (precisa de conexão com a internet)

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

Aplique patches no 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

Configurar e construir

make ARCH=arm CROSS_COMPILE=${CC} distclean
make ARCH=arm CROSS_COMPILE=${CC} am335x_evm_defconfig

Agora, na pasta u-boot, haverá o arquivo .config que você pode editar e alterar o parâmetro bootdelay. Construir

make ARCH=arm CROSS_COMPILE=${CC}

Anexe o cartão SD ao computador e execute "lsblk" para descobrir o ID do cartão SD. No meu caso, o id era "sdb"

Instalar:

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
    
por 05.04.2018 / 17:15