Rename OS (#16)

Rename OS
This commit is contained in:
Pascal Vizeli 2018-05-14 22:37:39 +02:00 committed by GitHub
parent 4577d01a46
commit 3a5d2de705
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
82 changed files with 216 additions and 215 deletions

View File

@ -1,6 +1,4 @@
# WORK IN PROGRESS! # HassOS
# Hass.io OS
Hass.io OS based on [buildroot](https://buildroot.org/). It's a hypervisor for Docker and supports various kind of IoT hardware. It is also available as virtual appliance. The whole system is optimized for embedded system and security. You can update the system simple with OTA updates or offline updates. Hass.io OS based on [buildroot](https://buildroot.org/). It's a hypervisor for Docker and supports various kind of IoT hardware. It is also available as virtual appliance. The whole system is optimized for embedded system and security. You can update the system simple with OTA updates or offline updates.
## Focus ## Focus
@ -29,14 +27,15 @@ Create a USB stick with a partition named "hassio-config". This partition can in
## Supervisor/Cli ## Supervisor/Cli
Provide a file with the name `hassio.json` in your data partition and the following structure: Provide a file with the name `hassos.json` in your data partition and the following structure:
```json ```json
{ {
"supervisor": "repo/image", "supervisor": "repo/image",
"supervisor_args": "optional / custom docker arguments", "supervisor_args": "optional / custom docker arguments",
"cli": "repo/image", "cli": "repo/image",
"cli_args": "optional / custom docker arguments" "cli_args": "optional / custom docker arguments",
"hostname": "default hostname"
} }
``` ```
@ -44,8 +43,6 @@ Provide a file with the name `hassio.json` in your data partition and the follow
Running `sudo ./enter.sh` will get you into the build Docker container. Running `sudo ./enter.sh` will get you into the build Docker container.
`make -C /build/buildroot BR2_EXTERNAL=/build/buildroot-external xy_defconfig` `make -C /build/buildroot BR2_EXTERNAL=/build/buildroot-external xy_defconfig`
From outside the Docker container, while it is still running you can use `./getimage.sh` to get the output image.
## Helpers ## Helpers
- `make -C /build/buildroot BR2_EXTERNAL=/build/buildroot-external defconfig BR2_DEFCONFIG=/build/buildroot-external/configs/xy_defconfig` - `make -C /build/buildroot BR2_EXTERNAL=/build/buildroot-external defconfig BR2_DEFCONFIG=/build/buildroot-external/configs/xy_defconfig`

View File

@ -1,4 +1,4 @@
source "$BR2_EXTERNAL_HASSIO_PATH/package/mingetty/Config.in" source "$BR2_EXTERNAL_HASSOS_PATH/package/mingetty/Config.in"
source "$BR2_EXTERNAL_HASSIO_PATH/package/hassio/Config.in" source "$BR2_EXTERNAL_HASSOS_PATH/package/hassos/Config.in"
source "$BR2_EXTERNAL_HASSIO_PATH/package/libapparmor/Config.in" source "$BR2_EXTERNAL_HASSOS_PATH/package/libapparmor/Config.in"
source "$BR2_EXTERNAL_HASSIO_PATH/package/apparmor/Config.in" source "$BR2_EXTERNAL_HASSOS_PATH/package/apparmor/Config.in"

View File

@ -1 +1 @@
Hass.io OS boot Menu: HassOS boot Menu:

View File

@ -2,7 +2,7 @@
CONFIG_MMU=y CONFIG_MMU=y
CONFIG_MALLOC_SIZE=0x0 CONFIG_MALLOC_SIZE=0x0
CONFIG_MALLOC_TLSF=y CONFIG_MALLOC_TLSF=y
CONFIG_PROMPT="hassio-os:" CONFIG_PROMPT="HassOS-boot:"
CONFIG_CMDLINE_EDITING=y CONFIG_CMDLINE_EDITING=y
CONFIG_AUTO_COMPLETE=y CONFIG_AUTO_COMPLETE=y
CONFIG_MENU=y CONFIG_MENU=y

View File

@ -1,16 +1,16 @@
#!/bin/bash #!/bin/bash
set -e set -e
SCRIPT_DIR=${BR2_EXTERNAL_HASSIO_PATH}/scripts SCRIPT_DIR=${BR2_EXTERNAL_HASSOS_PATH}/scripts
BOARD_DIR=${2} BOARD_DIR=${2}
BOOT_DATA=${BINARIES_DIR}/boot BOOT_DATA=${BINARIES_DIR}/boot
. ${SCRIPT_DIR}/hdd_image.sh . ${SCRIPT_DIR}/hdd-image.sh
. ${BR2_EXTERNAL_HASSIO_PATH}/info . ${BR2_EXTERNAL_HASSOS_PATH}/info
. ${BOARD_DIR}/info . ${BOARD_DIR}/info
# Filename # Filename
IMAGE_FILE=hassio-os_${BOARD_ID}-${VERSION_MAJOR}.${VERSION_BUILD}.vmdk IMAGE_FILE=${HASSOS_ID}_${BOARD_ID}-${VERSION_MAJOR}.${VERSION_BUILD}.vmdk
# Init boot data # Init boot data
rm -rf ${BOOT_DATA} rm -rf ${BOOT_DATA}
@ -21,9 +21,9 @@ cp ${BINARIES_DIR}/barebox.bin ${BOOT_DATA}/EFI/BOOT/BOOTx64.EFI
cp ${BOARD_DIR}/barebox-state.dtb ${BOOT_DATA}/EFI/barebox/state.dtb cp ${BOARD_DIR}/barebox-state.dtb ${BOOT_DATA}/EFI/barebox/state.dtb
# Create other layers # Create other layers
hassio_boot_image ${BINARIES_DIR} create_boot_image ${BINARIES_DIR}
hassio_overlay_image ${BINARIES_DIR} create_overlay_image ${BINARIES_DIR}
hassio_hdd_image ${BINARIES_DIR} ${BINARIES_DIR}/harddisk.img 6 create_hdd_image ${BINARIES_DIR} ${BINARIES_DIR}/harddisk.img 6
qemu-img convert -O vmdk ${BINARIES_DIR}/harddisk.img ${BINARIES_DIR}/${IMAGE_FILE} qemu-img convert -O vmdk ${BINARIES_DIR}/harddisk.img ${BINARIES_DIR}/${IMAGE_FILE}

View File

@ -1,21 +1,21 @@
[system] [system]
compatible=Hass.io-OS ova compatible=HassOS ova
bootloader=barebox bootloader=barebox
[keyring] [keyring]
path=/etc/rauc/keyring.pem path=/etc/rauc/keyring.pem
[slot.boot.0] [slot.boot.0]
device=/dev/sda0 device=/dev/disk/by-partuuid/b3dd0952-733c-4c88-8cba-cab9b8b4377f
type=vfs type=vfs
bootname=boot bootname=boot
[slot.rootfs.0] [slot.rootfs.0]
device=/dev/sda2 device=/dev/disk/by-partuuid/8d3d53e3-6d49-4c38-8349-aff6859e82fd
type=raw type=raw
bootname=system0 bootname=system0
[slot.rootfs.1] [slot.rootfs.1]
device=/dev/sda3 device=/dev/disk/by-partuuid/a3ec664e-32ce-4665-95ea-7ae90ce9aa20
type=raw type=raw
bootname=system1 bootname=system1

View File

@ -1,27 +1,27 @@
BR2_x86_64=y BR2_x86_64=y
BR2_CCACHE=y BR2_CCACHE=y
BR2_CCACHE_DIR="$(TOPDIR)/ccache" BR2_CCACHE_DIR="$(TOPDIR)/ccache"
BR2_GLOBAL_PATCH_DIR="$(BR2_EXTERNAL_HASSIO_PATH)/patches $(BR2_EXTERNAL_HASSIO_PATH)/board/ova/patches" BR2_GLOBAL_PATCH_DIR="$(BR2_EXTERNAL_HASSOS_PATH)/patches $(BR2_EXTERNAL_HASSOS_PATH)/board/ova/patches"
BR2_TOOLCHAIN_BUILDROOT_GLIBC=y BR2_TOOLCHAIN_BUILDROOT_GLIBC=y
BR2_GCC_VERSION_7_X=y BR2_GCC_VERSION_7_X=y
BR2_TOOLCHAIN_BUILDROOT_CXX=y BR2_TOOLCHAIN_BUILDROOT_CXX=y
BR2_TARGET_GENERIC_HOSTNAME="hassio" BR2_TARGET_GENERIC_HOSTNAME="hassio"
BR2_TARGET_GENERIC_ISSUE="Welcome to Hass.io" BR2_TARGET_GENERIC_ISSUE="Welcome to HassOS"
BR2_INIT_SYSTEMD=y BR2_INIT_SYSTEMD=y
BR2_TARGET_GENERIC_GETTY_PORT="tty1" BR2_TARGET_GENERIC_GETTY_PORT="tty1"
# BR2_TARGET_GENERIC_REMOUNT_ROOTFS_RW is not set # BR2_TARGET_GENERIC_REMOUNT_ROOTFS_RW is not set
BR2_ROOTFS_OVERLAY="$(BR2_EXTERNAL_HASSIO_PATH)/rootfs-overlay $(BR2_EXTERNAL_HASSIO_PATH)/board/ova/rootfs-overlay" BR2_ROOTFS_OVERLAY="$(BR2_EXTERNAL_HASSOS_PATH)/rootfs-overlay $(BR2_EXTERNAL_HASSOS_PATH)/board/ova/rootfs-overlay"
BR2_ROOTFS_POST_BUILD_SCRIPT="$(BR2_EXTERNAL_HASSIO_PATH)/scripts/post-build.sh" BR2_ROOTFS_POST_BUILD_SCRIPT="$(BR2_EXTERNAL_HASSOS_PATH)/scripts/post-build.sh"
BR2_ROOTFS_POST_IMAGE_SCRIPT="$(BR2_EXTERNAL_HASSIO_PATH)/board/ova/post-image.sh" BR2_ROOTFS_POST_IMAGE_SCRIPT="$(BR2_EXTERNAL_HASSOS_PATH)/board/ova/post-image.sh"
BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_EXTERNAL_HASSIO_PATH)/board/ova" BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_EXTERNAL_HASSOS_PATH)/board/ova"
BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_HASSIO_PATH)/board/ova/kernel.config" BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_HASSOS_PATH)/board/ova/kernel.config"
BR2_LINUX_KERNEL_LZ4=y BR2_LINUX_KERNEL_LZ4=y
BR2_LINUX_KERNEL_INSTALL_TARGET=y BR2_LINUX_KERNEL_INSTALL_TARGET=y
BR2_LINUX_KERNEL_NEEDS_HOST_LIBELF=y BR2_LINUX_KERNEL_NEEDS_HOST_LIBELF=y
BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y
BR2_PACKAGE_BUSYBOX_CONFIG="$(BR2_EXTERNAL_HASSIO_PATH)/busybox.config" BR2_PACKAGE_BUSYBOX_CONFIG="$(BR2_EXTERNAL_HASSOS_PATH)/busybox.config"
BR2_PACKAGE_BUSYBOX_INDIVIDUAL_BINARIES=y BR2_PACKAGE_BUSYBOX_INDIVIDUAL_BINARIES=y
BR2_PACKAGE_JQ=y BR2_PACKAGE_JQ=y
BR2_PACKAGE_DOSFSTOOLS=y BR2_PACKAGE_DOSFSTOOLS=y
@ -56,21 +56,21 @@ BR2_TARGET_ROOTFS_SQUASHFS4_LZ4=y
# BR2_TARGET_ROOTFS_TAR is not set # BR2_TARGET_ROOTFS_TAR is not set
BR2_TARGET_BAREBOX=y BR2_TARGET_BAREBOX=y
BR2_TARGET_BAREBOX_USE_CUSTOM_CONFIG=y BR2_TARGET_BAREBOX_USE_CUSTOM_CONFIG=y
BR2_TARGET_BAREBOX_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_HASSIO_PATH)/board/ova/barebox.config" BR2_TARGET_BAREBOX_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_HASSOS_PATH)/board/ova/barebox.config"
BR2_TARGET_BAREBOX_CUSTOM_EMBEDDED_ENV_PATH="$(BR2_EXTERNAL_HASSIO_PATH)/board/ova/barebox-env $(BR2_EXTERNAL_HASSIO_PATH)/barebox-env" BR2_TARGET_BAREBOX_CUSTOM_EMBEDDED_ENV_PATH="$(BR2_EXTERNAL_HASSOS_PATH)/board/ova/barebox-env $(BR2_EXTERNAL_HASSOS_PATH)/barebox-env"
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
BR2_PACKAGE_HOST_MTOOLS=y BR2_PACKAGE_HOST_MTOOLS=y
BR2_PACKAGE_HOST_RAUC=y BR2_PACKAGE_HOST_RAUC=y
BR2_PACKAGE_MINGETTY=y BR2_PACKAGE_MINGETTY=y
BR2_PACKAGE_HASSIO=y BR2_PACKAGE_HASSOS=y
BR2_PACKAGE_HASSIO_SUPERVISOR="homeassistant/amd64-hassio-supervisor" BR2_PACKAGE_HASSOS_SUPERVISOR="homeassistant/amd64-hassio-supervisor"
BR2_PACKAGE_HASSIO_SUPERVISOR_VERSION="103.3" BR2_PACKAGE_HASSOS_SUPERVISOR_VERSION="103.3"
BR2_PACKAGE_HASSIO_SUPERVISOR_ARGS="-e HOMEASSISTANT_REPOSITORY=homeassistant/qemux86-64-homeassistant" BR2_PACKAGE_HASSOS_SUPERVISOR_ARGS="-e HOMEASSISTANT_REPOSITORY=homeassistant/qemux86-64-homeassistant"
BR2_PACKAGE_HASSIO_SUPERVISOR_PROFILE="hassio-supervisor" BR2_PACKAGE_HASSOS_SUPERVISOR_PROFILE="hassio-supervisor"
BR2_PACKAGE_HASSIO_CLI="homeassistant/amd64-hassio-cli" BR2_PACKAGE_HASSOS_CLI="homeassistant/amd64-hassio-cli"
BR2_PACKAGE_HASSIO_CLI_VERSION="3" BR2_PACKAGE_HASSOS_CLI_VERSION="3"
BR2_PACKAGE_HASSIO_CLI_PROFILE="docker-default" BR2_PACKAGE_HASSOS_CLI_PROFILE="docker-default"
BR2_PACKAGE_HASSIO_APPARMOR_DIR="supervisor/apparmor" BR2_PACKAGE_HASSOS_APPARMOR_DIR="supervisor/apparmor"
BR2_PACKAGE_APPARMOR=y BR2_PACKAGE_APPARMOR=y

