準備

準備

しばらくしてCubox i4 Proを起動しました。このマイクロコンピュータはU-Bootを使用しています。少なくともそうなっています。しかし、ボックスは起動しません。

マイクロUSB経由でMacを接続するか、HDMI経由でモニターを接続すると、次のようになります。

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

もっとあります。これがError: "autodetectfdt" not defined起動不能の原因だと思います。autodetectfdtSDカード全体をフラッシュせずに復元する方法はありますか?これに関するデータをアーカイブしたい。

答え1

助けを受けた後イゴール・ペコプニックシステムを再起動できました。

準備

まず、マイクロUSBケーブルが必要です。コンピュータからCuboxに接続します。インストール後仮想COMポート(VCP)ドライバ私のコンピュータでは、ls -l /dev/*usbserial*シリアルラインが動作していることがわかりました。/dev/cu.usbserial-DN00AZKZ。だから私はオープンシリアルシリアルラインを使いますscreen /dev/cu.usbserial-DN00AZKZ 115200

トラブルシューティング

次に、Cuboxの電源を入れてすぐに押してenter自動的に起動するのを防ぎました。質問に書いたように、私が持っている唯一のこと

エラー: 'autoDetectfdt'が定義されていません。

GitHubで定義を見つけました。autodetectfdt。シリアルラインを介して実行しましたが、何もしませんでした。私はスクリプトを読みました。

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;

手動で実行してみました。printenv cpu私に何かを与えました。どちらもありません 6SOLO ...でもない 6DLだから私は走ることにしましたsetenv fdt_prefix imx6q。次にprintenv board私に与えられ、mx6cuboxiと解釈してmx6-cubox-i走ったsetenv fdt_file imx6q-cubox-i.dtb。結局私はsaveenv変化に固執しました。

解決する

システムを再起動すると、Linuxカーネルが起動していることがわかります。ログイン後(まだシリアルラインを介して)、sudo aptitude dist-upgradeIgorはU-Boot v5.38が破損していますが、v5.44を修正する作業をしていると述べました。aptitudeそのバージョンがインストールされています。再起動すると、システムは正常に起動します!

関連情報