1496 Commits

Author SHA1 Message Date
Stefan Agner
66c0435c7c
Bump OS to pre-release version 11.1.rc1 2023-10-23 19:11:31 +02:00
Stefan Agner
aed1bb807c
ODROID-M1: Fix environment read from SD card (#2822) (#2856)
Make sure the environment can be read and written to SD card as well.
This makes sure that first boot detection works properly too when
booting from SD card.
2023-10-23 14:25:52 +02:00
Jan Čermák
b56f660316
Linux: Update kernel 6.1.59 (#2849) 2023-10-23 10:32:23 +02:00
Jens Maus
7f2d5c1524
Bump generic_raw_uart to 1.30 (#2847) 2023-10-23 10:32:01 +02:00
Jens Maus
f977067c18
bump qemu-guest-agent to 8.0.5 (#2846) 2023-10-23 10:30:43 +02:00
Stefan Agner
58accf39d7
Fix IPv6 routing failover for Thread (#2434) (#2845)
The patch added in #2434 is not working: IS_ENABLED requires the full
config symbol including CONFIG_ prefix.

Fix the patch to make automatic IPv6 route failover depening on IPv6
reachability probes actually work.
2023-10-20 00:10:34 +02:00
Stefan Agner
44dc1781a5
Fix deployment on dev branch (#2834)
The deployment on dev channel should always be development. The change
came in from the main branch backmerge where the wrong merge strategy
has been used (the merge strategy "ort" along with option "ours" has
been used, instead of the "ours" merge strategy). And since the
deployment was a separate hunk, it resolved to the release branch.
2023-10-17 17:34:53 +02:00
Stefan Agner
157144eaa5
Linux: Update kernel 6.1.58 (#2829) 2023-10-17 10:51:43 +02:00
Stefan Agner
2a334e8c1a
Merge branch 'main' into dev 2023-10-16 14:46:59 +02:00
Stefan Agner
f407c3de66
Use Docker 24 during build time (#2811)
use the same Docker version we deploy on Home Assistant OS during build.
2023-10-14 13:26:10 +02:00
Stefan Agner
6206f6a428
Linux: Update kernel 6.1.57 (#2807)
* Linux: Update kernel 6.1.57

* Remove now obsolete patch

* Keep Bluetooth patch for Raspberry Pi boards
2023-10-14 10:40:42 +02:00
Stefan Agner
a669a352d5
Bump OS to release version 11.0 (#2808) 2023-10-13 12:14:20 +02:00
Stefan Agner
30d3678c2d
Bump OS to pre-release version 11.0.rc2 (#2803) 2023-10-11 22:22:08 +02:00
xtsrthm
fc3c313509
generic-x86-64: Fix typo in kernel.config (#2801) 2023-10-10 09:31:22 +02:00
Stefan Agner
5b927389b8
Revert "RAUC update: Use verity bundle format (#2786)" (#2799)
This reverts commit 0ebcdcb9dc8d2471bcacf0049e93f1ad0bf12a37.

We only added verity support in HAOS 10.4. However, we currently have
an issue since HAOS 10.3 where certain Realtek network cards don't work
anymore (see issue #2630). For this systems, it won't be possible to
upgrade, even when using the console.

Only having two HAOS releases creates a rather "narrow" upgrade path
accross all boards. There could be more issues where this proves
problematic.

Currently we don't use any new feature of the verity format. Therefor
let's postpone the move to the new format for a couple of releases
for now.
2023-10-10 09:15:39 +02:00
Stefan Agner
a42ae2f25b
Linux: Update kernel 6.1.56 (#2798) 2023-10-10 09:15:35 +02:00
xtsrthm
3e65e9a839
generic-x86-64: Add support for external i2c devices (#2800)
This commit adds support for usb to i2c adapters, the i2c chardev and the bme280  famaily environment sensors
2023-10-09 23:44:15 +02:00
Stefan Agner
ba23d68de7
Revert "RAUC update: Use verity bundle format (#2786)" (#2799)
This reverts commit 0ebcdcb9dc8d2471bcacf0049e93f1ad0bf12a37.

We only added verity support in HAOS 10.4. However, we currently have
an issue since HAOS 10.3 where certain Realtek network cards don't work
anymore (see issue #2630). For this systems, it won't be possible to
upgrade, even when using the console.

Only having two HAOS releases creates a rather "narrow" upgrade path
accross all boards. There could be more issues where this proves
problematic.

Currently we don't use any new feature of the verity format. Therefor
let's postpone the move to the new format for a couple of releases
for now.
2023-10-09 14:51:03 +02:00
Stefan Agner
b60fe22de8
Linux: Update kernel 6.1.56 (#2798) 2023-10-08 13:34:15 +02:00
Stefan Agner
f5d4379aed
Bump OS to version 11.1.dev0 2023-10-05 12:08:48 +02:00
Stefan Agner
0d3cb42e47
Bump OS to pre-release version 11.0.rc1 (#2792) 2023-10-05 12:05:23 +02:00
Stefan Agner
1bec4e858b
Set containerd root explicitly (#2476) (#2791)
With the move to Docker 23 containerd stores its metadata no longer
undernath the Docker data directory but at its default location at
/var/lib/containerd. Previously Docker passed a containerd configuration
toml file which explicitly set the metadata root underneath Docker's
data directory.

On Home Assistant OS, the new location /var/lib/containerd is on a tmpfs
file system. For unknown reasons, it seems that if containerd's root
directory is on a tmpfs this leads to significantly more syscalls and
hence CPU load.

Change the metadata location to be on the data partition again. Since
containerd is treated separately from Docker these days, use a new
root directory under /mnt/data for containerd as well. With this, the
CPU load of containerd is back to normal.
2023-10-05 11:24:43 +02:00
Stefan Agner
29ad504667
Remove unnecessary plug-ins from containerd (#2789)
* Bump buildroot

* buildroot a1bdf74b19...f125c3e292 (1):
  > package/containerd: add control for additional build tags

* Drop unnecessary containerd changes

Now that the snappshotter and the CRI plug-ins are disabled we don't
need to configure or disable them via configuration anymore. Drop the
unnecessary configs.
2023-10-04 18:19:27 +02:00
Stefan Agner
2cbaaf9f3b
Fix fsfreeze freeze support (#2787)
Pass the script argument properly to make sure the script gets actually
called from the QEMU guest agent.
2023-10-03 16:21:57 +02:00
Stefan Agner
0ebcdcb9dc
RAUC update: Use verity bundle format (#2786)
Move from the current plain format to the new verity bundle format. This
requires at least HAOS 10.4 to work. The Supervisor will make sure to
update to the latest minor release of the previous major release, so
updating will work in the regular use case.
2023-10-03 16:21:45 +02:00
Stefan Agner
893a49a3f3
Add fsfreeze support for QEMU/KVM/Proxmox installations (#2781)
* Add fsfreeze support for QEMU/KVM/Proxmox installations

Add fsfreeze scripts which calls the new Supervisor API to freeze Home
Assistant Core and add-ons which support the backup freeze scripts
(`backup_pre` and `backup_post`).

This allows to create safe snapshots with databases running.

* Fix lint issues
2023-10-02 08:30:20 +02:00
clayton craft
469b109efd
generic-x86-64: enable backlight support (#2772)
This enables backlight support on these hosts, which is useful if
running HASS on an old laptop or tablet and you want to (e.g.) conserve
power by controlling the backlight.
2023-09-27 23:57:37 +02:00
Stefan Agner
39e867c352
Disable overlayfs features not used by Docker (#2773)
Currently `CONFIG_OVERLAY_FS_METACOPY` and
`CONFIG_OVERLAY_FS_REDIRECT_DIR` kernel options are enabled but not
preferred by Docker. The metadata copy feature is disabled by default,
and also not actively used by the overlayfs2 driver (see
2c3d1f7b4b).
So the metadata copy config is not really problematic per se. However,
it enables the redirect_dir feature. And a kernel which has the
redirect_dir feature compiled in also enables it by default. This
actually makes the overlayfs2 driver to fallback to naive diff, which
is, from what I understand, slower than the overlayfs native diff (see
also
49c3a7c4ba).
The Docker daemon is also reporting this on startup:

  Not using native diff for overlay2, this may cause degraded performance
  for building images: kernel has CONFIG_OVERLAY_FS_REDIRECT_DIR enabled

Currently `CONFIG_OVERLAY_FS_METACOPY` is enabled, and it also enables
`CONFIG_OVERLAY_FS_REDIRECT_DIR`. There was already a previous attempt
to disable the latter (see #2067).

Disable both configs explicitly until Docker is able to use them.
2023-09-26 14:54:01 +02:00
Stefan Agner
f9251252d9
Update and fix containerd v1.6.22 (#2770)
* Introduce containerd configuration

Configure the CNI config directory to a writeable location.

Disable unnecessary plug-ins to avoid unnecessary error messages during
containerd startup.

* Bump buildroot

* buildroot 8ea671337e...d6894cf55f (1):
  > Revert "Revert "package/containerd: bump version to v1.6.22""
2023-09-25 13:48:15 +02:00
Stefan Agner
5ea343289c
Linux: Update kernel 6.1.55 (#2769) 2023-09-25 13:42:02 +02:00
Stefan Agner
3df2749171
Adjust Home Assistant OS versioning to prepare for new release strategy (#2767)
* Adjust Home Assistant versioning to prepare for new release strategy

With OS 11 we'll create rc pre-releases which will get directly pushed
to the beta channel. In contrast, release builds will get directly
pushed to the stable channel.

Similar to Home Assistant Core we'll create bump commits for all stable
and beta releases. This makes sure that the source code matches the
built binaries for all releases.

The development build will get a generated version. To avoid issues
with the new rc builds the dev build version will get injected on source
level now.

* Apply suggestions from code review
2023-09-25 13:41:50 +02:00
Stefan Agner
7870a1d78e
Download latest stable Supervisor after device wipe (#2765)
* Download latest stable Supervisor after device wipe

Currently we download the latest tag after a device wipe, which gives us
the latest Supervisor (which quite likely can be a development version).
Use the stable version file instead to get the tag to be used to
download the Supervisor.

* Delete potentially corrupted updater info
2023-09-25 10:27:36 +02:00
Stefan Agner
49a487d4a2
Use latest Network device naming scheme (#2763)
This essentially reverts #2380, making sure that Home Assistant OS uses
systemd's latest network naming scheme.

We stick to a certain naming scheme to make sure NetworkManager still
applies the network configuration (which is matched by network interface
name by default).

With Supervisor [PR #4476](https://github.com/home-assistant/supervisor/pull/4476)
NetworkManager uses udev path by default. With this we can safely enable
the new interface naming and NetworkManager will still apply the
configuration based on udev path correctly.
2023-09-21 17:06:29 +02:00
Stefan Agner
86b172b9c2
Create swapfile even when not using the multi-user.target (#2762)
Pull in the swapfile creation service haos-swapfile.service when
swap.target is reached. This makes sure the service is started even when
other targets are used (e.g. rescue.target).
2023-09-21 15:30:24 +02:00
Stefan Agner
53567a86e8
Linux: Update kernel 6.1.54 (#2760) 2023-09-21 11:27:32 +02:00
Stefan Agner
f8f2e61967
Delete Bluetooth device cache regularly (#2751)
* Delete Bluetooth device cache regularly

Delete stale Bluetooth devices from the BlueZ device cache every week.
This makes sure that the overlay partition doesn't run out of inodes
which has happened in real world scenarios where many new Bluetooth
devices are discovered.

BlueZ maintains these files on a best effort base. So removing them
while BlueZ is running should be safe.

An alternative considered  was to lower BlueZ GATT caching (e.g. by
using Cache=yes instead of always, to cache only paired devices).
However, this would hurt performance and battery lifetime of Bluetooth
devices due to additional unnecessary GATT attributes reads. This is in
particular true for Bluetooth 5.1 devices which support the Database
Hash charactristic. Caching has also helped reliability with
intermittent connections (see
https://github.com/bluez/bluez/issues/191).

More importantly, besides the GATT attribute cache the same files are
also used to cache the device names as well. This is independent of the
above mentioned GATT cache configuration (see device_store_cached_name
in BlueZ). So disabling the GATT caching alone wouldn't solve the
particular problem we are facing.

See also: https://github.com/home-assistant/supervisor/issues/4490

* Use access timestamp instead of modification timestamp

The modification timestamp gets updated regularly (on each connect) it
seems. However, using access timestamp might be more accurate, as it
seems to preserves slightly more cache files. This additional devices
might be devices we don't regularly connect but are still around (and
therefor we shouldn't reread the GATT attributes regularly).

So deleting cache entries with access time older than 7 days. Which
essentially deletes all the entries of devices which haven't been seen
the last 7 days.
2023-09-14 23:13:40 +02:00
Stefan Agner
26dd95cb03
Linux: Update kernel 6.1.53 (#2750) 2023-09-13 22:40:13 +02:00
Stefan Agner
98da692882
Linux: Update kernel 6.1.52 (#2740) 2023-09-08 00:13:39 +02:00
Stefan Agner
079bf06aa7
Enable ECC memory support via EDAC (#2708) (#2736) 2023-09-05 22:20:23 +02:00
Stefan Agner
0b115133fe
Bump HAOS Agent to 1.6.0 (#2734) 2023-09-05 21:44:19 +02:00
Stefan Agner
79050fb820
Separate build step when loading container images (#2731)
Separate fetching the current release and loading the container image
into separate build steps. This allows to manually later the version
json file for testing.
2023-09-04 23:17:31 +02:00
Stefan Agner
e83f264e8c
Improve LED representation in Home Assistant Green device tree (#2730) 2023-09-04 23:17:17 +02:00
Stefan Agner
42648b664d
Linux: Update kernel 6.1.51 (#2726) 2023-09-04 23:13:48 +02:00
Stefan Agner
d2006e9b72
Use full preemptible kernel in Home Assistant OS (#2721)
Enable fully preemptible kernel (low-latency desktop) configuration for
Home Assistant. Home Assistant can be considered as a soft real-time
system, where a lower latency is preferred over throughput.

A few tests using the rt_test development add-on didn't show measurable
improvements, but this could be due to rather synthetic test.

Currently some platform use voluntary preemptible kernel, and some fully
preemptible. So besides improving latency, this also aims to synchronize
the settings across all platforms.

Also make sure that debugging is not enable as it can have high runtime
overhead according to Kconfig.
2023-09-01 10:13:02 +02:00
Stefan Agner
a2760f1d67
Linux: Update kernel 6.1.50 (#2716) 2023-08-30 23:19:18 +02:00
Stefan Agner
fcf615614e
Use proper fix for Bluetooth LE advertisement stall (#2598) (#2714)
Instead of reverting the new hci_sync based BLE scan disable logic
use the fix proposed by Luiz:
https://lore.kernel.org/linux-bluetooth/CABBYNZ+5RMqNVMyYKi+gOVaV+K6k8Z-C37KnfGa=qRUORc3dWg@mail.gmail.com/

This fix avoids BLE stalls just like the revert.
2023-08-30 23:19:02 +02:00
Stefan Agner
60ea200b88
configs: Enable LTO if available (#2713)
The BR2_GCC_ENABLE_LTO config used to enable LTO on compiler level. That
config symbol doesn't exist anymore. Instead, LTO is enabled by default
with GCC.

However, there is a new flag named BR2_ENABLE_LTO which enables LTO in
packages. So far it doesn't look like that packages we are using support
the flag, but that might get added in the feature. Opt-in already today.
2023-08-30 23:18:53 +02:00
Stefan Agner
d7dccf423a
Linux: Update kernel 6.1.49 (#2711) 2023-08-29 18:30:43 +02:00
Stefan Agner
c41cf9ad17
Linux: Update kernel 6.1.47 (#2703) 2023-08-27 23:11:00 +02:00
Stefan Agner
23237a0676
Linux: Update kernel 6.1.46 (#2697) 2023-08-23 19:52:03 +02:00