View File

@ -1,2 +1,2 @@
name: HASSIO name: HASSOS
desc: HassIO Buildroot tree desc: HassOS Buildroot tree

View File

@ -1 +1 @@
include $(sort $(wildcard $(BR2_EXTERNAL_HASSIO_PATH)/package/*/*.mk)) include $(sort $(wildcard $(BR2_EXTERNAL_HASSOS_PATH)/package/*/*.mk))

View File

@ -2,5 +2,6 @@ VERSION_MAJOR=0
VERSION_BUILD=3 VERSION_BUILD=3
HASSOS_NAME="HassOS" HASSOS_NAME="HassOS"
HASSOS_ID="hassos"
DEPLOYMENT=development DEPLOYMENT=development

View File

@ -1,33 +0,0 @@
################################################################################
#
# hassio
#
################################################################################
HASSIO_VERSION = 1.0.0
HASSIO_LICENSE = Apache License 2.0
HASSIO_LICENSE_FILES = $(BR2_EXTERNAL_HASSIO_PATH)/../LICENSE
HASSIO_SITE = $(BR2_EXTERNAL_HASSIO_PATH)/package/hassio
HASSIO_SITE_METHOD = local
define HASSIO_BUILD_CMDS
docker build --tag hassio-hostapps $(@D)/builder
endef
define HASSIO_INSTALL_TARGET_CMDS
docker run --rm --privileged \
-v $(BINARIES_DIR):/export \
-v $(BR2_EXTERNAL_HASSIO_PATH)/apparmor:/apparmor \
hassio-hostapps \
--supervisor $(BR2_PACKAGE_HASSIO_SUPERVISOR) \
--supervisor-version $(BR2_PACKAGE_HASSIO_SUPERVISOR_VERSION) \
--supervisor-args $(BR2_PACKAGE_HASSIO_SUPERVISOR_ARGS) \
--supervisor-profile $(BR2_PACKAGE_HASSIO_SUPERVISOR_PROFILE) \
--cli $(BR2_PACKAGE_HASSIO_CLI) \
--cli-version $(BR2_PACKAGE_HASSIO_CLI_VERSION) \
--cli-args $(BR2_PACKAGE_HASSIO_CLI_ARGS) \
--cli-profile $(BR2_PACKAGE_HASSIO_CLI_PROFILE) \
--apparmor $(BR2_PACKAGE_HASSIO_APPARMOR_DIR)
endef
$(eval $(generic-package))

