Sd-Card
Creator CI20:bootm 命令的圖像格式錯誤
我正在嘗試讓我的 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
只是為了後代,這是我第二次被這個咬了:
希望是最後一個。