1#!/bin/bash 2# Usage: ./extra-part-config.sh <max extra partition num> <default extra partition num> 3 4RK_EXTRA_PARTITION_MAX_NUM=${1:-5} 5RK_EXTRA_PARTITION_NUM=${2:-2} 6 7cat <<EOF 8# Auto generated by $0${@:+ $@} 9 10comment "Extra partitions depends on rootfs system" 11 depends on RK_ROOTFS_SYSTEM = "" 12 13if RK_ROOTFS_SYSTEM != "" 14 15menu "Extra partitions" 16 17EOF 18 19for i in $(seq 1 $RK_EXTRA_PARTITION_MAX_NUM); do 20 case $i in 21 1) 22 echo "if RK_EXTRA_PARTITION_${i}_FSTYPE = \"ubi\" || \\" 23 ;; 24 $RK_EXTRA_PARTITION_MAX_NUM) 25 echo " RK_EXTRA_PARTITION_${i}_FSTYPE = \"ubi\"" 26 ;; 27 *) 28 echo " RK_EXTRA_PARTITION_${i}_FSTYPE = \"ubi\" || \\" 29 ;; 30 esac 31done 32 33cat <<EOF 34 35config RK_UBI_PAGE_SIZE 36 hex "ubi image page size (B)" 37 default "0x800" 38 39config RK_UBI_BLOCK_SIZE 40 hex "ubi image block size (B)" 41 default "0x20000" 42 43endif 44 45config RK_EXTRA_PARTITION_NUM 46 int "number of extra partitions" 47 range 0 $RK_EXTRA_PARTITION_MAX_NUM 48 default $RK_EXTRA_PARTITION_NUM 49EOF 50 51unset RK_EXTRA_PARTITIONS 52for i in $(seq 1 $RK_EXTRA_PARTITION_MAX_NUM); do 53 cat <<EOF 54 55if RK_EXTRA_PARTITION_NUM > $(( $i - 1 )) 56 57menu "Extra partition $i" 58 59config RK_EXTRA_PARTITION_${i}_DEV 60 string "device identifier" 61EOF 62 case $i in 63 1) echo -e "\tdefault \"oem\"" ;; 64 2) echo -e "\tdefault \"userdata\"" ;; 65 esac 66 67 cat <<EOF 68 help 69 Device identifier, like oem or /dev/mmcblk0p7 or PARTLABEL=oem. 70 71config RK_EXTRA_PARTITION_${i}_NAME 72 string "partition name" 73 default "<dev>" 74 help 75 Partition name, set "<dev>" to detect from device identifier. 76 77config RK_EXTRA_PARTITION_${i}_NAME_STR 78 string 79 default "\${RK_EXTRA_PARTITION_${i}_DEV##*[/=]}" \\ 80 if RK_EXTRA_PARTITION_${i}_NAME = "<dev>" 81 default RK_EXTRA_PARTITION_${i}_NAME 82 83config RK_EXTRA_PARTITION_${i}_MOUNTPOINT 84 string "mountpoint" 85 default "/<name>" 86 87config RK_EXTRA_PARTITION_${i}_MOUNTPOINT_STR 88 string 89 default "/\$RK_EXTRA_PARTITION_${i}_NAME_STR" \\ 90 if RK_EXTRA_PARTITION_${i}_MOUNTPOINT = "/<name>" 91 default RK_EXTRA_PARTITION_${i}_MOUNTPOINT 92 93config RK_EXTRA_PARTITION_${i}_FSTYPE 94 string "filesystem type" 95 default "ext4" 96 97config RK_EXTRA_PARTITION_${i}_OPTIONS 98 string "mount options" 99 default "defaults" 100 101config RK_EXTRA_PARTITION_${i}_SRC 102 string "source dirs' suffix" 103EOF 104 105 if [ $i -lt 3 ]; then 106 cat << EOF 107 default "empty" if RK_CHIP_FAMILY = "rk3308" 108 default "normal" 109 help 110 Suffix of source dirs under <RK_IMAGE_DIR>/. 111EOF 112 fi 113 114 cat <<EOF 115 116config RK_EXTRA_PARTITION_${i}_SIZE 117 string "image size (size(M|K)|auto(0)|max)" 118 default "auto" 119 help 120 Size of image. 121 Set "auto" to auto detect. 122 Set "max" to use maxium partition size in parameter file. 123 124config RK_EXTRA_PARTITION_${i}_BUILTIN 125 bool "merged into rootfs" 126 help 127 Virtual parition that merged into rootfs. 128 129config RK_EXTRA_PARTITION_${i}_FIXED 130 bool "skip resizing" 131 depends on !RK_EXTRA_PARTITION_${i}_BUILTIN 132 default y if RK_EXTRA_PARTITION_${i}_FSTYPE = "ubi" 133 134config RK_EXTRA_PARTITION_${i}_FEATURES 135 string 136 default "\${RK_EXTRA_PARTITION_${i}_FIXED:+fixed,}\${RK_EXTRA_PARTITION_${i}_BUILTIN:+builtin}" 137 138config RK_EXTRA_PARTITION_${i}_STR 139 string 140 depends on RK_EXTRA_PARTITION_${i}_DEV != "" 141 default "\$RK_EXTRA_PARTITION_${i}_DEV:\$RK_EXTRA_PARTITION_${i}_NAME_STR:\$RK_EXTRA_PARTITION_${i}_MOUNTPOINT_STR:\$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" 142 143endmenu # Extra partition $i 144 145endif 146EOF 147 148 RK_EXTRA_PARTITIONS="${RK_EXTRA_PARTITIONS:+${RK_EXTRA_PARTITIONS}@}\$RK_EXTRA_PARTITION_${i}_STR" 149done 150 151cat << EOF 152 153config RK_EXTRA_PARTITION_STR 154 string 155 default "$RK_EXTRA_PARTITIONS" 156 157endmenu # Extra partitions 158 159endif 160EOF 161