Page 1 of 2

如何构建FASTBOOT镜像

Posted: 2024-09-06 14:45
by armer_song
如题,想做快启的固件,要如何修改配置文件。
尝试在.BoardConfig.mk中加下面配置,编译的镜像烧录后,板子好像变砖了。

# enable fastboot
export RK_ENABLE_FASTBOOT=y

# disable adb
export RK_ENABLE_ADBD=n

# disable gdb
export RK_ENABLE_GDB=n

# disable udev
export RK_ENABLE_EUDEV=y

# enable rndis
export RK_ENABLE_RNDIS=y

# declare overlay directory
export RK_POST_OVERLAY=overlay-battery-ipc

export RK_META_PARAM=" \
--rk_cam_mirror_flip=0 \
--rk_cam_fps=25 \
--rk_cam_hdr=0 \
--rk_led_value=20 \
--rk_night_mode=2 \

Re: 如何构建FASTBOOT镜像

Posted: 2024-09-07 2:05
by Crocodile
您好,快速启动会跳过uboot阶段,正确注册boot按键的步骤被跳过了,想要再次进入boot模式需要短接存储芯片的时钟脚和GND让芯片识别不到任何存储设备强制进入maskrom 模式,这种操作有烧坏芯片的风险请谨慎操作

Re: 如何构建FASTBOOT镜像

Posted: 2024-09-07 2:46
by armer_song
方便给出存储芯片的时钟脚的图?我手上没有点位图,所以不确定是哪个脚

Re: 如何构建FASTBOOT镜像

Posted: 2024-09-07 3:44
by Crocodile
请问使用的是什么型号的luckfox pico

Re: 如何构建FASTBOOT镜像

Posted: 2024-09-07 5:47
by armer_song
LuckFox Pico Pro
RV1106g2

Re: 如何构建FASTBOOT镜像

Posted: 2024-09-07 5:58
by armer_song
armer_song wrote: 2024-09-06 14:45 如题,想做快启的固件,要如何修改配置文件。
尝试在.BoardConfig.mk中加下面配置,编译的镜像烧录后,板子好像变砖了。

# enable fastboot
export RK_ENABLE_FASTBOOT=y

# disable adb
export RK_ENABLE_ADBD=n

# disable gdb
export RK_ENABLE_GDB=n

# disable udev
export RK_ENABLE_EUDEV=y

# enable rndis
export RK_ENABLE_RNDIS=y

# declare overlay directory
export RK_POST_OVERLAY=overlay-battery-ipc

export RK_META_PARAM=" \
--rk_cam_mirror_flip=0 \
--rk_cam_fps=25 \
--rk_cam_hdr=0 \
--rk_led_value=20 \
--rk_night_mode=2 \
快启打开后,编译会报错,无法生成rootfs。日志如下:

Code: Select all

[mkfs_ubi.sh:info] End build ubi images...

[build.sh:info] Running build_mkimg succeeded.
[build.sh:info] start to strip /media/data1/projects/embed/luckfox/luckfox-pico/output/out/rootfs_uclibc_rv1106
[build.sh:info] src=/media/data1/projects/embed/luckfox/luckfox-pico/output/out/rootfs_uclibc_rv1106
[build.sh:info] dst=/media/data1/projects/embed/luckfox/luckfox-pico/output/image/boot.img
[build.sh:info] fs_type=
[build.sh:info] part_name=boot
[build.sh:info] part_size=4MB
[build.sh:error] Not support fs type: 
[build.sh:info] Running build_mkimg succeeded.
[build.sh:info] start to strip /media/data1/projects/embed/luckfox/luckfox-pico/output/out/userdata
[build.sh:info] src=/media/data1/projects/embed/luckfox/luckfox-pico/output/out/userdata
[build.sh:info] dst=/media/data1/projects/embed/luckfox/luckfox-pico/output/image/userdata.img
[build.sh:info] fs_type=ubifs
[build.sh:info] part_name=userdata
[build.sh:info] part_size=10MB

[mkfs_ubi.sh:info] Start build ubi images...
/usr/bin/fakeroot
[mkfs_ubi.sh:info] ubifs_lebsize=0x20000
[mkfs_ubi.sh:info] ubifs_miniosize=2048
[mkfs_ubi.sh:info] ubifs_maxlebcnt=82
[mkfs_ubi.sh:info] ubifs compression support: lzo|zlib !!!
[mkfs_ubi.sh:warn]  is not support, default use lzo !!!

