1
0
mirror of https://github.com/home-assistant/operating-system.git synced 2026-05-08 17:49:46 +01:00
Commit Graph

1848 Commits

Author SHA1 Message Date
Stefan Agner 01548af27e Use UTF-8 as default native language support (NLS) (#2450)
This makes sure that CIFS/SMB are mounted with the UTF-8 character set
by default on all boards.
2023-04-06 00:24:02 +02:00
Stefan Agner 19e2869261 Add support for NFS and SMB/CIFS network file systems (#2446)
* Add support for NFS and SMB/CIFS network file systems

* Remove server component
2023-04-03 18:38:19 +02:00
dependabot[bot] b88deef758 Bump actions/stale from 7.0.0 to 8.0.0 (#2447)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-04-03 16:37:06 +02:00
Stefan Agner c7588e9350 Enable Multi-Gen LRU (#2392)
* Enable Multi-Gen LRU

Multi-Gen LRU should improve performance under memory pressure. This is
especially useful for embedded platforms where memory is scarce.

* Add service to configure Multi-Gen LRU

Use min_ttl_ms of 1 which is the least aggressive in terms of lag. Since
we are a server application, we can tune trashing prevention with a
higher acceptable lag.
2023-03-31 23:28:43 +02:00
Stefan Agner bdb3bd3ab1 Use zsmalloc for zswap (#2443)
The allocator is supposed to work well under low memory conditions.
2023-03-30 22:57:31 +02:00
Stefan Agner 3686a12d11 Bump buildroot to update NetworkManager to 1.40.16 (#2442)
* buildroot 90d1128033...befb515cdb (1):
  > package/network-manager: bump version to 1.40.16
2023-03-30 22:24:44 +02:00
Stefan Agner 94fe385ef4 Linux: Update kernel 6.1.22 (#2441) 2023-03-30 22:24:35 +02:00
Stefan Agner f5e2919db1 Bump buildroot (#2439)
* buildroot 2ccc4c3f04...90d1128033 (2):
  > package/docker-cli: bump version to v23.0.2
  > package/docker-engine: bump version to v23.0.2
2023-03-29 15:33:52 +02:00
Stefan Agner 399997e83c Set umask on swapfile creation (#2436)
Make sure the swapfile is only readable by the owner.
2023-03-28 18:18:58 +02:00
Stefan Agner 1edb5c8c9e Limit systemd-journald log size to 500MB (#2226) (#2435) 2023-03-28 18:18:27 +02:00
Stefan Agner c64c5b13ab Improve IPv6 NDP for non-local Thread Border routers (#2434)
* Add multiple routes support in NetworkManager

Support multiple routes to the same network learned via Router
Information Option. With this change, the kernel will have multiple
routing table entries to a given Thread network. The routes gateway
won't be updated with every new RIO any longer since every gateway
has its own entry.

* Enable IPv6 router reachability probing

Currently router reachability probing is disabled since HAOS enables
IPv6 forwarding and the necessary kernel options are not enabled. With
this change router reachability probing is enabled even though we are
a router on our own.

Note that Linux commit ea659e077528 ("[IPV6] ROUTE: Do not enable router
reachability probing in router mode.") by default disabled this
behavior. But since we are acting as a router as well as a host device,
we rather want this reachability probing.

See also: https://lore.kernel.org/netdev/b9182b02829b158d55acc53a0bcec1ed667b2668.1680000784.git.stefan@agner.ch/T/#u
2023-03-28 18:18:19 +02:00
Jens Maus 555c229519 updated generic_raw_uart to latest 1.28 version and updated rpi-rf-mod (#2431)
package to latest version as well.
2023-03-27 09:35:22 +02:00
Stefan Agner 4744a2f123 Fix swapfile creation for all memory sizes (#2427)
* Fix swapfile creation for all memory sizes

In certain situation awk prints the swapfile size in scientific
notation. The script can't deal with that, in which case swap file
creation fails.

Use int to convert the number to an integer.

Since pages are 4k, also make sure swapsize is aligned to 4k blocks.

* Add info message
2023-03-27 09:34:38 +02:00
Stefan Agner 9cd98003e8 Bump OS release version to 11 2023-03-25 09:19:26 +01:00
Stefan Agner 30634cd0af Partially revert "improve virtual hw support (#2138)" (#2425)
Drop PCIe hotplug since this causes network interfaces name changes
which aren't handled gracefully right now. People are left with no
network configuration.
2023-03-23 21:46:12 +01:00
Stefan Agner a8f6f7aa43 Don't kill ssh connection on OOM (#2424)
By default systemd kills the service which causes an OOM. That make
sense for a typical service, however, for SSH we don't want this
behavior: The connection should continue, just the command which caused
OOM should be killed.
2023-03-23 21:45:57 +01:00
Stefan Agner 689089a949 Linux: Update kernel 6.1.21 (#2423) 2023-03-23 21:45:43 +01:00
Stefan Agner 75dcb932f8 Use zswap instead of swap in zram (#2420)
* Use zswap instead of swap in zram

This requires a swap file which will get generated automatically on
startup.

* Fix file size and free disk space comparison

* Set zswap factor to 33%

* Set vm.swappiness to 1

Decrease swapping to a minimum. This is also recommended for database
work loads by the MariaDB documentation. In practice it causes the least
amount of writes to disk when under memory pressure, while still making
swap available when needed.
2023-03-22 11:08:05 +01:00
Stefan Agner 5c6330f70f Bump U-Boot for ODROID-M1 to 2023.04-rc4 (#2419) 2023-03-17 17:14:42 +01:00
Stefan Agner 5cf2a0b052 Linux: Update kernel 6.1.20 (#2418) 2023-03-17 14:54:05 +01:00
Stefan Agner c804b6b68d Linux: Update kernel 6.1.19 for Raspberry Pi systems (#2417) 2023-03-17 00:37:38 +01:00
Stefan Agner 3de96587b7 Bump HAOS Agent to 1.5.1 (#2416) 2023-03-17 00:37:27 +01:00
Stefan Agner 787fc22f83 Avoid moving data to same device (#2412)
* Avoid moving data to same device

When a data disk move is triggered when the data disk is already in use
the script currently renames that only data disk, rendering the system
unusable.

Don't continue if source and destination happens to be the same device.

* On failure rename to hassos-data-fail

The label hassos-data-failed is too long.
2023-03-15 22:47:31 +01:00
Stefan Agner c8438faab5 Linux: Update kernel 6.1.19 (#2411) 2023-03-15 14:16:22 +01:00
Stefan Agner 5200096c4e Deactivate any external data disk device on first boot (#2390) (#2410)
* Deactivate any external data disk device on first boot (#2390)

* Use lsblk to determine the underlying device file

Comparing major number is not reliable, e.g. virtio disks have the same
major number despite being different devices. Use lsblk to find the
underlying device, and compare the device name instead.
2023-03-15 14:16:11 +01:00
Stefan Agner 24f3efdbe3 Support systemd ConditionFirstBoot (#2409)
By default ConditionFirstBoot is ankered to the presence of
/etc/machine-id. However, in our case /etc/machine-id is a bind mount,
which makes the first boot condition non-working.

Since machine-id is stored by the bootloader on HAOS, use the boot
loaders knowledge and pass the information to systemd.
2023-03-15 14:14:47 +01:00
Stefan Agner 2b0187604b Choose Security Module using Kernel configuration (#2407) 2023-03-14 18:29:01 +01:00
Stefan Agner 1d2de24cbe Capitalize ODROID as used by Hardkernel (#2406) 2023-03-14 00:45:39 +01:00
Stefan Agner 8531abcbeb Bump buildroot (#2404)
* buildroot 0a6be061e0...2ccc4c3f04 (1):
  > package/gptfdisk: fix another runtime failure with popt 1.19
2023-03-14 00:19:06 +01:00
Stefan Agner 29a740353a Fix U-Boot environment size for ODROID-M1 (#2403) 2023-03-14 00:18:54 +01:00
Stefan Agner 2f9ce078ee Add ODROID-M1 to documentation (#2402)
* Add ODROID-M1 to documentation

While at it, also use the new writing style for all Hardkernel boards by
changing Odroid to ODROID.

* Add ODROID-M1 board specific documentation

* Add NVMe information

* Apply suggestions from code review

Co-authored-by: c0ffeeca7 <38767475+c0ffeeca7@users.noreply.github.com>
2023-03-14 00:18:39 +01:00
Stefan Agner 6914f92e59 Linux: Update kernel 6.1.18 (#2401) 2023-03-13 10:27:00 +01:00
Stefan Agner 8eef678e48 Add Multi-Gen LRU but disabled by default (#2400)
It seems that Raspberry Pi enabled Multi-Gen LRU by default. By my
testing, it performs worse in some situation. Add it by default for all
platforms, but disable it by default for now.
2023-03-13 00:53:33 +01:00
Stefan Agner f48b00cb7f Bump buildroot (#2399)
* buildroot c8916b6ec3...0a6be061e0 (1):
  > Merge tag '2023.02' into 2023.02.x-haos
2023-03-13 00:52:45 +01:00
Stefan Agner b0d9496595 Add ODROID-M1 support (#2387)
* Add ODROID-M1 board support

* Add Rockchip kernel config for ODROID-M1

Kernel defconfig for Rockchip is based on Armbian kernel defconfig
from config/kernel/linux-rk3568-odroid-edge.config (git hash
95c829f9e664).

* Add U-Boot/Kernel patches

* Add Rockchip blob support

Add package which provides Rockchip TPL and ATF firmware binaries.

* Use latest U-Boot for ODROID-M1

* Fix Rockchip blob support

* Update defconfig

* Use GPT by default

* Create uboot partition to support non-recovery boot

* Enable eMMC boot in U-Boot SPL

* Drop unnecessary mmc device selection

Distro boot already activates the right mmc device. The extra selection
seems to actually cause problems for eMMC boot.

* Make sure driver for eMMC is built-in

* Use odroid-m1 as Supervisor machine

* Add ODROID-M1 to CI pipeline and issue template

* Bump to Linux 6.1.16
2023-03-10 19:44:50 +01:00
Stefan Agner c03236f937 Linux: Update kernel 6.1.16 (#2396) 2023-03-10 19:42:13 +01:00
Stefan Agner 7b17c2eff0 Bump buildroot (#2393)
* buildroot f757263ae4...c8916b6ec3 (2):
  > Merge tag '2023.02-rc3' into 2023.02.x-haos
  > boot/uboot: Hacky support binary files for Rockchip ATF/TPL
2023-03-09 16:32:52 +01:00
Stefan Agner 7c105f553f Bump QEMU guest agent to 7.2.0 (#2391) 2023-03-09 09:32:31 +01:00
Stefan Agner a93781c360 Add libseccomp (#2389)
* Add security library libseccomp

Enable libseccomp to activate seccomp support in HAOS. This will compile
systemd and Docker with seccomp support.

Note: Traditionally Supervisor required to disable seccomp. This seems
no longer to be the case with current Supervisor, but it needs further
testing. All containers started by Supervisor get currently started with
seccomp disabled.

* Enable seccomp in the kernel
2023-03-08 00:38:28 +01:00
Stefan Agner 448c85788c Add label action for new features (#2388) 2023-03-07 08:21:08 +01:00
Stefan Agner 9ce0766353 Avoid custom GPT location (#2386)
Currently the only board supporting GPT partition table and SPL is the
ASUS Tinker board. Its Rockchip boot loader is stored at LBA 0x40 (64)
which is well past the last LBA of a regular GPT partition table which
is at LBA 33). Therefor a custom GPT main partition table location (via
sgdisk -j, --adjust-main-table=sector) is not necessary.

Technically we could copy anything after LBA 34 from the SPL image, but
since we don't support a board which needs that space for its SPL let's
stick with the well aligned Rockchip start at LBA 64.

Note: To preserve the layout we still add the SPL size to the regular
offset. Technically we could start the boot partition at LBA 16384, but
this would mean a different partition table compared to before and
different offset of subsequent partitions compared to other GPT
platforms.
2023-03-07 00:52:16 +01:00
Stefan Agner 923c22ff9e Support custom sized SPL/raw boot region (#2385)
* Support custom sized SPL/raw boot region

This is required for Rockchip which by default stores the U-Boot FIT
image at the 8MiB offset.

* Ignore shellcheck warning
2023-03-06 23:06:45 +01:00
Stefan Agner eb3e2ab003 Linux: Update kernel 6.1.15 (#2383) 2023-03-03 18:10:36 +01:00
Stefan Agner ca6bccbfa9 Use new containerd.sock location of Docker 23.0 (#2382) 2023-03-03 18:07:29 +01:00
Stefan Agner a35ed97167 Enable Microsoft HyperV integration services (#2381) 2023-03-02 17:01:01 +01:00
Stefan Agner 239337b406 Use Network device naming scheme v250 (#2380)
The new systemd version v252 brings a new naming scheme, in particular
it seems that on device tree based systems (e.g. Raspberry Pis) the
Ethernet device name changes from eth0 to end0.

This breaks a previously made configuration.

Even worse, it seems that the default NetworkManager behavior is to only
configure a network device if there is no profile. But since profiles
are configured on a typical installation, NetworkManager doesn't bring
up any of the network interface, leaving the user stranded on an
unconnected system.

Ideally, we should have a plan how to migrate from one naming scheme to
the next. For now, just stick with the naming scheme HAOS 9.x has been
using.
2023-03-02 17:00:28 +01:00
Stefan Agner 78c5d40bb0 Enable NetworkManager command line utility nmcli explicitly (#2379)
With the Buildroot update 2023.02 nmcli is not enabled by default.
Enable it explicitly.
2023-03-02 17:00:19 +01:00
Stefan Agner 2081d3f7ed Bump buildroot (#2377)
* buildroot 4832525e6c...f757263ae4 (3):
  > package/docker-engine: bump version to v23.0.1
  > package/docker-engine: remove non-existing build tags
  > package/{bluez5_utils, bluez5_utils-headers}: bump to version 5.66
2023-03-02 00:06:52 +01:00
Stefan Agner a69f94803b Increase net.core.optmem_max for OTBR (#2375)
The OTBR install scripts by default increases the net.core.optmem_max
ancillary buffer size to 64KiB to allow for a larger number of multicast
groups. Arch Linux as well recommends this size for high speed network
links.
2023-03-02 00:06:42 +01:00
Stefan Agner 7806f973bb Bump buildroot to 2023.02-rc2 (#2374)
* Update config for Buildroot 2023.02

* Use Buildroot's version of the rtl8821cu package

Buildroot provides a newer driver for the RTL8821CU based chipsets
provided by https://github.com/morrownr/8821cu-20210118.

* Pass argument when verifying partition table

This also avoids running into a segmentation fault in the current
version of sgdisk.

* Remove obsolte GRUB2/NetworkManager patches

* Bump buildroot

* buildroot 90aa1a6daa...4832525e6c (4596):
  > package/runc: add support for CGroup device permission updates
  > package/network-manager: fix build with -Dmodem_manager=false
  > package/dbus-broker: bump to release 33
  > package/iptables: Allow to use iptables with nf_tables backend
  > package/brcmfmac_sdio-firmware-rpi: bump to latest version
  > package/linux-firmware: Deploy fewer Intel WiFi 22000 series variants
  > package/linux-firmware: Add more Intel WiFi 22000 series variants
  > package/linux-firmware: Add Broadcom BNX2 firmware
  > package/rpi-firmware: bump version to 1.20230106
  > Update for 2023.02-rc2

* Use Ubuntu 22.04 for CI checks

* Bump xe-guest-utilities to 7.33.0

* Remove unnecessary shellcheck ignore for xe-guest-utilities

* Address new buildroot check-packages issues
2023-03-01 00:36:32 +01:00