请教各位大佬,R128碰到了打包失败的问题:
C
cai_yp 发布的最佳帖子
-
回复: R128 打包失败 merge_full_rtos_img_failed
@awwwwa
想问一下分区参数需要修改哪里呢?
在/board/r128s2/pro/configs/里面找到了sys_partition_nor.fex和sys_partition_xip.fex两个文件
sys_partition_nor.fex里面的内容是这样的:;--------------------------------------------------------------------------------------------------------- ; 说明: 脚本中的字符串区分大小写,用户可以修改"="后面的数值,但是不要修改前面的字符串 ;--------------------------------------------------------------------------------------------------------- ;-------------------------------------------------------------------------------------------------- ; 固件下载参数配置 ;-------------------------------------------------------------------------------------------------- ;**************************************************** ; mbr的大小, 以Kbyte为单位 ;**************************************************** [mbr] size = 16 ;******************************************************************************************************** ; 分区配置 ; ; ; partition 定义范例: ; [partition] ; //表示是一个分区 ; name = USERFS2 ; //分区名称 ; size = 16384 ; //分区大小 单位: 扇区.分区表示个数最多2^31 * 512 = 2T ; downloadfile = "123.fex" ; //下载文件的路径和名称,可以使用相对路径,相对是指相对于image.cfg文件所在分区。也可以使用绝对路径 ; keydata = 1 ; //私有数据分区,重新量产数据将不丢失 ; encrypt = 1 ; //采用加密方式烧录,将提供数据加密,但损失烧录速度 ; user_type = ? ; //私有用法 ; verify = 1 ; //要求量产完成后校验是否正确 ; ; 注:1、name唯一, 不允许同名 ; 2、name最大12个字符 ; 3、size = 0, 将创建一个无大小的空分区 ; 4、为了安全和效率考虑,分区大小最好保证为16M字节的整数倍 ;******************************************************************************************************** [partition_start] [partition] name = env size = 8 downloadfile = "env.fex" user_type = 0x8000 [partition] name = env-redund size = 8 downloadfile = "env.fex" user_type = 0x8000 [partition] name = arm-lpsram size = 2400 downloadfile = "rtos_arm.fex" user_type = 0x8000 [partition] name = rv-lpsram size = 7000 downloadfile = "rtos_riscv.fex" user_type = 0x8000 [partition] name = dsp-hpsram size = 1600 downloadfile = "rtos_dsp.fex" user_type = 0x8000 [partition] name = arm-b size = 2400 downloadfile = "etf.fex" user_type = 0x8000 [partition] name = config size = 32 downloadfile = "config.fex" user_type = 0x8000 [partition] name = UDISK downloadfile = "data_udisk.fex" user_type = 0x8100
sys_partition_xip.fex里面的内容是这样的:
;--------------------------------------------------------------------------------------------------------- ; 说明: 脚本中的字符串区分大小写,用户可以修改"="后面的数值,但是不要修改前面的字符串 ;--------------------------------------------------------------------------------------------------------- ;-------------------------------------------------------------------------------------------------- ; 固件下载参数配置 ;-------------------------------------------------------------------------------------------------- ;**************************************************** ; mbr的大小, 以Kbyte为单位 ;**************************************************** [mbr] size = 16 ;******************************************************************************************************** ; 分区配置 ; ; ; partition 定义范例: ; [partition] ; //表示是一个分区 ; name = USERFS2 ; //分区名称 ; size = 16384 ; //分区大小 单位: 扇区.分区表示个数最多2^31 * 512 = 2T ; downloadfile = "123.fex" ; //下载文件的路径和名称,可以使用相对路径,相对是指相对于image.cfg文件所在分区。也可以使用绝对路径 ; keydata = 1 ; //私有数据分区,重新量产数据将不丢失 ; encrypt = 1 ; //采用加密方式烧录,将提供数据加密,但损失烧录速度 ; user_type = ? ; //私有用法 ; verify = 1 ; //要求量产完成后校验是否正确 ; ; 注:1、name唯一, 不允许同名 ; 2、name最大12个字符 ; 3、size = 0, 将创建一个无大小的空分区 ; 4、为了安全和效率考虑,分区大小最好保证为16M字节的整数倍 ;******************************************************************************************************** [partition_start] [partition] name = env size = 8 downloadfile = "env.fex" user_type = 0x8000 [partition] name = env-redund size = 8 downloadfile = "env.fex" user_type = 0x8000 [partition] name = arm-lpsram size = 2400 downloadfile = "rtos_arm.fex" user_type = 0x8000 [partition] name = rv-lpsram size = 4000 downloadfile = "rtos_riscv.fex" user_type = 0x8000 verify = 0 [partition] name = dsp-hpsram size = 1600 downloadfile = "rtos_dsp.fex" user_type = 0x8000 [partition] name = rtos-xip size = 5000 downloadfile = "rtos_xip_rv.fex" user_type = 0x8000 [partition] name = arm-b size = 2400 downloadfile = "etf.fex" user_type = 0x8000 [partition] name = config size = 32 downloadfile = "config.fex" user_type = 0x8000 [partition] name = UDISK downloadfile = "data_udisk.fex" user_type = 0x8100
-
R128 打包失败 merge_full_rtos_img_failed
请教各位大佬,R128S2 SDK 打包失败的问题
从tb客服那里获取的SDK
删除out和build文件夹后正常编译,但是打包失败了。
系统openSUSE Tumbleweed
cai_yp 发布的最新帖子
-
回复: R128 打包失败 merge_full_rtos_img_failed
@daizebin
之前解压文件选择了“解压到当前文件夹,自动创建子文件夹”
今天解压文件的时候换了一种解压方式,“解压到当前文件夹”,运行lunch_rtos, 打包通过了。suse@localhost:~/workspace/R128-S2-WROOM-R16N16> p -DARM_TFM=0 -DARM_XIP=0 -DRV_XIP=1 -DARM_PSRAM=0 -DARM_PSRAM_LOAD_ADDR= -DARM_RECOVERY=0 -DARM_BOOT_RV=1 -DARM_BOOT_DSP=1 -DARM_LOAD_ADDR=0x08004000 -DRV_LOAD_ADDR=0x08200000 -DDSP_RUN_ADDR=0x0c000660 -DDSP_LOAD_ADDR=0x0c000000 copying tools file copying configs file storage_type value is 3 storage type is nor image_nor.cfg is exist mv image_nor.cfg image.cfg env_nor.cfg is exist mv env_nor.cfg env.cfg Compressed 875336 bytes into 584965 bytes ==> 66.83% CONFIG_XIP=y, use sys_partition_xip.fex '/home/suse/workspace/R128-S2-WROOM-R16N16/out/r128s2/pro/image/sys_partition_xip.fex' -> '/home/suse/workspace/R128-S2-WROOM-R16N16/out/r128s2/pro/image/sys_partition_nor.fex' pack boot nor package GetPrivateProfileSection read to end content_count=1 boot0 file Path=/home/suse/workspace/R128-S2-WROOM-R16N16/out/r128s2/pro/image/boot0_sdcard.fex script file Path=/home/suse/workspace/R128-S2-WROOM-R16N16/out/r128s2/pro/image/sys_config.bin skip_length = 0 update_for_boot0 703 update_for_boot0 705 update_for_boot0 707 update_for_boot0 710 boot0->head.length:49152 update_for_boot0 714 update_for_boot0 720 update_for_boot0 725 update_for_boot0 732 debug_mode update_for_boot0 743 update_for_boot0 749 update_for_boot0 757 update_for_boot0 761 extd_head.select_mode:0 magic: update_for_boot0 788 update_for_boot0 794 update_for_boot0 800 update_for_boot0 810 card_str :card0_boot_para card_str :card1_boot_para card_str :card2_boot_para card_str :card3_boot_para unable to find card{x}_boot_para pack boot package GetPrivateProfileSection read to end content_count=1 toc1 file Path=/home/suse/workspace/R128-S2-WROOM-R16N16/out/r128s2/pro/image/boot_package.fex script file Path=/home/suse/workspace/R128-S2-WROOM-R16N16/out/r128s2/pro/image/sys_config.bin cant get board_id_enable script update toc1 ok packing for rtos normal cfg string: /* -- Autogenerated! Do not edit!!! */ /* * mkimage configuration: * magic: image header magic, AWIH * hversion: image header version * pversion: payload version * key_type: crypto type of packing and verity * image: image size configuration * - max_size: firmware max size * - bin_num: max binary number in firmware * section: binary list * - id: binary file id * - bin: binary file name * - flash_offs: the offset of the binary in flash. if not set, it will put the binary at the end of previous binary (1024B align). * - sram_offs: the sram offset which the binary will be loaded to. * - ep: entry point * - attr: attribute * - bit[1:0]: file type, 00 - normal, 01 - executable, 10 - XIP, 11 - reserved. * - bit[3:2]: encrypt type, 00 - none, X1 - signature, 1X - flash encryptiion * - bit[4]: compress flag, 0 - none, 1 - compressed * - bit[5]: secure flag, 0 - none, 1 - secure * - bit[6]: storage data flag, 0 - none, 1 - has storage data at the end * - bit[7]: reserved * - bit[8]: gz flag, 0 - none, 1 - gzip * - bit[31:9]: reserved */ { "magic" : "AWIH", "hversion" : "0.5", "pversion" : "0", "key_type" : "rsa", "image" : {"max_size": "16384K"}, "section" : [ {"id": "0xa5ff5a00", "bin": "boot0_spinor.fex", "attr": "0x01", "sram_offs": "0x40b0000", "ep": "0x40b0080", "sign_key" : ""}, {"id": "0xa5fd5a02", "bin": "boot0_sdcard.fex", "attr": "0x01", "sram_offs": "0x40b0000", "ep": "0x40b0080", "sign_key" : ""}, {"id": "0xa5df5a20", "bin": "rtos_arm.fex", "attr": "0x01", "sram_offs": "0x08004000", "ep": "0x08004000", "sign_key" : ""}, {"id": "0xa5cf5a30", "bin": "rtos_riscv.fex", "attr": "0x01", "sram_offs": "0x08200000", "ep": "0x08200000", "sign_key": ""}, {"id": "0xa5bf5a40", "bin": "rtos_dsp.fex", "attr": "0x01", "sram_offs": "0x0c000000", "ep": "0x0c000660", "sign_key": ""}, {"id": "0xa5ce5a31", "bin": "rtos_xip_rv.fex", "attr": "0x02", "sram_offs": "0x08200000", "ep": "", "sign_key" : ""}, {"id": "0xa59f5a60", "bin": "etf.fex", "attr": "0x01", "sram_offs": "0x08004000", "ep": "0x08004000", "sign_key" : ""}, {} ], "asyn_keys" : [ {"key": "RootKey"}, {"key": "TFKey"}, {"key": "SoCFKey"}, {"key": "NonTFKey"}, {"key": "DebugKey"} ] } Flash Layout: sec bin 0 boot0_spinor.fex : flash_offs: 0x00000000( 0K) data_size: 0x0000C080( 49K) sec bin 1 boot0_sdcard.fex : flash_offs: 0x0000C400( 49K) data_size: 0x0000C080( 49K) sec bin 2 rtos_arm.fex : flash_offs: 0x00018800( 98K) data_size: 0x00121E48(1160K) sec bin 3 rtos_riscv.fex : flash_offs: 0x0013A800(1258K) data_size: 0x000D5BC8( 855K) sec bin 4 rtos_dsp.fex : flash_offs: 0x00210400(2113K) data_size: 0x0007A168( 489K) sec bin 5 rtos_xip_rv.fex : flash_offs: 0x0028A800(2602K) data_size: 0x0023C220(2289K) sec bin 6 etf.fex : flash_offs: 0x004C6C00(4891K) data_size: 0x000E8338( 929K) generate image: xr_system.img 已重命名 'boot0_spinor.fex' -> 'boot0_spinor.fex.nopack' 'boot0_spinor.fex.pack' -> 'boot0_spinor.fex' 已重命名 'boot0_sdcard.fex' -> 'boot0_sdcard.fex.nopack' 'boot0_sdcard.fex.pack' -> 'boot0_sdcard.fex' 已重命名 'rtos_arm.fex' -> 'rtos_arm.fex.nopack' 'rtos_arm.fex.pack' -> 'rtos_arm.fex' 已重命名 'etf.fex' -> 'etf.fex.nopack' 'etf.fex.pack' -> 'etf.fex' 已重命名 'rtos_riscv.fex' -> 'rtos_riscv.fex.nopack' 'rtos_riscv.fex.pack' -> 'rtos_riscv.fex' 已重命名 'rtos_xip_rv.fex' -> 'rtos_xip_rv.fex.nopack' 'rtos_xip_rv.fex.pack' -> 'rtos_xip_rv.fex' 已重命名 'rtos_dsp.fex' -> 'rtos_dsp.fex.nopack' 'rtos_dsp.fex.pack' -> 'rtos_dsp.fex' 输入了 32+0 块记录 输出了 32+0 块记录 32768 字节 (33 kB, 32 KiB) 已复制,0.00011565 s,283 MB/s 输入了 32+0 块记录 输出了 32+0 块记录 32768 字节 (33 kB, 32 KiB) 已复制,0.000108326 s,302 MB/s ====for card product==== GetPrivateProfileSection read to end content_count=1 making data image for 16M nor data_udisk.fex try to create image: UDISK to data_udisk.fex with size 8650752 The filesystem path: /home/suse/workspace/R128-S2-WROOM-R16N16/board/r128s2/pro/data/UDISK --- creating littlefs image --- /xr_wifi.conf /sys_sdd_40M.bin /init.sh /etf_r128.bin /wlan_fw.bin /demo /boot.mp3 /wlan_bl.bin --- create littlefs image end --- cut zero to reduce fs size cut /home/suse/workspace/R128-S2-WROOM-R16N16/out/r128s2/pro/image/data_udisk.fex.cut from 8650752 to 8280576 输入了 32346+0 块记录 输出了 32346+0 块记录 8280576 字节 (8.3 MB, 7.9 MiB) 已复制,0.0446896 s,185 MB/s this is not a partition key update mbr file ok ----------------mbr convert to gpt start--------------------- out: sunxi_gpt_nor.fex source: sunxi_mbr_nor.fex input_logic_offset: 256 input_flash_size: 16M gpt partition entry crc32 = 0xdd670c0b gpt header crc32 = 0x49b232ba GPT----part num 9--- gpt_entry: 128 gpt_header: 92 GPT:env : 120 127 GPT:env-redund : 128 12f GPT:arm-lpsram : 130 a8f GPT:rv-lpsram : a90 1a2f GPT:dsp-hpsram : 1a30 206f GPT:rtos-xip : 2070 33f7 GPT:arm-b : 33f8 3d57 GPT:config : 3d58 3d77 GPT:UDISK : 3d78 7fff update gpt file ok ----------------mbr convert to gpt end--------------------- boot0: boot0_spinor.fex redund boot0: boot0_spinor.fex mbr: sunxi_gpt_nor.fex partition: sys_partition_nor.bin UDISK_partition_size: 17032 sector outfile: rtos_16Mnor.bin logic_start: 128K total_image_size: 16M load file: boot0_spinor.fex ok load file: sunxi_gpt_nor.fex ok load file: boot0_spinor.fex ok support redund boot0 at 0x10000 load file: sys_partition_nor.bin ok part name=env file name:env.fex part size:8 sector load file: env.fex ok part name=env-redund file name:env.fex part size:8 sector load file: env.fex ok part name=arm-lpsram file name:rtos_arm.fex part size:2400 sector load file: rtos_arm.fex ok part name=rv-lpsram file name:rtos_riscv.fex part size:4000 sector load file: rtos_riscv.fex ok part name=dsp-hpsram file name:rtos_dsp.fex part size:1600 sector load file: rtos_dsp.fex ok part name=rtos-xip file name:rtos_xip_rv.fex part size:5000 sector load file: rtos_xip_rv.fex ok part name=arm-b file name:etf.fex part size:2400 sector load file: etf.fex ok part name=config file name:config.fex part size:32 sector load file: config.fex ok part name=UDISK file name:data_udisk.fex load file: data_udisk.fex ok partname: UDISK this is not a partition key merge_package ok /home/suse/workspace/R128-S2-WROOM-R16N16/out/r128s2/pro/image/rtos_16Mnor.bin cut rtos_16Mnor.bin from 16777216 to 16337168 ==================================== show "sys_partition_for_dragon.fex" message ------------------------------------ [mbr] mbr_size : 16 Kbyte ------------------------------------ partition_name : env partition_size : 8 downloadfile : env.fex env.fex size : 4.0K byte ------------------------------------ partition_name : env-redund partition_size : 8 downloadfile : env.fex env.fex size : 4.0K byte ------------------------------------ partition_name : arm-lpsram partition_size : 2400 downloadfile : rtos_arm.fex rtos_arm.fex size : 1.2M byte ------------------------------------ partition_name : rv-lpsram partition_size : 4000 downloadfile : rtos_riscv.fex rtos_riscv.fex size : 855K byte verify : 0 ------------------------------------ partition_name : dsp-hpsram partition_size : 1600 downloadfile : rtos_dsp.fex rtos_dsp.fex size : 489K byte ------------------------------------ partition_name : rtos-xip partition_size : 5000 downloadfile : rtos_xip_rv.fex rtos_xip_rv.fex size : 2.3M byte ------------------------------------ partition_name : arm-b partition_size : 2400 downloadfile : etf.fex etf.fex size : 929K byte ------------------------------------ partition_name : config partition_size : 32 downloadfile : config.fex config.fex size : 15K byte ------------------------------------ partition_name : UDISK downloadfile : data_udisk.fex data_udisk.fex size : 7.9M byte ------------------------------------ dragon: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory -----------rtos_freertos_r128s2_pro_uart0_16Mnor.img---------------- pack finish
-
回复: R128 打包失败 merge_full_rtos_img_failed
suse@localhost:~/WorkSpace/R128-S2-WROOM-R16N16> busybox BusyBox v1.36.1 () multi-call binary. BusyBox is copyrighted by many authors between 1998-2015. Licensed under GPLv2. See source distribution for detailed copyright notices. Usage: busybox [function [arguments]...] or: busybox --list or: function [arguments]... BusyBox is a multi-call binary that combines many common Unix utilities into a single executable. Most people will create a link to busybox for each function they wish to use and BusyBox will act like whatever it was invoked as. Currently defined functions: [, [[, addgroup, adduser, ar, arch, arp, arping, ascii, ash, awk, base32, base64, basename, bc, beep, blkid, brctl, bunzip2, bzcat, bzip2, cal, cat, chattr, chcon, chgrp, chmod, chown, chpasswd, chroot, chvt, cksum, clear, cmp, comm, cp, cpio, cryptpw, cut, date, dd, deallocvt, delgroup, deluser, depmod, df, diff, dirname, dmesg, dnsdomainname, dos2unix, du, echo, ed, egrep, env, envdir, ether-wake, expand, expr, factor, fallocate, false, fatattr, fdisk, fgrep, find, findfs, flock, fold, free, fsck, fsync, fuser, getenforce, getopt, getsebool, grep, groups, gunzip, gzip, head, hexdump, hexedit, hostid, hostname, hush, id, ifconfig, ifdown, ifenslave, ifup, insmod, install, iostat, ip, ipaddr, ipcrm, ipcs, iplink, ipneigh, iproute, iprule, iptunnel, kill, killall, killall5, last, less, link, linux32, linux64, ln, load_policy, loadfont, loadkmap, logger, login, logname, losetup, ls, lsattr, lsmod, lsof, lspci, lsscsi, lsusb, lzcat, lzma, lzop, man, matchpathcon, md5sum, mdev, mesg, mkdir, mkdosfs, mke2fs, mkfifo, mkfs.ext2, mkfs.vfat, mknod, mkpasswd, mkswap, mktemp, modinfo, modprobe, more, mount, mountpoint, mpstat, mv, nameif, nbd-client, nc, netstat, nice, nl, nmeter, nohup, nologin, nproc, nsenter, nslookup, od, openvt, passwd, paste, patch, pgrep, pidof, ping, ping6, pkill, pmap, printenv, printf, ps, pscan, pstree, pwd, pwdx, readlink, realpath, renice, reset, resize, restorecon, rev, rm, rmdir, rmmod, route, runcon, script, scriptreplay, sed, seedrng, selinuxenabled, sendmail, seq, sestatus, setarch, setconsole, setenforce, setfattr, setfiles, setfont, setkeycodes, setlogcons, setpriv, setsebool, setsid, sh, sha1sum, sha256sum, sha3sum, sha512sum, showkey, shred, shuf, slattach, sleep, smemcap, sort, split, ssl_client, stat, strings, stty, su, sulogin, sum, switch_root, sync, sysctl, syslogd, tac, tail, tar, tc, tee, telnet, test, tftp, time, timeout, top, touch, tr, traceroute, traceroute6, tree, true, truncate, tsort, tty, ttysize, tunctl, udhcpc, uevent, umount, uname, uncompress, unexpand, uniq, unix2dos, unlink, unlzma, unshare, unxz, unzip, uptime, users, usleep, uudecode, uuencode, vconfig, vi, vlock, w, wall, watch, wc, wget, which, who, whoami, whois, xargs, xxd, xz, xzcat, yes, zcat, zcip suse@localhost:~/WorkSpace/R128-S2-WROOM-R16N16>
-
回复: R128 打包失败 merge_full_rtos_img_failed
@daizebin
打包的日志如下:suse@localhost:~/WorkSpace/R128-S2-WROOM-R16N16> p -DARM_TFM=0 -DARM_XIP=0 -DRV_XIP=1 -DARM_PSRAM=0 -DARM_PSRAM_LOAD_ADDR= -DARM_RECOVERY=0 -DARM_BOOT_RV=1 -DARM_BOOT_DSP=1 -DARM_LOAD_ADDR=0x08004000 -DRV_LOAD_ADDR=0x08200000 -DDSP_RUN_ADDR=0x0c000660 -DDSP_LOAD_ADDR=0x0c000000 copying tools file copying configs file storage_type value is 3 storage type is nor image_nor.cfg is exist mv image_nor.cfg image.cfg env_nor.cfg is exist mv env_nor.cfg env.cfg Compressed 875336 bytes into 585034 bytes ==> 66.84% CONFIG_XIP=y, use sys_partition_xip.fex '/home/suse/WorkSpace/R128-S2-WROOM-R16N16/out/r128s2/pro/image/sys_partition_xip.fex' -> '/home/suse/WorkSpace/R128-S2-WROOM-R16N16/out/r128s2/pro/image/sys_partition_nor.fex' /home/suse/WorkSpace/R128-S2-WROOM-R16N16/tools/scripts/pack_img.sh: 行 743: busybox: 未找到命令 /home/suse/WorkSpace/R128-S2-WROOM-R16N16/tools/scripts/pack_img.sh: 行 752: busybox: 未找到命令 /home/suse/WorkSpace/R128-S2-WROOM-R16N16/tools/scripts/pack_img.sh: 行 768: busybox: 未找到命令 pack boot nor package /home/suse/WorkSpace/R128-S2-WROOM-R16N16/tools/scripts/pack_img.sh: 行 780: busybox: 未找到命令 GetPrivateProfileSection read to end content_count=1 boot0 file Path=/home/suse/WorkSpace/R128-S2-WROOM-R16N16/out/r128s2/pro/image/boot0_sdcard.fex script file Path=/home/suse/WorkSpace/R128-S2-WROOM-R16N16/out/r128s2/pro/image/sys_config.bin skip_length = 0 update_for_boot0 703 update_for_boot0 705 update_for_boot0 707 update_for_boot0 710 boot0->head.length:49152 update_for_boot0 714 update_for_boot0 720 update_for_boot0 725 update_for_boot0 732 debug_mode update_for_boot0 743 update_for_boot0 749 update_for_boot0 757 update_for_boot0 761 extd_head.select_mode:0 magic: update_for_boot0 788 update_for_boot0 794 update_for_boot0 800 update_for_boot0 810 card_str :card0_boot_para card_str :card1_boot_para card_str :card2_boot_para card_str :card3_boot_para unable to find card{x}_boot_para pack boot package /home/suse/WorkSpace/R128-S2-WROOM-R16N16/tools/scripts/pack_img.sh: 行 801: busybox: 未找到命令 GetPrivateProfileSection read to end content_count=1 toc1 file Path=/home/suse/WorkSpace/R128-S2-WROOM-R16N16/out/r128s2/pro/image/boot_package.fex script file Path=/home/suse/WorkSpace/R128-S2-WROOM-R16N16/out/r128s2/pro/image/sys_config.bin cant get board_id_enable script update toc1 ok packing for rtos normal cfg string: /* -- Autogenerated! Do not edit!!! */ /* * mkimage configuration: * magic: image header magic, AWIH * hversion: image header version * pversion: payload version * key_type: crypto type of packing and verity * image: image size configuration * - max_size: firmware max size * - bin_num: max binary number in firmware * section: binary list * - id: binary file id * - bin: binary file name * - flash_offs: the offset of the binary in flash. if not set, it will put the binary at the end of previous binary (1024B align). * - sram_offs: the sram offset which the binary will be loaded to. * - ep: entry point * - attr: attribute * - bit[1:0]: file type, 00 - normal, 01 - executable, 10 - XIP, 11 - reserved. * - bit[3:2]: encrypt type, 00 - none, X1 - signature, 1X - flash encryptiion * - bit[4]: compress flag, 0 - none, 1 - compressed * - bit[5]: secure flag, 0 - none, 1 - secure * - bit[6]: storage data flag, 0 - none, 1 - has storage data at the end * - bit[7]: reserved * - bit[8]: gz flag, 0 - none, 1 - gzip * - bit[31:9]: reserved */ { "magic" : "AWIH", "hversion" : "0.5", "pversion" : "0", "key_type" : "rsa", "image" : {"max_size": "16384K"}, "section" : [ {"id": "0xa5ff5a00", "bin": "boot0_spinor.fex", "attr": "0x01", "sram_offs": "0x40b0000", "ep": "0x40b0080", "sign_key" : ""}, {"id": "0xa5fd5a02", "bin": "boot0_sdcard.fex", "attr": "0x01", "sram_offs": "0x40b0000", "ep": "0x40b0080", "sign_key" : ""}, {"id": "0xa5df5a20", "bin": "rtos_arm.fex", "attr": "0x01", "sram_offs": "0x08004000", "ep": "0x08004000", "sign_key" : ""}, {"id": "0xa5cf5a30", "bin": "rtos_riscv.fex", "attr": "0x01", "sram_offs": "0x08200000", "ep": "0x08200000", "sign_key": ""}, {"id": "0xa5bf5a40", "bin": "rtos_dsp.fex", "attr": "0x01", "sram_offs": "0x0c000000", "ep": "0x0c000660", "sign_key": ""}, {"id": "0xa5ce5a31", "bin": "rtos_xip_rv.fex", "attr": "0x02", "sram_offs": "0x08200000", "ep": "", "sign_key" : ""}, {"id": "0xa59f5a60", "bin": "etf.fex", "attr": "0x01", "sram_offs": "0x08004000", "ep": "0x08004000", "sign_key" : ""}, {} ], "asyn_keys" : [ {"key": "RootKey"}, {"key": "TFKey"}, {"key": "SoCFKey"}, {"key": "NonTFKey"}, {"key": "DebugKey"} ] } Flash Layout: sec bin 0 boot0_spinor.fex : flash_offs: 0x00000000( 0K) data_size: 0x0000C080( 49K) sec bin 1 boot0_sdcard.fex : flash_offs: 0x0000C400( 49K) data_size: 0x0000C080( 49K) sec bin 2 rtos_arm.fex : flash_offs: 0x00018800( 98K) data_size: 0x00121E48(1160K) sec bin 3 rtos_riscv.fex : flash_offs: 0x0013A800(1258K) data_size: 0x000D5BC8( 855K) sec bin 4 rtos_dsp.fex : flash_offs: 0x00210400(2113K) data_size: 0x0007A168( 489K) sec bin 5 rtos_xip_rv.fex : flash_offs: 0x0028A800(2602K) data_size: 0x0023C250(2289K) sec bin 6 etf.fex : flash_offs: 0x004C6C00(4891K) data_size: 0x000E8338( 929K) generate image: xr_system.img 已重命名 'boot0_spinor.fex' -> 'boot0_spinor.fex.nopack' 'boot0_spinor.fex.pack' -> 'boot0_spinor.fex' 已重命名 'boot0_sdcard.fex' -> 'boot0_sdcard.fex.nopack' 'boot0_sdcard.fex.pack' -> 'boot0_sdcard.fex' 已重命名 'rtos_arm.fex' -> 'rtos_arm.fex.nopack' 'rtos_arm.fex.pack' -> 'rtos_arm.fex' 已重命名 'etf.fex' -> 'etf.fex.nopack' 'etf.fex.pack' -> 'etf.fex' 已重命名 'rtos_riscv.fex' -> 'rtos_riscv.fex.nopack' 'rtos_riscv.fex.pack' -> 'rtos_riscv.fex' 已重命名 'rtos_xip_rv.fex' -> 'rtos_xip_rv.fex.nopack' 'rtos_xip_rv.fex.pack' -> 'rtos_xip_rv.fex' 已重命名 'rtos_dsp.fex' -> 'rtos_dsp.fex.nopack' 'rtos_dsp.fex.pack' -> 'rtos_dsp.fex' 输入了 32+0 块记录 输出了 32+0 块记录 32768 字节 (33 kB, 32 KiB) 已复制,0.000106348 s,308 MB/s 输入了 32+0 块记录 输出了 32+0 块记录 32768 字节 (33 kB, 32 KiB) 已复制,0.000158159 s,207 MB/s ====for card product==== /home/suse/WorkSpace/R128-S2-WROOM-R16N16/tools/scripts/pack_img.sh: 行 1201: busybox: 未找到命令 GetPrivateProfileSection read to end content_count=1 making data image for 16M nor data_udisk.fex try to create image: UDISK to data_udisk.fex with size 8650752 The filesystem path: /home/suse/WorkSpace/R128-S2-WROOM-R16N16/board/r128s2/pro/data/UDISK --- creating littlefs image --- /xr_wifi.conf /sys_sdd_40M.bin /init.sh /etf_r128.bin /wlan_fw.bin /demo /boot.mp3 /wlan_bl.bin --- create littlefs image end --- cut zero to reduce fs size cut /home/suse/WorkSpace/R128-S2-WROOM-R16N16/out/r128s2/pro/image/data_udisk.fex.cut from 8650752 to 8280576 输入了 32346+0 块记录 输出了 32346+0 块记录 8280576 字节 (8.3 MB, 7.9 MiB) 已复制,0.0432897 s,191 MB/s this is not a partition key update mbr file ok ----------------mbr convert to gpt start--------------------- out: sunxi_gpt_nor.fex source: sunxi_mbr_nor.fex input_logic_offset: 256 input_flash_size: 16M gpt partition entry crc32 = 0x802bb966 gpt header crc32 = 0xc717a21 GPT----part num 1--- gpt_entry: 128 gpt_header: 92 GPT:UDISK : 120 7fff update gpt file ok ----------------mbr convert to gpt end--------------------- boot0: boot0_spinor.fex redund boot0: boot0_spinor.fex mbr: sunxi_gpt_nor.fex partition: sys_partition_nor.bin UDISK_partition_size: 17032 sector outfile: rtos_16Mnor.bin logic_start: 128K total_image_size: 16M load file: boot0_spinor.fex ok load file: sunxi_gpt_nor.fex ok load file: boot0_spinor.fex ok support redund boot0 at 0x10000 load file: sys_partition_nor.bin ok part name=UDISK file name:data_udisk.fex load file: data_udisk.fex ok partname: UDISK this is not a partition key merge_package fail ERROR: merge_full_rtos_img failed
-
回复: R128 打包失败 merge_full_rtos_img_failed
@awwwwa
想问一下分区参数需要修改哪里呢?
在/board/r128s2/pro/configs/里面找到了sys_partition_nor.fex和sys_partition_xip.fex两个文件
sys_partition_nor.fex里面的内容是这样的:;--------------------------------------------------------------------------------------------------------- ; 说明: 脚本中的字符串区分大小写,用户可以修改"="后面的数值,但是不要修改前面的字符串 ;--------------------------------------------------------------------------------------------------------- ;-------------------------------------------------------------------------------------------------- ; 固件下载参数配置 ;-------------------------------------------------------------------------------------------------- ;**************************************************** ; mbr的大小, 以Kbyte为单位 ;**************************************************** [mbr] size = 16 ;******************************************************************************************************** ; 分区配置 ; ; ; partition 定义范例: ; [partition] ; //表示是一个分区 ; name = USERFS2 ; //分区名称 ; size = 16384 ; //分区大小 单位: 扇区.分区表示个数最多2^31 * 512 = 2T ; downloadfile = "123.fex" ; //下载文件的路径和名称,可以使用相对路径,相对是指相对于image.cfg文件所在分区。也可以使用绝对路径 ; keydata = 1 ; //私有数据分区,重新量产数据将不丢失 ; encrypt = 1 ; //采用加密方式烧录,将提供数据加密,但损失烧录速度 ; user_type = ? ; //私有用法 ; verify = 1 ; //要求量产完成后校验是否正确 ; ; 注:1、name唯一, 不允许同名 ; 2、name最大12个字符 ; 3、size = 0, 将创建一个无大小的空分区 ; 4、为了安全和效率考虑,分区大小最好保证为16M字节的整数倍 ;******************************************************************************************************** [partition_start] [partition] name = env size = 8 downloadfile = "env.fex" user_type = 0x8000 [partition] name = env-redund size = 8 downloadfile = "env.fex" user_type = 0x8000 [partition] name = arm-lpsram size = 2400 downloadfile = "rtos_arm.fex" user_type = 0x8000 [partition] name = rv-lpsram size = 7000 downloadfile = "rtos_riscv.fex" user_type = 0x8000 [partition] name = dsp-hpsram size = 1600 downloadfile = "rtos_dsp.fex" user_type = 0x8000 [partition] name = arm-b size = 2400 downloadfile = "etf.fex" user_type = 0x8000 [partition] name = config size = 32 downloadfile = "config.fex" user_type = 0x8000 [partition] name = UDISK downloadfile = "data_udisk.fex" user_type = 0x8100
sys_partition_xip.fex里面的内容是这样的:
;--------------------------------------------------------------------------------------------------------- ; 说明: 脚本中的字符串区分大小写,用户可以修改"="后面的数值,但是不要修改前面的字符串 ;--------------------------------------------------------------------------------------------------------- ;-------------------------------------------------------------------------------------------------- ; 固件下载参数配置 ;-------------------------------------------------------------------------------------------------- ;**************************************************** ; mbr的大小, 以Kbyte为单位 ;**************************************************** [mbr] size = 16 ;******************************************************************************************************** ; 分区配置 ; ; ; partition 定义范例: ; [partition] ; //表示是一个分区 ; name = USERFS2 ; //分区名称 ; size = 16384 ; //分区大小 单位: 扇区.分区表示个数最多2^31 * 512 = 2T ; downloadfile = "123.fex" ; //下载文件的路径和名称,可以使用相对路径,相对是指相对于image.cfg文件所在分区。也可以使用绝对路径 ; keydata = 1 ; //私有数据分区,重新量产数据将不丢失 ; encrypt = 1 ; //采用加密方式烧录,将提供数据加密,但损失烧录速度 ; user_type = ? ; //私有用法 ; verify = 1 ; //要求量产完成后校验是否正确 ; ; 注:1、name唯一, 不允许同名 ; 2、name最大12个字符 ; 3、size = 0, 将创建一个无大小的空分区 ; 4、为了安全和效率考虑,分区大小最好保证为16M字节的整数倍 ;******************************************************************************************************** [partition_start] [partition] name = env size = 8 downloadfile = "env.fex" user_type = 0x8000 [partition] name = env-redund size = 8 downloadfile = "env.fex" user_type = 0x8000 [partition] name = arm-lpsram size = 2400 downloadfile = "rtos_arm.fex" user_type = 0x8000 [partition] name = rv-lpsram size = 4000 downloadfile = "rtos_riscv.fex" user_type = 0x8000 verify = 0 [partition] name = dsp-hpsram size = 1600 downloadfile = "rtos_dsp.fex" user_type = 0x8000 [partition] name = rtos-xip size = 5000 downloadfile = "rtos_xip_rv.fex" user_type = 0x8000 [partition] name = arm-b size = 2400 downloadfile = "etf.fex" user_type = 0x8000 [partition] name = config size = 32 downloadfile = "config.fex" user_type = 0x8000 [partition] name = UDISK downloadfile = "data_udisk.fex" user_type = 0x8100
-
R128 打包失败 merge_full_rtos_img_failed
请教各位大佬,R128S2 SDK 打包失败的问题
从tb客服那里获取的SDK
删除out和build文件夹后正常编译,但是打包失败了。
系统openSUSE Tumbleweed