[mkfs_ubi.sh:info] ubifs_lebsize=0x40000
[mkfs_ubi.sh:info] ubifs_miniosize=2048
[mkfs_ubi.sh:info] ubifs_maxlebcnt=40
[mkfs_ubi.sh:info] ubifs compression support: lzo|zlib !!!
[mkfs_ubi.sh:warn]  is not support, default use lzo !!!

[mkfs_ubi.sh:info] ubifs_lebsize=0x40000
[mkfs_ubi.sh:info] ubifs_miniosize=4096
[mkfs_ubi.sh:info] ubifs_maxlebcnt=41
[mkfs_ubi.sh:info] ubifs compression support: lzo|zlib !!!
[mkfs_ubi.sh:warn]  is not support, default use lzo !!!

start build fakeroot image
mkfs.ubifs
	root:         /media/data1/projects/embed/luckfox/luckfox-pico/output/out/userdata/
	min_io_size:  2048
	leb_size:     126976
	max_leb_cnt:  82
	output:       /media/data1/projects/embed/luckfox/luckfox-pico/output/image/.ubi_cfg/userdata_2KB_128KB_10MB.ubifs
	jrn_size:     1142784
	reserved:     0
	compr:        lzo
	keyhash:      r5
	fanout:       8
	orph_lebs:    1
	space_fixup:  1
	super lebs:   1
	master lebs:  2
	log_lebs:     4
	lpt_lebs:     2
	orph_lebs:    1
	main_lebs:    3
	gc lebs:      1
	index lebs:   1
	leb_cnt:      13
	UUID:         FC330F05-5991-456E-AC73-C8560D4C784D
Success!
ubinize: LEB size:                  126976
ubinize: PEB size:                  131072
ubinize: min. I/O size:             2048
ubinize: sub-page size:             2048
ubinize: VID offset:                2048
ubinize: data offset:               4096
ubinize: UBI image sequence number: 1881568256
ubinize: loaded the ini-file "/media/data1/projects/embed/luckfox/luckfox-pico/output/image/.ubi_cfg/userdata_2KB_128KB_10MB_ubinize.cfg"
ubinize: count of sections: 1

ubinize: parsing section "ubifs"
ubinize: mode=ubi, keep parsing
ubinize: volume type: dynamic
ubinize: volume ID: 0
ubinize: volume size was not specified in section "ubifs", assume minimum to fit image "/media/data1/projects/embed/luckfox/luckfox-pico/output/image/.ubi_cfg/userdata_2KB_128KB_10MB.ubifs"1650688 bytes (1.6 MiB)
ubinize: volume name: userdata
ubinize: volume alignment: 1
ubinize: autoresize flags found
ubinize: adding volume 0
ubinize: writing volume 0
ubinize: image file: /media/data1/projects/embed/luckfox/luckfox-pico/output/image/.ubi_cfg/userdata_2KB_128KB_10MB.ubifs

ubinize: writing layout volume
ubinize: done
mkfs.ubifs
	root:         /media/data1/projects/embed/luckfox/luckfox-pico/output/out/userdata/
	min_io_size:  2048
	leb_size:     258048
	max_leb_cnt:  40
	output:       /media/data1/projects/embed/luckfox/luckfox-pico/output/image/.ubi_cfg/userdata_2KB_256KB_10MB.ubifs
	jrn_size:     1032192
	reserved:     0
	compr:        lzo
	keyhash:      r5
	fanout:       8
	orph_lebs:    1
	space_fixup:  1
	super lebs:   1
	master lebs:  2
	log_lebs:     4
	lpt_lebs:     2
	orph_lebs:    1
	main_lebs:    3
	gc lebs:      1
	index lebs:   1
	leb_cnt:      13
	UUID:         1B09C3A0-43B9-48D9-9ED1-712885355356
Success!
ubinize: LEB size:                  258048
ubinize: PEB size:                  262144
ubinize: min. I/O size:             2048
ubinize: sub-page size:             2048
ubinize: VID offset:                2048
ubinize: data offset:               4096
ubinize: UBI image sequence number: 624623720
ubinize: loaded the ini-file "/media/data1/projects/embed/luckfox/luckfox-pico/output/image/.ubi_cfg/userdata_2KB_256KB_10MB_ubinize.cfg"
ubinize: count of sections: 1

ubinize: parsing section "ubifs"
ubinize: mode=ubi, keep parsing
ubinize: volume type: dynamic
ubinize: volume ID: 0
ubinize: volume size was not specified in section "ubifs", assume minimum to fit image "/media/data1/projects/embed/luckfox/luckfox-pico/output/image/.ubi_cfg/userdata_2KB_256KB_10MB.ubifs"3354624 bytes (3.2 MiB)
ubinize: volume name: userdata
ubinize: volume alignment: 1
ubinize: autoresize flags found
ubinize: adding volume 0
ubinize: writing volume 0
ubinize: image file: /media/data1/projects/embed/luckfox/luckfox-pico/output/image/.ubi_cfg/userdata_2KB_256KB_10MB.ubifs

