mirror of
https://github.com/LibreELEC/LibreELEC.tv.git
synced 2025-07-28 05:06:43 +00:00
Allow for a custom system partition start sector + custom system size
This commit is contained in:
parent
7e0b1b6b8b
commit
b42b63983b
@ -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": ""
|
||||||
|
@ -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
|
||||||
|
@ -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=""
|
||||||
|
@ -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
|
||||||
}
|
}
|
||||||
|
@ -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"
|
||||||
|
|
||||||
|
@ -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
|
||||||
|
@ -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 ))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user