U-Boot: Erro: “autodetectfdt” não definido

0

Depois de algum tempo eu inicializei meu Cubox i4 Pro. Este microcomputador usa o U-Boot ou, pelo menos, deve fazer isso. A caixa não inicializa, no entanto.

Quando conecto meu Mac via micro-USB ou um monitor via HDMI, vejo isso:

U-Boot SPL 2017.11-armbian (Jan 24 2018 - 22:39:16)
Trying to boot from MMC1


U-Boot 2017.11-armbian (Jan 24 2018 - 22:39:16 +0100)

CPU:   Freescale i.MX6Q rev1.5 996 MHz (running at 792 MHz)
CPU:   Extended Commercial temperature grade (-20C to 105C) at 41C
Reset cause: POR
Board: MX6 Cubox-i
DRAM:  2 GiB
MMC:   FSL_SDHC: 0
*** Warning - bad CRC, using default environment

auto-detected panel HDMI
Display: HDMI (1024x768)
In:    serial
Out:   serial
Err:   serial
Net:   FEC
starting USB...
USB0:   Port not available.
USB1:   USB EHCI 1.00
scanning bus 1 for devices... 1 USB Device(s) found
    scanning usb for storage devices... 0 Storage Device(s) found
Hit any key to stop autoboot:  0
switch to partitions #0, OK
mmc0 is current device
Scanning mmc 0:1...
Found U-Boot script /boot/boot.scr
907 bytes read in 98 ms (8.8 KiB/s)
## Executing script at 12000000
## Error: "autodetectfdt" not defined
** File not found /boot/dtb/ **
** Unrecognized filesystem type **
** File not found /dtb/ **
5783761 bytes read in 483 ms (11.4 MiB/s)
5546904 bytes read in 427 ms (12.4 MiB/s)
## Loading init Ramdisk from Legacy Image at 14800000 ...
Image Name:   uInitrd
Image Type:   ARM Linux RAMDisk Image (gzip compressed)
Data Size:    5783697 Bytes = 5.5 MiB
Load Address: 00000000
Entry Point:  00000000
Verifying Checksum ... OK

E mais alguns. Eu suspeito que o Error: "autodetectfdt" not defined é o culpado por não ser capaz de inicializar. Existe uma maneira que eu poderia restaurar este autodetectfdt , de preferência sem piscar o cartão SD inteiro? Existem alguns dados que eu gostaria de preservar ...

    
por mthmulders 11.05.2018 / 11:54

1 resposta

0

Depois de alguma ajuda de Igor Pecovnik Eu pude fazer o boot do meu sistema novamente.

Preparativos

Primeiro de tudo, você precisa de um cabo micro-USB. Conecte-o do seu computador ao Cubox. Depois de instalar o driver da porta COM virtual (VCP) para o meu computador, eu fiz ls -l /dev/*usbserial* para descobrir que o a linha serial estava disponível em /dev/cu.usbserial-DN00AZKZ . Então eu abri a linha serial usando screen /dev/cu.usbserial-DN00AZKZ 115200 .

Resolução de problemas

Em seguida, eu liguei o Cubox e imediatamente pressionei enter para evitar o autoboot. Como escrevi na pergunta, a única coisa que eu tinha era

Error: "autodetectfdt" not defined

No GitHub, encontrei uma definição para autodetectfdt . Passei pela linha serial, mas não adiantou nada. Eu li o roteiro:

if test ${cpu} = 6SOLO || test ${cpu} = 6DL;
then
    setenv fdt_prefix imx6dl;
else
    setenv fdt_prefix imx6q;
fi;

if test ${board} = mx6-cubox-i;
then
    setenv fdt_file ${fdt_prefix}-cubox-i.dtb;
else
    setenv fdt_file ${fdt_prefix}-hummingboard.dtb;
fi;

Eu tentei executá-lo manualmente. printenv cpu me deu algo que não era nem 6SOLO nem 6DL , então decidi executar setenv fdt_prefix imx6q . Em seguida, printenv board me deu mx6cuboxi , que interpretei como mx6-cubox-i , então corri setenv fdt_file imx6q-cubox-i.dtb . Finalmente, eu fiz saveenv para persistir minhas alterações.

Resolução

Re-energizando o sistema, vi a inicialização do kernel do Linux. Depois que eu entrei (ainda sobre a linha serial) eu emiti sudo aptitude dist-upgrade . Igor havia me dito que v5.38 do U-Boot estava quebrado, mas ele estava trabalhando em uma correção; e v5.44 foi lançado no mesmo dia. aptitude instalou essa versão. Outra reinicialização e o sistema agora inicializa bem!

    
por 13.05.2018 / 15:49

Tags