View File

@ -1,54 +1,54 @@
menuconfig BR2_PACKAGE_HASSIO menuconfig BR2_PACKAGE_HASSOS
bool "hassio-app" bool "hassos-app"
help help
This is the Application layer they build the This is the Application layer they build the
data partition with configurations. data partition with configurations.
https://github.com/home-assistant/hassio-os https://github.com/home-assistant/hassos
if BR2_PACKAGE_HASSIO if BR2_PACKAGE_HASSOS
config BR2_PACKAGE_HASSIO_SUPERVISOR config BR2_PACKAGE_HASSOS_SUPERVISOR
string "supervisor docker image" string "supervisor docker image"
help help
Name of supervisor docker image they will be build in. Name of supervisor docker image they will be build in.
config BR2_PACKAGE_HASSIO_SUPERVISOR_VERSION config BR2_PACKAGE_HASSOS_SUPERVISOR_VERSION
string "supervisor docker image version" string "supervisor docker image version"
help help
Version of supervisor docker image they will be build in. Version of supervisor docker image they will be build in.
config BR2_PACKAGE_HASSIO_SUPERVISOR_ARGS config BR2_PACKAGE_HASSOS_SUPERVISOR_ARGS
string "supervisor docker arguments" string "supervisor docker arguments"
help help
Extended docker arguments to run the supervisor. Extended docker arguments to run the supervisor.
config BR2_PACKAGE_HASSIO_SUPERVISOR_PROFILE config BR2_PACKAGE_HASSOS_SUPERVISOR_PROFILE
string "AppArmor supervisor profile" string "AppArmor supervisor profile"
help help
AppArmor profile for supervisor. AppArmor profile for supervisor.
config BR2_PACKAGE_HASSIO_CLI config BR2_PACKAGE_HASSOS_CLI
string "cli docker image" string "cli docker image"
help help
Name of cli docker image they will be build in. Name of cli docker image they will be build in.
config BR2_PACKAGE_HASSIO_CLI_VERSION config BR2_PACKAGE_HASSOS_CLI_VERSION
string "cli docker image version" string "cli docker image version"
help help
Version of cli docker image they will be build in. Version of cli docker image they will be build in.
config BR2_PACKAGE_HASSIO_CLI_ARGS config BR2_PACKAGE_HASSOS_CLI_ARGS
string "cli docker arguments" string "cli docker arguments"
help help
Extended docker arguments to run the cli. Extended docker arguments to run the cli.
config BR2_PACKAGE_HASSIO_CLI_PROFILE config BR2_PACKAGE_HASSOS_CLI_PROFILE
string "AppArmor cli profile" string "AppArmor cli profile"
help help
AppArmor profile for cli. AppArmor profile for cli.
config BR2_PACKAGE_HASSIO_APPARMOR_DIR config BR2_PACKAGE_HASSOS_APPARMOR_DIR
string "AppArmor profiles folder" string "AppArmor profiles folder"
help help
AppArmor profiles folder for supervisor. AppArmor profiles folder for supervisor.

