1391 Commits

Author SHA1 Message Date
Stefan Agner
4dc4d1462a
Bump version to 10.1 2023-04-25 13:27:39 +02:00
Stefan Agner
fedde38386
Enable Gasket driver for Google Coral support on ODROID-M1 (#2508) 2023-04-25 09:56:04 +02:00
Stefan Agner
b2836bb225
Avoid CLI restart on shutdown (#2507)
* Avoid CLI restart on shutdown

* Update buildroot-external/rootfs-overlay/usr/sbin/hassos-cli
2023-04-25 09:56:04 +02:00
Stefan Agner
3e2b0baf15
Fix boot on Raspberry Pi 4 32-bit (#2505)
With U-Boot 2023.01 booting on Raspberry Pi 4 32-bit (at least with 4
or 8GB of memory) freezes when trying to enumerate USB devices. It seems
that the PCIe initialization partially fails, which causes the USB XHCI
initialization to fail.

It seems that a new restriction on viable addresses for PCIe
initialization causes the problem. Revert the offending commit to make
U-Boot properly detect USB devices again.
2023-04-25 09:56:03 +02:00
Stefan Agner
0caadf4c69
Fix startup by using BindTo and After (#2496) (#2503)
Use BindTo and After settings from the QEMU guest agente service file
present in the QEMU source tree (contrib/systemd/qemu-guest-agent.service).
2023-04-25 09:56:03 +02:00
Stefan Agner
a868677016
Linux: Update kernel 6.1.25 (#2495) 2023-04-25 09:56:03 +02:00
Stefan Agner
f0e0e36926
Fix NVMe SSD boot for Raspberry Pi 4/CM4 (#2493)
The new U-Boot 2023.01 requires an additional config which is missing
from the generic Raspberry Pi U-Boot configuration (see #2234). Add
it to the generic Raspberry Pi U-Boot configuration so Yellow as well as
other CM4 based systems can boot from NVMe SSD again.
2023-04-25 09:56:03 +02:00
Stefan Agner
d0f643edfe
Enable HDMI on Khadas VIM3 (#2491)
Use the same kernel configuration for Display/GPU/HDMI/CDC kernel
modules as ODROID-N2 which has proven to be working well.
2023-04-25 09:56:03 +02:00
Stefan Agner
8d95a17d67
Enable Broadcom Ethernet PHYs support (#2413) (#2470) 2023-04-17 10:33:35 +02:00
Stefan Agner
e2a0111710
Linux: Update kernel 6.1.24 (#2469) 2023-04-17 10:33:30 +02:00
Stefan Agner
addbfe6d7e
Fix build without device tree overlays (#2467) 2023-04-13 07:39:06 +02:00
Stefan Agner
63f57a6ab2
Add Broadcom NetXtreme/Tigon3 firmware (#2413) (#2466) 2023-04-12 22:19:09 +02:00
Stefan Agner
6c71582211
Add firmware for Realtek RTL8152/RTL8153 USB Ethernet Adapters (#2456) (#2465) 2023-04-12 22:19:09 +02:00
Stefan Agner
2f28fed571
Remove RPI-RF-MOD/HM-MOD-RPI-PCB hat overlays for Yellow (#2408) (#2461)
The overlays do not properly support the Yellow hardware. Remove them to
avoid issues with Zigbee/Audio and possible other on-board hardware.
2023-04-12 22:19:08 +02:00
Stefan Agner
3c3db6fb8c
Bump Raspberry Pi kernel and firmware to 1.20230405 (#2459)
* Bump buildroot

* buildroot ddc0ddca51...acec896cab (1):
  > package/rpi-firmware: bump version to 1.20230405

* RaspberryPi: Update kernel 6.1.21 - 1.20230405
2023-04-12 22:19:08 +02:00
Stefan Agner
112526ccbf
Bump U-Boot for ODROID-M1 to 2023.04 (#2458) 2023-04-12 22:19:08 +02:00
Stefan Agner
e71efcee3d
Linux: Update kernel 6.1.23 (#2453) 2023-04-12 22:19:08 +02:00
Stefan Agner
aec4c0b8d2
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-12 22:19:08 +02:00
Stefan Agner
34cf188f58
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:44:54 +02:00
Stefan Agner
2dcb59d43f
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-04-03 18:44:54 +02:00
Stefan Agner
ca63e7fd32
Use zsmalloc for zswap (#2443)
The allocator is supposed to work well under low memory conditions.
2023-04-03 18:44:01 +02:00
Stefan Agner
3873d9e12b
Linux: Update kernel 6.1.22 (#2441) 2023-04-03 18:44:01 +02:00
Stefan Agner
466db83901
Set umask on swapfile creation (#2436)
Make sure the swapfile is only readable by the owner.
2023-04-03 18:44:00 +02:00
Stefan Agner
858a5efe4b
Limit systemd-journald log size to 500MB (#2226) (#2435) 2023-04-03 18:44:00 +02:00
Stefan Agner
abc5686462
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-04-03 18:43:57 +02:00
Jens Maus
4a2e53cda4
updated generic_raw_uart to latest 1.28 version and updated rpi-rf-mod (#2431)
package to latest version as well.
2023-03-27 20:28:40 +02:00
Stefan Agner
c0d0d48c45
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 20:28:35 +02:00
Stefan Agner
76b14baa20
Set deployment type to production 2023-03-24 18:45:15 +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
29a740353a
Fix U-Boot environment size for ODROID-M1 (#2403) 2023-03-14 00:18:54 +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
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
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
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