Depois de algum tempo, inicializei meu Cubox i4 Pro. Este microcomputador usa U-Boot, ou pelo menos deveria fazer isso. A caixa não inicializa, no entanto.
Quando conecto meu Mac por micro-USB ou um monitor por HDMI, vejo o seguinte:
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. Suspeito que o Error: "autodetectfdt" not defined
seja o culpado por não conseguir inicializar. Existe uma maneira de restaurar isso autodetectfdt
, de preferência sem piscar todo o cartão SD? Há alguns dados sobre ele que eu gostaria de preservar...
Depois de alguma ajuda de Igor Pecovnik , consegui inicializar meu sistema novamente.
Preparações
Primeiro de tudo, você precisa de um cabo micro-USB. Conecte-o do seu computador ao Cubox. Depois de instalar o driver da porta Virtual COM (VCP) para o meu computador,
ls -l /dev/*usbserial*
descobri que a linha serial estava disponÃvel em /dev/cu.usbserial-DN00AZKZ . Então abri a linha serial usandoscreen /dev/cu.usbserial-DN00AZKZ 115200
.Solução de problemas
Em seguida, liguei o Cubox e pressionei imediatamente
enter
para evitar a inicialização automática. Como escrevi na pergunta, a única coisa que eu tinha eraNo GitHub, encontrei uma definição para
autodetectfdt
. Passei pela linha serial, mas não adiantou. Eu li o roteiro:Eu tentei executá-lo manualmente.
printenv cpu
me deu algo que não era nem6SOLO
nem6DL
, então decidi corrersetenv fdt_prefix imx6q
. Em seguida,printenv board
deu-memx6cuboxi
, que interpretei comomx6-cubox-i
, então corrisetenv fdt_file imx6q-cubox-i.dtb
. Por fim, fizsaveenv
para persistir minhas alterações.Resolução
Religando o sistema, vi a inicialização do kernel do Linux. Depois de fazer login (ainda na linha serial), emiti
sudo aptitude dist-upgrade
. Igor me disse que a versão 5.38 do U-Boot estava quebrada, 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!