Allow for a custom system partition start sector + custom system size

This commit is contained in:
MilhouseVH 2016-03-24 10:15:24 +00:00
parent 7e0b1b6b8b
commit b42b63983b
7 changed files with 34 additions and 11 deletions

View File

@ -3,7 +3,7 @@
{ {
"label": "@DISTRONAME@_@PROJECT@_System", "label": "@DISTRONAME@_@PROJECT@_System",
"filesystem_type": "FAT", "filesystem_type": "FAT",
"partition_size_nominal": 512, "partition_size_nominal": @SYSTEM_SIZE@,
"want_maximised": false, "want_maximised": false,
"uncompressed_tarball_size": 120, "uncompressed_tarball_size": 120,
"mkfs_options": "" "mkfs_options": ""

View File

@ -204,3 +204,8 @@
# set the addon dirs # set the addon dirs
ADDON_PATH="$ADDON_VERSION/$PROJECT/$TARGET_ARCH" ADDON_PATH="$ADDON_VERSION/$PROJECT/$TARGET_ARCH"
ADDON_URL="$ADDON_SERVER_URL/$ADDON_PATH" ADDON_URL="$ADDON_SERVER_URL/$ADDON_PATH"
# Default size of system partition, in MB, eg. 512
SYSTEM_SIZE=512
# Default system partition offset, in sectors, eg. 2048
SYSTEM_PART_START=2048

View File

@ -19,8 +19,11 @@
DISKLABEL_SYSTEM="System" DISKLABEL_SYSTEM="System"
DISKLABEL_STORAGE="Storage" DISKLABEL_STORAGE="Storage"
# Defaultsize of system partition (Cylinder: 16=132MB, 31=255MB, 66=517MiB) # Default size of system partition, in MB, eg. 512
PARTSIZE_SYSTEM="66" PARTSIZE_SYSTEM="@SYSTEM_SIZE@"
# Default starting offset for system partition, in sectors (1 sector = 512B), eg. 2048
PARTSIZE_SYSTEM_OFFSET="@SYSTEM_PART_START@"
# additional parameters to extlinux # additional parameters to extlinux
EXTLINUX_PARAMETERS="" EXTLINUX_PARAMETERS=""

View File

@ -50,6 +50,9 @@ post_install() {
else else
cp $PKG_DIR/config/installer.conf $INSTALL/etc cp $PKG_DIR/config/installer.conf $INSTALL/etc
fi fi
sed -e "s/@SYSTEM_SIZE@/$SYSTEM_SIZE/g" \
-e "s/@SYSTEM_PART_START@/$SYSTEM_PART_START/g" \
-i $INSTALL/etc/installer.conf
enable_service installer.service enable_service installer.service
} }

View File

@ -253,15 +253,20 @@ do_install_quick() {
cat /usr/share/syslinux/mbr.bin > $INSTALL_DEVICE cat /usr/share/syslinux/mbr.bin > $INSTALL_DEVICE
fi fi
partsize_system_start=$PARTSIZE_SYSTEM_OFFSET
partsize_system_end=$(((PARTSIZE_SYSTEM * 1024 * 1024 / 512) + partsize_system_start))
partsize_storage_start=$((partsize_system_end + 2048))
partsize_storage_end=-1024
msg_progress_install "10" "creating partition on $INSTALL_DEVICE" msg_progress_install "10" "creating partition on $INSTALL_DEVICE"
if [ "$UEFI" = "1" ]; then if [ "$UEFI" = "1" ]; then
parted -s $INSTALL_DEVICE unit cyl mkpart primary fat32 -- 0 $PARTSIZE_SYSTEM >> $LOGFILE 2>&1 parted -s $INSTALL_DEVICE unit s mkpart primary fat32 -- $partsize_system_start $partsize_system_end >> $LOGFILE 2>&1
else else
parted -s $INSTALL_DEVICE unit cyl mkpart primary ext2 -- 0 $PARTSIZE_SYSTEM >> $LOGFILE 2>&1 parted -s $INSTALL_DEVICE unit s mkpart primary ext2 -- $partsize_system_start $partsize_system_end >> $LOGFILE 2>&1
fi fi
msg_progress_install "13" "creating partition on $INSTALL_DEVICE" msg_progress_install "13" "creating partition on $INSTALL_DEVICE"
parted -s $INSTALL_DEVICE unit cyl mkpart primary ext2 -- $PARTSIZE_SYSTEM -2 >> $LOGFILE 2>&1 parted -s $INSTALL_DEVICE unit s mkpart primary ext2 -- $partsize_storage_start $partsize_storage_end >> $LOGFILE 2>&1
msg_progress_install "16" "setup bootflag on partition 1 of $INSTALL_DEVICE" msg_progress_install "16" "setup bootflag on partition 1 of $INSTALL_DEVICE"
parted -s $INSTALL_DEVICE set 1 boot on >> $LOGFILE 2>&1 parted -s $INSTALL_DEVICE set 1 boot on >> $LOGFILE 2>&1
@ -629,7 +634,7 @@ do_poweroff() {
} }
# setup needed variables # setup needed variables
INSTALLER_VERSION="0.2.7" INSTALLER_VERSION="0.2.8"
OS_VERSION=$(lsb_release) OS_VERSION=$(lsb_release)
BACKTITLE="LibreELEC Installer $INSTALLER_VERSION - $OS_VERSION" BACKTITLE="LibreELEC Installer $INSTALLER_VERSION - $OS_VERSION"

View File

@ -357,6 +357,8 @@ fi
UUID_STORAGE="$(uuidgen)" \ UUID_STORAGE="$(uuidgen)" \
UBOOT_SYSTEM="$UBOOT_SYSTEM" \ UBOOT_SYSTEM="$UBOOT_SYSTEM" \
EXTRA_CMDLINE="$EXTRA_CMDLINE" \ EXTRA_CMDLINE="$EXTRA_CMDLINE" \
SYSTEM_SIZE="$SYSTEM_SIZE" \
SYSTEM_PART_START="$SYSTEM_PART_START" \
$SCRIPTS/mkimage $SCRIPTS/mkimage
fi fi
@ -453,6 +455,7 @@ fi
sed -e "s%@DISTRONAME@%$DISTRONAME%g" \ sed -e "s%@DISTRONAME@%$DISTRONAME%g" \
-e "s%@PROJECT@%$PROJECT%g" \ -e "s%@PROJECT@%$PROJECT%g" \
-e "s%@SYSTEM_SIZE@%$SYSTEM_SIZE%g" \
-i $RELEASE_DIR/${DISTRONAME}_${PROJECT}/partitions.json -i $RELEASE_DIR/${DISTRONAME}_${PROJECT}/partitions.json
# create System dir # create System dir

View File

@ -27,7 +27,11 @@
OE_TMP=$(mktemp -d) OE_TMP=$(mktemp -d)
SAVE_ERROR="$OE_TMP/save_error" SAVE_ERROR="$OE_TMP/save_error"
SYSTEM_SIZE=512 if [ -z "$SYSTEM_SIZE" -o -z "$SYSTEM_PART_START" ]; then
echo "mkimage: SYSTEM_SIZE and SYSTEM_PART_START must be configured!"
exit 1
fi
STORAGE_SIZE=32 # STORAGE_SIZE must be >= 32 ! STORAGE_SIZE=32 # STORAGE_SIZE must be >= 32 !
DISK_SIZE=$(( $SYSTEM_SIZE + $STORAGE_SIZE + 4 )) DISK_SIZE=$(( $SYSTEM_SIZE + $STORAGE_SIZE + 4 ))
@ -74,8 +78,8 @@ trap cleanup SIGINT
# create part1 # create part1
echo "image: creating part1..." echo "image: creating part1..."
SYSTEM_PART_END=$(( $SYSTEM_SIZE * 1024 * 1024 / 512 + 2048 )) SYSTEM_PART_END=$(( ($SYSTEM_SIZE * 1024 * 1024 / 512) + $SYSTEM_PART_START ))
parted -s "$DISK" -a min unit s mkpart primary fat32 2048 $SYSTEM_PART_END parted -s "$DISK" -a min unit s mkpart primary fat32 $SYSTEM_PART_START $SYSTEM_PART_END
if [ "$BOOTLOADER" = "syslinux" ]; then if [ "$BOOTLOADER" = "syslinux" ]; then
parted -s "$DISK" set 1 legacy_boot on parted -s "$DISK" set 1 legacy_boot on
else else
@ -100,7 +104,7 @@ fi
# create filesystem on part1 # create filesystem on part1
echo "image: creating filesystem on part1..." echo "image: creating filesystem on part1..."
OFFSET=$(( 2048 * 512 )) OFFSET=$(( $SYSTEM_PART_START * 512 ))
HEADS=4 HEADS=4
TRACKS=32 TRACKS=32
SECTORS=$(( $SYSTEM_SIZE * 1024 * 1024 / 512 / $HEADS / $TRACKS )) SECTORS=$(( $SYSTEM_SIZE * 1024 * 1024 / 512 / $HEADS / $TRACKS ))