From 6e9326d11b6f98cb393d069bf4c9984795889f36 Mon Sep 17 00:00:00 2001 From: Pascal Vizeli Date: Tue, 26 Jun 2018 11:48:16 +0200 Subject: [PATCH 01/32] Fix build script for new layout (#40) --- scripts/build-all.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/build-all.sh b/scripts/build-all.sh index f3d075243..5f99638a5 100755 --- a/scripts/build-all.sh +++ b/scripts/build-all.sh @@ -1,7 +1,7 @@ #!/bin/bash set -e -mkdir -p /build/RL +mkdir -p /build/release all_platforms=(ova rpi rpi0_w rpi2 rpi3 rpi3_64) for platform in "${all_platforms[@]}"; do From ca50a86768dae4971740139c57c3197595a89a32 Mon Sep 17 00:00:00 2001 From: Pascal Vizeli Date: Tue, 26 Jun 2018 12:27:09 +0200 Subject: [PATCH 02/32] Bump version to next development release (#41) --- buildroot-external/info | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/buildroot-external/info b/buildroot-external/info index 445b1d82e..2944e92da 100644 --- a/buildroot-external/info +++ b/buildroot-external/info @@ -1,5 +1,5 @@ -VERSION_MAJOR=0 -VERSION_BUILD=7 +VERSION_MAJOR=2 +VERSION_BUILD=0 HASSOS_NAME="HassOS" HASSOS_ID="hassos" From 80079930c550feff481c9d1dc8f0577739100024 Mon Sep 17 00:00:00 2001 From: Pascal Vizeli Date: Tue, 26 Jun 2018 13:28:00 +0200 Subject: [PATCH 03/32] Include ota script into board image (#42) --- buildroot-external/board/raspberrypi/post-image.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/buildroot-external/board/raspberrypi/post-image.sh b/buildroot-external/board/raspberrypi/post-image.sh index 7f1e1ef78..9a056687a 100755 --- a/buildroot-external/board/raspberrypi/post-image.sh +++ b/buildroot-external/board/raspberrypi/post-image.sh @@ -7,6 +7,7 @@ BOOT_DATA=${BINARIES_DIR}/boot . ${SCRIPT_DIR}/hdd-image.sh . ${SCRIPT_DIR}/name.sh +. ${SCRIPT_DIR}/ota.sh . ${BR2_EXTERNAL_HASSOS_PATH}/info . ${BOARD_DIR}/info From af23b6199e54d4dfaba7908df2f1774e8a581428 Mon Sep 17 00:00:00 2001 From: Pascal Vizeli Date: Tue, 26 Jun 2018 21:32:41 +0200 Subject: [PATCH 04/32] Add script for github upload (#43) Signed-off-by: Pascal Vizeli --- scripts/upload-rel.sh | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100755 scripts/upload-rel.sh diff --git a/scripts/upload-rel.sh b/scripts/upload-rel.sh new file mode 100755 index 000000000..bb35f941f --- /dev/null +++ b/scripts/upload-rel.sh @@ -0,0 +1,43 @@ +#!/bin/bash +set -e + +if [ -z "${1}" ] || [ -z "${2}" ]; then + echo "[Error] Parameter error" + exit 1 +fi + +# Define variables. +GH_API="https://api.github.com" +GH_REPO="$GH_API/repos/home-assistant/hassos" +GH_TAGS="$GH_REPO/releases/tags/${2}" +AUTH="Authorization: token ${1}" + +# Validate token. +if ! curl -o /dev/null -sH "$AUTH" $GH_REPO; then + echo "[Error] Invalid repo, token or network issue!" + exit 1 +fi + +# Read asset tags. +id=$(curl -sH "$AUTH" $GH_TAGS | jq -e ".id // empty") + +# Get ID of the asset based on given filename. +if [ -z "$id" ]; then + echo "[Error] Failed to get release id for tag: ${2}" + exit 1 +fi + +# Upload asset +echo "[Info] Start Uploading asset... " + +for filename in release/*.{gz,raucb}; do + echo "[Info] Start upload ${filename}" + + # Construct url + GH_ASSET="https://uploads.github.com/repos/home-assistant/hassos/releases/$id/assets?name=$(basename $filename)" + + curl "$GITHUB_OAUTH_BASIC" --data-binary @"$filename" -H "${AUTH}" -H "Content-Type: application/octet-stream" $GH_ASSET + + echo "[Info] Upload ${filename} done" +done + From d3e3e36a6e663113e5ff4d2312a60b78cd1fbf4b Mon Sep 17 00:00:00 2001 From: Pascal Vizeli Date: Tue, 26 Jun 2018 22:24:15 +0200 Subject: [PATCH 05/32] Improve the documentation (#44) * Create network.md * Update configuration.md * Update network.md * Update network.md --- Documentation/configuration.md | 5 ++- Documentation/network.md | 58 ++++++++++++++++++++++++++++++++++ 2 files changed, 62 insertions(+), 1 deletion(-) create mode 100644 Documentation/network.md diff --git a/Documentation/configuration.md b/Documentation/configuration.md index 7af004b42..b3a9eb0b7 100644 --- a/Documentation/configuration.md +++ b/Documentation/configuration.md @@ -13,7 +13,10 @@ hassos-xy.raucb - On `network` folder can hold any kind of NetworkManager connections files. - The folder `modules` is for modules-load configuration files. - `known_hosts` file activate debug SSH access of port `22222`. -- For firmware updates you can but the `hassos-*.raucb` OTA update they should be install. +- For firmware updates you can but the `hassos-*.raucb` OTA update they should be install. + +You can put this USB stick into device and they will be read on startup. You can also trigger this process later over the +API/UI or call `systemctl restart hassos-config` on host. ## Local diff --git a/Documentation/network.md b/Documentation/network.md new file mode 100644 index 000000000..1ce6cebe5 --- /dev/null +++ b/Documentation/network.md @@ -0,0 +1,58 @@ +# Network + +HassOS use NetworkManager to control the host network. You can setup the network configuartion in future over the API/UI. +Actual we support only manual configuration with NetworkManager connection files. Without a configuration, we run default as +DHCP device. + +## Configuration Examples + +You can look also into [Official Manual][keyfile] or there are a lot of examples accross internet. + +### LAN +```ini +[connection] +id=hassos-network +type=ethernet + +[ipv4] +method=auto + +[ipv6] +addr-gen-mode=stable-privacy +method=auto +``` + +### Wireless WPA/PSK +```ini +[connection] +id=hassos-network +type=wifi + +[wifi] +mode=infrastructure +ssid=MY_SSID + +[wifi-security] +auth-alg=open +key-mgmt=wpa-psk +psk=MY_WLAN_SECRED_KEY + +[ipv4] +method=auto + +[ipv6] +addr-gen-mode=stable-privacy +method=auto +``` + +### Static IP + +Replace follow configs: +```ini +[ipv4] +method=manual +address1=192.168.1.111/24,192.168.1.1 +dns=8.8.8.8;8.8.4.4; +``` + +[keyfile]: https://developer.gnome.org/NetworkManager/stable/nm-settings.html From 23a58b23b5a2e444c86a5799280399b7cab4a675 Mon Sep 17 00:00:00 2001 From: Pascal Vizeli Date: Wed, 27 Jun 2018 12:05:44 +0200 Subject: [PATCH 06/32] We publish now the vmdk and not OVA/OVF (#46) * Update upload-rel.sh * Create ova.md --- Documentation/boards/ova.md | 14 ++++++++++++++ scripts/upload-rel.sh | 2 +- 2 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 Documentation/boards/ova.md diff --git a/Documentation/boards/ova.md b/Documentation/boards/ova.md new file mode 100644 index 000000000..7d4ce7db1 --- /dev/null +++ b/Documentation/boards/ova.md @@ -0,0 +1,14 @@ +# OVA + +The OVA stay for open virtual appliance. Currently we had remove the ova files and publish a vmdk virtual disk, +until we have better OVF template to generate our OVA. This vmdk work with (maybe you need convert the disk): +- HyperV +- VirtualBox +- VMware + +## Virtual Machine + +You can use this vmdk in a virtual machine with follow requirements: +- UEFI boot +- min. 1GB RAM +- 2 vcpu diff --git a/scripts/upload-rel.sh b/scripts/upload-rel.sh index bb35f941f..6fcb3663a 100755 --- a/scripts/upload-rel.sh +++ b/scripts/upload-rel.sh @@ -30,7 +30,7 @@ fi # Upload asset echo "[Info] Start Uploading asset... " -for filename in release/*.{gz,raucb}; do +for filename in release/*; do echo "[Info] Start upload ${filename}" # Construct url From f6a916001d06f4d469ffd41e5ffddbec6d4fe428 Mon Sep 17 00:00:00 2001 From: Pascal Vizeli Date: Wed, 27 Jun 2018 13:56:52 +0200 Subject: [PATCH 07/32] Update ova.md (#47) --- Documentation/boards/ova.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Documentation/boards/ova.md b/Documentation/boards/ova.md index 7d4ce7db1..0a625dde7 100644 --- a/Documentation/boards/ova.md +++ b/Documentation/boards/ova.md @@ -9,6 +9,8 @@ until we have better OVF template to generate our OVA. This vmdk work with (mayb ## Virtual Machine You can use this vmdk in a virtual machine with follow requirements: +- OS: Linux 64bit - UEFI boot - min. 1GB RAM -- 2 vcpu +- 2x vcpu +- 1x Network From f739aed8deab0dbbfac67c5082ec76c60d6a9dcb Mon Sep 17 00:00:00 2001 From: Pascal Vizeli Date: Thu, 28 Jun 2018 22:20:34 +0200 Subject: [PATCH 08/32] Fix hassos-conf label (#48) * Update mnt-config.mount * Update configuration.md * Update configuration.md * Update mnt-config.mount * Update configuration.md --- Documentation/configuration.md | 5 ++++- .../rootfs-overlay/usr/lib/systemd/system/mnt-config.mount | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/Documentation/configuration.md b/Documentation/configuration.md index b3a9eb0b7..1c51389a1 100644 --- a/Documentation/configuration.md +++ b/Documentation/configuration.md @@ -2,7 +2,7 @@ ## Automatic -You can format a USB stick with FAT32 and name it with `hassos-config`. The layout could be look like: +You can format a USB stick with FAT32/EXT4 and name it with `config`. The layout could be look like: ``` network/ modules/ @@ -28,5 +28,8 @@ You can edit or create a `cmdline.txt` into your boot partition. That will be re The kernel module folder `/etc/modules-load.d` is persistent and you can add your config files there. See [Systemd modules load][systemd-modules]. +### Network + +You can manual add, edit or remove connections configs from `/etc/NetworkManager/system-connections`. [systemd-modules]: https://www.freedesktop.org/software/systemd/man/modules-load.d.html diff --git a/buildroot-external/rootfs-overlay/usr/lib/systemd/system/mnt-config.mount b/buildroot-external/rootfs-overlay/usr/lib/systemd/system/mnt-config.mount index fd886e1b7..9140f9e2a 100644 --- a/buildroot-external/rootfs-overlay/usr/lib/systemd/system/mnt-config.mount +++ b/buildroot-external/rootfs-overlay/usr/lib/systemd/system/mnt-config.mount @@ -2,7 +2,7 @@ Description=HassOS config partition [Mount] -What=LABEL=hassos-config +What=LABEL=config Where=/mnt/config Type=auto Options=ro From 8dd8816e4e6764962dcfa5f22ea0f7bd325835ae Mon Sep 17 00:00:00 2001 From: Pascal Vizeli Date: Thu, 28 Jun 2018 22:21:50 +0200 Subject: [PATCH 09/32] Fix authorized_keys keys (#53) * Fix authorized_keys keys * Update hassos.conf * Update configuration.md * Update hassos-config * Update hassos-config --- Documentation/configuration.md | 4 ++-- .../system/dropbear.service.d/hassos.conf | 2 +- .../rootfs-overlay/usr/sbin/hassos-config | 19 ++++++++++++------- 3 files changed, 15 insertions(+), 10 deletions(-) diff --git a/Documentation/configuration.md b/Documentation/configuration.md index 1c51389a1..d636390b6 100644 --- a/Documentation/configuration.md +++ b/Documentation/configuration.md @@ -6,13 +6,13 @@ You can format a USB stick with FAT32/EXT4 and name it with `config`. The layout ``` network/ modules/ -known_hosts +authorized_keys hassos-xy.raucb ``` - On `network` folder can hold any kind of NetworkManager connections files. - The folder `modules` is for modules-load configuration files. -- `known_hosts` file activate debug SSH access of port `22222`. +- `authorized_keys` file activate debug SSH access of port `22222`. - For firmware updates you can but the `hassos-*.raucb` OTA update they should be install. You can put this USB stick into device and they will be read on startup. You can also trigger this process later over the diff --git a/buildroot-external/rootfs-overlay/etc/systemd/system/dropbear.service.d/hassos.conf b/buildroot-external/rootfs-overlay/etc/systemd/system/dropbear.service.d/hassos.conf index 4967b8871..5da76e50a 100644 --- a/buildroot-external/rootfs-overlay/etc/systemd/system/dropbear.service.d/hassos.conf +++ b/buildroot-external/rootfs-overlay/etc/systemd/system/dropbear.service.d/hassos.conf @@ -1,6 +1,6 @@ [Unit] RequiresMountsFor=/etc/dropbear -ConditionFileNotEmpty=/root/.ssh/known_hosts +ConditionFileNotEmpty=/root/.ssh/authorized_keys [Service] ExecStartPre= diff --git a/buildroot-external/rootfs-overlay/usr/sbin/hassos-config b/buildroot-external/rootfs-overlay/usr/sbin/hassos-config index 583ce2991..e28e51e09 100755 --- a/buildroot-external/rootfs-overlay/usr/sbin/hassos-config +++ b/buildroot-external/rootfs-overlay/usr/sbin/hassos-config @@ -1,10 +1,15 @@ #!/bin/sh +if ! findfs LABEL="config" > /dev/null; then + echo "[Warning] No config partition found" + exit 0 +fi + # Mount config folder systemctl start mnt-config.mount if ! systemctl -q is-active mnt-config.mount; then - echo "[Warning] No config partition found" - exit 0 + echo "[Error] Can't mount config partition" + exit 1 fi ## @@ -29,15 +34,15 @@ fi ## # SSH know hosts -if [ -f /mnt/config/known_hosts ]; then - echo "[Info] Update SSH known_hosts!" +if [ -f /mnt/config/authorized_keys ]; then + echo "[Info] Update SSH authorized_keys!" - cp -f /mnt/config/known_hosts /root/.ssh/known_hosts - chmod 600 /root/.ssh/known_hosts + cp -f /mnt/config/known_hosts /root/.ssh/authorized_keys + chmod 600 /root/.ssh/authorized_keys systemctl start dropbear else - rm -f /root/.ssh/known_hosts + rm -f /root/.ssh/authorized_keys systemctl stop dropbear fi From dde6d8f806288a9517236e49d641aa18e56238e9 Mon Sep 17 00:00:00 2001 From: Pascal Vizeli Date: Fri, 29 Jun 2018 15:23:49 +0200 Subject: [PATCH 10/32] Set hassos supervisor to rauc (#55) * Set hassos supervisor to rauc * Update post-install * Update hassos-config --- .../rootfs-overlay/usr/lib/rauc/post-install | 1 - .../usr/lib/systemd/system/hassos-supervisor.service | 2 +- buildroot-external/rootfs-overlay/usr/sbin/hassos-config | 7 ++++++- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/buildroot-external/rootfs-overlay/usr/lib/rauc/post-install b/buildroot-external/rootfs-overlay/usr/lib/rauc/post-install index f07bc2638..b552daafc 100755 --- a/buildroot-external/rootfs-overlay/usr/lib/rauc/post-install +++ b/buildroot-external/rootfs-overlay/usr/lib/rauc/post-install @@ -1,4 +1,3 @@ #!/bin/sh systemctl start mnt-boot.mount -systemctl reboot diff --git a/buildroot-external/rootfs-overlay/usr/lib/systemd/system/hassos-supervisor.service b/buildroot-external/rootfs-overlay/usr/lib/systemd/system/hassos-supervisor.service index 66bde2b66..ac68fc988 100644 --- a/buildroot-external/rootfs-overlay/usr/lib/systemd/system/hassos-supervisor.service +++ b/buildroot-external/rootfs-overlay/usr/lib/systemd/system/hassos-supervisor.service @@ -1,7 +1,7 @@ [Unit] Description=HassOS supervisor Requires=docker.service -After=docker.service dbus.socket +After=docker.service rauc.service dbus.socket RequiresMountsFor=/mnt/data StartLimitIntervalSec=60 StartLimitBurst=5 diff --git a/buildroot-external/rootfs-overlay/usr/sbin/hassos-config b/buildroot-external/rootfs-overlay/usr/sbin/hassos-config index e28e51e09..04f6177e1 100755 --- a/buildroot-external/rootfs-overlay/usr/sbin/hassos-config +++ b/buildroot-external/rootfs-overlay/usr/sbin/hassos-config @@ -52,7 +52,12 @@ if ls /mnt/config/*.raucb > /dev/null; then echo "[Info] Performe a firmware update" rauc_filename=$(ls /mnt/config/*.raucb | head -n 1) - rauc install /mnt/config/$rauc_filename + if rauc install /mnt/config/$rauc_filename; then + echo "[Info] Firmware update success" + systemctl reboot + else + echo "[Error] Firmware update fails" + fi fi # Cleanup config partition From 2614ffce403655285bc21685a6dbe66d09b3e616 Mon Sep 17 00:00:00 2001 From: Pascal Vizeli Date: Sun, 1 Jul 2018 00:28:00 +0200 Subject: [PATCH 11/32] Use CONFIG as label for config partition (#56) * Use CONFIG as label for config partition * Update configuration.md * Update hassos-config --- Documentation/configuration.md | 2 +- .../rootfs-overlay/usr/lib/systemd/system/mnt-config.mount | 2 +- buildroot-external/rootfs-overlay/usr/sbin/hassos-config | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Documentation/configuration.md b/Documentation/configuration.md index d636390b6..488d9755e 100644 --- a/Documentation/configuration.md +++ b/Documentation/configuration.md @@ -2,7 +2,7 @@ ## Automatic -You can format a USB stick with FAT32/EXT4 and name it with `config`. The layout could be look like: +You can format a USB stick with FAT32/EXT4 and name it with `CONFIG`. The layout could be look like: ``` network/ modules/ diff --git a/buildroot-external/rootfs-overlay/usr/lib/systemd/system/mnt-config.mount b/buildroot-external/rootfs-overlay/usr/lib/systemd/system/mnt-config.mount index 9140f9e2a..116ee32ae 100644 --- a/buildroot-external/rootfs-overlay/usr/lib/systemd/system/mnt-config.mount +++ b/buildroot-external/rootfs-overlay/usr/lib/systemd/system/mnt-config.mount @@ -2,7 +2,7 @@ Description=HassOS config partition [Mount] -What=LABEL=config +What=LABEL=CONFIG Where=/mnt/config Type=auto Options=ro diff --git a/buildroot-external/rootfs-overlay/usr/sbin/hassos-config b/buildroot-external/rootfs-overlay/usr/sbin/hassos-config index 04f6177e1..22dbef28e 100755 --- a/buildroot-external/rootfs-overlay/usr/sbin/hassos-config +++ b/buildroot-external/rootfs-overlay/usr/sbin/hassos-config @@ -37,7 +37,7 @@ fi if [ -f /mnt/config/authorized_keys ]; then echo "[Info] Update SSH authorized_keys!" - cp -f /mnt/config/known_hosts /root/.ssh/authorized_keys + cp -f /mnt/config/authorized_keys /root/.ssh/authorized_keys chmod 600 /root/.ssh/authorized_keys systemctl start dropbear @@ -52,7 +52,7 @@ if ls /mnt/config/*.raucb > /dev/null; then echo "[Info] Performe a firmware update" rauc_filename=$(ls /mnt/config/*.raucb | head -n 1) - if rauc install /mnt/config/$rauc_filename; then + if rauc install ${rauc_filename}; then echo "[Info] Firmware update success" systemctl reboot else From d536e3d7a7827bf4480cd8babc7913a9b1897e26 Mon Sep 17 00:00:00 2001 From: Pascal Vizeli Date: Sun, 1 Jul 2018 00:29:10 +0200 Subject: [PATCH 12/32] Use wpa_supplicant with NetworkManager (#57) --- .../0007-NetworkManager_wpa-supplicant.patch | 43 +++++++++++++++++++ buildroot/package/network-manager/Config.in | 5 ++- .../network-manager/network-manager.mk | 2 +- 3 files changed, 47 insertions(+), 3 deletions(-) create mode 100644 buildroot-patches/0007-NetworkManager_wpa-supplicant.patch diff --git a/buildroot-patches/0007-NetworkManager_wpa-supplicant.patch b/buildroot-patches/0007-NetworkManager_wpa-supplicant.patch new file mode 100644 index 000000000..9ecf97644 --- /dev/null +++ b/buildroot-patches/0007-NetworkManager_wpa-supplicant.patch @@ -0,0 +1,43 @@ +From 22a39b0058643c9aebdaf3ebc42a1ea30a33522f Mon Sep 17 00:00:00 2001 +From: Pascal Vizeli +Date: Sat, 30 Jun 2018 21:10:14 +0000 +Subject: [PATCH 1/1] NetworkManager_wpa-supplicant + +Signed-off-by: Pascal Vizeli +--- + package/network-manager/Config.in | 5 +++-- + package/network-manager/network-manager.mk | 2 +- + 2 files changed, 4 insertions(+), 3 deletions(-) + +diff --git a/package/network-manager/Config.in b/package/network-manager/Config.in +index 72658c1278..759e4a98f9 100644 +--- a/package/network-manager/Config.in ++++ b/package/network-manager/Config.in +@@ -16,8 +16,9 @@ config BR2_PACKAGE_NETWORK_MANAGER + select BR2_PACKAGE_LIBGUDEV + select BR2_PACKAGE_UTIL_LINUX + select BR2_PACKAGE_UTIL_LINUX_LIBUUID +- select BR2_PACKAGE_WIRELESS_TOOLS +- select BR2_PACKAGE_WIRELESS_TOOLS_LIB ++ select BR2_PACKAGE_WPA_SUPPLICANT ++ select BR2_PACKAGE_WPA_SUPPLICANT_DBUS_NEW ++ select BR2_PACKAGE_WPA_SUPPLICANT_DBUS_INTROSPECTION + select BR2_PACKAGE_READLINE + select BR2_PACKAGE_LIBNDP + help +diff --git a/package/network-manager/network-manager.mk b/package/network-manager/network-manager.mk +index a520aad9c0..846605eb8e 100644 +--- a/package/network-manager/network-manager.mk ++++ b/package/network-manager/network-manager.mk +@@ -10,7 +10,7 @@ NETWORK_MANAGER_SOURCE = NetworkManager-$(NETWORK_MANAGER_VERSION).tar.xz + NETWORK_MANAGER_SITE = http://ftp.gnome.org/pub/GNOME/sources/NetworkManager/$(NETWORK_MANAGER_VERSION_MAJOR) + NETWORK_MANAGER_INSTALL_STAGING = YES + NETWORK_MANAGER_DEPENDENCIES = host-pkgconf udev dbus-glib libnl gnutls \ +- libgcrypt wireless_tools util-linux host-intltool readline libndp libgudev ++ libgcrypt wpa_supplicant util-linux host-intltool readline libndp libgudev + NETWORK_MANAGER_LICENSE = GPL-2.0+ (app), LGPL-2.0+ (libnm-util) + NETWORK_MANAGER_LICENSE_FILES = COPYING libnm-util/COPYING + +-- +2.17.1 + diff --git a/buildroot/package/network-manager/Config.in b/buildroot/package/network-manager/Config.in index 72658c127..759e4a98f 100644 --- a/buildroot/package/network-manager/Config.in +++ b/buildroot/package/network-manager/Config.in @@ -16,8 +16,9 @@ config BR2_PACKAGE_NETWORK_MANAGER select BR2_PACKAGE_LIBGUDEV select BR2_PACKAGE_UTIL_LINUX select BR2_PACKAGE_UTIL_LINUX_LIBUUID - select BR2_PACKAGE_WIRELESS_TOOLS - select BR2_PACKAGE_WIRELESS_TOOLS_LIB + select BR2_PACKAGE_WPA_SUPPLICANT + select BR2_PACKAGE_WPA_SUPPLICANT_DBUS_NEW + select BR2_PACKAGE_WPA_SUPPLICANT_DBUS_INTROSPECTION select BR2_PACKAGE_READLINE select BR2_PACKAGE_LIBNDP help diff --git a/buildroot/package/network-manager/network-manager.mk b/buildroot/package/network-manager/network-manager.mk index a520aad9c..846605eb8 100644 --- a/buildroot/package/network-manager/network-manager.mk +++ b/buildroot/package/network-manager/network-manager.mk @@ -10,7 +10,7 @@ NETWORK_MANAGER_SOURCE = NetworkManager-$(NETWORK_MANAGER_VERSION).tar.xz NETWORK_MANAGER_SITE = http://ftp.gnome.org/pub/GNOME/sources/NetworkManager/$(NETWORK_MANAGER_VERSION_MAJOR) NETWORK_MANAGER_INSTALL_STAGING = YES NETWORK_MANAGER_DEPENDENCIES = host-pkgconf udev dbus-glib libnl gnutls \ - libgcrypt wireless_tools util-linux host-intltool readline libndp libgudev + libgcrypt wpa_supplicant util-linux host-intltool readline libndp libgudev NETWORK_MANAGER_LICENSE = GPL-2.0+ (app), LGPL-2.0+ (libnm-util) NETWORK_MANAGER_LICENSE_FILES = COPYING libnm-util/COPYING From 6aa8e61d8856b2f1c6e8cc3ba0a5ac45586d5fde Mon Sep 17 00:00:00 2001 From: Pascal Vizeli Date: Sun, 1 Jul 2018 00:38:30 +0200 Subject: [PATCH 13/32] Add lost persistent ssh folder (#58) Signed-off-by: Pascal Vizeli --- .../etc/systemd/system/hassos-bind.target.wants/root-.ssh.mount | 1 + 1 file changed, 1 insertion(+) create mode 120000 buildroot-external/rootfs-overlay/etc/systemd/system/hassos-bind.target.wants/root-.ssh.mount diff --git a/buildroot-external/rootfs-overlay/etc/systemd/system/hassos-bind.target.wants/root-.ssh.mount b/buildroot-external/rootfs-overlay/etc/systemd/system/hassos-bind.target.wants/root-.ssh.mount new file mode 120000 index 000000000..84b3685f2 --- /dev/null +++ b/buildroot-external/rootfs-overlay/etc/systemd/system/hassos-bind.target.wants/root-.ssh.mount @@ -0,0 +1 @@ +/usr/lib/systemd/system/root-.ssh.mount \ No newline at end of file From 7d4b424d2f640ee341d20073b0ddbdcb5c794b81 Mon Sep 17 00:00:00 2001 From: Pascal Vizeli Date: Sun, 1 Jul 2018 15:15:54 +0200 Subject: [PATCH 14/32] Map /etc/machine-id into supervisor/cli (#60) * Map /etc/machine-id into supervisor/cli * Update hassos-cli * Update hassos-supervisor --- buildroot-external/rootfs-overlay/usr/sbin/hassos-cli | 3 +-- buildroot-external/rootfs-overlay/usr/sbin/hassos-supervisor | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/buildroot-external/rootfs-overlay/usr/sbin/hassos-cli b/buildroot-external/rootfs-overlay/usr/sbin/hassos-cli index 72ffac972..aecb62d08 100755 --- a/buildroot-external/rootfs-overlay/usr/sbin/hassos-cli +++ b/buildroot-external/rootfs-overlay/usr/sbin/hassos-cli @@ -6,7 +6,6 @@ CONFIG_FILE=/mnt/data/hassos.json CLI="$(jq --raw-output '.cli' ${CONFIG_FILE})" DOCKER_ARGS="$(jq --raw-output '.cli_args // empty' ${CONFIG_FILE})" APPARMOR="$(jq --raw-output '.cli_apparmor // "docker-default"' ${CONFIG_FILE})" -MACHINE_ID="$(cat /etc/machine-id)" CLI_DATA=/mnt/data/cli mkdir -p ${CLI_DATA} @@ -16,7 +15,7 @@ docker run \ --rm -ti --init \ --security-opt apparmor="${APPARMOR}" \ -v ${CLI_DATA}:/data \ - -e MACHINE_ID=${MACHINE_ID} \ + -v /etc/machine-id:/etc/machine-id:ro \ $DOCKER_ARGS \ ${CLI} diff --git a/buildroot-external/rootfs-overlay/usr/sbin/hassos-supervisor b/buildroot-external/rootfs-overlay/usr/sbin/hassos-supervisor index 04f830e7c..e614a1454 100755 --- a/buildroot-external/rootfs-overlay/usr/sbin/hassos-supervisor +++ b/buildroot-external/rootfs-overlay/usr/sbin/hassos-supervisor @@ -7,7 +7,6 @@ CONFIG_FILE=/mnt/data/hassos.json SUPERVISOR="$(jq --raw-output '.supervisor' ${CONFIG_FILE})" DOCKER_ARGS="$(jq --raw-output '.supervisor_args // empty' ${CONFIG_FILE})" APPARMOR="$(jq --raw-output '.supervisor_apparmor // "docker-default"' ${CONFIG_FILE})" -MACHINE_ID="$(cat /etc/machine-id)" # Init supervisor HASSOS_DATA=/mnt/data/supervisor @@ -25,10 +24,10 @@ runSupervisor() { --security-opt apparmor="${APPARMOR}" \ -v /var/run/docker.sock:/var/run/docker.sock \ -v /var/run/dbus:/var/run/dbus \ + -v /etc/machine-id:/etc/machine-id:ro \ -v ${HASSOS_DATA}:/data \ -e SUPERVISOR_SHARE=${HASSOS_DATA} \ -e SUPERVISOR_NAME=hassos_supervisor \ - -e MACHINE_ID=${MACHINE_ID} \ $DOCKER_ARGS \ ${SUPERVISOR} } From 11b1946cd7d407fd1b1e64d0e1dd056ac3b763e5 Mon Sep 17 00:00:00 2001 From: Pascal Vizeli Date: Mon, 2 Jul 2018 01:05:21 +0200 Subject: [PATCH 15/32] Make logs persistent over reboot and cleanup (#61) * Create hassos-persists-journald * Create hassos-persists-journald.service * Set ln & permission * Enable persists journald * Update hassos-persists-journald --- .../hassos-persists-journald.service | 1 + .../system/hassos-persists-journald.service | 14 +++++++++ .../usr/sbin/hassos-persists-journald | 29 +++++++++++++++++++ 3 files changed, 44 insertions(+) create mode 120000 buildroot-external/rootfs-overlay/etc/systemd/system/multi-user.target.wants/hassos-persists-journald.service create mode 100644 buildroot-external/rootfs-overlay/usr/lib/systemd/system/hassos-persists-journald.service create mode 100755 buildroot-external/rootfs-overlay/usr/sbin/hassos-persists-journald diff --git a/buildroot-external/rootfs-overlay/etc/systemd/system/multi-user.target.wants/hassos-persists-journald.service b/buildroot-external/rootfs-overlay/etc/systemd/system/multi-user.target.wants/hassos-persists-journald.service new file mode 120000 index 000000000..fdc4db7b8 --- /dev/null +++ b/buildroot-external/rootfs-overlay/etc/systemd/system/multi-user.target.wants/hassos-persists-journald.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/hassos-persists-journald.service \ No newline at end of file diff --git a/buildroot-external/rootfs-overlay/usr/lib/systemd/system/hassos-persists-journald.service b/buildroot-external/rootfs-overlay/usr/lib/systemd/system/hassos-persists-journald.service new file mode 100644 index 000000000..0f98b1fae --- /dev/null +++ b/buildroot-external/rootfs-overlay/usr/lib/systemd/system/hassos-persists-journald.service @@ -0,0 +1,14 @@ +[Unit] +Description=HassOS persists journald +Requires=var-log-journal.mount +After=sysinit.target systemd-journald.service +RefuseManualStart=true +RefuseManualStop=true + +[Service] +Type=oneshot +ExecStart=/usr/sbin/hassos-persists-journald +RemainAfterExit=true + +[Install] +WantedBy=multi-user.target diff --git a/buildroot-external/rootfs-overlay/usr/sbin/hassos-persists-journald b/buildroot-external/rootfs-overlay/usr/sbin/hassos-persists-journald new file mode 100755 index 000000000..bfb986833 --- /dev/null +++ b/buildroot-external/rootfs-overlay/usr/sbin/hassos-persists-journald @@ -0,0 +1,29 @@ +#!/bin/sh +set -e + +MACHINE_ID=$(cat /etc/machine-id) +CURRENT_LOGS=/var/log/journal/${MACHINE_ID} + +# Cleanup +if [ ! -d ${CURRENT_LOGS} ]; + rm -rf /var/log/journal/* + exit 0 +fi + +# Loop all logs folder and move +for log_folder in /var/log/journal/*; do + # Not a log folder + if [ ! -d ${log_folder} ]; then + continue + fi + + # Current log folder + if (echo ${log_folder} | grep ${MACHINE_ID}); then + continue + fi + + mv ${log_folder}/* ${CURRENT_LOGS}/ + rm -rf ${log_folder} +done + +journalctl --vacuum-size=20M From f8fa170e2adffeff75ce1d8f15e2a6c1da8046d7 Mon Sep 17 00:00:00 2001 From: Pascal Vizeli Date: Mon, 2 Jul 2018 19:58:00 +0200 Subject: [PATCH 16/32] Fix spell in journald script (#65) --- .../rootfs-overlay/usr/sbin/hassos-persists-journald | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildroot-external/rootfs-overlay/usr/sbin/hassos-persists-journald b/buildroot-external/rootfs-overlay/usr/sbin/hassos-persists-journald index bfb986833..c4ac30379 100755 --- a/buildroot-external/rootfs-overlay/usr/sbin/hassos-persists-journald +++ b/buildroot-external/rootfs-overlay/usr/sbin/hassos-persists-journald @@ -5,7 +5,7 @@ MACHINE_ID=$(cat /etc/machine-id) CURRENT_LOGS=/var/log/journal/${MACHINE_ID} # Cleanup -if [ ! -d ${CURRENT_LOGS} ]; +if [ ! -d ${CURRENT_LOGS} ]; then rm -rf /var/log/journal/* exit 0 fi From 414b59ac4ac27de78ff86c3defae367cd0c5e3df Mon Sep 17 00:00:00 2001 From: Pascal Vizeli Date: Mon, 2 Jul 2018 21:24:05 +0200 Subject: [PATCH 17/32] Fix label name in test script (#66) * Fix label name in test script * Update hassos-config --- buildroot-external/rootfs-overlay/usr/sbin/hassos-config | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/buildroot-external/rootfs-overlay/usr/sbin/hassos-config b/buildroot-external/rootfs-overlay/usr/sbin/hassos-config index 22dbef28e..9493642dd 100755 --- a/buildroot-external/rootfs-overlay/usr/sbin/hassos-config +++ b/buildroot-external/rootfs-overlay/usr/sbin/hassos-config @@ -1,6 +1,6 @@ #!/bin/sh -if ! findfs LABEL="config" > /dev/null; then +if ! findfs LABEL="CONFIG" > /dev/null; then echo "[Warning] No config partition found" exit 0 fi @@ -48,7 +48,8 @@ fi ## # Firmware update -if ls /mnt/config/*.raucb > /dev/null; then +UPTIME=$(awk '{print $1}' /proc/uptime) +if ls /mnt/config/*.raucb > /dev/null && [ ${UPTIME} -ge 180 ]; then echo "[Info] Performe a firmware update" rauc_filename=$(ls /mnt/config/*.raucb | head -n 1) From 8792d37402fc8487edf47821b85987d07f64f35a Mon Sep 17 00:00:00 2001 From: Pascal Vizeli Date: Mon, 2 Jul 2018 21:43:33 +0200 Subject: [PATCH 18/32] Fix docker warning on rpi (#67) --- buildroot-external/board/raspberrypi/rpi3-64/uboot-boot.sh | 2 +- buildroot-external/board/raspberrypi/uboot-boot.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/buildroot-external/board/raspberrypi/rpi3-64/uboot-boot.sh b/buildroot-external/board/raspberrypi/rpi3-64/uboot-boot.sh index 02843f58e..a5bc68e06 100644 --- a/buildroot-external/board/raspberrypi/rpi3-64/uboot-boot.sh +++ b/buildroot-external/board/raspberrypi/rpi3-64/uboot-boot.sh @@ -3,7 +3,7 @@ test -n "${BOOT_A_LEFT}" || setenv BOOT_A_LEFT 3 test -n "${BOOT_B_LEFT}" || setenv BOOT_B_LEFT 3 # HassOS bootargs -setenv bootargs_hassos "zram.enabled=1 zram.num_devices=3 apparmor=1 security=apparmor rootwait" +setenv bootargs_hassos "zram.enabled=1 zram.num_devices=3 apparmor=1 security=apparmor rootwait cgroup_enable=memory" # HassOS system A/B setenv bootargs_a "root=PARTUUID=8d3d53e3-6d49-4c38-8349-aff6859e82fd rootfstype=squashfs ro" diff --git a/buildroot-external/board/raspberrypi/uboot-boot.sh b/buildroot-external/board/raspberrypi/uboot-boot.sh index 6a3ed9f81..cceab02ff 100644 --- a/buildroot-external/board/raspberrypi/uboot-boot.sh +++ b/buildroot-external/board/raspberrypi/uboot-boot.sh @@ -3,7 +3,7 @@ test -n "${BOOT_A_LEFT}" || setenv BOOT_A_LEFT 3 test -n "${BOOT_B_LEFT}" || setenv BOOT_B_LEFT 3 # HassOS bootargs -setenv bootargs_hassos "zram.enabled=1 zram.num_devices=3 apparmor=1 security=apparmor rootwait" +setenv bootargs_hassos "zram.enabled=1 zram.num_devices=3 apparmor=1 security=apparmor rootwait cgroup_enable=memory" # HassOS system A/B setenv bootargs_a "root=PARTUUID=8d3d53e3-6d49-4c38-8349-aff6859e82fd rootfstype=squashfs ro" From 32ab05bd2e287f543dd04c5cfb26d638c61e0a16 Mon Sep 17 00:00:00 2001 From: Pascal Vizeli Date: Mon, 2 Jul 2018 22:51:54 +0200 Subject: [PATCH 19/32] Fix update script with uptime (#68) --- buildroot-external/rootfs-overlay/usr/sbin/hassos-config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildroot-external/rootfs-overlay/usr/sbin/hassos-config b/buildroot-external/rootfs-overlay/usr/sbin/hassos-config index 9493642dd..7329b7221 100755 --- a/buildroot-external/rootfs-overlay/usr/sbin/hassos-config +++ b/buildroot-external/rootfs-overlay/usr/sbin/hassos-config @@ -48,7 +48,7 @@ fi ## # Firmware update -UPTIME=$(awk '{print $1}' /proc/uptime) +UPTIME=$(awk '{printf "%0.f", $1}' /proc/uptime) if ls /mnt/config/*.raucb > /dev/null && [ ${UPTIME} -ge 180 ]; then echo "[Info] Performe a firmware update" From c8602291303c5d4d334796e04269eb9ea74125f0 Mon Sep 17 00:00:00 2001 From: Pascal Vizeli Date: Mon, 2 Jul 2018 23:03:13 +0200 Subject: [PATCH 20/32] Change chmod of network connection files from fat32 (#69) --- buildroot-external/rootfs-overlay/usr/sbin/hassos-config | 1 + 1 file changed, 1 insertion(+) diff --git a/buildroot-external/rootfs-overlay/usr/sbin/hassos-config b/buildroot-external/rootfs-overlay/usr/sbin/hassos-config index 7329b7221..68c6857c8 100755 --- a/buildroot-external/rootfs-overlay/usr/sbin/hassos-config +++ b/buildroot-external/rootfs-overlay/usr/sbin/hassos-config @@ -19,6 +19,7 @@ if [ -d /mnt/config/network ]; then rm -rf /etc/NetworkManager/system-connections/* cp -f /mnt/config/network/* /etc/NetworkManager/system-connections/ + chmod 664 /etc/NetworkManager/system-connections/* nmcli con reload fi From 7e665a7b42b024c192e22dd0760dcd7a7a19443a Mon Sep 17 00:00:00 2001 From: Pascal Vizeli Date: Mon, 2 Jul 2018 23:53:07 +0200 Subject: [PATCH 21/32] Fix persistent log (#70) --- buildroot-external/rootfs-overlay/usr/sbin/hassos-config | 2 +- .../rootfs-overlay/usr/sbin/hassos-persists-journald | 8 -------- 2 files changed, 1 insertion(+), 9 deletions(-) diff --git a/buildroot-external/rootfs-overlay/usr/sbin/hassos-config b/buildroot-external/rootfs-overlay/usr/sbin/hassos-config index 68c6857c8..99c295520 100755 --- a/buildroot-external/rootfs-overlay/usr/sbin/hassos-config +++ b/buildroot-external/rootfs-overlay/usr/sbin/hassos-config @@ -19,7 +19,7 @@ if [ -d /mnt/config/network ]; then rm -rf /etc/NetworkManager/system-connections/* cp -f /mnt/config/network/* /etc/NetworkManager/system-connections/ - chmod 664 /etc/NetworkManager/system-connections/* + chmod 600 /etc/NetworkManager/system-connections/* nmcli con reload fi diff --git a/buildroot-external/rootfs-overlay/usr/sbin/hassos-persists-journald b/buildroot-external/rootfs-overlay/usr/sbin/hassos-persists-journald index c4ac30379..c9d84598a 100755 --- a/buildroot-external/rootfs-overlay/usr/sbin/hassos-persists-journald +++ b/buildroot-external/rootfs-overlay/usr/sbin/hassos-persists-journald @@ -4,12 +4,6 @@ set -e MACHINE_ID=$(cat /etc/machine-id) CURRENT_LOGS=/var/log/journal/${MACHINE_ID} -# Cleanup -if [ ! -d ${CURRENT_LOGS} ]; then - rm -rf /var/log/journal/* - exit 0 -fi - # Loop all logs folder and move for log_folder in /var/log/journal/*; do # Not a log folder @@ -22,8 +16,6 @@ for log_folder in /var/log/journal/*; do continue fi - mv ${log_folder}/* ${CURRENT_LOGS}/ rm -rf ${log_folder} done -journalctl --vacuum-size=20M From 3700d744b44ef6589007f732798890ab117b9b7a Mon Sep 17 00:00:00 2001 From: Pascal Vizeli Date: Tue, 3 Jul 2018 00:00:25 +0200 Subject: [PATCH 22/32] Update CLI / Supervisor (#71) --- buildroot-external/configs/ova_defconfig | 4 ++-- buildroot-external/configs/rpi0_w_defconfig | 4 ++-- buildroot-external/configs/rpi2_defconfig | 4 ++-- buildroot-external/configs/rpi3_64_defconfig | 4 ++-- buildroot-external/configs/rpi3_defconfig | 4 ++-- buildroot-external/configs/rpi_defconfig | 4 ++-- 6 files changed, 12 insertions(+), 12 deletions(-) diff --git a/buildroot-external/configs/ova_defconfig b/buildroot-external/configs/ova_defconfig index 89696c18a..3ac9ce966 100644 --- a/buildroot-external/configs/ova_defconfig +++ b/buildroot-external/configs/ova_defconfig @@ -73,12 +73,12 @@ BR2_PACKAGE_HOST_MTOOLS=y BR2_PACKAGE_HOST_RAUC=y BR2_PACKAGE_HASSOS=y BR2_PACKAGE_HASSOS_SUPERVISOR="homeassistant/amd64-hassio-supervisor" -BR2_PACKAGE_HASSOS_SUPERVISOR_VERSION="109" +BR2_PACKAGE_HASSOS_SUPERVISOR_VERSION="111" BR2_PACKAGE_HASSOS_SUPERVISOR_ARGS="-e HOMEASSISTANT_REPOSITORY=homeassistant/qemux86-64-homeassistant" 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_VERSION="5" +BR2_PACKAGE_HASSOS_CLI_VERSION="6" BR2_PACKAGE_HASSOS_CLI_ARGS="--network=hassio --add-host hassio:172.30.32.2" BR2_PACKAGE_HASSOS_CLI_PROFILE="docker-default" BR2_PACKAGE_HASSOS_APPARMOR_DIR="supervisor/apparmor" diff --git a/buildroot-external/configs/rpi0_w_defconfig b/buildroot-external/configs/rpi0_w_defconfig index af10220b3..e65d550fe 100644 --- a/buildroot-external/configs/rpi0_w_defconfig +++ b/buildroot-external/configs/rpi0_w_defconfig @@ -82,12 +82,12 @@ BR2_PACKAGE_HOST_MTOOLS=y BR2_PACKAGE_HOST_RAUC=y BR2_PACKAGE_HASSOS=y BR2_PACKAGE_HASSOS_SUPERVISOR="homeassistant/armhf-hassio-supervisor" -BR2_PACKAGE_HASSOS_SUPERVISOR_VERSION="109" +BR2_PACKAGE_HASSOS_SUPERVISOR_VERSION="111" BR2_PACKAGE_HASSOS_SUPERVISOR_ARGS="-e HOMEASSISTANT_REPOSITORY=homeassistant/raspberrypi-homeassistant" 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_VERSION="5" +BR2_PACKAGE_HASSOS_CLI_VERSION="6" BR2_PACKAGE_HASSOS_CLI_ARGS="--network=hassio --add-host hassio:172.30.32.2" BR2_PACKAGE_HASSOS_CLI_PROFILE="docker-default" BR2_PACKAGE_HASSOS_APPARMOR_DIR="supervisor/apparmor" diff --git a/buildroot-external/configs/rpi2_defconfig b/buildroot-external/configs/rpi2_defconfig index 5cad57467..f28197273 100644 --- a/buildroot-external/configs/rpi2_defconfig +++ b/buildroot-external/configs/rpi2_defconfig @@ -81,12 +81,12 @@ BR2_PACKAGE_HOST_MTOOLS=y BR2_PACKAGE_HOST_RAUC=y BR2_PACKAGE_HASSOS=y BR2_PACKAGE_HASSOS_SUPERVISOR="homeassistant/armhf-hassio-supervisor" -BR2_PACKAGE_HASSOS_SUPERVISOR_VERSION="109" +BR2_PACKAGE_HASSOS_SUPERVISOR_VERSION="111" BR2_PACKAGE_HASSOS_SUPERVISOR_ARGS="-e HOMEASSISTANT_REPOSITORY=homeassistant/raspberrypi2-homeassistant" 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_VERSION="5" +BR2_PACKAGE_HASSOS_CLI_VERSION="6" BR2_PACKAGE_HASSOS_CLI_ARGS="--network=hassio --add-host hassio:172.30.32.2" BR2_PACKAGE_HASSOS_CLI_PROFILE="docker-default" BR2_PACKAGE_HASSOS_APPARMOR_DIR="supervisor/apparmor" diff --git a/buildroot-external/configs/rpi3_64_defconfig b/buildroot-external/configs/rpi3_64_defconfig index 3cc5f2e69..e0ffbf484 100644 --- a/buildroot-external/configs/rpi3_64_defconfig +++ b/buildroot-external/configs/rpi3_64_defconfig @@ -82,12 +82,12 @@ BR2_PACKAGE_HOST_MTOOLS=y BR2_PACKAGE_HOST_RAUC=y BR2_PACKAGE_HASSOS=y BR2_PACKAGE_HASSOS_SUPERVISOR="homeassistant/aarch64-hassio-supervisor" -BR2_PACKAGE_HASSOS_SUPERVISOR_VERSION="109" +BR2_PACKAGE_HASSOS_SUPERVISOR_VERSION="111" BR2_PACKAGE_HASSOS_SUPERVISOR_ARGS="-e HOMEASSISTANT_REPOSITORY=homeassistant/raspberrypi3-64-homeassistant" 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_VERSION="5" +BR2_PACKAGE_HASSOS_CLI_VERSION="6" BR2_PACKAGE_HASSOS_CLI_ARGS="--network=hassio --add-host hassio:172.30.32.2" BR2_PACKAGE_HASSOS_CLI_PROFILE="docker-default" BR2_PACKAGE_HASSOS_APPARMOR_DIR="supervisor/apparmor" diff --git a/buildroot-external/configs/rpi3_defconfig b/buildroot-external/configs/rpi3_defconfig index b4de4194a..b53ebc612 100644 --- a/buildroot-external/configs/rpi3_defconfig +++ b/buildroot-external/configs/rpi3_defconfig @@ -82,12 +82,12 @@ BR2_PACKAGE_HOST_MTOOLS=y BR2_PACKAGE_HOST_RAUC=y BR2_PACKAGE_HASSOS=y BR2_PACKAGE_HASSOS_SUPERVISOR="homeassistant/armhf-hassio-supervisor" -BR2_PACKAGE_HASSOS_SUPERVISOR_VERSION="109" +BR2_PACKAGE_HASSOS_SUPERVISOR_VERSION="111" BR2_PACKAGE_HASSOS_SUPERVISOR_ARGS="-e HOMEASSISTANT_REPOSITORY=homeassistant/raspberrypi3-homeassistant" 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_VERSION="5" +BR2_PACKAGE_HASSOS_CLI_VERSION="6" BR2_PACKAGE_HASSOS_CLI_ARGS="--network=hassio --add-host hassio:172.30.32.2" BR2_PACKAGE_HASSOS_CLI_PROFILE="docker-default" BR2_PACKAGE_HASSOS_APPARMOR_DIR="supervisor/apparmor" diff --git a/buildroot-external/configs/rpi_defconfig b/buildroot-external/configs/rpi_defconfig index bab699e35..58d6ab432 100644 --- a/buildroot-external/configs/rpi_defconfig +++ b/buildroot-external/configs/rpi_defconfig @@ -81,12 +81,12 @@ BR2_PACKAGE_HOST_MTOOLS=y BR2_PACKAGE_HOST_RAUC=y BR2_PACKAGE_HASSOS=y BR2_PACKAGE_HASSOS_SUPERVISOR="homeassistant/armhf-hassio-supervisor" -BR2_PACKAGE_HASSOS_SUPERVISOR_VERSION="109" +BR2_PACKAGE_HASSOS_SUPERVISOR_VERSION="111" BR2_PACKAGE_HASSOS_SUPERVISOR_ARGS="-e HOMEASSISTANT_REPOSITORY=homeassistant/raspberrypi-homeassistant" 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_VERSION="5" +BR2_PACKAGE_HASSOS_CLI_VERSION="6" BR2_PACKAGE_HASSOS_CLI_ARGS="--network=hassio --add-host hassio:172.30.32.2" BR2_PACKAGE_HASSOS_CLI_PROFILE="docker-default" BR2_PACKAGE_HASSOS_APPARMOR_DIR="supervisor/apparmor" From 12393e083d9c17369f6f3363f7649611b6948988 Mon Sep 17 00:00:00 2001 From: cogneato Date: Mon, 2 Jul 2018 23:30:17 -0600 Subject: [PATCH 23/32] Update network.md (#51) * Update network.md Clearing up network documentation, grammar * Update network.md --- Documentation/network.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Documentation/network.md b/Documentation/network.md index 1ce6cebe5..7956e04fb 100644 --- a/Documentation/network.md +++ b/Documentation/network.md @@ -1,8 +1,7 @@ # Network -HassOS use NetworkManager to control the host network. You can setup the network configuartion in future over the API/UI. -Actual we support only manual configuration with NetworkManager connection files. Without a configuration, we run default as -DHCP device. +HassOS uses NetworkManager to control the host network. In future releases, you can set up the configuration using the API/UI. +Currently only manual configuration using NetworkManager connection files is supported. Without a configuration file, the device will use DHCP by default. These network connection files can be placed on a USB drive as described in [Configuration][configuration-usb]. ## Configuration Examples @@ -56,3 +55,4 @@ dns=8.8.8.8;8.8.4.4; ``` [keyfile]: https://developer.gnome.org/NetworkManager/stable/nm-settings.html +[configuration-usb]: configuration.md From 46d6dba8594c97cf2d5cab3386bc7691bb0af8e7 Mon Sep 17 00:00:00 2001 From: cogneato Date: Mon, 2 Jul 2018 23:32:44 -0600 Subject: [PATCH 24/32] Update configuration.md (#50) * Update configuration.md Clearing up documentation, grammar fixes. * changed known_hosts to authorized_keys * Update configuration.md --- Documentation/configuration.md | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/Documentation/configuration.md b/Documentation/configuration.md index 488d9755e..4c2161479 100644 --- a/Documentation/configuration.md +++ b/Documentation/configuration.md @@ -2,21 +2,22 @@ ## Automatic -You can format a USB stick with FAT32/EXT4 and name it with `CONFIG`. The layout could be look like: +You can use a USB drive with HassOS to configure network options, ssh access to the host, and to install updates. +Format a USB stick with FAT32/EXT4/NTFS and name it `CONFIG`. Use the following directory structure within the USB drive: + ``` network/ modules/ authorized_keys hassos-xy.raucb -``` -- On `network` folder can hold any kind of NetworkManager connections files. -- The folder `modules` is for modules-load configuration files. -- `authorized_keys` file activate debug SSH access of port `22222`. -- For firmware updates you can but the `hassos-*.raucb` OTA update they should be install. +- The `network` folder can contain any kind of NetworkManager connection files. For more information see [Network][network.md]. +- The `modules` folder is for modules-load configuration files. +- The `authorized_keys` file activates debug SSH access on port `22222`. See [Debugging Hassio][debug-hassio]. +- The `hassos-*.raucb` file is a firmware OTA update which will be installed. These can be found on on the [release][hassos-release] page. -You can put this USB stick into device and they will be read on startup. You can also trigger this process later over the -API/UI or call `systemctl restart hassos-config` on host. +You can put this USB stick into the device and it will be read on startup. You can also trigger this process later over the +API/UI or by calling `systemctl restart hassos-config` on the host. ## Local @@ -33,3 +34,6 @@ The kernel module folder `/etc/modules-load.d` is persistent and you can add you You can manual add, edit or remove connections configs from `/etc/NetworkManager/system-connections`. [systemd-modules]: https://www.freedesktop.org/software/systemd/man/modules-load.d.html +[network.md]: network.md +[hassos-release]: https://github.com/home-assistant/hassos/releases/ +[debug-hassio]: https://developers.home-assistant.io/docs/en/hassio_debugging.html From 6c58eb16150ee6eb349b6f7ed8463283c36b2688 Mon Sep 17 00:00:00 2001 From: Pascal Vizeli Date: Thu, 5 Jul 2018 13:44:52 +0200 Subject: [PATCH 25/32] Fix /usr/sbin/hassos-cli is not in /etc/shells (#78) * Update rootfs-layer.sh * Update rootfs-layer.sh * Update rootfs-layer.sh --- buildroot-external/scripts/rootfs-layer.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/buildroot-external/scripts/rootfs-layer.sh b/buildroot-external/scripts/rootfs-layer.sh index 47243cfb5..55c669895 100644 --- a/buildroot-external/scripts/rootfs-layer.sh +++ b/buildroot-external/scripts/rootfs-layer.sh @@ -31,4 +31,8 @@ function fix_rootfs() { function install_hassos_cli() { sed -i "s|\(root.*\)/bin/sh|\1/usr/sbin/hassos-cli|" ${TARGET_DIR}/etc/passwd + + if ! grep "hassos-cli" ${TARGET_DIR}/etc/shells; then + echo "/usr/sbin/hassos-cli" >> ${TARGET_DIR}/etc/shells + fi } From 4a80c7fcd017e28c5cc379816e608f9e9fae2b43 Mon Sep 17 00:00:00 2001 From: Gabriel Oliveira Date: Thu, 5 Jul 2018 11:40:41 -0300 Subject: [PATCH 26/32] Fix config documentation closing tags (#80) --- Documentation/configuration.md | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/configuration.md b/Documentation/configuration.md index 4c2161479..2fe7b2816 100644 --- a/Documentation/configuration.md +++ b/Documentation/configuration.md @@ -10,6 +10,7 @@ network/ modules/ authorized_keys hassos-xy.raucb +``` - The `network` folder can contain any kind of NetworkManager connection files. For more information see [Network][network.md]. - The `modules` folder is for modules-load configuration files. From bf59b7744d5b5fdeb0a9bc18d8dcd1541952f65c Mon Sep 17 00:00:00 2001 From: Pascal Vizeli Date: Thu, 5 Jul 2018 20:00:56 +0200 Subject: [PATCH 27/32] Use dhcp client / avahi after NM (#75) * Use dhcp client / avahi after NM * Store networkmanager * Add default connection * cleanup * cleanup lease * faster boot * Cleanup * Fix permission --- buildroot-external/configs/ova_defconfig | 2 ++ buildroot-external/configs/rpi0_w_defconfig | 2 ++ buildroot-external/configs/rpi2_defconfig | 2 ++ buildroot-external/configs/rpi3_64_defconfig | 2 ++ buildroot-external/configs/rpi3_defconfig | 2 ++ buildroot-external/configs/rpi_defconfig | 2 ++ .../etc/NetworkManager/NetworkManager.conf | 3 +++ .../system/avahi-daemon.service.d/nm.conf | 2 ++ .../var-lib-NetworkManager.mount | 1 + .../rootfs-overlay/etc/tmpfiles.d/nm.conf | 3 +++ ...tworkManager-system\\x2dconnections.mount" | 2 +- .../systemd/system/hassos-supervisor.service | 2 +- .../system/var-lib-NetworkManager.mount | 14 ++++++++++ .../lib/systemd/system/var-lib-docker.mount | 2 +- .../usr/share/system-connections/default | 11 ++++++++ buildroot-external/scripts/rootfs-layer.sh | 7 +++-- buildroot-patches/0008-Fix-dhcp-client.patch | 27 +++++++++++++++++++ buildroot/package/dhcp/dhcp.mk | 3 +-- 18 files changed, 80 insertions(+), 9 deletions(-) create mode 100644 buildroot-external/rootfs-overlay/etc/systemd/system/avahi-daemon.service.d/nm.conf create mode 120000 buildroot-external/rootfs-overlay/etc/systemd/system/hassos-bind.target.wants/var-lib-NetworkManager.mount create mode 100644 buildroot-external/rootfs-overlay/etc/tmpfiles.d/nm.conf create mode 100644 buildroot-external/rootfs-overlay/usr/lib/systemd/system/var-lib-NetworkManager.mount create mode 100644 buildroot-external/rootfs-overlay/usr/share/system-connections/default create mode 100644 buildroot-patches/0008-Fix-dhcp-client.patch diff --git a/buildroot-external/configs/ova_defconfig b/buildroot-external/configs/ova_defconfig index 3ac9ce966..6f831f2d3 100644 --- a/buildroot-external/configs/ova_defconfig +++ b/buildroot-external/configs/ova_defconfig @@ -40,6 +40,8 @@ BR2_PACKAGE_AVAHI=y # BR2_PACKAGE_AVAHI_AUTOIPD is not set BR2_PACKAGE_AVAHI_DAEMON=y BR2_PACKAGE_AVAHI_LIBDNSSD_COMPATIBILITY=y +BR2_PACKAGE_DHCP=y +BR2_PACKAGE_DHCP_CLIENT=y BR2_PACKAGE_DROPBEAR=y # BR2_PACKAGE_DROPBEAR_CLIENT is not set # BR2_PACKAGE_IFUPDOWN_SCRIPTS is not set diff --git a/buildroot-external/configs/rpi0_w_defconfig b/buildroot-external/configs/rpi0_w_defconfig index e65d550fe..43cef5ad0 100644 --- a/buildroot-external/configs/rpi0_w_defconfig +++ b/buildroot-external/configs/rpi0_w_defconfig @@ -48,6 +48,8 @@ BR2_PACKAGE_AVAHI=y # BR2_PACKAGE_AVAHI_AUTOIPD is not set BR2_PACKAGE_AVAHI_DAEMON=y BR2_PACKAGE_AVAHI_LIBDNSSD_COMPATIBILITY=y +BR2_PACKAGE_DHCP=y +BR2_PACKAGE_DHCP_CLIENT=y BR2_PACKAGE_DROPBEAR=y # BR2_PACKAGE_DROPBEAR_CLIENT is not set # BR2_PACKAGE_IFUPDOWN_SCRIPTS is not set diff --git a/buildroot-external/configs/rpi2_defconfig b/buildroot-external/configs/rpi2_defconfig index f28197273..f33e8bb42 100644 --- a/buildroot-external/configs/rpi2_defconfig +++ b/buildroot-external/configs/rpi2_defconfig @@ -47,6 +47,8 @@ BR2_PACKAGE_AVAHI=y # BR2_PACKAGE_AVAHI_AUTOIPD is not set BR2_PACKAGE_AVAHI_DAEMON=y BR2_PACKAGE_AVAHI_LIBDNSSD_COMPATIBILITY=y +BR2_PACKAGE_DHCP=y +BR2_PACKAGE_DHCP_CLIENT=y BR2_PACKAGE_DROPBEAR=y # BR2_PACKAGE_DROPBEAR_CLIENT is not set # BR2_PACKAGE_IFUPDOWN_SCRIPTS is not set diff --git a/buildroot-external/configs/rpi3_64_defconfig b/buildroot-external/configs/rpi3_64_defconfig index e0ffbf484..f340e4643 100644 --- a/buildroot-external/configs/rpi3_64_defconfig +++ b/buildroot-external/configs/rpi3_64_defconfig @@ -48,6 +48,8 @@ BR2_PACKAGE_AVAHI=y # BR2_PACKAGE_AVAHI_AUTOIPD is not set BR2_PACKAGE_AVAHI_DAEMON=y BR2_PACKAGE_AVAHI_LIBDNSSD_COMPATIBILITY=y +BR2_PACKAGE_DHCP=y +BR2_PACKAGE_DHCP_CLIENT=y BR2_PACKAGE_DROPBEAR=y # BR2_PACKAGE_DROPBEAR_CLIENT is not set # BR2_PACKAGE_IFUPDOWN_SCRIPTS is not set diff --git a/buildroot-external/configs/rpi3_defconfig b/buildroot-external/configs/rpi3_defconfig index b53ebc612..c22d1c152 100644 --- a/buildroot-external/configs/rpi3_defconfig +++ b/buildroot-external/configs/rpi3_defconfig @@ -48,6 +48,8 @@ BR2_PACKAGE_AVAHI=y # BR2_PACKAGE_AVAHI_AUTOIPD is not set BR2_PACKAGE_AVAHI_DAEMON=y BR2_PACKAGE_AVAHI_LIBDNSSD_COMPATIBILITY=y +BR2_PACKAGE_DHCP=y +BR2_PACKAGE_DHCP_CLIENT=y BR2_PACKAGE_DROPBEAR=y # BR2_PACKAGE_DROPBEAR_CLIENT is not set # BR2_PACKAGE_IFUPDOWN_SCRIPTS is not set diff --git a/buildroot-external/configs/rpi_defconfig b/buildroot-external/configs/rpi_defconfig index 58d6ab432..6395cff42 100644 --- a/buildroot-external/configs/rpi_defconfig +++ b/buildroot-external/configs/rpi_defconfig @@ -47,6 +47,8 @@ BR2_PACKAGE_AVAHI=y # BR2_PACKAGE_AVAHI_AUTOIPD is not set BR2_PACKAGE_AVAHI_DAEMON=y BR2_PACKAGE_AVAHI_LIBDNSSD_COMPATIBILITY=y +BR2_PACKAGE_DHCP=y +BR2_PACKAGE_DHCP_CLIENT=y BR2_PACKAGE_DROPBEAR=y # BR2_PACKAGE_DROPBEAR_CLIENT is not set # BR2_PACKAGE_IFUPDOWN_SCRIPTS is not set diff --git a/buildroot-external/rootfs-overlay/etc/NetworkManager/NetworkManager.conf b/buildroot-external/rootfs-overlay/etc/NetworkManager/NetworkManager.conf index 7d62bd22d..3510d5475 100644 --- a/buildroot-external/rootfs-overlay/etc/NetworkManager/NetworkManager.conf +++ b/buildroot-external/rootfs-overlay/etc/NetworkManager/NetworkManager.conf @@ -6,3 +6,6 @@ rc-manager=file [keyfile] unmanaged-devices=type:bridge;type:tun;type:veth + +[logging] +backend=journal diff --git a/buildroot-external/rootfs-overlay/etc/systemd/system/avahi-daemon.service.d/nm.conf b/buildroot-external/rootfs-overlay/etc/systemd/system/avahi-daemon.service.d/nm.conf new file mode 100644 index 000000000..31a36df3a --- /dev/null +++ b/buildroot-external/rootfs-overlay/etc/systemd/system/avahi-daemon.service.d/nm.conf @@ -0,0 +1,2 @@ +[Unit] +After=NetworkManager.service diff --git a/buildroot-external/rootfs-overlay/etc/systemd/system/hassos-bind.target.wants/var-lib-NetworkManager.mount b/buildroot-external/rootfs-overlay/etc/systemd/system/hassos-bind.target.wants/var-lib-NetworkManager.mount new file mode 120000 index 000000000..eea387e8c --- /dev/null +++ b/buildroot-external/rootfs-overlay/etc/systemd/system/hassos-bind.target.wants/var-lib-NetworkManager.mount @@ -0,0 +1 @@ +/usr/lib/systemd/system/var-lib-NetworkManager.mount \ No newline at end of file diff --git a/buildroot-external/rootfs-overlay/etc/tmpfiles.d/nm.conf b/buildroot-external/rootfs-overlay/etc/tmpfiles.d/nm.conf new file mode 100644 index 000000000..5089e77ff --- /dev/null +++ b/buildroot-external/rootfs-overlay/etc/tmpfiles.d/nm.conf @@ -0,0 +1,3 @@ +# Cleanup lease files +e /var/lib/NetworkManager/*.lease - - - 14d +C /mnt/overlay/etc/NetworkManager/system-connections - - - - /usr/share/system-connections diff --git "a/buildroot-external/rootfs-overlay/usr/lib/systemd/system/etc-NetworkManager-system\\x2dconnections.mount" "b/buildroot-external/rootfs-overlay/usr/lib/systemd/system/etc-NetworkManager-system\\x2dconnections.mount" index c312ebbb9..ea15e6132 100644 --- "a/buildroot-external/rootfs-overlay/usr/lib/systemd/system/etc-NetworkManager-system\\x2dconnections.mount" +++ "b/buildroot-external/rootfs-overlay/usr/lib/systemd/system/etc-NetworkManager-system\\x2dconnections.mount" @@ -1,7 +1,7 @@ [Unit] Description=NetworkManager persistent system connections Requires=mnt-overlay.mount -After=mnt-overlay.mount +After=mnt-overlay.mount systemd-tmpfiles-setup.service Before=NetworkManager.service hassos-config.service [Mount] diff --git a/buildroot-external/rootfs-overlay/usr/lib/systemd/system/hassos-supervisor.service b/buildroot-external/rootfs-overlay/usr/lib/systemd/system/hassos-supervisor.service index ac68fc988..195314d83 100644 --- a/buildroot-external/rootfs-overlay/usr/lib/systemd/system/hassos-supervisor.service +++ b/buildroot-external/rootfs-overlay/usr/lib/systemd/system/hassos-supervisor.service @@ -1,7 +1,7 @@ [Unit] Description=HassOS supervisor Requires=docker.service -After=docker.service rauc.service dbus.socket +After=docker.service rauc.service dbus.socket NetworkManager.service RequiresMountsFor=/mnt/data StartLimitIntervalSec=60 StartLimitBurst=5 diff --git a/buildroot-external/rootfs-overlay/usr/lib/systemd/system/var-lib-NetworkManager.mount b/buildroot-external/rootfs-overlay/usr/lib/systemd/system/var-lib-NetworkManager.mount new file mode 100644 index 000000000..bc9012d2d --- /dev/null +++ b/buildroot-external/rootfs-overlay/usr/lib/systemd/system/var-lib-NetworkManager.mount @@ -0,0 +1,14 @@ +[Unit] +Description=NetworkManager persistent data +Requires=mnt-data.mount +After=mnt-data.mount +Before=NetworkManager.service + +[Mount] +What=/mnt/overlay/var/lib/NetworkManager +Where=/var/lib/NetworkManager +Type=none +Options=bind + +[Install] +WantedBy=hassos-bind.target diff --git a/buildroot-external/rootfs-overlay/usr/lib/systemd/system/var-lib-docker.mount b/buildroot-external/rootfs-overlay/usr/lib/systemd/system/var-lib-docker.mount index e2f76c401..2f262e904 100644 --- a/buildroot-external/rootfs-overlay/usr/lib/systemd/system/var-lib-docker.mount +++ b/buildroot-external/rootfs-overlay/usr/lib/systemd/system/var-lib-docker.mount @@ -1,6 +1,6 @@ [Unit] Description=Docker persistent data -Requires=mnt-data.mount docker.service +Requires=mnt-data.mount After=mnt-data.mount Before=docker.service diff --git a/buildroot-external/rootfs-overlay/usr/share/system-connections/default b/buildroot-external/rootfs-overlay/usr/share/system-connections/default new file mode 100644 index 000000000..510318b1f --- /dev/null +++ b/buildroot-external/rootfs-overlay/usr/share/system-connections/default @@ -0,0 +1,11 @@ +[connection] +id=HassOS default +uuid=f62bf7c2-e565-49ff-bbfc-a4cf791e6add +type=802-3-ethernet + +[ipv4] +method=auto + +[ipv6] +addr-gen-mode=stable-privacy +method=auto diff --git a/buildroot-external/scripts/rootfs-layer.sh b/buildroot-external/scripts/rootfs-layer.sh index 55c669895..45f2918fc 100644 --- a/buildroot-external/scripts/rootfs-layer.sh +++ b/buildroot-external/scripts/rootfs-layer.sh @@ -2,10 +2,6 @@ function fix_rootfs() { - # Cleanup DHCP service, we don't need this with NetworkManager - rm -rf ${TARGET_DIR}/etc/systemd/system/multi-user.target.wants/dhcpcd.service - rm -rf ${TARGET_DIR}/usr/lib/systemd/system/dhcpcd.service - # Cleanup etc rm -rf ${TARGET_DIR}/etc/init.d rm -rf ${TARGET_DIR}/etc/network @@ -20,6 +16,9 @@ function fix_rootfs() { # Cleanup miscs rm -rf ${TARGET_DIR}/usr/lib/modules-load.d + # Fix: permission for system connection files + chmod 600 ${TARGET_DIR}/usr/share/system-connections/* + # Fix: tempfs with /srv sed -i "/srv/d" ${TARGET_DIR}/usr/lib/tmpfiles.d/home.conf diff --git a/buildroot-patches/0008-Fix-dhcp-client.patch b/buildroot-patches/0008-Fix-dhcp-client.patch new file mode 100644 index 000000000..b66173e23 --- /dev/null +++ b/buildroot-patches/0008-Fix-dhcp-client.patch @@ -0,0 +1,27 @@ +From 07169ea27b84230299685f84031f07f8af74dbb4 Mon Sep 17 00:00:00 2001 +From: Pascal Vizeli +Date: Wed, 4 Jul 2018 20:31:14 +0000 +Subject: [PATCH 1/1] Fix dhcp client + +Signed-off-by: Pascal Vizeli +--- + package/dhcp/dhcp.mk | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/package/dhcp/dhcp.mk b/package/dhcp/dhcp.mk +index a1285184d3..7ea7589a28 100644 +--- a/package/dhcp/dhcp.mk ++++ b/package/dhcp/dhcp.mk +@@ -75,8 +75,7 @@ endif + + ifeq ($(BR2_PACKAGE_DHCP_CLIENT),y) + define DHCP_INSTALL_CLIENT +- mkdir -p $(TARGET_DIR)/var/lib +- (cd $(TARGET_DIR)/var/lib; ln -snf /tmp dhcp) ++ mkdir -p $(TARGET_DIR)/var/lib/dhcp + $(INSTALL) -m 0755 -D $(DHCP_DIR)/client/dhclient \ + $(TARGET_DIR)/sbin/dhclient + $(INSTALL) -m 0644 -D package/dhcp/dhclient.conf \ +-- +2.17.1 + diff --git a/buildroot/package/dhcp/dhcp.mk b/buildroot/package/dhcp/dhcp.mk index a1285184d..7ea7589a2 100644 --- a/buildroot/package/dhcp/dhcp.mk +++ b/buildroot/package/dhcp/dhcp.mk @@ -75,8 +75,7 @@ endif ifeq ($(BR2_PACKAGE_DHCP_CLIENT),y) define DHCP_INSTALL_CLIENT - mkdir -p $(TARGET_DIR)/var/lib - (cd $(TARGET_DIR)/var/lib; ln -snf /tmp dhcp) + mkdir -p $(TARGET_DIR)/var/lib/dhcp $(INSTALL) -m 0755 -D $(DHCP_DIR)/client/dhclient \ $(TARGET_DIR)/sbin/dhclient $(INSTALL) -m 0644 -D package/dhcp/dhclient.conf \ From 988d4ebecf55bc4c0bb9ebe6d3ae3abdafc13870 Mon Sep 17 00:00:00 2001 From: Pascal Vizeli Date: Fri, 6 Jul 2018 14:35:22 +0200 Subject: [PATCH 28/32] Update supervisor 115 (#82) --- buildroot-external/configs/ova_defconfig | 2 +- buildroot-external/configs/rpi0_w_defconfig | 2 +- buildroot-external/configs/rpi2_defconfig | 2 +- buildroot-external/configs/rpi3_64_defconfig | 2 +- buildroot-external/configs/rpi3_defconfig | 2 +- buildroot-external/configs/rpi_defconfig | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/buildroot-external/configs/ova_defconfig b/buildroot-external/configs/ova_defconfig index 6f831f2d3..bccbe9e18 100644 --- a/buildroot-external/configs/ova_defconfig +++ b/buildroot-external/configs/ova_defconfig @@ -75,7 +75,7 @@ BR2_PACKAGE_HOST_MTOOLS=y BR2_PACKAGE_HOST_RAUC=y BR2_PACKAGE_HASSOS=y BR2_PACKAGE_HASSOS_SUPERVISOR="homeassistant/amd64-hassio-supervisor" -BR2_PACKAGE_HASSOS_SUPERVISOR_VERSION="111" +BR2_PACKAGE_HASSOS_SUPERVISOR_VERSION="115" BR2_PACKAGE_HASSOS_SUPERVISOR_ARGS="-e HOMEASSISTANT_REPOSITORY=homeassistant/qemux86-64-homeassistant" BR2_PACKAGE_HASSOS_SUPERVISOR_PROFILE="hassio-supervisor" BR2_PACKAGE_HASSOS_SUPERVISOR_PROFILE_URL="http://s3.amazonaws.com/hassio-version/apparmor.txt" diff --git a/buildroot-external/configs/rpi0_w_defconfig b/buildroot-external/configs/rpi0_w_defconfig index 43cef5ad0..e758e6e09 100644 --- a/buildroot-external/configs/rpi0_w_defconfig +++ b/buildroot-external/configs/rpi0_w_defconfig @@ -84,7 +84,7 @@ BR2_PACKAGE_HOST_MTOOLS=y BR2_PACKAGE_HOST_RAUC=y BR2_PACKAGE_HASSOS=y BR2_PACKAGE_HASSOS_SUPERVISOR="homeassistant/armhf-hassio-supervisor" -BR2_PACKAGE_HASSOS_SUPERVISOR_VERSION="111" +BR2_PACKAGE_HASSOS_SUPERVISOR_VERSION="115" BR2_PACKAGE_HASSOS_SUPERVISOR_ARGS="-e HOMEASSISTANT_REPOSITORY=homeassistant/raspberrypi-homeassistant" BR2_PACKAGE_HASSOS_SUPERVISOR_PROFILE="hassio-supervisor" BR2_PACKAGE_HASSOS_SUPERVISOR_PROFILE_URL="http://s3.amazonaws.com/hassio-version/apparmor.txt" diff --git a/buildroot-external/configs/rpi2_defconfig b/buildroot-external/configs/rpi2_defconfig index f33e8bb42..e2dae9c45 100644 --- a/buildroot-external/configs/rpi2_defconfig +++ b/buildroot-external/configs/rpi2_defconfig @@ -83,7 +83,7 @@ BR2_PACKAGE_HOST_MTOOLS=y BR2_PACKAGE_HOST_RAUC=y BR2_PACKAGE_HASSOS=y BR2_PACKAGE_HASSOS_SUPERVISOR="homeassistant/armhf-hassio-supervisor" -BR2_PACKAGE_HASSOS_SUPERVISOR_VERSION="111" +BR2_PACKAGE_HASSOS_SUPERVISOR_VERSION="115" BR2_PACKAGE_HASSOS_SUPERVISOR_ARGS="-e HOMEASSISTANT_REPOSITORY=homeassistant/raspberrypi2-homeassistant" BR2_PACKAGE_HASSOS_SUPERVISOR_PROFILE="hassio-supervisor" BR2_PACKAGE_HASSOS_SUPERVISOR_PROFILE_URL="http://s3.amazonaws.com/hassio-version/apparmor.txt" diff --git a/buildroot-external/configs/rpi3_64_defconfig b/buildroot-external/configs/rpi3_64_defconfig index f340e4643..b82e30ad0 100644 --- a/buildroot-external/configs/rpi3_64_defconfig +++ b/buildroot-external/configs/rpi3_64_defconfig @@ -84,7 +84,7 @@ BR2_PACKAGE_HOST_MTOOLS=y BR2_PACKAGE_HOST_RAUC=y BR2_PACKAGE_HASSOS=y BR2_PACKAGE_HASSOS_SUPERVISOR="homeassistant/aarch64-hassio-supervisor" -BR2_PACKAGE_HASSOS_SUPERVISOR_VERSION="111" +BR2_PACKAGE_HASSOS_SUPERVISOR_VERSION="115" BR2_PACKAGE_HASSOS_SUPERVISOR_ARGS="-e HOMEASSISTANT_REPOSITORY=homeassistant/raspberrypi3-64-homeassistant" BR2_PACKAGE_HASSOS_SUPERVISOR_PROFILE="hassio-supervisor" BR2_PACKAGE_HASSOS_SUPERVISOR_PROFILE_URL="http://s3.amazonaws.com/hassio-version/apparmor.txt" diff --git a/buildroot-external/configs/rpi3_defconfig b/buildroot-external/configs/rpi3_defconfig index c22d1c152..64cccbc6a 100644 --- a/buildroot-external/configs/rpi3_defconfig +++ b/buildroot-external/configs/rpi3_defconfig @@ -84,7 +84,7 @@ BR2_PACKAGE_HOST_MTOOLS=y BR2_PACKAGE_HOST_RAUC=y BR2_PACKAGE_HASSOS=y BR2_PACKAGE_HASSOS_SUPERVISOR="homeassistant/armhf-hassio-supervisor" -BR2_PACKAGE_HASSOS_SUPERVISOR_VERSION="111" +BR2_PACKAGE_HASSOS_SUPERVISOR_VERSION="115" BR2_PACKAGE_HASSOS_SUPERVISOR_ARGS="-e HOMEASSISTANT_REPOSITORY=homeassistant/raspberrypi3-homeassistant" BR2_PACKAGE_HASSOS_SUPERVISOR_PROFILE="hassio-supervisor" BR2_PACKAGE_HASSOS_SUPERVISOR_PROFILE_URL="http://s3.amazonaws.com/hassio-version/apparmor.txt" diff --git a/buildroot-external/configs/rpi_defconfig b/buildroot-external/configs/rpi_defconfig index 6395cff42..6d7747271 100644 --- a/buildroot-external/configs/rpi_defconfig +++ b/buildroot-external/configs/rpi_defconfig @@ -83,7 +83,7 @@ BR2_PACKAGE_HOST_MTOOLS=y BR2_PACKAGE_HOST_RAUC=y BR2_PACKAGE_HASSOS=y BR2_PACKAGE_HASSOS_SUPERVISOR="homeassistant/armhf-hassio-supervisor" -BR2_PACKAGE_HASSOS_SUPERVISOR_VERSION="111" +BR2_PACKAGE_HASSOS_SUPERVISOR_VERSION="115" BR2_PACKAGE_HASSOS_SUPERVISOR_ARGS="-e HOMEASSISTANT_REPOSITORY=homeassistant/raspberrypi-homeassistant" BR2_PACKAGE_HASSOS_SUPERVISOR_PROFILE="hassio-supervisor" BR2_PACKAGE_HASSOS_SUPERVISOR_PROFILE_URL="http://s3.amazonaws.com/hassio-version/apparmor.txt" From 14833a110f98dec59970e5a66616abcf06f089b7 Mon Sep 17 00:00:00 2001 From: Pascal Vizeli Date: Fri, 6 Jul 2018 18:21:19 +0200 Subject: [PATCH 29/32] Use wait on network to delay the startup (#81) * Use wait on network to delay the startup * Update nm.conf * Create nm.conf * Update hassos-supervisor.service * Rename hassos.conf to docker.conf * Create hassos.conf * Create hassos.conf * Update hassos.conf * aply patch * Mark only failed * Fix start order --- .../NetworkManager.service.d/hassos.conf | 2 ++ .../system/avahi-daemon.service.d/hassos.conf | 2 ++ .../system/avahi-daemon.service.d/nm.conf | 3 +- .../systemd/system/dropbear.service.d/nm.conf | 3 ++ .../system/getty@.service.d/hassos.conf | 3 ++ .../serial-getty@.service.d/docker.conf | 3 ++ .../serial-getty@.service.d/hassos.conf | 4 +-- .../systemd/system/hassos-supervisor.service | 3 +- .../rootfs-overlay/usr/sbin/hassos-rate | 4 +-- ...NetworkManager-allow-to-wait-on-boot.patch | 34 +++++++++++++++++++ .../network-manager/network-manager.mk | 4 +++ 11 files changed, 59 insertions(+), 6 deletions(-) create mode 100644 buildroot-external/rootfs-overlay/etc/systemd/system/NetworkManager.service.d/hassos.conf create mode 100644 buildroot-external/rootfs-overlay/etc/systemd/system/avahi-daemon.service.d/hassos.conf create mode 100644 buildroot-external/rootfs-overlay/etc/systemd/system/dropbear.service.d/nm.conf create mode 100644 buildroot-external/rootfs-overlay/etc/systemd/system/getty@.service.d/hassos.conf create mode 100644 buildroot-external/rootfs-overlay/etc/systemd/system/serial-getty@.service.d/docker.conf create mode 100644 buildroot-patches/0009-NetworkManager-allow-to-wait-on-boot.patch diff --git a/buildroot-external/rootfs-overlay/etc/systemd/system/NetworkManager.service.d/hassos.conf b/buildroot-external/rootfs-overlay/etc/systemd/system/NetworkManager.service.d/hassos.conf new file mode 100644 index 000000000..09dd23d8b --- /dev/null +++ b/buildroot-external/rootfs-overlay/etc/systemd/system/NetworkManager.service.d/hassos.conf @@ -0,0 +1,2 @@ +[Unit] +RequiresMountsFor=/etc/hostname /etc/hosts /etc/NetworkManager/system-connections diff --git a/buildroot-external/rootfs-overlay/etc/systemd/system/avahi-daemon.service.d/hassos.conf b/buildroot-external/rootfs-overlay/etc/systemd/system/avahi-daemon.service.d/hassos.conf new file mode 100644 index 000000000..7a243b5b1 --- /dev/null +++ b/buildroot-external/rootfs-overlay/etc/systemd/system/avahi-daemon.service.d/hassos.conf @@ -0,0 +1,2 @@ +[Unit] +RequiresMountsFor=/etc/hostname diff --git a/buildroot-external/rootfs-overlay/etc/systemd/system/avahi-daemon.service.d/nm.conf b/buildroot-external/rootfs-overlay/etc/systemd/system/avahi-daemon.service.d/nm.conf index 31a36df3a..0a38143e9 100644 --- a/buildroot-external/rootfs-overlay/etc/systemd/system/avahi-daemon.service.d/nm.conf +++ b/buildroot-external/rootfs-overlay/etc/systemd/system/avahi-daemon.service.d/nm.conf @@ -1,2 +1,3 @@ [Unit] -After=NetworkManager.service +Wants=network-online.target +After=network-online.target diff --git a/buildroot-external/rootfs-overlay/etc/systemd/system/dropbear.service.d/nm.conf b/buildroot-external/rootfs-overlay/etc/systemd/system/dropbear.service.d/nm.conf new file mode 100644 index 000000000..0a38143e9 --- /dev/null +++ b/buildroot-external/rootfs-overlay/etc/systemd/system/dropbear.service.d/nm.conf @@ -0,0 +1,3 @@ +[Unit] +Wants=network-online.target +After=network-online.target diff --git a/buildroot-external/rootfs-overlay/etc/systemd/system/getty@.service.d/hassos.conf b/buildroot-external/rootfs-overlay/etc/systemd/system/getty@.service.d/hassos.conf new file mode 100644 index 000000000..2217bfed9 --- /dev/null +++ b/buildroot-external/rootfs-overlay/etc/systemd/system/getty@.service.d/hassos.conf @@ -0,0 +1,3 @@ +[Unit] +Wants=hassos-supervisor.service +After=hassos-supervisor.service diff --git a/buildroot-external/rootfs-overlay/etc/systemd/system/serial-getty@.service.d/docker.conf b/buildroot-external/rootfs-overlay/etc/systemd/system/serial-getty@.service.d/docker.conf new file mode 100644 index 000000000..53a8d88b0 --- /dev/null +++ b/buildroot-external/rootfs-overlay/etc/systemd/system/serial-getty@.service.d/docker.conf @@ -0,0 +1,3 @@ +[Unit] +Requires=docker.service +After=docker.service diff --git a/buildroot-external/rootfs-overlay/etc/systemd/system/serial-getty@.service.d/hassos.conf b/buildroot-external/rootfs-overlay/etc/systemd/system/serial-getty@.service.d/hassos.conf index 53a8d88b0..2217bfed9 100644 --- a/buildroot-external/rootfs-overlay/etc/systemd/system/serial-getty@.service.d/hassos.conf +++ b/buildroot-external/rootfs-overlay/etc/systemd/system/serial-getty@.service.d/hassos.conf @@ -1,3 +1,3 @@ [Unit] -Requires=docker.service -After=docker.service +Wants=hassos-supervisor.service +After=hassos-supervisor.service diff --git a/buildroot-external/rootfs-overlay/usr/lib/systemd/system/hassos-supervisor.service b/buildroot-external/rootfs-overlay/usr/lib/systemd/system/hassos-supervisor.service index 195314d83..d21ac9897 100644 --- a/buildroot-external/rootfs-overlay/usr/lib/systemd/system/hassos-supervisor.service +++ b/buildroot-external/rootfs-overlay/usr/lib/systemd/system/hassos-supervisor.service @@ -1,7 +1,8 @@ [Unit] Description=HassOS supervisor Requires=docker.service -After=docker.service rauc.service dbus.socket NetworkManager.service +Wants=network-online.target +After=docker.service rauc.service dbus.socket network-online.target RequiresMountsFor=/mnt/data StartLimitIntervalSec=60 StartLimitBurst=5 diff --git a/buildroot-external/rootfs-overlay/usr/sbin/hassos-rate b/buildroot-external/rootfs-overlay/usr/sbin/hassos-rate index 79bbe662a..517b652de 100755 --- a/buildroot-external/rootfs-overlay/usr/sbin/hassos-rate +++ b/buildroot-external/rootfs-overlay/usr/sbin/hassos-rate @@ -15,12 +15,12 @@ function mark_bad() { #### Check system #### # Docker state -if ! systemctl -q is-active docker; then +if systemctl -q is-failed docker; then mark_bad fi # Docker state -if ! systemctl -q is-active hassos-supervisor; then +if systemctl -q is-failed hassos-supervisor; then mark_bad fi diff --git a/buildroot-patches/0009-NetworkManager-allow-to-wait-on-boot.patch b/buildroot-patches/0009-NetworkManager-allow-to-wait-on-boot.patch new file mode 100644 index 000000000..273dd981a --- /dev/null +++ b/buildroot-patches/0009-NetworkManager-allow-to-wait-on-boot.patch @@ -0,0 +1,34 @@ +From 590565bc07f563f978004727dc817dc89527377a Mon Sep 17 00:00:00 2001 +From: Pascal Vizeli +Date: Sat, 31 Mar 2018 16:58:14 +0200 +Subject: [PATCH 1/1] NetworkManager: allow to wait on boot + +Signed-off-by: Pascal Vizeli +--- + package/network-manager/network-manager.mk | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/package/network-manager/network-manager.mk b/package/network-manager/network-manager.mk +index a520aad..fb2012a 100644 +--- a/package/network-manager/network-manager.mk ++++ b/package/network-manager/network-manager.mk +@@ -93,6 +93,7 @@ endef + + define NETWORK_MANAGER_INSTALL_INIT_SYSTEMD + mkdir -p $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants ++ mkdir -p $(TARGET_DIR)/etc/systemd/system/network-online.target.wants + + ln -sf /usr/lib/systemd/system/NetworkManager.service \ + $(TARGET_DIR)/etc/systemd/system/dbus-org.freedesktop.NetworkManager.service +@@ -100,6 +101,9 @@ define NETWORK_MANAGER_INSTALL_INIT_SYSTEMD + ln -sf /usr/lib/systemd/system/NetworkManager.service \ + $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants/NetworkManager.service + ++ ln -sf /usr/lib/systemd/system/NetworkManager-wait-online.service \ ++ $(TARGET_DIR)/etc/systemd/system/network-online.target.wants/NetworkManager-wait-online.service ++ + ln -sf /usr/lib/systemd/system/NetworkManager-dispatcher.service \ + $(TARGET_DIR)/etc/systemd/system/dbus-org.freedesktop.nm-dispatcher.service + endef +-- +2.7.4 diff --git a/buildroot/package/network-manager/network-manager.mk b/buildroot/package/network-manager/network-manager.mk index 846605eb8..b07059f79 100644 --- a/buildroot/package/network-manager/network-manager.mk +++ b/buildroot/package/network-manager/network-manager.mk @@ -93,6 +93,7 @@ endef define NETWORK_MANAGER_INSTALL_INIT_SYSTEMD mkdir -p $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants + mkdir -p $(TARGET_DIR)/etc/systemd/system/network-online.target.wants ln -sf /usr/lib/systemd/system/NetworkManager.service \ $(TARGET_DIR)/etc/systemd/system/dbus-org.freedesktop.NetworkManager.service @@ -100,6 +101,9 @@ define NETWORK_MANAGER_INSTALL_INIT_SYSTEMD ln -sf /usr/lib/systemd/system/NetworkManager.service \ $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants/NetworkManager.service + ln -sf /usr/lib/systemd/system/NetworkManager-wait-online.service \ + $(TARGET_DIR)/etc/systemd/system/network-online.target.wants/NetworkManager-wait-online.service + ln -sf /usr/lib/systemd/system/NetworkManager-dispatcher.service \ $(TARGET_DIR)/etc/systemd/system/dbus-org.freedesktop.nm-dispatcher.service endef From 0671e3f71c758e838dcd88ad901fea3f591dc5c5 Mon Sep 17 00:00:00 2001 From: Pascal Vizeli Date: Fri, 6 Jul 2018 19:08:52 +0200 Subject: [PATCH 30/32] Reset if we can't boot (#83) * Update uboot-boot.sh * Update uboot-boot.sh --- buildroot-external/board/raspberrypi/rpi3-64/uboot-boot.sh | 3 +++ buildroot-external/board/raspberrypi/uboot-boot.sh | 3 +++ 2 files changed, 6 insertions(+) diff --git a/buildroot-external/board/raspberrypi/rpi3-64/uboot-boot.sh b/buildroot-external/board/raspberrypi/rpi3-64/uboot-boot.sh index a5bc68e06..6b04956e3 100644 --- a/buildroot-external/board/raspberrypi/rpi3-64/uboot-boot.sh +++ b/buildroot-external/board/raspberrypi/rpi3-64/uboot-boot.sh @@ -49,3 +49,6 @@ echo "Loading kernel" run load_kernel echo " Starting kernel" booti ${kernel_addr_r} - ${fdt_addr} + +echo "Fails on boot" +reset diff --git a/buildroot-external/board/raspberrypi/uboot-boot.sh b/buildroot-external/board/raspberrypi/uboot-boot.sh index cceab02ff..d4f4e8fa9 100644 --- a/buildroot-external/board/raspberrypi/uboot-boot.sh +++ b/buildroot-external/board/raspberrypi/uboot-boot.sh @@ -49,3 +49,6 @@ echo "Loading kernel" run load_kernel echo " Starting kernel" bootz ${kernel_addr_r} - ${fdt_addr} + +echo "Fails on boot" +reset From c6d0fef0b42d0e69bce9829980679eeec5c69064 Mon Sep 17 00:00:00 2001 From: Pascal Vizeli Date: Fri, 6 Jul 2018 21:04:48 +0200 Subject: [PATCH 31/32] Some cleanup (#84) --- .../etc/systemd/system/dropbear.service.d/nm.conf | 3 --- .../system/multi-user.target.wants/hassos-apparmor.service | 2 +- .../systemd/system/multi-user.target.wants/hassos-bind.target | 2 +- .../system/multi-user.target.wants/hassos-config.service | 2 +- .../system/multi-user.target.wants/hassos-supervisor.service | 2 +- .../systemd/system/multi-user.target.wants/hassos-zram.target | 2 +- 6 files changed, 5 insertions(+), 8 deletions(-) delete mode 100644 buildroot-external/rootfs-overlay/etc/systemd/system/dropbear.service.d/nm.conf diff --git a/buildroot-external/rootfs-overlay/etc/systemd/system/dropbear.service.d/nm.conf b/buildroot-external/rootfs-overlay/etc/systemd/system/dropbear.service.d/nm.conf deleted file mode 100644 index 0a38143e9..000000000 --- a/buildroot-external/rootfs-overlay/etc/systemd/system/dropbear.service.d/nm.conf +++ /dev/null @@ -1,3 +0,0 @@ -[Unit] -Wants=network-online.target -After=network-online.target diff --git a/buildroot-external/rootfs-overlay/etc/systemd/system/multi-user.target.wants/hassos-apparmor.service b/buildroot-external/rootfs-overlay/etc/systemd/system/multi-user.target.wants/hassos-apparmor.service index 5c3399155..3caec078f 120000 --- a/buildroot-external/rootfs-overlay/etc/systemd/system/multi-user.target.wants/hassos-apparmor.service +++ b/buildroot-external/rootfs-overlay/etc/systemd/system/multi-user.target.wants/hassos-apparmor.service @@ -1 +1 @@ -/usr/lib/systemd/system/hassos-apparmor.service +/usr/lib/systemd/system/hassos-apparmor.service \ No newline at end of file diff --git a/buildroot-external/rootfs-overlay/etc/systemd/system/multi-user.target.wants/hassos-bind.target b/buildroot-external/rootfs-overlay/etc/systemd/system/multi-user.target.wants/hassos-bind.target index 60e9c455b..afb44860c 120000 --- a/buildroot-external/rootfs-overlay/etc/systemd/system/multi-user.target.wants/hassos-bind.target +++ b/buildroot-external/rootfs-overlay/etc/systemd/system/multi-user.target.wants/hassos-bind.target @@ -1 +1 @@ -/usr/lib/systemd/system/hassos-bind.target +/usr/lib/systemd/system/hassos-bind.target \ No newline at end of file diff --git a/buildroot-external/rootfs-overlay/etc/systemd/system/multi-user.target.wants/hassos-config.service b/buildroot-external/rootfs-overlay/etc/systemd/system/multi-user.target.wants/hassos-config.service index bbd767dd6..24c0f09e3 120000 --- a/buildroot-external/rootfs-overlay/etc/systemd/system/multi-user.target.wants/hassos-config.service +++ b/buildroot-external/rootfs-overlay/etc/systemd/system/multi-user.target.wants/hassos-config.service @@ -1 +1 @@ -/usr/lib/systemd/system/hassos-config.service +/usr/lib/systemd/system/hassos-config.service \ No newline at end of file diff --git a/buildroot-external/rootfs-overlay/etc/systemd/system/multi-user.target.wants/hassos-supervisor.service b/buildroot-external/rootfs-overlay/etc/systemd/system/multi-user.target.wants/hassos-supervisor.service index b8b6bdf79..17b423d69 120000 --- a/buildroot-external/rootfs-overlay/etc/systemd/system/multi-user.target.wants/hassos-supervisor.service +++ b/buildroot-external/rootfs-overlay/etc/systemd/system/multi-user.target.wants/hassos-supervisor.service @@ -1 +1 @@ -/usr/lib/systemd/system/hassos-supervisor.service +/usr/lib/systemd/system/hassos-supervisor.service \ No newline at end of file diff --git a/buildroot-external/rootfs-overlay/etc/systemd/system/multi-user.target.wants/hassos-zram.target b/buildroot-external/rootfs-overlay/etc/systemd/system/multi-user.target.wants/hassos-zram.target index d554b3c69..decfca7a2 120000 --- a/buildroot-external/rootfs-overlay/etc/systemd/system/multi-user.target.wants/hassos-zram.target +++ b/buildroot-external/rootfs-overlay/etc/systemd/system/multi-user.target.wants/hassos-zram.target @@ -1 +1 @@ -/usr/lib/systemd/system/hassos-zram.target +/usr/lib/systemd/system/hassos-zram.target \ No newline at end of file From d2ba03164b838d3cb0a412b9bbd4477dd0b84534 Mon Sep 17 00:00:00 2001 From: Pascal Vizeli Date: Sat, 7 Jul 2018 10:45:59 +0200 Subject: [PATCH 32/32] Add powersave config to network manager (#86) * Add powersave config to network manager * Update network.md --- Documentation/network.md | 46 +++++++++++++++++++++++++++++++++++++--- 1 file changed, 43 insertions(+), 3 deletions(-) diff --git a/Documentation/network.md b/Documentation/network.md index 7956e04fb..67e9a9b08 100644 --- a/Documentation/network.md +++ b/Documentation/network.md @@ -5,13 +5,31 @@ Currently only manual configuration using NetworkManager connection files is sup ## Configuration Examples -You can look also into [Official Manual][keyfile] or there are a lot of examples accross internet. +You can look also into [Official Manual][keyfile] or there are a lot of examples accross internet. The system is read only, if you not want change the IP address every boot, you should set the uuid property with a generic [UUID4][uuid]. + +### Default + +We have a preinstalled connection profile: +``` +[connection] +id=HassOS default +uuid=f62bf7c2-e565-49ff-bbfc-a4cf791e6add +type=802-3-ethernet + +[ipv4] +method=auto + +[ipv6] +addr-gen-mode=stable-privacy +method=auto +``` ### LAN ```ini [connection] id=hassos-network -type=ethernet +uuid=d55162b4-6152-4310-9312-8f4c54d86afa +type=802-3-ethernet [ipv4] method=auto @@ -25,7 +43,8 @@ method=auto ```ini [connection] id=hassos-network -type=wifi +uuid=72111c67-4a5d-4d5c-925e-f8ee26efb3c3 +type=802-11-wireless [wifi] mode=infrastructure @@ -54,5 +73,26 @@ address1=192.168.1.111/24,192.168.1.1 dns=8.8.8.8;8.8.4.4; ``` +## Tips + +### Reset network + +If you want reset the network configuration to default, use follow commands on host: +```bash +$ rm /etc/NetworkManager/system-connections/* +$ cp /usr/share/system-connections/* /etc/NetworkManager/system-connections/ +$ nmcli con reload +``` + +### Powersave + +If you have trouble with powersave you can do following: +```ini +[wifi] +# Values are 0 (use default), 1 (ignore/don't touch), 2 (disable) or 3 (enable). +powersave=0 +``` + [keyfile]: https://developer.gnome.org/NetworkManager/stable/nm-settings.html [configuration-usb]: configuration.md +[uuid]: https://www.uuidgenerator.net/