Compare commits

..

14 Commits
2.0 ... 1.1

Author SHA1 Message Date
Pascal Vizeli
5cc352bb44 Add lost persistent ssh folder (#58)
Signed-off-by: Pascal Vizeli <pvizeli@syshack.ch>
2018-06-30 22:40:45 +00:00
Pascal Vizeli
3315f6d9c4 Use wpa_supplicant with NetworkManager (#57) 2018-06-30 22:40:32 +00:00
Pascal Vizeli
0f1c8dbf56 Use CONFIG as label for config partition (#56)
* Use CONFIG as label for config partition

* Update configuration.md

* Update hassos-config
2018-06-30 22:40:21 +00:00
Pascal Vizeli
f5df6e18a8 Bump version to REL-1 build 1 2018-06-30 10:00:49 +00:00
Pascal Vizeli
ba78c80b97 Set hassos supervisor to rauc (#55)
* Set hassos supervisor to rauc

* Update post-install

* Update hassos-config
2018-06-30 09:59:46 +00:00
Pascal Vizeli
38bc2b4f91 Fix authorized_keys keys (#53)
* Fix authorized_keys keys

* Update hassos.conf

* Update configuration.md

* Update hassos-config

* Update hassos-config
2018-06-30 09:59:36 +00:00
Pascal Vizeli
69af4b3819 Fix hassos-conf label (#48)
* Update mnt-config.mount

* Update configuration.md

* Update configuration.md

* Update mnt-config.mount

* Update configuration.md
2018-06-30 09:59:24 +00:00
Pascal Vizeli
14de047663 Update ova.md (#47) 2018-06-27 11:57:23 +00:00
Pascal Vizeli
a310232e2c We publish now the vmdk and not OVA/OVF (#46)
* Update upload-rel.sh

* Create ova.md
2018-06-27 11:36:09 +00:00
Pascal Vizeli
93ea56d0ea Improve the documentation (#44)
* Create network.md

* Update configuration.md

* Update network.md

* Update network.md
2018-06-26 20:25:56 +00:00
Pascal Vizeli
83dabb2842 Add script for github upload (#43)
Signed-off-by: Pascal Vizeli <pvizeli@syshack.ch>
2018-06-26 20:25:48 +00:00
Pascal Vizeli
bf05e66ae8 Include ota script into board image (#42) 2018-06-26 11:29:05 +00:00
Pascal Vizeli
e1fb61e8a8 Fix build script for new layout (#40) 2018-06-26 11:28:53 +00:00
Pascal Vizeli
480c11535d Bump version (#39) 2018-06-26 10:34:30 +02:00
42 changed files with 54 additions and 266 deletions

View File

@@ -2,9 +2,7 @@
## Automatic ## Automatic
You can use a USB drive with HassOS to configure network options, ssh access to the host, and to install updates. You can format a USB stick with FAT32/EXT4 and name it with `CONFIG`. The layout could be look like:
Format a USB stick with FAT32/EXT4/NTFS and name it `CONFIG`. Use the following directory structure within the USB drive:
``` ```
network/ network/
modules/ modules/
@@ -12,13 +10,13 @@ authorized_keys
hassos-xy.raucb hassos-xy.raucb
``` ```
- The `network` folder can contain any kind of NetworkManager connection files. For more information see [Network][network.md]. - On `network` folder can hold any kind of NetworkManager connections files.
- The `modules` folder is for modules-load configuration files. - The folder `modules` is for modules-load configuration files.
- The `authorized_keys` file activates debug SSH access on port `22222`. See [Debugging Hassio][debug-hassio]. - `authorized_keys` file activate debug SSH access of port `22222`.
- The `hassos-*.raucb` file is a firmware OTA update which will be installed. These can be found on on the [release][hassos-release] page. - For firmware updates you can but the `hassos-*.raucb` OTA update they should be install.
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 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 by calling `systemctl restart hassos-config` on the host. API/UI or call `systemctl restart hassos-config` on host.
## Local ## Local
@@ -35,6 +33,3 @@ 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`. 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 [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

View File

@@ -1,35 +1,18 @@
# Network # Network
HassOS uses NetworkManager to control the host network. In future releases, you can set up the configuration using the API/UI. HassOS use NetworkManager to control the host network. You can setup the network configuartion in future over 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]. Actual we support only manual configuration with NetworkManager connection files. Without a configuration, we run default as
DHCP device.
## Configuration Examples ## Configuration Examples
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]. You can look also into [Official Manual][keyfile] or there are a lot of examples accross internet.
### 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 ### LAN
```ini ```ini
[connection] [connection]
id=hassos-network id=hassos-network
uuid=d55162b4-6152-4310-9312-8f4c54d86afa type=ethernet
type=802-3-ethernet
[ipv4] [ipv4]
method=auto method=auto
@@ -43,8 +26,7 @@ method=auto
```ini ```ini
[connection] [connection]
id=hassos-network id=hassos-network
uuid=72111c67-4a5d-4d5c-925e-f8ee26efb3c3 type=wifi
type=802-11-wireless
[wifi] [wifi]
mode=infrastructure mode=infrastructure
@@ -73,26 +55,4 @@ address1=192.168.1.111/24,192.168.1.1
dns=8.8.8.8;8.8.4.4; 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 [keyfile]: https://developer.gnome.org/NetworkManager/stable/nm-settings.html
[configuration-usb]: configuration.md
[uuid]: https://www.uuidgenerator.net/

View File

@@ -3,7 +3,7 @@ test -n "${BOOT_A_LEFT}" || setenv BOOT_A_LEFT 3
test -n "${BOOT_B_LEFT}" || setenv BOOT_B_LEFT 3 test -n "${BOOT_B_LEFT}" || setenv BOOT_B_LEFT 3
# HassOS bootargs # HassOS bootargs
setenv bootargs_hassos "zram.enabled=1 zram.num_devices=3 apparmor=1 security=apparmor rootwait cgroup_enable=memory" setenv bootargs_hassos "zram.enabled=1 zram.num_devices=3 apparmor=1 security=apparmor rootwait"
# HassOS system A/B # HassOS system A/B
setenv bootargs_a "root=PARTUUID=8d3d53e3-6d49-4c38-8349-aff6859e82fd rootfstype=squashfs ro" setenv bootargs_a "root=PARTUUID=8d3d53e3-6d49-4c38-8349-aff6859e82fd rootfstype=squashfs ro"
@@ -49,6 +49,3 @@ echo "Loading kernel"
run load_kernel run load_kernel
echo " Starting kernel" echo " Starting kernel"
booti ${kernel_addr_r} - ${fdt_addr} booti ${kernel_addr_r} - ${fdt_addr}
echo "Fails on boot"
reset

View File

@@ -3,7 +3,7 @@ test -n "${BOOT_A_LEFT}" || setenv BOOT_A_LEFT 3
test -n "${BOOT_B_LEFT}" || setenv BOOT_B_LEFT 3 test -n "${BOOT_B_LEFT}" || setenv BOOT_B_LEFT 3
# HassOS bootargs # HassOS bootargs
setenv bootargs_hassos "zram.enabled=1 zram.num_devices=3 apparmor=1 security=apparmor rootwait cgroup_enable=memory" setenv bootargs_hassos "zram.enabled=1 zram.num_devices=3 apparmor=1 security=apparmor rootwait"
# HassOS system A/B # HassOS system A/B
setenv bootargs_a "root=PARTUUID=8d3d53e3-6d49-4c38-8349-aff6859e82fd rootfstype=squashfs ro" setenv bootargs_a "root=PARTUUID=8d3d53e3-6d49-4c38-8349-aff6859e82fd rootfstype=squashfs ro"
@@ -49,6 +49,3 @@ echo "Loading kernel"
run load_kernel run load_kernel
echo " Starting kernel" echo " Starting kernel"
bootz ${kernel_addr_r} - ${fdt_addr} bootz ${kernel_addr_r} - ${fdt_addr}
echo "Fails on boot"
reset

View File

@@ -40,8 +40,6 @@ BR2_PACKAGE_AVAHI=y
# BR2_PACKAGE_AVAHI_AUTOIPD is not set # 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_DHCP=y
BR2_PACKAGE_DHCP_CLIENT=y
BR2_PACKAGE_DROPBEAR=y BR2_PACKAGE_DROPBEAR=y
# BR2_PACKAGE_DROPBEAR_CLIENT is not set # BR2_PACKAGE_DROPBEAR_CLIENT is not set
# BR2_PACKAGE_IFUPDOWN_SCRIPTS is not set # BR2_PACKAGE_IFUPDOWN_SCRIPTS is not set
@@ -75,12 +73,12 @@ 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="115" 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_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="6" BR2_PACKAGE_HASSOS_CLI_VERSION="5"
BR2_PACKAGE_HASSOS_CLI_ARGS="--network=hassio --add-host hassio:172.30.32.2" 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"

View File

@@ -48,8 +48,6 @@ BR2_PACKAGE_AVAHI=y
# BR2_PACKAGE_AVAHI_AUTOIPD is not set # 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_DHCP=y
BR2_PACKAGE_DHCP_CLIENT=y
BR2_PACKAGE_DROPBEAR=y BR2_PACKAGE_DROPBEAR=y
# BR2_PACKAGE_DROPBEAR_CLIENT is not set # BR2_PACKAGE_DROPBEAR_CLIENT is not set
# BR2_PACKAGE_IFUPDOWN_SCRIPTS is not set # BR2_PACKAGE_IFUPDOWN_SCRIPTS is not set
@@ -84,12 +82,12 @@ 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="115" 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_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="6" BR2_PACKAGE_HASSOS_CLI_VERSION="5"
BR2_PACKAGE_HASSOS_CLI_ARGS="--network=hassio --add-host hassio:172.30.32.2" 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"

View File

@@ -47,8 +47,6 @@ BR2_PACKAGE_AVAHI=y
# BR2_PACKAGE_AVAHI_AUTOIPD is not set # 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_DHCP=y
BR2_PACKAGE_DHCP_CLIENT=y
BR2_PACKAGE_DROPBEAR=y BR2_PACKAGE_DROPBEAR=y
# BR2_PACKAGE_DROPBEAR_CLIENT is not set # BR2_PACKAGE_DROPBEAR_CLIENT is not set
# BR2_PACKAGE_IFUPDOWN_SCRIPTS is not set # BR2_PACKAGE_IFUPDOWN_SCRIPTS is not set
@@ -83,12 +81,12 @@ 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="115" 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_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="6" BR2_PACKAGE_HASSOS_CLI_VERSION="5"
BR2_PACKAGE_HASSOS_CLI_ARGS="--network=hassio --add-host hassio:172.30.32.2" 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"

View File

@@ -48,8 +48,6 @@ BR2_PACKAGE_AVAHI=y
# BR2_PACKAGE_AVAHI_AUTOIPD is not set # 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_DHCP=y
BR2_PACKAGE_DHCP_CLIENT=y
BR2_PACKAGE_DROPBEAR=y BR2_PACKAGE_DROPBEAR=y
# BR2_PACKAGE_DROPBEAR_CLIENT is not set # BR2_PACKAGE_DROPBEAR_CLIENT is not set
# BR2_PACKAGE_IFUPDOWN_SCRIPTS is not set # BR2_PACKAGE_IFUPDOWN_SCRIPTS is not set
@@ -84,12 +82,12 @@ 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="115" 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_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="6" BR2_PACKAGE_HASSOS_CLI_VERSION="5"
BR2_PACKAGE_HASSOS_CLI_ARGS="--network=hassio --add-host hassio:172.30.32.2" 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"

View File

@@ -48,8 +48,6 @@ BR2_PACKAGE_AVAHI=y
# BR2_PACKAGE_AVAHI_AUTOIPD is not set # 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_DHCP=y
BR2_PACKAGE_DHCP_CLIENT=y
BR2_PACKAGE_DROPBEAR=y BR2_PACKAGE_DROPBEAR=y
# BR2_PACKAGE_DROPBEAR_CLIENT is not set # BR2_PACKAGE_DROPBEAR_CLIENT is not set
# BR2_PACKAGE_IFUPDOWN_SCRIPTS is not set # BR2_PACKAGE_IFUPDOWN_SCRIPTS is not set
@@ -84,12 +82,12 @@ 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="115" 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_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="6" BR2_PACKAGE_HASSOS_CLI_VERSION="5"
BR2_PACKAGE_HASSOS_CLI_ARGS="--network=hassio --add-host hassio:172.30.32.2" 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"

View File

@@ -47,8 +47,6 @@ BR2_PACKAGE_AVAHI=y
# BR2_PACKAGE_AVAHI_AUTOIPD is not set # 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_DHCP=y
BR2_PACKAGE_DHCP_CLIENT=y
BR2_PACKAGE_DROPBEAR=y BR2_PACKAGE_DROPBEAR=y
# BR2_PACKAGE_DROPBEAR_CLIENT is not set # BR2_PACKAGE_DROPBEAR_CLIENT is not set
# BR2_PACKAGE_IFUPDOWN_SCRIPTS is not set # BR2_PACKAGE_IFUPDOWN_SCRIPTS is not set
@@ -83,12 +81,12 @@ 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="115" 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_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="6" BR2_PACKAGE_HASSOS_CLI_VERSION="5"
BR2_PACKAGE_HASSOS_CLI_ARGS="--network=hassio --add-host hassio:172.30.32.2" 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"

View File

@@ -1,7 +1,7 @@
VERSION_MAJOR=2 VERSION_MAJOR=1
VERSION_BUILD=0 VERSION_BUILD=1
HASSOS_NAME="HassOS" HASSOS_NAME="HassOS"
HASSOS_ID="hassos" HASSOS_ID="hassos"
DEPLOYMENT="development" DEPLOYMENT="staging"

View File

@@ -6,6 +6,3 @@ rc-manager=file
[keyfile] [keyfile]
unmanaged-devices=type:bridge;type:tun;type:veth unmanaged-devices=type:bridge;type:tun;type:veth
[logging]
backend=journal

View File

@@ -1,2 +0,0 @@
[Unit]
RequiresMountsFor=/etc/hostname /etc/hosts /etc/NetworkManager/system-connections

View File

@@ -1,2 +0,0 @@
[Unit]
RequiresMountsFor=/etc/hostname

View File

@@ -1,3 +0,0 @@
[Unit]
Wants=network-online.target
After=network-online.target

View File

@@ -1,3 +0,0 @@
[Unit]
Wants=hassos-supervisor.service
After=hassos-supervisor.service

View File

@@ -1 +0,0 @@
/usr/lib/systemd/system/var-lib-NetworkManager.mount

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -1,3 +1,3 @@
[Unit] [Unit]
Wants=hassos-supervisor.service Requires=docker.service
After=hassos-supervisor.service After=docker.service

View File

@@ -1,3 +0,0 @@
# Cleanup lease files
e /var/lib/NetworkManager/*.lease - - - 14d
C /mnt/overlay/etc/NetworkManager/system-connections - - - - /usr/share/system-connections

View File

@@ -1,7 +1,7 @@
[Unit] [Unit]
Description=NetworkManager persistent system connections Description=NetworkManager persistent system connections
Requires=mnt-overlay.mount Requires=mnt-overlay.mount
After=mnt-overlay.mount systemd-tmpfiles-setup.service After=mnt-overlay.mount
Before=NetworkManager.service hassos-config.service Before=NetworkManager.service hassos-config.service
[Mount] [Mount]

View File

@@ -1,14 +0,0 @@
[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

View File

@@ -1,8 +1,7 @@
[Unit] [Unit]
Description=HassOS supervisor Description=HassOS supervisor
Requires=docker.service Requires=docker.service
Wants=network-online.target After=docker.service rauc.service dbus.socket
After=docker.service rauc.service dbus.socket network-online.target
RequiresMountsFor=/mnt/data RequiresMountsFor=/mnt/data
StartLimitIntervalSec=60 StartLimitIntervalSec=60
StartLimitBurst=5 StartLimitBurst=5

View File

@@ -1,14 +0,0 @@
[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

View File

@@ -1,6 +1,6 @@
[Unit] [Unit]
Description=Docker persistent data Description=Docker persistent data
Requires=mnt-data.mount Requires=mnt-data.mount docker.service
After=mnt-data.mount After=mnt-data.mount
Before=docker.service Before=docker.service

View File

@@ -6,6 +6,7 @@ CONFIG_FILE=/mnt/data/hassos.json
CLI="$(jq --raw-output '.cli' ${CONFIG_FILE})" CLI="$(jq --raw-output '.cli' ${CONFIG_FILE})"
DOCKER_ARGS="$(jq --raw-output '.cli_args // empty' ${CONFIG_FILE})" DOCKER_ARGS="$(jq --raw-output '.cli_args // empty' ${CONFIG_FILE})"
APPARMOR="$(jq --raw-output '.cli_apparmor // "docker-default"' ${CONFIG_FILE})" APPARMOR="$(jq --raw-output '.cli_apparmor // "docker-default"' ${CONFIG_FILE})"
MACHINE_ID="$(cat /etc/machine-id)"
CLI_DATA=/mnt/data/cli CLI_DATA=/mnt/data/cli
mkdir -p ${CLI_DATA} mkdir -p ${CLI_DATA}
@@ -15,7 +16,7 @@ docker run \
--rm -ti --init \ --rm -ti --init \
--security-opt apparmor="${APPARMOR}" \ --security-opt apparmor="${APPARMOR}" \
-v ${CLI_DATA}:/data \ -v ${CLI_DATA}:/data \
-v /etc/machine-id:/etc/machine-id:ro \ -e MACHINE_ID=${MACHINE_ID} \
$DOCKER_ARGS \ $DOCKER_ARGS \
${CLI} ${CLI}

View File

@@ -1,6 +1,6 @@
#!/bin/sh #!/bin/sh
if ! findfs LABEL="CONFIG" > /dev/null; then if ! findfs LABEL="config" > /dev/null; then
echo "[Warning] No config partition found" echo "[Warning] No config partition found"
exit 0 exit 0
fi fi
@@ -19,7 +19,6 @@ 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/
chmod 600 /etc/NetworkManager/system-connections/*
nmcli con reload nmcli con reload
fi fi
@@ -49,8 +48,7 @@ fi
## ##
# Firmware update # Firmware update
UPTIME=$(awk '{printf "%0.f", $1}' /proc/uptime) if ls /mnt/config/*.raucb > /dev/null; then
if ls /mnt/config/*.raucb > /dev/null && [ ${UPTIME} -ge 180 ]; then
echo "[Info] Performe a firmware update" echo "[Info] Performe a firmware update"
rauc_filename=$(ls /mnt/config/*.raucb | head -n 1) rauc_filename=$(ls /mnt/config/*.raucb | head -n 1)

View File

@@ -1,21 +0,0 @@
#!/bin/sh
set -e
MACHINE_ID=$(cat /etc/machine-id)
CURRENT_LOGS=/var/log/journal/${MACHINE_ID}
# 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
rm -rf ${log_folder}
done

View File

@@ -15,12 +15,12 @@ function mark_bad() {
#### Check system #### #### Check system ####
# Docker state # Docker state
if systemctl -q is-failed docker; then if ! systemctl -q is-active docker; then
mark_bad mark_bad
fi fi
# Docker state # Docker state
if systemctl -q is-failed hassos-supervisor; then if ! systemctl -q is-active hassos-supervisor; then
mark_bad mark_bad
fi fi

View File

@@ -7,6 +7,7 @@ CONFIG_FILE=/mnt/data/hassos.json
SUPERVISOR="$(jq --raw-output '.supervisor' ${CONFIG_FILE})" SUPERVISOR="$(jq --raw-output '.supervisor' ${CONFIG_FILE})"
DOCKER_ARGS="$(jq --raw-output '.supervisor_args // empty' ${CONFIG_FILE})" DOCKER_ARGS="$(jq --raw-output '.supervisor_args // empty' ${CONFIG_FILE})"
APPARMOR="$(jq --raw-output '.supervisor_apparmor // "docker-default"' ${CONFIG_FILE})" APPARMOR="$(jq --raw-output '.supervisor_apparmor // "docker-default"' ${CONFIG_FILE})"
MACHINE_ID="$(cat /etc/machine-id)"
# Init supervisor # Init supervisor
HASSOS_DATA=/mnt/data/supervisor HASSOS_DATA=/mnt/data/supervisor
@@ -24,10 +25,10 @@ runSupervisor() {
--security-opt apparmor="${APPARMOR}" \ --security-opt apparmor="${APPARMOR}" \
-v /var/run/docker.sock:/var/run/docker.sock \ -v /var/run/docker.sock:/var/run/docker.sock \
-v /var/run/dbus:/var/run/dbus \ -v /var/run/dbus:/var/run/dbus \
-v /etc/machine-id:/etc/machine-id:ro \
-v ${HASSOS_DATA}:/data \ -v ${HASSOS_DATA}:/data \
-e SUPERVISOR_SHARE=${HASSOS_DATA} \ -e SUPERVISOR_SHARE=${HASSOS_DATA} \
-e SUPERVISOR_NAME=hassos_supervisor \ -e SUPERVISOR_NAME=hassos_supervisor \
-e MACHINE_ID=${MACHINE_ID} \
$DOCKER_ARGS \ $DOCKER_ARGS \
${SUPERVISOR} ${SUPERVISOR}
} }

View File

@@ -1,11 +0,0 @@
[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

View File

@@ -2,6 +2,10 @@
function fix_rootfs() { 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 # Cleanup etc
rm -rf ${TARGET_DIR}/etc/init.d rm -rf ${TARGET_DIR}/etc/init.d
rm -rf ${TARGET_DIR}/etc/network rm -rf ${TARGET_DIR}/etc/network
@@ -16,9 +20,6 @@ function fix_rootfs() {
# Cleanup miscs # Cleanup miscs
rm -rf ${TARGET_DIR}/usr/lib/modules-load.d rm -rf ${TARGET_DIR}/usr/lib/modules-load.d
# Fix: permission for system connection files
chmod 600 ${TARGET_DIR}/usr/share/system-connections/*
# Fix: tempfs with /srv # Fix: tempfs with /srv
sed -i "/srv/d" ${TARGET_DIR}/usr/lib/tmpfiles.d/home.conf sed -i "/srv/d" ${TARGET_DIR}/usr/lib/tmpfiles.d/home.conf
@@ -30,8 +31,4 @@ function fix_rootfs() {
function install_hassos_cli() { function install_hassos_cli() {
sed -i "s|\(root.*\)/bin/sh|\1/usr/sbin/hassos-cli|" ${TARGET_DIR}/etc/passwd sed -i "s|\(root.*\)/bin/sh|\1/usr/sbin/hassos-cli|" ${TARGET_DIR}/etc/passwd
if ! grep "hassos-cli" ${TARGET_DIR}/etc/shells; then
echo "/usr/sbin/hassos-cli" >> ${TARGET_DIR}/etc/shells
fi
} }

View File

@@ -1,27 +0,0 @@
From 07169ea27b84230299685f84031f07f8af74dbb4 Mon Sep 17 00:00:00 2001
From: Pascal Vizeli <pvizeli@syshack.ch>
Date: Wed, 4 Jul 2018 20:31:14 +0000
Subject: [PATCH 1/1] Fix dhcp client
Signed-off-by: Pascal Vizeli <pvizeli@syshack.ch>
---
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

View File

@@ -1,34 +0,0 @@
From 590565bc07f563f978004727dc817dc89527377a Mon Sep 17 00:00:00 2001
From: Pascal Vizeli <pvizeli@syshack.ch>
Date: Sat, 31 Mar 2018 16:58:14 +0200
Subject: [PATCH 1/1] NetworkManager: allow to wait on boot
Signed-off-by: Pascal Vizeli <pvizeli@syshack.ch>
---
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

View File

@@ -75,7 +75,8 @@ endif
ifeq ($(BR2_PACKAGE_DHCP_CLIENT),y) ifeq ($(BR2_PACKAGE_DHCP_CLIENT),y)
define DHCP_INSTALL_CLIENT define DHCP_INSTALL_CLIENT
mkdir -p $(TARGET_DIR)/var/lib/dhcp mkdir -p $(TARGET_DIR)/var/lib
(cd $(TARGET_DIR)/var/lib; ln -snf /tmp dhcp)
$(INSTALL) -m 0755 -D $(DHCP_DIR)/client/dhclient \ $(INSTALL) -m 0755 -D $(DHCP_DIR)/client/dhclient \
$(TARGET_DIR)/sbin/dhclient $(TARGET_DIR)/sbin/dhclient
$(INSTALL) -m 0644 -D package/dhcp/dhclient.conf \ $(INSTALL) -m 0644 -D package/dhcp/dhclient.conf \

View File

@@ -93,7 +93,6 @@ endef
define NETWORK_MANAGER_INSTALL_INIT_SYSTEMD define NETWORK_MANAGER_INSTALL_INIT_SYSTEMD
mkdir -p $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants 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 \ ln -sf /usr/lib/systemd/system/NetworkManager.service \
$(TARGET_DIR)/etc/systemd/system/dbus-org.freedesktop.NetworkManager.service $(TARGET_DIR)/etc/systemd/system/dbus-org.freedesktop.NetworkManager.service
@@ -101,9 +100,6 @@ define NETWORK_MANAGER_INSTALL_INIT_SYSTEMD
ln -sf /usr/lib/systemd/system/NetworkManager.service \ ln -sf /usr/lib/systemd/system/NetworkManager.service \
$(TARGET_DIR)/etc/systemd/system/multi-user.target.wants/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 \ ln -sf /usr/lib/systemd/system/NetworkManager-dispatcher.service \
$(TARGET_DIR)/etc/systemd/system/dbus-org.freedesktop.nm-dispatcher.service $(TARGET_DIR)/etc/systemd/system/dbus-org.freedesktop.nm-dispatcher.service
endef endef