Sd-Card

Creator CI20:bootm 命令的圖像格式錯誤

  • July 6, 2017

我正在嘗試讓我的 Creator CI20直接從 sdcard 啟動

我使用(我在筆記型電腦上執行 debian stretch)編譯了一個 vanilla Linux 核心 4.9.20:

$ make ARCH=mips ci20_defconfig
$ make ARCH=mips CROSS_COMPILE=mipsel-linux-gnu- uImage
Image Name:   Linux-4.9.20
Created:      Sat Jul  1 21:04:19 2017
Image Type:   MIPS Linux Kernel Image (uncompressed)
Data Size:    5225712 Bytes = 5103.23 kB = 4.98 MB
Load Address: 80010000
Entry Point:  8034d0a0
 Image arch/mips/boot/uImage is ready

如果我將文件複製arch/mips/boot/uImage到我的tftp 位置,我可以管理核心以正確啟動:

Hit any key to stop autoboot:  0
ci20# dhcp 0x88000000 192.168.0.14:uImage
ERROR: resetting DM9000 -> not responding
dm9000 i/o: 0xb6000000, id: 0x90000a46 
DM9000: running in 8 bit mode
MAC: d0:31:10:ff:7d:02
operating at 100M full duplex mode
BOOTP broadcast 1
DHCP client bound to address 192.168.0.15
Using dm9000 device
TFTP from server 192.168.0.14; our IP address is 192.168.0.15
Filename 'uImage'.
Load address: 0x88000000
Loading: #################################################################
    #################################################################
    #################################################################
    #################################################################
    #################################################################
    #################################################################
    #################################################################
    #################################################################
    #################################################################
    #################################################################
    #################################################################
    #################################################################
    ################################
    264.6 KiB/s
done
Bytes transferred = 4924012 (4b226c hex)

## Booting kernel from Legacy Image at 88000000 ...
  Image Name:   Linux-4.9.20
  Image Type:   MIPS Linux Kernel Image (uncompressed)
  Data Size:    4923948 Bytes = 4.7 MiB
  Load Address: 80010000
  Entry Point:  803465e0
  Verifying Checksum ... OK
  Loading Kernel Image ... OK

Starting k[    0.111767] jz4780-nemc 13410000.nemc: failed to calculate clock period
[    0.148419] UBI error: cannot open mtd 3, error -19[    0.153621] UBI error: cannot open mtd 4, error -19
[    0.158775] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
[    0.167039] Rebooting in 10 seconds..bootm 0x88000000NAND:  8192 MiB

但是如果我將它複製到我的 sdcard 中,我會從 u-boot 收到這條奇怪的消息:

U-Boot 2013.10-rc3-g25f5638f9 (Jul 01 2017 - 16:30:50)

Board: ci20 (r1) (Ingenic XBurst JZ4780 SoC)
DRAM:  1 GiB
NAND:  8192 MiB
MMC:   jz_mmc msc1: 0
In:    eserial4
Out:   eserial4
Err:   eserial4
Net:   dm9000
Hit any key to stop autoboot:  0 
** File not found /boot/uImage **
Wrong Image Format for bootm command
ERROR: can't get kernel image!

這是sdcard的內容:

% tree /media/mathieu/466bcc7d-37c4-41f3-b83f-8ac6628eb2bb/boot 
/media/mathieu/466bcc7d-37c4-41f3-b83f-8ac6628eb2bb/boot
├── uImage
└── vmlinux.img

0 directories, 2 files

文件系統是:

% mount
/dev/mmcblk0p1 on /media/mathieu/466bcc7d-37c4-41f3-b83f-8ac6628eb2bb type ext4 (rw,nosuid,nodev,relatime,data=ordered,uhelper=udisks2)

有沒有辦法從 u-boot 獲得更多關於錯誤可能是什麼的資訊?

正如@tom-rini 所解釋的,問題只是 ext4 中自動添加的 64 位。

文件來自:

描述:

$ sudo mkfs.ext4 /dev/sdx1

相反,它應該說(對於較新的 mkfs.ext4 命令):

$ sudo mkfs.ext4 -O^64bit,^metadata_csum /dev/sdx1

只是為了後代,這是我第二次被這個咬了:

希望是最後一個。

引用自:https://unix.stackexchange.com/questions/374663