View File

@ -61,7 +61,7 @@ done
# Make image # Make image
dd if=/dev/zero of=${DATA_IMG} bs=1G count=1 dd if=/dev/zero of=${DATA_IMG} bs=1G count=1
mkfs.ext4 -L "hassio-data" -E lazy_itable_init=0,lazy_journal_init=0 ${DATA_IMG} mkfs.ext4 -L "hassos-data" -E lazy_itable_init=0,lazy_journal_init=0 ${DATA_IMG}
# Mount / init file structs # Mount / init file structs
mkdir -p /mnt/data/ mkdir -p /mnt/data/
@ -91,7 +91,7 @@ docker pull "${CLI}:${CLI_VERSION}"
docker tag "${CLI}:${CLI_VERSION}" "${CLI}:latest" docker tag "${CLI}:${CLI_VERSION}" "${CLI}:latest"
# Write config # Write config
cat > /mnt/data/hassio.json <<- EOF cat > /mnt/data/hassos.json <<- EOF
{ {
"supervisor": "${SUPERVISOR}", "supervisor": "${SUPERVISOR}",
"supervisor_args": "${SUPERVISOR_ARGS}", "supervisor_args": "${SUPERVISOR_ARGS}",

View File

@ -0,0 +1,33 @@
################################################################################
#
# HassOS
#
################################################################################
HASSOS_VERSION = 1.0.0
HASSOS_LICENSE = Apache License 2.0
HASSOS_LICENSE_FILES = $(BR2_EXTERNAL_HASSOS_PATH)/../LICENSE
HASSOS_SITE = $(BR2_EXTERNAL_HASSOS_PATH)/package/hassos
HASSOS_SITE_METHOD = local
define HASSOS_BUILD_CMDS
docker build --tag hassos-hostapps $(@D)/builder
endef
define HASSOS_INSTALL_TARGET_CMDS
docker run --rm --privileged \
-v $(BINARIES_DIR):/export \
-v $(BR2_EXTERNAL_HASSOS_PATH)/apparmor:/apparmor \
hassos-hostapps \
--supervisor $(BR2_PACKAGE_HASSOS_SUPERVISOR) \
--supervisor-version $(BR2_PACKAGE_HASSOS_SUPERVISOR_VERSION) \
--supervisor-args $(BR2_PACKAGE_HASSOS_SUPERVISOR_ARGS) \
--supervisor-profile $(BR2_PACKAGE_HASSOS_SUPERVISOR_PROFILE) \
--cli $(BR2_PACKAGE_HASSOS_CLI) \
--cli-version $(BR2_PACKAGE_HASSOS_CLI_VERSION) \
--cli-args $(BR2_PACKAGE_HASSOS_CLI_ARGS) \
--cli-profile $(BR2_PACKAGE_HASSOS_CLI_PROFILE) \
--apparmor $(BR2_PACKAGE_HASSOS_APPARMOR_DIR)
endef
$(eval $(generic-package))

View File

@ -1 +0,0 @@
/usr/lib/systemd/system/hassio-expand.service

View File

@ -0,0 +1 @@
/usr/lib/systemd/system/hassos-expand.service

View File

@ -1 +0,0 @@
/usr/lib/systemd/system/hassio-apparmor.service

View File

@ -1 +0,0 @@
/usr/lib/systemd/system/hassio-bind.target

View File

@ -1 +0,0 @@
/usr/lib/systemd/system/hassio-config.service

View File

@ -1 +0,0 @@
/usr/lib/systemd/system/hassio-supervisor.service

View File

@ -1 +0,0 @@
/usr/lib/systemd/system/hassio-zram.target

View File

@ -0,0 +1 @@
/usr/lib/systemd/system/hassos-apparmor.service

View File

@ -0,0 +1 @@
/usr/lib/systemd/system/hassos-bind.target

View File

@ -0,0 +1 @@
/usr/lib/systemd/system/hassos-config.service

View File

@ -0,0 +1 @@
/usr/lib/systemd/system/hassos-supervisor.service

View File

@ -0,0 +1 @@
/usr/lib/systemd/system/hassos-zram.target

View File

@ -1,5 +1,5 @@
[Unit] [Unit]
Description=Hassio ZRAM swap Description=HassOS ZRAM swap
Requires=zram-swap.service Requires=zram-swap.service
After=zram-swap.service After=zram-swap.service

View File

@ -2,7 +2,7 @@
Description=NetworkManager system connections Description=NetworkManager system connections
Requires=mnt-overlay.mount Requires=mnt-overlay.mount
After=mnt-overlay.mount After=mnt-overlay.mount
Before=NetworkManager.service hassio-config.service Before=NetworkManager.service hassos-config.service
[Mount] [Mount]
What=/mnt/overlay/etc/NetworkManager/system-connections What=/mnt/overlay/etc/NetworkManager/system-connections
@ -11,4 +11,4 @@ Type=None
Options=bind Options=bind
[Install] [Install]
WantedBy=hassio-bind.target WantedBy=hassos-bind.target

View File

@ -11,4 +11,4 @@ Type=none
Options=bind Options=bind
[Install] [Install]
WantedBy=hassio-bind.target WantedBy=hassos-bind.target

View File

@ -11,4 +11,4 @@ Type=none
Options=bind Options=bind
[Install] [Install]
WantedBy=hassio-bind.target WantedBy=hassos-bind.target

View File

@ -11,4 +11,4 @@ Type=none
Options=bind Options=bind
[Install] [Install]
WantedBy=hassio-bind.target WantedBy=hassos-bind.target

View File

@ -11,4 +11,4 @@ Type=none
Options=bind Options=bind
[Install] [Install]
WantedBy=hassio-bind.target WantedBy=hassos-bind.target

View File

@ -1,13 +0,0 @@
[Unit]
Description=Hass.io AppArmor
Wants=hassio-supervisor.service
Before=docker.service hassio-supervisor.service
RequiresMountsFor=/mnt/data
[Service]
Type=oneshot
RemainAfterExit=true
ExecStart=/usr/sbin/hassio-apparmor
[Install]
WantedBy=multi-user.target

View File

@ -1,10 +0,0 @@
[Unit]
Description=Hassio Configuration Manager
After=hassio-bind.target network.target
[Service]
Type=oneshot
ExecStart=/sbin/hassio-config
[Install]
WantedBy=multi-user.target

View File

@ -0,0 +1,13 @@
[Unit]
Description=HassOS AppArmor
Wants=hassos-supervisor.service
Before=docker.service hassos-supervisor.service
RequiresMountsFor=/mnt/data
[Service]
Type=oneshot
RemainAfterExit=true
ExecStart=/usr/sbin/hassos-apparmor
[Install]
WantedBy=multi-user.target

View File

@ -1,5 +1,5 @@
[Unit] [Unit]
Description=Hassio overlay targets Description=HassOS overlay targets
Documentation=man:systemd.target(5) Documentation=man:systemd.target(5)
After=local-fs.target After=local-fs.target
Before=sysinit.target Before=sysinit.target

View File

@ -0,0 +1,10 @@
[Unit]
Description=HassOS Configuration Manager
After=hassos-bind.target network.target
[Service]
Type=oneshot
ExecStart=/usr/sbin/hassos-config
[Install]
WantedBy=multi-user.target

View File

@ -1,11 +1,11 @@
[Unit] [Unit]
Description=Hassio data resizing Description=HassOS data resizing
DefaultDependencies=no DefaultDependencies=no
Before=mnt-data.mount Before=mnt-data.mount
[Service] [Service]
Type=oneshot Type=oneshot
ExecStart=/sbin/hassio-expand ExecStart=/usr/sbin/hassos-expand
RemainAfterExit=true RemainAfterExit=true
[Install] [Install]

View File

@ -1,5 +1,5 @@
[Unit] [Unit]
Description=Hass.io supervisor Description=HassOS supervisor
Requires=docker.service Requires=docker.service
After=docker.service dbus.socket After=docker.service dbus.socket
RequiresMountsFor=/mnt/data RequiresMountsFor=/mnt/data
@ -10,9 +10,9 @@ StartLimitBurst=5
Type=simple Type=simple
Restart=always Restart=always
RestartSec=5s RestartSec=5s
ExecStartPre=-/usr/bin/docker stop hassio_supervisor ExecStartPre=-/usr/bin/docker stop hassos_supervisor
ExecStart=/usr/sbin/hassio-supervisor ExecStart=/usr/sbin/hassos-supervisor
ExecStop=-/usr/bin/docker stop hassio_supervisor ExecStop=-/usr/bin/docker stop hassos_supervisor
[Install] [Install]
WantedBy=multi-user.target WantedBy=multi-user.target

View File

@ -1,3 +1,3 @@
[Unit] [Unit]
Description=Hassio zram targets Description=HassOS zram targets
Documentation=man:systemd.target(5) Documentation=man:systemd.target(5)

View File

@ -1,12 +1,12 @@
[Unit] [Unit]
Description=Hassio boot partition Description=HassOS boot partition
DefaultDependencies=no DefaultDependencies=no
Before=umount.target Before=umount.target
After=local-fs.target After=local-fs.target
Conflicts=umount.target Conflicts=umount.target
[Mount] [Mount]
What=LABEL=hassio-boot What=LABEL=hassos-boot
Where=/mnt/boot Where=/mnt/boot
Type=auto Type=auto

View File

@ -1,13 +1,13 @@
[Unit] [Unit]
Description=Hassio data partition Description=HassOS data partition
Wants=hassio-expand.service Wants=hassos-expand.service
DefaultDependencies=no DefaultDependencies=no
After=hassio-expand.service After=hassos-expand.service
Before=umount.target systemd-tmpfiles-setup.service Before=umount.target systemd-tmpfiles-setup.service
Conflicts=umount.target Conflicts=umount.target
[Mount] [Mount]
What=LABEL=hassio-data What=LABEL=hassos-data
Where=/mnt/data Where=/mnt/data
Type=ext4 Type=ext4

View File

@ -1,11 +1,11 @@
[Unit] [Unit]
Description=Hassio overlay partition Description=HassOS overlay partition
DefaultDependencies=no DefaultDependencies=no
Before=umount.target systemd-tmpfiles-setup.service Before=umount.target systemd-tmpfiles-setup.service
Conflicts=umount.target Conflicts=umount.target
[Mount] [Mount]
What=LABEL=hassio-overlay What=LABEL=hassos-overlay
Where=/mnt/overlay Where=/mnt/overlay
Type=ext4 Type=ext4

View File

@ -1,5 +1,5 @@
[Unit] [Unit]
Description=Rauc mark bad Description=HassOS rauc bad
Requires=rauc.service Requires=rauc.service
RefuseManualStart=true RefuseManualStart=true
RefuseManualStop=true RefuseManualStop=true

View File

@ -1,6 +1,6 @@
[Unit] [Unit]
Description=Hassio rauc good Description=HassOS rauc good
Requires=hassio-supervisor.service rauc.service Requires=hassos-supervisor.service rauc.service
RefuseManualStart=true RefuseManualStart=true
RefuseManualStop=true RefuseManualStop=true

View File

@ -1,5 +1,5 @@
[Unit] [Unit]
Description=Rauc mark boot partition as good Description=HassOS mark boot partition as good
[Timer] [Timer]
OnBootSec=1min OnBootSec=1min

View File

@ -11,4 +11,4 @@ Type=None
Options=bind Options=bind
[Install] [Install]
WantedBy=hassio-bind.target WantedBy=hassos-bind.target

View File

@ -2,7 +2,7 @@
Description=Dropbear persistent user Description=Dropbear persistent user
Requires=mnt-overlay.mount Requires=mnt-overlay.mount
After=mnt-overlay.mount After=mnt-overlay.mount
Before=dropbear.service hassio-config.service Before=dropbear.service hassos-config.service
[Mount] [Mount]
What=/mnt/overlay/root/.ssh What=/mnt/overlay/root/.ssh
@ -11,4 +11,4 @@ Type=None
Options=bind Options=bind
[Install] [Install]
WantedBy=hassio-bind.target WantedBy=hassos-bind.target

View File

@ -11,4 +11,4 @@ Type=none
Options=bind Options=bind
[Install] [Install]
WantedBy=hassio-bind.target WantedBy=hassos-bind.target

View File

@ -10,4 +10,4 @@ Type=None
Options=bind Options=bind
[Install] [Install]
WantedBy=hassio-bind.target WantedBy=hassos-bind.target

View File

@ -11,4 +11,4 @@ Type=None
Options=bind Options=bind
[Install] [Install]
WantedBy=hassio-bind.target WantedBy=hassos-bind.target

View File

@ -1,5 +1,5 @@
[Unit] [Unit]
Description=Hassio ZRAM var Description=HassOS ZRAM var
DefaultDependencies=no DefaultDependencies=no
Requires=zram-var.service Requires=zram-var.service
After=zram-var.service After=zram-var.service

View File

@ -1,13 +1,13 @@
[Unit] [Unit]
Description=Hassio ZRAM Description=HassOS ZRAM swap
DefaultDependencies=no DefaultDependencies=no
Before=dev-zram0.swap Before=dev-zram0.swap
[Service] [Service]
Type=oneshot Type=oneshot
ExecStart=/sbin/hassio-zram -t swap ExecStart=/usr/sbin/hassos-zram -t swap
RemainAfterExit=true RemainAfterExit=true
StandardOutput=null StandardOutput=null
[Install] [Install]
WantedBy=hassio-zram.target WantedBy=hassos-zram.target

View File

@ -1,13 +1,13 @@
[Unit] [Unit]
Description=Hassio ZRAM tmp Description=HassOS ZRAM tmp
DefaultDependencies=no DefaultDependencies=no
Before=tmp.mount Before=tmp.mount
[Service] [Service]
Type=oneshot Type=oneshot
ExecStart=/sbin/hassio-zram -t fs -m tmp -s 16M ExecStart=/usr/sbin/hassos-zram -t fs -m tmp -s 16M
RemainAfterExit=true RemainAfterExit=true
StandardOutput=null StandardOutput=null
[Install] [Install]
WantedBy=hassio-zram.target WantedBy=hassos-zram.target

View File

@ -1,13 +1,13 @@
[Unit] [Unit]
Description=Hassio ZRAM var Description=HassOS ZRAM var
DefaultDependencies=no DefaultDependencies=no
Before=var.mount Before=var.mount
[Service] [Service]
Type=oneshot Type=oneshot
ExecStart=/sbin/hassio-zram -t fs -m var -s 32M ExecStart=/usr/sbin/hassos-zram -t fs -m var -s 32M
RemainAfterExit=true RemainAfterExit=true
StandardOutput=null StandardOutput=null
[Install] [Install]
WantedBy=hassio-zram.target WantedBy=hassos-zram.target

View File

@ -2,7 +2,7 @@
set -e set -e
# Load configs # Load configs
CONFIG_FILE=/mnt/data/hassio.json CONFIG_FILE=/mnt/data/hassos.json
# Read configs # Read configs
PROFILES_DIR="$(jq --raw-output '.apparmor // empty' ${CONFIG_FILE})" PROFILES_DIR="$(jq --raw-output '.apparmor // empty' ${CONFIG_FILE})"

View File

@ -1,7 +1,7 @@
#!/bin/sh #!/bin/sh
# Load configs # Load configs
CONFIG_FILE=/mnt/data/hassio.json CONFIG_FILE=/mnt/data/hassos.json
CLI="$(jq --raw-output '.cli' ${CONFIG_FILE})" CLI="$(jq --raw-output '.cli' ${CONFIG_FILE})"
DOCKER_ARGS="$(jq --raw-output '.cli_args // empty' ${CONFIG_FILE})" DOCKER_ARGS="$(jq --raw-output '.cli_args // empty' ${CONFIG_FILE})"

View File

@ -1,14 +1,14 @@
#!/bin/sh #!/bin/sh
set -e set -e
# Check if hassio-config is present # Check if hassos-config is present
if ! findfs LABEL="hassio-config" > /dev/null; then if ! findfs LABEL="hassos-config" > /dev/null; then
echo "[Warning] No hassio-config partition found!" echo "[Warning] No hassos-config partition found!"
exit 0 exit 0
fi fi
# Mount config partition # Mount config partition
mount -o ro LABEL="hassio-config" /mnt/config mount -o ro LABEL="hassos-config" /mnt/config
## ##
# NetworkManager # NetworkManager

View File

@ -1,7 +1,7 @@
#!/bin/sh #!/bin/sh
set -e set -e
DEVICE_CHILD=$(findfs LABEL="hassio-data") DEVICE_CHILD=$(findfs LABEL="hassos-data")
DEVICE_ROOT="/dev/$(lsblk -no pkname ${DEVICE_CHILD})" DEVICE_ROOT="/dev/$(lsblk -no pkname ${DEVICE_CHILD})"
# Need resize # Need resize
@ -11,14 +11,14 @@ if [ $(sgdisk -E ${DEVICE_ROOT}) -le 2048 ]; then
fi fi
# Resize & Reload partition # Resize & Reload partition
echo "[INFO] Update hassio-data partition" echo "[INFO] Update hassos-data partition"
sgdisk -d 6 -n 6:0:0 -c 6:"hassio-data" -t 6:"0FC63DAF-8483-4772-8E79-3D69D8477DE4" ${DEVICE_ROOT} sgdisk -d 6 -n 6:0:0 -c 6:"hassos-data" -t 6:"0FC63DAF-8483-4772-8E79-3D69D8477DE4" -u 6:"a52a4597-fa3a-4851-aefd-2fbe9f849079" ${DEVICE_ROOT}
sgdisk -v ${DEVICE_ROOT} sgdisk -v ${DEVICE_ROOT}
partx -u ${DEVICE_ROOT} partx -u ${DEVICE_ROOT}
# Resize filesystem # Resize filesystem
echo "[INFO] Resize hassio-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 hassio-data resizing" echo "[INFO] Finish hassos-data resizing"

View File

@ -2,16 +2,16 @@
set -e set -e
# Load configs # Load configs
CONFIG_FILE=/mnt/data/hassio.json CONFIG_FILE=/mnt/data/hassos.json
SUPERVISOR="$(jq --raw-output '.supervisor' ${CONFIG_FILE})" SUPERVISOR="$(jq --raw-output '.supervisor' ${CONFIG_FILE})"
DOCKER_ARGS="$(jq --raw-output '.supervisor_args // empty' ${CONFIG_FILE})" DOCKER_ARGS="$(jq --raw-output '.supervisor_args // empty' ${CONFIG_FILE})"
APPARMOR="$(jq --raw-output '.supervisor_apparmor // "docker-default"' ${CONFIG_FILE})" APPARMOR="$(jq --raw-output '.supervisor_apparmor // "docker-default"' ${CONFIG_FILE})"
# Init supervisor # Init supervisor
HASSIO_DATA=/mnt/data/supervisor HASSOS_DATA=/mnt/data/supervisor
HASSIO_IMAGE_ID=$(docker inspect --format='{{.Id}}' ${SUPERVISOR}) HASSOS_IMAGE_ID=$(docker inspect --format='{{.Id}}' ${SUPERVISOR})
HASSIO_CONTAINER_ID=$(docker inspect --format='{{.Image}}' hassio_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
@ -19,18 +19,18 @@ if ! grep ${APPARMOR} /sys/kernel/security/apparmor/profiles > /dev/null; then
fi fi
runSupervisor() { runSupervisor() {
docker rm --force hassio_supervisor || true docker rm --force hassos_supervisor || true
docker run --name hassio_supervisor \ docker 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 \
-v /var/run/dbus:/var/run/dbus \ -v /var/run/dbus:/var/run/dbus \
-v ${HASSIO_DATA}:/data \ -v ${HASSOS_DATA}:/data \
-e SUPERVISOR_SHARE=${HASSIO_DATA} \ -e SUPERVISOR_SHARE=${HASSOS_DATA} \
-e SUPERVISOR_NAME=hassio_supervisor \ -e SUPERVISOR_NAME=hassos_supervisor \
$DOCKER_ARGS \ $DOCKER_ARGS \
${SUPERVISOR} ${SUPERVISOR}
} }
# Run supervisor # Run supervisor
mkdir -p ${HASSIO_DATA} mkdir -p ${HASSOS_DATA}
([ "${HASSIO_IMAGE_ID}" = "${HASSIO_CONTAINER_ID}" ] && docker start --attach hassio_supervisor) || runSupervisor ([ "${HASSOS_IMAGE_ID}" = "${HASSOS_CONTAINER_ID}" ] && docker start --attach hassos_supervisor) || runSupervisor

View File

@ -61,10 +61,10 @@ zramctl "$DEVICE" -s "$SIZE" -a lz4
# Swap # Swap
if [ "$TYPE" = "swap" ]; then if [ "$TYPE" = "swap" ]; then
mkswap -L "hassio-zramswap" "$DEVICE" mkswap -L "hassos-zramswap" "$DEVICE"
fi fi
# FileSystem # FileSystem
if [ "$TYPE" = "fs" ]; then if [ "$TYPE" = "fs" ]; then
mkfs.ext4 -L "hassio-$MOUNT" -O ^has_journal "$DEVICE" mkfs.ext4 -L "hassos-$MOUNT" -O ^has_journal "$DEVICE"
fi fi

View File

@ -13,24 +13,24 @@ SYSTEM_SIZE=256M
OVERLAY_SIZE=64M OVERLAY_SIZE=64M
DATA_SIZE=1G DATA_SIZE=1G
function hassio_boot_image() { function create_boot_image() {
local boot_data="${1}/boot" local boot_data="${1}/boot"
local boot_img="${1}/boot.vfat" local boot_img="${1}/boot.vfat"
echo "mtools_skip_check=1" > ~/.mtoolsrc echo "mtools_skip_check=1" > ~/.mtoolsrc
dd if=/dev/zero of=${boot_img} bs=${BOOT_SIZE} count=1 dd if=/dev/zero of=${boot_img} bs=${BOOT_SIZE} count=1
mkfs.vfat -n "hassio-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 hassio_overlay_image() { function create_overlay_image() {
local overlay_img="${1}/overlay.ext4" local overlay_img="${1}/overlay.ext4"
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 "hassio-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 hassio_hdd_image() { function create_hdd_image() {
local boot_img="${1}/boot.vfat" local boot_img="${1}/boot.vfat"
local rootfs_img="${1}/rootfs.squashfs" local rootfs_img="${1}/rootfs.squashfs"
local overlay_img="${1}/overlay.ext4" local overlay_img="${1}/overlay.ext4"
@ -50,15 +50,15 @@ function hassio_hdd_image() {
# Partition layout # Partition layout
boot_offset="$(sgdisk -F ${hdd_img})" boot_offset="$(sgdisk -F ${hdd_img})"
sgdisk -n 1:0:+${BOOT_SIZE} -c 1:"hassio-boot" -t 1:"C12A7328-F81F-11D2-BA4B-00A0C93EC93B" -u 1:${BOOT_UUID} ${hdd_img} sgdisk -n 1:0:+${BOOT_SIZE} -c 1:"hassos-boot" -t 1:"C12A7328-F81F-11D2-BA4B-00A0C93EC93B" -u 1:${BOOT_UUID} ${hdd_img}
rootfs_offset="$(sgdisk -F ${hdd_img})" rootfs_offset="$(sgdisk -F ${hdd_img})"
sgdisk -n 2:0:+${SYSTEM_SIZE} -c 2:"hassio-system0" -t 2:"0FC63DAF-8483-4772-8E79-3D69D8477DE4" -u 2:${SYSTEM0_UUID} ${hdd_img} sgdisk -n 2:0:+${SYSTEM_SIZE} -c 2:"hassos-system0" -t 2:"0FC63DAF-8483-4772-8E79-3D69D8477DE4" -u 2:${SYSTEM0_UUID} ${hdd_img}
sgdisk -n 3:0:+${SYSTEM_SIZE} -c 3:"hassio-system1" -t 3:"0FC63DAF-8483-4772-8E79-3D69D8477DE4" -u 3:${SYSTEM1_UUID} ${hdd_img} sgdisk -n 3:0:+${SYSTEM_SIZE} -c 3:"hassos-system1" -t 3:"0FC63DAF-8483-4772-8E79-3D69D8477DE4" -u 3:${SYSTEM1_UUID} ${hdd_img}
sgdisk -n 4:0:+${BOOTSTATE_SIZE} -c 4:"hassio-bootstate" -u 4:${BOOTSTATE_UUID} ${hdd_img} sgdisk -n 4:0:+${BOOTSTATE_SIZE} -c 4:"hassos-bootstate" -u 4:${BOOTSTATE_UUID} ${hdd_img}
overlay_offset="$(sgdisk -F ${hdd_img})" overlay_offset="$(sgdisk -F ${hdd_img})"
sgdisk -n 5:0:+${OVERLAY_SIZE} -c 5:"hassio-overlay" -t 5:"0FC63DAF-8483-4772-8E79-3D69D8477DE4" -u 5:${OVERLAY_UUID} ${hdd_img} sgdisk -n 5:0:+${OVERLAY_SIZE} -c 5:"hassos-overlay" -t 5:"0FC63DAF-8483-4772-8E79-3D69D8477DE4" -u 5:${OVERLAY_UUID} ${hdd_img}
data_offset="$(sgdisk -F ${hdd_img})" data_offset="$(sgdisk -F ${hdd_img})"
sgdisk -n 6:0:+${DATA_SIZE} -c 6:"hassio-data" -t 6:"0FC63DAF-8483-4772-8E79-3D69D8477DE4" -u 6:${DATA_UUID} ${hdd_img} sgdisk -n 6:0:+${DATA_SIZE} -c 6:"hassos-data" -t 6:"0FC63DAF-8483-4772-8E79-3D69D8477DE4" -u 6:${DATA_UUID} ${hdd_img}
sgdisk -v sgdisk -v
# Write Images # Write Images

View File

@ -1,27 +1,27 @@
#!/bin/bash #!/bin/bash
set -e set -e
SCRIPT_DIR=${BR2_EXTERNAL_HASSIO_PATH}/scripts SCRIPT_DIR=${BR2_EXTERNAL_HASSOS_PATH}/scripts
BOARD_DIR=${2} BOARD_DIR=${2}
. ${SCRIPT_DIR}/rootfs_layer.sh . ${SCRIPT_DIR}/rootfs-layer.sh
. ${BR2_EXTERNAL_HASSIO_PATH}/info . ${BR2_EXTERNAL_HASSOS_PATH}/info
. ${BOARD_DIR}/info . ${BOARD_DIR}/info
# Hass.io OS tasks # HassOS tasks
fix_rootfs fix_rootfs
install_hassio_cli install_hassos_cli
# Write os-release # Write os-release
( (
echo "NAME=Hass.io" echo "NAME=${HASSOS_NAME}"
echo "VERSION=\"${VERSION_MAJOR}.${VERSION_BUILD} (${BOARD_NAME})\"" echo "VERSION=\"${VERSION_MAJOR}.${VERSION_BUILD} (${BOARD_NAME})\""
echo "ID=hassio-os" echo "ID=${HASSOS_ID}"
echo "VERSION_ID=${VERSION_MAJOR}.${VERSION_BUILD}" echo "VERSION_ID=${VERSION_MAJOR}.${VERSION_BUILD}"
echo "PRETTY_NAME=\"${HASSIO_NAME} ${VERSION_MAJOR}.${VERSION_BUILD}\"" echo "PRETTY_NAME=\"${HASSOS_NAME} ${VERSION_MAJOR}.${VERSION_BUILD}\""
echo "CPE_NAME=cpe:2.3:o:home_assistant:hassio:${VERSION_MAJOR}.${VERSION_BUILD}:*:${DEPLOYMENT}:*:*:*:${BOARD_ID}:*" echo "CPE_NAME=cpe:2.3:o:home_assistant:${HASSOS_ID}:${VERSION_MAJOR}.${VERSION_BUILD}:*:${DEPLOYMENT}:*:*:*:${BOARD_ID}:*"
echo "HOME_URL=https://hass.io/" echo "HOME_URL=https://hass.io/"
echo "VARIANT=\"Hass.io ${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

View File

@ -18,12 +18,15 @@ function fix_rootfs() {
rm -rf ${TARGET_DIR}/srv rm -rf ${TARGET_DIR}/srv
rm -rf ${TARGET_DIR}/opt rm -rf ${TARGET_DIR}/opt
# Fix tempfs # 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
sed -i "s/MACAddressPolicy=persistent/MACAddressPolicy=none/g" ${TARGET_DIR}/usr/lib/systemd/network/99-default.link
} }
function install_hassio_cli() { function install_hassos_cli() {
sed -i "s|\(root.*\)/bin/sh|\1/usr/sbin/hassio-cli|" ${TARGET_DIR}/etc/passwd sed -i "s|\(root.*\)/bin/sh|\1/usr/sbin/hassos-cli|" ${TARGET_DIR}/etc/passwd
} }