ubinize: writing layout volume
ubinize: done
mkfs.ubifs
	root:         /media/data1/projects/embed/luckfox/luckfox-pico/output/out/userdata/
	min_io_size:  4096
	leb_size:     253952
	max_leb_cnt:  41
	output:       /media/data1/projects/embed/luckfox/luckfox-pico/output/image/.ubi_cfg/userdata_4KB_256KB_10MB.ubifs
	jrn_size:     1015808
	reserved:     0
	compr:        lzo
	keyhash:      r5
	fanout:       8
	orph_lebs:    1
	space_fixup:  1
	super lebs:   1
	master lebs:  2
	log_lebs:     4
	lpt_lebs:     2
	orph_lebs:    1
	main_lebs:    3
	gc lebs:      1
	index lebs:   1
	leb_cnt:      13
	UUID:         C0031076-6794-4A53-A364-F8A8C19BD628
Success!
ubinize: LEB size:                  253952
ubinize: PEB size:                  262144
ubinize: min. I/O size:             4096
ubinize: sub-page size:             4096
ubinize: VID offset:                4096
ubinize: data offset:               8192
ubinize: UBI image sequence number: 410637296
ubinize: loaded the ini-file "/media/data1/projects/embed/luckfox/luckfox-pico/output/image/.ubi_cfg/userdata_4KB_256KB_10MB_ubinize.cfg"
ubinize: count of sections: 1

ubinize: parsing section "ubifs"
ubinize: mode=ubi, keep parsing
ubinize: volume type: dynamic
ubinize: volume ID: 0
ubinize: volume size was not specified in section "ubifs", assume minimum to fit image "/media/data1/projects/embed/luckfox/luckfox-pico/output/image/.ubi_cfg/userdata_4KB_256KB_10MB.ubifs"3301376 bytes (3.1 MiB)
ubinize: volume name: userdata
ubinize: volume alignment: 1
ubinize: autoresize flags found
ubinize: adding volume 0
ubinize: writing volume 0
ubinize: image file: /media/data1/projects/embed/luckfox/luckfox-pico/output/image/.ubi_cfg/userdata_4KB_256KB_10MB.ubifs

ubinize: writing layout volume
ubinize: done
[mkfs_ubi.sh:info] End build ubi images...

[build.sh:info] Running build_mkimg succeeded.
[build.sh:info] Running build_tftp_sd_update succeeded.
[mk-update_pack.sh:info] image input dir: /media/data1/projects/embed/luckfox/luckfox-pico/output/image
[mk-update_pack.sh:info] partition file name: env.img
[mk-update_pack.sh:info] start to package update.img...
[mk-update_pack.sh:error] Not found image file: /media/data1/projects/embed/luckfox/luckfox-pico/output/image/boot
[mk-update_pack.sh:info] partitions:
env	env.img
idblock	idblock.img
uboot	uboot.img
oem	oem.img
userdata	userdata.img
rootfs	rootfs.img
package-file	package-file
bootloader	download.bin

