实际上我正试图在我的Zedboard上启动linux(使用带有ARM cortex-A9处理器的zync SoC)。但没有成功。在这里,我将分享这个故事: -
1-我已经完成了我的SD卡的第一个分区,并将其命名为Boot,我在这里复制了以下内容: -
BOOT.bin
uEnv.txt
devicetree.dtb
的uImage
uramdisk.image.gz
2-现在我正在尝试从SD卡启动它,但它没有发生,我收到以下消息。在此消息中,我特别突出显示了错误消息以及我在tty终端中获得的其他相关消息。
U-Boot 2014.01 (Oct 08 2016 - 12:33:09)
I2C: ready
Memory: ECC disabled
DRAM: 512 MiB
MMC: zynq_sdhci: 0
SF: Detected S25FL256S_64K with page size 256 Bytes, erase size 64 KiB, total 32 MiB
*** Warning - bad CRC, using default environment
In: serial
Out: serial
Err: serial
Net: Gem.e000b000
Hit any key to stop autoboot: 3 2 1 0
Device: zynq_sdhci
Manufacturer ID: 27
OEM: 5048
Name: SD04G
Tran Speed: 50000000
Rd Block Len: 512
SD version 3.0
High Capacity: Yes
Capacity: 3.7 GiB
Bus Width: 4-bit
reading uEnv.txt
226 bytes read in 7 ms (31.3 KiB/s)
Loaded environment from uEnv.txt
Importing environment from SD ...
Running uenvcmd ...
Device: zynq_sdhci
Manufacturer ID: 27
OEM: 5048
Name: SD04G
Tran Speed: 50000000
Rd Block Len: 512
SD version 3.0
High Capacity: Yes
Capacity: 3.7 GiB
Bus Width: 4-bit
reading uImage
4150864 bytes read in 399 ms (9.9 MiB/s)
reading devicetree.dtb
9275 bytes read in 16 ms (565.4 KiB/s)
reading uramdisk.image.gz
18047061 bytes read in 1698 ms (10.1 MiB/s)
**Wrong Image Format for bootm command**
**ERROR: can't get kernel image!**
Copying Linux from SD to RAM...
reading uImage
4150864 bytes read in 399 ms (9.9 MiB/s)
reading devicetree.dtb
9275 bytes read in 16 ms (565.4 KiB/s)
reading uramdisk.image.gz
18047061 bytes read in 1698 ms (10.1 MiB/s)
**Wrong Image Format for bootm command**
**ERROR: can't get kernel image!**
zynq-uboot>
3-我的uenv.txt文件的内容如下: -
boot_Zed=mmcinfo;fatload mmc 0 0x3000000 ${kernel_image}; fatload mmc 0 0x2A00000 ${devicetree_image}; fatload mmc 0 0x2000000 ${ramdisk_image}; bootm 0x3000000 0x2000000 0x2A00000
uenvcmd=run boot_Zed
4-我通过以下命令创建了ramdiskimage: -
mkimage -A ARM -T ramdisk -C gzip -n 'ZED filesystem' -d ramdisk.image.gz uramdisk.image.gz
执行上述命令后,我收到以下消息: -
Image Name: ZED filesystemCreated:
Mon Oct 24 10:40:13 2016
Image Type: ARM Linux RAMDisk Image (gzip compressed)
Data Size: 18046997 Bytes = 17624.02 kB = 17.21 MB
Load Address: 00000000
Entry Point: 00000000
5-所以这是评论中要求的printenv
列表: -
波特率= 115200
bitstream_image = system.bit.bin
BOOT_IMAGE = BOOT.BIN
boot_size = 0xF00000
bootcmd =运行$ modeboot
的bootdelay = 3
BOOTENV = uEnv.txt
devicetree_image = devicetree.dtb
devicetree_size =地址0x20000
ethact = Gem.e000b000
ethaddr = 00:0A:35:00:01:22
fdt_high = 0x20000000
importbootenv = echo从SD导入环境...; env import -t
$ {loadbootenv_addr} $ filesize
initrd_high = 0x20000000
IPADDR = 10.10.70.102
jtagboot = echo TFTPing Linux to RAM ...&& tftpboot 0x3000000 $ {kernel_image}&& tftpboot 0x2A00000 $ {devicetree_image}&& tftpboot的 0x2000000 $ {ramdisk_image}&& bootm 0x3000000 0x2000000 0x2A00000
kernel_image =的uImage
kernel_size = 0x500000
loadbit_addr =的0x100000
loadbootenv = fatload mmc 0 $ {loadbootenv_addr} $ {bootenv}
loadbootenv_addr = 0x2000000
mmc_loadbit_fat = echo将SD / MMC / eMMC的比特流加载到RAM ..&& mmcinfo&& fatload mmc 0 $ {loadbit_addr} $ {bitstream_image}&& FPGA 加载0 $ {loadbit_addr} $ {filesize}
modeboot = sdboot
nandboot = echo将Linux从NAND闪存复制到RAM ...&& nand读 0x3000000 0x100000 $ {kernel_size}&& nand读取0x2A00000 0x600000 $ {devicetree_size}&& echo复制ramdisk ...&& nand读取0x2000000 0x620000 $ {ramdisk_size}&& bootm 0x3000000 0x2000000 0x2A00000
norboot = echo将Linux从NOR闪存复制到RAM ...&& cp.b 0xE2100000 0x3000000 $ {kernel_size}&& cp.b 0xE2600000 0x2A00000 $ {devicetree_size}&& echo复制ramdisk ...&& cp.b 0xE2620000 0x2000000 $ {ramdisk_size}&& bootm 0x3000000 0x2000000 0x2A00000
qspiboot = echo将Linux从QSPI闪存复制到RAM ...&& sf探针0 0 0&& sf读取0x3000000 0x100000 $ {kernel_size}&& sf读取0x2A00000 0x600000 $ {devicetree_size}&& echo复制ramdisk ...&& sf阅读 0x2000000 0x620000 $ {ramdisk_size}&& bootm 0x3000000 0x2000000 0x2A00000
ramdisk_image = uramdisk.image.gz
RAMDISK_SIZE = 0x5E0000
rsa_jtagboot = echo TFTPing Image to RAM ...&& tftpboot 0x100000 $ {boot_image}&& zynqrsa 0x100000&& bootm 0x3000000 0x2000000 0x2A00000
rsa_nandboot = echo将图像从NAND闪存复制到RAM ...&& nand读 0x100000 0x0 $ {boot_size}&& zynqrsa 0x100000&& bootm 0x3000000 0x2000000 0x2A00000
rsa_norboot = echo将图像从NOR闪存复制到RAM ...&& cp.b 0xE2100000 0x100000 $ {boot_size}&& zynqrsa 0x100000&& bootm 0x3000000 0x2000000 0x2A00000
rsa_qspiboot = echo将图像从QSPI闪存复制到RAM ...&& sf探针 0 0 0&& sf读取0x100000 0x0 $ {boot_size}&& zynqrsa 0x100000&& bootm 0x3000000 0x2000000 0x2A00000
rsa_sdboot = echo将图像从SD复制到RAM ...&& fatload mmc 0 0x100000 $ {boot_image}&& zynqrsa 0x100000&& bootm 0x3000000 0x2000000 0x2A00000
sdboot = if mmcinfo;然后运行uenvboot; echo将SD从SD复制到 RAM ......&& fatload mmc 0 0x3000000 $ {kernel_image}&& fatload mmc 0 0x2A00000
$ {devicetree_image}&& fatload mmc 0 0x2000000 $ {ramdisk_image}&& bootm 0x3000000 0x2000000 0x2A00000;网络
SERVERIP = 10.10.70.101
标准错误=串行
标准输入=串行
标准输出=串行
uenvboot =如果运行loadbootenv;然后回显Loaded环境 {} BOOTENV $;运行importbootenv;网络连接;如果测试-n $ uenvcmd;回声 运行uenvcmd ...;运行uenvcmd;网络
usbboot = if usb start;然后运行uenvboot; echo从USB复制Linux RAM ...&& fatload usb 0 0x3000000 $ {kernel_image}&& fatload usb 0 0x2A00000 $ {devicetree_image}&& fatload usb 0 0x2000000 $ {ramdisk_image}&& bootm 0x3000000 0x2000000 0x2A00000;网络
环境大小:3368/131068字节
基于我的上述信息,请您告诉/建议我解决我的问题。
答案 0 :(得分:0)
您尚未将加载地址传递给mkimage。尝试向其添加-a 0x2000000
参数。
另外-C gzip
参数可能是错误的,因为您获取已经压缩的输入文件。请尝试使用-C none
。