mirror of
https://github.com/home-assistant/operating-system.git
synced 2025-07-27 06:56:29 +00:00
Travis (#269)
* Update build-all.sh * Delete ovf-create.sh * Update patches.sh * Update hdd-image.sh * Create .travis.yml * Update hdd-image.sh * Update hdd-image.sh * Update hdd-image.sh * Update hdd-image.sh * Update ota.sh * Update post-build.sh * Update post-image.sh * Update rauc.sh * Update rootfs-layer.sh * Update hassos-cli * Update hassos-supervisor * Update hassos-config * Update hassos-apparmor * Update hassos-expand * Update hassos-persists-journald * Update hassos-rate * Update hassos-hook.sh * Update hassos-hook.sh * Rename uboot-boot.sh to uboot-boot.ush * Rename uboot-boot.sh to uboot-boot.ush * Update hassos-hook.sh * Rename uboot-boot.sh to uboot-boot.ush * Rename uboot-boot.sh to uboot-boot.ush * Update hassos-hook.sh * Update odroid_c2_defconfig * Update rpi0_w_defconfig * Update rpi2_defconfig * Update rpi3_64_defconfig * Update rpi3_defconfig * Update rpi_defconfig * Update tinker_defconfig * Update enter.sh * Update .travis.yml
This commit is contained in:
parent
ae0a2fe264
commit
60c9013535
25
.travis.yml
Normal file
25
.travis.yml
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
language: bash
|
||||||
|
|
||||||
|
sudo: required
|
||||||
|
service: docker
|
||||||
|
|
||||||
|
addons:
|
||||||
|
apt:
|
||||||
|
packages:
|
||||||
|
- docker-ce
|
||||||
|
|
||||||
|
before_install:
|
||||||
|
- shopt -s globstar
|
||||||
|
- docker pull koalaman/shellcheck
|
||||||
|
|
||||||
|
script:
|
||||||
|
- docker run -v $(pwd):/mnt koalaman/shellcheck scripts/*.sh
|
||||||
|
- docker run -v $(pwd):/mnt koalaman/shellcheck buildroot-external/scripts/*.sh
|
||||||
|
- docker run -v $(pwd):/mnt koalaman/shellcheck buildroot-external/scripts/*.sh
|
||||||
|
- docker run -v $(pwd):/mnt koalaman/shellcheck buildroot-external/board/**/*.sh
|
||||||
|
- docker run -v $(pwd):/mnt koalaman/shellcheck buildroot-external/rootfs-overlay/usr/sbin/*
|
||||||
|
- docker run -v $(pwd):/mnt koalaman/shellcheck buildroot-external/rootfs-overlay/usr/libexec/*
|
||||||
|
- docker run -v $(pwd):/mnt koalaman/shellcheck buildroot-external/rootfs-overlay/usr/lib/rauc/*
|
||||||
|
|
||||||
|
matrix:
|
||||||
|
fast_finish: true
|
@ -1,28 +1,28 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
# shellcheck disable=SC2155
|
||||||
|
|
||||||
function hassos_pre_image() {
|
function hassos_pre_image() {
|
||||||
local BOOT_DATA="$(path_boot_dir)"
|
local BOOT_DATA="$(path_boot_dir)"
|
||||||
local SPL_IMG="$(path_spl_img)"
|
local SPL_IMG="$(path_spl_img)"
|
||||||
|
|
||||||
cp -t ${BOOT_DATA} \
|
cp -t "${BOOT_DATA}" \
|
||||||
${BINARIES_DIR}/boot.scr \
|
"${BINARIES_DIR}/boot.scr" \
|
||||||
${BINARIES_DIR}/rk3288-tinker.dtb
|
"${BINARIES_DIR}/rk3288-tinker.dtb"
|
||||||
|
|
||||||
echo "console=tty1" > ${BOOT_DATA}/cmdline.txt
|
echo "console=tty1" > "${BOOT_DATA}/cmdline.txt"
|
||||||
|
|
||||||
# Create boot binary
|
# Create boot binary
|
||||||
rm -f ${BINARIES_DIR}/u-boot-spl-dtb.img
|
rm -f "${BINARIES_DIR}/u-boot-spl-dtb.img"
|
||||||
mkimage -n rk3288 -T rksd -d ${BINARIES_DIR}/u-boot-spl-dtb.bin ${BINARIES_DIR}/u-boot-spl-dtb.img
|
mkimage -n rk3288 -T rksd -d "${BINARIES_DIR}/u-boot-spl-dtb.bin" "${BINARIES_DIR}/u-boot-spl-dtb.img"
|
||||||
cat ${BINARIES_DIR}/u-boot-dtb.bin >> ${BINARIES_DIR}/u-boot-spl-dtb.img
|
cat "${BINARIES_DIR}/u-boot-dtb.bin" >> "${BINARIES_DIR}/u-boot-spl-dtb.img"
|
||||||
|
|
||||||
# SPL
|
# SPL
|
||||||
create_spl_image
|
create_spl_image
|
||||||
|
|
||||||
dd if=${BINARIES_DIR}/u-boot-spl-dtb.img of=${SPL_IMG} conv=notrunc bs=512 seek=64
|
dd if="${BINARIES_DIR}/u-boot-spl-dtb.img" of="${SPL_IMG}" conv=notrunc bs=512 seek=64
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function hassos_post_image() {
|
function hassos_post_image() {
|
||||||
convert_disk_image_gz
|
convert_disk_image_gz
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
# shellcheck disable=SC2155
|
||||||
|
|
||||||
function hassos_pre_image() {
|
function hassos_pre_image() {
|
||||||
local BOOT_DATA="$(path_boot_dir)"
|
local BOOT_DATA="$(path_boot_dir)"
|
||||||
@ -6,18 +7,18 @@ function hassos_pre_image() {
|
|||||||
local UBOOT_GXBB="${BINARIES_DIR}/u-boot.gxbb"
|
local UBOOT_GXBB="${BINARIES_DIR}/u-boot.gxbb"
|
||||||
local spl_img="$(path_spl_img)"
|
local spl_img="$(path_spl_img)"
|
||||||
|
|
||||||
cp ${BINARIES_DIR}/boot.scr ${BOOT_DATA}/boot.scr
|
cp "${BINARIES_DIR}/boot.scr" "${BOOT_DATA}/boot.scr"
|
||||||
cp ${BOARD_DIR}/boot-env.txt ${BOOT_DATA}/config.txt
|
cp "${BOARD_DIR}/boot-env.txt" "${BOOT_DATA}/config.txt"
|
||||||
cp ${BINARIES_DIR}/meson-gxbb-odroidc2.dtb ${BOOT_DATA}/meson-gxbb-odroidc2.dtb
|
cp "${BINARIES_DIR}/meson-gxbb-odroidc2.dtb" "${BOOT_DATA}/meson-gxbb-odroidc2.dtb"
|
||||||
|
|
||||||
echo "console=tty0 console=ttyAML0,115200n8" > ${BOOT_DATA}/cmdline.txt
|
echo "console=tty0 console=ttyAML0,115200n8" > "${BOOT_DATA}/cmdline.txt"
|
||||||
|
|
||||||
# SPL
|
# SPL
|
||||||
create_spl_image
|
create_spl_image
|
||||||
|
|
||||||
dd if=${BL1} of=${spl_img} conv=notrunc bs=1 count=440
|
dd if="${BL1}" of="${spl_img}" conv=notrunc bs=1 count=440
|
||||||
dd if=${BL1} of=${spl_img} conv=notrunc bs=512 skip=1 seek=1
|
dd if="${BL1}" of="${spl_img}" conv=notrunc bs=512 skip=1 seek=1
|
||||||
dd if=${UBOOT_GXBB} of=${spl_img} conv=notrunc bs=512 seek=97
|
dd if="${UBOOT_GXBB}" of="${spl_img}" conv=notrunc bs=512 seek=97
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,15 +1,16 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
# shellcheck disable=SC2155
|
||||||
|
|
||||||
function hassos_pre_image() {
|
function hassos_pre_image() {
|
||||||
local BOOT_DATA="$(path_boot_dir)"
|
local BOOT_DATA="$(path_boot_dir)"
|
||||||
|
|
||||||
mkdir -p ${BOOT_DATA}/EFI/BOOT
|
mkdir -p "${BOOT_DATA}/EFI/BOOT"
|
||||||
mkdir -p ${BOOT_DATA}/EFI/barebox
|
mkdir -p "${BOOT_DATA}/EFI/barebox"
|
||||||
|
|
||||||
cp ${BINARIES_DIR}/barebox.bin ${BOOT_DATA}/EFI/BOOT/BOOTx64.EFI
|
cp "${BINARIES_DIR}/barebox.bin" "${BOOT_DATA}/EFI/BOOT/BOOTx64.EFI"
|
||||||
cp ${BR2_EXTERNAL_HASSOS_PATH}/misc/barebox-state-efi.dtb ${BOOT_DATA}/EFI/barebox/state.dtb
|
cp "${BR2_EXTERNAL_HASSOS_PATH}/misc/barebox-state-efi.dtb" "${BOOT_DATA}/EFI/barebox/state.dtb"
|
||||||
|
|
||||||
echo "console=tty1" > ${BOOT_DATA}/cmdline.txt
|
echo "console=tty1" > "${BOOT_DATA}/cmdline.txt"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,25 +1,26 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
# shellcheck disable=SC2155
|
||||||
|
|
||||||
function hassos_pre_image() {
|
function hassos_pre_image() {
|
||||||
local BOOT_DATA="$(path_boot_dir)"
|
local BOOT_DATA="$(path_boot_dir)"
|
||||||
|
|
||||||
cp -t ${BOOT_DATA} \
|
cp -t "${BOOT_DATA}" \
|
||||||
${BINARIES_DIR}/u-boot.bin \
|
"${BINARIES_DIR}/u-boot.bin" \
|
||||||
${BINARIES_DIR}/boot.scr
|
"${BINARIES_DIR}/boot.scr"
|
||||||
cp -t ${BOOT_DATA} \
|
cp -t "${BOOT_DATA}" \
|
||||||
${BINARIES_DIR}/*.dtb \
|
"${BINARIES_DIR}"/*.dtb \
|
||||||
${BINARIES_DIR}/rpi-firmware/bootcode.bin \
|
"${BINARIES_DIR}/rpi-firmware/bootcode.bin" \
|
||||||
${BINARIES_DIR}/rpi-firmware/fixup.dat \
|
"${BINARIES_DIR}/rpi-firmware/fixup.dat" \
|
||||||
${BINARIES_DIR}/rpi-firmware/start.elf
|
"${BINARIES_DIR}/rpi-firmware/start.elf"
|
||||||
cp -r ${BINARIES_DIR}/rpi-firmware/overlays ${BOOT_DATA}/
|
cp -r "${BINARIES_DIR}/rpi-firmware/overlays" "${BOOT_DATA}/"
|
||||||
cp -f ${BOARD_DIR}/../boot-env.txt ${BOOT_DATA}/config.txt
|
cp -f "${BOARD_DIR}/../boot-env.txt" "${BOOT_DATA}/config.txt"
|
||||||
|
|
||||||
# Set cmd options
|
# Set cmd options
|
||||||
echo "dwc_otg.lpm_enable=0 console=tty1" > ${BOOT_DATA}/cmdline.txt
|
echo "dwc_otg.lpm_enable=0 console=tty1" > "${BOOT_DATA}/cmdline.txt"
|
||||||
|
|
||||||
# Enable 64bit support
|
# Enable 64bit support
|
||||||
if [ "${BOARD_ID}" == "rpi3-64" ]; then
|
if [ "${BOARD_ID}" == "rpi3-64" ]; then
|
||||||
echo "arm_64bit=1" >> ${BOOT_DATA}/config.txt
|
echo "arm_64bit=1" >> "${BOOT_DATA}/config.txt"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -74,7 +74,7 @@ BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2018.07"
|
|||||||
BR2_TARGET_UBOOT_BOARD_DEFCONFIG="odroid-c2"
|
BR2_TARGET_UBOOT_BOARD_DEFCONFIG="odroid-c2"
|
||||||
BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/bootloader/uboot.config $(BR2_EXTERNAL_HASSOS_PATH)/board/hardkernel/odroid-c2/uboot.config"
|
BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/bootloader/uboot.config $(BR2_EXTERNAL_HASSOS_PATH)/board/hardkernel/odroid-c2/uboot.config"
|
||||||
BR2_TARGET_UBOOT_BOOT_SCRIPT=y
|
BR2_TARGET_UBOOT_BOOT_SCRIPT=y
|
||||||
BR2_TARGET_UBOOT_BOOT_SCRIPT_SOURCE="$(BR2_EXTERNAL_HASSOS_PATH)/board/hardkernel/odroid-c2/uboot-boot.sh"
|
BR2_TARGET_UBOOT_BOOT_SCRIPT_SOURCE="$(BR2_EXTERNAL_HASSOS_PATH)/board/hardkernel/odroid-c2/uboot-boot.ush"
|
||||||
BR2_PACKAGE_HOST_DOSFSTOOLS=y
|
BR2_PACKAGE_HOST_DOSFSTOOLS=y
|
||||||
BR2_PACKAGE_HOST_E2FSPROGS=y
|
BR2_PACKAGE_HOST_E2FSPROGS=y
|
||||||
BR2_PACKAGE_HOST_GPTFDISK=y
|
BR2_PACKAGE_HOST_GPTFDISK=y
|
||||||
|
@ -77,7 +77,7 @@ BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2018.07"
|
|||||||
BR2_TARGET_UBOOT_BOARD_DEFCONFIG="rpi_0_w"
|
BR2_TARGET_UBOOT_BOARD_DEFCONFIG="rpi_0_w"
|
||||||
BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/bootloader/uboot.config $(BR2_EXTERNAL_HASSOS_PATH)/board/raspberrypi/uboot.config"
|
BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/bootloader/uboot.config $(BR2_EXTERNAL_HASSOS_PATH)/board/raspberrypi/uboot.config"
|
||||||
BR2_TARGET_UBOOT_BOOT_SCRIPT=y
|
BR2_TARGET_UBOOT_BOOT_SCRIPT=y
|
||||||
BR2_TARGET_UBOOT_BOOT_SCRIPT_SOURCE="$(BR2_EXTERNAL_HASSOS_PATH)/board/raspberrypi/uboot-boot.sh"
|
BR2_TARGET_UBOOT_BOOT_SCRIPT_SOURCE="$(BR2_EXTERNAL_HASSOS_PATH)/board/raspberrypi/uboot-boot.ush"
|
||||||
BR2_PACKAGE_HOST_DOSFSTOOLS=y
|
BR2_PACKAGE_HOST_DOSFSTOOLS=y
|
||||||
BR2_PACKAGE_HOST_E2FSPROGS=y
|
BR2_PACKAGE_HOST_E2FSPROGS=y
|
||||||
BR2_PACKAGE_HOST_GPTFDISK=y
|
BR2_PACKAGE_HOST_GPTFDISK=y
|
||||||
|
@ -76,7 +76,7 @@ BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2018.07"
|
|||||||
BR2_TARGET_UBOOT_BOARD_DEFCONFIG="rpi_2"
|
BR2_TARGET_UBOOT_BOARD_DEFCONFIG="rpi_2"
|
||||||
BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/bootloader/uboot.config $(BR2_EXTERNAL_HASSOS_PATH)/board/raspberrypi/uboot.config"
|
BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/bootloader/uboot.config $(BR2_EXTERNAL_HASSOS_PATH)/board/raspberrypi/uboot.config"
|
||||||
BR2_TARGET_UBOOT_BOOT_SCRIPT=y
|
BR2_TARGET_UBOOT_BOOT_SCRIPT=y
|
||||||
BR2_TARGET_UBOOT_BOOT_SCRIPT_SOURCE="$(BR2_EXTERNAL_HASSOS_PATH)/board/raspberrypi/uboot-boot.sh"
|
BR2_TARGET_UBOOT_BOOT_SCRIPT_SOURCE="$(BR2_EXTERNAL_HASSOS_PATH)/board/raspberrypi/uboot-boot.ush"
|
||||||
BR2_PACKAGE_HOST_DOSFSTOOLS=y
|
BR2_PACKAGE_HOST_DOSFSTOOLS=y
|
||||||
BR2_PACKAGE_HOST_E2FSPROGS=y
|
BR2_PACKAGE_HOST_E2FSPROGS=y
|
||||||
BR2_PACKAGE_HOST_GPTFDISK=y
|
BR2_PACKAGE_HOST_GPTFDISK=y
|
||||||
|
@ -77,7 +77,7 @@ BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2018.07"
|
|||||||
BR2_TARGET_UBOOT_BOARD_DEFCONFIG="rpi_3"
|
BR2_TARGET_UBOOT_BOARD_DEFCONFIG="rpi_3"
|
||||||
BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/bootloader/uboot.config $(BR2_EXTERNAL_HASSOS_PATH)/board/raspberrypi/uboot.config"
|
BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/bootloader/uboot.config $(BR2_EXTERNAL_HASSOS_PATH)/board/raspberrypi/uboot.config"
|
||||||
BR2_TARGET_UBOOT_BOOT_SCRIPT=y
|
BR2_TARGET_UBOOT_BOOT_SCRIPT=y
|
||||||
BR2_TARGET_UBOOT_BOOT_SCRIPT_SOURCE="$(BR2_EXTERNAL_HASSOS_PATH)/board/raspberrypi/rpi3-64/uboot-boot.sh"
|
BR2_TARGET_UBOOT_BOOT_SCRIPT_SOURCE="$(BR2_EXTERNAL_HASSOS_PATH)/board/raspberrypi/rpi3-64/uboot-boot.ush"
|
||||||
BR2_PACKAGE_HOST_DOSFSTOOLS=y
|
BR2_PACKAGE_HOST_DOSFSTOOLS=y
|
||||||
BR2_PACKAGE_HOST_E2FSPROGS=y
|
BR2_PACKAGE_HOST_E2FSPROGS=y
|
||||||
BR2_PACKAGE_HOST_GPTFDISK=y
|
BR2_PACKAGE_HOST_GPTFDISK=y
|
||||||
|
@ -77,7 +77,7 @@ BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2018.07"
|
|||||||
BR2_TARGET_UBOOT_BOARD_DEFCONFIG="rpi_3_32b"
|
BR2_TARGET_UBOOT_BOARD_DEFCONFIG="rpi_3_32b"
|
||||||
BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/bootloader/uboot.config $(BR2_EXTERNAL_HASSOS_PATH)/board/raspberrypi/uboot.config"
|
BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/bootloader/uboot.config $(BR2_EXTERNAL_HASSOS_PATH)/board/raspberrypi/uboot.config"
|
||||||
BR2_TARGET_UBOOT_BOOT_SCRIPT=y
|
BR2_TARGET_UBOOT_BOOT_SCRIPT=y
|
||||||
BR2_TARGET_UBOOT_BOOT_SCRIPT_SOURCE="$(BR2_EXTERNAL_HASSOS_PATH)/board/raspberrypi/uboot-boot.sh"
|
BR2_TARGET_UBOOT_BOOT_SCRIPT_SOURCE="$(BR2_EXTERNAL_HASSOS_PATH)/board/raspberrypi/uboot-boot.ush"
|
||||||
BR2_PACKAGE_HOST_DOSFSTOOLS=y
|
BR2_PACKAGE_HOST_DOSFSTOOLS=y
|
||||||
BR2_PACKAGE_HOST_E2FSPROGS=y
|
BR2_PACKAGE_HOST_E2FSPROGS=y
|
||||||
BR2_PACKAGE_HOST_GPTFDISK=y
|
BR2_PACKAGE_HOST_GPTFDISK=y
|
||||||
|
@ -76,7 +76,7 @@ BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2018.07"
|
|||||||
BR2_TARGET_UBOOT_BOARD_DEFCONFIG="rpi"
|
BR2_TARGET_UBOOT_BOARD_DEFCONFIG="rpi"
|
||||||
BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/bootloader/uboot.config $(BR2_EXTERNAL_HASSOS_PATH)/board/raspberrypi/uboot.config"
|
BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/bootloader/uboot.config $(BR2_EXTERNAL_HASSOS_PATH)/board/raspberrypi/uboot.config"
|
||||||
BR2_TARGET_UBOOT_BOOT_SCRIPT=y
|
BR2_TARGET_UBOOT_BOOT_SCRIPT=y
|
||||||
BR2_TARGET_UBOOT_BOOT_SCRIPT_SOURCE="$(BR2_EXTERNAL_HASSOS_PATH)/board/raspberrypi/uboot-boot.sh"
|
BR2_TARGET_UBOOT_BOOT_SCRIPT_SOURCE="$(BR2_EXTERNAL_HASSOS_PATH)/board/raspberrypi/uboot-boot.ush"
|
||||||
BR2_PACKAGE_HOST_DOSFSTOOLS=y
|
BR2_PACKAGE_HOST_DOSFSTOOLS=y
|
||||||
BR2_PACKAGE_HOST_E2FSPROGS=y
|
BR2_PACKAGE_HOST_E2FSPROGS=y
|
||||||
BR2_PACKAGE_HOST_GPTFDISK=y
|
BR2_PACKAGE_HOST_GPTFDISK=y
|
||||||
|
@ -81,7 +81,7 @@ BR2_TARGET_UBOOT_FORMAT_DTB_IMG=y
|
|||||||
BR2_TARGET_UBOOT_SPL=y
|
BR2_TARGET_UBOOT_SPL=y
|
||||||
BR2_TARGET_UBOOT_SPL_NAME="spl/u-boot-spl-dtb.bin"
|
BR2_TARGET_UBOOT_SPL_NAME="spl/u-boot-spl-dtb.bin"
|
||||||
BR2_TARGET_UBOOT_BOOT_SCRIPT=y
|
BR2_TARGET_UBOOT_BOOT_SCRIPT=y
|
||||||
BR2_TARGET_UBOOT_BOOT_SCRIPT_SOURCE="$(BR2_EXTERNAL_HASSOS_PATH)/board/asus/tinker/uboot-boot.sh"
|
BR2_TARGET_UBOOT_BOOT_SCRIPT_SOURCE="$(BR2_EXTERNAL_HASSOS_PATH)/board/asus/tinker/uboot-boot.ush"
|
||||||
BR2_PACKAGE_HOST_DOSFSTOOLS=y
|
BR2_PACKAGE_HOST_DOSFSTOOLS=y
|
||||||
BR2_PACKAGE_HOST_E2FSPROGS=y
|
BR2_PACKAGE_HOST_E2FSPROGS=y
|
||||||
BR2_PACKAGE_HOST_GPTFDISK=y
|
BR2_PACKAGE_HOST_GPTFDISK=y
|
||||||
|
@ -15,31 +15,31 @@ CACHE_DIR="${PROFILES_DIR}/cache"
|
|||||||
REMOVE_DIR="${PROFILES_DIR}/remove"
|
REMOVE_DIR="${PROFILES_DIR}/remove"
|
||||||
|
|
||||||
# Check folder structure
|
# Check folder structure
|
||||||
mkdir -p ${PROFILES_DIR}
|
mkdir -p "${PROFILES_DIR}"
|
||||||
mkdir -p ${CACHE_DIR}
|
mkdir -p "${CACHE_DIR}"
|
||||||
mkdir -p ${REMOVE_DIR}
|
mkdir -p "${REMOVE_DIR}"
|
||||||
|
|
||||||
# Load/Update exists/new profiles
|
# Load/Update exists/new profiles
|
||||||
for profile in ${PROFILES_DIR}/*; do
|
for profile in "${PROFILES_DIR}"/*; do
|
||||||
if [ ! -f ${profile} ]; then
|
if [ ! -f "${profile}" ]; then
|
||||||
continue
|
continue
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Load Profile
|
# Load Profile
|
||||||
if ! apparmor_parser -r -W -L ${CACHE_DIR} ${profile}; then
|
if ! apparmor_parser -r -W -L "${CACHE_DIR}" "${profile}"; then
|
||||||
echo "[Error]: Can't load profile ${profile}"
|
echo "[Error]: Can't load profile ${profile}"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
# Cleanup old profiles
|
# Cleanup old profiles
|
||||||
for profile in ${REMOVE_DIR}/*; do
|
for profile in "${REMOVE_DIR}"/*; do
|
||||||
if [ ! -f ${profile} ]; then
|
if [ ! -f "${profile}" ]; then
|
||||||
continue
|
continue
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Unload Profile
|
# Unload Profile
|
||||||
if apparmor_parser -R -W -L ${CACHE_DIR} ${profile}; then
|
if apparmor_parser -R -W -L "${CACHE_DIR}" "${profile}"; then
|
||||||
if rm ${profile}; then
|
if rm "${profile}"; then
|
||||||
continue
|
continue
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
@ -1,41 +1,42 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
# shellcheck disable=SC2039
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
DEVICE_CHILD="$(findfs LABEL="hassos-data")"
|
DEVICE_CHILD="$(findfs LABEL="hassos-data")"
|
||||||
DEVICE_ROOT="/dev/$(lsblk -no pkname ${DEVICE_CHILD})"
|
DEVICE_ROOT="/dev/$(lsblk -no pkname "${DEVICE_CHILD}")"
|
||||||
PART_NUM="${DEVICE_CHILD: -1}"
|
PART_NUM="${DEVICE_CHILD: -1}"
|
||||||
|
|
||||||
if sfdisk -dq ${DEVICE_ROOT} | grep -q 'label: gpt'; then
|
if sfdisk -dq "${DEVICE_ROOT}" | grep -q 'label: gpt'; then
|
||||||
|
|
||||||
# Need resize
|
# Need resize
|
||||||
if [ $(sgdisk -E ${DEVICE_ROOT}) -le 2048 ]; then
|
if [ "$(sgdisk -E "${DEVICE_ROOT}")" -le "2048" ]; then
|
||||||
echo "[INFO] No resize of data partition needed"
|
echo "[INFO] No resize of data partition needed"
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Resize & Reload partition
|
# Resize & Reload partition
|
||||||
echo "[INFO] Update hassos-data partition ${PART_NUM}"
|
echo "[INFO] Update hassos-data partition ${PART_NUM}"
|
||||||
sgdisk -e ${DEVICE_ROOT}
|
sgdisk -e "${DEVICE_ROOT}"
|
||||||
sgdisk -d ${PART_NUM} -n ${PART_NUM}:0:0 -c ${PART_NUM}:"hassos-data" -t ${PART_NUM}:"0FC63DAF-8483-4772-8E79-3D69D8477DE4" -u ${PART_NUM}:"a52a4597-fa3a-4851-aefd-2fbe9f849079" ${DEVICE_ROOT}
|
sgdisk -d "${PART_NUM}" -n "${PART_NUM}:0:0" -c "${PART_NUM}:hassos-data" -t "${PART_NUM}:0FC63DAF-8483-4772-8E79-3D69D8477DE4" -u "${PART_NUM}:a52a4597-fa3a-4851-aefd-2fbe9f849079" "${DEVICE_ROOT}"
|
||||||
sgdisk -v ${DEVICE_ROOT}
|
sgdisk -v "${DEVICE_ROOT}"
|
||||||
else
|
else
|
||||||
|
|
||||||
# Need resize
|
# Need resize
|
||||||
UNUSED=$(sfdisk -Fq ${DEVICE_ROOT} | cut -d " " -f 3 | tail -1)
|
UNUSED=$(sfdisk -Fq "${DEVICE_ROOT}" | cut -d " " -f 3 | tail -1)
|
||||||
if [ -z "${UNUSED}" ] || [ ${UNUSED} -le 2048 ]; then
|
if [ -z "${UNUSED}" ] || [ "${UNUSED}" -le "2048" ]; then
|
||||||
echo "[INFO] No resize of data partition needed"
|
echo "[INFO] No resize of data partition needed"
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo ", +" | sfdisk -N ${PART_NUM} ${DEVICE_ROOT} --force
|
echo ", +" | sfdisk -N "${PART_NUM}" "${DEVICE_ROOT}" --force
|
||||||
sfdisk -V ${DEVICE_ROOT}
|
sfdisk -V "${DEVICE_ROOT}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
partx -u ${DEVICE_ROOT}
|
partx -u "${DEVICE_ROOT}"
|
||||||
|
|
||||||
# Resize filesystem
|
# Resize filesystem
|
||||||
echo "[INFO] Resize hassos-data filesystem"
|
echo "[INFO] Resize hassos-data filesystem"
|
||||||
e2fsck -y ${DEVICE_CHILD}
|
e2fsck -y "${DEVICE_CHILD}"
|
||||||
resize2fs -f ${DEVICE_CHILD}
|
resize2fs -f "${DEVICE_CHILD}"
|
||||||
|
|
||||||
echo "[INFO] Finish hassos-data resizing"
|
echo "[INFO] Finish hassos-data resizing"
|
||||||
|
@ -2,20 +2,18 @@
|
|||||||
set -e
|
set -e
|
||||||
|
|
||||||
MACHINE_ID=$(cat /etc/machine-id)
|
MACHINE_ID=$(cat /etc/machine-id)
|
||||||
CURRENT_LOGS=/var/log/journal/${MACHINE_ID}
|
|
||||||
|
|
||||||
# Loop all logs folder and move
|
# Loop all logs folder and move
|
||||||
for log_folder in /var/log/journal/*; do
|
for log_folder in /var/log/journal/*; do
|
||||||
# Not a log folder
|
# Not a log folder
|
||||||
if [ ! -d ${log_folder} ]; then
|
if [ ! -d "${log_folder}" ]; then
|
||||||
continue
|
continue
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Current log folder
|
# Current log folder
|
||||||
if (echo ${log_folder} | grep ${MACHINE_ID}); then
|
if (echo "${log_folder}" | grep "${MACHINE_ID}"); then
|
||||||
continue
|
continue
|
||||||
fi
|
fi
|
||||||
|
|
||||||
rm -rf ${log_folder}
|
rm -rf "${log_folder}"
|
||||||
done
|
done
|
||||||
|
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
# shellcheck disable=SC2112
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
|
|
||||||
|
@ -11,13 +11,14 @@ CLI_DATA=/mnt/data/cli
|
|||||||
mkdir -p ${CLI_DATA}
|
mkdir -p ${CLI_DATA}
|
||||||
|
|
||||||
# Run CLI
|
# Run CLI
|
||||||
|
# shellcheck disable=SC2086
|
||||||
docker container run \
|
docker container run \
|
||||||
--rm -ti --init \
|
--rm -ti --init \
|
||||||
--security-opt apparmor="${APPARMOR}" \
|
--security-opt apparmor="${APPARMOR}" \
|
||||||
-v ${CLI_DATA}:/data \
|
-v ${CLI_DATA}:/data \
|
||||||
-v /etc/machine-id:/etc/machine-id:ro \
|
-v /etc/machine-id:/etc/machine-id:ro \
|
||||||
$DOCKER_ARGS \
|
$DOCKER_ARGS \
|
||||||
${CLI}
|
"${CLI}"
|
||||||
|
|
||||||
# Jump to root shell
|
# Jump to root shell
|
||||||
if [ $? -eq 10 ]; then
|
if [ $? -eq 10 ]; then
|
||||||
|
@ -87,9 +87,10 @@ fi
|
|||||||
##
|
##
|
||||||
# Firmware update / Only USB
|
# Firmware update / Only USB
|
||||||
UPTIME=$(awk '{printf "%0.f", $1}' /proc/uptime)
|
UPTIME=$(awk '{printf "%0.f", $1}' /proc/uptime)
|
||||||
if ls ${USB_CONFIG}/*.raucb > /dev/null 2>&1 && [ ${UPTIME} -ge 180 ]; then
|
if ls ${USB_CONFIG}/*.raucb > /dev/null 2>&1 && [ "${UPTIME}" -ge "180" ]; then
|
||||||
echo "[Info] Performe a firmware update"
|
echo "[Info] Performe a firmware update"
|
||||||
|
|
||||||
|
# shellcheck disable=SC2012
|
||||||
rauc_filename=$(ls ${USB_CONFIG}/*.raucb | head -n 1)
|
rauc_filename=$(ls ${USB_CONFIG}/*.raucb | head -n 1)
|
||||||
if rauc install "${rauc_filename}"; then
|
if rauc install "${rauc_filename}"; then
|
||||||
echo "[Info] Firmware update success"
|
echo "[Info] Firmware update success"
|
||||||
|
@ -10,16 +10,18 @@ APPARMOR="$(jq --raw-output '.supervisor_apparmor // "docker-default"' ${CONFIG_
|
|||||||
|
|
||||||
# Init supervisor
|
# Init supervisor
|
||||||
HASSOS_DATA=/mnt/data/supervisor
|
HASSOS_DATA=/mnt/data/supervisor
|
||||||
HASSOS_IMAGE_ID=$(docker inspect --format='{{.Id}}' ${SUPERVISOR})
|
HASSOS_IMAGE_ID=$(docker inspect --format='{{.Id}}' "${SUPERVISOR}")
|
||||||
HASSOS_CONTAINER_ID=$(docker inspect --format='{{.Image}}' hassos_supervisor || echo "")
|
HASSOS_CONTAINER_ID=$(docker inspect --format='{{.Image}}' hassos_supervisor || echo "")
|
||||||
|
|
||||||
# Fix wrong AppArmor profiles
|
# Fix wrong AppArmor profiles
|
||||||
if ! grep ${APPARMOR} /sys/kernel/security/apparmor/profiles > /dev/null; then
|
if ! grep "${APPARMOR}" /sys/kernel/security/apparmor/profiles > /dev/null; then
|
||||||
APPARMOR=docker-default
|
APPARMOR=docker-default
|
||||||
fi
|
fi
|
||||||
|
|
||||||
runSupervisor() {
|
runSupervisor() {
|
||||||
docker container rm --force hassos_supervisor || true
|
docker container rm --force hassos_supervisor || true
|
||||||
|
|
||||||
|
# shellcheck disable=SC2086
|
||||||
docker container run --name hassos_supervisor \
|
docker container run --name hassos_supervisor \
|
||||||
--security-opt apparmor="${APPARMOR}" \
|
--security-opt apparmor="${APPARMOR}" \
|
||||||
-v /var/run/docker.sock:/var/run/docker.sock \
|
-v /var/run/docker.sock:/var/run/docker.sock \
|
||||||
@ -29,7 +31,7 @@ runSupervisor() {
|
|||||||
-e SUPERVISOR_SHARE=${HASSOS_DATA} \
|
-e SUPERVISOR_SHARE=${HASSOS_DATA} \
|
||||||
-e SUPERVISOR_NAME=hassos_supervisor \
|
-e SUPERVISOR_NAME=hassos_supervisor \
|
||||||
$DOCKER_ARGS \
|
$DOCKER_ARGS \
|
||||||
${SUPERVISOR}
|
"${SUPERVISOR}"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Run supervisor
|
# Run supervisor
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
# shellcheck disable=SC2155
|
||||||
|
|
||||||
BOOT_UUID="b3dd0952-733c-4c88-8cba-cab9b8b4377f"
|
BOOT_UUID="b3dd0952-733c-4c88-8cba-cab9b8b4377f"
|
||||||
BOOTSTATE_UUID="33236519-7F32-4DFF-8002-3390B62C309D"
|
BOOTSTATE_UUID="33236519-7F32-4DFF-8002-3390B62C309D"
|
||||||
@ -9,7 +10,6 @@ KERNEL1_UUID="fc02a4f0-5350-406f-93a2-56cbed636b5f"
|
|||||||
OVERLAY_UUID="f1326040-5236-40eb-b683-aaa100a9afcf"
|
OVERLAY_UUID="f1326040-5236-40eb-b683-aaa100a9afcf"
|
||||||
DATA_UUID="a52a4597-fa3a-4851-aefd-2fbe9f849079"
|
DATA_UUID="a52a4597-fa3a-4851-aefd-2fbe9f849079"
|
||||||
|
|
||||||
SPL_SIZE=8M
|
|
||||||
BOOT_SIZE=(32M 24M)
|
BOOT_SIZE=(32M 24M)
|
||||||
BOOTSTATE_SIZE=8M
|
BOOTSTATE_SIZE=8M
|
||||||
SYSTEM_SIZE=256M
|
SYSTEM_SIZE=256M
|
||||||
@ -22,7 +22,7 @@ function size2sectors() {
|
|||||||
s=0
|
s=0
|
||||||
for v in "${@}"
|
for v in "${@}"
|
||||||
do
|
do
|
||||||
let s+=$(echo $v | awk \
|
((s+=$(echo "$v" | awk \
|
||||||
'BEGIN{IGNORECASE = 1}
|
'BEGIN{IGNORECASE = 1}
|
||||||
function printsectors(n,b,p) {printf "%u\n", n*b^p/512}
|
function printsectors(n,b,p) {printf "%u\n", n*b^p/512}
|
||||||
/B$/{ printsectors($1, 1, 0)};
|
/B$/{ printsectors($1, 1, 0)};
|
||||||
@ -34,6 +34,7 @@ function size2sectors() {
|
|||||||
/MB$/{ printsectors($1, 10, 6)};
|
/MB$/{ printsectors($1, 10, 6)};
|
||||||
/GB$/{ printsectors($1, 10, 9)};
|
/GB$/{ printsectors($1, 10, 9)};
|
||||||
/TB$/{ printsectors($1, 10, 12)}')
|
/TB$/{ printsectors($1, 10, 12)}')
|
||||||
|
))
|
||||||
done
|
done
|
||||||
echo $s
|
echo $s
|
||||||
}
|
}
|
||||||
@ -51,7 +52,7 @@ function get_boot_size() {
|
|||||||
function create_spl_image() {
|
function create_spl_image() {
|
||||||
local boot_img="$(path_spl_img)"
|
local boot_img="$(path_spl_img)"
|
||||||
|
|
||||||
dd if=/dev/zero of=${boot_img} bs=512 count=16382
|
dd if=/dev/zero of="${boot_img}" bs=512 count=16382
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -60,32 +61,33 @@ function create_boot_image() {
|
|||||||
local boot_img="$(path_boot_img)"
|
local boot_img="$(path_boot_img)"
|
||||||
|
|
||||||
echo "mtools_skip_check=1" > ~/.mtoolsrc
|
echo "mtools_skip_check=1" > ~/.mtoolsrc
|
||||||
dd if=/dev/zero of=${boot_img} bs=$(get_boot_size) count=1
|
dd if=/dev/zero of="${boot_img}" bs="$(get_boot_size)" count=1
|
||||||
mkfs.vfat -n "hassos-boot" ${boot_img}
|
mkfs.vfat -n "hassos-boot" "${boot_img}"
|
||||||
mcopy -i ${boot_img} -sv ${boot_data}/* ::
|
mcopy -i "${boot_img}" -sv "${boot_data}"/* ::
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function create_overlay_image() {
|
function create_overlay_image() {
|
||||||
local overlay_img="$(path_overlay_img)"
|
local overlay_img="$(path_overlay_img)"
|
||||||
|
|
||||||
dd if=/dev/zero of=${overlay_img} bs=${OVERLAY_SIZE} count=1
|
dd if=/dev/zero of="${overlay_img}" bs=${OVERLAY_SIZE} count=1
|
||||||
mkfs.ext4 -L "hassos-overlay" -E lazy_itable_init=0,lazy_journal_init=0 ${overlay_img}
|
mkfs.ext4 -L "hassos-overlay" -E lazy_itable_init=0,lazy_journal_init=0 "${overlay_img}"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function create_kernel_image() {
|
function create_kernel_image() {
|
||||||
local kernel_img="$(path_kernel_img)"
|
local kernel_img="$(path_kernel_img)"
|
||||||
|
# shellcheck disable=SC2153
|
||||||
local kernel="${BINARIES_DIR}/${KERNEL_FILE}"
|
local kernel="${BINARIES_DIR}/${KERNEL_FILE}"
|
||||||
|
|
||||||
# Make image
|
# Make image
|
||||||
dd if=/dev/zero of=${kernel_img} bs=${KERNEL_SIZE} count=1
|
dd if=/dev/zero of="${kernel_img}" bs=${KERNEL_SIZE} count=1
|
||||||
mkfs.ext4 -L "hassos-kernel" -E lazy_itable_init=0,lazy_journal_init=0 ${kernel_img}
|
mkfs.ext4 -L "hassos-kernel" -E lazy_itable_init=0,lazy_journal_init=0 "${kernel_img}"
|
||||||
|
|
||||||
# Mount / init file structs
|
# Mount / init file structs
|
||||||
mkdir -p /mnt/data/
|
mkdir -p /mnt/data/
|
||||||
mount -o loop ${kernel_img} /mnt/data
|
mount -o loop "${kernel_img}" /mnt/data
|
||||||
cp -f ${kernel} /mnt/data/
|
cp -f "${kernel}" /mnt/data/
|
||||||
umount /mnt/data
|
umount /mnt/data
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -125,54 +127,54 @@ function _create_disk_gpt() {
|
|||||||
|
|
||||||
##
|
##
|
||||||
# Write new image & GPT
|
# Write new image & GPT
|
||||||
dd if=/dev/zero of=${hdd_img} bs=1G count=${hdd_count}
|
dd if=/dev/zero of="${hdd_img}" bs=1G count="${hdd_count}"
|
||||||
sgdisk -o ${hdd_img}
|
sgdisk -o "${hdd_img}"
|
||||||
|
|
||||||
##
|
##
|
||||||
# Partition layout
|
# Partition layout
|
||||||
|
|
||||||
# SPL
|
# SPL
|
||||||
if [ "${BOOT_SYS}" == "spl" ]; then
|
if [ "${BOOT_SYS}" == "spl" ]; then
|
||||||
sgdisk -j 16384 ${hdd_img}
|
sgdisk -j 16384 "${hdd_img}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# boot
|
# boot
|
||||||
boot_offset="$(sgdisk -F ${hdd_img})"
|
boot_offset="$(sgdisk -F "${hdd_img}")"
|
||||||
sgdisk -n 0:${boot_offset}:+$(get_boot_size) -c 0:"hassos-boot" -t 0:"C12A7328-F81F-11D2-BA4B-00A0C93EC93B" -u 0:${BOOT_UUID} ${hdd_img}
|
sgdisk -n "0:${boot_offset}:+$(get_boot_size)" -c 0:"hassos-boot" -t 0:"C12A7328-F81F-11D2-BA4B-00A0C93EC93B" -u 0:${BOOT_UUID} "${hdd_img}"
|
||||||
|
|
||||||
# Kernel 0
|
# Kernel 0
|
||||||
kernel_offset="$(sgdisk -F ${hdd_img})"
|
kernel_offset="$(sgdisk -F "${hdd_img}")"
|
||||||
sgdisk -n 0:0:+${KERNEL_SIZE} -c 0:"hassos-kernel0" -t 0:"0FC63DAF-8483-4772-8E79-3D69D8477DE4" -u 0:${KERNEL0_UUID} ${hdd_img}
|
sgdisk -n "0:0:+${KERNEL_SIZE}" -c 0:"hassos-kernel0" -t 0:"0FC63DAF-8483-4772-8E79-3D69D8477DE4" -u "0:${KERNEL0_UUID}" "${hdd_img}"
|
||||||
|
|
||||||
# System 0
|
# System 0
|
||||||
rootfs_offset="$(sgdisk -F ${hdd_img})"
|
rootfs_offset="$(sgdisk -F "${hdd_img}")"
|
||||||
sgdisk -n 0:0:+${SYSTEM_SIZE} -c 0:"hassos-system0" -t 0:"0FC63DAF-8483-4772-8E79-3D69D8477DE4" -u 0:${SYSTEM0_UUID} ${hdd_img}
|
sgdisk -n "0:0:+${SYSTEM_SIZE}" -c 0:"hassos-system0" -t 0:"0FC63DAF-8483-4772-8E79-3D69D8477DE4" -u "0:${SYSTEM0_UUID}" "${hdd_img}"
|
||||||
|
|
||||||
# Kernel 1
|
# Kernel 1
|
||||||
sgdisk -n 0:0:+${KERNEL_SIZE} -c 0:"hassos-kernel1" -t 0:"0FC63DAF-8483-4772-8E79-3D69D8477DE4" -u 0:${KERNEL1_UUID} ${hdd_img}
|
sgdisk -n "0:0:+${KERNEL_SIZE}" -c 0:"hassos-kernel1" -t 0:"0FC63DAF-8483-4772-8E79-3D69D8477DE4" -u "0:${KERNEL1_UUID}" "${hdd_img}"
|
||||||
|
|
||||||
# System 1
|
# System 1
|
||||||
sgdisk -n 0:0:+${SYSTEM_SIZE} -c 0:"hassos-system1" -t 0:"0FC63DAF-8483-4772-8E79-3D69D8477DE4" -u 0:${SYSTEM1_UUID} ${hdd_img}
|
sgdisk -n "0:0:+${SYSTEM_SIZE}" -c 0:"hassos-system1" -t 0:"0FC63DAF-8483-4772-8E79-3D69D8477DE4" -u "0:${SYSTEM1_UUID}" "${hdd_img}"
|
||||||
|
|
||||||
# Bootstate
|
# Bootstate
|
||||||
sgdisk -n 0:0:+${BOOTSTATE_SIZE} -c 0:"hassos-bootstate" -u 0:${BOOTSTATE_UUID} ${hdd_img}
|
sgdisk -n "0:0:+${BOOTSTATE_SIZE}" -c 0:"hassos-bootstate" -u 0:${BOOTSTATE_UUID} "${hdd_img}"
|
||||||
|
|
||||||
# Overlay
|
# Overlay
|
||||||
overlay_offset="$(sgdisk -F ${hdd_img})"
|
overlay_offset="$(sgdisk -F "${hdd_img}")"
|
||||||
sgdisk -n 0:0:+${OVERLAY_SIZE} -c 0:"hassos-overlay" -t 0:"0FC63DAF-8483-4772-8E79-3D69D8477DE4" -u 0:${OVERLAY_UUID} ${hdd_img}
|
sgdisk -n "0:0:+${OVERLAY_SIZE}" -c 0:"hassos-overlay" -t 0:"0FC63DAF-8483-4772-8E79-3D69D8477DE4" -u "0:${OVERLAY_UUID}" "${hdd_img}"
|
||||||
|
|
||||||
# Data
|
# Data
|
||||||
data_offset="$(sgdisk -F ${hdd_img})"
|
data_offset="$(sgdisk -F "${hdd_img}")"
|
||||||
sgdisk -n 0:0:+${DATA_SIZE} -c 0:"hassos-data" -t 0:"0FC63DAF-8483-4772-8E79-3D69D8477DE4" -u 0:${DATA_UUID} ${hdd_img}
|
sgdisk -n "0:0:+${DATA_SIZE}" -c 0:"hassos-data" -t 0:"0FC63DAF-8483-4772-8E79-3D69D8477DE4" -u "0:${DATA_UUID}" "${hdd_img}"
|
||||||
|
|
||||||
##
|
##
|
||||||
# Write Images
|
# Write Images
|
||||||
sgdisk -v
|
sgdisk -v
|
||||||
dd if=${boot_img} of=${hdd_img} conv=notrunc bs=512 seek=${boot_offset}
|
dd if="${boot_img}" of"=${hdd_img}" conv=notrunc bs=512 seek="${boot_offset}"
|
||||||
dd if=${kernel_img} of=${hdd_img} conv=notrunc bs=512 seek=${kernel_offset}
|
dd if="${kernel_img}" of="${hdd_img}" conv=notrunc bs=512 seek="${kernel_offset}"
|
||||||
dd if=${rootfs_img} of=${hdd_img} conv=notrunc bs=512 seek=${rootfs_offset}
|
dd if="${rootfs_img}" of="${hdd_img}" conv=notrunc bs=512 seek="${rootfs_offset}"
|
||||||
dd if=${overlay_img} of=${hdd_img} conv=notrunc bs=512 seek=${overlay_offset}
|
dd if="${overlay_img}" of="${hdd_img}" conv=notrunc bs=512 seek="${overlay_offset}"
|
||||||
dd if=${data_img} of=${hdd_img} conv=notrunc bs=512 seek=${data_offset}
|
dd if="${data_img}" of="${hdd_img}" conv=notrunc bs=512 seek="${data_offset}"
|
||||||
|
|
||||||
# Fix boot
|
# Fix boot
|
||||||
if [ "${BOOT_SYS}" == "hyprid" ]; then
|
if [ "${BOOT_SYS}" == "hyprid" ]; then
|
||||||
@ -192,38 +194,37 @@ function _create_disk_mbr() {
|
|||||||
local hdd_img="$(hassos_image_name img)"
|
local hdd_img="$(hassos_image_name img)"
|
||||||
local hdd_count=${DISK_SIZE:-2}
|
local hdd_count=${DISK_SIZE:-2}
|
||||||
local disk_layout="${BINARIES_DIR}/disk.layout"
|
local disk_layout="${BINARIES_DIR}/disk.layout"
|
||||||
|
local boot_start=16384
|
||||||
|
|
||||||
|
local boot_size=$(($(size2sectors BOOT_SIZE)+2))
|
||||||
|
local kernel0_size=$(($(size2sectors KERNEL_SIZE)+2))
|
||||||
|
local system0_size=$(($(size2sectors SYSTEM_SIZE)+2))
|
||||||
|
local kernel1_size=$(($(size2sectors KERNEL_SIZE)+2))
|
||||||
|
local system1_size=$(($(size2sectors SYSTEM_SIZE)+2))
|
||||||
|
local bootstate_size=$(($(size2sectors BOOTSTATE_SIZE)+2))
|
||||||
|
local overlay_size=$(($(size2sectors OVERLAY_SIZE)+2))
|
||||||
|
local data_size=$(($(size2sectors DATA_SIZE)+2))
|
||||||
|
local extended_size=$((kernel0_size+system0_size+kernel1_size+system1_size+bootstate_size+2))
|
||||||
|
|
||||||
|
# we add one here for the extended header.
|
||||||
|
local extended_start=$((boot_start+boot_size+1))
|
||||||
|
local kernel0_start=$((extended_start+1))
|
||||||
|
local system0_start=$((kernel0_start+kernel0_size+1))
|
||||||
|
local kernel1_start=$((system0_start+system0_size+1))
|
||||||
|
local system1_start=$((kernel1_start+kernel1_size+1))
|
||||||
|
local bootstate_start=$((system1_start+system1_size+1))
|
||||||
|
local overlay_start=$((extended_start+extended_size+1))
|
||||||
|
local data_start=$((overlay_start+overlay_size+1))
|
||||||
|
|
||||||
|
local boot_offset=${boot_start}
|
||||||
|
local kernel_offset=${kernel0_start}
|
||||||
|
local rootfs_offset=${system0_start}
|
||||||
|
local overlay_offset=${overlay_start}
|
||||||
|
local data_offset=${data_start}
|
||||||
|
|
||||||
# Write new image & MBR
|
# Write new image & MBR
|
||||||
dd if=/dev/zero of=${hdd_img} bs=1G count=${hdd_count}
|
dd if=/dev/zero of="${hdd_img}" bs=1G count="${hdd_count}"
|
||||||
|
|
||||||
let boot_start=16384
|
|
||||||
|
|
||||||
let boot_size=$(size2sectors ${BOOT_SIZE})+2
|
|
||||||
let kernel0_size=$(size2sectors ${KERNEL_SIZE})+2
|
|
||||||
let system0_size=$(size2sectors ${SYSTEM_SIZE})+2
|
|
||||||
let kernel1_size=$(size2sectors ${KERNEL_SIZE})+2
|
|
||||||
let system1_size=$(size2sectors ${SYSTEM_SIZE})+2
|
|
||||||
let bootstate_size=$(size2sectors ${BOOTSTATE_SIZE})+2
|
|
||||||
let overlay_size=$(size2sectors ${OVERLAY_SIZE})+2
|
|
||||||
let data_size=$(size2sectors ${DATA_SIZE})+2
|
|
||||||
let extended_size=${kernel0_size}+${system0_size}+${kernel1_size}+${system1_size}+${bootstate_size}+2
|
|
||||||
|
|
||||||
|
|
||||||
let extended_start=${boot_start}+${boot_size}+1
|
|
||||||
let kernel0_start=${extended_start}+1 # we add one here for the extended header.
|
|
||||||
let system0_start=${kernel0_start}+${kernel0_size}+1
|
|
||||||
let kernel1_start=${system0_start}+${system0_size}+1
|
|
||||||
let system1_start=${kernel1_start}+${kernel1_size}+1
|
|
||||||
let bootstate_start=${system1_start}+${system1_size}+1
|
|
||||||
let overlay_start=${extended_start}+${extended_size}+1
|
|
||||||
let data_start=${overlay_start}+${overlay_size}+1
|
|
||||||
|
|
||||||
|
|
||||||
let boot_offset=${boot_start}
|
|
||||||
let kernel_offset=${kernel0_start}
|
|
||||||
let rootfs_offset=${system0_start}
|
|
||||||
let overlay_offset=${overlay_start}
|
|
||||||
let data_offset=${data_start}
|
|
||||||
# Update disk layout
|
# Update disk layout
|
||||||
(
|
(
|
||||||
echo "label: dos"
|
echo "label: dos"
|
||||||
@ -238,17 +239,17 @@ function _create_disk_mbr() {
|
|||||||
echo "hassos-bootstate : start= ${bootstate_start}, size= ${bootstate_size}, type=83" #Make a logical Linux partition
|
echo "hassos-bootstate : start= ${bootstate_start}, size= ${bootstate_size}, type=83" #Make a logical Linux partition
|
||||||
echo "hassos-overlay : start= ${overlay_start}, size= ${overlay_size}, type=83" #Make a Linux partition
|
echo "hassos-overlay : start= ${overlay_start}, size= ${overlay_size}, type=83" #Make a Linux partition
|
||||||
echo "hassos-data : start= ${data_start}, size= ${data_size}, type=83" #Make a Linux partition
|
echo "hassos-data : start= ${data_start}, size= ${data_size}, type=83" #Make a Linux partition
|
||||||
) > ${disk_layout}
|
) > "${disk_layout}"
|
||||||
|
|
||||||
# Update Labels
|
# Update Labels
|
||||||
sfdisk ${hdd_img} < ${disk_layout}
|
sfdisk "${hdd_img}" < "${disk_layout}"
|
||||||
|
|
||||||
# Write Images
|
# Write Images
|
||||||
dd if=${boot_img} of=${hdd_img} conv=notrunc bs=512 seek=${boot_offset}
|
dd if="${boot_img}" of="${hdd_img}" conv=notrunc bs=512 seek="${boot_offset}"
|
||||||
dd if=${kernel_img} of=${hdd_img} conv=notrunc bs=512 seek=${kernel_offset}
|
dd if="${kernel_img}" of="${hdd_img}" conv=notrunc bs=512 seek="${kernel_offset}"
|
||||||
dd if=${rootfs_img} of=${hdd_img} conv=notrunc bs=512 seek=${rootfs_offset}
|
dd if="${rootfs_img}" of="${hdd_img}" conv=notrunc bs=512 seek="${rootfs_offset}"
|
||||||
dd if=${overlay_img} of=${hdd_img} conv=notrunc bs=512 seek=${overlay_offset}
|
dd if="${overlay_img}" of="${hdd_img}" conv=notrunc bs=512 seek="${overlay_offset}"
|
||||||
dd if=${data_img} of=${hdd_img} conv=notrunc bs=512 seek=${data_offset}
|
dd if="${data_img}" of="${hdd_img}" conv=notrunc bs=512 seek="${data_offset}"
|
||||||
|
|
||||||
# Wripte SPL
|
# Wripte SPL
|
||||||
_fix_disk_spl_mbr
|
_fix_disk_spl_mbr
|
||||||
@ -258,19 +259,18 @@ function _create_disk_mbr() {
|
|||||||
function _fix_disk_hyprid() {
|
function _fix_disk_hyprid() {
|
||||||
local hdd_img="$(hassos_image_name img)"
|
local hdd_img="$(hassos_image_name img)"
|
||||||
|
|
||||||
sgdisk -t 1:"E3C9E316-0B5C-4DB8-817D-F92DF00215AE" ${hdd_img}
|
sgdisk -t 1:"E3C9E316-0B5C-4DB8-817D-F92DF00215AE" "${hdd_img}"
|
||||||
dd if=${BR2_EXTERNAL_HASSOS_PATH}/misc/mbr.img of=${hdd_img} conv=notrunc bs=512 count=1
|
dd if="${BR2_EXTERNAL_HASSOS_PATH}/misc/mbr.img" of="${hdd_img}" conv=notrunc bs=512 count=1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function _fix_disk_spl_gpt() {
|
function _fix_disk_spl_gpt() {
|
||||||
local hdd_img="$(hassos_image_name img)"
|
local hdd_img="$(hassos_image_name img)"
|
||||||
local spl_img="$(path_spl_img)"
|
local spl_img="$(path_spl_img)"
|
||||||
local backup="/tmp/mbr-backup.bin"
|
|
||||||
|
|
||||||
sgdisk -t 1:"E3C9E316-0B5C-4DB8-817D-F92DF00215AE" ${hdd_img}
|
sgdisk -t 1:"E3C9E316-0B5C-4DB8-817D-F92DF00215AE" "${hdd_img}"
|
||||||
dd if=${BR2_EXTERNAL_HASSOS_PATH}/misc/mbr-spl.img of=${hdd_img} conv=notrunc bs=512 count=1
|
dd if="${BR2_EXTERNAL_HASSOS_PATH}/misc/mbr-spl.img" of="${hdd_img}" conv=notrunc bs=512 count=1
|
||||||
dd if=${spl_img} of=${hdd_img} conv=notrunc bs=512 seek=2 skip=2
|
dd if="${spl_img}" of="${hdd_img}" conv=notrunc bs=512 seek=2 skip=2
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -279,8 +279,8 @@ function _fix_disk_spl_mbr() {
|
|||||||
local spl_img="$(path_spl_img)"
|
local spl_img="$(path_spl_img)"
|
||||||
|
|
||||||
# backup MBR
|
# backup MBR
|
||||||
dd if=${spl_img} of=${hdd_img} conv=notrunc bs=1 count=440
|
dd if="${spl_img}" of="${hdd_img}" conv=notrunc bs=1 count=440
|
||||||
dd if=${spl_img} of=${hdd_img} conv=notrunc bs=512 seek=1 skip=1
|
dd if="${spl_img}" of="${hdd_img}" conv=notrunc bs=512 seek=1 skip=1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -290,22 +290,22 @@ function convert_disk_image_virtual() {
|
|||||||
local hdd_vhdx="$(hassos_image_name vhdx)"
|
local hdd_vhdx="$(hassos_image_name vhdx)"
|
||||||
local hdd_vdi="$(hassos_image_name vdi)"
|
local hdd_vdi="$(hassos_image_name vdi)"
|
||||||
|
|
||||||
rm -f ${hdd_vmdk}
|
rm -f "${hdd_vmdk}"
|
||||||
rm -f ${hdd_vhdx}
|
rm -f "${hdd_vhdx}"
|
||||||
rm -f ${hdd_vdi}
|
rm -f "${hdd_vdi}"
|
||||||
|
|
||||||
qemu-img convert -O vmdk ${hdd_img} ${hdd_vmdk}
|
qemu-img convert -O vmdk "${hdd_img}" "${hdd_vmdk}"
|
||||||
qemu-img convert -O vhdx ${hdd_img} ${hdd_vhdx}
|
qemu-img convert -O vhdx "${hdd_img}" "${hdd_vhdx}"
|
||||||
qemu-img convert -O vdi ${hdd_img} ${hdd_vdi}
|
qemu-img convert -O vdi "${hdd_img}" "${hdd_vdi}"
|
||||||
|
|
||||||
rm -f ${hdd_img}
|
rm -f "${hdd_img}"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function convert_disk_image_gz() {
|
function convert_disk_image_gz() {
|
||||||
local hdd_ext=${1:-img}
|
local hdd_ext=${1:-img}
|
||||||
local hdd_img="$(hassos_image_name ${hdd_ext})"
|
local hdd_img="$(hassos_image_name "${hdd_ext}")"
|
||||||
|
|
||||||
rm -f ${hdd_img}.gz
|
rm -f "${hdd_img}.gz"
|
||||||
gzip --best ${hdd_img}
|
gzip --best "${hdd_img}"
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
# shellcheck disable=SC2155
|
||||||
|
|
||||||
function create_ota_update() {
|
function create_ota_update() {
|
||||||
local ota_file="$(hassos_image_name raucb)"
|
local ota_file="$(hassos_image_name raucb)"
|
||||||
@ -16,13 +17,13 @@ function create_ota_update() {
|
|||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
rm -rf ${rauc_folder} ${ota_file}
|
rm -rf "${rauc_folder}" "${ota_file}"
|
||||||
mkdir -p ${rauc_folder}
|
mkdir -p "${rauc_folder}"
|
||||||
|
|
||||||
cp -f ${kernel} ${rauc_folder}/kernel.ext4
|
cp -f "${kernel}" "${rauc_folder}/kernel.ext4"
|
||||||
cp -f ${boot} ${rauc_folder}/boot.vfat
|
cp -f "${boot}" "${rauc_folder}/boot.vfat"
|
||||||
cp -f ${rootfs} ${rauc_folder}/rootfs.img
|
cp -f "${rootfs}" "${rauc_folder}/rootfs.img"
|
||||||
cp -f ${BR2_EXTERNAL_HASSOS_PATH}/misc/rauc-hook ${rauc_folder}/hook
|
cp -f "${BR2_EXTERNAL_HASSOS_PATH}/misc/rauc-hook" "${rauc_folder}/hook"
|
||||||
|
|
||||||
(
|
(
|
||||||
echo "[update]"
|
echo "[update]"
|
||||||
@ -37,18 +38,18 @@ function create_ota_update() {
|
|||||||
echo "filename=kernel.ext4"
|
echo "filename=kernel.ext4"
|
||||||
echo "[image.rootfs]"
|
echo "[image.rootfs]"
|
||||||
echo "filename=rootfs.img"
|
echo "filename=rootfs.img"
|
||||||
) > ${rauc_folder}/manifest.raucm
|
) > "${rauc_folder}/manifest.raucm"
|
||||||
|
|
||||||
# SPL
|
# SPL
|
||||||
if [ "${BOOT_SYS}" == "spl" ]; then
|
if [ "${BOOT_SYS}" == "spl" ]; then
|
||||||
cp -f ${spl} ${rauc_folder}/spl.img
|
cp -f "${spl}" "${rauc_folder}/spl.img"
|
||||||
|
|
||||||
(
|
(
|
||||||
echo "[image.spl]"
|
echo "[image.spl]"
|
||||||
echo "filename=spl.img"
|
echo "filename=spl.img"
|
||||||
echo "hooks=install"
|
echo "hooks=install"
|
||||||
) >> ${rauc_folder}/manifest.raucm
|
) >> "${rauc_folder}/manifest.raucm"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
rauc bundle -d --cert=${cert} --key=${key} ${rauc_folder} ${ota_file}
|
rauc bundle -d --cert="${cert}" --key="${key}" "${rauc_folder}" "${ota_file}"
|
||||||
}
|
}
|
||||||
|
@ -1,15 +1,16 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
# shellcheck disable=SC1090
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
SCRIPT_DIR=${BR2_EXTERNAL_HASSOS_PATH}/scripts
|
SCRIPT_DIR=${BR2_EXTERNAL_HASSOS_PATH}/scripts
|
||||||
BOARD_DIR=${2}
|
BOARD_DIR=${2}
|
||||||
|
|
||||||
. ${BR2_EXTERNAL_HASSOS_PATH}/meta
|
. "${BR2_EXTERNAL_HASSOS_PATH}/meta"
|
||||||
. ${BOARD_DIR}/meta
|
. "${BOARD_DIR}/meta"
|
||||||
|
|
||||||
. ${SCRIPT_DIR}/rootfs-layer.sh
|
. "${SCRIPT_DIR}/rootfs-layer.sh"
|
||||||
. ${SCRIPT_DIR}/name.sh
|
. "${SCRIPT_DIR}/name.sh"
|
||||||
. ${SCRIPT_DIR}/rauc.sh
|
. "${SCRIPT_DIR}/rauc.sh"
|
||||||
|
|
||||||
|
|
||||||
# HassOS tasks
|
# HassOS tasks
|
||||||
@ -17,6 +18,7 @@ fix_rootfs
|
|||||||
install_hassos_cli
|
install_hassos_cli
|
||||||
|
|
||||||
# Write os-release
|
# Write os-release
|
||||||
|
# shellcheck disable=SC2153
|
||||||
(
|
(
|
||||||
echo "NAME=${HASSOS_NAME}"
|
echo "NAME=${HASSOS_NAME}"
|
||||||
echo "VERSION=\"${VERSION_MAJOR}.${VERSION_BUILD} (${BOARD_NAME})\""
|
echo "VERSION=\"${VERSION_MAJOR}.${VERSION_BUILD} (${BOARD_NAME})\""
|
||||||
@ -27,13 +29,13 @@ install_hassos_cli
|
|||||||
echo "HOME_URL=https://hass.io/"
|
echo "HOME_URL=https://hass.io/"
|
||||||
echo "VARIANT=\"${HASSOS_NAME} ${BOARD_NAME}\""
|
echo "VARIANT=\"${HASSOS_NAME} ${BOARD_NAME}\""
|
||||||
echo "VARIANT_ID=${BOARD_ID}"
|
echo "VARIANT_ID=${BOARD_ID}"
|
||||||
) > ${TARGET_DIR}/usr/lib/os-release
|
) > "${TARGET_DIR}/usr/lib/os-release"
|
||||||
|
|
||||||
# Write machine-info
|
# Write machine-info
|
||||||
(
|
(
|
||||||
echo "CHASSIS=${CHASSIS}"
|
echo "CHASSIS=${CHASSIS}"
|
||||||
echo "DEPLOYMENT=${DEPLOYMENT}"
|
echo "DEPLOYMENT=${DEPLOYMENT}"
|
||||||
) > ${TARGET_DIR}/etc/machine-info
|
) > "${TARGET_DIR}/etc/machine-info"
|
||||||
|
|
||||||
|
|
||||||
# Setup RAUC
|
# Setup RAUC
|
||||||
|
@ -1,19 +1,20 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
# shellcheck disable=SC1090
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
SCRIPT_DIR=${BR2_EXTERNAL_HASSOS_PATH}/scripts
|
SCRIPT_DIR=${BR2_EXTERNAL_HASSOS_PATH}/scripts
|
||||||
BOARD_DIR=${2}
|
BOARD_DIR=${2}
|
||||||
HOOK_FILE=${3}
|
HOOK_FILE=${3}
|
||||||
|
|
||||||
. ${BR2_EXTERNAL_HASSOS_PATH}/meta
|
. "${BR2_EXTERNAL_HASSOS_PATH}/meta"
|
||||||
. ${BOARD_DIR}/meta
|
. "${BOARD_DIR}/meta"
|
||||||
|
|
||||||
. ${SCRIPT_DIR}/hdd-image.sh
|
. "${SCRIPT_DIR}/hdd-image.sh"
|
||||||
. ${SCRIPT_DIR}/rootfs-layer.sh
|
. "${SCRIPT_DIR}/rootfs-layer.sh"
|
||||||
. ${SCRIPT_DIR}/name.sh
|
. "${SCRIPT_DIR}/name.sh"
|
||||||
. ${SCRIPT_DIR}/rauc.sh
|
. "${SCRIPT_DIR}/rauc.sh"
|
||||||
. ${SCRIPT_DIR}/ota.sh
|
. "${SCRIPT_DIR}/ota.sh"
|
||||||
. ${HOOK_FILE}
|
. "${HOOK_FILE}"
|
||||||
|
|
||||||
# Cleanup
|
# Cleanup
|
||||||
rm -rf "$(path_boot_dir)"
|
rm -rf "$(path_boot_dir)"
|
||||||
|
@ -15,17 +15,16 @@ function _create_rauc_header() {
|
|||||||
|
|
||||||
echo "[keyring]"
|
echo "[keyring]"
|
||||||
echo "path=/etc/rauc/keyring.pem"
|
echo "path=/etc/rauc/keyring.pem"
|
||||||
) > ${TARGET_DIR}/etc/rauc/system.conf
|
) > "${TARGET_DIR}/etc/rauc/system.conf"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function _write_rauc_boot() {
|
function _write_rauc_boot() {
|
||||||
local boot_device=${1}
|
|
||||||
(
|
(
|
||||||
echo "[slot.boot.0]"
|
echo "[slot.boot.0]"
|
||||||
echo "device=/dev/disk/by-partlabel/hassos-boot"
|
echo "device=/dev/disk/by-partlabel/hassos-boot"
|
||||||
echo "type=vfat"
|
echo "type=vfat"
|
||||||
) >> ${TARGET_DIR}/etc/rauc/system.conf
|
) >> "${TARGET_DIR}/etc/rauc/system.conf"
|
||||||
|
|
||||||
# SPL
|
# SPL
|
||||||
if ! [[ "${BOOT_SYS}" =~ (spl|mbr) ]]; then
|
if ! [[ "${BOOT_SYS}" =~ (spl|mbr) ]]; then
|
||||||
@ -36,7 +35,7 @@ function _write_rauc_boot() {
|
|||||||
echo "[slot.spl.0]"
|
echo "[slot.spl.0]"
|
||||||
echo "device=/dev/disk/by-partlabel/hassos-boot"
|
echo "device=/dev/disk/by-partlabel/hassos-boot"
|
||||||
echo "type=raw"
|
echo "type=raw"
|
||||||
) >> ${TARGET_DIR}/etc/rauc/system.conf
|
) >> "${TARGET_DIR}/etc/rauc/system.conf"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -54,12 +53,12 @@ function _write_rauc_system() {
|
|||||||
echo "device=/dev/disk/by-partlabel/hassos-system${slot_num}"
|
echo "device=/dev/disk/by-partlabel/hassos-system${slot_num}"
|
||||||
echo "type=raw"
|
echo "type=raw"
|
||||||
echo "parent=kernel.${slot_num}"
|
echo "parent=kernel.${slot_num}"
|
||||||
) >> ${TARGET_DIR}/etc/rauc/system.conf
|
) >> "${TARGET_DIR}/etc/rauc/system.conf"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function write_rauc_config() {
|
function write_rauc_config() {
|
||||||
mkdir -p ${TARGET_DIR}/etc/rauc
|
mkdir -p "${TARGET_DIR}/etc/rauc"
|
||||||
|
|
||||||
_create_rauc_header
|
_create_rauc_header
|
||||||
_write_rauc_boot
|
_write_rauc_boot
|
||||||
@ -70,23 +69,23 @@ function write_rauc_config() {
|
|||||||
|
|
||||||
function install_rauc_certs() {
|
function install_rauc_certs() {
|
||||||
if [ "${DEPLOYMENT}" == "production" ]; then
|
if [ "${DEPLOYMENT}" == "production" ]; then
|
||||||
cp ${BR2_EXTERNAL_HASSOS_PATH}/misc/rel-ca.pem ${TARGET_DIR}/etc/rauc/keyring.pem
|
cp "${BR2_EXTERNAL_HASSOS_PATH}/misc/rel-ca.pem" "${TARGET_DIR}/etc/rauc/keyring.pem"
|
||||||
else
|
else
|
||||||
cp ${BR2_EXTERNAL_HASSOS_PATH}/misc/dev-ca.pem ${TARGET_DIR}/etc/rauc/keyring.pem
|
cp "${BR2_EXTERNAL_HASSOS_PATH}/misc/dev-ca.pem" "${TARGET_DIR}/etc/rauc/keyring.pem"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function install_bootloader_config() {
|
function install_bootloader_config() {
|
||||||
if [ "${BOOTLOADER}" == "uboot" ]; then
|
if [ "${BOOTLOADER}" == "uboot" ]; then
|
||||||
echo -e "/dev/disk/by-partlabel/hassos-bootstate\t0x0000\t${BOOT_ENV_SIZE}" > ${TARGET_DIR}/etc/fw_env.config
|
echo -e "/dev/disk/by-partlabel/hassos-bootstate\t0x0000\t${BOOT_ENV_SIZE}" > "${TARGET_DIR}/etc/fw_env.config"
|
||||||
else
|
else
|
||||||
cp -f ${BR2_EXTERNAL_HASSOS_PATH}/misc/barebox-state-efi.dtb ${TARGET_DIR}/etc/barebox-state.dtb
|
cp -f "${BR2_EXTERNAL_HASSOS_PATH}/misc/barebox-state-efi.dtb" "${TARGET_DIR}/etc/barebox-state.dtb"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Fix MBR
|
# Fix MBR
|
||||||
if [ "${BOOT_SYS}" == "mbr" ]; then
|
if [ "${BOOT_SYS}" == "mbr" ]; then
|
||||||
mkdir -p ${TARGET_DIR}/usr/lib/udev/rules.d
|
mkdir -p "${TARGET_DIR}/usr/lib/udev/rules.d"
|
||||||
cp -f ${BR2_EXTERNAL_HASSOS_PATH}/misc/mbr-part.rules ${TARGET_DIR}/usr/lib/udev/rules.d/
|
cp -f "${BR2_EXTERNAL_HASSOS_PATH}/misc/mbr-part.rules" "${TARGET_DIR}/usr/lib/udev/rules.d/"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
@ -3,35 +3,35 @@
|
|||||||
function fix_rootfs() {
|
function fix_rootfs() {
|
||||||
|
|
||||||
# Cleanup etc
|
# Cleanup etc
|
||||||
rm -rf ${TARGET_DIR}/etc/init.d
|
rm -rf "${TARGET_DIR:?}/etc/init.d"
|
||||||
rm -rf ${TARGET_DIR}/etc/network
|
rm -rf "${TARGET_DIR:?}/etc/network"
|
||||||
rm -rf ${TARGET_DIR}/etc/X11
|
rm -rf "${TARGET_DIR:?}/etc/X11"
|
||||||
rm -rf ${TARGET_DIR}/etc/xdg
|
rm -rf "${TARGET_DIR:?}/etc/xdg"
|
||||||
|
|
||||||
# Cleanup root
|
# Cleanup root
|
||||||
rm -rf ${TARGET_DIR}/media
|
rm -rf "${TARGET_DIR:?}/media"
|
||||||
rm -rf ${TARGET_DIR}/srv
|
rm -rf "${TARGET_DIR:?}/srv"
|
||||||
rm -rf ${TARGET_DIR}/opt
|
rm -rf "${TARGET_DIR:?}/opt"
|
||||||
|
|
||||||
# Cleanup miscs
|
# Cleanup miscs
|
||||||
rm -rf ${TARGET_DIR}/usr/lib/modules-load.d
|
rm -rf "${TARGET_DIR}/usr/lib/modules-load.d"
|
||||||
|
|
||||||
# Fix: permission for system connection files
|
# Fix: permission for system connection files
|
||||||
chmod 600 ${TARGET_DIR}/usr/share/system-connections/*
|
chmod 600 "${TARGET_DIR}/usr/share/system-connections"/*
|
||||||
|
|
||||||
# Fix: tempfs with /srv
|
# Fix: tempfs with /srv
|
||||||
sed -i "/srv/d" ${TARGET_DIR}/usr/lib/tmpfiles.d/home.conf
|
sed -i "/srv/d" "${TARGET_DIR}/usr/lib/tmpfiles.d/home.conf"
|
||||||
|
|
||||||
# Fix: Could not generate persistent MAC address
|
# Fix: Could not generate persistent MAC address
|
||||||
sed -i "s/MACAddressPolicy=persistent/MACAddressPolicy=none/g" ${TARGET_DIR}/usr/lib/systemd/network/99-default.link
|
sed -i "s/MACAddressPolicy=persistent/MACAddressPolicy=none/g" "${TARGET_DIR}/usr/lib/systemd/network/99-default.link"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function install_hassos_cli() {
|
function install_hassos_cli() {
|
||||||
|
|
||||||
sed -i "s|\(root.*\)/bin/sh|\1/usr/sbin/hassos-cli|" ${TARGET_DIR}/etc/passwd
|
sed -i "s|\(root.*\)/bin/sh|\1/usr/sbin/hassos-cli|" "${TARGET_DIR}/etc/passwd"
|
||||||
|
|
||||||
if ! grep "hassos-cli" ${TARGET_DIR}/etc/shells; then
|
if ! grep "hassos-cli" "${TARGET_DIR}/etc/shells"; then
|
||||||
echo "/usr/sbin/hassos-cli" >> ${TARGET_DIR}/etc/shells
|
echo "/usr/sbin/hassos-cli" >> "${TARGET_DIR}/etc/shells"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
@ -6,7 +6,7 @@ mkdir -p /build/release
|
|||||||
all_platforms=(ova rpi rpi0_w rpi2 rpi3 rpi3_64 tinker odroid_c2)
|
all_platforms=(ova rpi rpi0_w rpi2 rpi3 rpi3_64 tinker odroid_c2)
|
||||||
for platform in "${all_platforms[@]}"; do
|
for platform in "${all_platforms[@]}"; do
|
||||||
make -C /build/buildroot BR2_EXTERNAL=/build/buildroot-external \
|
make -C /build/buildroot BR2_EXTERNAL=/build/buildroot-external \
|
||||||
${platform}_defconfig
|
"${platform}_defconfig"
|
||||||
make -C /build/buildroot BR2_EXTERNAL=/build/buildroot-external
|
make -C /build/buildroot BR2_EXTERNAL=/build/buildroot-external
|
||||||
cp -f /build/buildroot/output/images/hassos_* /build/release/
|
cp -f /build/buildroot/output/images/hassos_* /build/release/
|
||||||
|
|
||||||
|
@ -2,4 +2,4 @@
|
|||||||
modprobe overlayfs
|
modprobe overlayfs
|
||||||
|
|
||||||
docker build -t hassbuildroot .
|
docker build -t hassbuildroot .
|
||||||
docker run -it --rm --privileged -v $(pwd):/build -v ${CACHE_DIR:=~/hassos-cache}:/cache hassbuildroot bash
|
docker run -it --rm --privileged -v "$(pwd):/build" -v "${CACHE_DIR:=~/hassos-cache}:/cache" hassbuildroot bash
|
||||||
|
@ -1,9 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
set -e
|
|
||||||
|
|
||||||
VboxManage createvm --name Hass.io --ostype Linux_64 --register
|
|
||||||
VBoxManage modifyvm Hass.io --cpus 2 --memory 1048 --firmware efi
|
|
||||||
VBoxManage modifyvm Hass.io --nic1 bridged
|
|
||||||
VBoxManage storageattach Hass.io --storagectl "SATA Controller" --device 0 --port 0 --type vmdk --medium $1
|
|
||||||
|
|
||||||
VBoxManage export Hass.io --ovf20 --vendor "Home Assistant" --vendorurl "http://hass.io" --output $2
|
|
@ -2,5 +2,5 @@
|
|||||||
set -e
|
set -e
|
||||||
|
|
||||||
for patch_file in buildroot-patches/*; do
|
for patch_file in buildroot-patches/*; do
|
||||||
patch -d buildroot/ -p1 < ${patch_file};
|
patch -d buildroot/ -p1 < "${patch_file}";
|
||||||
done
|
done
|
||||||
|
Loading…
x
Reference in New Issue
Block a user