TOOL_PATH=/media/data1/projects/embed/luckfox/luckfox-pico/tools/linux/Linux_Pack_Firmware
Android Firmware Package Tool v2.2
------ PACKAGE ------
Add file: /media/data1/projects/embed/luckfox/luckfox-pico/output/image/env.img
env,Add file: /media/data1/projects/embed/luckfox/luckfox-pico/output/image/env.img done,offset=0x800,size=0x40000,userspace=0x80,flash_address=0x00000000
Add file: /media/data1/projects/embed/luckfox/luckfox-pico/output/image/idblock.img
idblock,Add file: /media/data1/projects/embed/luckfox/luckfox-pico/output/image/idblock.img done,offset=0x40800,size=0x3e000,userspace=0x7c,flash_address=0x00000200
Add file: /media/data1/projects/embed/luckfox/luckfox-pico/output/image/uboot.img
uboot,Add file: /media/data1/projects/embed/luckfox/luckfox-pico/output/image/uboot.img done,offset=0x7e800,size=0x40000,userspace=0x80,flash_address=0x00000400
Add file: /media/data1/projects/embed/luckfox/luckfox-pico/output/image/oem.img
oem,Add file: /media/data1/projects/embed/luckfox/luckfox-pico/output/image/oem.img done,offset=0xbe800,size=0x1400000,userspace=0x2800,flash_address=0x00002800
Add file: /media/data1/projects/embed/luckfox/luckfox-pico/output/image/userdata.img
userdata,Add file: /media/data1/projects/embed/luckfox/luckfox-pico/output/image/userdata.img done,offset=0x14be800,size=0x1e0000,userspace=0x3c0,flash_address=0x00011800
Add file: /media/data1/projects/embed/luckfox/luckfox-pico/output/image/rootfs.img
rootfs,Add file: /media/data1/projects/embed/luckfox/luckfox-pico/output/image/rootfs.img done,offset=0x169e800,size=0x40c0000,userspace=0x8180,flash_address=0x00016800
Add file: /media/data1/projects/embed/luckfox/luckfox-pico/output/image/package-file
package-file,Add file: /media/data1/projects/embed/luckfox/luckfox-pico/output/image/package-file done,offset=0x575e800,size=0x97,userspace=0x1
Add file: /media/data1/projects/embed/luckfox/luckfox-pico/output/image/download.bin
bootloader,Add file: /media/data1/projects/embed/luckfox/luckfox-pico/output/image/download.bin done,offset=0x575f000,size=0x501f9,userspace=0xa1
Add CRC...
Make firmware OK!
------ OK ------
********rkImageMaker ver 2.2********
Generating new image, please wait...
Writing head info...
Writing boot file...
Writing firmware...
Generating MD5 data...
MD5 data generated successfully!
New image generated successfully!
[mk-update_pack.sh:info] Making -RK1106 update.img OK.
[build.sh:info] Running build_updateimg succeeded.
[build.sh:info] MEDIUM SPI_NAND relink Image
mv: cannot stat '/media/data1/projects/embed/luckfox/luckfox-pico/output/image/rootfs.img': No such file or directory
[build.sh:error] Running build_firmware failed!
[build.sh:error] exit code 1 from line 2112:
[build.sh:info]     mv "$target" "$RK_PROJECT_OUTPUT_IMAGE/$filename"

Re: 如何构建FASTBOOT镜像

Posted: 2024-09-07 5:58
by Crocodile
这是 Luckfox Pico Pro SPI Nand 时钟线的位置(芯片第6脚),短接地后再上电强制进入Maskrom模式,请确定好操作无误再上电防止损坏元器件

Re: 如何构建FASTBOOT镜像

Posted: 2024-09-07 6:18
by Crocodile
快速启动是 Rockchip 官方 SDK 中提供的功能,我们的SDK是基于官方 SDK 客制化的,经过验证的功能会在 wiki 中说明,没有验证的功能我们仅给予开发建议不做技术支持,相应的开发和验证都需要您自行完成。
fastboot功能在spl阶段就会跳过对uboot的加载直接加载内核,在兼容 SD 卡和动态设备树加载上我们在uboot上做了修改,如果使用fastboot功能就完全脱离了SDK预期实现的功能;同时fastboot模式下想要正常启动摄像头还需要RV1106 中的MCU对摄像头进行初始化,对于MCU的控制也是一个不简单的开发流程;fastboot所进入的根文件系统是ramdisk(squashfs文件系统)只读系统,大部分都不能二次编辑,也就是系统烧录前就要确定好功能已经调试好;如果您有更好的替代方案,不建议使用快启功能。

Re: 如何构建FASTBOOT镜像

Posted: 2024-09-07 9:29
by armer_song
Crocodile wrote: 2024-09-07 5:58 这是 Luckfox Pico Pro SPI Nand 时钟线的位置(芯片第6脚),短接地后再上电强制进入Maskrom模式,请确定好操作无误再上电防止损坏元器件
好的,短接需要串电阻?

Re: 如何构建FASTBOOT镜像

Posted: 2024-09-07 9:30
by armer_song
Crocodile wrote: 2024-09-07 6:18 快速启动是 Rockchip 官方 SDK 中提供的功能,我们的SDK是基于官方 SDK 客制化的,经过验证的功能会在 wiki 中说明,没有验证的功能我们仅给予开发建议不做技术支持,相应的开发和验证都需要您自行完成。
fastboot功能在spl阶段就会跳过对uboot的加载直接加载内核,在兼容 SD 卡和动态设备树加载上我们在uboot上做了修改,如果使用fastboot功能就完全脱离了SDK预期实现的功能;同时fastboot模式下想要正常启动摄像头还需要RV1106 中的MCU对摄像头进行初始化,对于MCU的控制也是一个不简单的开发流程;fastboot所进入的根文件系统是ramdisk(squashfs文件系统)只读系统,大部分都不能二次编辑,也就是系统烧录前就要确定好功能已经调试好;如果您有更好的替代方案,不建议使用快启功能。
感谢支持,我先试试