179 lines
4.1 KiB
Bash
Executable File
179 lines
4.1 KiB
Bash
Executable File
#!/bin/bash
|
|
# Usage: ./gen-part-config.sh <max extra partition num> <default extra partition num>
|
|
|
|
RK_EXTRA_PARTITION_MAX_NUM=${1:-5}
|
|
RK_EXTRA_PARTITION_NUM=${2:-2}
|
|
|
|
cat <<EOF
|
|
# Auto generated by $0${@:+ $@}
|
|
|
|
comment "Extra partitions depends on rootfs system"
|
|
depends on !RK_ROOTFS
|
|
|
|
menu "Extra partitions (oem, userdata, etc.)"
|
|
depends on RK_ROOTFS
|
|
|
|
if RK_UBI && RK_EXTRA_PARTITION_NUM > 0
|
|
|
|
config RK_UBI_PAGE_SIZE
|
|
hex "ubi image page size (B)"
|
|
default "0x800"
|
|
|
|
config RK_UBI_BLOCK_SIZE
|
|
hex "ubi image block size (B)"
|
|
default "0x20000"
|
|
|
|
config RK_FLASH_SIZE
|
|
int "size of flash storage (M)"
|
|
default "1024"
|
|
|
|
endif # ubi
|
|
|
|
config RK_EXTRA_PARTITION_NUM
|
|
int "number of extra partitions"
|
|
range 0 $RK_EXTRA_PARTITION_MAX_NUM
|
|
default $RK_EXTRA_PARTITION_NUM
|
|
EOF
|
|
|
|
unset RK_EXTRA_PARTITIONS
|
|
for i in $(seq 1 $RK_EXTRA_PARTITION_MAX_NUM); do
|
|
cat <<EOF
|
|
|
|
menu "Extra partition $i"
|
|
depends on RK_EXTRA_PARTITION_NUM > $(( $i - 1 ))
|
|
|
|
config RK_EXTRA_PARTITION_${i}_NAME
|
|
string "partition name"
|
|
EOF
|
|
case $i in
|
|
1)
|
|
echo -e "\tdefault \"userdata\" if RK_EXTRA_PARTITION_NUM = 1"
|
|
echo -e "\tdefault \"oem\"" ;;
|
|
2) echo -e "\tdefault \"userdata\"" ;;
|
|
esac
|
|
cat <<EOF
|
|
|
|
config RK_EXTRA_PARTITION_${i}_DEV
|
|
string "device identifier"
|
|
depends on !RK_EXTRA_PARTITION_${i}_BUILTIN
|
|
default "auto"
|
|
help
|
|
Device identifier, like <device node> or PARTLABEL=<partition name>
|
|
or <partition name> or "auto".
|
|
|
|
config RK_EXTRA_PARTITION_${i}_MOUNTPOINT
|
|
string "mountpoint"
|
|
default "auto"
|
|
help
|
|
Mountpoint, set "auto" for "/<name>".
|
|
|
|
if !RK_EXTRA_PARTITION_${i}_BUILTIN
|
|
|
|
config RK_EXTRA_PARTITION_${i}_FSTYPE
|
|
string
|
|
default "ubifs" if RK_EXTRA_PARTITION_${i}_UBIFS
|
|
default "ext4" if RK_EXTRA_PARTITION_${i}_EXT4
|
|
default "ext2" if RK_EXTRA_PARTITION_${i}_EXT2
|
|
default "msdos" if RK_EXTRA_PARTITION_${i}_MSDOS
|
|
default "ntfs" if RK_EXTRA_PARTITION_${i}_NTFS
|
|
default "btrfs" if RK_EXTRA_PARTITION_${i}_BTRFS
|
|
default "f2fs" if RK_EXTRA_PARTITION_${i}_F2FS
|
|
default "erofs" if RK_EXTRA_PARTITION_${i}_EROFS
|
|
default "squashfs" if RK_EXTRA_PARTITION_${i}_SQUASHFS
|
|
default "jffs2" if RK_EXTRA_PARTITION_${i}_JFFS2
|
|
|
|
choice
|
|
prompt "filesystem type"
|
|
|
|
config RK_EXTRA_PARTITION_${i}_UBIFS
|
|
bool "ubifs"
|
|
depends on RK_UBI
|
|
|
|
config RK_EXTRA_PARTITION_${i}_EXT4
|
|
bool "ext4"
|
|
|
|
config RK_EXTRA_PARTITION_${i}_EXT2
|
|
bool "ext2"
|
|
|
|
config RK_EXTRA_PARTITION_${i}_MSDOS
|
|
bool "msdos(fat32)"
|
|
|
|
config RK_EXTRA_PARTITION_${i}_NTFS
|
|
bool "ntfs"
|
|
|
|
config RK_EXTRA_PARTITION_${i}_BTRFS
|
|
bool "btrfs"
|
|
|
|
config RK_EXTRA_PARTITION_${i}_F2FS
|
|
bool "f2fs"
|
|
|
|
config RK_EXTRA_PARTITION_${i}_EROFS
|
|
bool "erofs"
|
|
|
|
config RK_EXTRA_PARTITION_${i}_SQUASHFS
|
|
bool "squashfs"
|
|
|
|
config RK_EXTRA_PARTITION_${i}_JFFS2
|
|
bool "jffs2"
|
|
|
|
endchoice # fstype
|
|
|
|
config RK_EXTRA_PARTITION_${i}_OPTIONS
|
|
string "mount options"
|
|
default "defaults"
|
|
|
|
endif # !builtin
|
|
|
|
config RK_EXTRA_PARTITION_${i}_SRC
|
|
string "source dirs"
|
|
EOF
|
|
|
|
if [ $i -lt 3 ]; then
|
|
cat << EOF
|
|
default "empty" if RK_CHIP_FAMILY = "rk3308"
|
|
default "normal"
|
|
help
|
|
Source dirs, each of them can be either of absolute path(/<dir>) or
|
|
relative to <RK_CHIP_DIR>|<RK_EXTRA_PARTS_DIR> or relative to
|
|
(<RK_CHIP_DIR>|<RK_EXTRA_PARTS_DIR>)/<partition name>.
|
|
EOF
|
|
fi
|
|
|
|
cat <<EOF
|
|
|
|
config RK_EXTRA_PARTITION_${i}_SIZE
|
|
string "image size (size(M|K)|auto(0)|max)"
|
|
default "auto"
|
|
help
|
|
Size of image.
|
|
Set "auto" to auto detect.
|
|
Set "max" to use maxium partition size in parameter file.
|
|
|
|
config RK_EXTRA_PARTITION_${i}_BUILTIN
|
|
bool "merged into rootfs"
|
|
help
|
|
Virtual parition that merged into rootfs.
|
|
|
|
config RK_EXTRA_PARTITION_${i}_FEATURES
|
|
string
|
|
default "\${RK_EXTRA_PARTITION_${i}_BUILTIN:+builtin}"
|
|
|
|
config RK_EXTRA_PARTITION_${i}_STR
|
|
string
|
|
default "\${RK_EXTRA_PARTITION_${i}_DEV:-auto}:\$RK_EXTRA_PARTITION_${i}_NAME:\$RK_EXTRA_PARTITION_${i}_MOUNTPOINT:\$RK_EXTRA_PARTITION_${i}_FSTYPE:\$RK_EXTRA_PARTITION_${i}_OPTIONS:\${RK_EXTRA_PARTITION_${i}_SRC// /,}:\$RK_EXTRA_PARTITION_${i}_SIZE:\$RK_EXTRA_PARTITION_${i}_FEATURES"
|
|
|
|
endmenu # Extra partition $i
|
|
EOF
|
|
|
|
RK_EXTRA_PARTITIONS="${RK_EXTRA_PARTITIONS:+${RK_EXTRA_PARTITIONS}@}\$RK_EXTRA_PARTITION_${i}_STR"
|
|
done
|
|
|
|
cat << EOF
|
|
|
|
config RK_EXTRA_PARTITION_STR
|
|
string
|
|
default "$RK_EXTRA_PARTITIONS"
|
|
|
|
endmenu # Extra partitions
|
|
EOF
|