Compare commits

..

35 Commits
0.5 ... 0.7

Author SHA1 Message Date
Pascal Vizeli
b731b422fe Merge pull request #38 from home-assistant/dev
Release 0.7 beta
2018-06-26 10:20:24 +02:00
Pascal Vizeli
27cd425f5b Use systemd for config mount (#37)
* Create mnt-config.mount

* Update hassos-config

* Update mnt-config.mount

* Update hassos-config
2018-06-26 10:18:16 +02:00
Pascal Vizeli
42f1c4bf01 cleanup avahi
Signed-off-by: Pascal Vizeli <pvizeli@syshack.ch>
2018-06-25 22:11:59 +00:00
Pascal Vizeli
b3943870dc Fix rauc config 2018-06-25 21:11:18 +00:00
Pascal Vizeli
4b4e22c355 Fix args 2018-06-25 19:22:15 +00:00
Pascal Vizeli
7675cc61fb Update Hass.io CLI to version 5 (#36) 2018-06-25 20:36:30 +02:00
Pascal Vizeli
11b1867c73 Create build.md 2018-06-25 09:00:31 +02:00
Pascal Vizeli
5cd03d19dd Update README.md 2018-06-25 08:59:43 +02:00
Pascal Vizeli
26d7a4cb23 Update hassos.conf 2018-06-25 08:58:26 +02:00
Pascal Vizeli
cc80265997 Run dropbear only if they have a known_hosts 2018-06-25 08:55:16 +02:00
Pascal Vizeli
8434f3ee55 Create docker.conf 2018-06-25 08:51:22 +02:00
Pascal Vizeli
ddde16216c Rename hassos.conf to docker.conf 2018-06-25 08:50:39 +02:00
Pascal Vizeli
3e8499ecbf Use correct cert (#35)
* Use correct cert

* Fix boot partition handling

* Cleanup rauc handling

* Make a reboot

* handling
2018-06-24 23:41:04 +02:00
Pascal Vizeli
42dc915436 Create deployment.md 2018-06-24 10:41:05 +02:00
Pascal Vizeli
17ca2ccf0a Create OTA updater (#34)
* Create OTA updater

* Create .gitignore

* Update build-all.sh

* Update hdd-image.sh

* Update ota.sh

* Update ota.sh

* Update ota.sh

* Update ota.sh

* Update post-image.sh

* Create name.sh

* Update name.sh

* Update post-build.sh

* Update name.sh

* Update post-image.sh

* Update ota.sh

* Update hdd-image.sh

* Update post-image.sh

* Update name.sh

* Update ota.sh

* Update post-image.sh

* Update hdd-image.sh

* Update hdd-image.sh

* Update hdd-image.sh

* Update post-image.sh

* Update post-image.sh

* Update hdd-image.sh

* Update hdd-image.sh

* Update post-image.sh

* Update post-image.sh

* Update post-image.sh

* Update info

* Update info

* Update info

* Update info

* Update info

* Update info

* Rename buildroot-external/board/raspberrypi/uboot-boot64.sh to buildroot-external/board/raspberrypi/rpi3-64/uboot-boot.sh

* Update rpi3_64_defconfig

* Update hdd-image.sh

* Update ota.sh

* Update post-image.sh

* Update post-image.sh

* Fix building

Signed-off-by: Pascal Vizeli <pvizeli@syshack.ch>

* Fix building v2

Signed-off-by: Pascal Vizeli <pvizeli@syshack.ch>
2018-06-24 00:11:54 +02:00
Pascal Vizeli
1e30f5120c Update configuration.md 2018-06-21 15:50:01 +02:00
Pascal Vizeli
e30e15dc53 fix rauc name 2018-06-21 15:49:37 +02:00
Pascal Vizeli
3aaadf3f5f Update supervisor 108 2018-06-21 11:37:10 +00:00
Pascal Vizeli
161c8624e0 Bump version to 0.7 2018-06-21 11:17:23 +02:00
Pascal Vizeli
56afd74720 Don't install kernel to rootfs 2018-06-21 09:15:28 +00:00
Pascal Vizeli
ed5a5033dd Use apparmor from s3 2018-06-20 13:28:30 +00:00
Pascal Vizeli
2abbbbd1fa Cleanup uboot handling like linux kernel 2018-06-20 10:41:45 +00:00
Pascal Vizeli
fa44e0a7fd cleanup 2018-06-17 01:25:47 +02:00
Pascal Vizeli
1a3d063fec Reboot after mark partition as bad 2018-06-16 22:24:36 +02:00
Pascal Vizeli
49df049f2c Change rauc mark handling 2018-06-16 09:06:07 +00:00
Pascal Vizeli
c657f6f3e7 Ignore debug stack usage 2018-06-16 01:27:34 +02:00
Pascal Vizeli
0a43cbdb05 Update hassio-supervisor 2018-06-14 16:44:40 +02:00
Pascal Vizeli
45274411e7 Merge pull request #31 from home-assistant/dev
Release 0.6
2018-06-14 15:43:10 +02:00
Pascal Vizeli
d5ff3596b1 Fix build script v2
Signed-off-by: Pascal Vizeli <pvizeli@syshack.ch>
2018-06-14 13:10:32 +00:00
Pascal Vizeli
95f82aa75d Fix build script
Signed-off-by: Pascal Vizeli <pvizeli@syshack.ch>
2018-06-14 05:15:10 +00:00
Pascal Vizeli
fc4de4f02a Fix 64bit
Signed-off-by: Pascal Vizeli <pvizeli@syshack.ch>
2018-06-14 00:13:35 +00:00
Pascal Vizeli
eae3659909 Add Builder script
Signed-off-by: Pascal Vizeli <pvizeli@syshack.ch>
2018-06-13 19:28:05 +00:00
Pascal Vizeli
6a05718235 Fix expander on SD cards
Signed-off-by: Pascal Vizeli <pvizeli@syshack.ch>
2018-06-13 19:12:57 +00:00
Pascal Vizeli
5055236725 Bump version 2018-06-13 17:04:33 +02:00
Pascal Vizeli
ac40e97670 Update hassio-supervisor 2018-06-12 23:23:33 +02:00
65 changed files with 375 additions and 260 deletions

2
.gitignore vendored Normal file
View File

@@ -0,0 +1,2 @@
/release
*.pem

21
Documentation/build.md Normal file
View File

@@ -0,0 +1,21 @@
# Building
Running `sudo ./enter.sh` will get you into the build Docker container.
`make -C /build/buildroot BR2_EXTERNAL=/build/buildroot-external xy_defconfig`
## Scripts
## Helpers
- `make -C /build/buildroot BR2_EXTERNAL=/build/buildroot-external xy_defconfig`
- `make -C /build/buildroot BR2_EXTERNAL=/build/buildroot-external menuconfig`
- `make -C /build/buildroot BR2_EXTERNAL=/build/buildroot-external linux-menuconfig`
- `make -C /build/buildroot BR2_EXTERNAL=/build/buildroot-external barebox-menuconfig`
- `make -C /build/buildroot BR2_EXTERNAL=/build/buildroot-external busybox-menuconfig`
- `make -C /build/buildroot BR2_EXTERNAL=/build/buildroot-external savedefconfig`
- `make -C /build/buildroot BR2_EXTERNAL=/build/buildroot-external linux-update-defconfig`
- `make -C /build/buildroot BR2_EXTERNAL=/build/buildroot-external barebox-update-defconfig`
- `make -C /build/buildroot BR2_EXTERNAL=/build/buildroot-external busybox-update-config`

View File

@@ -7,13 +7,13 @@ You can format a USB stick with FAT32 and name it with `hassos-config`. The layo
network/ network/
modules/ modules/
known_hosts known_hosts
hassos-xy.rauc hassos-xy.raucb
``` ```
- On `network` folder can hold any kind of NetworkManager connections files. - On `network` folder can hold any kind of NetworkManager connections files.
- The folder `modules` is for modules-load configuration files. - The folder `modules` is for modules-load configuration files.
- `known_hosts` file activate debug SSH access of port `22222`. - `known_hosts` file activate debug SSH access of port `22222`.
- For firmware updates you can but the `hassos-*.rauc` OTA update they should be install. - For firmware updates you can but the `hassos-*.raucb` OTA update they should be install.
## Local ## Local

View File

@@ -0,0 +1,23 @@
# Deployment
We know 3 types of release builds:
- development (beta/dev)
- staging (rc)
- production (stable)
## Versioning
The format of version is *MAJOR.BUILD*. Everytime we create a new release with same userland, we bump the build number.
The development use here own major number they will be bump for the stable version and the development version go to next major number.
```
0.x = development
1.x = stable
2.x = development
3.x = stable
```
## GIT Branch/Tag
The branch `dev` ist the actual development branch and from there we never make a release. The `master` branch hould the development
version from they we build a beta release.
If we create a new staging/productive release, we create a new branch `rel-{MAJOR}`. They will be used for the hole cycle of this release.

View File

@@ -12,20 +12,3 @@ Hass.io OS based on [buildroot](https://buildroot.org/). It's a hypervisor for D
- AppArmor protected - AppArmor protected
- ZRAM LZ4 for /tmp, /var, swap - ZRAM LZ4 for /tmp, /var, swap
- Run every supervisor - Run every supervisor
# Building
Running `sudo ./enter.sh` will get you into the build Docker container.
`make -C /build/buildroot BR2_EXTERNAL=/build/buildroot-external xy_defconfig`
## Helpers
- `make -C /build/buildroot BR2_EXTERNAL=/build/buildroot-external xy_defconfig`
- `make -C /build/buildroot BR2_EXTERNAL=/build/buildroot-external menuconfig`
- `make -C /build/buildroot BR2_EXTERNAL=/build/buildroot-external linux-menuconfig`
- `make -C /build/buildroot BR2_EXTERNAL=/build/buildroot-external barebox-menuconfig`
- `make -C /build/buildroot BR2_EXTERNAL=/build/buildroot-external busybox-menuconfig`
- `make -C /build/buildroot BR2_EXTERNAL=/build/buildroot-external savedefconfig`
- `make -C /build/buildroot BR2_EXTERNAL=/build/buildroot-external linux-update-defconfig`
- `make -C /build/buildroot BR2_EXTERNAL=/build/buildroot-external barebox-update-defconfig`
- `make -C /build/buildroot BR2_EXTERNAL=/build/buildroot-external busybox-update-config`

View File

@@ -1,75 +0,0 @@
#include <tunables/global>
profile hassio-supervisor flags=(attach_disconnected,mediate_deleted) {
#include <abstractions/base>
#include <abstractions/python>
network,
deny network raw,
signal (send) set=(kill,term),
/bin/busybox ix,
/usr/bin/python{,3,3.[0-9]} ix,
/usr/bin/git cx,
/usr/bin/socat cx,
/usr/bin/gdbus cx,
deny /proc/** wl,
deny /root/** wl,
deny /sys/** wl,
/** r,
/tmp/** rw,
/data/** rw,
/{,var/}run/docker.sock rw,
capability net_bind_service,
profile /usr/bin/socat flags=(attach_disconnected,mediate_deleted) {
#include <abstractions/base>
network inet udp,
network inet tcp,
deny network raw,
deny network packet,
signal (receive) set=(kill,term),
capability net_bind_service,
/lib/* mr,
/usr/bin/socat mr,
}
profile /usr/bin/gdbus flags=(attach_disconnected,mediate_deleted) {
#include <abstractions/base>
#include <abstractions/dbus>
unix (send, receive) type=stream,
/usr/bin/gdbus mr,
/lib/* mr,
/{,var/}run/dbus/system_bus_socket rw,
}
profile /usr/bin/git flags=(attach_disconnected,mediate_deleted) {
#include <abstractions/base>
network,
deny network raw,
/bin/busybox ix,
/usr/bin/git mr,
/usr/libexec/git-core/* ix,
deny /data/homeassistant rw,
deny /data/ssl rw,
/** r,
/lib/* mr,
/data/addons/** lrw,
capability dac_override,
}
}

View File

@@ -2,3 +2,4 @@ BOARD_ID=ova
BOARD_NAME="Open Virtual Appliance" BOARD_NAME="Open Virtual Appliance"
CHASSIS=vm CHASSIS=vm
BOOTLOADER=barebox BOOTLOADER=barebox
KERNEL_FILE=bzImage

View File

@@ -17,7 +17,7 @@ index d5efc0c..c57c2f7 100644
g_ptr_array_add(args, g_strdup_printf(BOOTSTATE_PREFIX ".%s.remaining_attempts", bootname)); g_ptr_array_add(args, g_strdup_printf(BOOTSTATE_PREFIX ".%s.remaining_attempts", bootname));
+ +
+ g_ptr_array_add(args, g_strdup("-i")); + g_ptr_array_add(args, g_strdup("-i"));
+ g_ptr_array_add(args, g_strdup("/mnt/boot/EFI/barebox/state.dtb")); + g_ptr_array_add(args, g_strdup("/etc/barebox-state.dtb"));
g_ptr_array_add(args, NULL); g_ptr_array_add(args, NULL);
sub = g_subprocess_newv((const gchar * const *)args->pdata, sub = g_subprocess_newv((const gchar * const *)args->pdata,
@@ -27,7 +27,7 @@ index d5efc0c..c57c2f7 100644
} }
+ +
+ g_ptr_array_add(args, g_strdup("-i")); + g_ptr_array_add(args, g_strdup("-i"));
+ g_ptr_array_add(args, g_strdup("/mnt/boot/EFI/barebox/state.dtb")); + g_ptr_array_add(args, g_strdup("/etc/barebox-state.dtb"));
g_ptr_array_add(args, NULL); g_ptr_array_add(args, NULL);
sub = g_subprocess_newv((const gchar * const *)args->pdata, sub = g_subprocess_newv((const gchar * const *)args->pdata,

View File

@@ -6,12 +6,11 @@ BOARD_DIR=${2}
BOOT_DATA=${BINARIES_DIR}/boot BOOT_DATA=${BINARIES_DIR}/boot
. ${SCRIPT_DIR}/hdd-image.sh . ${SCRIPT_DIR}/hdd-image.sh
. ${SCRIPT_DIR}/name.sh
. ${SCRIPT_DIR}/ota.sh
. ${BR2_EXTERNAL_HASSOS_PATH}/info . ${BR2_EXTERNAL_HASSOS_PATH}/info
. ${BOARD_DIR}/info . ${BOARD_DIR}/info
# Filename
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}
mkdir -p ${BOOT_DATA}/EFI/BOOT mkdir -p ${BOOT_DATA}/EFI/BOOT
@@ -23,10 +22,9 @@ cp ${BR2_EXTERNAL_HASSOS_PATH}/misc/barebox-state-efi.dtb ${BOOT_DATA}/EFI/bareb
echo "console=tty1" > ${BOOT_DATA}/cmdline.txt echo "console=tty1" > ${BOOT_DATA}/cmdline.txt
# Create other layers # Create other layers
create_boot_image ${BINARIES_DIR} prepare_disk_image
create_overlay_image ${BINARIES_DIR}
create_kernel_image ${BINARIES_DIR} bzImage
create_disk_image ${BINARIES_DIR} ${BINARIES_DIR}/harddisk.img 6 # Create disk images
create_disk_image 6
qemu-img convert -O vmdk ${BINARIES_DIR}/harddisk.img ${BINARIES_DIR}/${IMAGE_FILE} convert_disk_image_vmdk
create_ota_update

View File

@@ -6,19 +6,10 @@ BOARD_DIR=${2}
BOOT_DATA=${BINARIES_DIR}/boot BOOT_DATA=${BINARIES_DIR}/boot
. ${SCRIPT_DIR}/hdd-image.sh . ${SCRIPT_DIR}/hdd-image.sh
. ${SCRIPT_DIR}/name.sh
. ${BR2_EXTERNAL_HASSOS_PATH}/info . ${BR2_EXTERNAL_HASSOS_PATH}/info
. ${BOARD_DIR}/info . ${BOARD_DIR}/info
# Filename
IMAGE_FILE=${BINARIES_DIR}/${HASSOS_ID}_${BOARD_ID}-${VERSION_MAJOR}.${VERSION_BUILD}.img
# Eval kernel name
if [ "$BOARD_ID" == "rpi3-64" ]; then
KERNEL_NAME="Image"
else
KERNEL_NAME="zImage"
fi
# Init boot data # Init boot data
rm -rf ${BOOT_DATA} rm -rf ${BOOT_DATA}
mkdir -p ${BOOT_DATA} mkdir -p ${BOOT_DATA}
@@ -43,17 +34,14 @@ cp -r ${BINARIES_DIR}/rpi-firmware/overlays ${BOOT_DATA}/
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
# Create other layers # Create other layers
create_boot_image ${BINARIES_DIR} prepare_disk_image
create_overlay_image ${BINARIES_DIR}
create_kernel_image ${BINARIES_DIR} ${KERNEL_NAME}
create_disk_image ${BINARIES_DIR} ${IMAGE_FILE} 2 create_disk_image 2
fix_disk_image_mbr ${IMAGE_FILE} fix_disk_image_mbr
convert_disk_image_gz
rm -rf ${IMAGE_FILE}.gz create_ota_update
gzip --best ${IMAGE_FILE}

View File

@@ -2,3 +2,4 @@ BOARD_ID=rpi
BOARD_NAME="RaspberryPi" BOARD_NAME="RaspberryPi"
CHASSIS=embedded CHASSIS=embedded
BOOTLOADER=uboot BOOTLOADER=uboot
KERNEL_FILE=zImage

View File

@@ -1,2 +0,0 @@
CONFIG_TARGET_RPI=y
CONFIG_DEFAULT_DEVICE_TREE="bcm2835-rpi-b"

View File

@@ -2,3 +2,4 @@ BOARD_ID=rpi0-w
BOARD_NAME="RaspberryPi Zero-W" BOARD_NAME="RaspberryPi Zero-W"
CHASSIS=embedded CHASSIS=embedded
BOOTLOADER=uboot BOOTLOADER=uboot
KERNEL_FILE=zImage

View File

@@ -1,2 +0,0 @@
CONFIG_TARGET_RPI_0_W=y
CONFIG_DEFAULT_DEVICE_TREE="bcm2835-rpi-zero-w"

View File

@@ -2,3 +2,4 @@ BOARD_ID=rpi2
BOARD_NAME="RaspberryPi 2" BOARD_NAME="RaspberryPi 2"
CHASSIS=embedded CHASSIS=embedded
BOOTLOADER=uboot BOOTLOADER=uboot
KERNEL_FILE=zImage

View File

@@ -1,2 +0,0 @@
CONFIG_TARGET_RPI_2=y
CONFIG_DEFAULT_DEVICE_TREE="bcm2836-rpi-2-b"

View File

@@ -2,3 +2,4 @@ BOARD_ID=rpi3-64
BOARD_NAME="RaspberryPi 3 64bit" BOARD_NAME="RaspberryPi 3 64bit"
CHASSIS=embedded CHASSIS=embedded
BOOTLOADER=uboot BOOTLOADER=uboot
KERNEL_FILE=Image

View File

@@ -1,5 +0,0 @@
CONFIG_TARGET_RPI_3=y
CONFIG_SYS_MALLOC_F_LEN=0x2000
CONFIG_DEFAULT_DEVICE_TREE="bcm2837-rpi-3-b"
CONFIG_PHYLIB=y
CONFIG_USB_ETHER_LAN78XX=y

View File

@@ -2,3 +2,4 @@ BOARD_ID=rpi3
BOARD_NAME="RaspberryPi 3" BOARD_NAME="RaspberryPi 3"
CHASSIS=embedded CHASSIS=embedded
BOOTLOADER=uboot BOOTLOADER=uboot
KERNEL_FILE=zImage

View File

@@ -1,5 +0,0 @@
CONFIG_TARGET_RPI_3_32B=y
CONFIG_SYS_MALLOC_F_LEN=0x2000
CONFIG_DEFAULT_DEVICE_TREE="bcm2837-rpi-3-b"
CONFIG_PHYLIB=y
CONFIG_USB_ETHER_LAN78XX=y

View File

@@ -1,25 +1,3 @@
CONFIG_ARM=y # CONFIG_USB_STORAGE is not set
CONFIG_ARCH_BCM283X=y # CONFIG_ENV_FAT_INTERFACE is not set
CONFIG_SYS_TEXT_BASE=0x00008000 # CONFIG_ENV_FAT_DEVICE_AND_PART is not set
CONFIG_OF_BOARD_SETUP=y
# CONFIG_CMD_FLASH is not set
CONFIG_CMD_GPIO=y
CONFIG_CMD_MMC=y
CONFIG_CMD_USB=y
CONFIG_OF_EMBED=y
CONFIG_DM_KEYBOARD=y
CONFIG_DM_MMC=y
CONFIG_MMC_SDHCI=y
CONFIG_MMC_SDHCI_BCM2835=y
CONFIG_DM_ETH=y
CONFIG_PINCTRL=y
# CONFIG_PINCTRL_GENERIC is not set
# CONFIG_REQUIRE_SERIAL_CONSOLE is not set
CONFIG_USB=y
CONFIG_DM_USB=y
CONFIG_USB_DWC2=y
CONFIG_USB_KEYBOARD=y
CONFIG_USB_HOST_ETHER=y
CONFIG_USB_ETHER_SMSC95XX=y
CONFIG_DM_VIDEO=y
CONFIG_PHYS_TO_BUS=y

View File

@@ -13,7 +13,4 @@ CONFIG_FS_EXT4=y
# CONFIG_ENV_IS_IN_EXT4 is not set # CONFIG_ENV_IS_IN_EXT4 is not set
CONFIG_ENV_IS_IN_MMC=y CONFIG_ENV_IS_IN_MMC=y
CONFIG_CONSOLE_SCROLL_LINES=10 CONFIG_CONSOLE_SCROLL_LINES=10
CONFIG_SYS_WHITE_ON_BLACK=y
CONFIG_REGEX=y
CONFIG_OF_LIBFDT_OVERLAY=y
# CONFIG_EFI_LOADER is not set # CONFIG_EFI_LOADER is not set

View File

@@ -22,7 +22,6 @@ BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.14.41"
BR2_LINUX_KERNEL_DEFCONFIG="x86_64" BR2_LINUX_KERNEL_DEFCONFIG="x86_64"
BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/kernel.config $(BR2_EXTERNAL_HASSOS_PATH)/board/ova/kernel.config" BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/kernel.config $(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_NEEDS_HOST_OPENSSL=y BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y
BR2_LINUX_KERNEL_NEEDS_HOST_LIBELF=y BR2_LINUX_KERNEL_NEEDS_HOST_LIBELF=y
BR2_PACKAGE_BUSYBOX_CONFIG="$(BR2_EXTERNAL_HASSOS_PATH)/busybox.config" BR2_PACKAGE_BUSYBOX_CONFIG="$(BR2_EXTERNAL_HASSOS_PATH)/busybox.config"
@@ -30,6 +29,7 @@ BR2_PACKAGE_BUSYBOX_INDIVIDUAL_BINARIES=y
BR2_PACKAGE_JQ=y BR2_PACKAGE_JQ=y
BR2_PACKAGE_E2FSPROGS=y BR2_PACKAGE_E2FSPROGS=y
BR2_PACKAGE_E2FSPROGS_RESIZE2FS=y BR2_PACKAGE_E2FSPROGS_RESIZE2FS=y
BR2_PACKAGE_SQUASHFS=y
BR2_PACKAGE_DT_UTILS=y BR2_PACKAGE_DT_UTILS=y
BR2_PACKAGE_GPTFDISK=y BR2_PACKAGE_GPTFDISK=y
BR2_PACKAGE_GPTFDISK_SGDISK=y BR2_PACKAGE_GPTFDISK_SGDISK=y
@@ -37,6 +37,7 @@ BR2_PACKAGE_CA_CERTIFICATES=y
BR2_PACKAGE_LIBCGROUP=y BR2_PACKAGE_LIBCGROUP=y
BR2_PACKAGE_LIBCGROUP_TOOLS=y BR2_PACKAGE_LIBCGROUP_TOOLS=y
BR2_PACKAGE_AVAHI=y BR2_PACKAGE_AVAHI=y
# BR2_PACKAGE_AVAHI_AUTOIPD is not set
BR2_PACKAGE_AVAHI_DAEMON=y BR2_PACKAGE_AVAHI_DAEMON=y
BR2_PACKAGE_AVAHI_LIBDNSSD_COMPATIBILITY=y BR2_PACKAGE_AVAHI_LIBDNSSD_COMPATIBILITY=y
BR2_PACKAGE_DROPBEAR=y BR2_PACKAGE_DROPBEAR=y
@@ -72,11 +73,13 @@ BR2_PACKAGE_HOST_MTOOLS=y
BR2_PACKAGE_HOST_RAUC=y BR2_PACKAGE_HOST_RAUC=y
BR2_PACKAGE_HASSOS=y BR2_PACKAGE_HASSOS=y
BR2_PACKAGE_HASSOS_SUPERVISOR="homeassistant/amd64-hassio-supervisor" BR2_PACKAGE_HASSOS_SUPERVISOR="homeassistant/amd64-hassio-supervisor"
BR2_PACKAGE_HASSOS_SUPERVISOR_VERSION="107" BR2_PACKAGE_HASSOS_SUPERVISOR_VERSION="109"
BR2_PACKAGE_HASSOS_SUPERVISOR_ARGS="-e HOMEASSISTANT_REPOSITORY=homeassistant/qemux86-64-homeassistant" BR2_PACKAGE_HASSOS_SUPERVISOR_ARGS="-e HOMEASSISTANT_REPOSITORY=homeassistant/qemux86-64-homeassistant"
BR2_PACKAGE_HASSOS_SUPERVISOR_PROFILE="hassio-supervisor" BR2_PACKAGE_HASSOS_SUPERVISOR_PROFILE="hassio-supervisor"
BR2_PACKAGE_HASSOS_SUPERVISOR_PROFILE_URL="http://s3.amazonaws.com/hassio-version/apparmor.txt"
BR2_PACKAGE_HASSOS_CLI="homeassistant/amd64-hassio-cli" BR2_PACKAGE_HASSOS_CLI="homeassistant/amd64-hassio-cli"
BR2_PACKAGE_HASSOS_CLI_VERSION="3" BR2_PACKAGE_HASSOS_CLI_VERSION="5"
BR2_PACKAGE_HASSOS_CLI_ARGS="--network=hassio --add-host hassio:172.30.32.2"
BR2_PACKAGE_HASSOS_CLI_PROFILE="docker-default" BR2_PACKAGE_HASSOS_CLI_PROFILE="docker-default"
BR2_PACKAGE_HASSOS_APPARMOR_DIR="supervisor/apparmor" BR2_PACKAGE_HASSOS_APPARMOR_DIR="supervisor/apparmor"
BR2_PACKAGE_APPARMOR=y BR2_PACKAGE_APPARMOR=y

View File

@@ -27,7 +27,6 @@ BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/kernel.confi
BR2_LINUX_KERNEL_LZ4=y BR2_LINUX_KERNEL_LZ4=y
BR2_LINUX_KERNEL_DTS_SUPPORT=y BR2_LINUX_KERNEL_DTS_SUPPORT=y
BR2_LINUX_KERNEL_INTREE_DTS_NAME="bcm2708-rpi-0-w" BR2_LINUX_KERNEL_INTREE_DTS_NAME="bcm2708-rpi-0-w"
BR2_LINUX_KERNEL_INSTALL_TARGET=y
BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y
BR2_LINUX_KERNEL_NEEDS_HOST_LIBELF=y BR2_LINUX_KERNEL_NEEDS_HOST_LIBELF=y
BR2_PACKAGE_BUSYBOX_CONFIG="$(BR2_EXTERNAL_HASSOS_PATH)/busybox.config" BR2_PACKAGE_BUSYBOX_CONFIG="$(BR2_EXTERNAL_HASSOS_PATH)/busybox.config"
@@ -35,6 +34,7 @@ BR2_PACKAGE_BUSYBOX_INDIVIDUAL_BINARIES=y
BR2_PACKAGE_JQ=y BR2_PACKAGE_JQ=y
BR2_PACKAGE_E2FSPROGS=y BR2_PACKAGE_E2FSPROGS=y
BR2_PACKAGE_E2FSPROGS_RESIZE2FS=y BR2_PACKAGE_E2FSPROGS_RESIZE2FS=y
BR2_PACKAGE_SQUASHFS=y
BR2_PACKAGE_RPI_WIFI_FIRMWARE=y BR2_PACKAGE_RPI_WIFI_FIRMWARE=y
BR2_PACKAGE_RPI_FIRMWARE=y BR2_PACKAGE_RPI_FIRMWARE=y
BR2_PACKAGE_GPTFDISK=y BR2_PACKAGE_GPTFDISK=y
@@ -45,6 +45,7 @@ BR2_PACKAGE_LIBDNET=y
BR2_PACKAGE_LIBCGROUP=y BR2_PACKAGE_LIBCGROUP=y
BR2_PACKAGE_LIBCGROUP_TOOLS=y BR2_PACKAGE_LIBCGROUP_TOOLS=y
BR2_PACKAGE_AVAHI=y BR2_PACKAGE_AVAHI=y
# BR2_PACKAGE_AVAHI_AUTOIPD is not set
BR2_PACKAGE_AVAHI_DAEMON=y BR2_PACKAGE_AVAHI_DAEMON=y
BR2_PACKAGE_AVAHI_LIBDNSSD_COMPATIBILITY=y BR2_PACKAGE_AVAHI_LIBDNSSD_COMPATIBILITY=y
BR2_PACKAGE_DROPBEAR=y BR2_PACKAGE_DROPBEAR=y
@@ -69,8 +70,7 @@ BR2_TARGET_UBOOT=y
BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y
BR2_TARGET_UBOOT_CUSTOM_VERSION=y BR2_TARGET_UBOOT_CUSTOM_VERSION=y
BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2018.05" BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2018.05"
BR2_TARGET_UBOOT_USE_CUSTOM_CONFIG=y BR2_TARGET_UBOOT_BOARD_DEFCONFIG="rpi_0_w"
BR2_TARGET_UBOOT_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_HASSOS_PATH)/board/raspberrypi/rpi0-w/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_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/bootloader/uboot.config $(BR2_EXTERNAL_HASSOS_PATH)/board/raspberrypi/uboot.config"
BR2_TARGET_UBOOT_NEEDS_DTC=y BR2_TARGET_UBOOT_NEEDS_DTC=y
BR2_TARGET_UBOOT_BOOT_SCRIPT=y BR2_TARGET_UBOOT_BOOT_SCRIPT=y
@@ -82,11 +82,13 @@ BR2_PACKAGE_HOST_MTOOLS=y
BR2_PACKAGE_HOST_RAUC=y BR2_PACKAGE_HOST_RAUC=y
BR2_PACKAGE_HASSOS=y BR2_PACKAGE_HASSOS=y
BR2_PACKAGE_HASSOS_SUPERVISOR="homeassistant/armhf-hassio-supervisor" BR2_PACKAGE_HASSOS_SUPERVISOR="homeassistant/armhf-hassio-supervisor"
BR2_PACKAGE_HASSOS_SUPERVISOR_VERSION="107" BR2_PACKAGE_HASSOS_SUPERVISOR_VERSION="109"
BR2_PACKAGE_HASSOS_SUPERVISOR_ARGS="-e HOMEASSISTANT_REPOSITORY=homeassistant/raspberrypi-homeassistant" BR2_PACKAGE_HASSOS_SUPERVISOR_ARGS="-e HOMEASSISTANT_REPOSITORY=homeassistant/raspberrypi-homeassistant"
BR2_PACKAGE_HASSOS_SUPERVISOR_PROFILE="hassio-supervisor" BR2_PACKAGE_HASSOS_SUPERVISOR_PROFILE="hassio-supervisor"
BR2_PACKAGE_HASSOS_SUPERVISOR_PROFILE_URL="http://s3.amazonaws.com/hassio-version/apparmor.txt"
BR2_PACKAGE_HASSOS_CLI="homeassistant/armhf-hassio-cli" BR2_PACKAGE_HASSOS_CLI="homeassistant/armhf-hassio-cli"
BR2_PACKAGE_HASSOS_CLI_VERSION="3" BR2_PACKAGE_HASSOS_CLI_VERSION="5"
BR2_PACKAGE_HASSOS_CLI_ARGS="--network=hassio --add-host hassio:172.30.32.2"
BR2_PACKAGE_HASSOS_CLI_PROFILE="docker-default" BR2_PACKAGE_HASSOS_CLI_PROFILE="docker-default"
BR2_PACKAGE_HASSOS_APPARMOR_DIR="supervisor/apparmor" BR2_PACKAGE_HASSOS_APPARMOR_DIR="supervisor/apparmor"
BR2_PACKAGE_APPARMOR=y BR2_PACKAGE_APPARMOR=y

View File

@@ -27,7 +27,6 @@ BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/kernel.confi
BR2_LINUX_KERNEL_LZ4=y BR2_LINUX_KERNEL_LZ4=y
BR2_LINUX_KERNEL_DTS_SUPPORT=y BR2_LINUX_KERNEL_DTS_SUPPORT=y
BR2_LINUX_KERNEL_INTREE_DTS_NAME="bcm2709-rpi-2-b" BR2_LINUX_KERNEL_INTREE_DTS_NAME="bcm2709-rpi-2-b"
BR2_LINUX_KERNEL_INSTALL_TARGET=y
BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y
BR2_LINUX_KERNEL_NEEDS_HOST_LIBELF=y BR2_LINUX_KERNEL_NEEDS_HOST_LIBELF=y
BR2_PACKAGE_BUSYBOX_CONFIG="$(BR2_EXTERNAL_HASSOS_PATH)/busybox.config" BR2_PACKAGE_BUSYBOX_CONFIG="$(BR2_EXTERNAL_HASSOS_PATH)/busybox.config"
@@ -35,6 +34,7 @@ BR2_PACKAGE_BUSYBOX_INDIVIDUAL_BINARIES=y
BR2_PACKAGE_JQ=y BR2_PACKAGE_JQ=y
BR2_PACKAGE_E2FSPROGS=y BR2_PACKAGE_E2FSPROGS=y
BR2_PACKAGE_E2FSPROGS_RESIZE2FS=y BR2_PACKAGE_E2FSPROGS_RESIZE2FS=y
BR2_PACKAGE_SQUASHFS=y
BR2_PACKAGE_RPI_FIRMWARE=y BR2_PACKAGE_RPI_FIRMWARE=y
BR2_PACKAGE_GPTFDISK=y BR2_PACKAGE_GPTFDISK=y
BR2_PACKAGE_GPTFDISK_SGDISK=y BR2_PACKAGE_GPTFDISK_SGDISK=y
@@ -44,6 +44,7 @@ BR2_PACKAGE_LIBDNET=y
BR2_PACKAGE_LIBCGROUP=y BR2_PACKAGE_LIBCGROUP=y
BR2_PACKAGE_LIBCGROUP_TOOLS=y BR2_PACKAGE_LIBCGROUP_TOOLS=y
BR2_PACKAGE_AVAHI=y BR2_PACKAGE_AVAHI=y
# BR2_PACKAGE_AVAHI_AUTOIPD is not set
BR2_PACKAGE_AVAHI_DAEMON=y BR2_PACKAGE_AVAHI_DAEMON=y
BR2_PACKAGE_AVAHI_LIBDNSSD_COMPATIBILITY=y BR2_PACKAGE_AVAHI_LIBDNSSD_COMPATIBILITY=y
BR2_PACKAGE_DROPBEAR=y BR2_PACKAGE_DROPBEAR=y
@@ -68,8 +69,7 @@ BR2_TARGET_UBOOT=y
BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y
BR2_TARGET_UBOOT_CUSTOM_VERSION=y BR2_TARGET_UBOOT_CUSTOM_VERSION=y
BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2018.05" BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2018.05"
BR2_TARGET_UBOOT_USE_CUSTOM_CONFIG=y BR2_TARGET_UBOOT_BOARD_DEFCONFIG="rpi_2"
BR2_TARGET_UBOOT_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_HASSOS_PATH)/board/raspberrypi/rpi2/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_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/bootloader/uboot.config $(BR2_EXTERNAL_HASSOS_PATH)/board/raspberrypi/uboot.config"
BR2_TARGET_UBOOT_NEEDS_DTC=y BR2_TARGET_UBOOT_NEEDS_DTC=y
BR2_TARGET_UBOOT_BOOT_SCRIPT=y BR2_TARGET_UBOOT_BOOT_SCRIPT=y
@@ -81,11 +81,13 @@ BR2_PACKAGE_HOST_MTOOLS=y
BR2_PACKAGE_HOST_RAUC=y BR2_PACKAGE_HOST_RAUC=y
BR2_PACKAGE_HASSOS=y BR2_PACKAGE_HASSOS=y
BR2_PACKAGE_HASSOS_SUPERVISOR="homeassistant/armhf-hassio-supervisor" BR2_PACKAGE_HASSOS_SUPERVISOR="homeassistant/armhf-hassio-supervisor"
BR2_PACKAGE_HASSOS_SUPERVISOR_VERSION="107" BR2_PACKAGE_HASSOS_SUPERVISOR_VERSION="109"
BR2_PACKAGE_HASSOS_SUPERVISOR_ARGS="-e HOMEASSISTANT_REPOSITORY=homeassistant/raspberrypi2-homeassistant" BR2_PACKAGE_HASSOS_SUPERVISOR_ARGS="-e HOMEASSISTANT_REPOSITORY=homeassistant/raspberrypi2-homeassistant"
BR2_PACKAGE_HASSOS_SUPERVISOR_PROFILE="hassio-supervisor" BR2_PACKAGE_HASSOS_SUPERVISOR_PROFILE="hassio-supervisor"
BR2_PACKAGE_HASSOS_SUPERVISOR_PROFILE_URL="http://s3.amazonaws.com/hassio-version/apparmor.txt"
BR2_PACKAGE_HASSOS_CLI="homeassistant/armhf-hassio-cli" BR2_PACKAGE_HASSOS_CLI="homeassistant/armhf-hassio-cli"
BR2_PACKAGE_HASSOS_CLI_VERSION="3" BR2_PACKAGE_HASSOS_CLI_VERSION="5"
BR2_PACKAGE_HASSOS_CLI_ARGS="--network=hassio --add-host hassio:172.30.32.2"
BR2_PACKAGE_HASSOS_CLI_PROFILE="docker-default" BR2_PACKAGE_HASSOS_CLI_PROFILE="docker-default"
BR2_PACKAGE_HASSOS_APPARMOR_DIR="supervisor/apparmor" BR2_PACKAGE_HASSOS_APPARMOR_DIR="supervisor/apparmor"
BR2_PACKAGE_APPARMOR=y BR2_PACKAGE_APPARMOR=y

View File

@@ -27,7 +27,6 @@ BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/kernel.confi
BR2_LINUX_KERNEL_LZ4=y BR2_LINUX_KERNEL_LZ4=y
BR2_LINUX_KERNEL_DTS_SUPPORT=y BR2_LINUX_KERNEL_DTS_SUPPORT=y
BR2_LINUX_KERNEL_INTREE_DTS_NAME="broadcom/bcm2710-rpi-3-b broadcom/bcm2837-rpi-3-b broadcom/bcm2710-rpi-3-b-plus" BR2_LINUX_KERNEL_INTREE_DTS_NAME="broadcom/bcm2710-rpi-3-b broadcom/bcm2837-rpi-3-b broadcom/bcm2710-rpi-3-b-plus"
BR2_LINUX_KERNEL_INSTALL_TARGET=y
BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y
BR2_LINUX_KERNEL_NEEDS_HOST_LIBELF=y BR2_LINUX_KERNEL_NEEDS_HOST_LIBELF=y
BR2_PACKAGE_BUSYBOX_CONFIG="$(BR2_EXTERNAL_HASSOS_PATH)/busybox.config" BR2_PACKAGE_BUSYBOX_CONFIG="$(BR2_EXTERNAL_HASSOS_PATH)/busybox.config"
@@ -35,6 +34,7 @@ BR2_PACKAGE_BUSYBOX_INDIVIDUAL_BINARIES=y
BR2_PACKAGE_JQ=y BR2_PACKAGE_JQ=y
BR2_PACKAGE_E2FSPROGS=y BR2_PACKAGE_E2FSPROGS=y
BR2_PACKAGE_E2FSPROGS_RESIZE2FS=y BR2_PACKAGE_E2FSPROGS_RESIZE2FS=y
BR2_PACKAGE_SQUASHFS=y
BR2_PACKAGE_RPI_WIFI_FIRMWARE=y BR2_PACKAGE_RPI_WIFI_FIRMWARE=y
BR2_PACKAGE_RPI_FIRMWARE=y BR2_PACKAGE_RPI_FIRMWARE=y
BR2_PACKAGE_GPTFDISK=y BR2_PACKAGE_GPTFDISK=y
@@ -45,6 +45,7 @@ BR2_PACKAGE_LIBDNET=y
BR2_PACKAGE_LIBCGROUP=y BR2_PACKAGE_LIBCGROUP=y
BR2_PACKAGE_LIBCGROUP_TOOLS=y BR2_PACKAGE_LIBCGROUP_TOOLS=y
BR2_PACKAGE_AVAHI=y BR2_PACKAGE_AVAHI=y
# BR2_PACKAGE_AVAHI_AUTOIPD is not set
BR2_PACKAGE_AVAHI_DAEMON=y BR2_PACKAGE_AVAHI_DAEMON=y
BR2_PACKAGE_AVAHI_LIBDNSSD_COMPATIBILITY=y BR2_PACKAGE_AVAHI_LIBDNSSD_COMPATIBILITY=y
BR2_PACKAGE_DROPBEAR=y BR2_PACKAGE_DROPBEAR=y
@@ -69,12 +70,11 @@ BR2_TARGET_UBOOT=y
BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y
BR2_TARGET_UBOOT_CUSTOM_VERSION=y BR2_TARGET_UBOOT_CUSTOM_VERSION=y
BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2018.05" BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2018.05"
BR2_TARGET_UBOOT_USE_CUSTOM_CONFIG=y BR2_TARGET_UBOOT_BOARD_DEFCONFIG="rpi_3"
BR2_TARGET_UBOOT_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_HASSOS_PATH)/board/raspberrypi/rpi3-64/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_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/bootloader/uboot.config $(BR2_EXTERNAL_HASSOS_PATH)/board/raspberrypi/uboot.config"
BR2_TARGET_UBOOT_NEEDS_DTC=y BR2_TARGET_UBOOT_NEEDS_DTC=y
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-boot64.sh" BR2_TARGET_UBOOT_BOOT_SCRIPT_SOURCE="$(BR2_EXTERNAL_HASSOS_PATH)/board/raspberrypi/rpi3-64/uboot-boot.sh"
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
@@ -82,11 +82,13 @@ BR2_PACKAGE_HOST_MTOOLS=y
BR2_PACKAGE_HOST_RAUC=y BR2_PACKAGE_HOST_RAUC=y
BR2_PACKAGE_HASSOS=y BR2_PACKAGE_HASSOS=y
BR2_PACKAGE_HASSOS_SUPERVISOR="homeassistant/aarch64-hassio-supervisor" BR2_PACKAGE_HASSOS_SUPERVISOR="homeassistant/aarch64-hassio-supervisor"
BR2_PACKAGE_HASSOS_SUPERVISOR_VERSION="107" BR2_PACKAGE_HASSOS_SUPERVISOR_VERSION="109"
BR2_PACKAGE_HASSOS_SUPERVISOR_ARGS="-e HOMEASSISTANT_REPOSITORY=homeassistant/raspberrypi3-64-homeassistant" BR2_PACKAGE_HASSOS_SUPERVISOR_ARGS="-e HOMEASSISTANT_REPOSITORY=homeassistant/raspberrypi3-64-homeassistant"
BR2_PACKAGE_HASSOS_SUPERVISOR_PROFILE="hassio-supervisor" BR2_PACKAGE_HASSOS_SUPERVISOR_PROFILE="hassio-supervisor"
BR2_PACKAGE_HASSOS_SUPERVISOR_PROFILE_URL="http://s3.amazonaws.com/hassio-version/apparmor.txt"
BR2_PACKAGE_HASSOS_CLI="homeassistant/aarch64-hassio-cli" BR2_PACKAGE_HASSOS_CLI="homeassistant/aarch64-hassio-cli"
BR2_PACKAGE_HASSOS_CLI_VERSION="3" BR2_PACKAGE_HASSOS_CLI_VERSION="5"
BR2_PACKAGE_HASSOS_CLI_ARGS="--network=hassio --add-host hassio:172.30.32.2"
BR2_PACKAGE_HASSOS_CLI_PROFILE="docker-default" BR2_PACKAGE_HASSOS_CLI_PROFILE="docker-default"
BR2_PACKAGE_HASSOS_APPARMOR_DIR="supervisor/apparmor" BR2_PACKAGE_HASSOS_APPARMOR_DIR="supervisor/apparmor"
BR2_PACKAGE_APPARMOR=y BR2_PACKAGE_APPARMOR=y

View File

@@ -27,7 +27,6 @@ BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/kernel.confi
BR2_LINUX_KERNEL_LZ4=y BR2_LINUX_KERNEL_LZ4=y
BR2_LINUX_KERNEL_DTS_SUPPORT=y BR2_LINUX_KERNEL_DTS_SUPPORT=y
BR2_LINUX_KERNEL_INTREE_DTS_NAME="bcm2710-rpi-3-b bcm2710-rpi-3-b-plus bcm2710-rpi-cm3" BR2_LINUX_KERNEL_INTREE_DTS_NAME="bcm2710-rpi-3-b bcm2710-rpi-3-b-plus bcm2710-rpi-cm3"
BR2_LINUX_KERNEL_INSTALL_TARGET=y
BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y
BR2_LINUX_KERNEL_NEEDS_HOST_LIBELF=y BR2_LINUX_KERNEL_NEEDS_HOST_LIBELF=y
BR2_PACKAGE_BUSYBOX_CONFIG="$(BR2_EXTERNAL_HASSOS_PATH)/busybox.config" BR2_PACKAGE_BUSYBOX_CONFIG="$(BR2_EXTERNAL_HASSOS_PATH)/busybox.config"
@@ -35,6 +34,7 @@ BR2_PACKAGE_BUSYBOX_INDIVIDUAL_BINARIES=y
BR2_PACKAGE_JQ=y BR2_PACKAGE_JQ=y
BR2_PACKAGE_E2FSPROGS=y BR2_PACKAGE_E2FSPROGS=y
BR2_PACKAGE_E2FSPROGS_RESIZE2FS=y BR2_PACKAGE_E2FSPROGS_RESIZE2FS=y
BR2_PACKAGE_SQUASHFS=y
BR2_PACKAGE_RPI_WIFI_FIRMWARE=y BR2_PACKAGE_RPI_WIFI_FIRMWARE=y
BR2_PACKAGE_RPI_FIRMWARE=y BR2_PACKAGE_RPI_FIRMWARE=y
BR2_PACKAGE_GPTFDISK=y BR2_PACKAGE_GPTFDISK=y
@@ -45,6 +45,7 @@ BR2_PACKAGE_LIBDNET=y
BR2_PACKAGE_LIBCGROUP=y BR2_PACKAGE_LIBCGROUP=y
BR2_PACKAGE_LIBCGROUP_TOOLS=y BR2_PACKAGE_LIBCGROUP_TOOLS=y
BR2_PACKAGE_AVAHI=y BR2_PACKAGE_AVAHI=y
# BR2_PACKAGE_AVAHI_AUTOIPD is not set
BR2_PACKAGE_AVAHI_DAEMON=y BR2_PACKAGE_AVAHI_DAEMON=y
BR2_PACKAGE_AVAHI_LIBDNSSD_COMPATIBILITY=y BR2_PACKAGE_AVAHI_LIBDNSSD_COMPATIBILITY=y
BR2_PACKAGE_DROPBEAR=y BR2_PACKAGE_DROPBEAR=y
@@ -69,8 +70,7 @@ BR2_TARGET_UBOOT=y
BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y
BR2_TARGET_UBOOT_CUSTOM_VERSION=y BR2_TARGET_UBOOT_CUSTOM_VERSION=y
BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2018.05" BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2018.05"
BR2_TARGET_UBOOT_USE_CUSTOM_CONFIG=y BR2_TARGET_UBOOT_BOARD_DEFCONFIG="rpi_3_32b"
BR2_TARGET_UBOOT_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_HASSOS_PATH)/board/raspberrypi/rpi3/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_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/bootloader/uboot.config $(BR2_EXTERNAL_HASSOS_PATH)/board/raspberrypi/uboot.config"
BR2_TARGET_UBOOT_NEEDS_DTC=y BR2_TARGET_UBOOT_NEEDS_DTC=y
BR2_TARGET_UBOOT_BOOT_SCRIPT=y BR2_TARGET_UBOOT_BOOT_SCRIPT=y
@@ -82,11 +82,13 @@ BR2_PACKAGE_HOST_MTOOLS=y
BR2_PACKAGE_HOST_RAUC=y BR2_PACKAGE_HOST_RAUC=y
BR2_PACKAGE_HASSOS=y BR2_PACKAGE_HASSOS=y
BR2_PACKAGE_HASSOS_SUPERVISOR="homeassistant/armhf-hassio-supervisor" BR2_PACKAGE_HASSOS_SUPERVISOR="homeassistant/armhf-hassio-supervisor"
BR2_PACKAGE_HASSOS_SUPERVISOR_VERSION="107" BR2_PACKAGE_HASSOS_SUPERVISOR_VERSION="109"
BR2_PACKAGE_HASSOS_SUPERVISOR_ARGS="-e HOMEASSISTANT_REPOSITORY=homeassistant/raspberrypi3-homeassistant" BR2_PACKAGE_HASSOS_SUPERVISOR_ARGS="-e HOMEASSISTANT_REPOSITORY=homeassistant/raspberrypi3-homeassistant"
BR2_PACKAGE_HASSOS_SUPERVISOR_PROFILE="hassio-supervisor" BR2_PACKAGE_HASSOS_SUPERVISOR_PROFILE="hassio-supervisor"
BR2_PACKAGE_HASSOS_SUPERVISOR_PROFILE_URL="http://s3.amazonaws.com/hassio-version/apparmor.txt"
BR2_PACKAGE_HASSOS_CLI="homeassistant/armhf-hassio-cli" BR2_PACKAGE_HASSOS_CLI="homeassistant/armhf-hassio-cli"
BR2_PACKAGE_HASSOS_CLI_VERSION="3" BR2_PACKAGE_HASSOS_CLI_VERSION="5"
BR2_PACKAGE_HASSOS_CLI_ARGS="--network=hassio --add-host hassio:172.30.32.2"
BR2_PACKAGE_HASSOS_CLI_PROFILE="docker-default" BR2_PACKAGE_HASSOS_CLI_PROFILE="docker-default"
BR2_PACKAGE_HASSOS_APPARMOR_DIR="supervisor/apparmor" BR2_PACKAGE_HASSOS_APPARMOR_DIR="supervisor/apparmor"
BR2_PACKAGE_APPARMOR=y BR2_PACKAGE_APPARMOR=y

View File

@@ -27,7 +27,6 @@ BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/kernel.confi
BR2_LINUX_KERNEL_LZ4=y BR2_LINUX_KERNEL_LZ4=y
BR2_LINUX_KERNEL_DTS_SUPPORT=y BR2_LINUX_KERNEL_DTS_SUPPORT=y
BR2_LINUX_KERNEL_INTREE_DTS_NAME="bcm2708-rpi-b bcm2708-rpi-b-plus bcm2708-rpi-cm" BR2_LINUX_KERNEL_INTREE_DTS_NAME="bcm2708-rpi-b bcm2708-rpi-b-plus bcm2708-rpi-cm"
BR2_LINUX_KERNEL_INSTALL_TARGET=y
BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y
BR2_LINUX_KERNEL_NEEDS_HOST_LIBELF=y BR2_LINUX_KERNEL_NEEDS_HOST_LIBELF=y
BR2_PACKAGE_BUSYBOX_CONFIG="$(BR2_EXTERNAL_HASSOS_PATH)/busybox.config" BR2_PACKAGE_BUSYBOX_CONFIG="$(BR2_EXTERNAL_HASSOS_PATH)/busybox.config"
@@ -35,6 +34,7 @@ BR2_PACKAGE_BUSYBOX_INDIVIDUAL_BINARIES=y
BR2_PACKAGE_JQ=y BR2_PACKAGE_JQ=y
BR2_PACKAGE_E2FSPROGS=y BR2_PACKAGE_E2FSPROGS=y
BR2_PACKAGE_E2FSPROGS_RESIZE2FS=y BR2_PACKAGE_E2FSPROGS_RESIZE2FS=y
BR2_PACKAGE_SQUASHFS=y
BR2_PACKAGE_RPI_FIRMWARE=y BR2_PACKAGE_RPI_FIRMWARE=y
BR2_PACKAGE_GPTFDISK=y BR2_PACKAGE_GPTFDISK=y
BR2_PACKAGE_GPTFDISK_SGDISK=y BR2_PACKAGE_GPTFDISK_SGDISK=y
@@ -44,6 +44,7 @@ BR2_PACKAGE_LIBDNET=y
BR2_PACKAGE_LIBCGROUP=y BR2_PACKAGE_LIBCGROUP=y
BR2_PACKAGE_LIBCGROUP_TOOLS=y BR2_PACKAGE_LIBCGROUP_TOOLS=y
BR2_PACKAGE_AVAHI=y BR2_PACKAGE_AVAHI=y
# BR2_PACKAGE_AVAHI_AUTOIPD is not set
BR2_PACKAGE_AVAHI_DAEMON=y BR2_PACKAGE_AVAHI_DAEMON=y
BR2_PACKAGE_AVAHI_LIBDNSSD_COMPATIBILITY=y BR2_PACKAGE_AVAHI_LIBDNSSD_COMPATIBILITY=y
BR2_PACKAGE_DROPBEAR=y BR2_PACKAGE_DROPBEAR=y
@@ -68,8 +69,7 @@ BR2_TARGET_UBOOT=y
BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y
BR2_TARGET_UBOOT_CUSTOM_VERSION=y BR2_TARGET_UBOOT_CUSTOM_VERSION=y
BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2018.05" BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2018.05"
BR2_TARGET_UBOOT_USE_CUSTOM_CONFIG=y BR2_TARGET_UBOOT_BOARD_DEFCONFIG="rpi"
BR2_TARGET_UBOOT_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_HASSOS_PATH)/board/raspberrypi/rpi/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_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/bootloader/uboot.config $(BR2_EXTERNAL_HASSOS_PATH)/board/raspberrypi/uboot.config"
BR2_TARGET_UBOOT_NEEDS_DTC=y BR2_TARGET_UBOOT_NEEDS_DTC=y
BR2_TARGET_UBOOT_BOOT_SCRIPT=y BR2_TARGET_UBOOT_BOOT_SCRIPT=y
@@ -81,11 +81,13 @@ BR2_PACKAGE_HOST_MTOOLS=y
BR2_PACKAGE_HOST_RAUC=y BR2_PACKAGE_HOST_RAUC=y
BR2_PACKAGE_HASSOS=y BR2_PACKAGE_HASSOS=y
BR2_PACKAGE_HASSOS_SUPERVISOR="homeassistant/armhf-hassio-supervisor" BR2_PACKAGE_HASSOS_SUPERVISOR="homeassistant/armhf-hassio-supervisor"
BR2_PACKAGE_HASSOS_SUPERVISOR_VERSION="107" BR2_PACKAGE_HASSOS_SUPERVISOR_VERSION="109"
BR2_PACKAGE_HASSOS_SUPERVISOR_ARGS="-e HOMEASSISTANT_REPOSITORY=homeassistant/raspberrypi-homeassistant" BR2_PACKAGE_HASSOS_SUPERVISOR_ARGS="-e HOMEASSISTANT_REPOSITORY=homeassistant/raspberrypi-homeassistant"
BR2_PACKAGE_HASSOS_SUPERVISOR_PROFILE="hassio-supervisor" BR2_PACKAGE_HASSOS_SUPERVISOR_PROFILE="hassio-supervisor"
BR2_PACKAGE_HASSOS_SUPERVISOR_PROFILE_URL="http://s3.amazonaws.com/hassio-version/apparmor.txt"
BR2_PACKAGE_HASSOS_CLI="homeassistant/armhf-hassio-cli" BR2_PACKAGE_HASSOS_CLI="homeassistant/armhf-hassio-cli"
BR2_PACKAGE_HASSOS_CLI_VERSION="3" BR2_PACKAGE_HASSOS_CLI_VERSION="5"
BR2_PACKAGE_HASSOS_CLI_ARGS="--network=hassio --add-host hassio:172.30.32.2"
BR2_PACKAGE_HASSOS_CLI_PROFILE="docker-default" BR2_PACKAGE_HASSOS_CLI_PROFILE="docker-default"
BR2_PACKAGE_HASSOS_APPARMOR_DIR="supervisor/apparmor" BR2_PACKAGE_HASSOS_APPARMOR_DIR="supervisor/apparmor"
BR2_PACKAGE_APPARMOR=y BR2_PACKAGE_APPARMOR=y

View File

@@ -1,5 +1,5 @@
VERSION_MAJOR=0 VERSION_MAJOR=0
VERSION_BUILD=5 VERSION_BUILD=7
HASSOS_NAME="HassOS" HASSOS_NAME="HassOS"
HASSOS_ID="hassos" HASSOS_ID="hassos"

View File

@@ -97,3 +97,4 @@ CONFIG_EFI_PARTITION=y
# CONFIG_LOGO is not set # CONFIG_LOGO is not set
# CONFIG_VIRTUALIZATION is not set # CONFIG_VIRTUALIZATION is not set
# CONFIG_DEBUG_STACK_USAGE is not set

View File

@@ -0,0 +1,12 @@
#!/bin/sh
# Handle boot hocks
if [ "${RAUC_SLOT_CLASS}" = "boot" ]; then
if [ "${1}" = "slot-post-install" ]; then
/usr/lib/rauc/post-install-boot
elif [ "${1}" = "slot-pre-install" ]; then
/usr/lib/rauc/pre-install-boot
fi
fi
exit 0

View File

@@ -28,6 +28,11 @@ config BR2_PACKAGE_HASSOS_SUPERVISOR_PROFILE
help help
AppArmor profile for supervisor. AppArmor profile for supervisor.
config BR2_PACKAGE_HASSOS_SUPERVISOR_PROFILE_URL
string "AppArmor supervisor profile URL"
help
AppArmor profile for supervisor url.
config BR2_PACKAGE_HASSOS_CLI config BR2_PACKAGE_HASSOS_CLI
string "cli docker image" string "cli docker image"
help help
@@ -48,9 +53,14 @@ config BR2_PACKAGE_HASSOS_CLI_PROFILE
help help
AppArmor profile for cli. AppArmor profile for cli.
config BR2_PACKAGE_HASSOS_CLI_PROFILE_URL
string "AppArmor cli profile url"
help
AppArmor profile for cli url.
config BR2_PACKAGE_HASSOS_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 HassOS.
endif endif

View File

@@ -2,7 +2,7 @@ FROM alpine:3.7
# Install packages # Install packages
RUN apk add --no-cache \ RUN apk add --no-cache \
bash coreutils e2fsprogs bash coreutils e2fsprogs curl
RUN apk add --no-cache --repository http://nl.alpinelinux.org/alpine/v3.7/community \ RUN apk add --no-cache --repository http://nl.alpinelinux.org/alpine/v3.7/community \
docker docker

View File

@@ -5,10 +5,12 @@ SUPERVISOR=""
SUPERVISOR_VERSION="" SUPERVISOR_VERSION=""
SUPERVISOR_ARGS="" SUPERVISOR_ARGS=""
SUPERVISOR_PROFILE="" SUPERVISOR_PROFILE=""
SUPERVISOR_PROFILE_URL=""
CLI="" CLI=""
CLI_VERSION="" CLI_VERSION=""
CLI_ARGS="" CLI_ARGS=""
CLI_PROFILE="" CLI_PROFILE=""
CLI_PROFILE_URL=""
APPARMOR="" APPARMOR=""
DATA_IMG="/export/data.ext4" DATA_IMG="/export/data.ext4"
@@ -32,6 +34,10 @@ while [[ $# -gt 0 ]]; do
SUPERVISOR_PROFILE=$2 SUPERVISOR_PROFILE=$2
shift shift
;; ;;
--supervisor-profile-url)
SUPERVISOR_PROFILE_URL=$2
shift
;;
--cli) --cli)
CLI=$2 CLI=$2
shift shift
@@ -48,6 +54,10 @@ while [[ $# -gt 0 ]]; do
CLI_PROFILE=$2 CLI_PROFILE=$2
shift shift
;; ;;
--cli-profile-url)
CLI_PROFILE_URL=$2
shift
;;
--apparmor) --apparmor)
APPARMOR=$2 APPARMOR=$2
shift shift
@@ -106,7 +116,16 @@ EOF
# Setup AppArmor # Setup AppArmor
if [ ! -z "${APPARMOR}" ]; then if [ ! -z "${APPARMOR}" ]; then
mkdir -p /mnt/data/${APPARMOR} mkdir -p /mnt/data/${APPARMOR}
cp -f /apparmor/* /mnt/data/${APPARMOR}/
# Supervisor
if [ ! -z "${SUPERVISOR_PROFILE_URL}" ]; then
curl -L -o /mnt/data/${APPARMOR}/${SUPERVISOR_PROFILE} ${SUPERVISOR_PROFILE_URL}
fi
# CLI
if [ ! -z "${CLI_PROFILE_URL}" ]; then
curl -L -o /mnt/data/${APPARMOR}/${CLI_PROFILE} ${CLI_PROFILE_URL}
fi
fi fi
# Finish # Finish

View File

@@ -17,16 +17,17 @@ endef
define HASSOS_INSTALL_TARGET_CMDS define HASSOS_INSTALL_TARGET_CMDS
docker run --rm --privileged \ docker run --rm --privileged \
-v $(BINARIES_DIR):/export \ -v $(BINARIES_DIR):/export \
-v $(BR2_EXTERNAL_HASSOS_PATH)/apparmor:/apparmor \
hassos-hostapps \ hassos-hostapps \
--supervisor $(BR2_PACKAGE_HASSOS_SUPERVISOR) \ --supervisor $(BR2_PACKAGE_HASSOS_SUPERVISOR) \
--supervisor-version $(BR2_PACKAGE_HASSOS_SUPERVISOR_VERSION) \ --supervisor-version $(BR2_PACKAGE_HASSOS_SUPERVISOR_VERSION) \
--supervisor-args $(BR2_PACKAGE_HASSOS_SUPERVISOR_ARGS) \ --supervisor-args $(BR2_PACKAGE_HASSOS_SUPERVISOR_ARGS) \
--supervisor-profile $(BR2_PACKAGE_HASSOS_SUPERVISOR_PROFILE) \ --supervisor-profile $(BR2_PACKAGE_HASSOS_SUPERVISOR_PROFILE) \
--supervisor-profile-url $(BR2_PACKAGE_HASSOS_SUPERVISOR_PROFILE_URL) \
--cli $(BR2_PACKAGE_HASSOS_CLI) \ --cli $(BR2_PACKAGE_HASSOS_CLI) \
--cli-version $(BR2_PACKAGE_HASSOS_CLI_VERSION) \ --cli-version $(BR2_PACKAGE_HASSOS_CLI_VERSION) \
--cli-args $(BR2_PACKAGE_HASSOS_CLI_ARGS) \ --cli-args $(BR2_PACKAGE_HASSOS_CLI_ARGS) \
--cli-profile $(BR2_PACKAGE_HASSOS_CLI_PROFILE) \ --cli-profile $(BR2_PACKAGE_HASSOS_CLI_PROFILE) \
--cli-profile-url $(BR2_PACKAGE_HASSOS_CLI_PROFILE_URL) \
--apparmor $(BR2_PACKAGE_HASSOS_APPARMOR_DIR) --apparmor $(BR2_PACKAGE_HASSOS_APPARMOR_DIR)
endef endef

View File

@@ -4,12 +4,16 @@ mountprefix=/run/rauc
statusfile=/mnt/data/rauc.db statusfile=/mnt/data/rauc.db
bootloader=%BOOTLOADER% bootloader=%BOOTLOADER%
[handlers]
pre-install=/usr/lib/rauc/pre-install
post-install=/usr/lib/rauc/post-install
[keyring] [keyring]
path=/etc/rauc/keyring.pem path=/etc/rauc/keyring.pem
[slot.boot.0] [slot.boot.0]
device=/dev/disk/by-partlabel/hassos-boot device=/dev/disk/by-partlabel/hassos-boot
type=vfs type=vfat
[slot.kernel.0] [slot.kernel.0]
device=/dev/disk/by-partlabel/hassos-kernel0 device=/dev/disk/by-partlabel/hassos-kernel0

View File

@@ -1,5 +1,6 @@
[Unit] [Unit]
RequiresMountsFor=/etc/dropbear RequiresMountsFor=/etc/dropbear
ConditionFileNotEmpty=/root/.ssh/known_hosts
[Service] [Service]
ExecStartPre= ExecStartPre=

View File

@@ -0,0 +1,3 @@
[Unit]
Requires=docker.service
After=docker.service

View File

@@ -1,2 +0,0 @@
[Unit]
OnFailure=rauc-bad.service

View File

@@ -1 +0,0 @@
/usr/lib/systemd/system/mnt-state.mount

View File

@@ -1 +0,0 @@
/usr/lib/systemd/system/rauc-good.timer

View File

@@ -0,0 +1 @@
/usr/lib/systemd/system/rauc-mark.timer

View File

@@ -0,0 +1,4 @@
#!/bin/sh
systemctl start mnt-boot.mount
systemctl reboot

View File

@@ -0,0 +1,7 @@
#!/bin/sh
BOOT_DATA=/tmp/boot-data
cp -f ${BOOT_DATA}/*.txt ${RAUC_SLOT_MOUNT_POINT}/
rm -rf ${BOOT_DATA}

View File

@@ -0,0 +1,3 @@
#!/bin/sh
systemctl stop mnt-boot.mount

View File

@@ -0,0 +1,8 @@
#!/bin/sh
BOOT_DATA=/tmp/boot-data
rm -rf ${BOOT_DATA}
mkdir -p ${BOOT_DATA}
cp -f ${RAUC_SLOT_MOUNT_POINT}/*.txt ${BOOT_DATA}/

View File

@@ -2,6 +2,8 @@
Description=HassOS data resizing Description=HassOS data resizing
DefaultDependencies=no DefaultDependencies=no
Before=mnt-data.mount Before=mnt-data.mount
RefuseManualStart=true
RefuseManualStop=true
[Service] [Service]
Type=oneshot Type=oneshot

View File

@@ -0,0 +1,8 @@
[Unit]
Description=HassOS config partition
[Mount]
What=LABEL=hassos-config
Where=/mnt/config
Type=auto
Options=ro

View File

@@ -1,10 +0,0 @@
[Unit]
Description=HassOS rauc bad
Requires=rauc.service
RefuseManualStart=true
RefuseManualStop=true
[Service]
Type=oneshot
ExecStart=/usr/bin/rauc status mark-bad
ExecStartPost=/usr/bin/systemctl reboot

View File

@@ -1,10 +1,9 @@
[Unit] [Unit]
Description=HassOS rauc good Description=HassOS rauc good
Requires=hassos-supervisor.service rauc.service
RefuseManualStart=true RefuseManualStart=true
RefuseManualStop=true RefuseManualStop=true
[Service] [Service]
Type=oneshot Type=oneshot
ExecStart=/usr/bin/rauc status mark-good ExecStart=/usr/sbin/hassos-rate
RemainAfterExit=true RemainAfterExit=true

View File

@@ -2,6 +2,8 @@
Description=HassOS ZRAM swap Description=HassOS ZRAM swap
DefaultDependencies=no DefaultDependencies=no
Before=dev-zram0.swap Before=dev-zram0.swap
RefuseManualStart=true
RefuseManualStop=true
[Service] [Service]
Type=oneshot Type=oneshot

View File

@@ -2,6 +2,8 @@
Description=HassOS ZRAM tmp Description=HassOS ZRAM tmp
DefaultDependencies=no DefaultDependencies=no
Before=tmp.mount Before=tmp.mount
RefuseManualStart=true
RefuseManualStop=true
[Service] [Service]
Type=oneshot Type=oneshot

View File

@@ -2,6 +2,8 @@
Description=HassOS ZRAM var Description=HassOS ZRAM var
DefaultDependencies=no DefaultDependencies=no
Before=var.mount Before=var.mount
RefuseManualStart=true
RefuseManualStop=true
[Service] [Service]
Type=oneshot Type=oneshot

View File

@@ -1,15 +1,12 @@
#!/bin/sh #!/bin/sh
set -e
# Check if hassos-config is present # Mount config folder
if ! findfs LABEL="hassos-config" > /dev/null; then systemctl start mnt-config.mount
echo "[Warning] No hassos-config partition found!" if ! systemctl -q is-active mnt-config.mount; then
echo "[Warning] No config partition found"
exit 0 exit 0
fi fi
# Mount config partition
mount -o ro LABEL="hassos-config" /mnt/config
## ##
# NetworkManager # NetworkManager
if [ -d /mnt/config/network ]; then if [ -d /mnt/config/network ]; then
@@ -18,7 +15,7 @@ if [ -d /mnt/config/network ]; then
rm -rf /etc/NetworkManager/system-connections/* rm -rf /etc/NetworkManager/system-connections/*
cp -f /mnt/config/network/* /etc/NetworkManager/system-connections/ cp -f /mnt/config/network/* /etc/NetworkManager/system-connections/
nmcli con reload || true nmcli con reload
fi fi
## ##
@@ -37,16 +34,21 @@ if [ -f /mnt/config/known_hosts ]; then
cp -f /mnt/config/known_hosts /root/.ssh/known_hosts cp -f /mnt/config/known_hosts /root/.ssh/known_hosts
chmod 600 /root/.ssh/known_hosts chmod 600 /root/.ssh/known_hosts
systemctl start dropbear
else
rm -f /root/.ssh/known_hosts
systemctl stop dropbear
fi fi
## ##
# Firmware update # Firmware update
if ls /mnt/config/*.rauc > /dev/null; then if ls /mnt/config/*.raucb > /dev/null; then
echo "[Info] Performe a firmware update" echo "[Info] Performe a firmware update"
rauc_filename=$(ls /mnt/config/*.rauc | head -n 1) rauc_filename=$(ls /mnt/config/*.raucb | head -n 1)
rauc install /mnt/config/$rauc_filename rauc install /mnt/config/$rauc_filename
fi fi
# Cleanup config partition # Cleanup config partition
umount /mnt/config systemctl stop mnt-config.mount

View File

@@ -12,6 +12,7 @@ fi
# Resize & Reload partition # Resize & Reload partition
echo "[INFO] Update hassos-data partition" echo "[INFO] Update hassos-data partition"
sgdisk -e ${DEVICE_ROOT}
sgdisk -d 8 -n 8:0:0 -c 8:"hassos-data" -t 8:"0FC63DAF-8483-4772-8E79-3D69D8477DE4" -u 8:"a52a4597-fa3a-4851-aefd-2fbe9f849079" ${DEVICE_ROOT} sgdisk -d 8 -n 8:0:0 -c 8:"hassos-data" -t 8:"0FC63DAF-8483-4772-8E79-3D69D8477DE4" -u 8:"a52a4597-fa3a-4851-aefd-2fbe9f849079" ${DEVICE_ROOT}
sgdisk -v ${DEVICE_ROOT} sgdisk -v ${DEVICE_ROOT}
partx -u ${DEVICE_ROOT} partx -u ${DEVICE_ROOT}

View File

@@ -0,0 +1,27 @@
#!/bin/sh
set -e
function mark_good() {
rauc status mark-good
exit 0
}
function mark_bad() {
rauc status mark-bad
systemctl reboot
}
#### Check system ####
# Docker state
if ! systemctl -q is-active docker; then
mark_bad
fi
# Docker state
if ! systemctl -q is-active hassos-supervisor; then
mark_bad
fi
mark_good

View File

@@ -18,8 +18,8 @@ DATA_SIZE=1G
function create_boot_image() { function create_boot_image() {
local boot_data="${1}/boot" local boot_data="${BINARIES_DIR}/boot"
local boot_img="${1}/boot.vfat" local boot_img="${BINARIES_DIR}/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
@@ -29,7 +29,7 @@ function create_boot_image() {
function create_overlay_image() { function create_overlay_image() {
local overlay_img="${1}/overlay.ext4" local overlay_img="${BINARIES_DIR}/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 "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}
@@ -37,39 +37,41 @@ function create_overlay_image() {
function create_kernel_image() { function create_kernel_image() {
local kernel0_img="${1}/kernel0.ext4" local kernel_img="${BINARIES_DIR}/kernel.ext4"
local kernel1_img="${1}/kernel1.ext4" local kernel="${BINARIES_DIR}/${KERNEL_FILE}"
local kernel=${1}/${2}
# Make image # Make image
dd if=/dev/zero of=${kernel0_img} bs=${KERNEL_SIZE} count=1 dd if=/dev/zero of=${kernel_img} bs=${KERNEL_SIZE} count=1
mkfs.ext4 -L "hassos-kernel0" -E lazy_itable_init=0,lazy_journal_init=0 ${kernel0_img} mkfs.ext4 -L "hassos-kernel" -E lazy_itable_init=0,lazy_journal_init=0 ${kernel_img}
dd if=/dev/zero of=${kernel1_img} bs=${KERNEL_SIZE} count=1
mkfs.ext4 -L "hassos-kernel1" -E lazy_itable_init=0,lazy_journal_init=0 ${kernel1_img}
# Mount / init file structs # Mount / init file structs
mkdir -p /mnt/data/ mkdir -p /mnt/data/
mount -o loop ${kernel0_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
} }
function prepare_disk_image() {
create_boot_image
create_overlay_image
create_kernel_image
}
function create_disk_image() { function create_disk_image() {
local boot_img="${1}/boot.vfat" local boot_img="${BINARIES_DIR}/boot.vfat"
local rootfs_img="${1}/rootfs.squashfs" local rootfs_img="${BINARIES_DIR}/rootfs.squashfs"
local overlay_img="${1}/overlay.ext4" local overlay_img="${BINARIES_DIR}/overlay.ext4"
local data_img="${1}/data.ext4" local data_img="${BINARIES_DIR}/data.ext4"
local kernel0_img="${1}/kernel0.ext4" local kernel_img="${BINARIES_DIR}/kernel.ext4"
local kernel1_img="${1}/kernel1.ext4" local hdd_img="$(hassos_image_name img)"
local hdd_img=${2} local hdd_count=${1:-2}
local hdd_count=${3:-2}
local loop_dev="/dev/mapper/$(losetup -f | cut -d'/' -f3)" local loop_dev="/dev/mapper/$(losetup -f | cut -d'/' -f3)"
local boot_offset=0 local boot_offset=0
local rootfs_offset=0 local rootfs_offset=0
local kernel0_offset=0 local kernel_offset=0
local kernel1_offset=0
local overlay_offset=0 local overlay_offset=0
local data_offset=0 local data_offset=0
@@ -81,13 +83,12 @@ function create_disk_image() {
boot_offset="$(sgdisk -F ${hdd_img})" boot_offset="$(sgdisk -F ${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} sgdisk -n 1:0:+${BOOT_SIZE} -c 1:"hassos-boot" -t 1:"C12A7328-F81F-11D2-BA4B-00A0C93EC93B" -u 1:${BOOT_UUID} ${hdd_img}
kernel0_offset="$(sgdisk -F ${hdd_img})" kernel_offset="$(sgdisk -F ${hdd_img})"
sgdisk -n 2:0:+${KERNEL_SIZE} -c 2:"hassos-kernel0" -t 2:"0FC63DAF-8483-4772-8E79-3D69D8477DE4" -u 2:${KERNEL0_UUID} ${hdd_img} sgdisk -n 2:0:+${KERNEL_SIZE} -c 2:"hassos-kernel0" -t 2:"0FC63DAF-8483-4772-8E79-3D69D8477DE4" -u 2:${KERNEL0_UUID} ${hdd_img}
rootfs_offset="$(sgdisk -F ${hdd_img})" rootfs_offset="$(sgdisk -F ${hdd_img})"
sgdisk -n 3:0:+${SYSTEM_SIZE} -c 3:"hassos-system0" -t 3:"0FC63DAF-8483-4772-8E79-3D69D8477DE4" -u 3:${SYSTEM0_UUID} ${hdd_img} sgdisk -n 3:0:+${SYSTEM_SIZE} -c 3:"hassos-system0" -t 3:"0FC63DAF-8483-4772-8E79-3D69D8477DE4" -u 3:${SYSTEM0_UUID} ${hdd_img}
kernel1_offset="$(sgdisk -F ${hdd_img})"
sgdisk -n 4:0:+${KERNEL_SIZE} -c 4:"hassos-kernel1" -t 4:"0FC63DAF-8483-4772-8E79-3D69D8477DE4" -u 4:${KERNEL1_UUID} ${hdd_img} sgdisk -n 4:0:+${KERNEL_SIZE} -c 4:"hassos-kernel1" -t 4:"0FC63DAF-8483-4772-8E79-3D69D8477DE4" -u 4:${KERNEL1_UUID} ${hdd_img}
sgdisk -n 5:0:+${SYSTEM_SIZE} -c 5:"hassos-system1" -t 5:"0FC63DAF-8483-4772-8E79-3D69D8477DE4" -u 5:${SYSTEM1_UUID} ${hdd_img} sgdisk -n 5:0:+${SYSTEM_SIZE} -c 5:"hassos-system1" -t 5:"0FC63DAF-8483-4772-8E79-3D69D8477DE4" -u 5:${SYSTEM1_UUID} ${hdd_img}
@@ -103,8 +104,7 @@ function create_disk_image() {
# Write Images # Write Images
sgdisk -v sgdisk -v
dd if=${boot_img} of=${hdd_img} conv=notrunc bs=512 obs=512 seek=${boot_offset} dd if=${boot_img} of=${hdd_img} conv=notrunc bs=512 obs=512 seek=${boot_offset}
dd if=${kernel0_img} of=${hdd_img} conv=notrunc bs=512 obs=512 seek=${kernel0_offset} dd if=${kernel_img} of=${hdd_img} conv=notrunc bs=512 obs=512 seek=${kernel_offset}
dd if=${kernel1_img} of=${hdd_img} conv=notrunc bs=512 obs=512 seek=${kernel1_offset}
dd if=${rootfs_img} of=${hdd_img} conv=notrunc bs=512 obs=512 seek=${rootfs_offset} dd if=${rootfs_img} of=${hdd_img} conv=notrunc bs=512 obs=512 seek=${rootfs_offset}
dd if=${overlay_img} of=${hdd_img} conv=notrunc bs=512 obs=512 seek=${overlay_offset} dd if=${overlay_img} of=${hdd_img} conv=notrunc bs=512 obs=512 seek=${overlay_offset}
dd if=${data_img} of=${hdd_img} conv=notrunc bs=512 obs=512 seek=${data_offset} dd if=${data_img} of=${hdd_img} conv=notrunc bs=512 obs=512 seek=${data_offset}
@@ -112,8 +112,26 @@ function create_disk_image() {
function fix_disk_image_mbr() { function fix_disk_image_mbr() {
local hdd_img=${1} 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 convert_disk_image_vmdk() {
local hdd_img="$(hassos_image_name img)"
local hdd_vmdk="$(hassos_image_name vmdk)"
rm -f ${hdd_vmdk}
qemu-img convert -O vmdk ${hdd_img} ${hdd_vmdk}
rm -f ${hdd_img}
}
function convert_disk_image_gz() {
local hdd_img="$(hassos_image_name img)"
rm -f ${hdd_img}.gz
gzip --best ${hdd_img}
}

View File

@@ -0,0 +1,13 @@
#!/bin/bash
function hassos_image_name() {
echo "${BINARIES_DIR}/${HASSOS_ID}_${BOARD_ID}-${VERSION_MAJOR}.${VERSION_BUILD}.${1}"
}
function hassos_rauc_compatible() {
echo "${HASSOS_ID}-${BOARD_ID}"
}
function hassos_version() {
echo "${VERSION_MAJOR}.${VERSION_BUILD}"
}

View File

@@ -0,0 +1,36 @@
#!/bin/bash
function create_ota_update() {
local ota_file="$(hassos_image_name raucb)"
local rauc_folder="${BINARIES_DIR}/rauc"
local boot="${BINARIES_DIR}/boot.vfat"
local kernel="${BINARIES_DIR}/kernel.ext4"
local rootfs="${BINARIES_DIR}/rootfs.squashfs"
local key="/build/key.pem"
local cert="/build/cert.pem"
rm -rf ${rauc_folder} ${ota_file}
mkdir -p ${rauc_folder}
cp -f ${kernel} ${rauc_folder}/kernel.ext4
cp -f ${boot} ${rauc_folder}/boot.vfat
cp -f ${rootfs} ${rauc_folder}/rootfs.img
cp -f ${BR2_EXTERNAL_HASSOS_PATH}/misc/rauc-hook ${rauc_folder}/hook
(
echo "[update]"
echo "compatible=$(hassos_rauc_compatible)"
echo "version=$(hassos_version)"
echo "[hooks]"
echo "filename=hook"
echo "[image.boot]"
echo "filename=boot.vfat"
echo "hooks=pre-install;post-install"
echo "[image.kernel]"
echo "filename=kernel.ext4"
echo "[image.rootfs]"
echo "filename=rootfs.img"
) > ${rauc_folder}/manifest.raucm
rauc bundle -d --cert=${cert} --key=${key} ${rauc_folder} ${ota_file}
}

View File

@@ -7,6 +7,8 @@ BOARD_DIR=${2}
. ${SCRIPT_DIR}/rootfs-layer.sh . ${SCRIPT_DIR}/rootfs-layer.sh
. ${BR2_EXTERNAL_HASSOS_PATH}/info . ${BR2_EXTERNAL_HASSOS_PATH}/info
. ${BOARD_DIR}/info . ${BOARD_DIR}/info
. ${SCRIPT_DIR}/name.sh
# HassOS tasks # HassOS tasks
fix_rootfs fix_rootfs
@@ -32,12 +34,20 @@ install_hassos_cli
) > ${TARGET_DIR}/etc/machine-info ) > ${TARGET_DIR}/etc/machine-info
# Settup rauc # Settup rauc
sed -i "s/%COMPATIBLE%/${HASSOS_ID}-${BOARD_ID}/g" ${TARGET_DIR}/etc/rauc/system.conf sed -i "s/%COMPATIBLE%/$(hassos_rauc_compatible)/g" ${TARGET_DIR}/etc/rauc/system.conf
sed -i "s/%BOOTLOADER%/${BOOTLOADER}/g" ${TARGET_DIR}/etc/rauc/system.conf sed -i "s/%BOOTLOADER%/${BOOTLOADER}/g" ${TARGET_DIR}/etc/rauc/system.conf
# Settup the correct CA # Settup the correct CA
if [ "${DEPLOYMENT}" == "development" ]; then if [ "${DEPLOYMENT}" == "production" ]; then
cp ${BR2_EXTERNAL_HASSOS_PATH}/misc/provisioning-ca.pem ${TARGET_DIR}/etc/rauc/keyring.pem
else
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
cp ${BR2_EXTERNAL_HASSOS_PATH}/misc/dev-ca.pem ${TARGET_DIR}/etc/rauc/keyring.pem
fi fi
# Bootloader options
if [ "${BOOTLOADER}" == "uboot" ]; then
cp ${BR2_EXTERNAL_HASSOS_PATH}/misc/fw_env.config ${TARGET_DIR}/etc/fw_env.config
else
cp ${BR2_EXTERNAL_HASSOS_PATH}/misc/barebox-state-efi.dtb ${TARGET_DIR}/etc/barebox-state.dtb
fi

15
scripts/build-all.sh Executable file
View File

@@ -0,0 +1,15 @@
#!/bin/bash
set -e
mkdir -p /build/RL
all_platforms=(ova rpi rpi0_w rpi2 rpi3 rpi3_64)
for platform in "${all_platforms[@]}"; do
make -C /build/buildroot BR2_EXTERNAL=/build/buildroot-external \
${platform}_defconfig
make -C /build/buildroot BR2_EXTERNAL=/build/buildroot-external
cp -f /build/buildroot/output/images/hassos_* /build/release/
make -C /build/buildroot BR2_EXTERNAL=/build/buildroot-external \
clean
done