![준비](https://linux55.com/image/133169/%EC%A4%80%EB%B9%84.png)
얼마 후 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
부팅 불능의 원인이라고 생각합니다 . autodetectfdt
전체 SD 카드를 플러시하지 않고 이를 복원할 수 있는 방법이 있습니까 ? 이에 대한 데이터를 보관하고 싶습니다.
답변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-upgrade
Igor는 U-Boot v5.38이 손상되었지만 v5.44를 수정하는 작업을 하고 있다고 말했습니다. aptitude
해당 버전이 설치되어 있습니다. 다시 재부팅하면 이제 시스템이 정상적으로 부팅됩니다!