Compare commits

...

84 Commits
dev ... 1.12

Author SHA1 Message Date
Pascal Vizeli
43c27363f9 Raspberry: update kernel 4.14.78 2018-10-27 13:10:27 +00:00
Pascal Vizeli
26377dcde3 OVA: update kernel 4.14.78 2018-10-27 13:08:33 +00:00
Pascal Vizeli
237a9055f1 Supervisor: Update to version 138 2018-10-26 10:28:01 +00:00
Pascal Vizeli
ea01a2e5ae OS: bump version 1.12 2018-10-26 10:26:58 +00:00
Pascal Vizeli
e297324a0d OS: Config importer support now also boot partition (#212)
* OS: Config importer support now also boot partition

* Update configuration.md

* Cleanup config after import

* Update hassos-config
2018-10-26 10:25:32 +00:00
Johannes Truschnigg
295a05e5a0 Enable XHCI (USB3) support in ova kernel config (#221)
With this change, hassos can have USB devices passed into a guest VM
with the hypervisor emulating an XHCI controller. QEMU recommends using
XHCI whenever possible, as it offers a much more virtualization-friendly
architecture than its [EO]HCI predecessors (which are already support by
the hassos kernel).
2018-10-26 10:24:04 +00:00
Pascal Vizeli
398b684d8d Allow udev rules & make it persistent (#210)
* Install default to lib

* Create hmip-rfusb.rules

* Create etc-udev-rules.d.mount

* Update hassos-config

* Update configuration.md

* Update rauc.sh

* Add ln
2018-10-26 10:22:45 +00:00
Johannes Truschnigg
8ffcd3efb9 Implement basic ACPI shutdown support via busybox acpid (#209)
On systems where ACPI support is present as inidcated by the presence of
/proc/acpi (e.g. on OVA compatible hypervisors), we want to properly
shut down the system when the power button is pressed (or the hypervisor
simulates this kind of event to the guest machine that executes hassos).

This changeset provides the following basic infrastructure for this
feature to work as expected:

 * a systemd service to start acpid, if ACPI support can be assumed
 * an acpid configuration directory
 * a trivial shutdown script to invoke when a PWR event is registered
2018-10-26 10:16:16 +00:00
Pascal Vizeli
9af71ce9ea CLI: Update to version 7 2018-09-24 14:32:23 +00:00
Pascal Vizeli
e3432c373f Supervisor: Update to version 131 2018-09-24 14:31:54 +00:00
Pascal Vizeli
569a581445
Raspberry: Fix power issue 2018-09-24 16:30:35 +02:00
Pascal Vizeli
92dbff76e1 OS: bump version 1.11 2018-09-10 10:27:08 +00:00
Johannes Truschnigg
3ab6dd4cfe Do not assume index 0 for boot medium (#188)
When booting the HassOS VMDK appliance disk image on QEMU with OVMF UEFI
firmware, barebox numbers devices differently from other environments.

This patch makes the barebox `sh` implementation expand a pathname
wildcard at runtime, so that assigned disk indices != 0 will also work.

This fix introduces a potential (but most likely irrelevant)
bug/problem: If there is more than one disk connected to the system with
a matching name assigned, the wildcard will expand to two or more
pathnames, breaking the resulting `mount` command.
2018-09-10 10:25:22 +00:00
Pascal Vizeli
a0b432e072 Supervisor: Update to version 130 2018-09-10 10:24:57 +00:00
Pascal Vizeli
4fd8594af5
Raspberrypi: Performance on Raspberry Pi due to governor (#194)
* Raspberrypi: Performance on Raspberry Pi due to governor

* Update rpi0_w_defconfig

* Update rpi2_defconfig

* Update rpi3_64_defconfig

* Update rpi3_defconfig

* Update rpi_defconfig
2018-09-10 12:22:33 +02:00
Pascal Vizeli
115dbd0491 OS: bump version 1.10 2018-08-27 16:00:21 +00:00
Pascal Vizeli
6fdd9afe74 Documentation: Update Kernel infos 2018-08-27 15:59:47 +00:00
Pascal Vizeli
523996658b OVA: update kernel 4.14.67 2018-08-27 15:59:08 +00:00
Pascal Vizeli
6800ee84dc Raspberry: update kernel 4.14.66 2018-08-27 15:58:52 +00:00
Pascal Vizeli
d36d3557cb Raspberry: Bump Firmware for 4.14.66 2018-08-27 15:58:28 +00:00
Pascal Vizeli
b87b4f240a Supervisor: Update to version 127 2018-08-27 15:57:58 +00:00
Pascal Vizeli
51882ad715 OS: Update supervisor 123 2018-08-03 23:02:04 +00:00
Pascal Vizeli
20004ca451 OS: Bump version 1.9 2018-08-03 12:32:07 +00:00
Pascal Vizeli
ac0d1ed9af rpi: Update kernel & firmware 4.14.58 (#139) 2018-08-03 12:31:33 +00:00
Pascal Vizeli
2e9f5d04e2 OVA: Update kernel to 4.14.59 (#138) 2018-08-03 12:31:14 +00:00
Pascal Vizeli
0ecf4cb293 OVA: Add support for Aeotec Zstick (#132) 2018-08-03 12:30:59 +00:00
Pascal Vizeli
02126e0236 OS: Update supervisor 122 2018-08-03 12:30:41 +00:00
Pascal Vizeli
59cb3b4844 fix wireless settings (#124) 2018-07-19 08:53:46 +00:00
Pascal Vizeli
ee6399a8ba OVA: Fix serial support (#119)
OVA: Fix serial support
2018-07-18 14:07:34 +00:00
Pascal Vizeli
1541fcab8d Bump version 1.8 2018-07-18 12:54:21 +00:00
Pascal Vizeli
93dcc4a152 Add support for VIRTIO (#118)
* Add support for VIRTIO

* Update kernel.config
2018-07-18 12:43:19 +00:00
Pascal Vizeli
54dd3e3219 Allow more USB serial device on OVA (#115)
* Allow more USB serial device on OVA

* Update kernel.config
2018-07-18 12:43:05 +00:00
Robin
dca52c3026 Update network.md (#114)
Clarify that you are editing the file `my-network` which is what I understand from https://www.home-assistant.io/hassio/installation/
2018-07-18 12:42:00 +00:00
Pascal Vizeli
bfcbe120b4 Bump version 1.7 2018-07-15 19:43:44 +00:00
Pascal Vizeli
38a3af6a8d Fix prevent device tree on rpi (#107)
* Fix prevent device tree

* Update uboot-boot.sh

* Update rauc-hook

* Update rauc-hook
2018-07-15 19:43:18 +00:00
Pascal Vizeli
ed8f2489e0 Update OVA kernel to 4.14.55 (#108) 2018-07-15 19:43:04 +00:00
Pascal Vizeli
fa05217ef2 Raspberry Pi node of 64bit (#103) 2018-07-14 09:09:15 +00:00
DubhAd
f85402d781 Grammar and language tweaks (#101)
Some grammar and language tweaks
2018-07-14 09:09:05 +00:00
Pascal Vizeli
7e3f9d53b0 Bump version 1.6 2018-07-13 16:31:56 +00:00
Pascal Vizeli
e8f80669d7 Fix handling with resolv.conf (#99) 2018-07-13 16:31:32 +00:00
Pascal Vizeli
9113d711f2 Update rpi kernel 4.14.54 / Firmware / wifi (#98)
* Update rpi kernel 4.14.54 / Firmware / wifi

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

* Fix patch

* Update bluetooth-bcm43xx.mk

* Update bluetooth-bcm43xx.mk

* Update bluetooth-bcm43xx.mk
2018-07-13 16:31:11 +00:00
Pascal Vizeli
ac2cd55e37 Update Documentation (#95)
* Update deployment.md

* Update raspberrypi.md

* Update raspberrypi.md

* Update raspberrypi.md
2018-07-12 10:57:56 +00:00
Pascal Vizeli
0002d570d7 Fix boot menu (#94)
* Fix boot menu

* Update action
2018-07-10 12:57:22 +00:00
Pascal Vizeli
0a018c6c45 Bump version 1.5 2018-07-10 08:22:03 +00:00
Pascal Vizeli
173596eec5 Update bluetooth docs & add udev rules (#92)
* Update bluetooth docs

* add udev rules

* Add cmp to build

* Create bluetooth.md
2018-07-10 08:20:30 +00:00
Pascal Vizeli
bf69f2e974 Native bluetooth support (#91)
* Add bluez

* rpi firmware

* add rpi support

* Make packages from rpi

* Fix build

* Fix target

* persistent

* fix package

* Auto enable

* Fix parameter

* Fix rpi

* Fix done
2018-07-10 08:20:21 +00:00
Pascal Vizeli
6ddf29045e Check simlink (#90) 2018-07-08 12:20:28 +00:00
Pascal Vizeli
2d8aba9b37 Bump verison 1.4 2018-07-07 22:45:33 +00:00
Pascal Vizeli
aa7858ae44 Fix time on overlay (#88)
* Fix time on overlay

* Fix rights

* Fix timesync
2018-07-07 22:45:00 +00:00
Pascal Vizeli
0b05afb194 Add powersave config to network manager (#86)
* Add powersave config to network manager

* Update network.md
2018-07-07 08:46:47 +00:00
Pascal Vizeli
ab60a8bc55 Bump version to 1.3 / production 2018-07-06 21:58:06 +00:00
Pascal Vizeli
450826b6bd Some cleanup (#84) 2018-07-06 21:54:38 +00:00
Pascal Vizeli
14f406ad6a Reset if we can't boot (#83)
* Update uboot-boot.sh

* Update uboot-boot.sh
2018-07-06 21:54:17 +00:00
Pascal Vizeli
1d74fcb91d 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
2018-07-06 21:53:58 +00:00
Pascal Vizeli
13d0aaac0e Update supervisor 115 (#82) 2018-07-06 21:53:43 +00:00
Pascal Vizeli
1e1f36f275 Update CLI / Supervisor (#71) 2018-07-06 21:53:37 +00:00
Pascal Vizeli
36251114d8 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
2018-07-06 21:51:41 +00:00
Gabriel Oliveira
5e10559144 Fix config documentation closing tags (#80) 2018-07-06 21:51:25 +00:00
Pascal Vizeli
0e7f516730 Fix /usr/sbin/hassos-cli is not in /etc/shells (#78)
* Update rootfs-layer.sh

* Update rootfs-layer.sh

* Update rootfs-layer.sh
2018-07-06 21:51:07 +00:00
cogneato
b75fc91f8b Update configuration.md (#50)
* Update configuration.md

Clearing up documentation, grammar fixes.

* changed known_hosts to authorized_keys

* Update configuration.md
2018-07-03 06:02:40 +00:00
cogneato
1b4d33d37d Update network.md (#51)
* Update network.md

Clearing up network documentation, grammar

* Update network.md
2018-07-03 06:02:35 +00:00
Pascal Vizeli
6fdd892aaf Fix persistent log (#70) 2018-07-02 22:01:35 +00:00
Pascal Vizeli
90dc5b54c0 Change chmod of network connection files from fat32 (#69) 2018-07-02 21:04:01 +00:00
Pascal Vizeli
5b68cf097a Fix update script with uptime (#68) 2018-07-02 20:52:33 +00:00
Pascal Vizeli
b50df06358
Bump version 1.2 2018-07-02 21:54:41 +02:00
Pascal Vizeli
84500a88d1 Fix docker warning on rpi (#67) 2018-07-02 19:53:12 +00:00
Pascal Vizeli
854202a1b8 Fix label name in test script (#66)
* Fix label name in test script

* Update hassos-config
2018-07-02 19:53:03 +00:00
Pascal Vizeli
e51a0811a1 Fix spell in journald script (#65) 2018-07-02 19:52:52 +00:00
Pascal Vizeli
15fc1f447e 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
2018-07-02 19:52:40 +00:00
Pascal Vizeli
26b5f910b5 Map /etc/machine-id into supervisor/cli (#60)
* Map /etc/machine-id into supervisor/cli

* Update hassos-cli

* Update hassos-supervisor
2018-07-02 19:52:30 +00:00
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
92 changed files with 833 additions and 102 deletions

View File

@ -0,0 +1,12 @@
# Bluetooth
We support `bluetoothctl` on host. Later we want also support bluetooth trought UI.
All pairs and settings are persistent over reboots and updates.
If you want setup bluetooth on host, use the *bluetoothctl* utility.
## Scan devices
```
[bluetooth]# scan on
```

View File

@ -0,0 +1,16 @@
# 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:
- OS: Linux 64bit
- UEFI boot
- min. 1GB RAM
- 2x vcpu
- 1x Network

View File

@ -1,5 +1,23 @@
# Raspberry PI
Supported Hardware:
| Device | Board |
|--------|-----------|
| Raspberry Pi A+/B/B+| rpi |
| Raspberry Pi Zero | rpi |
| Raspberry Pi Zero W | rpi0-w |
| Raspberry Pi 2 B | rpi2 |
| Raspberry Pi 3 B/B+ | rpi3 / rpi3-64 |
## Limitation 64bit
The 64bit version is under development by RPi-Team. It work very nice but it could have some impacts. Actual we see that the SDcard access with ext4 are a bit slower than on 32bit.
## Serial console
For access to terminal over serial console, add `console=ttyAMA0,115200` to `cmdline.txt` and `enable_uart=1` into `config.txt`.
## Tweaks
If you don't need bluetooth, disabled it with add `dtoverlay=pi3-disable-bt` into `config.txt`.

View File

@ -2,18 +2,25 @@
## Automatic
You can format a USB stick with FAT32 and name it with `hassos-config`. The layout could be look like:
You can use an 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`. Alternative you can create a `CONFIG` folder inside boot partition. Use the following directory structure within the USB drive:
```
network/
modules/
known_hosts
udev/
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`.
- 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 `udev` folder is for udev rules 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 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
@ -25,5 +32,15 @@ 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].
### Udev rules
The udev rules folder `/etc/udev/rules.d` is persistent and you can add your configuration files there.
### 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
[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

@ -21,3 +21,7 @@ The branch `dev` ist the actual development branch and from there we never make
version from they we build a beta release.
If we create a new staging/productive release, we create a new branch `rel-{MAJOR}`. They will be used for the hole cycle of this release.
## Upload release files
We use [ghr](https://github.com/tcnksm/ghr) to upload files to our repository. A binary version is available inside `scripts`.

7
Documentation/kernel.md Normal file
View File

@ -0,0 +1,7 @@
# Kernel Version
| Board | Version |
|-------|---------|
| Open Virtual Applicance | 4.14.78 |
| Raspberry Pi | 4.14.78 |

97
Documentation/network.md Normal file
View File

@ -0,0 +1,97 @@
# Network
HassOS uses NetworkManager to control the host network. In future releases, you will be able to 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
You can also read the [Official Manual][keyfile] or there are a lot of examples accross internet. The system is read only, if you don't want the IP address to change every boot, you should set the uuid property with a generic [UUID4][uuid]. Inside the `network` folder create the file `my-network` and add the appropriate contents below:
### 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
uuid=d55162b4-6152-4310-9312-8f4c54d86afa
type=802-3-ethernet
[ipv4]
method=auto
[ipv6]
addr-gen-mode=stable-privacy
method=auto
```
### Wireless WPA/PSK
```ini
[connection]
id=hassos-network
uuid=72111c67-4a5d-4d5c-925e-f8ee26efb3c3
type=802-11-wireless
[802-11-wireless]
mode=infrastructure
ssid=MY_SSID
[802-11-wireless-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;
```
## 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/

View File

@ -1,3 +1,4 @@
source "$BR2_EXTERNAL_HASSOS_PATH/package/hassos/Config.in"
source "$BR2_EXTERNAL_HASSOS_PATH/package/libapparmor/Config.in"
source "$BR2_EXTERNAL_HASSOS_PATH/package/apparmor/Config.in"
source "$BR2_EXTERNAL_HASSOS_PATH/package/bluetooth-bcm43xx/Config.in"

View File

@ -1 +1,18 @@
CONFIG_EFI_STUB=y
CONFIG_EFI_STUB=y
CONFIG_USB_SERIAL=y
CONFIG_USB_SERIAL_GENERIC=y
CONFIG_USB_SERIAL_SIMPLE=m
CONFIG_USB_SERIAL_CP210X=m
CONFIG_USB_SERIAL_FTDI_SIO=m
CONFIG_USB_SERIAL_PL2303=m
CONFIG_USB_ACM=m
CONFIG_VIRTIO=y
CONFIG_VIRTIO_PCI=y
CONFIG_VIRTIO_NET=y
CONFIG_VIRTIO_BALLOON=m
CONFIG_VIRTIO_INPUT=m
CONFIG_VIRTIO_BLK=m
CONFIG_USB_XHCI_HCD=y

View File

@ -0,0 +1 @@
CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y

View File

@ -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

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
# 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"
@ -11,7 +11,8 @@ setenv bootargs_b "root=PARTUUID=a3ec664e-32ce-4665-95ea-7ae90ce9aa20 rootfstype
# Preserve origin bootargs
setenv bootargs_rpi
fdt addr ${fdt_addr}
setenv fdt_org ${fdt_addr}
fdt addr ${fdt_org}
fdt get value bootargs_rpi /chosen bootargs
setenv bootargs
@ -35,6 +36,7 @@ for BOOT_SLOT in "${BOOT_ORDER}"; do
fi
done
setenv fdt_addr
if test -n "${bootargs}"; then
saveenv
else
@ -48,4 +50,7 @@ fi
echo "Loading kernel"
run load_kernel
echo " Starting kernel"
booti ${kernel_addr_r} - ${fdt_addr}
booti ${kernel_addr_r} - ${fdt_org}
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
# 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"
@ -11,7 +11,8 @@ setenv bootargs_b "root=PARTUUID=a3ec664e-32ce-4665-95ea-7ae90ce9aa20 rootfstype
# Preserve origin bootargs
setenv bootargs_rpi
fdt addr ${fdt_addr}
setenv fdt_org ${fdt_addr}
fdt addr ${fdt_org}
fdt get value bootargs_rpi /chosen bootargs
setenv bootargs
@ -35,6 +36,7 @@ for BOOT_SLOT in "${BOOT_ORDER}"; do
fi
done
setenv fdt_addr
if test -n "${bootargs}"; then
saveenv
else
@ -48,4 +50,7 @@ fi
echo "Loading kernel"
run load_kernel
echo " Starting kernel"
bootz ${kernel_addr_r} - ${fdt_addr}
bootz ${kernel_addr_r} - ${fdt_org}
echo "Fails on boot"
reset

View File

@ -3,6 +3,6 @@
global linux.bootargs.dyn.root="root=PARTUUID=8d3d53e3-6d49-4c38-8349-aff6859e82fd rootfstype=squashfs ro"
mkdir -p /mnt/system
mount -t ext4 /dev/disk0.hassos-kernel0 /mnt/system
mount -t ext4 /dev/disk*.hassos-kernel0 /mnt/system
global bootm.image="/mnt/system/bzImage"

View File

@ -3,6 +3,6 @@
global linux.bootargs.dyn.root="root=PARTUUID=a3ec664e-32ce-4665-95ea-7ae90ce9aa20 rootfstype=squashfs ro"
mkdir -p /mnt/system
mount -t ext4 /dev/disk0.hassos-kernel1 /mnt/system
mount -t ext4 /dev/disk*.hassos-kernel1 /mnt/system
global bootm.image="/mnt/system/bzImage"

View File

@ -1,3 +1,5 @@
#!/bin/sh
global linux.bootargs.bootchooser="bootchooser.active=A"
boot system0

View File

@ -1,3 +1,5 @@
#!/bin/sh
global linux.bootargs.bootchooser="bootchooser.active=B"
boot system1

View File

@ -398,7 +398,7 @@ CONFIG_SHOWKEY=y
CONFIG_AWK=y
CONFIG_FEATURE_AWK_LIBM=y
CONFIG_FEATURE_AWK_GNU_EXTENSIONS=y
# CONFIG_CMP is not set
CONFIG_CMP=y
# CONFIG_DIFF is not set
# CONFIG_FEATURE_DIFF_LONG_OPTIONS is not set
# CONFIG_FEATURE_DIFF_DIR is not set

View File

@ -18,7 +18,7 @@ BR2_ROOTFS_POST_IMAGE_SCRIPT="$(BR2_EXTERNAL_HASSOS_PATH)/board/ova/post-image.s
BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_EXTERNAL_HASSOS_PATH)/board/ova"
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_VERSION=y
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.14.41"
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.14.78"
BR2_LINUX_KERNEL_DEFCONFIG="x86_64"
BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/kernel.config $(BR2_EXTERNAL_HASSOS_PATH)/board/ova/kernel.config"
BR2_LINUX_KERNEL_LZ4=y
@ -40,6 +40,10 @@ BR2_PACKAGE_AVAHI=y
# BR2_PACKAGE_AVAHI_AUTOIPD is not set
BR2_PACKAGE_AVAHI_DAEMON=y
BR2_PACKAGE_AVAHI_LIBDNSSD_COMPATIBILITY=y
BR2_PACKAGE_BLUEZ5_UTILS=y
BR2_PACKAGE_BLUEZ5_UTILS_CLIENT=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
@ -73,12 +77,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="138"
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="7"
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"

View File

@ -21,9 +21,9 @@ BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_EXTERNAL_HASSOS_PATH)/board/raspberrypi/rpi0-
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_GIT=y
BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://github.com/raspberrypi/linux"
BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="rpi-4.14.y"
BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="961aa2356a25ad04528e91761e7081a25dc983dc"
BR2_LINUX_KERNEL_DEFCONFIG="bcmrpi"
BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/kernel.config"
BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/kernel.config $(BR2_EXTERNAL_HASSOS_PATH)/board/raspberrypi/kernel.config"
BR2_LINUX_KERNEL_LZ4=y
BR2_LINUX_KERNEL_DTS_SUPPORT=y
BR2_LINUX_KERNEL_INTREE_DTS_NAME="bcm2708-rpi-0-w"
@ -48,6 +48,10 @@ BR2_PACKAGE_AVAHI=y
# BR2_PACKAGE_AVAHI_AUTOIPD is not set
BR2_PACKAGE_AVAHI_DAEMON=y
BR2_PACKAGE_AVAHI_LIBDNSSD_COMPATIBILITY=y
BR2_PACKAGE_BLUEZ5_UTILS=y
BR2_PACKAGE_BLUEZ5_UTILS_CLIENT=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
@ -82,13 +86,14 @@ 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="138"
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="7"
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"
BR2_PACKAGE_APPARMOR=y
BR2_PACKAGE_BLUETOOTH_BCM43XX=y

View File

@ -21,9 +21,9 @@ BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_EXTERNAL_HASSOS_PATH)/board/raspberrypi/rpi2"
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_GIT=y
BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://github.com/raspberrypi/linux"
BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="rpi-4.14.y"
BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="961aa2356a25ad04528e91761e7081a25dc983dc"
BR2_LINUX_KERNEL_DEFCONFIG="bcm2709"
BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/kernel.config"
BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/kernel.config $(BR2_EXTERNAL_HASSOS_PATH)/board/raspberrypi/kernel.config"
BR2_LINUX_KERNEL_LZ4=y
BR2_LINUX_KERNEL_DTS_SUPPORT=y
BR2_LINUX_KERNEL_INTREE_DTS_NAME="bcm2709-rpi-2-b"
@ -47,6 +47,10 @@ BR2_PACKAGE_AVAHI=y
# BR2_PACKAGE_AVAHI_AUTOIPD is not set
BR2_PACKAGE_AVAHI_DAEMON=y
BR2_PACKAGE_AVAHI_LIBDNSSD_COMPATIBILITY=y
BR2_PACKAGE_BLUEZ5_UTILS=y
BR2_PACKAGE_BLUEZ5_UTILS_CLIENT=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
@ -81,12 +85,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="138"
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="7"
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"

View File

@ -21,9 +21,9 @@ BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_EXTERNAL_HASSOS_PATH)/board/raspberrypi/rpi3-
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_GIT=y
BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://github.com/raspberrypi/linux"
BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="rpi-4.14.y"
BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="961aa2356a25ad04528e91761e7081a25dc983dc"
BR2_LINUX_KERNEL_DEFCONFIG="bcmrpi3"
BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/kernel.config"
BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/kernel.config $(BR2_EXTERNAL_HASSOS_PATH)/board/raspberrypi/kernel.config"
BR2_LINUX_KERNEL_LZ4=y
BR2_LINUX_KERNEL_DTS_SUPPORT=y
BR2_LINUX_KERNEL_INTREE_DTS_NAME="broadcom/bcm2710-rpi-3-b broadcom/bcm2837-rpi-3-b broadcom/bcm2710-rpi-3-b-plus"
@ -35,8 +35,8 @@ BR2_PACKAGE_JQ=y
BR2_PACKAGE_E2FSPROGS=y
BR2_PACKAGE_E2FSPROGS_RESIZE2FS=y
BR2_PACKAGE_SQUASHFS=y
BR2_PACKAGE_RPI_WIFI_FIRMWARE=y
BR2_PACKAGE_RPI_FIRMWARE=y
BR2_PACKAGE_RPI_WIFI_FIRMWARE=y
BR2_PACKAGE_GPTFDISK=y
BR2_PACKAGE_GPTFDISK_SGDISK=y
BR2_PACKAGE_UBOOT_TOOLS=y
@ -48,6 +48,10 @@ BR2_PACKAGE_AVAHI=y
# BR2_PACKAGE_AVAHI_AUTOIPD is not set
BR2_PACKAGE_AVAHI_DAEMON=y
BR2_PACKAGE_AVAHI_LIBDNSSD_COMPATIBILITY=y
BR2_PACKAGE_BLUEZ5_UTILS=y
BR2_PACKAGE_BLUEZ5_UTILS_CLIENT=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
@ -82,13 +86,14 @@ 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="138"
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="7"
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"
BR2_PACKAGE_APPARMOR=y
BR2_PACKAGE_BLUETOOTH_BCM43XX=y

View File

@ -21,9 +21,9 @@ BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_EXTERNAL_HASSOS_PATH)/board/raspberrypi/rpi3"
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_GIT=y
BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://github.com/raspberrypi/linux"
BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="rpi-4.14.y"
BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="961aa2356a25ad04528e91761e7081a25dc983dc"
BR2_LINUX_KERNEL_DEFCONFIG="bcm2709"
BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/kernel.config"
BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/kernel.config $(BR2_EXTERNAL_HASSOS_PATH)/board/raspberrypi/kernel.config"
BR2_LINUX_KERNEL_LZ4=y
BR2_LINUX_KERNEL_DTS_SUPPORT=y
BR2_LINUX_KERNEL_INTREE_DTS_NAME="bcm2710-rpi-3-b bcm2710-rpi-3-b-plus bcm2710-rpi-cm3"
@ -35,8 +35,8 @@ BR2_PACKAGE_JQ=y
BR2_PACKAGE_E2FSPROGS=y
BR2_PACKAGE_E2FSPROGS_RESIZE2FS=y
BR2_PACKAGE_SQUASHFS=y
BR2_PACKAGE_RPI_WIFI_FIRMWARE=y
BR2_PACKAGE_RPI_FIRMWARE=y
BR2_PACKAGE_RPI_WIFI_FIRMWARE=y
BR2_PACKAGE_GPTFDISK=y
BR2_PACKAGE_GPTFDISK_SGDISK=y
BR2_PACKAGE_UBOOT_TOOLS=y
@ -48,6 +48,10 @@ BR2_PACKAGE_AVAHI=y
# BR2_PACKAGE_AVAHI_AUTOIPD is not set
BR2_PACKAGE_AVAHI_DAEMON=y
BR2_PACKAGE_AVAHI_LIBDNSSD_COMPATIBILITY=y
BR2_PACKAGE_BLUEZ5_UTILS=y
BR2_PACKAGE_BLUEZ5_UTILS_CLIENT=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
@ -82,13 +86,14 @@ 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="138"
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="7"
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"
BR2_PACKAGE_APPARMOR=y
BR2_PACKAGE_BLUETOOTH_BCM43XX=y

View File

@ -21,9 +21,9 @@ BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_EXTERNAL_HASSOS_PATH)/board/raspberrypi/rpi"
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_GIT=y
BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://github.com/raspberrypi/linux"
BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="rpi-4.14.y"
BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="961aa2356a25ad04528e91761e7081a25dc983dc"
BR2_LINUX_KERNEL_DEFCONFIG="bcmrpi"
BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/kernel.config"
BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/kernel.config $(BR2_EXTERNAL_HASSOS_PATH)/board/raspberrypi/kernel.config"
BR2_LINUX_KERNEL_LZ4=y
BR2_LINUX_KERNEL_DTS_SUPPORT=y
BR2_LINUX_KERNEL_INTREE_DTS_NAME="bcm2708-rpi-b bcm2708-rpi-b-plus bcm2708-rpi-cm"
@ -47,6 +47,10 @@ BR2_PACKAGE_AVAHI=y
# BR2_PACKAGE_AVAHI_AUTOIPD is not set
BR2_PACKAGE_AVAHI_DAEMON=y
BR2_PACKAGE_AVAHI_LIBDNSSD_COMPATIBILITY=y
BR2_PACKAGE_BLUEZ5_UTILS=y
BR2_PACKAGE_BLUEZ5_UTILS_CLIENT=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
@ -81,12 +85,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="138"
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="7"
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"

View File

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

View File

@ -1,5 +1,8 @@
#!/bin/sh
##
# Hooks
# Handle boot hocks
if [ "${RAUC_SLOT_CLASS}" = "boot" ]; then
if [ "${1}" = "slot-post-install" ]; then
@ -9,4 +12,17 @@ if [ "${RAUC_SLOT_CLASS}" = "boot" ]; then
fi
fi
##
# Fixups
# timesyncd
if [ -L /var/lib/systemd/timesync ]; then
rm -f /var/lib/systemd/timesync
fi
# u-boot first stage device tree
if [ -e /usr/sbin/fw_setenv ]; then
fw_setenv fdt_addr
fi
exit 0

View File

@ -0,0 +1,6 @@
config BR2_PACKAGE_BLUETOOTH_BCM43XX
bool "bluetooth bcm43xx"
depends on BR2_PACKAGE_BLUEZ5_UTILS_CLIENT
select BR2_PACKAGE_BLUEZ5_UTILS_DEPRECATED
help
Install bluetooth for bcm43xx.

View File

@ -0,0 +1,18 @@
#!/bin/sh
HCIATTACH=/usr/bin/hciattach
SERIAL=`cat /proc/device-tree/serial-number | cut -c9-`
B1=`echo $SERIAL | cut -c3-4`
B2=`echo $SERIAL | cut -c5-6`
B3=`echo $SERIAL | cut -c7-8`
BDADDR=`printf b8:27:eb:%02x:%02x:%02x $((0x$B1 ^ 0xaa)) $((0x$B2 ^ 0xaa)) $((0x$B3 ^ 0xaa))`
if [ "$(cat /proc/device-tree/aliases/uart0)" = "$(cat /proc/device-tree/aliases/serial1)" ] ; then
if [ "$(wc -c /proc/device-tree/soc/gpio@7e200000/uart0_pins/brcm\,pins | cut -f 1 -d ' ')" = "16" ] ; then
$HCIATTACH /dev/serial1 bcm43xx 3000000 flow - $BDADDR
else
$HCIATTACH /dev/serial1 bcm43xx 921600 noflow - $BDADDR
fi
else
$HCIATTACH /dev/serial1 bcm43xx 460800 noflow - $BDADDR
fi

View File

@ -0,0 +1,31 @@
################################################################################
#
# Bluetooth BCM43xx
#
################################################################################
BLUETOOTH_BCM43XX_VERSION = 1.0.0
BLUETOOTH_BCM43XX_LICENSE = Apache License 2.0
BLUETOOTH_BCM43XX_LICENSE_FILES = $(BR2_EXTERNAL_HASSOS_PATH)/../LICENSE
BLUETOOTH_BCM43XX_SITE = $(BR2_EXTERNAL_HASSOS_PATH)/package/bluetooth-bcm43xx
BLUETOOTH_BCM43XX_SITE_METHOD = local
define BLUETOOTH_BCM43XX_BUILD_CMDS
curl -o $(@D)/BCM43430A1.hcd https://raw.githubusercontent.com/RPi-Distro/bluez-firmware/ade2bae1aaaebede09abb8fb546f767a0e4c7804/broadcom/BCM43430A1.hcd
curl -o $(@D)/BCM4345C0.hcd https://raw.githubusercontent.com/RPi-Distro/bluez-firmware/ade2bae1aaaebede09abb8fb546f767a0e4c7804/broadcom/BCM4345C0.hcd
endef
define BLUETOOTH_BCM43XX_INSTALL_TARGET_CMDS
$(INSTALL) -d $(TARGET_DIR)/etc/systemd/system/hassos-hardware.target.wants
$(INSTALL) -m 0755 $(@D)/bluetooth-bcm43xx $(TARGET_DIR)/usr/sbin/
$(INSTALL) -m 0644 $(@D)/bluetooth-bcm43xx.service $(TARGET_DIR)/usr/lib/systemd/system/
ln -fs /usr/lib/systemd/system/bluetooth-bcm43xx.service $(TARGET_DIR)/etc/systemd/system/hassos-hardware.target.wants/
$(INSTALL) -d $(TARGET_DIR)/lib/firmware/brcm
$(INSTALL) -m 0644 $(@D)/*.hcd $(TARGET_DIR)/lib/firmware/brcm/
$(INSTALL) -d $(TARGET_DIR)/usr/lib/udev/rules.d
$(INSTALL) -m 0644 $(@D)/bluetooth-bcm43xx.rules $(TARGET_DIR)/usr/lib/udev/rules.d/
endef
$(eval $(generic-package))

View File

@ -0,0 +1,22 @@
KERNEL=="ttyAMA[01]", PROGRAM="/bin/sh -c '\
ALIASES=/proc/device-tree/aliases; \
if cmp -s $ALIASES/uart0 $ALIASES/serial0; then \
echo 0;\
elif cmp -s $ALIASES/uart0 $ALIASES/serial1; then \
echo 1; \
else \
exit 1; \
fi\
'", SYMLINK+="serial%c"
KERNEL=="ttyS0", PROGRAM="/bin/sh -c '\
ALIASES=/proc/device-tree/aliases; \
if cmp -s $ALIASES/uart1 $ALIASES/serial0; then \
echo 0; \
elif cmp -s $ALIASES/uart1 $ALIASES/serial1; then \
echo 1; \
else \
exit 1; \
fi \
'", SYMLINK+="serial%c"

View File

@ -0,0 +1,12 @@
[Unit]
Description=Bluetooth for BCM43xx
Before=bluetooth.service
After=dev-ttyAMA0.device
ConditionPathIsDirectory=/proc/device-tree/soc/gpio@7e200000/bt_pins
[Service]
Type=forking
ExecStart=/usr/sbin/bluetooth-bcm43xx
[Install]
WantedBy=hassos-hardware.target

View File

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

View File

@ -0,0 +1,7 @@
#!/bin/sh
# This script is exec()d by acpid when an ACPI event signals the power button
# to have been pressed.
echo "System power button was pressed - shutting down..."
exec /bin/systemctl poweroff

View File

@ -0,0 +1,2 @@
[Policy]
AutoEnable=true

View File

@ -1 +1 @@
/run/NetworkManager/resolv.conf
/run/resolv.conf

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -0,0 +1 @@
/usr/lib/systemd/system/etc-udev-rules.d.mount

View File

@ -0,0 +1 @@
/usr/lib/systemd/system/root-.ssh.mount

View File

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

View File

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

View File

@ -0,0 +1 @@
/usr/lib/systemd/system/busybox-acpid.service

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

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

View File

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

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

View File

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

View File

@ -0,0 +1,2 @@
[Unit]
RequiresMountsFor=/var/lib/systemd

View File

@ -0,0 +1,2 @@
[Service]
DynamicUser=no

View File

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

View File

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

View File

@ -0,0 +1,12 @@
[Unit]
Description=acpid (busybox)
RefuseManualStop=true
ConditionPathIsDirectory=/proc/acpi
[Service]
Type=simple
ExecStart=/sbin/acpid -d
[Install]
After=local-fs.target
WantedBy=multi-user.target

View File

@ -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]

View File

@ -0,0 +1,14 @@
[Unit]
Description=Udev persistent rules.d
Requires=mnt-overlay.mount
After=mnt-overlay.mount
Before=systemd-udevd.service hassos-config.service
[Mount]
What=/mnt/overlay/etc/udev/rules.d
Where=/etc/udev/rules.d
Type=None
Options=bind
[Install]
WantedBy=hassos-bind.target

View File

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

View File

@ -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

View File

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

View File

@ -2,7 +2,7 @@
Description=HassOS config partition
[Mount]
What=LABEL=hassos-config
What=LABEL=CONFIG
Where=/mnt/config
Type=auto
Options=ro

View File

@ -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

View File

@ -0,0 +1,14 @@
[Unit]
Description=Bluetooth persistent state
Requires=mnt-overlay.mount
After=mnt-overlay.mount
Before=bluetooth.service
[Mount]
What=/mnt/overlay/var/lib/bluetooth
Where=/var/lib/bluetooth
Type=None
Options=bind
[Install]
WantedBy=hassos-bind.target

View File

@ -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

View File

@ -0,0 +1 @@
ACTION=="add", ATTRS{idVendor}=="1b1f", ATTRS{idProduct}=="c020", RUN+="/sbin/modprobe cp210x" RUN+="/bin/sh -c 'echo 1b1f c020 >/sys/bus/usb-serial/drivers/cp210x/new_id'"

View File

@ -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}

View File

@ -1,54 +1,98 @@
#!/bin/sh
# Mount config folder
systemctl start mnt-config.mount
if ! systemctl -q is-active mnt-config.mount; then
BOOT_CONFIG="/mnt/boot/CONFIG"
USB_CONFIG="/mnt/config"
CONFIG_DIR=""
USE_USB=0
# Check and mount usb CONFIG to folder
if findfs LABEL="CONFIG" > /dev/null 2>&1; then
echo "[Info] Use USB stick for import CONFIG"
systemctl start mnt-config.mount
if ! systemctl -q is-active mnt-config.mount; then
echo "[Error] Can't mount config partition"
exit 1
fi
USE_USB=1
CONFIG_DIR=${USB_CONFIG}
fi
# Use boot CONFIG folder
if [ ${USE_USB} = 0 ] && [ -d ${BOOT_CONFIG} ]; then
echo "[Info] Use boot partition for import CONFIG"
CONFIG_DIR=${BOOT_CONFIG}
elif [ ${USE_USB} = 0 ]; then
echo "[Warning] No config partition found"
exit 0
fi
##
# NetworkManager
if [ -d /mnt/config/network ]; then
if [ -d "${CONFIG_DIR}/network" ]; then
echo "[Info] Update NetworkManager connections!"
rm -rf /etc/NetworkManager/system-connections/*
cp -f /mnt/config/network/* /etc/NetworkManager/system-connections/
cp -f ${CONFIG_DIR}/network/* /etc/NetworkManager/system-connections/
chmod 600 /etc/NetworkManager/system-connections/*
nmcli con reload
nmcli con reload > /dev/null 2>&1
fi
##
# Modules
if [ -d /mnt/config/modules ]; then
if [ -d "${CONFIG_DIR}/modules" ]; then
echo "[Info] Update Modules configuration!"
rm -rf /etc/modules-load.d/*
cp -f /mnt/config/modules/* /etc/modules-load.d/*
cp -f ${CONFIG_DIR}/modules/* /etc/modules-load.d/*
fi
##
# Udev
if [ -d "${CONFIG_DIR}/udev" ]; then
echo "[Info] Update Udev configuration!"
rm -rf /etc/udev/rules.d/*
cp -f ${CONFIG_DIR}/udev/* /etc/udev/rules.d/*
fi
##
# SSH know hosts
if [ -f /mnt/config/known_hosts ]; then
echo "[Info] Update SSH known_hosts!"
if [ -f "${CONFIG_DIR}/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 ${CONFIG_DIR}/authorized_keys /root/.ssh/authorized_keys
chmod 600 /root/.ssh/authorized_keys
systemctl start dropbear
systemctl start dropbear > /dev/null 2>&1
else
rm -f /root/.ssh/known_hosts
systemctl stop dropbear
echo "[Info] Stop SSH debug access"
rm -f /root/.ssh/authorized_keys
systemctl stop dropbear > /dev/null 2>&1
fi
##
# Firmware update
if ls /mnt/config/*.raucb > /dev/null; then
# Firmware update / Only USB
UPTIME=$(awk '{printf "%0.f", $1}' /proc/uptime)
if ls ${USB_CONFIG}/*.raucb > /dev/null 2>&1 && [ ${UPTIME} -ge 180 ]; then
echo "[Info] Performe a firmware update"
rauc_filename=$(ls /mnt/config/*.raucb | head -n 1)
rauc install /mnt/config/$rauc_filename
rauc_filename=$(ls ${USB_CONFIG}/*.raucb | head -n 1)
if rauc install "${rauc_filename}"; then
echo "[Info] Firmware update success"
systemctl reboot
else
echo "[Error] Firmware update fails"
fi
fi
# Cleanup config partition
systemctl stop mnt-config.mount
if [ ${USE_USB} = 1 ]; then
systemctl stop mnt-config.mount
else
rm -rf ${BOOT_CONFIG}
fi

View File

@ -0,0 +1,21 @@
#!/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 ####
# 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

View File

@ -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}
}

View File

@ -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

View File

@ -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
@ -31,4 +30,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
}

View File

@ -16,7 +16,7 @@ index 4854deae03..3a9f21e877 100644
@@ -1,2 +1,2 @@
# Locally computed
-sha256 ea451834e20136d249661e0ed7d1fdfa309249d233a387f44dd6c3b746a454c6 rpi-firmware-36f991382326907419f64917624427e59fd8e4a0.tar.gz
+sha256 f2b0f8ec8e73f8fa399f2c72c574ea5fe7fa57ab6151b139842a3ba783cd2140 rpi-firmware-a46b1f9521229ec26a1377aab7d013df1ade2791.tar.gz
+sha256 d9295b794e8a93a9bb8b5fe8cf612fea7f4a22f4a8abbbd3f56a20c96e63428a rpi-firmware-45c6ee3cd7f36a2376b691affbc02dfc689b8056.tar.gz
diff --git a/package/rpi-firmware/rpi-firmware.mk b/package/rpi-firmware/rpi-firmware.mk
index eab4c5d307..cb2e9d6cd8 100644
--- a/package/rpi-firmware/rpi-firmware.mk
@ -26,7 +26,7 @@ index eab4c5d307..cb2e9d6cd8 100644
################################################################################
-RPI_FIRMWARE_VERSION = 36f991382326907419f64917624427e59fd8e4a0
+RPI_FIRMWARE_VERSION = a46b1f9521229ec26a1377aab7d013df1ade2791
+RPI_FIRMWARE_VERSION = 45c6ee3cd7f36a2376b691affbc02dfc689b8056
RPI_FIRMWARE_SITE = $(call github,raspberrypi,firmware,$(RPI_FIRMWARE_VERSION))
RPI_FIRMWARE_LICENSE = BSD-3-Clause
RPI_FIRMWARE_LICENSE_FILES = boot/LICENCE.broadcom

View File

@ -0,0 +1,43 @@
From 22a39b0058643c9aebdaf3ebc42a1ea30a33522f Mon Sep 17 00:00:00 2001
From: Pascal Vizeli <pvizeli@syshack.ch>
Date: Sat, 30 Jun 2018 21:10:14 +0000
Subject: [PATCH 1/1] NetworkManager_wpa-supplicant
Signed-off-by: Pascal Vizeli <pvizeli@syshack.ch>
---
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

View File

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

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

@ -0,0 +1,45 @@
From 30af519c8cc4b4c46dfb4ee42adda49a81dbc475 Mon Sep 17 00:00:00 2001
From: Pascal Vizeli <pvizeli@syshack.ch>
Date: Thu, 12 Jul 2018 21:33:50 +0000
Subject: [PATCH 1/1] rpi: use latest wifi driver
Signed-off-by: Pascal Vizeli <pvizeli@syshack.ch>
---
package/rpi-wifi-firmware/rpi-wifi-firmware.hash | 2 +-
package/rpi-wifi-firmware/rpi-wifi-firmware.mk | 6 +++---
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/package/rpi-wifi-firmware/rpi-wifi-firmware.hash b/package/rpi-wifi-firmware/rpi-wifi-firmware.hash
index bc0d7c8b02..946a55fac0 100644
--- a/package/rpi-wifi-firmware/rpi-wifi-firmware.hash
+++ b/package/rpi-wifi-firmware/rpi-wifi-firmware.hash
@@ -1,3 +1,3 @@
# Locally calculated
-sha256 beade89c5c072158b6cf18cf741d2695980fd6a4533dab3897bebf90c0631a30 rpi-wifi-firmware-18d7c931aff0a8a78360b9b9eaeb15d1224fb907.tar.gz
+sha256 163fc0629d9ddcf7b729fefd3129f8d4f43b8fc912fa487b6d8bc57cf57232a7 rpi-wifi-firmware-86e88fbf0345da49555d0ec34c80b4fbae7d0cd3.tar.gz
sha256 b16056fc91b82a0e3e8de8f86c2dac98201aa9dc3cbd33e8d38f1b087fcec30d LICENCE.broadcom_bcm43xx
diff --git a/package/rpi-wifi-firmware/rpi-wifi-firmware.mk b/package/rpi-wifi-firmware/rpi-wifi-firmware.mk
index 32dd3e519b..248b0a2621 100644
--- a/package/rpi-wifi-firmware/rpi-wifi-firmware.mk
+++ b/package/rpi-wifi-firmware/rpi-wifi-firmware.mk
@@ -4,14 +4,14 @@
#
################################################################################
-RPI_WIFI_FIRMWARE_VERSION = 18d7c931aff0a8a78360b9b9eaeb15d1224fb907
-RPI_WIFI_FIRMWARE_SITE = $(call github,LibreELEC,brcmfmac_sdio-firmware-rpi,$(RPI_WIFI_FIRMWARE_VERSION))
+RPI_WIFI_FIRMWARE_VERSION = 86e88fbf0345da49555d0ec34c80b4fbae7d0cd3
+RPI_WIFI_FIRMWARE_SITE = $(call github,RPi-Distro,firmware-nonfree,$(RPI_WIFI_FIRMWARE_VERSION))
RPI_WIFI_FIRMWARE_LICENSE = PROPRIETARY
RPI_WIFI_FIRMWARE_LICENSE_FILES = LICENCE.broadcom_bcm43xx
define RPI_WIFI_FIRMWARE_INSTALL_TARGET_CMDS
$(INSTALL) -d $(TARGET_DIR)/lib/firmware/brcm
- $(INSTALL) -m 0644 $(@D)/firmware/brcm/brcmfmac* $(TARGET_DIR)/lib/firmware/brcm
+ $(INSTALL) -m 0644 $(@D)/brcm/brcmfmac434* $(TARGET_DIR)/lib/firmware/brcm
endef
$(eval $(generic-package))
--
2.17.1

View File

@ -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 \

View File

@ -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

View File

@ -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
@ -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

View File

@ -1,2 +1,2 @@
# Locally computed
sha256 f2b0f8ec8e73f8fa399f2c72c574ea5fe7fa57ab6151b139842a3ba783cd2140 rpi-firmware-a46b1f9521229ec26a1377aab7d013df1ade2791.tar.gz
sha256 d9295b794e8a93a9bb8b5fe8cf612fea7f4a22f4a8abbbd3f56a20c96e63428a rpi-firmware-45c6ee3cd7f36a2376b691affbc02dfc689b8056.tar.gz

View File

@ -4,7 +4,7 @@
#
################################################################################
RPI_FIRMWARE_VERSION = a46b1f9521229ec26a1377aab7d013df1ade2791
RPI_FIRMWARE_VERSION = 45c6ee3cd7f36a2376b691affbc02dfc689b8056
RPI_FIRMWARE_SITE = $(call github,raspberrypi,firmware,$(RPI_FIRMWARE_VERSION))
RPI_FIRMWARE_LICENSE = BSD-3-Clause
RPI_FIRMWARE_LICENSE_FILES = boot/LICENCE.broadcom

View File

@ -1,3 +1,3 @@
# Locally calculated
sha256 beade89c5c072158b6cf18cf741d2695980fd6a4533dab3897bebf90c0631a30 rpi-wifi-firmware-18d7c931aff0a8a78360b9b9eaeb15d1224fb907.tar.gz
sha256 163fc0629d9ddcf7b729fefd3129f8d4f43b8fc912fa487b6d8bc57cf57232a7 rpi-wifi-firmware-86e88fbf0345da49555d0ec34c80b4fbae7d0cd3.tar.gz
sha256 b16056fc91b82a0e3e8de8f86c2dac98201aa9dc3cbd33e8d38f1b087fcec30d LICENCE.broadcom_bcm43xx

View File

@ -4,14 +4,14 @@
#
################################################################################
RPI_WIFI_FIRMWARE_VERSION = 18d7c931aff0a8a78360b9b9eaeb15d1224fb907
RPI_WIFI_FIRMWARE_SITE = $(call github,LibreELEC,brcmfmac_sdio-firmware-rpi,$(RPI_WIFI_FIRMWARE_VERSION))
RPI_WIFI_FIRMWARE_VERSION = 86e88fbf0345da49555d0ec34c80b4fbae7d0cd3
RPI_WIFI_FIRMWARE_SITE = $(call github,RPi-Distro,firmware-nonfree,$(RPI_WIFI_FIRMWARE_VERSION))
RPI_WIFI_FIRMWARE_LICENSE = PROPRIETARY
RPI_WIFI_FIRMWARE_LICENSE_FILES = LICENCE.broadcom_bcm43xx
define RPI_WIFI_FIRMWARE_INSTALL_TARGET_CMDS
$(INSTALL) -d $(TARGET_DIR)/lib/firmware/brcm
$(INSTALL) -m 0644 $(@D)/firmware/brcm/brcmfmac* $(TARGET_DIR)/lib/firmware/brcm
$(INSTALL) -m 0644 $(@D)/brcm/brcmfmac434* $(TARGET_DIR)/lib/firmware/brcm
endef
$(eval $(generic-package))

View File

@ -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

9
scripts/update-rpi-kernel.sh Executable file
View File

@ -0,0 +1,9 @@
#!/bin/bash
set -e
if [ -z "$1" ]; then
echo "Need a version!"
exit 1
fi
sed -i "s/BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION=\".*\"/BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION=\"$1\"/g" buildroot-external/configs/rpi*

43
scripts/upload-rel.sh Executable file
View File

@ -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/*; 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