Compare commits

..

1999 Commits

Author SHA1 Message Date
Jan Čermák
b2aa96c9bd Bump OS to pre-release version 15.0.rc1 2025-03-03 09:24:34 +01:00
Jan Čermák
a4cbf82a6f Bump os-agent to v1.7.1 (#3906)
Adds new DBus APIs for NTP servers and swap:
 - https://github.com/home-assistant/os-agent/pull/207
 - https://github.com/home-assistant/os-agent/pull/222
2025-02-28 15:07:31 +01:00
Jan Čermák
6b904abfcd Linux: Update kernel to 6.12.17 (#3905)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.17
2025-02-28 14:19:55 +01:00
Jan Čermák
e801d403e1 Bump BlueZ to v5.79 (#3903)
Cherry-pick bumps up to v5.79 and sync other changes and fixes with latest
upstream state.

* buildroot b4df362187...7d5c3b5e70 (10):
  > package/bluez5_utils: tidy up the init script
  > package/bluez5_utils: install datafiles with correct permissions
  > package/bluez5_utils: fix dbusconfdir
  > package/bluez5_utils{, -headers}: bump version to 5.79
  > package/bluez5_utils: enable asha/bass when building audio plugins
  > package/{bluez5_utils, bluez5_utils-headers}: bump to version 5.78
  > bluez5_utils: disable asha profile
  > package/{bluez5_utils, bluez5_utils-headers}: bump to version 5.77
  > package/bluez5_utils: disable datafiles
  > package/bluez5_utils: fix sixaxis build without tools
2025-02-26 23:07:14 +01:00
Jan Čermák
15be152345 Update Docker to v28.0.1 (#3902)
Update Docker to latest version and containerd to latest version from the 1.7
line. Runc updated to v1.2.5 with rebased patchset from the outstanding PR.

* buildroot 257ddc70ce...b4df362187 (4):
  > package/runc: bump version to v1.2.5
  > package/docker-cli: bump version to v28.0.1
  > package/docker-engine: bump version to v28.0.1
  > package/containerd: bump version to v1.7.25
2025-02-26 17:22:39 +01:00
Jan Čermák
40ef226872 Update linux-firmware to 20250211 (#3901)
Mainly the amdgpu updates cause an increase of generic-x86-64 image size by
~12MB but there's still enough of space in the rootfs after recent cleanup.

* buildroot c5a1cbcf73...257ddc70ce (9):
  > package/linux-firmware: bump Intel BZ firmware version to 92
  > package/linux-firmware: bump version to 20250211
  > package/linux-firmware: bump version to 20241210
  > package/linux-firmware: fix build failures to due RTL8723 file changes
  > package/linux-firmware: bump version to 20240909
  > package/linux-firmware: bump to version 20240709
  > package/linux-firmware: improve help text for Realtek 88xx Bluetooth firmware
  > package/linux-firmware: install all rtl88 Bluetooth binary blobs
  > package/linux-firmware: RTL_88XX_BT: install all firmware
2025-02-26 13:45:53 +01:00
Jan Čermák
b3ce7131af Disable linux-firmware zstd compression (#3898)
Disable downstream option for linux-firmware compression. With #3877 it's not
needed for x86 anymore and other boards don't need it. Eventually the higher
EROFS compression for firmwares and modules can be enabled for other targets as
well.
2025-02-25 15:16:58 +01:00
Jan Čermák
f5905569b0 Bump buildroot to 2024.02.11 (#3897)
* buildroot 92fab35fed...c5a1cbcf73 (1):
  > Merge tag '2024.02.11' into 2024.02.x-haos
2025-02-25 15:16:46 +01:00
pisanvs
bdcc2b90d5 Improve log clarity and fix typos (#3896) 2025-02-25 15:00:39 +01:00
Jan Čermák
714ca8a344 Drop kernel patch for fixed ODROID-M1/M1S kernel regression (#3895)
Patch added in #3843 is not necessary anymore, as the missing reset names have
been added to DTS includes of the 6.12.y branch as patch
6c9cd0a70ccea8a505471062a85de5626ad07cec (released in v6.12.14).
2025-02-24 17:13:45 +01:00
dependabot[bot]
f032cd571a Bump docker/build-push-action from 6.13.0 to 6.14.0 (#3894)
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.13.0 to 6.14.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v6.13.0...v6.14.0)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-24 16:24:34 +01:00
Jan Čermák
ea40984603 Linux: Update kernel to 6.12.16 (#3892)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.15
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.16
2025-02-24 15:17:51 +01:00
Jan Čermák
56e3a377db Fix RAUC tryboot handler set-state idempotency, add more checks (#3891)
When RPi is booted in the tryboot state and the set-state operation is called
for the second time, the tryboot files don't exists anymore and the handler
exits with an error code, printing an error in the Supervisor logs. Fix
handling of this case and add few more checks to make the handler a bit more
robust/traceable.
2025-02-24 15:17:43 +01:00
Jan Čermák
8531e7b57d Remove all info pages in post-build script (#3888)
As we don't have the info utility in HAOS, it's worthless to preserve info
pages. While there are currently some files in /share/info (coming from GRUB2
tools install), /usr/share/info was added pre-emptively.
2025-02-20 17:50:38 +01:00
Jan Čermák
664ae4ebfc Remove unnecessary GRUB userspace tools and other files (#3887)
Because the OTA hooks interact with GRUB environment using grub-editenv, we
have BR2_TARGET_GRUB2_INSTALL_TOOLS enabled. However, that brings massive bloat
of files that are never used in HAOS, as it also installs many other binaries,
GRUB modules and translations.

As it's not possible to configure what gets installed in grub2 package, remove
the undesired files in the post-build function. This brings savings of ~8.5MB
of space in the root partition.
2025-02-20 17:50:21 +01:00
Jan Čermák
e158fbc834 Use auditd to process AppArmor/audit logs (#3885)
Use auditd so logs from AppArmor and other audit events are processed by that
instead of printed to the Systemd journal. This will reduce the log spam from
BPF usually present in host logs and still preserve the audit logs for
debugging.

The default configs seems to be sane for our purpose, rotating up to 5 files of
8MiB each. The difference is that /var/log/audit will be now on tmpfs but given
how AppArmor is used on typical HA setup, we don't need to preserve the logs
over reboots.
2025-02-20 17:45:23 +01:00
Jan Čermák
4ab51e780c Remove unnecessary and invalid e2scrub removal from post-build (#3886)
Removal of the e2scrub binary is not needed anymore, as it's not installed and
only BR2_PACKAGE_E2FSPROGS_E2IMAGE is enabled. Moreover, it's been probably
wrong since the very beginning, as the TARGET_DIR prefix was missing, possibly
leading to removal of the binary from the host/builder.
2025-02-20 14:16:56 +01:00
Jan Čermák
e455669d62 Move swappiness config to 15-swappiness.conf (#3884) 2025-02-19 21:51:39 +01:00
Jan Čermák
1b511990e3 Allow overriding sysctl parameters via /etc/sysctl.d files (#3883)
Relocate current content of /etc/sysctl.d to /usr/lib and make the /etc folder
writable via a bind mount.
2025-02-19 15:33:16 +01:00
Jan Čermák
d42e34f646 Make swap size configurable (#3882)
Allow configuration of the swap size via /etc/default/haos-swapfile file. By
setting the SWAPSIZE variable in this file, swapfile get recreated on the next
reboot to the defined size. Size can be either in bytes or with optional units
(B/K/M/G, accepting some variations but always interpreted as power of 10). The
size is then rounded to 4k block size. If no override is defined or the value
can't be parsed, it falls back to previously used 33% of system RAM.

Fixes #968
2025-02-19 15:33:04 +01:00
Jan Čermák
dc7b693691 Update U-Boot to 2025.01 (#3878)
* Refresh fileenv patch for U-Boot 2025.01

* Update Tinker to U-Boot 2025.01

Needs minor patch adjustment, also fixed patch numbering.

* Update ODROID-N2 to U-Boot 2025.01, move eMMC patch

Move the patch for eMMC so it's applied only for N2 specifically and update it
for 2025.01.

* Update ODROID-C/XU to U-Boot 2025.01

No changes in patches necessary after moving the N2 patch.

* Update RPi boards to U-Boot 2025.01

Changes needed in bcmstb PCIe driver due to upstream refactoring, rest only
refreshed. All patches now target the same version, so we can drop one of the
series.

* Update VIM3 to U-Boot 2025.01

No patches here, just version bump.

* Update Green to U-Boot 2025.01

Updated and refreshed patches, added a patch to disable OF_UPSTREAM which is
now needed.

* Update ODROID-M1 to U-Boot 2025.01

Drop patch that has been mostly merged upstream. The change is that HS400 would
stay enabled but let's get back to what upstream does.

* Update ODROID-M1 to U-Boot 2025.01

Drop all patches as M1S support should be now merged to U-Boot and DTS taken
from upstream.

* Disable DFU and mkeficapsule to fix build

mkeficapsule requires gnutls to be built first but it's not among dependencies.
Since we don't need the tool, we can disable it.

DFU is also not used on HAOS and it implies EFI_LOADER that we already disable.
Moreover, that also sets SET_DFU_ALT_INFO and leads to linker failure on some
platforms where it's not implemented.

* fixup! Update Green to U-Boot 2025.01

There were more changes needed in the Green config to use correct memory layout
due to upstream changes, otherwise we'll have malloc failures in U-Boot proper.

* Move N2 eMMC patch to more generic patches-meson

To stay on the safe side, move the eMMC hack to more generic folder that's used
for all targets using the meson_gx eMMC driver (i.e. C2, C4 and N2). This is
still better than keeping it in hardkernel/patches which is applied only to
some hardkernel boards (like it was before bump to U-Boot 20205.01).
2025-02-18 13:48:24 +01:00
Jan Čermák
22ed3864dd Linux: Update kernel to 6.12.14 (#3881)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.14
2025-02-18 11:41:09 +01:00
Jan Čermák
3a666bbeea Use EROFS LZMA compression of firmware on x86 instead of per-file ZSTD (#3877)
Instead of using per-file ZSTD compression, compress firmware (and newly also
kernel modules) using LZMA within EROFS image. LZMA was picked because ZSTD
support in EROFS is still experimental and due to some limitations in the
implementation, the compression takes significantly more time.

This change gives us more control over compression of the files and with the
proposed settings, saves a bit of the space (~10 MiB) in the resulting image.
In theory, even higher savings could be achieved through compressing other
runtime binaries, but this would need to be thoroughly tested whether it
doesn't have any detrimental effects. For firmware and modules, the overhead
should be minimal, as they are usually touched only once per boot and are
rather small before decompression.

* buildroot 74994c4f32...92fab35fed (6):
  > fs/erofs: add custom compression option with optional compress-hints file
  > package/erofs-utils: bump to version 1.8.5
  > package/erofs-utils: bump to version 1.8.3
  > package/erofs-utils: bump to version 1.8.2
  > package/erofs-utils: bump to version 1.8.1
  > package/erofs-utils: add libdeflate and zlib optional dependencies
2025-02-14 12:27:39 +01:00
Jan Čermák
5fcf2932a6 Update firmware for Intel Wi-Fi 6/6E/7 cards, bump linux-firmware to 20240513 (#3876)
* buildroot 014c3fad50...74994c4f32 (2):
  > package/linux-firmware: update Intel iwlwifi firmware versions for Linux 6.12
  > package/linux-firmware: bump version to 20240513
2025-02-12 22:10:42 +01:00
Jan Čermák
43d26c8c54 Linux: Update kernel to 6.12.13 (#3868)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.13
2025-02-10 15:35:54 +01:00
dependabot[bot]
072ba9bade Bump docker/setup-buildx-action from 3.8.0 to 3.9.0 (#3869)
Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 3.8.0 to 3.9.0.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](https://github.com/docker/setup-buildx-action/compare/v3.8.0...v3.9.0)

---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-10 14:57:53 +01:00
Jan Čermák
970cd4dfeb Fix order of patches for Yellow (#3862)
After #3856, we need to change the patch order also for Yellow.
2025-02-05 18:18:45 +01:00
Jan Čermák
2dda7a0e75 Enable Intel 40 Gigabit ethernet driver module for x86-64 and OVA (#3858)
Enable Intel 40 Gigabit (aka 700 series) driver, used e.g. on MinisForum MS-01
for the SFP+ ports.

Fixes #3751
2025-02-04 18:33:52 +01:00
Jan Čermák
0ac5f029e6 Linux: Update kernel to 6.12.12 (#3859)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.12
2025-02-04 18:32:36 +01:00
Jan Čermák
aafe82f801 RaspberryPi: Update kernel to 6.6.74 - stable_20250127 (#3860)
* RaspberryPi: Update kernel to 6.6.74 - stable_20250127

* Bump buildroot to update rpi-firmware

* buildroot 71cba6c610...014c3fad50 (1):
  > package/rpi-firmware: bump to version 1.20250127 for kernel 6.6.74

* Update patch for disabling CQE on CM5

The bool has been changed to a cell, adding the possibility to change the value
via sd_cqe dt_param both on CM5 and Pi5. Set it to disabled by default on CM5.
2025-02-04 18:29:42 +01:00
Jan Čermák
1d5e86ad77 Disable UAS via usb-storage.quirks on RPi for JMicron JMS578 (#3857)
Reported in/fixes #3827
2025-02-04 13:13:50 +01:00
Jan Čermák
47309b4a10 Backport upstream patch to fix downstream patch collision in RPi 6.6 kernel (#3856)
Because of refactoring/code quality improvements in upstream, IPv6 reachability
patch no longer applied on 6.12 kernel. We added two versions of the patch to
address this initially, however, this requires updating of the patch directory
name on every kernel bump. Backport the patch causing collision instead to RPi
kernel, so we can carry only one version of the patch.

This also requires swapping of the patching order - now we first apply
board-specific patches, then the global ones. Unless there are collisions,
these operations should be idempontent, so at this point it shouldn't have any
side-effects.
2025-02-04 13:13:40 +01:00
Jan Čermák
b5b2f5da07 Remove USB stack patches working around obsoleted Z-Wave devices issues (#3854)
* Remove USB stack patches working around obsoleted Z-Wave devices issues

In #3224 we've introduced a patch reverting some changes in the USB stack that
was supposed to work around issues with some USB devices. Later discussions
revealed these devices are obsoleted by the manufacturer and there is no
official way of fixing those in newer Linux kernels. However, carrying the
patches makes us diverge from upstream and can eventually trigger other
problems not present upstream we'll have to handle.

Drop these patches now to be part of the upcoming OS 15 release, rather than
needing to drop them later in any of the patch revisions later.

* Also remove the patch from board/raspberrypi patches
2025-02-04 11:42:59 +01:00
Ricardo Pardini
c63f9ec84a Allow boot from USB and NVMe on ODROID-M1 (#3852)
Use devtype instead of hardcoding device type to mmc in U-Boot script

Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
2025-02-03 14:46:01 +01:00
Jan Čermák
9a760a2e28 Update all platforms to latest stable Linux 6.12 (#3850)
* Upgrade Rockchip platforms to Linux 6.12

Upgrade all Rockchip boards to latest 6.12. Patches for M1S can be dropped, its
DTS has been merged. Same goes for the Rockchip TRNG, it only had to be enabled
in the Green DTS. Patch for broken combphy has been updated for 6.12.y.

* Remove deprecated and nonsense symbols from Rockchip defconfig

Many symbols have been removed between 6.6 and 6.12. Most of them have no use
in Rockchip defconfig, or should be set by other kernel fragments anyway.
Remove all of them, with the exception of USB_ONBOARD_HUB (which was renamed to
USB_ONBOARD_DEV) and FSCACHE (which was changed from tristate to bool).

* Update generic-aarch64 to Linux 6.12

* Update Amlogic-based ODROID boards to Linux 6.12

Removed couple of deprecated/unrelated kernel options.

* Update VIM3 to Linux 6.12

Cleaned up symbols unrelated/deprecated in 6.12 from defconfig.

* Update ODROID-XU4 to Linux 6.12

The usual defconfigs suspects had to been removed and the regulator patch for
ethernet needed a minor update after refactoring in upstream.

* Update Tinker to Linux 6.12

Needed defconfig cleanup for 6.12, otherwise no changes.

* Update x86 and OVA to latest 6.12 release

This way the extra patches directory can be removed too.

* Remove 6.6.73 patches

* Refresh all linux patch series against 6.12.11 sources

* Reenable HW RNG on M1S to speed up boot

The TRNG on RK3566 supposedly [1] has low quality, that's why it's disabled in
upstream for this SoC. We had it enabled in the past and without it, the boot
is delayed by quite a lot. Enable it again for now and investigate the RNG
issues later.

[1] https://patchew.org/linux/cover.1722355365.git.daniel@makrotopia.org/

* Also remove CACHEFILES module from Rockchip config

It was only enabled for Rockchip and Tinker, and to my knowledge there is no
cachefiles daemon or anything other in the userspace that's using it.

* Remove unused 6.6.y fragments

Since we only have 6.6.y for Raspberry Pi now, it doesn't need the Rockchip and
wireless PCI fragments.
2025-02-03 14:35:22 +01:00
Jan Čermák
f56130af19 Revert kernel patch causing USB 3 and PCIe breakage on ODROID-M1/M1S (#3843)
Revert the patch changing phy reset behavior, requiring also changes in the
device tree that are missing in the stable backport. The issue was reported to
the regressions mailing list and hopefully future patch release should contain
a proper fix.

The patch is added to the patches-rockchip directory, potentially affecting
Green as well, although the broken peripherals are not used there.

Fixes #3837, fixes #3841
2025-01-30 11:36:01 +01:00
Jan Čermák
ffca0b30a9 Fix RPi 5 getting stuck in bootloader after some reboots (#3842)
Probably since home-assistant/supervisor#5276 introduced in Supervisor
2024.9.0, RAUC bootloader handler for tryboot can set the tryboot flag also
when the tryboot file is not present, causing the Pi to become stuck in
bootloader, trying to load the tryboot file.

This happens when the device is already in the tryboot state, in that case the
tryboot files and flag are created by set-primary and in turn the files are
removed in set-state, while the flag is persisted, causing the bootloader to
attempt loading non-existing file.

To avoid unnecessary juggling with tryboot/config files, only create them and
set the flag if the boot slot is different than the current one. Also, make
sure that the flag is reboot parameter is cleared when the tryboot files are
removed by the handler.

Fixes #3740
2025-01-30 11:35:51 +01:00
Jan Čermák
f9776abb6a Update OVA to Linux 6.12 (#3845)
* Update OVA to Linux 6.12

* Remove obsolete I2C_COMPAT option

Same as on x86, this symbol was removed upstream.

* Disable linux-tools hypervfcopyd option

It was removed from Linux beginning in 6.9, see:
https://lore.kernel.org/all/1711788723-8593-7-git-send-email-ssengar@linux.microsoft.com/
2025-01-30 11:35:41 +01:00
Nick Venenga
fbd5c2c751 Update generic-x86-64 Linux kernel to 6.12 (#3767)
* Linux: Update kernel to 6.12.6

* Linux 6.12

* https://github.com/home-assistant/operating-system/pull/3767#discussion_r1899169881

* https://github.com/home-assistant/operating-system/pull/3767#discussion_r1899170543

* Add patch descriptions, kernel ver conditionals

Signed-off-by: Nick Venenga <nick@venenga.com>

* Remove extra zram compression algos

* Undo fragment files config change

...for platforms that didn't receive kernel updates

* Sort Dockerfile apt packages

* Add Upstream refs to patches

* Re-enable TC

* Restore v6.6.y kernel fragments

* Update buildroot to rebased branch

* Apply 6.12 migration only to generic-x86-64

* package/eq3_char_loop: port patch from RaspberryMatic by @jens-maus

* package/generic_raw_uart: port patch from RaspberryMatic by @jens-maus

* Restore buildroot-external/board/pc/patches/linux

It's used in ova and generic-aarch64 defconfigs. Keep the path removed from
generic-x86-64 defconfig.

* Split linux patches to be version-specific

The IPv6 reachability patch needs different context on 6.6.y and 6.12.y -
introduce version-specific linux directories. To avoid the need for extra
directory for version used in RPi, copy those patches to its patches directory.

* Replace removed Intel Skylake audio driver with Intel AVS

The Skylake driver was removed and should be now replaced either by Intel HD
Audio or Intel AVS. Remove the old options and enable AVS.

SND_SOC_INTEL_SKYLAKE=m not found (defined in /build/buildroot-external/board/pc/generic-x86-64/kernel.config:63)
SND_SOC_INTEL_SKL=m not found (defined in /build/buildroot-external/board/pc/generic-x86-64/kernel.config:64)
SND_SOC_INTEL_APL=m not found (defined in /build/buildroot-external/board/pc/generic-x86-64/kernel.config:65)
SND_SOC_INTEL_KBL=m not found (defined in /build/buildroot-external/board/pc/generic-x86-64/kernel.config:66)
SND_SOC_INTEL_GLK=m not found (defined in /build/buildroot-external/board/pc/generic-x86-64/kernel.config:67)
SND_SOC_INTEL_CNL=m not found (defined in /build/buildroot-external/board/pc/generic-x86-64/kernel.config:68)
SND_SOC_INTEL_CFL=m not found (defined in /build/buildroot-external/board/pc/generic-x86-64/kernel.config:69)
SND_SOC_INTEL_CML_H=m not found (defined in /build/buildroot-external/board/pc/generic-x86-64/kernel.config:70)
SND_SOC_INTEL_CML_LP=m not found (defined in /build/buildroot-external/board/pc/generic-x86-64/kernel.config:71)
SND_SOC_INTEL_SKYLAKE_FAMILY=m not found (defined in /build/buildroot-external/board/pc/generic-x86-64/kernel.config:72)
SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC=y not found (defined in /build/buildroot-external/board/pc/generic-x86-64/kernel.config:73)
SND_SOC_INTEL_SKYLAKE_COMMON=m not found (defined in /build/buildroot-external/board/pc/generic-x86-64/kernel.config:74)
-> a882f4d750

SND_SOC_INTEL_SST=m requested, actual = n (defined in /build/buildroot-external/board/pc/generic-x86-64/kernel.config:58)
-> 970d299b0a

* Remove I2C_COMPAT option

I2C_COMPAT=y not found (defined in /build/buildroot-external/board/pc/generic-x86-64/kernel.config:163)
-> 7e722083fc

* Correctly disable module compression after Kconfig change

The Kconfig structure was changed, there's now a top-level bool:
c7ff693fa2

---------

Signed-off-by: Nick Venenga <nick@venenga.com>
Co-authored-by: Jan Čermák <sairon@sairon.cz>
2025-01-28 14:57:07 +01:00
Jan Čermák
4919e4e26c Use Python 3.13 for the build and artifacts index jobs (#3840) 2025-01-28 13:51:18 +01:00
Michal Šimek
7eccef8a18 Change Cadence i2c and Zynq GPIO from modules to built-in drivers (#3821)
On Kria KD240 slg7xl45106 device is handling reset for USB hub which is
providing access to SD card (USB/SD converter). Access to this device is
done via i2c which needs to be also enabled in the kernel as built-in
driver not as module when rootfs is mounted.

Also change ZYNQ_GPIO to be built-in driver because i2c is using gpio for
bus recovery that's why it should be also enabled to probe i2c driver
properly.

v6.6 kernel doesn't have support for usb5744 driver that's why disable it
but add TODO to enable it once v6.12 upgrade is done.
2025-01-28 13:05:02 +01:00
dependabot[bot]
c6218aafd8 Bump docker/build-push-action from 6.12.0 to 6.13.0 (#3836)
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.12.0 to 6.13.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v6.12.0...v6.13.0)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-27 16:26:40 +01:00
dependabot[bot]
f51d6b0490 Bump actions/stale from 9.0.0 to 9.1.0 (#3835) 2025-01-27 15:21:53 +01:00
Jan Čermák
4fb83d5480 Merge branch 'main' into dev 2025-01-27 13:47:53 +01:00
Jan Čermák
da08a45d9f Bump OS to release version 14.2 2025-01-27 09:29:31 +01:00
Jan Čermák
6f51b80db5 Bump OS to pre-release version 14.2.rc2 2025-01-21 22:44:51 +01:00
Jan Čermák
478f652e8c Fix linux-pam trying to include disabled pam_lastlog.so on login (#3815)
Build of pam_lastlog.so was disabled by updating to v1.5.3 [1] yet the line
wasn't removed from the login modules. In upstream this was resolved by adding
a config option for turning the lastlog module and dynamic disabling of the
line including it. These changes neither a fix removing the config line were
not applied to 2024.02, so cherry-pick them here to fix the issue.

* buildroot ff563b383d...3784884466 (2):
  > package/linux-pam: adjust login pam file for lastlog
  > package/linux-pam: add menuconfig option to build pam_lastlog.so

Fixes #3789

[1] https://github.com/linux-pam/linux-pam/releases/tag/v1.5.3

(cherry picked from commit af7b36e100)
2025-01-21 22:44:28 +01:00
Jan Čermák
8db3b9f848 Linux: Update kernel to 6.6.73 (#3813)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.72
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.73

(cherry picked from commit 235d7e0a4d)
2025-01-21 22:43:34 +01:00
Michal Šimek
5a502ca44c Enable USB-SD convertor on AMD/Xilinx Kria KD240 platform (#3812)
* Enable USB-SD convertor on AMD/Xilinx Kria KD240 platform

Kria KD240 board is using SD card but SD is connected via onboard USB HUB.
USB controller is DWC3 with Xilinx glue logic. Both of these options are
enabled but board is using slg7xl45106 for driving usb-hub reset (PCA9570
driver) and USB3.0 requires initialization via PHY_XILINX_ZYNQMP driver.

All options should be enabled (=y) and can't be kernel modules because
provide access to rootfs.

* Add a note for config symbol change in 6.12

Changed in mainline commit 31e7f6c015d9eb35e77ae9868801c53ab0ff19ac

---------

Co-authored-by: Jan Čermák <sairon@users.noreply.github.com>
(cherry picked from commit 64ee53579b)
2025-01-21 22:43:24 +01:00
Jan Čermák
a9efc21cb5 Bump Buildroot to 2024.02.10 (#3811)
* buildroot 00e8f09356...ff563b383d (1):
  > Merge tag '2024.02.10' into 2024.02.x-haos

(cherry picked from commit a7cdebf032)
2025-01-21 22:43:21 +01:00
dependabot[bot]
ed4463ed97 Bump docker/build-push-action from 6.11.0 to 6.12.0 (#3809)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
(cherry picked from commit a9af9c8d35)
2025-01-21 22:43:17 +01:00
Jan Čermák
8233cb94cd Fix kernel tainted test (#3818)
I have only tested that it fails for unreleased 6.6.72 kernel but haven't
tested the happy path and missed that it also failed because the types were
different. Stupid me.
2025-01-21 22:41:53 +01:00
Jan Čermák
48bf9b5056 Move rauc.db to boot partition (#3810)
* Move rauc.db to boot partition

The RAUC metadata file contains information that is tightly related to the
system and kernel partitions. With the possibility to migrate data disk, the
rauc.db can contain bogus information when moved to a different system. Removal
of the file on "device wipe" is also not desirable, because the information
about slot status is lost.

Relocate the rauc.db to the boot partition after a system upgrade (as this
can't be handled by RAUC hooks, because it needs to be executed after all slots
and metadata is written) and adjust the script for recreating it. The downside
is that its content in /mnt/data would be recreated if the boot slot is changed
or system downgraded but this should be handled quite gracefully.

Also remove the raucdb-first-boot service which is no longer necessary
with the file not present in the data partition.

* Fix shellcheck and mount path
2025-01-21 18:40:07 +01:00
Jan Čermák
af7b36e100 Fix linux-pam trying to include disabled pam_lastlog.so on login (#3815)
Build of pam_lastlog.so was disabled by updating to v1.5.3 [1] yet the line
wasn't removed from the login modules. In upstream this was resolved by adding
a config option for turning the lastlog module and dynamic disabling of the
line including it. These changes neither a fix removing the config line were
not applied to 2024.02, so cherry-pick them here to fix the issue.

* buildroot ff563b383d...3784884466 (2):
  > package/linux-pam: adjust login pam file for lastlog
  > package/linux-pam: add menuconfig option to build pam_lastlog.so

Fixes #3789

[1] https://github.com/linux-pam/linux-pam/releases/tag/v1.5.3
2025-01-21 18:39:58 +01:00
Jan Čermák
235d7e0a4d Linux: Update kernel to 6.6.73 (#3813)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.72
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.73
2025-01-21 16:56:05 +01:00
Jan Čermák
ca02ed000b Add check for tainted kernel to automatic tests (#3814)
Add test that the kernel isn't tainted at the end of the basic and supervisor
test suites, allowing us to catch e.g. kernel warnings that may left unnoticed
if dmesg isn't checked. There is no other source of tainting, so the value
should be always zero.
2025-01-21 16:55:49 +01:00
Michal Šimek
64ee53579b Enable USB-SD convertor on AMD/Xilinx Kria KD240 platform (#3812)
* Enable USB-SD convertor on AMD/Xilinx Kria KD240 platform

Kria KD240 board is using SD card but SD is connected via onboard USB HUB.
USB controller is DWC3 with Xilinx glue logic. Both of these options are
enabled but board is using slg7xl45106 for driving usb-hub reset (PCA9570
driver) and USB3.0 requires initialization via PHY_XILINX_ZYNQMP driver.

All options should be enabled (=y) and can't be kernel modules because
provide access to rootfs.

* Add a note for config symbol change in 6.12

Changed in mainline commit 31e7f6c015d9eb35e77ae9868801c53ab0ff19ac

---------

Co-authored-by: Jan Čermák <sairon@users.noreply.github.com>
2025-01-21 13:01:12 +01:00
Jan Čermák
a7cdebf032 Bump Buildroot to 2024.02.10 (#3811)
* buildroot 00e8f09356...ff563b383d (1):
  > Merge tag '2024.02.10' into 2024.02.x-haos
2025-01-21 12:42:20 +01:00
dependabot[bot]
a9af9c8d35 Bump docker/build-push-action from 6.11.0 to 6.12.0 (#3809)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-20 14:50:05 +01:00
Jan Čermák
219d7ec530 Fix artifacts index job by downgrading awscli (#3805)
Similarly to #3803, artifact index update fails because the R2 doesn't
like the new awscli. The regression apparently comes from 1.37.0 as
well, so pin to version older than that.
2025-01-17 15:50:21 +01:00
Jan Čermák
267679b192 Bump OS to development version 15.0.dev0 2025-01-17 13:12:50 +01:00
Jan Čermák
07e1cedeb8 Pin awscli to older version to work around R2 issues (#3803)
CI job fails to upload build artifacts because R2 doesn't support
checksums [1]. This was added in awscli 1.37.0 [2], pin to a version
older than that to work around the issue before R2 supports it or
ignores the header.

[1] https://www.cloudflarestatus.com/incidents/t5nrjmpxc1cj
[2] https://github.com/aws/aws-cli/blob/develop/CHANGELOG.rst
2025-01-17 10:03:17 +01:00
Jan Čermák
beafcda863 Bump OS to pre-release version 14.2.rc1 2025-01-16 18:12:43 +01:00
Jan Čermák
6ef7a68a1d Make usb_modeswitch include directory writable (#3800)
The /etc/usb_modeswitch.d is present and empty but it can't be written to allow
user modification. Bind-mount it like other /etc folders to make it possible to
adjust usb_modeswitch config.

Fixes #3785
2025-01-16 18:11:35 +01:00
Jan Čermák
d9fb660152 Enable ES1371 sound card module for VMWare guests (#3799)
VMWare has option to emulate ES1371 soundcard which supposedly works better
than the default hdaudio. Enable its driver for the OVA image.

Fixes #3778
2025-01-16 18:11:03 +01:00
Michal Šimek
b8b1e255b1 Enable AMD 1-wire AXI IP and Zynq GPIO drivers (#3795)
Zynq GPIO driver is used on AMD/Xilinx Kria platform for ETH phy reset.
Macb and PHY drivers are already enabled.
1 wire IP can be used for reading sensors via PMOD connector.
2025-01-15 18:44:45 +01:00
Jan Čermák
4baca32658 Disable CQE on mmc0 to fix I/O freezes on CM5 (#3793)
Similarly to #3705, enabled CQE triggers I/O freezes usually on the first boot
when the swapfile is being created. While we disabled it for Yellow, with #3782
the issue started to appear on generic CM5 targets with the rpi5-64 image.

In the meantime it was discovered that there seems to be some relation with the
ext4lazyinit task, which happens as a result of data partition resize, yet it's
still unclear if the pattern of the access triggered by the concurrent FS
initialization is somehow responsible, or if another factor comes in play.
Disabling CQE yet makes the issue go away and serves as an acceptable
workaround.
2025-01-15 18:00:56 +01:00
Jan Čermák
f3d83d2650 Linux: Update kernel to 6.6.71 (#3792)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.70
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.71
2025-01-15 17:51:24 +01:00
M. Greyson Christoforo
16eb245f43 Add Mellanox ConnectX-3 NIC support (#3775)
Enable MLX4 kernel options, mainly for OVA and x86.

Co-authored-by: Jan Čermák <sairon@sairon.cz>
2025-01-15 10:31:10 +01:00
Gunjan Gupta
cd04812e9e Allow boot from USB and NVMe on Khadas VIM3 (#3784)
Use devtype instead of hardcoding device type to mmc in U-Boot script.

Signed-off-by: Gunjan Gupta <gunjan@wesion.com>
2025-01-15 09:59:11 +01:00
dependabot[bot]
c0bf2751c4 Bump docker/build-push-action from 6.10.0 to 6.11.0 (#3791)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-13 14:35:42 +01:00
Jan Čermák
c7e21c0cf2 Add all BCM2712 device trees to RPi 5 image (#3782)
RPi 5 images container only device tree for Pi 5 Model B. Add the other
remaining BCM2712 device trees to enable running on CM5 and other variants
supported upstream.

Fixes #3766
2025-01-09 23:14:00 +01:00
Jan Čermák
f778edfac3 Change RPi bootargs order to keep cgroup memory controller enabled (#3772)
With "cgroup: Use kernel command line to disable memory cgroup" merged to RPi
kernel as 86099de [1], the device tree now contains "cgroup_disable=memory"
parameter. The parameters are parsed in the order defined in the cmdline and
with the previous order, the memory CG ends up disabled. Switching the order
fixes that and makes the order similar to what we get with standard bootloader
and parameters in cmdline.txt only.

The possible downside is that it won't be possible to override parameters from
hardcoded bootargs_hassos using cmdline.txt anymore, however, it's unlikely any
of these parameters will need to be adjusted by users.

Fixes #3765

[1] 86099deff5
2025-01-08 10:58:33 +01:00
Jan Čermák
a842fffa5b Linux: Update kernel to 6.6.69 (#3773)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.67
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.68
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.69
2025-01-08 10:58:20 +01:00
Jan Čermák
29c8cf8440 Remove Z3FOLD option from Tinker kernel config (#3755)
The z3fold allocator was deprecated with the reasoning explained in [1] and
this patch was backported to stable 6.6.y as well. We enable zsmalloc in shared
hassos.config and the enabled option in the Tinker config was probably just
some remnant from the past.

[1] https://lore.kernel.org/linux-mm/20240904233343.933462-1-yosryahmed@google.com/
2024-12-19 13:59:52 +01:00
Jan Čermák
b02eee1af5 Remove unapplied BRCM_TRACING option from Rockchip kernel config (#3754)
The Rockchip config contained BRCM_TRACING option which had no effect without
TRACING enabled. The option now depends on that option since [1], resulting in
warning in our config checker.

[1] https://lore.kernel.org/lkml/81a29b15eaacc1ac1fb421bdace9ac0c3385f40f.1727179742.git.geert@linux-m68k.org/
2024-12-19 13:59:40 +01:00
Jan Čermák
52774c451c Merge branch 'main' into dev 2024-12-19 11:43:30 +01:00
Jan Čermák
07159c8225 Bump OS to release version 14.1 2024-12-19 08:09:46 +01:00
Jan Čermák
2c2f88b270 Bump OS to development version 14.2.dev0 2024-12-17 10:43:02 +01:00
Jan Čermák
baa3f7871b Bump OS to pre-release version 14.1.rc1 2024-12-17 09:26:31 +01:00
Jan Čermák
48edf7a114 Bump Buildroot to 2024.02.9 (#3745)
* buildroot b2077df873...00e8f09356 (1):
  > Merge tag '2024.02.9' into 2024.02.x-haos
2024-12-16 16:53:52 +01:00
Jan Čermák
79a90f81ff Linux: Update kernel to 6.6.66 (#3744)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.66
2024-12-16 16:47:04 +01:00
dependabot[bot]
bb280e796f Bump docker/setup-buildx-action from 3.7.1 to 3.8.0 (#3746)
Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 3.7.1 to 3.8.0.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](https://github.com/docker/setup-buildx-action/compare/v3.7.1...v3.8.0)

---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-16 15:53:52 +01:00
Jan Čermák
765f4daaa2 Enable TCPMSS target iptables module for all boards (#3739)
The TCPMSS target module for iptables was enabled in some kernel defconfigs but
not for all targets. It is used e.g. in default config of @bigmoby's WireGuard
Client add-on. Enable it globally in the HAOS kernel config to make sure it's
always present.

Fixes #3730
2024-12-12 20:44:30 +01:00
Jan Čermák
c7a9a0b906 Remove existing rauc.db from a data disk on the first boot (#3737)
If data disk is adopted on Yellow using the mechanism added in #3686, it
contains RAUC version information that is very likely invalid. In such case,
remove the file on first boot and have it recreated by the raucdb-update
service.
2024-12-12 20:44:15 +01:00
Jan Čermák
3b0b0312f6 Add Hailo PCIe driver and firmware for x86-64, aarch64 and OVA (#3736)
Hailo modules are usable also in other generic targets, so enable them also on
generic x86 and ARM targets. Runtime tested only on x86-64 (Beelink with Intel
N100).
2024-12-12 20:44:02 +01:00
Jan Čermák
d06aa63e3f Add Hailo PCIe driver and firmware for Yellow (#3734)
The PCIe card from the RPi AI Kit (and probably other M.2 cards using the
Hailo-8 chip) can be used on Yellow - the driver initializes correctly and
creates a /dev/hailo0 device on Yellow both with CM4 and CM5.
2024-12-12 20:43:38 +01:00
Jan Čermák
70318701ea Linux: Update kernel to 6.6.65 (#3733)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.65
2024-12-11 19:05:25 +01:00
Jan Čermák
434b83722f Add HA Yellow image to RPi Imager index update action (#3731)
* Add HA Yellow image to RPi Imager index update action

Update the action to also bump HA Yellow image added in
home-assistant/version#402.

* Sync image name with the current JSON PR
2024-12-11 17:01:47 +01:00
Jan Čermák
e30cf80066 Compile hailo_pci module from original sources on RPi 5 (#3732)
Instead of using in-tree module on RPi 5, build it as a module from the
original sources. This will give us better control over the version used and
will also allow us for easier way to add the module to other platforms.

This also makes 017d172 unnecessary anymore.
2024-12-11 15:13:20 +01:00
Jan Čermák
2b30e2bf53 Linux: Update kernel to 6.6.64 (#3728)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.64
2024-12-09 20:01:36 +01:00
Jan Čermák
017d17291d Fix Hailo-8 firmware path expected since driver v4.19.0 (#3721)
The new driver now expects the firmware file to contain version number, adjust
the path and remove unnecessary makefile step.
2024-12-06 15:17:32 +01:00
Jan Čermák
ce1e261fa4 Bump RPi SDIO WiFi firmware to latest version (#3719)
* buildroot c65b0306bb...b2077df873 (1):
  > package/brcmfmac_sdio-firmware-rpi: bump version to 4c1789e

Raspberry Pi kernel 6.6 driver for BCM43455 (used in RPi 3B+/4B) calls new API
which uses the DUMP_OBSS feature for channel selection. If it's not preset, it
results in drivers reporting errors, e.g.:

brcmf_set_channel: set chanspec 0xd099 fail, reason -52

The RPi OS firmware was updated but the package we use for this firmware
contains an old version that lacks this support. Update to latest version
synced from RPi upstream to fix the issues. The root cause is explained in [1]
by @ragazenta. Both disabling the DUMP_OBSS and updating the firmware makes the
errors go away.

[1] https://github.com/raspberrypi/linux/issues/6049#issuecomment-2485431104

Fixes #3367
2024-12-05 21:29:29 +01:00
Jan Čermák
4229332cc7 Bump Hailo-8 firmware to 4.19.0 for RPi kernel 6.6.62 (#3716)
Kernel bump in #3715 contains update of the driver to version 4.19.0 - bump the
firmware version to match it.
2024-12-04 18:27:50 +01:00
Jan Čermák
0a4114db3e RaspberryPi: Update kernel to 6.6.62 - dd2394360860d15146c96635796a75b05bb32b61 (#3715)
* RaspberryPi: Update kernel to 6.6.62 - dd2394360860d15146c96635796a75b05bb32b61

* Bump buildroot to update rpi-firmware

* buildroot 1d7407c66b...c65b0306bb (1):
  > package/rpi-firmware: bump to version 1.20241126 for kernel 6.6.62
2024-12-04 18:26:00 +01:00
Jan Čermák
91079a0cc6 Merge branch 'main' into dev 2024-12-03 19:29:39 +01:00
Jan Čermák
2ac3fceaf4 Bump OS to release version 14.0 2024-12-03 14:16:01 +01:00
Jan Čermák
babf11d710 Bump OS to pre-release version 14.0.rc3 2024-12-02 21:22:42 +01:00
Jan Čermák
47a648392a Disable CM5's RTC to make Yellow's on-board RTC the primary one (#3706)
With both RTCs enabled, the rpi_rtc is probed as the first one, making the
on-board RTC unused by default. Since the CM5's RTC peripheral can't be used on
Yellow, as the VBAT pin is not connected, disable it completely to fix RTC.

(cherry picked from commit 9d643edb54)
2024-12-02 21:22:41 +01:00
dependabot[bot]
0b251bb950 Bump docker/build-push-action from 6.9.0 to 6.10.0 (#3704)
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.9.0 to 6.10.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v6.9.0...v6.10.0)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
(cherry picked from commit e0ccf398f2)
2024-12-02 17:50:31 +01:00
Jan Čermák
3df7743633 Disable CQE on mmc0 to fix I/O freezes on Yellow+CM5 (#3705)
The I/O operations on the eMMC can sometimes fail and lock up completely, and
disabling CQE on the sdio1 (mmc0) interface seems to solve the issue. While it
is a known (and potentially resolved) issue [1] for SD cards in Raspberry Pi's
Linux fork, it is not acknowledged neither resolved for CM5's eMMC. With CQE
enabled, the device usually locks up within the first 10 first boots, when the
swap file is being created. After disabling CQE, no error occurred after more
that 100 cold boots (every time with swap file removed).

[1] https://github.com/raspberrypi/linuxissues/6349

(cherry picked from commit c514d6b482)
2024-12-02 17:50:28 +01:00
Jan Čermák
a355da2075 Reduce time of mmc0 interface random hangs on Yellow+CM5 boot (#3700)
For yet unknown root cause, the eMMC interface sometimes fails to initialize
properly, delaying boot for up to 130 seconds. This can be reduced by ~100s by
disabling SD and SDIO modes on the sdio1 interface used for mmc0 before a
better patch is found.

(cherry picked from commit 489de0b2fb)
2024-12-02 17:50:24 +01:00
Jan Čermák
66405f102a Linux: Update kernel to 6.6.63 (#3697)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.63

(cherry picked from commit 22dd060183)
2024-12-02 17:50:21 +01:00
Jan Čermák
9d643edb54 Disable CM5's RTC to make Yellow's on-board RTC the primary one (#3706)
With both RTCs enabled, the rpi_rtc is probed as the first one, making the
on-board RTC unused by default. Since the CM5's RTC peripheral can't be used on
Yellow, as the VBAT pin is not connected, disable it completely to fix RTC.
2024-12-02 17:47:40 +01:00
dependabot[bot]
e0ccf398f2 Bump docker/build-push-action from 6.9.0 to 6.10.0 (#3704)
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.9.0 to 6.10.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v6.9.0...v6.10.0)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-02 16:47:20 +01:00
Jan Čermák
c514d6b482 Disable CQE on mmc0 to fix I/O freezes on Yellow+CM5 (#3705)
The I/O operations on the eMMC can sometimes fail and lock up completely, and
disabling CQE on the sdio1 (mmc0) interface seems to solve the issue. While it
is a known (and potentially resolved) issue [1] for SD cards in Raspberry Pi's
Linux fork, it is not acknowledged neither resolved for CM5's eMMC. With CQE
enabled, the device usually locks up within the first 10 first boots, when the
swap file is being created. After disabling CQE, no error occurred after more
that 100 cold boots (every time with swap file removed).

[1] https://github.com/raspberrypi/linuxissues/6349
2024-12-02 16:45:35 +01:00
Jan Čermák
489de0b2fb Reduce time of mmc0 interface random hangs on Yellow+CM5 boot (#3700)
For yet unknown root cause, the eMMC interface sometimes fails to initialize
properly, delaying boot for up to 130 seconds. This can be reduced by ~100s by
disabling SD and SDIO modes on the sdio1 interface used for mmc0 before a
better patch is found.
2024-12-02 15:19:38 +01:00
Jan Čermák
22dd060183 Linux: Update kernel to 6.6.63 (#3697)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.63
2024-11-25 17:49:13 +01:00
Jan Čermák
91532037bb Bump OS to pre-release version 14.0.rc2 2024-11-22 14:25:55 +01:00
Jan Čermák
55bbddad4f Enable Cypress M8 USB serial driver for all targets (#3693)
Build cypress_m8 driver as module for all targets - some of them had it in
their base defconfig while some not. It is required e.g. for UPB PIM (Powerline
Interface Module).

Fixes #3690

(cherry picked from commit d57e507764)
2024-11-22 14:25:36 +01:00
Jan Čermák
444f65ca94 Sync Yellow's DTS with plain CM5 device tree (#3688)
Sync the DTS with changes added in newer commits merged after the initial
Yellow/CM5 DTS was written. The sdio1 node now has HS400 mode enabled and
sd_io_1v8_reg has been changed to regulator-fixed.

(cherry picked from commit b288cd212a)
2024-11-22 14:25:33 +01:00
Jan Čermák
74af855056 Always use NVMe datadisk on Yellow if it's present on first boot (#3686)
If HAOS on Yellow is booted for the first time with NVMe data disk present, it
should be preferred over the empty eMMC data partition. This will ease
reinstall of the system and migration from CM4 to CM5. All other data disks
(e.g. if a USB drive is used for them) are still treated as before, requiring
manual adoption using the Supervisor repair.

(cherry picked from commit 98ac7f0170)
2024-11-22 14:25:29 +01:00
@RubenKelevra
1291848041 Disable UAS via usb-storage.quirks on RPi for JMicron JMS583
Vendor ID: 152d
Product ID: a583

fixes #3674

(cherry picked from commit a042dc01d2)
2024-11-22 14:25:25 +01:00
Jan Čermák
d57e507764 Enable Cypress M8 USB serial driver for all targets (#3693)
Build cypress_m8 driver as module for all targets - some of them had it in
their base defconfig while some not. It is required e.g. for UPB PIM (Powerline
Interface Module).

Fixes #3690
2024-11-22 13:56:49 +01:00
Jan Čermák
b288cd212a Sync Yellow's DTS with plain CM5 device tree (#3688)
Sync the DTS with changes added in newer commits merged after the initial
Yellow/CM5 DTS was written. The sdio1 node now has HS400 mode enabled and
sd_io_1v8_reg has been changed to regulator-fixed.
2024-11-21 19:42:58 +01:00
Jan Čermák
98ac7f0170 Always use NVMe datadisk on Yellow if it's present on first boot (#3686)
If HAOS on Yellow is booted for the first time with NVMe data disk present, it
should be preferred over the empty eMMC data partition. This will ease
reinstall of the system and migration from CM4 to CM5. All other data disks
(e.g. if a USB drive is used for them) are still treated as before, requiring
manual adoption using the Supervisor repair.
2024-11-21 19:42:26 +01:00
@RubenKelevra
a042dc01d2 Disable UAS via usb-storage.quirks on RPi for JMicron JMS583
Vendor ID: 152d
Product ID: a583

fixes #3674
2024-11-21 19:07:41 +01:00
Jan Čermák
af833dbc9f Bump OS to development version 14.1.dev0 2024-11-19 16:06:02 +01:00
Jan Čermák
885f0a82ab Bump OS to pre-release version 14.0.rc1 2024-11-19 12:02:56 +01:00
Jan Čermák
eec6dfb28d Add Hailo-8 firmware for Raspberry Pi AI Kit/HAT on RPi 5 (#3680)
Add Hailo-8 firmware binary for Rasperry Pi AI accelerators. The version needs
to be determined from the Git history of the kernel sources, as the driver
source code is included in the RPi downstream kernel and the version string
can't be found in the code directly.

Fixes #3663
2024-11-18 19:01:25 +01:00
Stefan Agner
f169f78bb0 Add Kconfig option for Supervisor channel (#3618)
* Add Makefile variable for Supervisor channel

Allow to set the release channel pre-installed Home Assistant components
like Supervisor and add-on are fetched from. This channel is then also
used at runtime.

* Use choice instead of string variable

* Fix channel in Supervisor updater.json config

* Add newlines
2024-11-18 14:39:46 +01:00
Jan Čermák
71e580175e Linux: Update kernel to 6.6.62 (#3679)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.61
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.62
2024-11-18 14:09:42 +01:00
Jan Čermák
78cdaab597 Merge Yellow's RAUC post-install hook with the install hook (#3678)
As stated in the docs [1], post-install hook is not executed if the slot
already has an install hook defined. Merge the post-install hook with the
install hook to fix CM5 migration for Yellow.

[1] https://rauc.readthedocs.io/en/latest/using.html#slot-hooks
2024-11-18 12:51:58 +01:00
Jan Čermák
b9e66fbfd0 Remove unnecessary kernel post-install hook for GRUB-based targets (#3672)
The code for this hook was removed in #3457 but it wasn't removed from the
manifest. Remove it to avoid unnecessary execution of the hook.
2024-11-14 16:07:16 +01:00
Jan Čermák
9dfbdd9d12 Fix Yellow's post-install hook for config.txt migration (#3671)
The hook was missing in the manifest, enable it conditionally for Yellow and
add reminder to remove it once it's not needed.
2024-11-14 09:44:12 +01:00
Anton Starikov
b28dd8c4c4 Add iwlwifi-gl firmware needed for Intel BE200 Wi-Fi 7 card (#3668)
Add iwlwifi-gl firmware, which is required for Intel BE200 card. Targets are
generic_aarch64, generic_x86_64 and ova.

* buildroot 19027bc796...1d7407c66b (1):
  > package/linux-firmware: add iwlwifi gl firmware

Closes #3643.
2024-11-14 09:23:34 +01:00
Jan Čermák
23039ceea7 Reduce timeout for network time synchronization to 15 seconds (#3669)
The timeout of 90s was introduced before it was ensured that the timesync
systemd unit starts after network is online. Now with that, it makes less sense
to wait that long - if network is unreachable at the point the time
synchronization starts, and the server fails to reply on the first sync, the
polling interval is exponentially increased and the benefit of waiting for more
attempts is doubtful.

Since another synchronization attempt is done after network changes its state,
we should rely on that instead of having the 90 seconds interval as a waiting
period for plugging the network cable. Worst case, there are other mechanisms
that should set the time to a reasonably accurate value, making the NTP sync
less importart for most of the cases.
2024-11-13 17:14:54 +01:00
Jan Čermák
180c9ada3f Add initial support for Raspberry Pi CM5 on Yellow (#3667)
* Move RPi U-Boot patches to version-specific directory

We will need to use different series for 2024.10 which would be used as the
base for CM5 support.

* Remove common.h include from the fileenv cmd

It doesn't seem to be used and common.h has been removed in newer U-Boot.

* Use U-Boot 2024.10 with BCM2712 PCIe patches for Yellow

Use rebased patchset from v2024.01 with the first patch removed. Add patches
needed for PCIe initialization and use rpi_arm64_defconfig as the base config
for both CM4 and CM5.

* Add device tree for CM5 on HA Yellow and adjust config

Add device tree definition based on the CM5 device tree with BCM2712D0 changes
applied, and add nodes required for the on-board peripherals of Yellow.

Currently the difference in serial numbering still requires either changes in
this device tree, or userspace changes to create correct symlinks to make HA
configuration directly compatible with CM4 on Yellow.

* Add config.txt migration for conditional device_tree options

* Fix typos and minor issues found by CodeRabbit
2024-11-12 14:34:54 +01:00
Jan Čermák
6047770d7f Linux: Update kernel to 6.6.60 (#3666)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.60
2024-11-11 17:06:51 +01:00
Jan Čermák
0dc9c65d3c Fall back to max eMMC clock to fix Kingston eMMC compat with ODROID-N2 (#3665) 2024-11-09 19:04:02 +01:00
Jan Čermák
f612d42fb3 RaspberryPi: Update kernel to 6.6.51 - stable_20241008 (#3662)
* RaspberryPi: Update kernel to 6.6.51 - stable_20241008

* Update rpi-firmware to version for kernel 6.6.51

* buildroot 2ffac68a74...19027bc796 (1):
  > package/rpi-firmware: bump to version 1.20241008 for kernel 6.6.51
2024-11-05 16:02:58 +01:00
Jan Čermák
c9e2b50406 Bump Buildroot to 2024.02.7 (#3659)
* buildroot d59d09ad38...2ffac68a74 (1):
  > Merge tag '2024.02.7' into 2024.02.x-haos
2024-11-05 08:07:31 +01:00
Jan Čermák
7edde96735 Linux: Update kernel to 6.6.59 (#3657)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.58
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.59
2024-11-05 08:07:19 +01:00
xtsrthm
59851f7a51 Add support for external i2c devices (#3642)
This commit adds support for usb to i2c adapters, the i2c chardev and the bme280  famaily environment sensors
2024-11-05 08:06:52 +01:00
dependabot[bot]
8fd7f26d74 Bump mikepenz/action-junit-report from 4 to 5 (#3658)
Bumps [mikepenz/action-junit-report](https://github.com/mikepenz/action-junit-report) from 4 to 5.
- [Release notes](https://github.com/mikepenz/action-junit-report/releases)
- [Commits](https://github.com/mikepenz/action-junit-report/compare/v4...v5)

---
updated-dependencies:
- dependency-name: mikepenz/action-junit-report
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-04 14:48:00 +01:00
Stefan Agner
a2ff594a75 Add kernel options required for Atheros 12k wirelss adapters (#3640)
Add support for interrupt remapping for IO-APIC and MSI devices as
required by some ath12k devices.

Fixes: #3621
2024-10-21 21:19:40 +01:00
Stefan Agner
f459a1174d Linux: Update kernel to 6.6.57 (#3639) 2024-10-21 21:19:33 +01:00
Jan Čermák
a5cdc318d4 Bump OS to development version 14.0.dev0 2024-10-15 14:36:49 +02:00
Jan Čermák
9e00205ceb Merge branch 'main' into dev 2024-10-15 14:36:21 +02:00
Jan Čermák
3f161bc7d1 Bump OS to release version 13.2 2024-10-15 13:23:17 +02:00
Jan Čermák
bb0086addf Linux: Update kernel to 6.6.56 (#3622)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.55
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.56
2024-10-14 16:44:37 +02:00
Jan Čermák
1bd9245219 Bump OS to pre-release version 13.2.rc2 2024-10-14 15:58:11 +02:00
Jan Čermák
fb7a9c4196 Linux: Update kernel to 6.6.54 (#3614)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.54

(cherry picked from commit 1b6b40ebe7)
2024-10-14 15:54:52 +02:00
dependabot[bot]
8f69cd7fd1 Bump docker/setup-buildx-action from 3.6.1 to 3.7.1 (#3613)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
(cherry picked from commit 998d0e37fe)
2024-10-14 15:54:49 +02:00
Jan Čermák
67ddfe2563 Linux: Update kernel to 6.6.53 (#3605)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.53

(cherry picked from commit a4a3912b21)
2024-10-14 15:54:44 +02:00
Darren Griffin
ce8b777d74 Add OHF logo to README (#3603)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
(cherry picked from commit 5d58a25b62)
2024-10-14 15:54:34 +02:00
dependabot[bot]
82f36004f5 Bump docker/build-push-action from 6.7.0 to 6.9.0 (#3604)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
(cherry picked from commit cf546d6f76)
2024-10-14 15:54:29 +02:00
Jan Čermák
1b6b40ebe7 Linux: Update kernel to 6.6.54 (#3614)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.54
2024-10-07 18:22:53 +02:00
dependabot[bot]
998d0e37fe Bump docker/setup-buildx-action from 3.6.1 to 3.7.1 (#3613)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-07 15:47:43 +02:00
Jan Čermák
a4a3912b21 Linux: Update kernel to 6.6.53 (#3605)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.53
2024-10-01 17:34:04 +02:00
Darren Griffin
5d58a25b62 Add OHF logo to README (#3603)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2024-09-30 18:47:33 +02:00
dependabot[bot]
cf546d6f76 Bump docker/build-push-action from 6.7.0 to 6.9.0 (#3604)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-30 15:57:27 +02:00
Jan Čermák
62a30ac509 Bump OS to pre-release version 13.2.rc1 2024-09-26 17:03:13 +02:00
Jan Čermák
ba73a8c3d7 Use GRUB2 legacy loader for Macbook Air A1370 (#3593)
Fix loading issues on this Intel-based platform as well. As described in the
patch commit message, there will be likely bigger collateral effect by
referring just to the CPU ID but it shouldn't have major detrimental effects.

[1] https://github.com/home-assistant/operating-system/issues/3305#issuecomment-2360633688
2024-09-25 17:13:33 +02:00
Jan Čermák
0fdf920b89 Fix guest-agent not starting with HyperV Enlightenments enabled (#3592)
Guest agent doesn't start because if HyperV Enlightenments are enabled, the
virtualization gets detected incorrectly. Backport Systemd patch that fixes the
detection, allowing the guest-agent service to meet its dependencies.

This patch should be no longer needed after update of Systemd to v256, or in
case the patch gets eventually backported to the v254 stable branch.

Fixes #3565
2024-09-25 17:13:22 +02:00
Jan Čermák
f27c429be2 Linux: Update kernel to 6.6.52 (#3591)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.52
2024-09-23 23:23:07 +02:00
Viacheslav Bocharov
e4d00de474 Update buildroot to 2024.02.x-haos in .gitmodules (#3589) 2024-09-17 15:07:28 +02:00
Jan Čermák
65789af595 Linux: Update kernel to 6.6.51 (#3587)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.51
2024-09-12 17:49:17 +02:00
Jan Čermák
39b1c6de4e Bump Buildroot to 2024.02.6 (#3586)
* buildroot c68e03d96b...d59d09ad38 (2):
  > package/procps-ng: fix build with BR2_PACKAGE_SYSTEMD enable
  > Merge tag '2024.02.6' into 2024.02.x-haos
2024-09-12 15:49:27 +02:00
Jan Čermák
2916a1c247 Relocate HAOS Systemd drop-ins to /usr/lib/systemd (#3582)
* Relocate HAOS Systemd drop-ins to /usr/lib/systemd

With some exceptions, Systemd drop-ins overriding default unit configuration
have been placed to `/etc/systemd/system`. This is meant for user overrides of
those, or per `man 5 systemd.unit` for "system unites created by the
administrator". Relocate all of these to `/usr/lib/systemd` which should be
used as path for units "installed by the distribution package manager" which is
closer to what we're trying to achieve.

This will make it easier to detect changes to unit files once we enable the
possibility to edit the content of /etc.

* Patch systemd-timesyncd.service instead of replacing it fully
2024-09-12 12:47:22 +02:00
Jan Čermák
2e6b38a0e1 Enable debug logging for GRUB rescue shell options (#3581)
If the system fails to boot, some kernel messages may not be shown before the
system fully boots. Enable the debug option for rescue shell options to have an
easy way to see those without modifying GRUB options. This will increase log
verbosity and turn on debug logging for Systemd as well [1].

[1] https://www.freedesktop.org/software/systemd/man/latest/systemd.html#debug
2024-09-11 23:30:15 +02:00
Jan Čermák
5d164b12d1 Add test for no failed Systemd units (#3583)
Test that systemctl reports no failed units at the end of the basic test.
2024-09-11 23:30:01 +02:00
Jan Čermák
e3bbe2003f Tests: update labgrid to v24.0.1 (#3584)
Bump labgrid to latest release. None of the changes require adjustments in the
tests. Remove pytest from requirements.txt, it's not needed anymore, so let pip
to resolve the correct (latest) version from labgrid's dependencies. With these
new dependencies, previous DeprecationWarnings on Python 3.12 are gone now.
2024-09-11 23:29:48 +02:00
Jan Čermák
93ac046349 Linux: Update kernel to 6.6.50 (#3580)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.50
2024-09-09 18:11:34 +02:00
Jan Čermák
d615f8c71e Linux: Update kernel to 6.6.49 (#3577)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.49
2024-09-05 00:33:38 +02:00
Jan Čermák
3977f1f039 Bump Docker to v27.2.0 (#3576)
* Update Docker to v27.2.0

Update Docker and containerd to latest supported version.

* buildroot a2c10a16a0...c68e03d96b (3):
  > package/containerd: bump version to v1.7.21
  > package/docker-cli: bump version to v27.2.0
  > package/docker-engine: bump version to v27.2.0

* package/hassio: update DinD container to v27.2
2024-09-03 15:42:43 +02:00
Jan Čermák
d9e46d6dbb Purge Cloudflare cache for all files after uploading R2 artifacts (#3568)
If an attempt to access R2 artifacts is made before the files exist, the 404
reply gets cached and it's not possible to access the file after it's been
created without purging the cache, essentially doing a cache poisoning for
future build artifacts. To avoid it, list all files that have been created by
the build and call the purge cache API.

As there's a limit for number of files that can be purged in a single API call
[1], the GNU split utility is used to split intermediary list of files to
chunks of 30 URLs, which is then converted to a JSON array and passed to the
curl command.

[1] https://developers.cloudflare.com/api/operations/zone-purge#purge-cached-content-by-url
2024-09-02 10:38:04 +02:00
Jan Čermák
b23b54bed0 Linux: Update kernel to 6.6.48 (#3570)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.48
2024-09-02 10:37:48 +02:00
Jan Čermák
5eb7ccb761 Use GRUB legacy loader for HP t520 to fix boot with GRUB 2.12 (#3562)
HP t520 have been reported to have the same issues as Atom boards with bad UEFI
firmware that doesn't work well with the new EFI loader used since GRUB 2.12.
Apply the patch to use legacy loader for its CPU ID as well.

Fixes #3557
2024-08-26 14:34:06 +02:00
Jan Čermák
c6d4e2788e Fix missing Intel AX210 firmware files, remove unused firmwares (#3556)
Fix AX210 firmware files, this time for real. In #3549 we still had only
ucode and pnvm files for AX211, AX210 was still missing the pnvm file,
because its ucode was provided through IWLWIFI_22000 without appropriate
pnvm file. Both AX210 and AX211 firmwares are now installed with
IWLWIFI_6E which includes both pnvm and ucode files.

Also some firmwares which are not used by the current kernel can be
removed, because the kernel always only loads the most recent one.

* buildroot 01188d9c38...a2c10a16a0 (2):
  > Revert "package/linux-firmware: exclude some files from compression"
  > package/linux-firmware: fix AX210 support, stick to latest supported ucode API, reorganize the split

Fixes #3477
2024-08-23 15:56:41 +02:00
Jan Čermák
14ca2ac75e Bump Buildroot to 2024.02.5 (#3550)
* buildroot 55be56d521...01188d9c38 (1):
  > Merge tag '2024.02.5' into 2024.02.x-haos
2024-08-21 17:35:30 +02:00
Jan Čermák
4fb27c2ca8 Linux: Update kernel to 6.6.47 (#3541)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.47
2024-08-21 17:34:55 +02:00
Jan Čermák
c7018054b4 Bump OS to development version 13.2.dev0 2024-08-21 17:33:16 +02:00
Jan Čermák
7f9116b7f8 Merge branch 'main' into dev 2024-08-21 17:32:55 +02:00
Jan Čermák
e97b1231dc Bump OS to release version 13.1 2024-08-21 15:29:36 +02:00
Jan Čermák
1a7dc0ca1f Fix iwlwifi driver failing to find .pnvm files for Intel 6E (AX210) (#3549)
Since updating to Buildroot 2024.02, the iwlwifi loads a different version of
firmware for Intel AX cards (reported on AX210) which also needs the pnvm file.
However, unlike firmwares, the load method is different and the driver can't
load a compressed file. Disable compression for all .pnvm files to fix this.

* buildroot baa16784d2...55be56d521 (1):
  > package/linux-firmware: exclude some files from compression

Fixes #3477

(cherry picked from commit d3a43a4ca4)
2024-08-21 15:28:47 +02:00
Jan Čermák
d3a43a4ca4 Fix iwlwifi driver failing to find .pnvm files for Intel 6E (AX210) (#3549)
Since updating to Buildroot 2024.02, the iwlwifi loads a different version of
firmware for Intel AX cards (reported on AX210) which also needs the pnvm file.
However, unlike firmwares, the load method is different and the driver can't
load a compressed file. Disable compression for all .pnvm files to fix this.

* buildroot baa16784d2...55be56d521 (1):
  > package/linux-firmware: exclude some files from compression

Fixes #3477
2024-08-21 11:14:15 +02:00
dependabot[bot]
3c2f014acb Bump docker/build-push-action from 6.6.1 to 6.7.0 (#3542)
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.6.1 to 6.7.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v6.6.1...v6.7.0)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-20 16:36:37 +02:00
Jan Čermák
1b6cfbf940 Bump OS to pre-release version 13.1.rc1 2024-08-16 13:10:22 +02:00
Jan Čermák
cdee2c5838 Add LED indication for button handling in Yellow's U-Boot (#3536)
With #3523 as inspiration, it might be useful to wait for buttons to be
released, e.g. in case when they become stuck. Also indicate the button
operation (wipe, boot files removal, UMS) has been handled by turning on the
yellow LED.
2024-08-16 13:04:07 +02:00
Jan Čermák
7e7612ffeb Implement device wipe using the hardware button on Green (#3523)
* Improve LED naming in U-Boot DTS

Port Stefan's patch from Linux patchset to U-Boot.

* Implement device wipe using the hardware button on Green

Unlike Yellow, Green doesn't have a way to easily wipe the device, e.g. if the
user forgets the password - in that case the only option is to use a microSD
card and reflash the system. Fortunately, Green has a hardware button wired to
the PMIC chip which exposes the button state in one of the registers. Read this
value in U-Boot and decide if cmdline flag for device wipe should be set - same
as we do on Yellow.

Also enable LED driver and command in U-Boot. In the current implementation, if
the button is held for ~5 seconds when plugging in the device (this time
includes DDR training, SPL, etc.), the yellow LED turns solid to indicate wipe
is about the start. When the Linux kernel starts, the kernel LED driver takes
over and starts blinking in heartbeat pattern. Because it takes a while to load
the kernel, the LED stays solid for 2-3 seconds, which should be enough to
recognize it was acknowledged.

* Wait for button to be released before wiping
2024-08-16 09:35:21 +02:00
Jan Čermák
832b70bab1 Linux: Update kernel to 6.6.46 (#3529)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.46
2024-08-14 17:38:00 +02:00
lamauny
0c08acd2c3 Enable NTFS and exFAT drivers for all targets (#3516)
Enable NTFS and exFAT drivers, as they're not in defconfigs of all platforms and may be useful when mounting removable drives. 

Fixes #2723

Co-authored-by: Jan Čermák <sairon@users.noreply.github.com>
2024-08-14 17:03:59 +02:00
Jan Čermák
1467cc5f64 Enable 1.5MBd serial console on Green for new installs (#3527)
With default console on HDMI (tty0), we lost the console on the serial port. It
may be useful for debugging, let's enable it for new installs with the same
speed as bootloader (to avoid the need for baud rate switching).
2024-08-14 17:00:15 +02:00
Jan Čermák
d44d93e4a1 Fix CPU ID for D2xxx/N2xxx in GRUB2 loader patch (#3526)
Report from @ChernyaevAN in [1] revealed it's 13829424153406670433 in decimal,
which means the endianness was wrong for the CPUs I didn't have available for
testing.

[1] https://github.com/home-assistant/operating-system/issues/3305#issuecomment-2288609199
2024-08-14 17:00:03 +02:00
Jan Čermák
2fb1663a35 Bump OS to development version 13.1.dev0 2024-08-13 15:51:13 +02:00
Jan Čermák
a7617340e9 Merge branch 'main' into dev 2024-08-13 15:50:52 +02:00
Jan Čermák
77e2b92972 Bump OS to release version 13.0 2024-08-13 11:14:31 +02:00
dependabot[bot]
fd31ce14ea Bump docker/build-push-action from 6.5.0 to 6.6.1 (#3519)
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.5.0 to 6.6.1.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v6.5.0...v6.6.1)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-12 19:51:32 +02:00
Jan Čermák
598e06de5d Linux: Update kernel to 6.6.45 (#3518)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.45
2024-08-12 19:23:18 +02:00
Jan Čermák
d83602c6d3 Bump OS to pre-release version 13.0.rc2 2024-08-08 18:42:56 +02:00
Jan Čermák
55b3446bd9 Enable eMMC HS200 mode in Green's U-Boot defconfig (#3511)
Follow-up to #3412. While we haven't seen any issues so far, it's mentioned in
the original patch series we took inspiration from that HS200 works more
reliably, so enable it in Green's defconfig by amending the patch.

(cherry picked from commit 0452965fb0)
2024-08-08 18:42:35 +02:00
Jan Čermák
f292ba02e2 Fix writing U-Boot environment on ODROID-M1 (#3510)
Apply the same patch we applied in #3412 for Green. At that time I thought the
patch was already applied upstream for M1 and haven't checked, but it turns out
it wasn't true. Apply it here before we get U-Boot with that patch series [1]
included.

[1] https://patchwork.ozlabs.org/project/uboot/cover/20240204205312.2342868-1-jonas@kwiboo.se/

(cherry picked from commit d6fa83a0d3)
2024-08-08 18:42:32 +02:00
Jan Čermák
42baa80900 Increase block size of kernel squashfs image to 128K (#3509)
While mksquashfs uses this value by default, Genimage's default is 4K. This is
far too low value and results in slower kernel load, especially on embedded
boards with a flash drive. Explicitly set it to 128K to generate same images as
in pre-genimage builds.

(cherry picked from commit edba18f6c4)
2024-08-08 18:42:29 +02:00
Jan Čermák
ba86720163 Bump ODROID N2's U-Boot to v2024.01 again (#3508)
We previously reverted the bump because we were unsure where the eMMC issues
are coming from. Now we know some of them were caused by incompatible eMMCs
then never worked from the beggining, and attempt to fix them (by changing the
frequency) caused some other side effects. Bump U-Boot back to the version used
generally and continue from there.

(cherry picked from commit 50a0062ee6)
2024-08-08 18:42:23 +02:00
Jan Čermák
0452965fb0 Enable eMMC HS200 mode in Green's U-Boot defconfig (#3511)
Follow-up to #3412. While we haven't seen any issues so far, it's mentioned in
the original patch series we took inspiration from that HS200 works more
reliably, so enable it in Green's defconfig by amending the patch.
2024-08-08 18:40:20 +02:00
Jan Čermák
d6fa83a0d3 Fix writing U-Boot environment on ODROID-M1 (#3510)
Apply the same patch we applied in #3412 for Green. At that time I thought the
patch was already applied upstream for M1 and haven't checked, but it turns out
it wasn't true. Apply it here before we get U-Boot with that patch series [1]
included.

[1] https://patchwork.ozlabs.org/project/uboot/cover/20240204205312.2342868-1-jonas@kwiboo.se/
2024-08-08 18:40:09 +02:00
Jan Čermák
edba18f6c4 Increase block size of kernel squashfs image to 128K (#3509)
While mksquashfs uses this value by default, Genimage's default is 4K. This is
far too low value and results in slower kernel load, especially on embedded
boards with a flash drive. Explicitly set it to 128K to generate same images as
in pre-genimage builds.
2024-08-07 20:14:13 +02:00
Jan Čermák
50a0062ee6 Bump ODROID N2's U-Boot to v2024.01 again (#3508)
We previously reverted the bump because we were unsure where the eMMC issues
are coming from. Now we know some of them were caused by incompatible eMMCs
then never worked from the beggining, and attempt to fix them (by changing the
frequency) caused some other side effects. Bump U-Boot back to the version used
generally and continue from there.
2024-08-07 20:14:06 +02:00
Franz Josef Kaiser
26c383484e Explains UMS Utility image (#3507) 2024-08-07 16:43:41 +02:00
Jan Čermák
d8baa98ae2 Add documentation and dependencies category to release-drafter config (#3506)
* add Documentation category
* add Dependencies (to easily filter them out if not needed in changelog)
* adjust the order a bit to have user-facing changes first
2024-08-07 15:06:46 +02:00
Jan Čermák
ccca13d3ca Drop "default kernel tree" line from docs (#3505)
The following table is self-explanatory and unlike this, is kept up-to-date
automatically.
2024-08-06 17:18:10 +02:00
Jan Čermák
7a19b892a5 Bump OS to pre-release version 13.0.rc1 2024-08-06 14:45:45 +02:00
Jan Čermák
66fc7d7e2a Test landing page is reachable without internet connection (#3499)
* Test landing page is reachable without internet connection

Add test that checks user is able to access the landing page even when HAOS has
no internet connection. We still need some sort of outgoing connectivity, so
outgoing connection attempts don't end up with "network is unreachable". To
simulate this, restricted network is created for the QEMU instance used in the
test, and when everything is started, unresponsive default gateway is added.

This intents to test regression that was fixed by
home-assistant/supervisor#5204, Supervisor 2024.7.0+ is thus needed for this
test to pass.

* Bump requirements for tests
2024-08-06 11:02:59 +02:00
dependabot[bot]
9cc45f65ea Bump docker/setup-buildx-action from 3.6.0 to 3.6.1 (#3501)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-05 15:33:44 +02:00
Jan Čermák
c2527a2ae1 Linux: Update kernel to 6.6.44 (#3500)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.44
2024-08-05 14:04:32 +02:00
Jan Čermák
a32974e1a7 Use GRUB2 legacy loader only on some Intel Atom boards specifically (#3498)
* Use GRUB2 legacy loader only on some Intel Atom boards specifically

Previous revert of GRUB2 change that introduced usage of the generic EFI loader
for all x86 boards in #3324 caused regressions, the one confirmed is #3348.
This commit adds a specific patch that identifies the broken platforms based
on SMBIOS data gathered in #3305 and falls back to the legacy loader there.

Tested on Intel D525MW (falls back) and QEMU (no fallback).

* Enable GRUB's smbios module

Having smbios command in GRUB can help in future debugging, e.g. to add more
CPUs that should use the linux loader fallback.
2024-07-31 09:22:07 +02:00
Jan Čermák
d51a0d3cec Patch genimage to force first usable LBA @ 34 to fix RPi 5/Windows issues (#3497)
Genimage sets the first usable LBA to the offset of the first partition. While
it shouldn't be an issue in theory, Windows may do some nasty things with the
GPT header afterwards which breaks the Raspberry Pi bootloader, manifesting as

Before purpose of this behavior is clarified in [1], add a downstream patch
that sets the first usable LBA back to 34, which was the value that was used
before migrating to Genimage in #3388. Since changing this value (hopefully)
doesn't have any other consequences, and the images now should be closer to
pre-genimage builds, no more side-effects are expected from this change.

[1] https://www.github.com/pengutronix/genimage/issues/262

Fixes #3437
2024-07-30 18:57:37 +02:00
dependabot[bot]
13c4bb56c0 Bump docker/setup-buildx-action from 3.5.0 to 3.6.0 (#3496)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-29 16:39:08 +02:00
Jan Čermák
327e9a07c9 Linux: Update kernel to 6.6.43 (#3495)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.42
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.43
2024-07-29 14:06:21 +02:00
Jan Čermák
568499072f Allow EROFS compression for Rockchip kernels (#3493)
Rockchip config fragment had EROFS compression explicitly disabled. Remove that
option and also remove the EROFS one, as it's already set in common config.
2024-07-25 21:51:36 +02:00
Stefan Agner
bc7c109163 Enable Netfilter MARK match kernel configuration (#3492)
Make the Netfitler MARK match kernel config a OS required configuration.
This config is required by the OpenThread Border Router add-on.

Fixes: https://github.com/home-assistant/addons/issues/3698
2024-07-24 16:40:37 +02:00
Jan Čermák
b0bc71a835 Reduce log spam from Docker health checks (#3491)
Reduce verbosity from deactivated Docker mounts, triggered by the Docker
healthcheck. These messages do not carry any value for us and logs supplied by
users are often spammed mostly with these. Moreover, they sometimes cause
confusion that something is wrong, see for example #3021.

Unfortunately, it's not possible to use LogFilterPatterns= here, because it's
not applied to these messages, as explicitly said in the docs:

  Filtering is based on the unit for which LogFilterPatterns= is defined
  meaning log messages coming from systemd(1) about the unit are not taken
  into account.

runc 1.2.0 supposedly should fix this, but it's unclear when it would be
available, so let's stick to this solution (reducing verbosity from debug to
notice for all units `run-docker-*.mount`) for the time being.
2024-07-24 16:34:37 +02:00
Jan Čermák
a80311a285 Use EROFS for the root filesystem (#3456)
* Use name.sh functions for paths in genimage

Paths for images generated outside of genimage were not used in genimage
definitions. Use them as the single source of truth.

Images generated by genimage itself (e.g. kernel.img) don't need to use those
functions, so remove the unused ones.

* Use EROFS instead of SquashFS for root FS

* Enabled EROFS in common kernel fragment
* RootFS image switched to EROFS with options to get decent compression
* rootfstype removed from kernel command line

* Get size of correct FS image in GH build summary
2024-07-24 16:34:26 +02:00
Jan Čermák
6de9da2560 Bump buildroot to 2024.02.4 (#3487)
* buildroot d03dda4fcf...baa16784d2 (5):
  > Merge tag '2024.02.4' into 2024.02.x-haos
  > fs/erofs: add config options for dedupe, fragments and ztailpacking
  > fs/erofs: add LZMA compression, allow configurable compression level
  > package/erofs-utils: add config option for LZMA compression
  > package/erofs-utils: bump to 1.7.1
2024-07-23 13:50:56 +02:00
dependabot[bot]
5d5bc36892 Bump docker/login-action from 3.2.0 to 3.3.0 (#3484)
Bumps [docker/login-action](https://github.com/docker/login-action) from 3.2.0 to 3.3.0.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](https://github.com/docker/login-action/compare/v3.2.0...v3.3.0)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-22 17:30:38 +02:00
dependabot[bot]
77a28bd1df Bump docker/build-push-action from 6.4.0 to 6.5.0 (#3486)
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.4.0 to 6.5.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v6.4.0...v6.5.0)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-22 17:29:13 +02:00
dependabot[bot]
038bfd9073 Bump docker/setup-buildx-action from 3.4.0 to 3.5.0 (#3485)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-22 17:11:32 +02:00
Jan Čermák
eb2bdf85e9 Linux: Update kernel to 6.6.41 (#3482)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.39
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.40
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.41
2024-07-22 12:57:35 +02:00
dependabot[bot]
d148ad2b50 Bump docker/build-push-action from 6.3.0 to 6.4.0 (#3475) 2024-07-15 18:27:37 +02:00
Jan Čermák
63a05a5a1e Revert "Revert GRUB2 patch causing boot failure on some old x86_64 BIOSes (#3324)" (#3470) 2024-07-11 00:01:52 +02:00
Jan Čermák
150be514e4 Enable i6300ESB watchdog driver for generic-aarch64 (#3468)
This is one of WDT drivers used by KVM/QEMU. For OVA it's been already enabled
in #2627 - enable it for aarch64 as well.

Fixes #3414
2024-07-10 14:39:08 +02:00
Jan Čermák
45cbd1d9b7 Linux: Update kernel to 6.6.38 (#3469)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.38
2024-07-10 14:38:51 +02:00
Jan Čermák
00171ae44c Enable aQuantia AQtion ethernet driver (#3467)
Enable driver for wide range of multi-gigabit NICs.

Fixes #3438
2024-07-09 13:01:25 +02:00
dependabot[bot]
777432913e Bump docker/setup-buildx-action from 3.3.0 to 3.4.0 (#3465)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-08 15:57:05 +02:00
dependabot[bot]
d57b6be01e Bump docker/build-push-action from 6.2.0 to 6.3.0 (#3466)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-08 15:56:48 +02:00
Jan Čermák
1f8ed07c42 Refer to GRUB instead of Barebox in top-level readme (#3464)
We don't use Barebox for over two years since d1cc7394, remove the forgotten
mention of it in readme.
2024-07-08 12:13:23 +02:00
Jan Čermák
3ef8b07676 Linux: Update kernel to 6.6.37 (#3463)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.37
2024-07-08 12:13:14 +02:00
Jan Čermák
ea286d9dad Populate grubenv with RAUC data in clean aarch64 OS image (#3458)
While not as bad as in 87a6c84, because the grubenv already exists in the
image, RAUC still complains about missing ORDER on the very first boot on
aarch64. Populate the environment in the same way as we do for other GRUB
platforms.
2024-07-08 12:12:58 +02:00
Jan Čermák
4308c45391 Remove old code from rauc-hook and GRUB env initialization (#3457)
With upgrade path enforced in standard HAOS upgrade procedure, we don't need to
keep some old code anymore. This means that upgrade from some very old HAOS
version (pre-8.0) to HAOS 13+ will fail in the install-check hook but this is
rather desirable.
2024-07-08 12:12:45 +02:00
Cyprien Laplace
33d8b538ad Fix rauc hook to save and restore the grub environment (#3451)
Without a machine-id, the next boot will be considered as a
first boot, and any external data disk will be disabled.

Fixes #3247.
2024-07-04 10:14:47 +02:00
Jan Čermák
245c0d0b03 Bump OS to development version 13.0.dev0 2024-07-03 19:38:47 +02:00
dependabot[bot]
c20841ac1e Bump docker/build-push-action from 6.1.0 to 6.2.0 (#3454)
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.1.0 to 6.2.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v6.1.0...v6.2.0)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-01 15:51:21 +02:00
Jan Čermák
0555e89ad0 Linux: Update kernel to 6.6.36 (#3448)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.36
2024-06-27 17:53:15 +02:00
Jan Čermák
203885a7d8 Linux: Update kernel to 6.6.35 (#3443)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.35
2024-06-25 16:21:48 +02:00
dependabot[bot]
7298ffc13f Bump docker/build-push-action from 6.0.0 to 6.1.0 (#3444)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-24 15:51:19 +02:00
Jan Čermák
6c7b6fdebe Generate version information for RAUC when rauc.db is empty (#3436)
RAUC currently doesn't know the version of the booted slot when booted for the
first time or after wiping the data partition. As a result `ha os info` is
missing this information too.

As there's no built-in mechanism for generating these data by RAUC itself, add
a oneshot service that checks if the boot slot information is contained in the
rauc.db and if not, then generate it.

RAUC seems to cope quite well even with bogus data contained in rauc.db but in
any case, a test has been added to check that everything works as expected.
2024-06-20 16:50:14 +02:00
Jan Čermák
87a6c84025 Fix boot slot A marked as bad on the very first boot (#3435)
On the very first boot, grubenv doesn't exist and loading and saving it
silently fails. However, it is later created by the hassos-persists script and
the missing information are added by grub.cfg on the next boot. As the
consequence, when RAUC tries to get information from grubenv on the first boot,
ORDER variable is missing and the slot is reported as bad.

Fixes #3376
2024-06-20 12:57:25 +02:00
Jan Čermák
94c6930acd Merge branch 'main' into dev 2024-06-18 15:02:36 +02:00
Jan Čermák
a70ed7e81e Bump OS to release version 12.4 2024-06-18 12:26:14 +02:00
dependabot[bot]
62d7794a6c Bump docker/build-push-action from 5.4.0 to 6.0.0 (#3421)
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 5.4.0 to 6.0.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v5.4.0...v6.0.0)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-17 17:08:08 +02:00
Jan Čermák
8490b3bf70 Linux: Update kernel to 6.6.34 (#3420)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.34
2024-06-17 16:00:58 +02:00
Jan Čermák
abe018d4aa Improve resiliency of skopeo operations in hassio package (#3416)
We still face occasional build errors when fetching from the Docker registry
fails and is not retried with the Skopeo's built-in retry mechanism that was
enabled in #1866. This happens on some network failures, or when premature EOF
is returned when fetching the HTTP data. Seems we're not the only ones having
such issues [1].

To workaround this, add a generic retry shell function that simply retries when
the command ends with a non-zero status, no matter what was the actual cause of
the error.

[1] https://www.github.com/containers/common/issues/654
2024-06-13 15:44:11 +02:00
Jan Čermák
0e9e8ca2a6 Bump OS to pre-release version 12.4.rc1 2024-06-13 13:01:03 +02:00
Jan Čermák
27bc7306ff Linux: Update kernel to 6.6.33 (#3415)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.33
2024-06-13 11:39:02 +02:00
Jan Čermák
6c2d5b5006 Bump Docker to v26.1.4 (#3411)
* buildroot b9520eedc6...ad5e711bc1 (4):
  > package/containerd: bump to v1.7.17
  > package/docker-cli: bump version to v26.1.4
  > package/docker-engine: bump version to v26.1.4
  > .github: remove upstream's PR template discouraging GH usage
2024-06-12 23:04:34 +02:00
Jan Čermák
d847b9803a Add hardware details to bug issue template (#3413)
Very often we have to ask for further details about the hardware that HAOS is
running on. Add a required field that asks for these details - in the end it
should't complicate the form a lot and might result in faster turnaround of
resolving the issues.

Also adjust the question about the upgrade and swap the order (people often
don't care and keep the pre-selected value).
2024-06-12 21:52:48 +02:00
Jan Čermák
89533755bc Fix writing to eMMC in U-Boot on Green (#3412)
When Green starts, there is an error indicating the MMC write failed when
saving the bootstate:

  storing env...

  MMC write: dev # 0, block # 1214464, count 64 ... mmc write failed 0 blocks written: ERROR

This results in the boot count not being updated properly if the boot fails.

Seems to be a known issue for this platform, disabling the DDR52 mode (which is
the same what upstream does for other RK356x boards [1]) fixes the issues and
the bootstate is updated correctly.

[1] https://patchwork.ozlabs.org/project/uboot/patch/20240204205312.2342868-2-jonas@kwiboo.se/
2024-06-12 21:52:36 +02:00
Jan Čermák
6d77355c1c Temporary revert ODROID-N2 U-Boot to 2023.01 to fix eMMC issues (#3409)
As we don't have proper solution for #3319 and #3351 yet, revert to
previous U-Boot which was proven working. This is intended as a
workaround but as there's nothing in the latest U-Boot that will be
really missed on N2, we can stay on the older version for the time
being.

This also means reverting the "40 MHz hack" back to the 24 MHz one.
Since this patch only applies to N2 (meson gx), it can stay along the
common hardkernel uboot patches.
2024-06-11 19:02:40 +02:00
Jan Čermák
26f0b5a9b7 Fix linux-firmware compression after BR 2024.02.3 merge (#3407)
The compression is necessary for successful generic-x86-64 build.

* buildroot 770f939463...b9520eedc6 (1):
  > package/linux-firmware: fix compression after bad merge
2024-06-11 12:49:20 +02:00
Jan Čermák
542f69efa4 Update Buildroot to 2024.02.3 (#3406)
* Bump buildroot to 2024.02.3

* buildroot 691077e577...770f939463 (1):
  > Merge tag '2024.02.3' into 2024.02.x-haos

* package/hassio: update dind to version 26.0 used in current buildroot
2024-06-10 17:14:17 +02:00
dependabot[bot]
ae588b762a Bump docker/build-push-action from 5.3.0 to 5.4.0 (#3405)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-10 15:08:18 +02:00
Jan Čermák
6135ecdcc7 Use Genimage for declarative image layout (#3388)
* Use Genimage for declarative image layout instead of s[fg]disk and dd

* Change partition type to hybrid for M1, M1S and Green

This is what it really is, so just make sure only one "fix" function is
called.

* Change efi BOOT_SYS to gpt

There is no reason to have separate efi and boot sys, since all boards
that use efi also use grub as the loader.

* Change BOOT_SYS to more explanatory PARTITION_TABLE_TYPE

* Add units to DISK_SIZE

* Add forced-primary patch and use it in MBR images

* Avoid disabling SC2155, remove old comments
2024-06-07 13:44:14 +02:00
Jan Čermák
22b63ae779 Set tty0 in cmdline as the default preferred console (#3402)
The preferred console (which is used for printing the systemd boot log)
is the last one specified in the cmdline boot arguments. Make sure it is
always tty0, i.e. the first graphical console.

In some places tty1 was used - change it to tty0 which is commonly used,
and in HAOS points to tty1 anyway.

The only exception is the Yellow, which doesn't have an HDMI port, so
the serial console is used as the preferred one instead.

For ASUS Tinker, use a versioned cmdline.txt file instead of in-place
generating it in the post-build hook.
2024-06-07 12:59:21 +02:00
Jan Čermák
bd7474fc97 RaspberryPi: Update kernel to 6.6.31 - stable_20240529 (#3400)
* RaspberryPi: Update kernel to 6.6.31 - stable_20240529

* Unify Linux patches after RPi update to non-conflicting 6.6.31

* Bump buildroot to update rpi-firmware

* buildroot 9af2384782...691077e577 (1):
  > package/rpi-firmware: bump to version 1.20240529 for kernel 6.6.31
2024-06-04 17:33:51 +02:00
dependabot[bot]
5ed9057728 Bump docker/login-action from 3.1.0 to 3.2.0 (#3399)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-03 15:15:55 +02:00
Jan Čermák
682d59434e Linux: Update kernel to 6.6.32 (#3394)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.32
2024-05-27 15:00:13 +02:00
Jan Čermák
2c725d90f6 Reintroduce IPv6 reachability probe patch for RPi lost after refactoring (#3389)
* Reintroduce IPv6 reachability probe patch for RPi lost after refactoring

In #3384 we moved the patches around, which results in version-specific
patches not applied for RPi linux-custom build. Copy the missing IPv6
reachability probe patch to the RPi patches directory.

* Only copy IPv6 reachability probe patch to top-level linux patches

Instead of copying the patch to RPi directory and renumbering the
patches, only copy it upper level so it's applied for all linux versions
other than 6.6.31.
2024-05-24 09:30:07 +02:00
Jan Čermák
8dbc03cc76 Linux: Update kernel to 6.6.31 (#3384)
* Linux: Update kernel to 6.6.31

* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.31

* Update patch workarounding Z-Wave.me USB issues

Linux commit 480c3abbba36628dab063b9ca218bb28090e5b46 changed code that
is reverted by the patch. Use a version-specific patch directory again
for upstream Linux patches before RPi kernel is updated to 6.6.31+.
2024-05-21 21:27:51 +02:00
Jan Čermák
8aa9869e4f Use U-Boot tarball for all boards (#3361)
ODROID M1, M1S and Green historically used git repo as the source. Now
that we use the same version for all boards, use always use distribution
tarball for consistency and more efficient caching.
2024-05-14 11:23:31 +02:00
Jan Čermák
dd96b5019a Bump buildroot to update openvmtools to 12.3.0 (again) (#3370)
Cherry-picked downstream-only patch lost in Buildroot 2024.02 bump.

* buildroot 34e790c5da...9af2384782 (1):
  > package/openvmtools: bump version to 12.3.0

Fixes #3366
2024-05-14 11:06:37 +02:00
Jan Čermák
229cc7ebbb Merge branch 'main' into dev 2024-05-09 10:18:11 +02:00
Jan Čermák
ca71774e7d Linux: Update kernel to 6.6.30 (#3342)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.30
2024-05-08 21:26:45 +02:00
Jan Čermák
12597f197f Bump OS to release version 12.3 2024-05-06 14:35:19 +02:00
Stefan Agner
2c266c53f1 Enable grep context feature (#3339)
Add context feature to Busybox grep configuration. Context is really useful
when checking host logs directly on the OS shell.
2024-05-01 19:05:01 +02:00
Jan Čermák
d7338e7570 Bump OS to pre-release version 12.3.rc2 2024-04-30 11:58:55 +02:00
Jan Čermák
301bf4a377 RaspberryPi: Update kernel to 6.6.28 - stable_20240423 (#3336)
* RaspberryPi: Update kernel to 6.6.28 - stable_20240423

* Bump buildroot to update rpi-firmware

* buildroot 0a64bfe8f1...e8948ce36e (1):
  > package/rpi-firmware: bump to version 1.20240424 for kernel 6.6.28

(cherry picked from commit 9fa953745a)
2024-04-30 11:57:24 +02:00
Jan Čermák
2ea9eccf79 Fix incorrect mapping of DT overlays on RPi 5 (#3335)
RPi 5 config uses BR2_LINUX_KERNEL_INSTALL_INTREE_OVERLAYS which builds
the device tree overlays from the Linux tree when building the kernel.
The overlays directory also contains overlay_map.dtb which is necessary
to correctly map overlays without RPi version suffix to the
platform-specific ones. Without this, some peripherals may not work
correctly on Pi 5 without any obvious error messages in the kernel log
because an incorrect (Pi 4) overlay is used as the default.

Fixes #3321

* buildroot cc0481f40e...0a64bfe8f1 (1):
  > Install overlay_map.dtb when using in-tree DT overlays

(cherry picked from commit fce19b7846)
2024-04-30 11:56:55 +02:00
Jan Čermák
1a5a2c4e28 Linux: Update kernel to 6.6.29 (#3334)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.29

(cherry picked from commit 65f35c65b2)
2024-04-30 11:56:48 +02:00
Jan Čermák
7a94a2ef71 Enable kernel userspace crypto API interface for all platforms (#3330)
Enable libkcapi in generic kernel config. The bloat is minimal and the
options are enabled on most distributions. These modules are also needed
for Bluetooth Mesh and adding them fixes compatibility with some HCI USB
adapters.

Fixes #3322

(cherry picked from commit 67315f86d4)
2024-04-30 11:56:44 +02:00
Jan Čermák
ddd528b8e7 Enable KVM for running tests in GH Actions (#3329)
It was not possible on free runners previously, but it should be now:
https://github.com/actions/runner-images/discussions/7191#discussioncomment-9018826

(cherry picked from commit 4e44b101f3)
2024-04-30 11:56:33 +02:00
Jan Čermák
9fa953745a RaspberryPi: Update kernel to 6.6.28 - stable_20240423 (#3336)
* RaspberryPi: Update kernel to 6.6.28 - stable_20240423

* Bump buildroot to update rpi-firmware

* buildroot 0a64bfe8f1...e8948ce36e (1):
  > package/rpi-firmware: bump to version 1.20240424 for kernel 6.6.28
2024-04-30 11:55:13 +02:00
Jan Čermák
fce19b7846 Fix incorrect mapping of DT overlays on RPi 5 (#3335)
RPi 5 config uses BR2_LINUX_KERNEL_INSTALL_INTREE_OVERLAYS which builds
the device tree overlays from the Linux tree when building the kernel.
The overlays directory also contains overlay_map.dtb which is necessary
to correctly map overlays without RPi version suffix to the
platform-specific ones. Without this, some peripherals may not work
correctly on Pi 5 without any obvious error messages in the kernel log
because an incorrect (Pi 4) overlay is used as the default.

Fixes #3321

* buildroot cc0481f40e...0a64bfe8f1 (1):
  > Install overlay_map.dtb when using in-tree DT overlays
2024-04-29 15:20:36 +02:00
Jan Čermák
65f35c65b2 Linux: Update kernel to 6.6.29 (#3334)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.29
2024-04-29 15:12:50 +02:00
Jan Čermák
67315f86d4 Enable kernel userspace crypto API interface for all platforms (#3330)
Enable libkcapi in generic kernel config. The bloat is minimal and the
options are enabled on most distributions. These modules are also needed
for Bluetooth Mesh and adding them fixes compatibility with some HCI USB
adapters.

Fixes #3322
2024-04-26 21:27:35 +02:00
Jan Čermák
4e44b101f3 Enable KVM for running tests in GH Actions (#3329)
It was not possible on free runners previously, but it should be now:
https://github.com/actions/runner-images/discussions/7191#discussioncomment-9018826
2024-04-26 15:30:23 +02:00
Jan Čermák
21fd9e64c8 Bump OS to development version 12.4.dev0 2024-04-26 11:59:15 +02:00
Jan Čermák
9dab6908c9 Bump OS to pre-release version 12.3.rc1 2024-04-26 11:24:09 +02:00
Jan Čermák
a277854add Bump buildroot to update BlueZ to 5.75 (#3326)
* buildroot 9a506c0e75...cc0481f40e (1):
  > package/{bluez5_utils, bluez5_utils-headers}: bump to version 5.75
2024-04-25 17:49:30 +02:00
Jan Čermák
8854dd4ddb Bump buildroot to update linux-pam (#3325)
This fixes "Warning: your password will expire in 0 days." message
shown on tty login since Buildroot bump in HAOS 12.2.

* buildroot 9f5750121a...d29893dd98 (1):
  > package/linux-pam: bump to version 1.6.1
2024-04-25 08:33:10 +02:00
Jan Čermák
478538eac0 Revert GRUB2 patch causing boot failure on some old x86_64 BIOSes (#3324)
GRUB 2.12 release contains a change of the loader [1] used for loading
the kernel on x86_64 platform. This change was identified to cause boot
failure on some old Intel Atom boards with the NM10 chipset, and
possibly some others. Revert this patch before we get a more proper fix
for the issue.

[1] https://git.savannah.gnu.org/cgit/grub.git/commit/?id=cfbfae1aef0694b416aa199291cfef7596cdfc20

Fixes #3305
2024-04-25 08:33:01 +02:00
Stefan Agner
e1b11540a1 ODROID-N2/C2/C4: Force 40MHz instead of 24MHz as eMMC clock (#3319)
It seems that forcing 24MHz clocks is problematic for newer 32GB
Kingston based eMMC modules on ODROID-N2(+). Use what downstream
U-Boot is using as f_max, which is 40MHz.

Fixes: #3227
2024-04-24 20:37:14 +02:00
Salim B
82c3e2a859 Update instructions for ODROID M1 Petitboot update (#3317) 2024-04-18 09:02:17 +02:00
Jan Čermák
9272065664 Linux: Update kernel to 6.6.28 (#3316)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.28
2024-04-17 16:23:18 +02:00
Jan Čermák
77c28be3cd Increase maximum length of usb_storage.quirks in RPi kernel params (#3311)
With #3281 we hit the maximum length of the quirks parameter. Since
cmdline.txt changes are not applied on OS update, only new installs of
12.2 are affected, effectively disabling all quirks until this patch
lands in future OS release.

Fixes #3308
2024-04-15 14:27:41 +02:00
Jan Čermák
85d7c23a5f Linux: Update kernel to 6.6.27 (#3310)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.26
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.27
2024-04-15 14:27:28 +02:00
Stefan Agner
4f53947596 Update Raspberry Pi 3 device tree list (#3301)
Make sure all Raspberry Pi devices using the BCM2837 SoC (or the SiP
version RP3A0 of it) are deployed. This especially makes sure that
we only deploy the downstream device trees (named bcm2710*) and deploy
device trees for the CM3 as well as the Zero 2 and Zero 2 W consistently
for 32-bit and 64-bit.
2024-04-12 09:42:05 +02:00
Jan Čermák
dd76a1dda4 Merge branch 'main' into dev 2024-04-11 10:38:30 +02:00
Jan Čermák
c9efdea83b Bump OS to release version 12.2 2024-04-11 10:07:22 +02:00
Jan Čermák
56ae6e1cb7 Remove BT_HS from kernel configs after upstream removal (#3299)
BT_HS has been removed in e7b02296fb400ee64822fbdd81a0718449066333 and
backported to stable branches - remove it from our configs to avoid
warnings.
2024-04-10 15:53:21 +02:00
Jan Čermák
2254260dad Update Raspberry Pi Kernel to v6.6.20 (#3297)
* RaspberryPi: Update kernel to 6.6.20 - 6f16847710cc0502450788b9f12f0a14d3429668

Used version specified in RPi OS release notes [1].

[1] https://downloads.raspberrypi.org/raspios_arm64/release_notes.txt

* Update RPi Buildroot defconfigs for v6.6.y kernel

* Update RPi kernel patches for v6.6.y kernel

* Amended old patches to accomodate for new DTS paths
* Removed 6.6.25 patches -> moved to the common folder
* Added patch to fix Yellow DTS compilation

* Bump buildroot to update rpi-firmware

* buildroot b45d671fe3...9f5750121a (1):
  > package/rpi-firmware: bump to version for (untagged) kernel v6.6.20

* Remove kernel v6.1.y config fragments, as they're not needed anymore
2024-04-10 10:04:35 +02:00
Jan Čermák
3252676fde Bump OS to pre-release version 12.2.rc2 2024-04-08 19:04:20 +02:00
Jan Čermák
5dc234d14f Only run HA CLI interactively if stdout is a terminal (#3292)
* Only run HA CLI interactively if stdout is a terminal

Flags for running HA CLI commands in an interactive shell added in #3238
cause the command to fail if the process is not running in a terminal.
This is needed for example for the fsfreeze hook, otherwise the command
fails, as seen in this trace when the hook is executed:

-----------
+ '[' thaw '=' freeze ]
+ '[' thaw '=' thaw ]
+ echo 'File system thaw requested, thawing Home Assistant'
File system thaw requested, thawing Home Assistant
+ ha backups thaw
the input device is not a TTY
------------

However, for example on Proxmox this message is not logged anywhere and
the hook just fails silently (i.e. it doesn't cause the backup to fail).

Fixes #3251

* Use -i also when not running in a terminal

(cherry picked from commit 78d281fce1)
2024-04-08 19:03:35 +02:00
Jan Čermák
3e970f1e9a Linux: Update kernel to 6.6.25 (#3291)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.25

(cherry picked from commit 7013872665)
2024-04-08 19:02:54 +02:00
Jan Čermák
ea217fe5bd Update Linux patches directory for v6.6.24 (#3289)
This should have been included in #3288.

(cherry picked from commit 974812a8af)
2024-04-08 19:02:44 +02:00
Jan Čermák
bfe9943068 Linux: Update kernel to 6.6.24 (#3288)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.24

(cherry picked from commit e18c6ef4ce)
2024-04-08 19:02:38 +02:00
Stefan Agner
7166a83998 Ignore non-existing CP15 barrier instructions emulation (#3285)
CP15 barrier instruction emulation only exists on arm64 architecture.
Avoid sysctl writing an error to the journal when the setting doesn't
exist by prepending a dash.

(cherry picked from commit 889b561ca1)
2024-04-08 19:02:33 +02:00
Jan Čermák
7a69678505 Use Docker 25 for installing containers in hassio package (#3286)
Bump DinD version used for creating data partition after Docker bump
in #3271.

(cherry picked from commit 90b618b096)
2024-04-08 19:02:28 +02:00
agglrx
0c9deaeebf Disable UAS via usb-storage.quirks on RPi for ADATA SD600Q (#3281)
Booting from a ADATA SD600Q fails when connected to a USB 3.0 port on RPi4. Adding it to the quirks list resolves the issue.

(cherry picked from commit 5ee9cef8c8)
2024-04-08 19:02:22 +02:00
dependabot[bot]
de3f2c6420 Bump docker/setup-buildx-action from 3.2.0 to 3.3.0 (#3293)
Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 3.2.0 to 3.3.0.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](https://github.com/docker/setup-buildx-action/compare/v3.2.0...v3.3.0)

---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-08 16:05:29 +02:00
Jan Čermák
78d281fce1 Only run HA CLI interactively if stdout is a terminal (#3292)
* Only run HA CLI interactively if stdout is a terminal

Flags for running HA CLI commands in an interactive shell added in #3238
cause the command to fail if the process is not running in a terminal.
This is needed for example for the fsfreeze hook, otherwise the command
fails, as seen in this trace when the hook is executed:

-----------
+ '[' thaw '=' freeze ]
+ '[' thaw '=' thaw ]
+ echo 'File system thaw requested, thawing Home Assistant'
File system thaw requested, thawing Home Assistant
+ ha backups thaw
the input device is not a TTY
------------

However, for example on Proxmox this message is not logged anywhere and
the hook just fails silently (i.e. it doesn't cause the backup to fail).

Fixes #3251

* Use -i also when not running in a terminal
2024-04-08 15:43:12 +02:00
Jan Čermák
7013872665 Linux: Update kernel to 6.6.25 (#3291)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.25
2024-04-08 12:46:54 +02:00
Jan Čermák
974812a8af Update Linux patches directory for v6.6.24 (#3289)
This should have been included in #3288.
2024-04-04 13:52:28 +02:00
Jan Čermák
e18c6ef4ce Linux: Update kernel to 6.6.24 (#3288)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.24
2024-04-04 12:56:14 +02:00
Stefan Agner
889b561ca1 Ignore non-existing CP15 barrier instructions emulation (#3285)
CP15 barrier instruction emulation only exists on arm64 architecture.
Avoid sysctl writing an error to the journal when the setting doesn't
exist by prepending a dash.
2024-04-04 00:33:45 +02:00
Jan Čermák
90b618b096 Use Docker 25 for installing containers in hassio package (#3286)
Bump DinD version used for creating data partition after Docker bump
in #3271.
2024-04-04 00:33:34 +02:00
agglrx
5ee9cef8c8 Disable UAS via usb-storage.quirks on RPi for ADATA SD600Q (#3281)
Booting from a ADATA SD600Q fails when connected to a USB 3.0 port on RPi4. Adding it to the quirks list resolves the issue.
2024-04-02 10:36:37 +02:00
Jan Čermák
040af8fd9b Bump OS to development version 12.3.dev0 2024-04-02 10:32:23 +02:00
Jan Čermák
94bf84a807 Bump OS to pre-release version 12.2.rc1 2024-03-28 11:13:08 +01:00
Jan Čermák
b564fb3fa7 Bump buildroot to fix dbus tmpfiles warning (#3273)
* buildroot f2472c23a3...b45d671fe3 (1):
  > package/dbus: set runstatedir to /run
2024-03-28 11:09:51 +01:00
Jan Čermák
2d6b731b9a Bump buildroot to add forgotten package/runc patch (#3272)
* buildroot 51c9960ed8...f2472c23a3 (1):
  > package/runc: add support for CGroup device permission updates
2024-03-27 17:33:14 +01:00
Jan Čermák
adbd449494 Bump buildroot to update Docker to v25.0.5 (#3271)
* buildroot 1c84a7493b...51c9960ed8 (2):
  > package/docker-engine: bump version to v25.0.5
  > package/docker-cli: bump version to v25.0.5
2024-03-27 17:24:40 +01:00
Jan Čermák
cff5c81cf0 Linux: Update kernel to 6.6.23 (#3270)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.23
2024-03-27 10:20:35 +01:00
Jan Čermák
aafa022800 Bump buildroot to 2024.02.1 (#3268)
* buildroot a1b2d12f32...1c84a7493b (1):
  > Merge tag '2024.02.1' into 2024.02.x-haos
2024-03-26 13:15:48 +01:00
Jan Čermák
ccf92bc87f Disable setting default keymap in systemd-vconsole-setup (#3261)
Since buildroot commit 3ceb8c97bcb6753740fa27a58b8e0dc00dbbbd19, systemd
has new option BR2_PACKAGE_SYSTEMD_VCONSOLE_DEFAULT_KEYMAP which
defaults to "us". With this option specified, systemd-console depends on
kbd package and causes the following message to be printed during
startup on HAOS:

systemd-vconsole-setup[253]: sh: gzip: not found

This comes from the loadkeys call which tries to open the gzipped file,
so likely the kbd package should also depend on gzip. However, since we
don't want the kbd package at this point, I'm leaving this for later
investigation and simply unsetting the new option to revert to
pre-2024.02 setup.
2024-03-20 12:25:43 +01:00
Jan Čermák
a45cab1756 Linux: Update kernel to 6.6.22 (#3259)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.22
2024-03-20 12:25:35 +01:00
Hedda
6c11146d9c List Nabu Casa appliances under boards README.md (#3260)
List Nabu Casa appliances under boards README.md

* Home Assistant Green
* Home Assistant Yellow (based custom carrier board and powered by a Raspberry Pi 4 Compute Module)
* Home Assistant Blue (based on ODROID-N2+)
2024-03-20 09:35:58 +01:00
dependabot[bot]
e144c2bc96 Bump docker/setup-buildx-action from 3.1.0 to 3.2.0 (#3257)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-18 15:35:15 +01:00
dependabot[bot]
6c7c972c5d Bump docker/build-push-action from 5.2.0 to 5.3.0 (#3256)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-18 15:31:55 +01:00
dependabot[bot]
1953c2afdb Bump docker/login-action from 3.0.0 to 3.1.0 (#3258)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-18 15:31:40 +01:00
Matthieu Baerts
6b062f3c75 kernel: enable MPTCP support (#3248)
The official description says:

  Multipath TCP (MPTCP) connections send and receive data over multiple
  subflows in order to utilize multiple network paths. Each subflow uses
  the TCP protocol, and TCP options carry header information for MPTCP.

Thanks to MPTCP, being able to use multiple paths in parallel or
simultaneously brings new use-cases:

- Seamless handovers: switching from one path to another while
  preserving established connections -- Apple is using it for this
  reason since 2013.

- Best network selection: using the "best" available path (latency,
  losses, cost, bandwidth) -- one path can be used as a "backup" one.

- Network aggregation: using multiple paths at the same time to have a
  higher throughput -- e.g. to combine a fixed an mobile network to
  send files faster.

For example, for HA, it is possible to keep a SSH connection alive when
switching from one network to another (e.g. while travelling).

To be able to use MPTCP, both ends need to support it. An application
has to request it, by creating an MPTCP socket instead of a TCP one.
The rest in unchanged. An alternative is to use 'mptcpize' tool, which
relies on LD_PRELOAD to create an MPTCP socket instead of a TCP one.

Note that a MPTCP-enabled server continues to accept regular TCP
connections that do not use the Multipath TCP extension without any
performance impact. When a connection request is received, and is linked
to a listening socket with MPTCP support, the kernel will simply check
if MPTCP options are present. If not, the accepted socket will be a
"plain" TCP one, with the same impact as before.

To use multiple paths at the same time, additional IP addresses need to
be configured, e.g. via the 'ip' tool (IPRoute2).

MPTCP in the kernel is enabled in most main Linux distributions (Debian,
Ubuntu, RedHat, Fedora, etc.), but in more specific ones like Raspbian.
It is available in the Linux kernel since v5.6.

Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
2024-03-14 16:51:01 +01:00
Jan Čermák
c085ff2b10 Bump OS to development version 12.2.dev0 2024-03-13 15:19:48 +01:00
Jan Čermák
454d764676 Update Buildroot to 2024.02 (#3241)
* Update Buildroot to tag 2024.02 with rebased HAOS patchset

* udisks2: update to v2.10.1

  * Updated to version 2.10.x compatible with libblockdev v3
  * Rebased patches to new codebase
  * Autoreconf patch is not needed anymore
  * libblockdev-nvme is now hard dependency of udisks daemon

* patches/grub2: remove upstreamed efidisk patch

* patches/network-manager: update multiple gateway patch

* package/os-agent: fix go download

  After the Go update, build fails with the following error on mod vendor:

    GOPROXY list is not the empty string, but contains no entries

  Turns out this step is not having the environment variables set, use
  those used for download to fix it.

* package/xe-guest-utilities: set DL env for go mod vendor

* Bump buildroot to fix missing unit file from nfs-utils

* buildroot 3f950a1aee...a1b2d12f32 (1):
  > package/nfs-utils: only install fsidd binary and unit file with enabled nfsd

* CI: install flake8 for pr-checks runner

  Use distribution package, as it's what's used in Buidlroot's Gitlab CI
  Docker image at buildroot/support/docker/Dockefile.

* Disable check for Upstream section in the patch header for now

  It was introduced in latest BR - disable it for now and re-enable
  for HAOS in a later separate PR.
2024-03-13 15:16:54 +01:00
Jan Čermák
0e3a2d016d Merge branch 'main' into dev 2024-03-13 12:21:53 +01:00
Jan Čermák
fde0c80e54 Bump OS to release version 12.1 2024-03-13 11:17:02 +01:00
Stefan Agner
80dfffc0b0 Bump OS to pre-release version 12.1.rc2 2024-03-12 16:04:54 +01:00
Jan Čermák
dd43bfee8e Fix IPv6 reachability patch not being applied (#3240)
Fix regression caused by #3224 which introduced version-specific
directory for linux patches, causing the upper-level patch not being
applied. Copy the patch to the version folder instead. Also we need
to keep it in the upper directory for RPi kernels.

(cherry picked from commit 8226323a1b)
2024-03-12 15:09:25 +01:00
Jan Čermák
32f1ca8fa8 Fix test_restore_ssl_directory with HA CLI in interactive PTY (#3239)
The test was missing --no-progress flag, which only manifested after
merging #3238 - causing the CLI to run in an interactive pseudotty.

(cherry picked from commit 122dd1c288)
2024-03-12 14:56:14 +01:00
Stefan Agner
3dfd3a4c21 Start HA CLI interactively and with a tty allocated (#3238)
Use -i (--interactive) and -t (--tty) to start the HA CLI interactively.
This is required by some commands like the new device wipe command added
with https://github.com/home-assistant/cli/pull/464.

(cherry picked from commit fe1978f98f)
2024-03-12 14:56:11 +01:00
Jan Čermák
8226323a1b Fix IPv6 reachability patch not being applied (#3240)
Fix regression caused by #3224 which introduced version-specific
directory for linux patches, causing the upper-level patch not being
applied. Copy the patch to the version folder instead. Also we need
to keep it in the upper directory for RPi kernels.
2024-03-12 14:55:18 +01:00
Jan Čermák
122dd1c288 Fix test_restore_ssl_directory with HA CLI in interactive PTY (#3239)
The test was missing --no-progress flag, which only manifested after
merging #3238 - causing the CLI to run in an interactive pseudotty.
2024-03-12 14:55:10 +01:00
Stefan Agner
fe1978f98f Start HA CLI interactively and with a tty allocated (#3238)
Use -i (--interactive) and -t (--tty) to start the HA CLI interactively.
This is required by some commands like the new device wipe command added
with https://github.com/home-assistant/cli/pull/464.
2024-03-12 10:12:35 +01:00
dependabot[bot]
541afd452b Bump docker/build-push-action from 5.1.0 to 5.2.0 (#3235)
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 5.1.0 to 5.2.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v5.1.0...v5.2.0)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-11 18:28:48 +01:00
Jan Čermák
b5795a0277 Linux: Update kernel to 6.6.21 (#3234)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.21
2024-03-11 18:28:36 +01:00
Jan Čermák
a909d89e1c Bump OS to pre-release version 12.1.rc1 2024-03-07 17:48:52 +01:00
Jan Čermák
e24fbf63ae Revert back to OOT driver for RTL8821CU (#3225)
The in-tree driver introduced in HAOS 12.0 is having random issues,
so revert back to the stable OOT driver that was used before for now.
Also it add it to RPi 2 and Yellow where it's been missing the whole
time.

Fixes #3205
2024-03-06 16:50:14 +01:00
Jan Čermák
a6f54f6c4d Revert USB core changes to workaround Z-Wave stick issues (#3224)
Revert changes in the USB driver causing Z-Wave sticks (Z-Wave.me a
and Aeotec at least) failing to enumerate. Issue is reported upstream
but reverting the patches is a feasible workaround for the time being.

Refs #2995
2024-03-06 16:49:54 +01:00
dependabot[bot]
6ac4f3435b Bump docker/setup-buildx-action from 3.0.0 to 3.1.0 (#3221)
Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 3.0.0 to 3.1.0.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](https://github.com/docker/setup-buildx-action/compare/v3.0.0...v3.1.0)

---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-04 14:26:47 +01:00
Jan Čermák
8debb61114 Disable UAS via usb-storage.quirks on RPi for JMicron JMS567 (#3220)
Reported to have issues, quick search around the internet also confirms
that UAS driver doesn't work well here on Linux in general.

Fixes #3217
2024-03-04 12:11:47 +01:00
Jan Čermák
47f8671925 Add Intel Wireless-N 105 firmware for generic-x86-64 (#3219)
* buildroot 0ab96d7c0d...15dc3b6e0c (1):
  > linux-firmware: add options for missing Intel b/g/n cards

Fixes #3200
2024-03-04 11:56:23 +01:00
Jan Čermák
8f577e47db Linux: Update kernel to 6.6.20 (#3218)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.19
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.20
2024-03-04 11:42:04 +01:00
Jan Čermák
2adfa287d1 Linux: Update kernel to 6.6.18 (#3204)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.17
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.18
2024-02-27 19:17:39 +01:00
Jan Čermák
e60a2e4b68 Merge branch 'main' into dev 2024-02-26 09:39:41 +01:00
Jan Čermák
ff34a11f37 Bump OS to release version 12.0 2024-02-26 09:26:15 +01:00
Jan Čermák
dfdd3b4438 Clarify M1S flashing and recovery docs (#3187)
Remove the mentions of petitboot, as it's not normally used on M1S.
Document possibility to use SD card boot and alternative method of
reflashing the eMMC from an OS running from an SD card.
2024-02-20 14:24:24 +01:00
Tim L
9614f769f2 M1S issues template (#3181)
* Add Odroid M1S to issues template

* Add M1S to Hardkernel readme
2024-02-17 09:17:11 +01:00
Tim L
8c5377810f Add documentation for ODROID-M1S (#3179) 2024-02-16 12:22:28 +01:00
Jan Čermák
426ef2d568 Bump OS to development version 12.1.dev0 2024-02-15 12:08:24 +01:00
Jan Čermák
e9e027dd95 Bump OS to pre-release version 12.0.rc1 2024-02-15 11:40:55 +01:00
Jan Čermák
cf0bde1f5a Move output directory to /mnt in GH build action (#3174)
With recent change of Azure VM type, the disk layout has changed and
the build of ova target fails with insufficient space. Since there
is now plenty of space on /mnt partition, we can use that, just like
we've been using it for cache for now.

Ref: https://github.com/easimon/maximize-build-space/issues/39#issuecomment-1935591779
2024-02-14 17:42:17 +01:00
Tim L
1b66f81dfa Add support for Odroid M1S Board (#3121)
* Copy Odroid-m1 config for new odroid-m1s board

* config: Adjust names and paths for odroid-m1s

* configs: Use rk3566 blobs for ATF

* set correct fdt in uboot.ush

* Add linux patches with Odroid-m1s devicetree

Synced from Hardkernel unofficial 6.1 tree
ae33b44557/arch/arm64/boot/dts/rockchip/rk3566-odroid-m1s.dts

With additional cleanup and fixes for mainline linux

* Add Odroid M1S to Github actions

* uboot: Patch boot order to set SD Card first

* Create u-boot placeholder partion for odroid-m1s also

* Switch u-boot to full odroid-m1s config

* cherry-pick emmc stability improvements

* Generalise u-boot to use ${devtype} instead of hardcoded mmc

* Remove deprecated snps, reset options from device tree

* re-enable uboot ethernet
2024-02-14 12:01:15 +01:00
Jens Maus
623ebd8d38 added udev rule to rpi-rf-mod package to allow addons to have write (#2854)
access to these led nodes.
2024-02-12 17:12:57 +01:00
Tim L
f05294e51d Factor out common Rockchip config (#3165)
* Create common kernel config for Rockchip aarch64 boards

* Green: drop kernel option already included in main config

* Move rockchip RNG patchset to common folder

* Odroid-m1 has no board specific patches now
2024-02-12 16:05:47 +01:00
Jan Čermák
af345d98d7 Add SD/MMC drivers of Realtek card readers for generic_x86_64 (#3170)
We added drivers for Realtek cards readers in #3005, however it also
needs MMC drivers in order to make card reading possible. Enable both
USB and PCI versions of those (each about ~40 kB).

Fixes #3167
2024-02-12 16:05:22 +01:00
Jan Čermák
b599d24658 Update issue template with better links to logs, add CLI instructions (#3169)
* Update issue template with better links to logs, add CLI instructions

Legacy supervisor_logs target (which is currently kind of broken) replaced
with standard logs with provider specified. Added instructions how to get
logs in HA CLI.

* Apply suggestions from code review

Co-authored-by: Stefan Agner <stefan@agner.ch>
2024-02-12 16:05:12 +01:00
Jan Čermák
e7a62ce563 RaspberryPi: Update kernel to 6.1.73 - stable_20240124 (#3162)
* RaspberryPi: Update kernel to 6.1.73 - stable_20240124

* Bump rpi-firmware to version for RPi Linux 6.1.73

* buildroot f844f7f725...0ab96d7c0d (1):
  > package/rpi-firmware: bump to version for stable_20240124 kernel
2024-02-08 22:02:28 +01:00
Stefan Agner
f770a3f4b2 Bump Pi 5 image on release in Raspberry Pi Imager json (#3161) 2024-02-08 19:24:18 +01:00
Jan Čermák
0028e20973 Linux: Update kernel to 6.6.16 (#3159)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.16
2024-02-08 10:36:58 +01:00
Jan Čermák
ad4493a781 Fix ODROID XU4 boot by disabling PROVE_LOCKING in kernel (#3158)
ODROID XU4 fails to boot after update to Linux 6.6. Comparing downstream
kernel config with upstream exynos defconfig shows it has various lockdep
options enabled, and PROVE_LOCKING seems to be the one that causes the
issue. It seems it (or any of PROVE_RCU, TRACE_IRQFLAGS or
PREEMPTIRQ_TRACEPOINTS) which get enabled along with it) probably
triggers some timing issues on the I2C bus, which causes the main PMIC
to fail to properly initialize all voltages.

Since these options should not have any real impact on our system, the
easiest option is to disable them. If we need them, or want to stay
closer to upstream defconfig, further debugging is needed.

Fixes #3137
2024-02-08 10:36:49 +01:00
Jan Čermák
5fddd20258 Use verity bundle format for RAUC updates (#3152)
We originally enabled it in 0ebcdcb9dc
but later reverted the patch in 5b927389b8
because of backward compatibility issues. Since we're going to 12.0,
there is now hopefully enough room for seamless transition.

Co-authored-by: Stefan Agner <stefan@agner.ch>
2024-02-06 18:19:10 +01:00
Jan Čermák
c1b936716d Enable ath12k, MT7996E and various new Realtek drivers from Linux v6.6 (#3151)
* Enable ath12k, MT7996E and various new Realtek drivers from Linux v6.6

* Remove custom rtl8821cu driver from targets running Linux 6.6
2024-02-06 18:18:58 +01:00
Jan Čermák
977f017cf8 Bump buildroot to update BlueZ to v5.72 (#3147)
* buildroot 235a3aee47...f844f7f725 (1):
  > package/{bluez5_utils, bluez5_utils-headers}: bump to version 5.72
2024-02-05 20:07:39 +01:00
Jan Čermák
87938f0a4b Use separate path for v6.1.y and v6.6.y kernel config fragments (#3146)
* Use separate path for v6.1.y and v6.6.y kernel config fragments

Since we're now maintaining Linux configs for two different versions,
it may happen that we want to add some options only to one of the
versions. While the Kconfig might figure the invalid options itself,
our config checking tooling would spam us with warnings. This commit
splits the configs to two directories. This pattern is used only for
the common fragments, more specific ones are usually sharing the same
Linux version anyway.

* Add back options removed in v6.6.y to v6.1.y kernel config fragments
2024-02-05 20:06:59 +01:00
dependabot[bot]
37c2f951d6 Bump release-drafter/release-drafter from 5 to 6 (#3144)
Bumps [release-drafter/release-drafter](https://github.com/release-drafter/release-drafter) from 5 to 6.
- [Release notes](https://github.com/release-drafter/release-drafter/releases)
- [Commits](https://github.com/release-drafter/release-drafter/compare/v5...v6)

---
updated-dependencies:
- dependency-name: release-drafter/release-drafter
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-05 18:02:50 +01:00
Stefan Agner
3dee9895ac Merge branch 'main' into dev 2024-02-05 14:19:24 +01:00
Stefan Agner
0f0eacf46e Bump OS to release version 11.5 2024-02-05 10:41:11 +01:00
Jan Čermák
8fef166685 Bump OS to development version 12.0.dev0 2024-02-02 14:32:34 +01:00
Jan Čermák
b08f7de9e1 Update buildroot to latest version with rebased 6.6 patches 2024-02-02 14:31:49 +01:00
Jan Čermák
9dcf8ae82f Update to 6.6 LTS kernel (#3063)
* Linux: Update kernel 6.6.15

* Update buildroot packages to work with Linux 6.6

* Fix top-level and pc patches of linux

* Update tinker patch series

* Drop Odroid M1 patches

M1 is now supported in upstream.

* Update Hardkernel patches

Needed larger refactoring because of 379ae64609c7a3301b60483eb65bd8bc78f76328

* Update Green patches

* Update Odroid XU4 patches

Removing the TMU patch/hack for now, need to check if it's still needed.
If it is indeed, then it needs slighter rewrite.

* Move Rockchip RNG patches to M1 and Green dirs

* Update rtl88x2bu package to fix build

* Update gasket package to fix build

* Fix eq3_char_loop build

* Use fan53555 instead of custom rk860x driver

* Fix kernel base configs and fragments after 6.6 update

Mostly removed options that have been removed between releases. Only
a few options have been renamed, then there's bunch of options that
had dependencies added so they are available only on some architectures,
which are not those that we're using.

* Remove deprecated regulator-compatible from Green DTS
2024-02-02 14:27:18 +01:00
Jan Čermák
c90c175754 Linux: Update kernel to 6.1.76 (#3134)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.1.76
2024-02-01 11:32:41 +01:00
Jan Čermák
b3e3d833a7 Include links to kernel changelogs on kernel bump (#3133)
Generate list of changelogs if we're bumping to the next patch release.
If major or minor version is bumped, the commit message contains only
the title, like before.

Also fix English in the commit title of RPi bump.
2024-02-01 11:27:52 +01:00
Jan Čermák
5271dd180d Fix check-dotconfig warnings coming from custom kernel configs (#3130)
* Remove options not present in current kernel anymore

* Adjust options set to incorrect values

* Remove options unset due to missing dependencies
2024-02-01 10:05:45 +01:00
Jan Čermák
3c50eee20b Bump buildroot to 2023.02.9 (#3129)
* buildroot 512a487366...015e99f244 (1):
  > Merge tag '2023.02.9' into 2023.02.x-haos
2024-01-31 12:45:38 +01:00
Jan Čermák
1e70dc8edf Bump OS to pre-release version 11.5.rc3 2024-01-31 10:25:40 +01:00
Jan Čermák
fd3c1066b8 Update ATF and DDR blob for Odroid M1, change 1056->1560 MHz RAM timing (#3125)
Odroid M1 was using 1056 MHz blob for RAM training, although it can run
at 1560 MHz. Use the correct file for M1 and update it to latest version,
along with ARM Trusted Firmware blob.

(cherry picked from commit 1f45aaf359)
2024-01-31 10:24:58 +01:00
Stefan Agner
f4f7928f17 Disable MMC environment on ASUS Tinkerboard (#3124)
We don't really use the MMC environment, so disable it by default. This
prevents the following warning at startup:
Loading Environment from MMC... *** Warning - bad CRC, using default environment

(cherry picked from commit f263326ef8)
2024-01-31 10:24:05 +01:00
Stefan Agner
8eeb85ed17 Disable Ethernet in U-Boot if ODROID-M1 (#3122)
It seems that the Ethernet initialization in U-Boot causes significant
packet drops in Linux on some board. On a ODROID-M1 with 8GB of RAM, a
packet loss rate of ~20% has been observed. From the user point of view
it feels like a massive slow down (SSH feels very slow, Home Assistant
loads very slow or not at all).

Disabling the Ethernet controller driver avoids initialization in U-Boot
and makes Ethernet work correctly again in Linux.

While at it, drop the previously board specific configs. They haven't
been used and the board seemed fine without them.

(cherry picked from commit bd3cae5300)
2024-01-31 10:20:21 +01:00
Jens Maus
e00709d449 Add optional rpi-rf-mod dtoverlay block for RPi5 (#3080)
* added optional rpi-rf-mod dtoverlay block
* remove dtoverlay=miniuart-bt as not required.

(cherry picked from commit 9102f06fba)
2024-01-31 10:20:18 +01:00
Tim L
9e7b6783d1 Drop Amlogic specific patches for Odroid-m1 build (#3120)
All of the patches in ./board/hardkernel/patches are specific to
Amlogic SoC's. Drop this patch path when building Rockchip based
Odroid-m1 board.
2024-01-31 09:12:33 +01:00
Jan Čermák
1f45aaf359 Update ATF and DDR blob for Odroid M1, change 1056->1560 MHz RAM timing (#3125)
Odroid M1 was using 1056 MHz blob for RAM training, although it can run
at 1560 MHz. Use the correct file for M1 and update it to latest version,
along with ARM Trusted Firmware blob.
2024-01-30 13:48:36 +01:00
Jan Čermák
0ac12d3cd4 Also check kernel custom config file in linux-check-dotconfig (#3126)
If BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE is set, it should be also checked
by the script for checking that all kernel options are applied.
2024-01-30 13:36:59 +01:00
Stefan Agner
f263326ef8 Disable MMC environment on ASUS Tinkerboard (#3124)
We don't really use the MMC environment, so disable it by default. This
prevents the following warning at startup:
Loading Environment from MMC... *** Warning - bad CRC, using default environment
2024-01-30 11:47:48 +01:00
Jan Čermák
82e1beff2e Linux: Update kernel 6.1.75 (#3123) 2024-01-30 11:30:19 +01:00
Tim L
54e86009c2 Use rockchip combined SPL images for Tinkerboard (#3118)
* tinker: Drop patch for u-boot entry point and move into uboot.config

* tinker: Use rockchip combined uboot image
2024-01-30 11:22:23 +01:00
Stefan Agner
bd3cae5300 Disable Ethernet in U-Boot if ODROID-M1 (#3122)
It seems that the Ethernet initialization in U-Boot causes significant
packet drops in Linux on some board. On a ODROID-M1 with 8GB of RAM, a
packet loss rate of ~20% has been observed. From the user point of view
it feels like a massive slow down (SSH feels very slow, Home Assistant
loads very slow or not at all).

Disabling the Ethernet controller driver avoids initialization in U-Boot
and makes Ethernet work correctly again in Linux.

While at it, drop the previously board specific configs. They haven't
been used and the board seemed fine without them.
2024-01-30 10:12:48 +01:00
Jens Maus
9102f06fba Add optional rpi-rf-mod dtoverlay block for RPi5 (#3080)
* added optional rpi-rf-mod dtoverlay block
* remove dtoverlay=miniuart-bt as not required.
2024-01-30 10:12:01 +01:00
Tim L
9df30c9e4e Use rockchip combined uboot images (#3115) 2024-01-29 22:12:52 +01:00
Jan Čermák
378b90bc82 Bump OS to pre-release version 11.5.rc2 2024-01-26 14:23:39 +01:00
Jan Čermák
01c8c1a5fa Add kernel options missing as a result of enabling CONFIG_EXPERT (#3114)
Enabling CONFIG_EXPERT, which was a dependency of some options we try
to set by our config fragments, had a side-effect of toggling some other
options, most importantly the framebuffer console support. Enable the
options found by diffing old and new kernel configs.

Fixes #3112

(cherry picked from commit 3d234144a2)
2024-01-26 14:23:17 +01:00
Jan Čermák
3d234144a2 Add kernel options missing as a result of enabling CONFIG_EXPERT (#3114)
Enabling CONFIG_EXPERT, which was a dependency of some options we try
to set by our config fragments, had a side-effect of toggling some other
options, most importantly the framebuffer console support. Enable the
options found by diffing old and new kernel configs.

Fixes #3112
2024-01-26 14:04:14 +01:00
Jan Čermák
ae4ab5aa24 Bump OS to development version 11.6.dev0 2024-01-25 15:26:28 +01:00
Jan Čermák
113348ef93 Bump OS to pre-release version 11.5.rc1 2024-01-25 14:26:08 +01:00
Jan Čermák
4b2d34368d Fix path to VHDX artifact in OS build job (#3105) 2024-01-25 09:46:10 +01:00
Jan Čermák
aadb5a74b6 Use renamed MT7921/MT7922 options from linux-firmware upstream merge (#3106)
* ../../../buildroot 55120df0b7...512a487366 (3):
  > package/linux-firmware: add WiFi and BT firmware for MT7921 and MT7922
  > package/dbus-broker: fix legal info
  > package/rtl8821cu: fix legal info
2024-01-25 09:43:07 +01:00
Jan Čermák
4619dcbb16 Create empty overlays/README to fix DTB overlay loading on RPi 5 (#3107)
Since we're using a custom os_prefix for dual boot on RPi 5, overlays
can be also present in different directories. Raspberry Pi's bootloader
has a strange feature that it only respects os_prefix if the directory
with overlays contains a README file:
https://www.raspberrypi.com/documentation/computers/config_txt.html#overlay_prefix

While rpi-firmware package touches the file when copying overlays to
the destination directory, for RPi 5 we are using BR2_LINUX_KERNEL_INSTALL_INTREE_OVERLAYS
option which does not copy or create it. Ensure it is present (no matter
if we're using intree on rpi-firmware overlays) in the hassos-hook.

Fixes #3079

(also removed invalid mention about the README from config.txt)
2024-01-25 09:27:52 +01:00
Jan Čermák
08b3277bdb Resolve warnings caused by incorrect kernel config settings (#3104)
* Remove all non-existing kernel config symbols

* Remove unapplied x86 Intel sound options

These are missing various subsystem dependencies and were never in fact
enabled, assuming they're rather exotic and removing them completely.

* Add missing dependencies, adjust tristate values, remove nonsense

* Use KERNEL_LZ4 only for non-aarch64

Since aarch64 doesn't use self-extracting kernel:
https://patchwork.kernel.org/project/linux-arm-kernel/patch/20190119185540.20526-1-tobias.johannes.klausmann@mni.thm.de/

* Extract PCI options to device-support-pci fragment (renamed from device-support-pcie)

RPi 4+ should use this fragment too, since CM4 has PCIe support.

* Rename RPi's kernel-32b fragment to kernel-armv7
2024-01-24 12:03:25 +01:00
Stefan Agner
bf744adc5f Bump U-Boot to 2024.01 (#3096)
* Bump U-Boot to 2024.01 for Raspberry Pi and Home Assistant Yellow

* Regenerated using --no-thread

By default git creates some email headers. We can minimize them using
--no-thread.

* Fix build for Yellow

* Update U-Boot for ASUS Tinker Board

* Update U-Boot for Khadas VIM3

* Update U-Boot for ODROID-M1

* Update U-Boot for Home Assistant Green

* Update U-Boot for ODROID-C2/C4/N2/XU4
2024-01-24 10:01:13 +01:00
Jens Maus
f36ab6cf5e add missing ARMv8 32bit kernel support configs (#3099) 2024-01-23 21:28:24 +01:00
Stefan Agner
7685e04c2b Enable PCIe for Khadas VIM3 (#3092) (#3100)
It seems that the PCIe driver is not enabled for Khadas VIM3. Enable it
by default.

Note to make use of the M2X extension board, the following commands need
to be executed on the U-Boot command line:

```
HAOS> i2c dev 0
Setting bus to 0
HAOS> i2c mw 0x18 0x33 1
```
2024-01-23 21:27:49 +01:00
Jan Čermák
d83fc29969 Fix ARCH/SRCARCH for aarch64 in linux-check-dotconfig (#3098)
Wrong arch for arm64 produces few false check results resulting
from some symbols in arm64 tree not being loaded. We can use raw
$(ARCH) variable for arm, only need to translate aarch64 -> arm64.
2024-01-22 22:15:54 +01:00
Jan Čermák
82e7dc7ccf Linux: Update kernel 6.1.74 (#3093) 2024-01-22 18:09:30 +01:00
dependabot[bot]
ab586e285f Bump actions/cache from 3 to 4 (#3095)
Bumps [actions/cache](https://github.com/actions/cache) from 3 to 4.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-22 18:09:15 +01:00
Tom Pipe
ff84663caa Fix build_haos_builder step to fetch the correct version (#3091)
Fixes the build_haos_builder step to fetch the version correctly from the version step, not the (non-existent) version_main step
2024-01-19 13:18:03 +01:00
Tim L
c210a1a52a Dockerfile: migrate to trusted.gpg.d for docker repo keys (#3090)
Using apt-key for managing Debian repo keys has been deprecated for a
while now. While it currently works ok, seems to be broken in bookworm. This migrates to storing keys in trusted.gpg.d as recommended by the warning messages when using apt-key.
2024-01-19 11:02:34 +01:00
Jan Čermák
3aa2c1e411 Bump buildroot to update linux-firmware (#3084)
* buildroot 153f1461f6...55120df0b7 (8):
  > package/linux-firmware: bump version to 20231211
  > package/linux-firmware: bump version to 20231030
  > package/linux-firmware: add iwlwifi quz firmware
  > package/linux-firmware: add new option for Marvell prestera firmware
  > package/linux-firmware: bump version to 20230804
  > package/linux-firmware: bump version to 20230625
  > package/linux-firmware: add QCA9377 BT firmware
  > package/linux-firmware: bump version to 20230515
2024-01-17 18:58:56 +01:00
Jan Čermák
c845b387c9 Linux: Update kernel 6.1.73 (#3083) 2024-01-17 18:58:45 +01:00
Jan Čermák
bde080336e Fix path to cmdline after successful RPi 5 tryboot (#3085)
Path to cmdline is set in tryboot.txt to cmdline-tryboot.txt before
attempting A/B boot. After successful boot, tryboot.txt is relocated
to config.txt, yet the config path of cmdline is not changed and remains
set to cmdline-tryboot.txt which doesn't exist anymore at that point,
causing following reboots to fail.

Fixes #3065
2024-01-17 17:56:29 +01:00
Tom Pipe
e7c15f9aa6 Fix self_signed_cert variable value (#3071)
The value of ```self_signed_cert``` is being set incorrectly, resulting in a failed build, as the self signed certs aren't copied correctly.

Updated so the value is set from ```self_signed_cert``` and not ```self_signed```
2024-01-17 10:45:12 +01:00
Jan Čermák
a7f570c4b4 Linux: Update kernel 6.1.72 (#3064)
* Linux: Update kernel 6.1.72
* Remove SMB client workaround for 6.1.71
2024-01-11 10:04:10 +01:00
Jan Čermák
59555e597e Merge Buildroot 2023.2.8 (#3060)
* buildroot 2d89a0f9b6...153f1461f6 (1):
  > Merge tag '2023.02.8' into 2023.02.x-haos
2024-01-10 10:23:21 +01:00
Jan Čermák
c328d30610 Merge branch 'main' into dev 2024-01-09 10:55:26 +01:00
Jan Čermák
b88ba4d208 Bump OS to release version 11.4 2024-01-09 10:47:53 +01:00
Jan Čermák
99e8af2aac Bump OS to development version 11.5.dev0 2024-01-08 15:09:41 +01:00
Jan Čermák
66087c4334 Bump OS to pre-release version 11.4.rc1 2024-01-08 14:41:33 +01:00
Jan Čermák
baa756e736 Revert kernel patch causing failures on CIFS share disk usage (#3051)
* Revert kernel patch causing failures on CIFS share disk usage

The issue was reported upstream, waiting for a fix there. Reverting the
patch for a quick resolution of the bug that breaks some things in HA
and add-ons badly.

Refs #3041

* Move the patch to 6.1.71 subdirectory

That way Raspberry Pi's kernel won't be patched (unless it's the same
version which it's currently not).
2024-01-08 13:03:22 +01:00
Jan Čermák
1a48d6fdd4 Add rtw89 firmware option missing in #3003 (#3043)
In #3003 the rtw89 firmware was only added to the buildroot submodule,
config option for enabling it was missing.
2024-01-06 17:30:50 +01:00
Jan Čermák
f50f7c2475 Linux: Update kernel 6.1.71 (#3046) 2024-01-06 17:29:28 +01:00
Stefan Agner
e93d92b50e Merge branch 'main' into dev 2024-01-04 21:28:48 +01:00
Stefan Agner
0ec5c22d3a Remove rootfstype for Raspberry Pi 5 (#3037) 2024-01-04 21:26:55 +01:00
Stefan Agner
fdd0bd0efb Bump OS to release version 11.3 2024-01-04 15:40:02 +01:00
Stefan Agner
57913a3eee Bump OS to pre-release version 11.3.rc2 2024-01-03 10:46:30 +01:00
Jan Čermák
d6873893a4 Linux: Update kernel 6.1.70 (#3029) 2024-01-03 10:46:02 +01:00
Stefan Agner
572d14adcc Enable IP policy routing options (#3026) (#3027)
Enable multiple table options which allows policy routing based on
source address or type-of-service. This is useful for Tailscale.
2024-01-03 10:46:02 +01:00
Stefan Agner
fe8c4ef6c1 Set Raspberry Pi 2 Supervisor architecture correctly (#3012)
The Raspberry Pi 2 was based on Cortex-A7 in first revisions, then
Cortex-A53. However, both ar armv7 architectures, and that is also how
the Operating System itself is configured. Use the correct architecture
for Supervisor.

The hassos-supervisor script should recreate the container
automatically on first boot after update.

Since Supervisor itself is written in Python this shouldn't affect much.
However, the Supervisor uses it's architecture as default architecture
when building local add-on and uses it as default architecture for
multi-arch container images. This is also where this error got noticed
(see https://github.com/home-assistant/supervisor/issues/4402#issuecomment-1865979421).
2024-01-03 10:45:56 +01:00
Jan Čermák
714912a2a9 Suppress action-shellcheck warning from deprecated option (#3030)
Use ignore_paths instead of ignore for the buildroot directory.
2024-01-03 10:02:44 +01:00
Jan Čermák
62b76f7f47 Linux: Update kernel 6.1.70 (#3029) 2024-01-03 10:02:34 +01:00
Stefan Agner
d82458a6a8 Enable IP policy routing options (#3026) (#3027)
Enable multiple table options which allows policy routing based on
source address or type-of-service. This is useful for Tailscale.
2024-01-03 09:35:49 +01:00
Stefan Agner
6c549c10d8 Set Raspberry Pi 2 Supervisor architecture correctly (#3012)
The Raspberry Pi 2 was based on Cortex-A7 in first revisions, then
Cortex-A53. However, both ar armv7 architectures, and that is also how
the Operating System itself is configured. Use the correct architecture
for Supervisor.

The hassos-supervisor script should recreate the container
automatically on first boot after update.

Since Supervisor itself is written in Python this shouldn't affect much.
However, the Supervisor uses it's architecture as default architecture
when building local add-on and uses it as default architecture for
multi-arch container images. This is also where this error got noticed
(see https://github.com/home-assistant/supervisor/issues/4402#issuecomment-1865979421).
2023-12-26 17:53:20 +01:00
Jan Čermák
364ca718fb Remove duplicated step uploading ova QEMU image for the test job (#3011)
* Remove duplicated step uploading ova QEMU image for the test job

Instead of uploading the file twice with a fixed name, upload it in the
same step that is used for unpublished builds and pass the version string
to the test job.

* Update .github/workflows/test.yaml

Co-authored-by: Stefan Agner <stefan@agner.ch>

---------

Co-authored-by: Stefan Agner <stefan@agner.ch>
2023-12-26 17:53:00 +01:00
Jan Čermák
978e13b180 Generate self-signed certificate in the prepare step and archive it (#3015)
Generate the certificate only once and make it available. The preferred
option that doesn't generate warnings would be to use secrets in the
repository config, in that case no certificate is generated or archived.
2023-12-22 14:49:40 +01:00
Stefan Agner
225d4194bf Bump OS to development version 11.4.dev0 2023-12-21 17:04:24 +01:00
Stefan Agner
230a50587f Bump OS to pre-release version 11.3.rc1 2023-12-21 15:06:11 +01:00
Stefan Agner
de82d0b412 Linux: Update kernel 6.1.69 (#3009) 2023-12-21 09:45:54 +01:00
Stefan Agner
7ef16072c6 Bump buildroot to update dbus-broker to 35 (#3008)
* buildroot 4c89661fd1...2d89a0f9b6 (2):
  > package/dbus-broker: bump to release 35
  > Revert "package/dbus-broker: avoid blocking due to missing entropy"
2023-12-21 09:09:54 +01:00
Jan Čermák
13e0f13f3c Enable driver for Realtek card readers (#3005)
Enable PCI card reader found on some Intel NUC models, along with the USB
drivers as well.

Adds two new modules (listed with size):

30104   /lib/modules/6.1.68-haos/kernel/drivers/misc/cardreader/rtsx_usb.ko
167240  /lib/modules/6.1.68-haos/kernel/drivers/misc/cardreader/rtsx_pci.ko

Fixes #2688
2023-12-20 17:41:54 +01:00
Jan Čermák
5a9be34007 Add script for checking resulting kernel config (#3006)
There is bunch of kernel config options that are not propagated
correctly to the kernel configuration after fragments are merged
and processed by Kconfig. Current Buildroot tools are not good at
discovering these - while we cleaned up most inconsistencies by using
linux-diff-config and output from the merge_config.sh script, there
are still options that were removed or get a different value than
intended because of dependencies, etc.

This commit adds a Python script that is using Kconfiglib to parse
current kernel's Kconfig files and the generated .config and compare
the requested values from individual kernel config fragments. The
script can be used manually by running `make linux-check-dotconfig`
from the buildroot directory (with path to BR2_EXTERNAL directory set)
and it's called also from the CI, where it generates Github Workflow
warning annotations when some of the values are not present or when set
incorrectly.

The kconfiglib.py is checked-in to the repo as well, because the library
is currently abandoned on PyPI and packaged version has a bug that causes
errors parsing Kconfigs in newer Linux versions, fixed in outstanding
pull request ulfalizer/Kconfiglib#119 - so version from this PR is used
here.

If pypi/support#2526 is ever resolved, we could remove it from our repo
and use pip for installing the package as a requirement during build
of the build container.
2023-12-20 17:41:39 +01:00
Jan Čermák
2e7aa1dc6a Add rtw89, mt7921 and mt7922 WiFi and BT firmware (#3003)
Add new firmwares and enable them for all targets.
Bloat in rootfs in my x86_64 test build was ~2.16 MiB.

Buildroot bump:

* buildroot 8a75878da4...4c89661fd1 (2):
  > package/linux-firmware: add WiFi and BT firmware for MT7921 and MT7922
  > package/linux-firmware: add rtw89 firmware files
2023-12-20 17:39:04 +01:00
Jan Čermák
d116bba470 Enable virtio-mem and DMI tables/fw_cfg sysfs for aarch64 and ova (#3004)
Enable options that can be useful on virtualized systems as modules.

Fixes #2987
2023-12-20 16:16:53 +01:00
Jan Čermák
069614a968 Adjust build to allow running from forks or feature branches (#2998)
Make it possible to run build on feature branches by adding a flag that
can be used to select whether the build output will be uploaded to the
R2 artifacts bucket or kept only as build artifact on GH. The latter is
also used for 3rd party repos, allowing builds in forked repositories.

Feature builds are using Unix timestamp as the dev version suffix. This
makes them easily distiguishable, yet it makes them appear to be newer
than standard daily dev version builds when compared by AwesomeVersion.
2023-12-19 16:57:26 +01:00
Stefan Agner
b9efb8edaf Enable WPA3 support in wpa_supplicant to support WPA3-SAE (#3000) 2023-12-19 15:43:18 +01:00
Jan Čermák
722cdf26f4 Enable ZSTD compression of firmware files (#3001)
Compress firmware files from linux-firmware using ZSTD algorithm.
This should grant us some more space to add more firmwares and should
not have any major performance impact, because firmwares are not accessed
frequently.

Includes buildroot submodule bump:
* buildroot 07e08e01b2...8a75878da4 (1):
  > linux-firmware: add option for firmware files compression
2023-12-19 15:31:19 +01:00
dependabot[bot]
e4fab0ab93 Bump actions/upload-artifact from 3 to 4 (#2997)
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 3 to 4.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-18 21:58:24 +01:00
dependabot[bot]
7fc91c7bd7 Bump actions/download-artifact from 3 to 4 (#2996)
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 3 to 4.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](https://github.com/actions/download-artifact/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/download-artifact
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-18 17:06:50 +01:00
Stefan Agner
779b75f10e Linux: Update kernel 6.1.68 (#2991) 2023-12-14 17:59:51 +01:00
Jan Čermák
f605dd43ec Add build summary for each board build (#2990)
This allows for rudimentary image/partition size tracking between builds,
potentially this could be further extended with more useful information
about the build (TBD).
2023-12-14 15:49:40 +01:00
Jan Čermák
fb13b2bff8 Remove Raspberry Pi 1/Zero from docs (#2986)
Its support has been removed 2 years ago.
2023-12-12 15:01:46 +01:00
Stefan Agner
5b3447ae38 Add Raspberry Pi 5 to GitHub Action (#2985) 2023-12-12 13:34:31 +01:00
Stefan Agner
8e1016dcaf Initial Raspberry Pi 5 support (#2914)
* Add initial Raspberry Pi 5 buildroot config

* Add machine-id support via cmdline.txt

* Add new entry if entry is missing

* Don't overwrite cmdline.txt when adding machine-id

Use sed to append the new cmdline parameter to the first line.

* Skeleton script for RAUC custom bootloader interface

* Deploy kernel/device-tree into a RAUC slot specific directory

This allows us to use the os_prefix feature to switch between slot A and
B. Compared to the boot_partition option, this option allows to use a
shared config.txt and cmdline.txt, which makes it more like how HAOS
currently works on other Raspberry Pis.

* Deploy new kernel/device-tree to correct slot on installation

* Increase boot size to 128MB

This makes sure we can store up to three kernels (slot A, B and an
temporary one while installing the OTA update).

* Initial tryboot implementation using os_prefix

* Make sure to delete the old slot completely

* Add Busybox xargs for tryboot bootloader script

* Compare tryboot bootloader file silently

* Revert "Increase boot size to 128MB"

This reverts commit 7f2c69b58f02f500d6aeee4f0a419046899b5e38.

* Use compressed kernel

* Address shellcheck

* Address shellcheck issue in rauc-hook

* Fix shellcheck for rpi-tryboot.sh

* Do not follow source - it gets checked separately

* Correctly set the slot to boot

* Apply suggestions from code review

Co-authored-by: Jan Čermák <sairon@users.noreply.github.com>

* Drop serial console from default cmdline.txt

* Resync rpi5_64_defconfig with rpi4_64_defconfig

* Improve machine-id match

Only match actual hexadecimal characters.

* Deploy firmware overlays to OS prefix directory

* Add Raspberry Pi 5 to documentation

* Bump buildroot

* buildroot fd1dc86f40...f13ad03408 (1):
  > linux: add in-tree device tree overlay support

* Install device tree overlays from Kernel sources

* Drop RPi RF modules for now

No Raspberry Pi 5 specific device tree overlays are  available, drop RPi
RF mod for now.

* Use Raspberry 5 specific identifiers for Supervisor/OS Agent

* Bump buildroot

* buildroot f13ad03408...07e08e01b2 (1):
  > linux: fix add in-tree device tree overlay support

* Revert "Drop RPi RF modules for now"

This reverts commit 46fc1701e4.

---------

Co-authored-by: Jan Čermák <sairon@users.noreply.github.com>
2023-12-12 13:19:26 +01:00
Stefan Agner
ac089a2d8e Linux: Update kernel 6.1.67 (#2984) 2023-12-12 09:20:50 +01:00
dependabot[bot]
77c7def4e3 Bump actions/setup-python from 4 to 5 (#2981)
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 4 to 5.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-11 15:24:01 +01:00
dependabot[bot]
c6ca14182b Bump actions/stale from 8.0.0 to 9.0.0 (#2980)
Bumps [actions/stale](https://github.com/actions/stale) from 8.0.0 to 9.0.0.
- [Release notes](https://github.com/actions/stale/releases)
- [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/stale/compare/v8.0.0...v9.0.0)

---
updated-dependencies:
- dependency-name: actions/stale
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-11 15:23:33 +01:00
Jan Čermák
1e6deab48b Linux: Update kernel 6.1.66 (#2979) 2023-12-11 10:51:20 +01:00
Jan Čermák
dff282ff00 Bump brcmfmac_sdio-firmware-rpi to sync with RPi OS (#2971)
* buildroot 836f7e7b5e...fd1dc86f40 (1):
  > brcmfmac_sdio-firmware-rpi: update to sync firmware with RPi OS, add new symlinks
2023-12-08 13:23:27 +01:00
Jan Čermák
1211b24c7f Add image size check to hdd-image.sh (#2965)
There is no sanity check when creating OS images, so when some of the
partitions gets too big, part of its data may get overwritten by the
following partition, resulting in corrupted image. Add checks for the
defined partition sizes and bail out if they're too big.
2023-12-05 11:38:33 +01:00
Stefan Agner
d427248a05 Merge branch 'main' into dev 2023-12-04 16:12:59 +01:00
Stefan Agner
6579b978d0 Bump OS to release version 11.2 2023-12-04 15:00:06 +01:00
Stefan Agner
1ffaec3acb Fix Supervisor image corruption detection (#2953)
* Fix Supervisor image corruption detection

When multiple images match the reference, multiple IDs are passed as a
single argument to docker image rm, leading to an error:
Error response from daemon: page not found

Make sure to pass the ids as separate argument to make the delete work
in any case.

* Cleanup reusing Supervisor from an old/unused reference

As noted in #2113, we don't need this logic anymore after a major OS
releases. So simply drop the logic to also make the image corruption
detection work again.

* Make sure image IDs are sorted to make them unique
2023-12-04 14:58:08 +01:00
Jan Čermák
934273e344 Backport support for Netgear AXE3000/A8000 and Comfast CF-952AX (#2962)
Current mainline contains support for two more WiFi cards in the mt7921u
driver that only use a proprietary VID/PID but are compatible with the
standard driver. Backport support for those via a simple driver patch.

Fixes #2926
2023-12-04 13:23:22 +01:00
Jan Čermák
da40ca2271 Linux: Update kernel 6.1.65 (#2960) 2023-12-04 13:23:13 +01:00
Jan Čermák
a79e3b270c RaspberryPi: Update kernel 6.1.63 - stable_20231123 (#2956)
* RaspberryPi: Update kernel 6.1.63 - stable_20231123

* Bump rpi-firmware to latest stable version

* buildroot 2b6996211e...836f7e7b5e (1):
  > package/rpi-firmware: bump to version for stable_20231123 kernel
2023-12-01 18:14:01 +01:00
Stefan Agner
20295a5f0b Fix RAUC certificate check (#2955)
Check the right environment variable when determining if RAUC
certificates through secrets are provided.
2023-11-30 17:49:16 +01:00
Stefan Agner
26e96caef6 Linux: Update kernel 6.1.64 (#2954) 2023-11-30 14:45:55 +01:00
Stefan Agner
c59c887a53 Fix Supervisor image corruption detection (#2953)
* Fix Supervisor image corruption detection

When multiple images match the reference, multiple IDs are passed as a
single argument to docker image rm, leading to an error:
Error response from daemon: page not found

Make sure to pass the ids as separate argument to make the delete work
in any case.

* Cleanup reusing Supervisor from an old/unused reference

As noted in #2113, we don't need this logic anymore after a major OS
releases. So simply drop the logic to also make the image corruption
detection work again.

* Make sure image IDs are sorted to make them unique
2023-11-30 14:41:44 +01:00
Jan Čermák
2c6d0de965 Enable more WiFi drivers for all platforms (#2951)
Preemptively enable larger set of WiFi drivers for all platforms and add more firmwares for them with the aim to harmonize WiFi device support among all boards and to have implicit support of devices that users might want to use.  Targets `generic_aarch64`, `generic_x86_64` and `ova` also include options and firmwares for cards that are using PCI/PCIe bus - support for these is in a separate config fragment.

Especially the `generic_x86_64` is currently very tight with the rootfs space, so I had to do some triaging and select only sensible drivers and firmwares - especially archaic PCMCIA devices or devices not supporting only 802.11g or lower standards were among the first that I removed during the triaging - we can consider enabling those but this time on an someone's explicit need to have them enabled.

This closes #2815 and replaces large part of #2761, also potentially addresses (at least) these: #2806, #2783, #2841, #2776, #2725, #2600

-------------

* Remove WiFi options from generic and board kernel config fragments
* Enable MMC in OVA kernel
   This is needed for SDIO drivers to work. Use the same options as we
   currently use for generic_x86_64.
* Add CRYPTO_MICHAEL_MIC to the common kernel config
   This is requirement for TKIP and is a dependency of ATH11K driver.
* Add kernel config fragments with wireless cards support
* Add firmwares for WiFi cards
* Enable more Bluetooth device drivers
2023-11-30 14:19:05 +01:00
Stefan Agner
e524a5e03d Bump OS to pre-release version 11.2.rc2 2023-11-28 17:24:46 +01:00
Stefan Agner
eab18076ad Remove kernel HCI driver if no WiFi/Bluetooth module present (#2944) (#2948)
* Remove kernel HCI driver if no WiFi/Bluetooth module present (#2944)

If the WiFi/Bluetooth module is not present on the SDIO bus, remove the
HCI driver. This avoids hci0 interface to be present. Current Home
Assistant Core versions show a Bluetooth device as soon as a hci device
is present. With this change there won't be a Bluetooth device shown.

* Update buildroot-external/package/pi-bluetooth/hcidisable.service

Co-authored-by: Jan Čermák <sairon@users.noreply.github.com>

---------

Co-authored-by: Jan Čermák <sairon@users.noreply.github.com>
2023-11-28 17:24:09 +01:00
Stefan Agner
376e4f9296 Do not start hciuart.service/bthelper@hci0.service if krnbt is used (#2947)
* Do not start hciuart.service if krnbt is used

Avoid starting (and failing to start) hciuart.service if krnbt is used.
This avoid unnecessary failed services showing up.

* Update buildroot-external/package/pi-bluetooth/hciuart.service

Co-authored-by: Jan Čermák <sairon@users.noreply.github.com>

* Drop duplicate bluetooth in path

* Avoid bthelper@hci0.service failing

* Revert "Avoid bthelper@hci0.service failing"

This reverts commit f79777e63e.

* Add ExecConditiono to bthelper@.service as well

---------

Co-authored-by: Jan Čermák <sairon@users.noreply.github.com>
2023-11-28 17:24:04 +01:00
Stefan Agner
9235649bbd Remove kernel HCI driver if no WiFi/Bluetooth module present (#2944) (#2948)
* Remove kernel HCI driver if no WiFi/Bluetooth module present (#2944)

If the WiFi/Bluetooth module is not present on the SDIO bus, remove the
HCI driver. This avoids hci0 interface to be present. Current Home
Assistant Core versions show a Bluetooth device as soon as a hci device
is present. With this change there won't be a Bluetooth device shown.

* Update buildroot-external/package/pi-bluetooth/hcidisable.service

Co-authored-by: Jan Čermák <sairon@users.noreply.github.com>

---------

Co-authored-by: Jan Čermák <sairon@users.noreply.github.com>
2023-11-28 17:23:08 +01:00
Stefan Agner
93a2d8a19b Do not start hciuart.service/bthelper@hci0.service if krnbt is used (#2947)
* Do not start hciuart.service if krnbt is used

Avoid starting (and failing to start) hciuart.service if krnbt is used.
This avoid unnecessary failed services showing up.

* Update buildroot-external/package/pi-bluetooth/hciuart.service

Co-authored-by: Jan Čermák <sairon@users.noreply.github.com>

* Drop duplicate bluetooth in path

* Avoid bthelper@hci0.service failing

* Revert "Avoid bthelper@hci0.service failing"

This reverts commit f79777e63e.

* Add ExecConditiono to bthelper@.service as well

---------

Co-authored-by: Jan Čermák <sairon@users.noreply.github.com>
2023-11-28 17:18:50 +01:00
Stefan Agner
c3b9912e2e Generate self-signed certificates for development (#2943)
* Generate self-signed certificates for development

To simplify development generate a self-signed certificate on first
build. Also make sure that the self-signed certificate is being added
the RAUC keyring so that manual updates can be performed.

* Add self-signed certificat independent of deployment type

* Add a warning when building with self-signed certificate
2023-11-27 18:36:12 +01:00
dependabot[bot]
741498c92b Bump dessant/label-actions from 4.0.0 to 4.0.1 (#2946)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-27 14:38:45 +01:00
Stefan Agner
d7f49ab9ff Bump OS to development version 11.3.dev0 2023-11-21 10:03:33 +01:00
Stefan Agner
b37dc33e5c Bump OS to pre-release version 11.2.rc1 2023-11-21 09:54:06 +01:00
Jens Maus
5891250bd1 Bump rpi-rf-mod dt overlay to latest version (#2921)
* Bump rpi-rf-mod dt overlay to latest version

* updated to 1.13.1
2023-11-21 09:52:03 +01:00
Jan Čermák
1ea0bb7bf4 Linux: Update kernel 6.1.63 (#2937) 2023-11-20 17:28:25 +01:00
Jan Čermák
f986d7f690 Bump buildroot to v2023.02.7 (#2936)
* buildroot 04e4585bec...2b6996211e (2):
  > Merge tag '2023.02.7' into 2023.02.x-haos
  > Merge tag '2023.02.6' into 2023.02.x-haos
2023-11-20 17:19:49 +01:00
dependabot[bot]
9fd789cdb5 Bump docker/build-push-action from 5.0.0 to 5.1.0 (#2935)
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 5.0.0 to 5.1.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v5.0.0...v5.1.0)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-20 14:15:27 +01:00
dependabot[bot]
1848fd7555 Bump actions/github-script from 6 to 7 (#2934)
Bumps [actions/github-script](https://github.com/actions/github-script) from 6 to 7.
- [Release notes](https://github.com/actions/github-script/releases)
- [Commits](https://github.com/actions/github-script/compare/v6...v7)

---
updated-dependencies:
- dependency-name: actions/github-script
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-20 14:14:51 +01:00
Jan Čermák
5d11e16150 Fix miniUART on Yellow with kernel HCI init enabled (#2931)
Bluetooth initialization was broken on Yellow because RPi's kernel
started to use initialization by the kernel driver by default, yet
changes from the miniuart-bt overlay are applied directly to Yellow
DTS and had to be updated too. This commit replaces the previous
patch forcing the miniUART usage for Bluetooth with a new one which
is based on the current miniuart-bt-overlay.dts.
2023-11-16 15:55:14 +01:00
Jan Čermák
7c3cee049b Bump buildroot to fix rpi-firmware hash (#2930)
* buildroot a48cc458e7...04e4585bec (1):
  > package/rpi-firmware: update package tarball hash
2023-11-16 11:47:46 +01:00
Jan Čermák
c94b29a9cc Bump Raspberry Pi firmware to latest stable version (#2929)
Also added a little warning to the RPi kernel bump script, so the
future me/us don't do the same mistake as I did.

* buildroot 20ea6bedda...a48cc458e7 (1):
  > package/rpi-firmware: bump to version for stable_20231030 kernel
2023-11-15 18:52:27 +01:00
Jan Čermák
b06a89b264 Reduce Tinker and Amlogic kernel configs to defconfigs (#2925)
Reduce fully-expanded configs versioned in our repository to defconfigs
containing only the necessary options. Just like #2923, this change does
not alter the resulting kernel .config in any way for the affected
platforms (Tinker, Odroid C2/C4/N2).
2023-11-14 14:12:42 +01:00
Bertrand GRESSIER
5d9244b92a fix: disable uas for wavlink adaptor (#2924)
this adaptor doesn't work and the hard disk is not able to work correctly.
Need to disable UAS to fallback to the usb-storage module
2023-11-14 10:21:57 +01:00
Jan Čermák
5b534e3b58 Update old full Kernel configs to newly generated ones
For tinker and amlogic-based targets we're using checked-in kernel
configs generated by kconfig for some old kernel revisions. Check in
current config before we clean it up and reduce to a smaller stub later.
2023-11-13 15:04:42 +01:00
Jan Čermák
0f2b7c49f2 Clean up inconsistencies in kernel configs
Clean up all kernel configs and fragments from non-existing kernel
options, invalid choice values and choices that trigger warnings
during kernel package configuration.

Here's an example of warnings triggered for Yellow:

.config:8531:warning: override: MODULE_COMPRESS_NONE changes choice state
.config:8536:warning: override: ZSWAP_COMPRESSOR_DEFAULT_LZ4 changes choice state
.config:8537:warning: override: ZSWAP_ZPOOL_DEFAULT_ZSMALLOC changes choice state
.config:8543:warning: override: CPU_FREQ_DEFAULT_GOV_ONDEMAND changes choice state
.config:8717:warning: override: reassigning to symbol CGROUP_HUGETLB
.config:8767:warning: symbol value 'm' invalid for XFRM
.config:8852:warning: symbol value 'm' invalid for MEDIA_CONTROLLER_DVB
.config:8972:warning: symbol value 'm' invalid for SND_HDA_I915

There were also some options that are set in our or default configs
but end up patched by `KCONFIG_(DIS|EN)ABLE_OPT` in package makefiles,
these options are now explicitly set in our fragments too. For example
this was toggled for `generic_aarch64`:

CONFIG_DEFAULT_SECURITY_APPARMOR n -> y
CONFIG_DEFAULT_SECURITY_DAC y -> n
CONFIG_GCC_PLUGINS y -> n

The only goal of this commit is to make sure no warnings appear
anymore and the resulting kernel configs remain unchanged. This will
allow us to create tools for sanity checks of our kernel config
overrides. There is one single change in `ova` config resulting from
previously invalid `m` option for a bool value:

-# CONFIG_9P_FS_POSIX_ACL is not set
+CONFIG_9P_FS_POSIX_ACL=y
2023-11-13 14:55:40 +01:00
dependabot[bot]
754bec30fd Bump dessant/label-actions from 3.1.0 to 4.0.0 (#2922)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-13 14:30:44 +01:00
Stefan Agner
1238527b49 Linux: Update kernel 6.1.62 (#2917) 2023-11-09 22:09:04 +01:00
Stefan Agner
196c48ee5e Use kernel local version for HAOS compiled Linux kernel (#2912)
* Use kernel local version for HAOS compiled Linux kernel

Use the local version config option to add "haos" to the system's Linux
kernel version to indicate the kernel is built specifically for Home
Assistant OS. This makes sure to overwrite any other local version (e.g.
provided by Raspberry Pi kernel's defconfig) and makes it easier to
verify something is running on HAOS since the string will be visible in
any Container using `uname -a`.

* Add dash in front
2023-11-09 13:46:46 +01:00
Jan Čermák
5e80f74b7a Bump buildroot to add RTL885x firmware (#2911)
* buildroot 2a3f23fc4b...20ea6bedda (1):
  > package/linux-firmware: add RTL8851/RTL8852 firmware
2023-11-07 21:10:53 +01:00
Stefan Agner
11c2eab58a Generic AArch64: Enable options required for virtiofs (#2909) (#2910)
* Generic AArch64: Enable options required for virtiofs (#2909)

* Update buildroot-external/board/arm-uefi/generic-aarch64/kernel.config

Co-authored-by: Jan Čermák <sairon@users.noreply.github.com>

---------

Co-authored-by: Jan Čermák <sairon@users.noreply.github.com>
2023-11-06 17:13:16 +01:00
Jens Maus
e0d6cc15d5 fixed incorrect uppercase Y kconfig use (#2908) 2023-11-06 11:53:04 +01:00
Stefan Agner
1a6b7418f0 Improve Bluetooth cache cleanup command (#2906)
Use the find's delete flag to delete the files instead of spanning a
shell for each file.
2023-11-06 11:52:57 +01:00
Stefan Agner
fccb11cad1 Revert "Upload artifacts index even on partial builds (#2901)" (#2905)
This reverts commit 49f26c3d2e.

The steps is not valid in that context. Let's revert the commit to get a
green build first.
2023-11-02 16:35:26 +01:00
Jan Čermák
5314324c61 RaspberryPi: Update kernel 6.1.58 - stable_20231030 (#2904) 2023-11-02 16:26:47 +01:00
Jan Čermák
53d139df97 Linux: Update kernel 6.1.61 (#2903) 2023-11-02 16:19:57 +01:00
Stefan Agner
49f26c3d2e Upload artifacts index even on partial builds (#2901)
Make sure that the artifacts index always gets updated. This allows to
use builds even when not all of them are available.
2023-11-02 13:46:12 +01:00
Jan Čermák
d9b49bbcb8 Add pruning of object file cache (#2899) 2023-11-02 13:45:56 +01:00
Jan Čermák
26bfeb6c40 Refresh all boards' defconfigs (#2895)
Make sure the order of options is the same as generated by Kconfig by
running savedefconfig on an unchanged configuration.
2023-11-02 13:45:40 +01:00
Stefan Agner
586f2ea021 Fix Artifacts index bump when using workflow_call (#2900)
Use inputs.version which is available for workflow_call as well as
workflow_dispatch.
2023-11-02 11:33:55 +01:00
xtsrthm
6df79b13e9 generic-x86-64: Add missing dependency for #2800 to kernel.config (#2813)
* Add missing dependency to kernel.config

* Move CONFIG_IIO up to follow Kconfig hieararchy

---------

Co-authored-by: Jan Čermák <sairon@users.noreply.github.com>
2023-11-01 17:42:27 +01:00
Stefan Agner
204bd8bb56 Pass secrets to artifacts index generation workflow (#2893) 2023-10-31 23:22:10 +01:00
Jan Čermák
2888ccf28e Improve handling of timeouts in tests (#2890)
* Improve handling of timeouts in tests

Make timeout handling in tests more transparent. Added a custom shell
driver that allows to define global timeout for commands in the config
file, and replaced for/sleep constructs with infinite loops that will be
eventually terminated by pytest-timeout plugin. Current timeouts taken
from last runs on Github CI with some extra headroom.

* test_supervisor_is_updated shouldn't be skipped if no update was needed

* Allow more time for system startup

* Allow even more time for system startup
2023-10-31 18:16:49 +01:00
Stefan Agner
c33fc03fd6 Checkout source code when uploading artifacts index (#2892)
The index.html file comes from the repository source directory. Make sure
it is checked out when regenerating the artifacts index.
2023-10-31 14:37:02 +01:00
Jan Čermák
d7e3a8b985 Fix the condition for OS artifact download (#2891) 2023-10-31 14:08:49 +01:00
Stefan Agner
e4e4c62834 Fix quotes in artifact index generation (#2889) 2023-10-31 14:00:19 +01:00
Stefan Agner
2e8b66d283 Separate artifacts index update into separate workflow (#2888)
* Separate artifacts index update into separate workflow

* Apply suggestions from code review

Co-authored-by: Jan Čermák <sairon@users.noreply.github.com>

---------

Co-authored-by: Jan Čermák <sairon@users.noreply.github.com>
2023-10-31 13:50:35 +01:00
Jan Čermák
54cab43ea3 Add a flag to determine tests were called from another workflow (#2887)
If a reusable workflow is called from another workflow, the event_type
in the child workflow is still the same as parent's. This is a known
"feature": https://github.com/actions/runner/discussions/1884

Add a flag to inputs that has default value set to true. This is in turn
set only if the workflow is called from another one, chosing the correct
step for obtaining the OS image.
2023-10-31 10:12:37 +01:00
Jan Čermák
d39a767bfb Bump HAOS beta when stable version is released (#2885)
Beta users should also get latest stable without the need for manual
bump.

Suggested here: https://github.com/home-assistant/operating-system/pull/2855#discussion_r1368678727
2023-10-31 10:12:29 +01:00
Jan Čermák
5e5462ddde Always use environment for bump_version job (#2884)
As discussed here: https://github.com/home-assistant/operating-system/pull/2855#discussion_r1368533496
2023-10-31 10:12:21 +01:00
Jan Čermák
39778e882a Add test suite for Supervisor tests (#2880)
* Add test suite for Supervisor tests

* test_supervisor_is_updated should depend on test_update_supervisor

Co-authored-by: Stefan Agner <stefan@agner.ch>

---------

Co-authored-by: Stefan Agner <stefan@agner.ch>
2023-10-31 10:12:10 +01:00
Stefan Agner
e1be4f3efb Bump buildroot to update Docker to v24.0.7 (#2883)
* buildroot 82003cc280...2a3f23fc4b (2):
  > package/docker-cli: bump version to v24.0.7
  > package/docker-engine: bump version to v24.0.7
2023-10-30 15:42:13 +01:00
Jan Čermák
ae711734bf Run tests within build workflow (#2882) 2023-10-30 15:42:03 +01:00
Stefan Agner
6d7db27f84 Use the correct secret to clear cache on the Cloudflare frontend (#2881) 2023-10-30 14:54:22 +01:00
Stefan Agner
8133cfead8 Print object cache statistics before upload (#2874)
Print the object cache statistics before uploading them to the action
cache. The action cache accesses all files, this makes the statistics
of files used during build not useful.
2023-10-27 21:04:47 +02:00
Stefan Agner
91e82e40d9 Install AWS CLI tools in final build step (#2873) 2023-10-27 21:04:17 +02:00
Jan Čermák
6e8568c666 Optimize build cache for dev builds (#2872)
* Optimize build cache for dev builds

* Remove downloaded files cache, as it doesn't save that much time and
  it can't fit into the repo cache limit, randomly causing eviction of
  CC object cache for a single board.
* Limit saving of the object cache only to the dev branch, because
  of the restrictions for the cache access limit us from effectively
  using the cache for rc/main branches anyway.
* Adjust names of the steps a bit for clarity.

* Add printing of some cache stats

* Compare old ccache files' age to Makefile
2023-10-27 13:56:44 +02:00
Jan Čermák
252887cc0d RaspberryPi: Update kernel 6.1.58 - stable_20231024 (#2864)
* RaspberryPi: Update kernel 6.1.58 - stable_20231024

* Remove unnecessary Bluetooth patch

* Rebase Yellow patchset

---------

Co-authored-by: Stefan Agner <stefan@agner.ch>
2023-10-27 11:16:27 +02:00
Jan Čermák
4769d22b3c Add checkout step to bump_version job in the build workflow (#2871)
It's required both for the artifact index and to run the RPi Imager bump
local action.
2023-10-27 09:33:05 +02:00
Stefan Agner
28c13d7709 Fix GitHub action build.yaml (#2868) 2023-10-26 21:09:12 +02:00
Stefan Agner
9c021aa766 Linux: Update kernel 6.1.60 (#2867) 2023-10-26 20:45:06 +02:00
Stefan Agner
a1947336a8 Merge branch 'main' into dev 2023-10-26 20:25:16 +02:00
Stefan Agner
9e70ebe989 Maintain and upload artifacts index (#2839)
* Maintain and upload artifacts index

Make the artifacts browsable by maintaining a list of builds. This keeps
it up-to-date even when deleting images from the object storage, and
minimizes queries to the object storage.

* Add favicon

* Apply suggestions from code review

Co-authored-by: Joakim Sørensen <joasoe@gmail.com>

* Move index update outside of the build Matrix

* Add error handling and styling

* Exclude index files

* Add cache flush

* Use separate prefix for indexes

This allows to filter by prefix when generating the main index. Since
the list-objects-v2 is limited to 1000 entries, this will be a bottle
neck soon. Separating indexes allows to support up to 1000 nightly
builds.

* Add missing backslash

* Use cp and fix index format

* Sync index.html as well

* Move OS artifacts index file to root directory

This is not really GitHub related, so it shouldn't live in there.

* Adjust URL for dev builds

---------

Co-authored-by: Joakim Sørensen <joasoe@gmail.com>
2023-10-26 20:24:04 +02:00
Stefan Agner
12b3d62f9e Bump OS to release version 11.1 2023-10-26 11:53:26 +02:00
Jan Čermák
0ec13ca335 Add action for bumping OS version for RPi imager (#2861)
Automate bump of the rpi-imager-haos.json in the version repository on
stable release so we don't have to do it manually. Uses slightly
advanced jq magic to touch only the changed fields and keep the rest of
the JSON content intact.
2023-10-26 11:50:42 +02:00
Jan Čermák
ae42fbf235 Add action for bumping OS version for RPi imager (#2861)
Automate bump of the rpi-imager-haos.json in the version repository on
stable release so we don't have to do it manually. Uses slightly
advanced jq magic to touch only the changed fields and keep the rest of
the JSON content intact.
2023-10-26 10:21:31 +02:00
Stefan Agner
c5d21da0e8 Bump OS to development version 11.2.dev0 2023-10-23 23:09:40 +02:00
Stefan Agner
66c0435c7c Bump OS to pre-release version 11.1.rc1 2023-10-23 19:11:31 +02:00
Jan Čermák
b55e6c22c2 Do not use working-directory in test job (#2858) 2023-10-23 18:15:10 +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
e928fa498f Use alternative environment for release build bump (#2855)
* Use alternative environment for release build bump

By using a separate environment, we can postpone the bump in the version
repository by adding a requirement for approval. Dev version will use
default (empty string) environment which doesn't have any constraints.

* Update build step name - it's not always dev build anymore

* Use dynamic environment name for beta/stable channels
2023-10-23 12:34:11 +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
Jan Čermák
caf6611f7d Fix extraction of OVA image artifact in test step (#2842)
* Fix extraction of OVA image artifact in test step

If the test image is obtained from an artifact instead of downloading,
its name contains the version as well, in that case we still need to use
wildcard expansion.

* uncompress qcow2 to a stable filename
2023-10-19 22:58:00 +02:00
Jan Čermák
d7b32fd100 Fix path to test results in processing steps (#2837)
Working-directory is relevant only for run steps, the other steps need
full path relative to the repository root.
2023-10-18 11:31:23 +02:00
Jan Čermák
81d9a90729 Bump buildroot to update BlueZ to v5.70 (#2835)
* buildroot 81cb78a54b...82003cc280 (1):
  > package/{bluez5_utils, bluez5_utils-headers}: bump to version 5.70
2023-10-18 09:25:02 +02:00
Jan Čermák
d4cb408090 Fix test action by checking out source first (#2836)
The first action can't be action with simple run step, because it is
respecting the working-directory already. Put checkout step to the top.
2023-10-17 23:43:50 +02:00
Jan Čermák
3e36628c09 Create foundation for Labgrid-based OS tests (#2812)
* Create foundation for Labgrid-based OS tests

Add foundation for Labgrid-based tests of OS builds. Currently uses just
the QEMU driver, which starts a virtual machine with pristine OS, and
generates few log reports which are saved as build artifacts.

Workflow is currently triggered either manually by specifying an OS
version, or by OS build job, which now saves an artifact of the OVA
image. This allows for some modularity. If we eventually add the
possibility to run builds on PRs, we could also add the workflow_call
trigger and turn the workflow into a reusable one.

TBD (in future PRs): some meaningful tests and possibility to test on
real hardware (either local or distributed).

* Apply suggestions from @agners

Co-authored-by: Stefan Agner <stefan@agner.ch>

* Wrap test command in a script, create venv for local tests

* Make shellcheck happy

---------

Co-authored-by: Stefan Agner <stefan@agner.ch>
2023-10-17 18:23:29 +02:00
Stefan Agner
56ccbf4b9e Bump buildroot to 2023.02.6 (#2831)
* buildroot b1c6a5e707...81cb78a54b (86):
  > Update for 2023.02.6
  > package/libhtp: bump to version 0.5.45
  > package/exim: security bump version to 4.96.2
  > package/mutt: fix libgpgme static build
  > board/raspberrypi: fix typo in comment
  > package/netsnmp: fix musl build
  > package/nmap: fix build with libressl >= 3.5.0
  > package/gcc: remove leftover from legacy PowerPC patch
  > package/samba4: security bump version to 4.18.8
  > package/libcue: security bump to version 2.3.0
  > package/go: security bump to version 1.20.10
  > {linux, linux-headers}: bump 4.{14, 19}.x / 5.{4, 10, 15}.x / 6.{1, 5}.x series
  > package/wireless-regdb: bump version to 2023.09.01
  > package/python3: bump version to 3.11.6
  > {linux, linux-headers}: bump 5.15.x / 6.{1, 5}.x series
  > package/gstreamer1-editing-services: bump to version 1.22.6
  > package/gst-omx: bump to version 1.22.6
  > package/gst1-rtsp-vaapi: bump to version 1.22.6
  > package/gst1-rtsp-server: bump to version 1.22.6
  > package/gst1-python: bump to version 1.22.6
  > package/gst1-libav: bump to version 1.22.6
  > package/gst1-devtools: bump to version 1.22.6
  > package/gst1-plugins-ugly: security bump to version 1.22.6
  > package/gst1-plugins-bad: security bump to version 1.22.6
  > package/gst1-plugins-good: security bump to version 1.22.6
  > package/gst1-plugins-base: security bump to version 1.22.6
  > package/gstreamer1: bump to version 1.22.6
  > package/cups: add upstream security fix for CVE-2023-4504
  > package/mbedtls: security bump to version 2.28.5
  > package/mbedtls: bump to version 2.28.4
  > package/mbedtls: bump to 2.28.3
  > DEVELOPERS: add Thomas Petazzoni for nodejs
  > package/exim: security bump version to 4.96.1
  > package/efl: bump to version 1.26.3
  > package/netsnmp: security bump to version 5.9.4
  > package/sslh: add SSLH_CPE_ID_VENDOR
  > package/gptfdisk: fix bug with util-linux 2.38
  > package/libmodplug: use a full-length hash as version
  > package/libmodplug: add a patch fixing cctype UB
  > package/enlightenment: security bump to version 0.25.4
  > package/wpewebkit: needs >= GCC 9
  > package/Makefile.in: set --shuffle=none for MAKE1
  > package/pkg-generic.mk: fix rule order for reinstall/rebuild/reconfigure
  > package/tar: security bump to version 1.35
  > package/go: fix installation
  > package/pkg-utils.mk: break hardlinks in global {TARGET, HOST}_DIR on per-package build
  > package/webkitgtk: require GCC 9 for the 2.40.x series
  > package/linux-tools: fix SysV init script
  > boot/at91bootstrap: disable PIE and stack-protector build flags
  > package/rockchip-mali: fix hash of generated archive
  > package/urandom-scripts: move seedrng init script to S01
  > package/opkg-utils: actually install to target
  > package/powertop: picutils is optional, not mandatory
  > package/gnu-efi: disable on mips64el
  > package/olsr: fix build with gpsd >= 3.25
  > package/python-mako: add optional runtime dependency on python-babel
  > package/python-mako: add optional runtime dependency on python-pygments
  > package/python-mako: add missing dependency on python-markupsafe
  > package/openblas: Add support for RISC-V architecture
  > package/pipewire: fix typo in Kconfig comment
  > package/go: cgo for the target needs the toolchain
  > package/go: security bump to version 1.20.9
  > package/go: security bump to version 1.20.8
  > package/go: security bump to v1.20.7
  > package/go: adjust Upstream header in patch
  > package/go: fix go-bootstrap when parent dir contains invalid .git
  > package/go-bootstrap-stage2: bump version to 1.19.11
  > package/go: bump to version 1.20.6
  > package/go: adjust comments
  > package/go-bootstrap: split into two stages: go1.4 and go1.19.10
  > package/{glibc, localedef}: security bump to version glibc-2.36-118-g22955ad85186ee05834e47e665056148ca07699c
  > package/neon: drop patches
  > package/libfastjson: security bump to version 0.99.9.1
  > package/libvpx: Add upstream security patch to fix CVE-2023-5217
  > package/libvpx: bump version to 1.13.0
  > package/mosquitto: bump to version 2.0.18
  > package/samba4: bump version to 4.18.7
  > package/php: bump version to 8.2.11
  > package/suricata: security bump to version 6.0.14
  > package/librsvg: security bump to version 2.50.9
  > unifdef: add missing license
  > package/{glibc, localedef}: security bump to 2.36-117
  > package/nodejs: fix parallel build further
  > package/libyang: security bump to version 2.1.111
  > package/bind: security bump to version 9.16.44
  > {linux, linux-headers}: bump 4.{14, 19}.x / 5.{4, 10, 15}.x / 6.{1, 4}.x series
2023-10-17 17:40:54 +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
f946e098d6 Merge remote-tracking branch 'origin/dev' into dev 2023-10-16 14:49:14 +02:00
Stefan Agner
2a334e8c1a Merge branch 'main' into dev 2023-10-16 14:46:59 +02:00
Stefan Agner
7845199fa8 Add Home Assistant Green to GitHub infrastructure (#2828)
Add Home Assistant Green to the issue template and release drafter
configuration.
2023-10-16 14:32:36 +02:00
Stefan Agner
01e9b7d4f6 Merge branch 'main' into dev 2023-10-16 09:34:44 +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
Jan Čermák
ff7645ddaf Bump buildroot to update libcurl to v8.4.0 (#2804)
* buildroot f125c3e292...b1c6a5e707 (1):
  > package/libcurl: security bump to 8.4.0
2023-10-13 09:57:24 +02:00
Stefan Agner
30d3678c2d Bump OS to pre-release version 11.0.rc2 (#2803) 2023-10-11 22:22:08 +02:00
Jan Čermák
ff0a4b44e0 Bump buildroot to update libcurl to v8.4.0 (#2804)
* buildroot f125c3e292...b1c6a5e707 (1):
  > package/libcurl: security bump to 8.4.0
2023-10-11 10:44:50 +02:00
Stefan Agner
19ded665bd Drop uploading to the old development build server (#2802)
With the new development build uploads on R2 working, we no longer need
to upload development builds to the old server. Drop the build step.
2023-10-10 13:51:33 +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 0ebcdcb9dc.

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 0ebcdcb9dc.

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
Dave T
8be78b1257 Improve grammar in README.md (#2790) 2023-10-05 08:26:23 +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
Joakim Sørensen
a72c6c0322 Add action job to upload artifacts to R2 (#2779) 2023-10-02 08:29:00 +02:00
Stefan Agner
56d96acd1b Bump buildroot to 2023.02.5 (#2775)
* buildroot df5fccafd8...a1bdf74b19 (1):
  > Merge tag '2023.02.5' into 2023.02.x-haos
2023-09-28 00:01:56 +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
65271c797c Bump buildroot to update Docker to v24.0.6 (#2774)
* buildroot d6894cf55f...df5fccafd8 (3):
  > package/docker-cli: bump version to v24.0.6
  > package/docker-engine: bump version to v24.0.6
  > package/containerd: bump to version 1.7.6
2023-09-26 14:54:11 +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
dd21a73031 Fix versioning set during build (#2771)
Respect quotes in the meta file. While at it, simplify version
validation as well.

Make sure development version is correctly set at build time.

While at it also simplify version check.
2023-09-25 18:32:57 +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
8d6b4eb11b Unify release and dev GitHub actions (#2764)
Use a single workflow file for releases and dev builds. This avoids
duplication and enhances the release builds with some of the recent
improvements (e.g. shared build container).
2023-09-21 17:06:41 +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
dependabot[bot]
8d8327801f Bump docker/login-action from 2.2.0 to 3.0.0 (#2757)
Bumps [docker/login-action](https://github.com/docker/login-action) from 2.2.0 to 3.0.0.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](https://github.com/docker/login-action/compare/v2.2.0...v3.0.0)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-19 10:02:18 +02:00
dependabot[bot]
b7e958d498 Bump docker/build-push-action from 4.2.1 to 5.0.0 (#2758)
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 4.2.1 to 5.0.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v4.2.1...v5.0.0)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-19 09:56:34 +02:00
dependabot[bot]
3e173ca77e Bump docker/setup-buildx-action from 2.10.0 to 3.0.0 (#2759)
Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 2.10.0 to 3.0.0.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](https://github.com/docker/setup-buildx-action/compare/v2.10.0...v3.0.0)

---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-19 09:55:24 +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
0125e32ca6 Bump buildroot (#2749)
* buildroot da1eff0b0d...8ea671337e (1):
  > package/go: bump to v1.19.13
2023-09-13 22:36:57 +02:00
dependabot[bot]
3d7a17c59f Bump docker/build-push-action from 4.1.1 to 4.2.1 (#2748)
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 4.1.1 to 4.2.1.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v4.1.1...v4.2.1)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-11 22:35:32 +02:00
Stefan Agner
bf327c968a Don't combine GitHub action caches (#2745)
It turns out that the way concurrency works in GitHub action doesn't
allow to queue up multiple pending jobs. As soon as a second job gets
pending, the previous pending jobs get cancelled. So this does not allow
to sequentially run all cache combine jobs as we hoped for.

Let's use a single download cache and per board build cache for now.
2023-09-08 08:16:21 +02:00
Stefan Agner
ff1e4d2c31 Bump buildroot to revert containerd to v1.6.21 (#2744)
* buildroot 89d71acd74...da1eff0b0d (1):
  > Revert "package/containerd: bump version to v1.6.22"
2023-09-08 08:15:39 +02:00
Stefan Agner
25545b609e Combine downloads and compile cache in GitHub Action cache (#2743)
This combines all caches in a single cache to save space (assumption is
that quite some files are duplicated otherwise). With this we shouold
end up with 4 relevant cache files (build cache for each architecture
plus download cache).
2023-09-08 00:14:08 +02:00
Stefan Agner
98da692882 Linux: Update kernel 6.1.52 (#2740) 2023-09-08 00:13:39 +02:00
Stefan Agner
52a455c6ca Execute stale workflow only once a day (#2739) 2023-09-07 08:59:25 +02:00
Stefan Agner
cdfde693c7 Bump buildroot to 2023.02.4 (#2737)
* buildroot a3dced0daf...89d71acd74 (1):
  > Merge tag '2023.02.4' into 2023.02.x-haos
2023-09-06 12:06:45 +02:00
Stefan Agner
079bf06aa7 Enable ECC memory support via EDAC (#2708) (#2736) 2023-09-05 22:20:23 +02:00
Stefan Agner
de2d443cda Bump buildroot to update openvmtools (#2733) (#2735)
* buildroot 1ba9746c5a...a3dced0daf (1):
  > package/openvmtools: bump version to 12.3.0
2023-09-05 21:44:34 +02:00
Stefan Agner
0b115133fe Bump HAOS Agent to 1.6.0 (#2734) 2023-09-05 21:44:19 +02:00
Stefan Agner
41c3b6565d Improve GitHub Action caching (#2732)
Use more specific keys for GitHub Action caches to make sure we update
caches regularly. Also add board id to the downloads cache to get a
more specific cache file. This avoid redownloading large dependencies
of some boards.
2023-09-05 21:44:11 +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
dependabot[bot]
516cb71df9 Bump actions/checkout from 3 to 4 (#2728)
Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-04 23:14:03 +02:00
dependabot[bot]
76903af864 Bump docker/login-action from 2.1.0 to 2.2.0 (#2727)
Bumps [docker/login-action](https://github.com/docker/login-action) from 2.1.0 to 2.2.0.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](https://github.com/docker/login-action/compare/v2.1.0...v2.2.0)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-04 23:13:56 +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
Viacheslav Bocharov
2756709f4a Remove checkout twice in dev build workflow (#2719) 2023-09-01 10:12:54 +02:00
Stefan Agner
a2760f1d67 Linux: Update kernel 6.1.50 (#2716) 2023-08-30 23:19:18 +02:00
Stefan Agner
8297bc0e30 Bump buildroot (#2715)
* buildroot 005b88359c...1ba9746c5a (1):
  > package/{bluez5_utils, bluez5_utils-headers}: bump to version 5.69
2023-08-30 23:19:09 +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
111eebfb49 GitHub action improvements and cleanup (#2710)
* Determine git reference in prepare step

We can determin the git reference used once in the prepare step.

* Build HAOS builder in prepare step

Instead of building the build container multiple times, simply build it
once in the prepare step. This saves some GitHub Runner time (as we only
need to create the builder once).

* Drop per PR builds

Drop the per PR builds which are based on pull_request_target. These
make things more complicated with the recent changes requiring two
deployment approvals since we use the environment in for the prepare
and build job now. It will also interfere with future expansions.

We should consider readding the feature using `pull_request` and
subsequent `workflow_run` trigger, as suggested by
https://securitylab.github.com/research/github-actions-preventing-pwn-requests/.

* Simplify board filter
2023-08-29 18:30:28 +02:00
Stefan Agner
02d85d73ef Create builder group only if required (#2709)
In case a group with the same id as used outside the container already
exists, do not create a group inside the container.

It seems that GitHub Action runners started to use primary group id 999
which is the default group id used by the Docker daemon.
2023-08-28 09:52:45 +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
Stefan Agner
9253b7361b Add tools for SPI NOR flash storage (#2696)
Home Assistant Green uses a SPI NOR flash storage. One can use dd to
write to the SPI NOR flash, but this is problematic if a unit has bad
blocks. Add MTD tools, specifically flashcp, to enable SPI NOR
flashing support.
2023-08-23 19:51:54 +02:00
Stefan Agner
68c74db9d2 Update U-Boot patches and configuration (#2694)
Update U-Boot board configuration for Home Assistant Green. This moves
all Green specific board configuration into the U-Boot source code
patches. The "sf probe" command now picks up the correct SPI bus by
default.
2023-08-21 10:51:11 +02:00
Stefan Agner
e8da915a46 Add board support (#2687)
* Initial commit of Home Assistant Green board support

* Add Home Assistant Green boot files

* HA Green board configs

* board/nabucasa: Unsupport rtc rk808

* Use odroid-m1 as Supervisor machine for now

* Green: linux: pmic: set set PWRON_LP_OFF_TIME 12s

* green: Update U-Boot to 2023.07.02

* green: supports usb boot

* green: uboot-boot.ush use rk3566-ha-green.dtb

* green: spinor supports uboot

* green: use U-Boot provided devtype as boot device type

* green: Fix polarity of power key

The power key is low active. Add patch to avoid accidential long press
being reported to user space.

* green: uboot: eeprom: add CONFIG_ENV_OVERWRITE

* green: uboot: eerprom: add mac read

* green: fix-cpufreq null issue

* green: board aliases ethernet0

* green: uboot mac set ethernet0

* green: uboot add serial-number read

* green: Update kernel 6.1.39

* green: add green to the build matrix

* green: fix 339d13 & 9b9416 can not boot from usb

* green: changfe sd mode, change led default state

* green: uboot add board.c to read eeprom info

* green: enable uboot to read eeprom info

* green: delete boot.scr read eeprom function

* green: change spl loader uboot order:sd-emmc-spi_nor

* green: serialnum change to 18 bytes

* green: Update kernel 6.1.43

* green: use hwrng support from ODROID-M1

* green: Use latest Rockchip BL31/DDR binaries

* change led_act polarity

* green: Disable watchdog

The watchdog on Green seems to not reliably reset the system. For now
disable the driver to avoid systemd making use of it.

* green: Update kernel 6.1.44

* green: Fix Supervisor Machine

Use odroid-m1 for now as Supervisor machine (used to download the
landing page).

* green: emmc use hs200 to increase speed

* green: use green as Supervisor machine

* green: Update kernel 6.1.45

* green: add Green to the kernel documentation

---------

Co-authored-by: Zhangqun Ming <north_sea@qq.com>
Co-authored-by: syan <syan.cham@gmail.com>
2023-08-14 16:55:16 +02:00
Stefan Agner
23f857fcb4 Add USB serial console support (#2683) (#2686) 2023-08-14 11:45:53 +02:00
Stefan Agner
fd4a05d708 Linux: Update kernel 6.1.45 (#2685) 2023-08-14 11:45:45 +02:00
Stefan Agner
eba7099adc Use the correct Supervisor machine during build (#2681)
This makes sure the correct landing page gets installed during build so
the landing page container image doesn't need to get downloaded at first
boot.
2023-08-10 18:25:31 +02:00
Stefan Agner
61f473432e Use Docker 23.05 to install initial containers (#2680)
Use the same Docker version as deployed in Home Assistant OS (23.05
currently).
2023-08-10 18:25:17 +02:00
Stefan Agner
1836f04a87 Disable watchdog on ODROID-XU4 (#2675) (#2679)
In current Linux 6.1 kernel, the watchdog leads to a system freeze
instead of a reboot.
2023-08-09 12:17:12 +02:00
Stefan Agner
6ba07710e8 Disable watchdog on ODROID-M1 (#2675) (#2678)
In current Linux 6.1 kernel, the watchdog leads to a system freeze
instead of a reboot.
2023-08-09 12:17:04 +02:00
Stefan Agner
a160c674d6 Linux: Update kernel 6.1.44 (#2677) 2023-08-09 12:16:56 +02:00
Stefan Agner
4db2aa1a67 Use Rockchip binaries from official repository (#2673)
Use the official rkbin repository for Rockchip binaries. Use the
binaries from an older git hash which provide the very same binaries
(by hash). This makes sure we use the same DDR version as currently used
by the Hardkernel in their SPI flash bootloader (DDR v1.09).
2023-08-07 09:48:27 +02:00
Stefan Agner
ed6ef90fa1 Linux: Update kernel 6.1.43 (#2666) 2023-08-03 15:10:57 +02:00
Stefan Agner
f0015ba645 Support partial dev builds via Workflow dispatch (#2664) 2023-08-03 15:10:48 +02:00
Stefan Agner
65a17296f5 Linux: Update kernel 6.1.42 (#2660) 2023-07-31 15:22:14 +02:00
Darren Freimuth
f967485c75 Include the RTW8821ce driver module to support WiFi on the AK1 PRO micro PC (#2659)
* Including the RTW8821ce driver module to support Wifi on the KAMRUI AK1 PRO micro PC. It is a low-cost Intel Celeron N5105 that I think should work well for Home Assistant. However, it does not use Intel radios, it needs Realtek drivers.

* also need the firmware for the rtl8821ce
2023-07-31 15:22:03 +02:00
Stefan Agner
1f7185c913 Allow dev builds in forks (#2651)
Do not try to bump Home Assistant OS dev channel version in forks. This
allows to use the dev pipeline in forks.
2023-07-21 12:03:56 +02:00
Stefan Agner
8f3624382b Linux: Update kernel 6.1.39 (#2649) 2023-07-20 19:45:34 +02:00
Stefan Agner
b883b91a8c Bump buildroot to 2023.02.3 (#2645)
* buildroot 7e37cfe4f7...005b88359c (1):
  > Merge tag '2023.02.3' into 2023.02.x-haos
2023-07-19 00:57:27 +02:00
Stefan Agner
c4be219a85 Bump U-Boot for ODROID-M1 to 2023.07.02 (#2643) 2023-07-12 15:09:45 +02:00
Stefan Agner
51e3d0b875 Close rejected issus as "not planned" (#2641) 2023-07-12 15:06:48 +02:00
Stefan Agner
d662cfde9e Use hosted GitHub Action runners (#2638)
* Use hosted GitHub Action runners

Instead of using self-hosted runners use the hosted GitHub Action
runners. Officially the GitHub Action runners have a maximum of 14GB
free space available. However, a single Home Assistant OS build requires
up to 23GB (the ova board seems to require most because of the various
output image formats).

This PR adds some tricks to make use of the GitHub hosted GitHub Action
runners still, namely:
- Build and download cache is stored on /mnt which offers an additional
  10GB of disk space
- Some tools/SDKs on the runner get removed from the root disk to free
  up some disk space.

Other than that building on the hosted GitHub Action runners seems
straight forward. The build time is significantly longer (from ~30
minutes on the current AMD Ryzen 7950X build machine to 1 hours 30
minutes even with cache). But since we can build all boards in parallel
now, the overall build time will likely be shorted.

* Remove top-level release directory

The top-level release directory adds another copy of the images. This is
unnecessary for our release process now. Save the additional space and
time requirement. It comes with a slight downside for developers, but
also helps to save disk space on dev machines.
2023-07-11 23:18:01 +02:00
Irene Cheng Chi
7ae59b7023 ova: add support for various ethernet adapters (#2637)
* generic-x86-64: fragment for pcie kernel config

* ova: fragment for pcie kernel config

* generic-x64-64: remove duplicate config entry
2023-07-11 23:17:48 +02:00
Stefan Agner
9f5b9f8afe Use maintained GitHub Action to upload release assets (#2635)
The chosen GitHub action sets MIME types correctly and allows glob
uploads. Also upload directly from the output directory. This way we can
remove the unnecessary copy to the release directory in the future.
2023-07-11 14:25:51 +02:00
Stefan Agner
48c99c31b8 Linux: Update kernel 6.1.38 (#2634) 2023-07-07 01:09:00 +02:00
Stefan Agner
e43594f3cd Bump buildroot to update dbus-broker (#2633)
* buildroot 42e8c43f6f...7e37cfe4f7 (1):
  > package/dbus-broker: avoid blocking due to missing entropy
2023-07-07 01:08:51 +02:00
Stefan Agner
689faa0260 Improve service ordering for udisks2.service (#2632)
UDisks2 requires D-Bus and the systemd-journald, hence add the two sockets
as a requirement and order the service after them.
2023-07-05 02:40:50 +02:00
Stefan Agner
9cd3e438fa Add Rockchip RK3568 hardware number generator support (#2578) (#2631)
Add patches for the hardware random number generator part of the
Rockchip RK3568. This avoids dbus-broker startup failure seen on some
Hardkernel ODROID-M1 devices due to lack of entropy.
2023-07-05 02:40:42 +02:00
Steven Barth
742dea4165 Add support for iTCO and IT87 watchdogs on x86_64 (#2629) 2023-07-04 20:35:09 +02:00
Steven Barth
6776b23c32 Add overlay for systemd config to enable watchdog configuration (#2628) 2023-07-04 20:34:55 +02:00
Steven Barth
f33b3f2750 Add support for (emulated) i6300ESB watchdog (#2627)
I6300ESB is the watchdog device able to be emulated via qemu/kvm therefore enabling watchdog support based on an existing HA addon
2023-07-04 09:12:20 +02:00
Stefan Agner
67aa29da48 Linux: Update kernel 6.1.37 (#2626) 2023-07-03 18:23:53 +02:00
Adam Duff
642b8a132f Enable UHID to support Bluetooth input devices (#2623)
* Add UHID config to hassos.config
2023-07-03 18:18:08 +02:00
Stefan Agner
b10bf134c0 Add kernel configurations for RAUC verity format (#2622) 2023-07-01 21:16:12 +02:00
Stefan Agner
6bcad34dae Linux: Update kernel 6.1.36 (#2621) 2023-07-01 21:16:01 +02:00
Jens Maus
6eb48fea7c Add config options to enable 32-bit ARMv7 instruction support on ODROID-M1 (#2615)
So that legacy armv7 32bit applications can be correctly executed.
(This refs https://github.com/jens-maus/RaspberryMatic/issues/2349).
2023-06-27 23:10:40 +02:00
Stefan Agner
dc02955e31 Enable Intel Core/Core2/Atom temperature sensor (#2613) (#2614) 2023-06-27 23:10:09 +02:00
Stefan Agner
c9e3c496f5 Enable Realtek 802.11ac wireless chips support (#2600) (#2609) 2023-06-23 00:56:33 +02:00
Stefan Agner
0d346f9dc5 Linux: Update kernel 6.1.35 (#2608) 2023-06-23 00:55:58 +02:00
Stefan Agner
d9c19a8003 Bump buildroot (#2604)
* buildroot f1c8c3df11...42e8c43f6f (1):
  > Merge tag '2023.02.2' into 2023.02.x-haos
2023-06-19 23:53:04 +02:00
Stefan Agner
47de77406e Add patch to fix Bluetooth LE advertisement stall (#2598)
On some platforms (it seems to be pronounced on Intel NUC systems)
Bluetooth advertisements suddenly stop after a short while. Currently
there are work arounds in place to restart the HCI controller to keep
receiving the advertisements.

Advertisements have been received fine with Linux 5.15. This change
reverts a commit which has been isolated to be the culprit.
2023-06-15 16:23:53 +02:00
Stefan Agner
22424e591b Linux: Update kernel 6.1.34 (#2596) 2023-06-14 23:47:22 +02:00
Stefan Agner
276f531f35 Avoid waiting for time synchronization too early (#2594)
In case a system takes a bit longer to boot (e.g. due to SWAP
initialization on first boot, especially on a system with lots of memory
and not very fast strage, e.g. an ODROID-M1 using an SD card) we might
time-out waiting for time synchronization before the time
synchronization service even got started. By ordering the
systemd-time-wait-sync.service after the network is online, the timeout
of this service should be started much later. With that the
systemd-time-wait-sync.service shouldn't timeout any longer.
2023-06-14 00:07:25 +02:00
Stefan Agner
84659c2bf1 Add support for Intel GMAC Ethernet controller (#2589) (#2593)
Add support for Intel GMAC Ethernet controller as found on Intel Elkhart
Lake based SoC (e.g. Fitlet3)
2023-06-14 00:07:16 +02:00
dependabot[bot]
ad29aee1de Bump dessant/label-actions from 3.0.0 to 3.1.0 (#2590)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-06-12 21:39:04 +02:00
Stefan Agner
e7d6d6513b Linux: Update kernel 6.1.33 (#2584) 2023-06-10 00:43:59 +02:00
Stefan Agner
24217838e2 Start OS Agent only when boot partition is mounted (#2583)
To read the current LED configuration correctly /mnt/boot is required.
This change makes sure that the boot partition is mounted when the OS
Agent starts.
2023-06-10 00:43:51 +02:00
Stefan Agner
9261843a27 Make sure rpcbind gets started after systemd-tmpfiles is ready (#2582) 2023-06-10 00:43:35 +02:00
Stefan Agner
04449d98b5 Linux: Update kernel 6.1.32 (#2576) 2023-06-06 00:18:07 +02:00
Jens Maus
6b62c1e6b8 Remove rng-tools/rngd since it is not required with kernel 5.15+ (#2575) 2023-06-06 00:17:56 +02:00
clayton craft
1e67fe4b2a Add support for RTL8723BS SDIO WiFi modules (#2567)
Many x86_64 tablets (e.g. Cherry View) use SDIO WiFi modules, this
enables the driver for a common one I've come across in the wild.

This module requires firmware from the following, which are already
enabled for this platform:

  - BR2_PACKAGE_LINUX_FIRMWARE_RTL_87XX
  - BR2_PACKAGE_LINUX_FIRMWARE_RTL_87XX_BT

fixes #2422
2023-06-01 19:36:03 +02:00
Stefan Agner
0ed1ff27fb Linux: Update kernel 6.1.31 (#2569) 2023-06-01 19:35:56 +02:00
Jens Maus
875c8edcaf Add Yellow-specific rpi-rf-mod dts support (#2565)
* added first yellow-specific rpi-rf-mod dts support

* fix linter errors.

* added missing BR2_PACKAGE_RPI_RF_MOD_DTS to enable dts compilation for
yellow.
2023-06-01 19:35:48 +02:00
Stefan Agner
0f955f5141 Yellow: Always use mini-UART for Bluetooth (#2571)
* Yellow: Always use mini-UART for Bluetooth

Unfortunately, the mini-UART device tree adjusts the alias for serial1,
which we need to make ttyAMA1 the Zigbee UART (UART4).

However, we can no simply adjust that overlay, as the overlays are not
built as part of the Buildroot build. Instead, they are directly copied
from Raspberry Pi's Firmware repostiory.

Instead of using device tree overlays, just apply the changes to our
Yellow specific device tree. To avoid that the device tree gets loaded
anyhow, we could adjust config.txt but that has complications on its
own. Since the overlay might be conflicting with the Yellow device tree
anyways, just remove all of them.

Note: The miniuart-bt.dtbo overlay won't be present, while config.txt
of upgraded instances still reference it. It seems that this doesn't
cause problems at boot time. Leaving the dtoverlay=miniuart-bt present
also allows user to downgrade in case needed.

* Avoid duplicating 98-rpi.conf
2023-06-01 12:13:18 +02:00
Stefan Agner
afa8ca1714 Yellow: Rely on device tree alias for serial port numbering (#2568)
Use the device tree alias to enumerate the ttyAMA serial ports.
2023-05-31 11:11:04 +02:00
Stefan Agner
e7d98e9eda Linux: Update kernel 6.1.30 (#2566) 2023-05-31 00:53:25 +02:00
Jens Maus
cc63f37094 added missing rpi-rf-mod support for khadas_vim3 and odroid-m1 (#2563) 2023-05-30 09:31:05 +02:00
Jens Maus
6ea71953be Update generic_raw_uart to version 1.29 (#2562)
* updated generic_raw_uart to version 1.29 including its dependencies.

* use capital letters for ODROID naming.
2023-05-30 09:30:56 +02:00
errorb0t
3710f2079e Add device manufacturer link (#2561)
Fix Gigabyte GB-BPCE-3455 being the only listed device without a manufacturer link.
2023-05-30 09:18:14 +02:00
Stefan Agner
94311130c1 Enable PCIe WiFi cards to OVA (#2558) (#2559) 2023-05-24 19:36:47 +02:00
Mike Degatano
18cc4cb771 Set bind propagation for supervisor data (#2557) 2023-05-23 22:51:32 +02:00
Stefan Agner
0c5cc3d425 Bump buildroot (#2553)
* buildroot 553e6c5465...f1c8c3df11 (1):
  > package/linux-firmware: bump to version 20230515
2023-05-18 01:06:09 +02:00
Stefan Agner
6845bf43a5 Linux: Update kernel 6.1.29 (#2551) 2023-05-18 01:06:00 +02:00
Stefan Agner
e01993fffb Linux: Update kernel 6.1.28 (#2546) 2023-05-11 23:34:58 +02:00
c0ffeeca7
bf5691d3cd Make it clearer that the image file needs to be renamed (#2544)
* Make it clearer that the image file needs to be renamed

- add information that the update was only successful if version 20230328 is visible.

* Update Documentation/boards/hardkernel/odroid-m1.md

---------

Co-authored-by: Stefan Agner <stefan@agner.ch>
2023-05-11 21:54:23 +02:00
Stefan Agner
19117e98bd Bump buildroot (#2542)
* buildroot 5288737d35...553e6c5465 (1):
  > package/linux-firmware: bump to version 20230404
2023-05-11 00:19:49 +02:00
Stefan Agner
5254cda720 Bump buildroot (#2541)
* buildroot 21edbd975f...5288737d35 (1):
  > Merge tag '2023.02.1' into 2023.02.x-haos
2023-05-11 00:16:08 +02:00
Stefan Agner
22cccfc781 Bump buildroot (#2539)
* buildroot 8e1c933e7f...21edbd975f (4):
  > package/docker-cli: bump version to v23.0.6
  > package/docker-engine: bump version to v23.0.6
  > package/containerd: Bump to containerd 1.6.21
  > package/runc: bump to version 1.1.7
2023-05-10 00:37:22 +02:00
Stefan Agner
f179742600 Enable BCM943228HMB and other PCI based Broadcom devices (#2525) (#2530) 2023-05-01 23:02:22 +02:00
Stefan Agner
6ad36f2aab Add rpcbind to support NFSv3 (#2529) 2023-05-01 23:02:14 +02:00
Stefan Agner
9d45acdfba Linux: Update kernel 6.1.27 (#2528) 2023-05-01 23:02:06 +02:00
Stefan Agner
064772d0bb Bump buildroot (#2518)
* buildroot f3d7e0d7e5...8e1c933e7f (2):
  > package/docker-cli: bump version to v23.0.5
  > package/docker-engine: bump version to v23.0.5
2023-04-27 18:35:35 +02:00
Stefan Agner
217f3d97f7 Bump buildroot (#2516)
* buildroot b3eec5763d...f3d7e0d7e5 (1):
  > package/network-manager: bump version to 1.40.18
2023-04-27 18:22:02 +02:00
Stefan Agner
566811ae62 Linux: Update kernel 6.1.26 (#2515) 2023-04-27 16:27:42 +02:00
Sven Serlier
b0d113d7bb Documentation: Update and add URLs (#2471)
* Update URLs

* Add URLs

* Update Documentation/network.md

Co-authored-by: Stefan Agner <stefan@agner.ch>

* Update Documentation/boards/README.md

Co-authored-by: Stefan Agner <stefan@agner.ch>

* Update Documentation/boards/README.md

Co-authored-by: Stefan Agner <stefan@agner.ch>

* Update Documentation/boards/README.md

Co-authored-by: Stefan Agner <stefan@agner.ch>

---------

Co-authored-by: Stefan Agner <stefan@agner.ch>
2023-04-27 12:15:14 +02:00
Stefan Agner
08d4c39d6c Bump buildroot (#2509)
* buildroot ac537ff658...b3eec5763d (1):
  > package/readline: add upstream patch to fix crash with invalid locale specification
2023-04-24 23:58:27 +02:00
Stefan Agner
02ac8e90d6 Enable Gasket driver for Google Coral support on ODROID-M1 (#2508) 2023-04-24 21:27:30 +02:00
Stefan Agner
bf76a0b473 Avoid CLI restart on shutdown (#2507)
* Avoid CLI restart on shutdown

* Update buildroot-external/rootfs-overlay/usr/sbin/hassos-cli
2023-04-24 21:27:21 +02:00
Stefan Agner
27992e2b13 Bump buildroot (#2506)
* buildroot acec896cab...ac537ff658 (1):
  > package/systemd: bump to version 252.9
2023-04-24 18:23:19 +02:00
Stefan Agner
4e1ea18251 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-24 18:23:10 +02:00
Stefan Agner
9d167da919 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-24 18:22:56 +02:00
Stefan Agner
a3471cff76 Linux: Update kernel 6.1.25 (#2495) 2023-04-20 22:04:53 +02:00
Stefan Agner
355ec34ad1 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-20 22:04:44 +02:00
Stefan Agner
a44d573d3d 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-20 18:21:37 +02:00
b-uwe
888b4c852d Fix typo in ODROID-M1 documentation (#2474) 2023-04-18 14:45:25 +02:00
Stefan Agner
fbcc8e1c45 Enable Broadcom Ethernet PHYs support (#2413) (#2470) 2023-04-16 23:47:22 +02:00
Stefan Agner
bdcf4f124a Linux: Update kernel 6.1.24 (#2469) 2023-04-13 20:49:13 +02:00
Stefan Agner
bea888f8db Fix build without device tree overlays (#2467) 2023-04-13 07:38:43 +02:00
Stefan Agner
a6894512dd Add Broadcom NetXtreme/Tigon3 firmware (#2413) (#2466) 2023-04-12 22:11:01 +02:00
Stefan Agner
0dd621d444 Add firmware for Realtek RTL8152/RTL8153 USB Ethernet Adapters (#2456) (#2465) 2023-04-12 22:09:09 +02:00
Stefan Agner
f9484851a1 Add label action for frontend issues (#2464) 2023-04-12 22:01:01 +02:00
Stefan Agner
03c5efcd0a 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 21:41:55 +02:00
Stefan Agner
907ce276c2 Document eMMC boot for ODROID-M1 (#2460) 2023-04-12 21:41:46 +02:00
Stefan Agner
afe075ff56 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 00:04:18 +02:00
Stefan Agner
1a01e2c98f Bump U-Boot for ODROID-M1 to 2023.04 (#2458) 2023-04-12 00:04:04 +02:00
Stefan Agner
99746aeed9 Linux: Update kernel 6.1.23 (#2453) 2023-04-07 00:17:45 +02:00
Stefan Agner
991a2e93d9 Bump buildroot to update Docker to 23.0.3 (#2452)
* buildroot befb515cdb...ddc0ddca51 (4):
  > package/docker-cli: bump version to v23.0.3
  > package/docker-engine: security bump version to v23.0.3
  > package/containerd: security bump to version 1.6.20
  > package/runc: security bump to version v1.1.5
2023-04-06 00:24:24 +02:00
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
Stefan Agner
b8a00ecbfa Symlink firmware update directory to Supervisor writeable location (#2225) 2023-03-01 00:36:22 +01:00
Stefan Agner
fd6bae5dc1 Linux: Update kernel 6.1.13 for Raspberry Pi systems (#2373) 2023-02-27 23:58:02 +01:00
Adam Duff
6f44dcf010 Enable CONFIG_UHID for generic x86-64 based installs (#2369) 2023-02-27 23:09:54 +01:00
Stefan Agner
c9fcf91a0d Linux: Update kernel 6.1.14 (#2372) 2023-02-27 23:07:54 +01:00
Jens Maus
acec461b62 updated generic-raw-uart to correctly reference the sub-directory commit (#2368)
id and updated also the rpi-rf-mod package to reference the latest
changes for kernel 6.1 compatibility.
2023-02-27 11:45:17 +01:00
Stefan Agner
9bd101431e Revert bridge support (#2345)
The bridge support is not complete and causes issues in Supervisor.
Supervisor first needs proper support for it before we can deploy it in
Operating System.

See also: https://github.com/home-assistant/supervisor/pull/4133
2023-02-22 12:08:13 +01:00
Stefan Agner
74ccbb8953 Fix rtl8821cu build for Linux 5.15 (#2360) 2023-02-16 18:51:55 +01:00
Stefan Agner
25c672a27f Linux: Update kernel 6.1.12 for non-Raspberry Pi systems (#2358)
* Linux: Update kernel 6.1.12

* Update generic_raw_uart to build with Linux 6.1

* Update Realtek rtl8821cu/rtl88x2bu to build with Linux 6.1

* Bump buildroot

* buildroot 43f82f01b9...90aa1a6daa (1):
  > rtl8812au-aircrack-ng: bump to latest rev d98018

* Fix eq3_char_loop to build with Linux 6.1

* rtl8821cu: make sure -Werror is disabled for the kernel build

* generic_raw_uart: make sure -Werror is disabled for the kernel build
2023-02-16 14:53:38 +01:00
Stefan Agner
26757f17e8 Linux: Update kernel 5.15.94 (#2356) 2023-02-15 11:01:50 +01:00
Stefan Agner
dddbf25228 Bump U-Boot to v2023.01 for ODROID/Tinker/VIM3 (#2355) 2023-02-15 11:01:40 +01:00
Stefan Agner
0786ef2641 Bump buildroot (#2354)
* buildroot c33bc08c0b...43f82f01b9 (1):
  > package/pkg-golang: disable version control information
2023-02-14 11:04:00 +01:00
Stefan Agner
0a9517f121 Linux: Update kernel 5.15.93 (#2351) 2023-02-13 21:23:21 +01:00
Stefan Agner
f4f1fd2a58 NetworkManager: DHCPv4 handle lease NAK properly (#2341) (#2346)
Backport bug fix which handles a failed lease properly.
2023-02-13 21:23:11 +01:00
Stefan Agner
0867e3c70c Linux: Update kernel 5.15.92 (#2343)
* Linux: Update kernel 5.15.92

* Drop patch which has been applied upstream
2023-02-06 12:28:58 +01:00
Stefan Agner
078c38c20c Bump buildroot (#2340)
* buildroot 14dcc6f72e...c33bc08c0b (1):
  > package/dbus-broker: bump to release 33
2023-02-06 12:03:26 +01:00
Stefan Agner
a14902002a Linux: Update kernel 5.15.91 (#2339) 2023-02-06 12:03:16 +01:00
Stefan Agner
acaba8c3ea Add RTL8723BE PCIe Wi-Fi chip support (#2329) (#2336) 2023-01-31 23:55:26 +01:00
Stefan Agner
ea48034806 Add iproute2 ip command (#2335)
Replace Busybox ip command with the full version from the iproute2
package. This removes ~20KiB from Busybox, but adds ~685KiB for full
iproute2.

The main reason is to get full ip -6 route command support to debug
Thread related routing problems.
2023-01-31 23:55:18 +01:00
dependabot[bot]
e3c92638b3 Bump ludeeus/action-shellcheck from 1.1.0 to 2.0.0 (#2331)
Bumps [ludeeus/action-shellcheck](https://github.com/ludeeus/action-shellcheck) from 1.1.0 to 2.0.0.
- [Release notes](https://github.com/ludeeus/action-shellcheck/releases)
- [Commits](https://github.com/ludeeus/action-shellcheck/compare/1.1.0...2.0.0)

---
updated-dependencies:
- dependency-name: ludeeus/action-shellcheck
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-30 15:43:05 +01:00
Alex Williamson
56b094724b Add amdgpu driver and firmware (#2320)
This can reduce power consumption of the GPU hardware.
2023-01-30 15:42:43 +01:00
Stefan Agner
3654a43a90 Bump U-Boot to v2023.01 (#2316) 2023-01-24 11:14:23 +01:00
Stefan Agner
eeb0cb90ce Linux: Update kernel 5.15.90 (#2315) 2023-01-24 11:13:18 +01:00
Stefan Agner
b726b8691b RaspberryPi: Update kernel 5.15.84 - 1.20230106 (#2312)
* RaspberryPi: Update kernel 5.15.84 - 1.20230106

* Bump buildroot

* buildroot 94470c0e51...14dcc6f72e (1):
  > package/rpi-firmware: bump version to 1.20230106
2023-01-23 23:09:11 +01:00
Stefan Agner
e4d09097c0 Bump buildroot (#2313)
* buildroot 41bd49dba4...94470c0e51 (1):
  > Merge tag '2022.02.9' into 2022.02.x-haos
2023-01-23 22:26:38 +01:00
Stefan Agner
e394cea55c Linux: Update kernel 5.15.89 (#2311) 2023-01-23 14:04:19 +01:00
Stefan Agner
768bdef2bf Add ASMedia based devices to UAS block list (#2310)
This ASMedia Technology chip seems to cause problem with the UAS driver.
The chip is used in UGreen S-ATA to USB 3.0 adapters.
2023-01-23 14:00:15 +01:00
xonestonex
6d8faa90a7 WiFi Access Point / HotSpot management in NetworkManager (#2304)
* Enable wpa_supplicant access point funtionality, to allow NetworkManager to manage WiFi interfaces as HotSpots or access points.

* Add an exception, to allow NetworkManager to manage bridge interfaces whose name starts with 'bridge'.

* Update buildroot-external/rootfs-overlay/etc/NetworkManager/NetworkManager.conf

Co-authored-by: Stefan Agner <stefan@agner.ch>

Co-authored-by: Stefan Agner <stefan@agner.ch>
2023-01-23 14:00:04 +01:00
Stefan Agner
d4deee3660 Linux: Update kernel 5.15.88 (#2305) 2023-01-16 23:33:05 +01:00
d-two
ae5cb3e980 Add HP Smart Array driver (#2302) 2023-01-16 09:56:16 +01:00
Stefan Agner
b82594a293 Linux: Update kernel 5.15.86 (#2301) 2023-01-11 23:30:21 +01:00
Stefan Agner
bfb665bb85 Fix remote tracking branch for Buildroot submodule (#2288)
Set 2022.02-haos as the default remote tracking branch. This should not
influence regular submodule updates/inits as they reference the git
hash tracked by the operating-system repository directly.
2022-12-27 09:05:39 +01:00
dependabot[bot]
18dfd059a0 Bump actions/stale from 6.0.1 to 7.0.0 (#2289)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-12-27 08:52:17 +01:00
Stefan Agner
93656904de Bump buildroot (#2286)
* buildroot 53a9b0095a...41bd49dba4 (1):
  > package/bluez5_utils: Fix Service detection on some devices
2022-12-23 00:34:57 +01:00
Stefan Agner
8f2c197e09 Linux: Update kernel 5.15.85 (#2284) 2022-12-22 00:20:02 +01:00
Stefan Agner
fb4df28671 Enable Realtek RTL8723AU/RTL8188[CR]U/RTL819[12][CE]U support (#2281) 2022-12-21 00:08:38 +01:00
Stefan Agner
875add54e4 Enable RTL8812AU WiFi support on additional boards (#2279)
Enable RTL8812AU WiFi driver on Generic x86-64/AArch64, OVA and Yellow.
2022-12-21 00:08:30 +01:00
Stefan Agner
6c242b8593 Bump buildroot (#2278)
* buildroot 80bb9553ec...53a9b0095a (1):
  > Merge tag '2022.02.8' into 2022.02.x-haos
2022-12-21 00:08:24 +01:00
Stefan Agner
1e1fd16977 Linux: Update kernel 5.15.84 (#2277) 2022-12-21 00:07:53 +01:00
Stefan Agner
76c6127851 Linux: Update kernel 5.15.83 (#2266) 2022-12-14 22:31:11 +01:00
dependabot[bot]
ab8fb12972 Bump dessant/label-actions from 2 to 3 (#2263)
* Bump dessant/label-actions from 2 to 3

Bumps [dessant/label-actions](https://github.com/dessant/label-actions) from 2 to 3.
- [Release notes](https://github.com/dessant/label-actions/releases)
- [Changelog](https://github.com/dessant/label-actions/blob/master/CHANGELOG.md)
- [Commits](https://github.com/dessant/label-actions/compare/v2...v3)

---
updated-dependencies:
- dependency-name: dessant/label-actions
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* Pin more strictly

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Franck Nijhof <git@frenck.dev>
2022-12-14 22:30:23 +01:00
Stefan Agner
71281e0c69 Enable Hyper-V drivers for virtualization on ARM64 (#2256) (#2262) 2022-12-10 23:58:58 +01:00
Stefan Agner
17bb8b0d71 Linux: Update kernel 5.15.82 (#2261) 2022-12-10 23:58:52 +01:00
Stefan Agner
970bec6ac3 Use same class B network for Docker as Supervisor (#2246) (#2259)
Use a subnet in the same class B network for the Docker default bridge
is using. This avoids conflicting with more than one class B network.
2022-12-10 23:58:42 +01:00
Stefan Agner
07bd5079fa Bump buildroot (#2253)
* buildroot 54eff73a8f...80bb9553ec (1):
  > Merge tag '2022.02.7' into 2022.02.x-haos
2022-11-30 16:07:38 +01:00
Stefan Agner
f1ffc301c8 Enable release drafter on dev branch (#2252) 2022-11-30 12:22:37 +01:00
Stefan Agner
eaeac710eb Enable experimental APIs for Bluetooth daemon (#2251)
To get access to the experimental advertisement monitor api
experimental mode is required. This eanbles the experimental D-Bus API
by default.

See also: https://github.com/hbldh/bleak/pull/884
2022-11-29 11:31:59 +01:00
Stefan Agner
a170a8c6c2 Use iptables with NFT backend (#2250)
* Bump buildroot

* buildroot 215e54fe41...54eff73a8f (1):
  > package/iptables: Allow to use iptables with nf_tables backend

* Use iptables with NFT backend
2022-11-29 11:31:50 +01:00
Stefan Agner
0a54abc7c2 Linux: Update kernel 5.15.80 (#2249)
* Linux: Update kernel 5.15.80

* Drop unnecessary patch
2022-11-29 11:27:28 +01:00
Stefan Agner
ce16ee5d49 Decrease network size of Docker default bridge (#2246) 2022-11-25 13:24:45 +01:00
pergolafabio
5c57d5e26e Add v4l2loopback device (#2243) 2022-11-25 11:40:05 +01:00
Stefan Agner
7e8166b045 Bump U-Boot to v2023.01-rc1 (#2234)
* Bump Raspberry Pi/Yellow to U-Boot 2023.01-rc1

* Add necessary configurations for NVMe via PCIe support
2022-11-17 12:31:12 +01:00
Stefan Agner
c525ee9480 Bump Raspberry Pi kernel and firmware to 1.20221104 (#2178) (#2236)
* Bump buildroot

* buildroot 48c0c35f09...215e54fe41 (1):
  > package/rpi-firmware: bump version to 1.20221104

* RaspberryPi: Update kernel 5.15.76 - 1.20221104
2022-11-17 12:30:08 +01:00
Stefan Agner
7556985bc4 Linux: Update kernel 5.15.79 (#2233) 2022-11-17 12:26:22 +01:00
Stefan Agner
49c124177b Disable CONFIG_FW_LOADER_USER_HELPER(/_FALLBACK) (#2222) (#2229)
This slows down firmware loading which causes Bluetooth initialization
to delay unecessarily.
2022-11-14 23:20:12 +01:00
Stefan Agner
bd0f22de6e Linux: Update kernel 5.15.78 (#2228) 2022-11-14 20:42:22 +01:00
Stefan Agner
284d178103 Linux: Update kernel 5.15.77 (#2223) 2022-11-10 09:32:36 +01:00
Rob VDM
12bd4ad8dd Add MLX5 support to OVA build (#2214)
This adds MLX5 (ConnectX 4) NIC support to the OVA build, which allows this NIC to be used as a VF with SR-IOV NICs in a VM.
2022-11-10 09:08:44 +01:00
Lasse Bang Mikkelsen
8d406ee504 Add QEMU Guest Agent to generic_aarch64 target (#2213)
This is to allow graceful shutdown when run as QEMU VM.
2022-11-10 09:08:33 +01:00
Stefan Agner
6dbf4fd078 Disable Busybox' powertop (#2211)
The powertop command built-in BusyBox uses old timer_stats proc API
which has been removed since Linux 4.11. Hence the command is not
useful on HAOS. Remove it.
2022-11-10 09:07:42 +01:00
Stefan Agner
bb8445a416 Add patch to avoid dummy waits on CPU idle for AMD systems (#2210) 2022-11-02 14:46:37 +01:00
Stefan Agner
e1559cd1a9 Enable Intel specific CPU idle driver (#2209) 2022-11-02 11:05:11 +01:00
Stefan Agner
55fb15ae15 Linux: Update kernel 5.15.76 (#2208) 2022-10-31 20:26:15 +01:00
Stefan Agner
c682073da5 Linux: Update kernel 5.15.75 (#2204) 2022-10-26 17:28:06 +02:00
Stefan Agner
97e9a0372c Add fq_codel network packet scheduler algorithm by default (#2203)
The fq_codel network scheduler is the de-facto standard nowadays in most
distros. Systemd enables the scheduler by default if available. Make
sure all boards have the necessary kernel module activated.
2022-10-26 16:56:09 +02:00
Stefan Agner
86da5f9913 Bump buildroot (#2199)
* buildroot 8c952a2d00...48c0c35f09 (1):
  > boot/grub2: fix GRUB2 patch merge error
2022-10-20 21:35:44 +02:00
ioctl2
c68d8bfbe4 busybox: enable 'less' applet & correct MAXLINES val (#2189) 2022-10-20 16:02:51 +02:00
Stefan Agner
72273ed4f6 Bump buildroot (#2198)
* buildroot 325737ba29...8c952a2d00 (2):
  > package/containerd: bump to version 1.6.8
  > Merge tag '2022.02.6' into 2022.02.x-haos
2022-10-20 16:02:42 +02:00
Stefan Agner
02f8f0abbd Bump buildroot (#2195)
* buildroot 5468d36a26...325737ba29 (1):
  > package/openvmtools: fix local privilege escalation vulnerability
2022-10-19 19:48:41 +02:00
Stefan Agner
43642e2f46 Fix S-ATA on ODROID-HC1 (#2194)
The ODROID-XU4 is largely compatible with the ODROID-HC1. It seems that
the image used to work until recently, where a stable kernel update
broke access to the S-ATA disk.

Revert the offending stable kernel patch to fix S-ATA disk on
ODROID-HC1.
2022-10-19 10:54:01 +02:00
Stefan Agner
2e5c7c77f8 Linux: Update kernel 5.15.74 (#2191) 2022-10-17 16:00:45 +02:00
Stefan Agner
3d763f1d77 Replace set-output commands with GITHUB_OUTPUT environment vars (#2192)
The set-output commands via stdout are deprecated. Use the GITHUB_OUTPUT
environment variable as suggested by GitHub.
2022-10-17 14:32:41 +02:00
Stefan Agner
4c31c47a98 Linux: Update kernel 5.15.73 (#2185) 2022-10-13 23:00:15 +02:00
Mike Degatano
566d6d775e Update outdated ui references in issue template (#2175)
* Update outdated ui references in issue template

* Mention top right menu

* Remove health

* Remove health and fix directions

Co-authored-by: Stefan Agner <stefan@agner.ch>
2022-10-13 22:55:30 +02:00
dependabot[bot]
e5e0f99d52 Bump actions/stale from 6.0.0 to 6.0.1 (#2179)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-10-10 16:42:00 +02:00
Stefan Agner
340cbc4c6b Yellow: Support wipeing boot files on NVMe (#2173) 2022-10-06 23:49:47 +02:00
Stefan Agner
2870e04586 Linux: Update kernel 5.15.72 (#2171) 2022-10-06 13:38:41 +02:00
Pascal Vizeli
a3cc15f11f Streamline CONFIG_RT_GROUP_SCHED (#2169)
* Disable RT_GROUP_SCHED
2022-10-03 15:41:13 +02:00
Stefan Agner
ce86be7632 Remove HDMI fix applied in Linux 5.15.68 (#2166) 2022-10-02 23:23:58 +02:00
Stefan Agner
c28d913a7e Linux: Update kernel 5.15.71 (#2165) 2022-10-02 10:15:22 +02:00
Bryan York
2ac9dc1c75 Add LXD VM Guest Agent Support (#2145)
* Add LXD VM Guest Agent Support

* Add systemd patch, remove udev rules, change to kernel modules, fix linter

* Remove systemd patch, add conditionals to qemu-guest and lxd-agent

* Update buildroot-external/package/qemu-guest-agent/qemu-guest.service

Co-authored-by: Stefan Agner <stefan@agner.ch>
2022-10-02 10:06:56 +02:00
Carsten Hiort
e53196d176 Allow multicast forwarding for IPv4 (#2160)
* Allow multicast forwarding for IPv4

* Move MCast fordwarding to seperate group

* Remove whitespace
2022-09-30 13:50:53 +02:00
Pascal Vizeli
a0bc73903c Add OS-Agent 1.4.1 support (#2157)
* Add OS-Agent 1.4.0 support

* Update OS-Agent 1.4.1
2022-09-27 11:06:01 +02:00
dependabot[bot]
a82edf718b Bump actions/stale from 5 to 6.0.0 (#2158)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Franck Nijhof <git@frenck.dev>
2022-09-26 19:20:13 +02:00
ioctl2
d698d0e9d2 Add comments, ignore vscode* (#2152) 2022-09-24 08:25:44 +02:00
Stefan Agner
6e5dbc0792 Linux: Update kernel 5.15.69 (#2150) 2022-09-21 10:47:42 +02:00
ioctl2
9eb95cbbdb Enable .config via /proc/config.gz + zcat via busybox (#2149) 2022-09-21 10:47:30 +02:00
Stefan Agner
b2925966a8 Linux: Update kernel 5.15.68 (#2146) 2022-09-19 12:28:08 +02:00
ioctl2
eafbf6159d Fix proxmox mem hotplug/improve virtual hw support (#2138) 2022-09-19 12:25:23 +02:00
Stefan Agner
1a7daf4844 Remove UI reference from configuration USB flash drive docs (#2129) (#2131) 2022-09-14 11:48:29 +02:00
Stefan Agner
c1a767695d Backport patch to fix ODROID-N2 HDMI (#2128) 2022-09-12 22:16:29 +02:00
Mike Degatano
0404657e74 Connectivity check interval to 10 minutes (#2127) 2022-09-12 22:16:17 +02:00
Stefan Agner
0af0905b2e Linux: Update kernel 5.15.67 (#2126) 2022-09-12 22:16:09 +02:00
Stefan Agner
41b452ff48 Fix Docker key.json corruption check (#2125)
* Fix Docker key.json corruption check

Since /etc/docker does not get bind mounted anymore (see #2116),
key.json from the overlay partition is used directly.

* Use -e flag for jq to get useful exit code
2022-09-12 22:16:00 +02:00
Stefan Agner
bd7a32fd3e Drop unused cgroup_enable=memory kernel parameter (#2124)
The cgroup_enable parameter is a Raspberry Pi kernel specific kernel
parameter. Upstream based kernel do not have the parameter, and hence
do not do anything.

This gets rid of the following message during boot:
Unknown kernel command line parameters "cgroup_enable=memory", will be passed to user space.
2022-09-12 22:15:34 +02:00
Stefan Agner
c6f51db4ed Add Qualcomm QCA6174/QCA6174A Bluetooth support (#2122) (#2123)
* Add Qualcomm QCA6174/QCA6174A Bluetooth support (#2122)
2022-09-12 22:15:21 +02:00
Stefan Agner
a6445af712 Remvoe image name from journald tag/identifier (#2118)
The image name is stored in a separate field IMAGE_NAME as well. This
allows to use the container name (e.g. `hassio_supervisor`) to get logs
of all Supervisors independent of the image name (which differs for
every version).
2022-09-08 12:20:02 +02:00
Stefan Agner
cb58b14e06 Bump Raspberry Pi kernel and firmware to 1.20220830 (#2117)
* RaspberryPi: Update kernel 5.15.61 - 1.20220830

* Add Yellow to the Raspberry Pi kernel update script

* Bump Yellow to kernel 5.15.61 - 1.20220830

Also drop the work around for the LED polarity as the new firmware
has been fixed.

* Explicitly select no kernel module compression

Home Assistant OS uses a compressed rootfs already, no compression for
kernel modules necessary.

* Bump buildroot

* buildroot d7e4c223e5...5468d36a26 (1):
  > package/rpi-firmware: bump version to 1.20220830
2022-09-07 19:21:30 +02:00
Stefan Agner
66c15adbbf Move Docker configuration to daemon.json (#2116)
This is more readable than passing arguments to the daemon directly. It
also shortens the ExecStart command significantly, which is stored in
every log entry in systemd-journald.
2022-09-07 19:13:47 +02:00
Stefan Agner
b7f8e22fbf Linux: Update kernel 5.15.65 (#2114) 2022-09-06 20:28:31 +02:00
Stefan Agner
cf11b5a745 Try using old image name of the Supervisor image (#2111) (#2113)
* Try using old image name of the Supervisor image

* Tag the old image with the new name so recreation works
2022-09-06 20:28:24 +02:00
Stefan Agner
30a0bb6d85 Try booting up to 3 times on GRUB2 based systems (#2112)
* Retry up to 3 times

By default, HAOS used to retry 3 times. That is still true for U-Boot
based boards. Apply the same logic for GRUB2 based systems for
consistency.

This can help to remedy intermittent internet/connectivity issuese.
Altough hacky, in practise it makes sense to give the newly installed OS
another go.

* Also apply to generic-aarch64
2022-09-06 20:28:14 +02:00
Stefan Agner
f4defcedfd Bump buildroot (#2109)
* buildroot 9dbf8d5e86...d7e4c223e5 (1):
  > Merge tag '2022.02.5' into 2022.02.x-haos
2022-09-03 13:06:21 +02:00
Stefan Agner
e51b9bf29e Bump OS release version to 10 2022-09-02 23:49:49 +02:00
Stefan Agner
c1e2d655bc ODROID-XU4: Reset Ethernet properly on reboot (#1488) (#2108) 2022-09-02 23:34:16 +02:00
Stefan Agner
79c9e208ca Enable dependencies for IPv6 NAT support (#2106)
* Enable dependencies for IPv6 NAT support

This makes the ODROID-XU4 kernel to build properly with IPv6 NAT enabled
as well.
2022-09-02 23:29:48 +02:00
Stefan Agner
fbbc0075ea Remove dev from release drafter (#2107)
It seems not to work as intended.
2022-09-02 23:27:40 +02:00
Stefan Agner
3708b2fe72 Linux: Update kernel 5.15.64 (#2104) 2022-09-02 15:33:49 +02:00
Stefan Agner
b1df44421b Bump commit interval to 30s (#2103)
A higher file system commit interval can help to decrease the amount of
writes. In tests, a commit interval of higher than 30s seems not to help
much in practice. Settle with 30s for now.
2022-09-02 15:23:38 +02:00
Stefan Agner
303f63c222 Add access to containerd for Supervisor (#2102)
Add direct access to Docker's containerd instance by passing in its GRCP
socket. This can be useful to talk to the containerd GRPC API directly,
which exposes more information than the Docker API (e.g. OOM kill
events).
2022-09-02 14:49:25 +02:00
Stefan Agner
53818a1325 Do not send excessive DNS queries for online checks (#2100) (#2101)
* Do not send excessive DNS queries for online checks (#2100)
2022-08-31 23:35:41 +02:00
Stefan Agner
ed554f2a39 Check free disk space before starting Docker (#2097)
It seems that Docker can fail to start if there is no space left on the
device. Try to free up some space in that case by asking journald to
limit its size to 256MiB.

This should work for any storage larger than ~2.5GiB (as the journals
maximum size is 10% of the disk size). It still should leave enough
logs to diagnose problems if necessary.

Note: We could also limit the size of the journal in first place, but
that isn't sustainable: Once that space is used up, we run into the
same problem again.

By only asking journalctl to free up if necessary, we kinda (miss)use
the journal as way to "reserve" some space which we can free up at boot
if necessary.
2022-08-31 23:04:23 +02:00
Stefan Agner
ba5de20ba8 Add GRUB2 boot entry to boot into rescue shell (#2096) 2022-08-31 23:02:47 +02:00
Michael Haas
b0674713a7 rpi4: Enable arm_boost=1 to unlock 1.8GHz CPU clock (#2073)
* rpi4: Enable arm_boost=1 to unlock 1.8Ghz CPU

The official Raspberry Pi OS enables a "boosted" 1.8GHz
mode since their Debian bullseye based release [source]. This
commit brings this feature to HA OS.
2022-08-31 15:52:23 +02:00
Stefan Agner
4edc71b005 Enable k10temp kernel module (#2094)
The k10temp module allows to monitor CPU temperature on AMD systems.
2022-08-31 08:29:13 +02:00
Stefan Agner
4af2c880ed Linux: Update kernel 5.15.63 (#2093) 2022-08-31 08:29:05 +02:00
Stefan Agner
e64e97cedf Linux: Update kernel 5.15.62 (#2084) 2022-08-25 00:09:21 +02:00
Stefan Agner
cd5e42341d Start dropbear earlier (#2083)
This can be helpful when debugging HAOS issues. Dropbear is only started
for users which actually enabled it by configuring a SSH key, so this
change won't have an effect for most people.
2022-08-25 00:09:13 +02:00
Stefan Agner
ea5acb0950 Fix delaying systemd-timesyncd start correctly (#2082)
Unfortunately, orderings like Before= cannot be overriden by vendor
settings. This is mentioned in "Example 2. Overriding vendor settings"
on https://www.freedesktop.org/software/systemd/man/systemd.unit.html.

Correctly fix ordering by overriding the entire unit.
2022-08-24 23:02:09 +02:00
Stefan Agner
a16354276f Bump buildroot (#2072)
* buildroot 2083b57930...9dbf8d5e86 (3):
  > package/brcmfmac_sdio-firmware-rpi: bump to latest version
  > package/linux-firmware: Deploy fewer Intel WiFi 22000 series variants
  > package/linux-firmware: bump version to 20220815
2022-08-18 15:55:15 +02:00
Stefan Agner
19c5d45734 Linux: Update kernel 5.15.61 (#2070) 2022-08-18 15:51:16 +02:00
Stefan Agner
f8c8198bb9 Fix delaying systemd-timesyncd start (#2069)
* Fix delaying systemd-timesyncd

Setting WantedBy=time-sync.target in a service.d config file does not
clear previous assignments of WantedBy. This caused the services to still
be pulled in by the sysinit.target, causing a ordering cycle and the
system to not start essential services.

* Remove sysinit.target from Before ordering
2022-08-18 15:51:07 +02:00
Stefan Agner
7a693bed46 Delay systemd-timesyncd start after network is deemed online (#2068)
With commit 2d3119ef22 ("Delay Supervisor start until time has been
sychronized (#1360)") systemd-time-wait-sync.service got enabled, which
waits until systemd-timesyncd synchronizes time with a NTP server.

By default systemd-timesyncd.service and systemd-time-wait-sync.service
are pulled in by sysinit.target. This starts the services before full
network connectivity is established. The first sychronization fails and
systemd-timesyncd only retries after a ratelimit mechanism times out.
This causes a dealy of 30s during startup. While systemd-timesyncd has
a mechanism to (re)try time synchronization when network becomes
online, it seems that those only work properly when systemd-networkd
is used, see also https://github.com/systemd/systemd/issues/24298.

Simply reordering systemd-timesyncd.service after network-online.target
does not work as it causes circular dependencies (NetworkManager itself
depends ultimately on the sysinit.target).

With this change, the services are only pulled in by time-sync.target.
That allows to order the service after network-online.target. With that
the first synchronization succeeds.

This mechanism also works when a NTP server is provided through DHCP.
In that case, a the systemd-timesyncd service is started by the dispatch
script /usr/lib/NetworkManager/dispatcher.d/10-ntp before the systemd
even considers starting the service. Tests show that the default
fallback NTP is not contacted, only the DHCP provided service.
2022-08-17 18:51:35 +02:00
Stefan Agner
c3bfa2e64a Kernel config tweaks for Bluetooth and OverlayFS (#2067)
* Move Bluetooth protocol configuration to hassos.config

Enable a couple of potential useful Bluetooth protocol drivers.
Also enable Bluetooth Network Encapsulation Protocol since the BlueZ
plug-in seems to be enabled.

* Drop OverlayFS configuration not liked by Docker
2022-08-16 22:26:39 +02:00
Stefan Agner
fe8332eb90 Bump buildroot (#2066)
* buildroot 2ba3394abf...2083b57930 (1):
  > package/systemd: bump to version 250.7
2022-08-16 22:26:14 +02:00
Stefan Agner
aeda0d0503 Enable BlueZ Audio and HID plug-ins (#2064, #1746) (#2065)
* Enable BlueZ Audio and HID plug-ins (#2064, #1746)
2022-08-16 22:26:03 +02:00
Michael Haas
c4233012d0 Remove duplicate ASMedia quirk 174c:55aa:u (#2061) 2022-08-16 14:15:55 +02:00
Stefan Agner
dcff3d3f14 Compile extra network drivers as modules (#2059)
* Bump buildroot

* buildroot 0397d9c8f0...2ba3394abf (1):
  > package/docker-engine: use kernel modules for extra network drivers

* Make IPv6 SIT tunnel driver a kernel module

This is what distributions seem to be doing too.
2022-08-13 13:45:15 +02:00
Stefan Agner
c2174a4ee4 Linux: Update kernel 5.15.60 (#2058) 2022-08-13 13:45:04 +02:00
Pascal Vizeli
05778a2d32 Support IPv6 NAT (#2051)
* Support IPv6 NAT

* Add experimental

* Enable IPv6 NAT in kernel configuration

Co-authored-by: Stefan Agner <stefan@agner.ch>
2022-08-12 17:43:49 +02:00
Stefan Agner
7729db1e11 Synchronize network time quicker on bootup (#2057)
Currently systemd-timesyncd tries to connect to the NTP server quite
early at boot-up. At this time the network connection has not been
established yet. This causes resolving the NTP server to fail and
a rate limit kicks in which makes systemd-timesyncd wait for 30s until
the next attempt.

Lowering the retry attempt to 10s makes systemd-timesyncd connecting
shortly after.

Note: The rate limit is 10 attempts per 10s. Because the attempts are
immediately exhausted lowering connection retry attempt below 10s
adds no benefit.

See also: https://github.com/systemd/systemd/issues/24298
2022-08-12 17:43:26 +02:00
Stefan Agner
5b0c1754f6 Bump Docker to 20.10.17 (#2055)
* buildroot 97287bbebf...0397d9c8f0 (5):
  > package/docker-proxy: bump version to f6ccccb1c082
  > package/containerd: security bump to 1.6.6
  > package/docker-engine: bump to version 20.10.17
  > package/docker-cli: bump to version 20.10.17
  > package/runc: bump to version 1.1.3
2022-08-11 07:03:32 +02:00
Stefan Agner
71d5c77508 Load container images descending by size (#2054)
* Load container images descending by size

Loading container images using docker load seems to require more space
at load time (which gets freed after loading). Loading the largest
container first avoids running out of space.
2022-08-10 21:05:30 +02:00
Stefan Agner
2d8ec0c8ee Use dbus-broker as default D-Bus broker (#2053)
* Bump buildroot

* buildroot 99b62b8bd3...97287bbebf (3):
  > package/dbus-broker: bump to release 32
  > package/dbus-broker: new package
  > Merge pull request #3 from home-assistant/2022.02.x-haos-cgroup-v2

* Use dbus-broker as default D-Bus broker

The dbus-broker (Linux D-Bus Message Broker) aims to be a high
performance and reliable D-Bus broker which can be used as a drop in
replacement to the reference implementation D-Bus broker. In tests it
showed significantly better performance especially when routing BLE
messages.

* Allow dbus-broker to start early

For HAOS device wipe feature we need haos-agent.service and
udisk2.service early. Both require a working D-Bus broker.
The options PrivateTmp and PrivateDevices add additional After=
orderings which doesn't allow dbus-broker to be started early.

* Fix D-Bus dependency

D-Bus services should just depend on dbus.socket.
2022-08-10 17:01:02 +02:00
Stefan Agner
5d0a61fafc Set lower OOM Score for Supervisor (#2050)
* Set lower OOM Score for Supervisor

* Adjust OOM for Docker daemon
2022-08-10 13:56:45 +02:00
Stefan Agner
4d9b604c04 Use Control Group v2 (#1329)
* Disable real-time scheduling

It seems that Linux' cgroup v2 currenlty does not support RT scheduling.

* Remove Supervisor RT support flag

With CGroups v2 we can no longer support CPU resource allocation for
realtime scheduling.

* Bump OS Agent to 1.3.0 for CGroups v2 support
2022-08-09 11:29:12 +02:00
Stefan Agner
7409be7197 Enable USB/IP kernel modules (#2047) 2022-08-05 09:54:40 +02:00
Stefan Agner
7df21c6839 Bump buildroot (#2045)
* buildroot ad168306a4...04ac0c825d (1):
  > boot/grub2: fix build race condition
2022-08-05 09:54:31 +02:00
Stefan Agner
83dc7117de Bump buildroot (#2044)
* buildroot 686000eee8...ad168306a4 (1):
  > Merge tag '2022.02.4' into 2022.02.x-haos
2022-08-04 09:06:53 +02:00
Stefan Agner
b8550dec2a Linux: Update kernel 5.15.59 (#2043) 2022-08-04 08:59:39 +02:00
Stefan Agner
e0222ec454 Add LED control through device tree overrides (#2038) 2022-08-04 08:36:14 +02:00
Stefan Agner
e2931c35ba Check if GRUB environment is valid (#2031) (#2036) 2022-08-04 08:22:17 +02:00
Stefan Agner
364196614b Yellow USB mass storage support (#2035)
* Enable USB OTG in the Yellow device tree

* Enable U-Boot USB mass storage command

* Enable UMS mode when blue button is pressed
2022-07-27 23:54:17 +02:00
Stefan Agner
084b20e4df Allow to Wipe essential boot files to trigger boot from USB host (#2034)
This makes the Red+Blue Button cause the boot loader to wipe start4.elf,
which is essential for the boot loader to boot from eMMC. With the file
missing, the Raspberry Pi firmware will continue its boot flow and boot
from USB host next. This allows to run the Home Assistant OS Installer
from a USB flash drive again.
2022-07-27 14:53:47 +02:00
Stefan Agner
263e600b51 Linux: Update kernel 5.15.57 (#2028) 2022-07-24 01:30:46 +02:00
Stefan Agner
0f1ecf85d5 Linux: Update kernel 5.15.55 (#2025) 2022-07-20 22:49:00 +02:00
Stefan Agner
86cee444be Allow to select generic-aarch64 and yellow in issue template (#2023) 2022-07-18 13:45:52 +02:00
nepozs
fcfe074672 Update README.md (#2012)
added NUC6CAYS tested model, and Bluetooth basic information
2022-07-18 13:45:42 +02:00
Vedran Pavic
cbb0e5b4b9 Fix issue template link for developer documentation issues (#2018) 2022-07-13 21:23:52 +02:00
Stefan Agner
57fd9a5b4b Linux: Update kernel 5.15.54 (#2019) 2022-07-13 09:24:04 +02:00
Joakim Sørensen
4da0ad7da2 Fix ghcr URL (#2014)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2022-07-09 23:24:57 +02:00
Stefan Agner
54bbae3286 Bump buildroot (#2013)
* buildroot e7a881ea75...686000eee8 (1):
  > package/bluez5_utils: Fix spamming errors
2022-07-08 22:36:15 +02:00
Stefan Agner
8f07d16176 Improve HAOS builder Dockerfile (#2011) 2022-07-08 22:36:02 +02:00
Stefan Agner
5932f1212e Increase Supervisor start rate limit (#2010)
A faster restart policy is unlikely to help. Increasing the limit makes
it less likely to run into cloud service rate limits (e.g. container
registry).
2022-07-08 22:35:52 +02:00
Stefan Agner
0139030404 Use GitHub Container Registry for Supervisor (#2005) (#2009)
* Use GitHub Container Registry (#2005)

* Tag with ghcr.io prefix
2022-07-08 16:33:04 +02:00
shrung
5c70c57a70 Better detail on the wifi setup (#1990)
Quotation marks are needed for SSIDs which include spaces. The preamble to the code snippet is also grammatically correct now.
2022-07-08 13:57:23 +02:00
Stefan Agner
d2c0ad8096 Use yellow machine yellow_defconfig (landingpage) (#2008) 2022-07-08 09:54:43 +02:00
Stefan Agner
92da6b64c7 Yellow: Enable PL011 console on J11 by default (#2001) 2022-07-04 17:30:37 +02:00
Stefan Agner
7d0ad7e662 Linux: Update kernel 5.15.52 (#2002) 2022-07-04 17:30:27 +02:00
Pascal Vizeli
2801019912 Using Yellow for HA images (landingpage) (#1992) 2022-07-04 14:33:34 +02:00
Joakim Sørensen
11df4745e7 Use checkonline instead of version for connectivity check (#1991) 2022-06-27 16:30:05 +02:00
Stefan Agner
e6147184c0 Linux: Update kernel 5.15.50 (#1989) 2022-06-25 09:30:36 -07:00
Stefan Agner
26bca2666d Remove key.json file if it appears to be corrupted (#1706) (#1988)
* Remove key.json file if it appears to be corrupted (#1706)

* Check with jq if key.json is parsable
2022-06-25 09:30:20 -07:00
Stefan Agner
7708de0c65 Improve Wi-Fi section (#1984) 2022-06-25 09:22:32 -07:00
Stefan Agner
739a783c8d Linux: Update kernel 5.15.49 (#1987) 2022-06-24 09:57:12 -07:00
Stefan Agner
b1dcdea03c Bump buildroot (#1986)
* buildroot 7995541510...e7a881ea75 (1):
  > Merge tag '2022.02.3' into 2022.02.x-haos
2022-06-24 09:57:01 -07:00
Stefan Agner
d9beee93ed Set restrictive GitHub Action permissions (#1985)
* chore: Set permissions for GitHub actions

Restrict the GitHub token permissions only to the required ones; this way, even if the attackers will succeed in compromising your workflow, they won’t be able to do much.

* Remove global permissions which are set implicitly

With restrictive settings in the global GitHub Action permission settings
those permissions are given implicitly.

Co-authored-by: neilnaveen <42328488+neilnaveen@users.noreply.github.com>
Co-authored-by: Joakim Sørensen <hi@ludeeus.dev>
Co-authored-by: Stefan Agner <stefan@agner.ch>
2022-06-24 09:46:02 -07:00
Renaud Morvan
33575b639e Fix network.md ha cli network wifi example (#1976) 2022-06-16 02:28:51 +02:00
Stefan Agner
720f604f98 Increase maximum socket receive and send buffer size (#1964) (#1968)
Some applications try to increase the buffers for performance reason. The
QUIC Go implementation for instance tries to request a 2048 kiB buffer
size.

The kernel default depends on skubuf size (which is architecture
dependent), but it is memory size independet and typically around 200 kiB
(see [1]).

Other network tuning guides suggest 16MiB for 1GB ethernet, as well as
changing the default as well as maximum bufffer size (see [2]). This
conservatively increases the maximum buffer size to 4MiB.

[1]: https://elixir.bootlin.com/linux/v5.15.45/source/include/net/sock.h#L2742
[2]: https://nateware.com/2013/04/06/linux-network-tuning-for-2013/
2022-06-08 16:17:49 +02:00
Stefan Agner
f94cb9df39 Linux: Update kernel 5.15.45 (#1967) 2022-06-08 16:17:39 +02:00
Stefan Agner
432cb86235 NVMe patches are applied for all Raspberry Pi based boards now (#1959) 2022-06-01 20:47:16 +02:00
Stefan Agner
e10e3c9d7c Bump buildroot (#1958)
* buildroot 2eebdbad5c...7995541510 (1):
  > Merge tag '2022.02.2' into 2022.02.x-haos
2022-06-01 15:46:37 +02:00
Stefan Agner
7552395368 Apply NVMe fixes to all Raspberry Pi boards (#1911) (#1957) 2022-06-01 15:46:28 +02:00
dependabot[bot]
b1a2e6ee17 Bump burnett01/rsync-deployments from 4.1 to 5.2 (#1956)
Bumps [burnett01/rsync-deployments](https://github.com/burnett01/rsync-deployments) from 4.1 to 5.2.
- [Release notes](https://github.com/burnett01/rsync-deployments/releases)
- [Commits](https://github.com/burnett01/rsync-deployments/compare/4.1...5.2)

---
updated-dependencies:
- dependency-name: burnett01/rsync-deployments
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-06-01 15:46:14 +02:00
Stefan Agner
70dd90adef Linux: Update kernel 5.15.44 (#1951) 2022-06-01 15:45:15 +02:00
dependabot[bot]
5d94321807 Bump brpaz/hadolint-action from 1.1.0 to 1.5.0 (#1955)
Bumps [brpaz/hadolint-action](https://github.com/brpaz/hadolint-action) from 1.1.0 to 1.5.0.
- [Release notes](https://github.com/brpaz/hadolint-action/releases)
- [Changelog](https://github.com/brpaz/hadolint-action/blob/master/.releaserc)
- [Commits](https://github.com/brpaz/hadolint-action/compare/v1.1.0...v1.5.0)

---
updated-dependencies:
- dependency-name: brpaz/hadolint-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-06-01 14:33:52 +02:00
dependabot[bot]
a39046cb55 Bump actions/stale from 4 to 5 (#1954)
Bumps [actions/stale](https://github.com/actions/stale) from 4 to 5.
- [Release notes](https://github.com/actions/stale/releases)
- [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/stale/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/stale
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-06-01 14:33:03 +02:00
dependabot[bot]
768e16210b Bump actions/checkout from 2 to 3 (#1953)
Bumps [actions/checkout](https://github.com/actions/checkout) from 2 to 3.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v2...v3)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-06-01 14:32:52 +02:00
dependabot[bot]
3110b044eb Bump actions/github-script from 4 to 6 (#1952)
Bumps [actions/github-script](https://github.com/actions/github-script) from 4 to 6.
- [Release notes](https://github.com/actions/github-script/releases)
- [Commits](https://github.com/actions/github-script/compare/v4...v6)

---
updated-dependencies:
- dependency-name: actions/github-script
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-06-01 14:29:02 +02:00
Naveen
26748d5c9b Enable dependabot for github-actions (#1947)
This should help with keeping the GitHub actions updated on new releases. This will also help with keeping it secure.

Dependabot helps in keeping the supply chain secure https://docs.github.com/en/code-security/dependabot

GitHub actions up to date https://docs.github.com/en/code-security/dependabot/working-with-dependabot/keeping-your-actions-up-to-date-with-dependabot

https://github.com/ossf/scorecard/blob/main/docs/checks.md#dependency-update-tool
Signed-off-by: naveen <172697+naveensrinivasan@users.noreply.github.com>
2022-06-01 14:20:15 +02:00
Stefan Agner
0c9cfde907 Make NTP dispatch script executable (#1798) (#1933)
* Make NTP dispatch script executable (#1798)

* Address shellcheck issues
2022-05-19 21:47:27 +02:00
Stefan Agner
4a85304427 Bump buildroot (#1932)
* buildroot de7aa15c65...2eebdbad5c (1):
  > package/openvmtools: Allow build on AArch64
2022-05-19 18:02:11 +02:00
Stefan Agner
382e253e5a Avoid using simplefb for generic-x86-64 to fix boot crashes (#1920) (#1930) 2022-05-19 11:24:11 +02:00
Stefan Agner
dc41cd8b86 Align GRUB2 disk read buffers to block size to fix boot issues (#1912) (#1929) 2022-05-19 11:24:02 +02:00
Stefan Agner
9e4cf3de68 Linux: Update kernel 5.15.41 (#1928) 2022-05-19 10:57:07 +02:00
Jens Maus
48a9b6162a Updat generic_raw_uart packeg to 1.26 to fix issues with HB-RF-USB-2 and HB-RF-ETH (#1927) 2022-05-19 09:15:04 +02:00
Stefan Agner
e2b9a7fef8 Add NVMe boot support to Generic AArch64 (#1050) (#1918) 2022-05-19 01:00:43 +02:00
Stefan Agner
756a9feb00 Add open-vm-tools to AArch64 for better VMware support (#1050) (#1915)
* Add open-vm-tools to AArch64 for better VMware support (#1050)

* Bump buildroot

* buildroot 666868435d...de7aa15c65 (1):
  > package/openvmtools: bump version to 11.3.5
2022-05-19 01:00:36 +02:00
Greg Kroah-Hartman
da74988378 Linux: Update kernel 5.15.40 (#1907)
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-05-18 01:15:00 +02:00
Jens Maus
1828ac0bb5 Update qemu-guest-agent to 7.0.0 for improved agent functionality (#1904) 2022-05-16 11:31:35 +02:00
Jens Maus
7b0f593a93 Update RPI-RF-MOD/HM-MOD-RPI-PCB/HmIP-RFUSB related packages (#1901) 2022-05-16 11:30:00 +02:00
sol
e7e7c7a9ba Add support for rtl8821cu WiFi Dongle (#1899)
* Add rtl8821cu driver

* buildroot ee56159464...666868435d (1):
  > Merge pull request #2 from s-ol/fix-usb_modeswitch-systemd

* Add rtl8821cu support to all boards

Signed-off-by: s-ol <s+removethis@s-ol.nu>
Co-authored-by: Stefan Agner <stefan@agner.ch>
2022-05-16 11:26:05 +02:00
Stefan Agner
a1261f89a1 Add support RTL88x2BU USB WiFi adapters to OVA (#1903) (#1906) 2022-05-16 11:14:08 +02:00
Stefan Agner
02dff04212 Shutdown immeaditly on ACPI Power Button events (#1896) (#1898)
For phyiscal hardware the default Power Button action has been disabled
to avoid accidentally power down the machine.

However, for virtual machine this method is often used to shutdown the
virtual machine gracefully. Use the regular power settings for virtual
machines.
2022-05-16 10:58:30 +02:00
Stefan Agner
e5754a5d29 Bump OS release version to 9 2022-05-11 17:06:32 +02:00
Stefan Agner
3c5ba17b58 Fix boot issue on Khadas VIM3 (#1894)
Make sure pin controller is enabled.
2022-05-11 10:36:48 +02:00
Stefan Agner
925984c09f Improve GRUB2 boot to also adhere UEFI spec (#1830) (#1893) 2022-05-11 01:51:30 +02:00
Stefan Agner
ba8bda73fa Fix Bluetooth on ASUS Tinker (#1891) (#1892)
* Use upstream Linux driver for Bluetooth on ASUS Tinker

* Drop unnecessary Bluetooth initialization systemd service

Bluetooth is now entirely handled by the kernel.
2022-05-11 01:51:19 +02:00
Stefan Agner
4a42d578fe Linux: Update kernel 5.15.38 (#1890) 2022-05-10 23:29:55 +02:00
Stefan Agner
e98edce5d3 Extend USB storage quirks for Raspberry Pi (#1883)
Add StarTech.com SATA to USB Cable - USB 3.0 to 2.5" SATA III Hard Drive
Adapter.
2022-05-05 18:49:36 +02:00
Stefan Agner
42d4b5f2a2 Linux: Update kernel 5.15.37 (#1882) 2022-05-05 16:53:41 +02:00
Stefan Agner
fdf7823887 Fix booting on certain UEFI systems (#1830) (#1881) 2022-05-05 16:53:26 +02:00
Stefan Agner
87319b6e29 Recreate defconfigs using savedefconfig target (#1876)
* Recreate defconfigs using savedefconfig target

Buildroot allows to generate minimal defconfigs using the savedefconfig
target. Regenerate all our configurations so they all look alive and are
minimalistc.

* Fix generic_aarch64_defconfig
2022-04-27 22:52:15 +02:00
Stefan Agner
d284a1dee7 Small Yellow improvements (#1875)
* Enable additional LED triggers

* Improve Yellow device tree

Fix soundcard name and use BTN_1 as key code.

* Add input-event-daemon configuration

Add minimal input-event-daemon configuration to avoid the default
configuration taking effect. This minimal configuration triggers
the USB configuration import on button press.
2022-04-27 22:51:55 +02:00
Stefan Agner
a9c2eedc71 Handle long-press system keys only (#1874)
Only handle long-press system power, reboot and sleep keys.
2022-04-27 20:33:39 +02:00
Stefan Agner
bd52b7e97b Enable Intel Wireless WiFi DVM Firmware support (#1872) (#1873) 2022-04-27 20:28:17 +02:00
Stefan Agner
46ff688c20 Add Network options required for OpenThread Border Router (#1870)
* Support firewall matching by pkttype

Matching by pkttype is required by the reference OTBR firewall script.

* Add additional Kernel configurations required for OpenThread.
2022-04-27 20:28:02 +02:00
Stefan Agner
be584a8a00 Support NVMe boot on Home Assistant Yellow (#1868) 2022-04-26 00:54:42 +02:00
Stefan Agner
fd7d0253f3 Linux: Update kernel 5.15.35 (#1867) 2022-04-25 14:58:31 +02:00
Stefan Agner
2114dd328f Make container fetching more reliable (#1866)
It seems that the GitHub container registry sometimes returns 503
service unavailable temporarily ("Error fetching tags list: invalid status
code from registry 503"). Use skopeo's retry mechanism to try up to 5
times before failing.
2022-04-25 14:58:22 +02:00
Stefan Agner
e61246f5ba Cleanup Yellow config.txt (#1865) 2022-04-25 14:58:12 +02:00
Stefan Agner
2ac8222f19 Add USB storage quirks for Raspberry Pi by default (#1864)
Add VID/PID of some known problematic USB SSD controllers to USB storage
quirk list. This should make most USB SSD's work with Home Assistant OS
out-of-the box.
2022-04-25 14:58:04 +02:00
Stefan Agner
5bd466c27d Use board information from json for release builds (#1863)
* Use board information from json for release builds
2022-04-25 14:57:53 +02:00
Karol Stosik
56baadc829 Update configuration.md (#1856)
With CR LF my configuration wasn't used at all.
2022-04-25 14:35:01 +02:00
Stefan Agner
91d2092938 Add bugfix in GRUB2 squash4 squashfs code (#1830) (#1858) 2022-04-20 14:07:13 +02:00
Stefan Agner
4310cfe916 Enable file system check for FAT boot partition (#1857) 2022-04-20 14:06:56 +02:00
Stefan Agner
8994a59dfc Add Intel WiFi 22000 series firmwares (#1853) (#1855)
* Bump buildroot

* buildroot 34328de0d9...ee56159464 (2):
  > package/linux-firmware: Add more Intel WiFi 22000 series variants
  > package/linux-firmware: Add Intel WiFi 22000 series

* Add Intel WiFi 22000 series firmwares
2022-04-20 10:41:09 +02:00
Stefan Agner
734323eb1e Bump buildroot (#1854)
* buildroot c62532023d...34328de0d9 (2):
  > package/dhcp: build internal bind tool gen for host (not target)
  > Merge tag '2022.02.1' into 2022.02.x-haos
2022-04-19 17:25:47 +02:00
Stefan Agner
cb495af05a Drop Coral drivers for non-PCIe platforms (#1851) 2022-04-15 16:55:39 +02:00
Stefan Agner
2e03490fe6 Linux: Update kernel 5.15.34 (#1849) 2022-04-15 13:04:45 +02:00
Stefan Agner
f2106c6990 Add out-of-tree Gasket driver for Google Coral support (#1848)
The Google Gasket driver has been removed from the main kernels staging
tree between 5.10 and 5.15 development window. Readd Google's
out-of-tree driver to continiue support Google Coral devices.
2022-04-15 13:04:37 +02:00
Stefan Agner
2c20e5db3e Yellow: Make UART5 the default UART in U-Boot (#1847) 2022-04-14 18:27:06 +02:00
Stefan Agner
aaf2bf8317 Cleanup Buildroot package for Raspberry Pi Bluetooth support (#1846)
* Replace bluetooth-bcm43xx with pi-bluetooth Buildroot package

The new pi-bluetooth packages the scripts and systemd service from
the Raspberry distribution package directly:
https://github.com/RPi-Distro/pi-bluetooth

* Update to latest pi-bluetooth service files

* Update busybox configuration to 1.35.0

The new/deleted configurations are generated automatically, no actual
change in this patch.

* Enable busybox xxd command

The xxd tool is useful for conversion in scripts.

* Prevent start erros on Compute Module 4 without WiFi/Bluetooth
2022-04-14 18:26:06 +02:00
Stefan Agner
38b2eefe0d Bump Home Assistant Yellow to Raspberry Pi Linux kernel 1.20220331 (#1842) 2022-04-11 15:41:14 +02:00
Stefan Agner
4022d797d9 Fix WiFi/Bt firmware deployment for Raspberry Pi 3/4 (#1837) (#1841) 2022-04-11 11:31:23 +02:00
Stefan Agner
7fba67cefe Fix release drafter for release branches (#1836)
* Fix release drafter for release branches

* Add Home Assistant Yellow

* Add Generic aarch64 machine
2022-04-11 11:30:55 +02:00
Stefan Agner
feebc0abe9 Bind mount output directory in release builds (#1834) 2022-04-07 19:56:35 +02:00
Stefan Agner
88aa4c7651 Bump Raspberry Pi kernel/firmware to 1.20220331 (#1833)
* RaspberryPi: Update kernel 5.15.32 - 1.20220331

* Bump buildroot

* buildroot 949a683071...c62532023d (1):
  > package/rpi-firmware: bump version to 1.20220331
2022-04-07 16:51:54 +02:00
Stefan Agner
d9ec603164 Enable IPv6 forwarding by default (#1832)
Enable IPv6 forwarding by default which is useful to run IPv6 based
OpenThread Border Router.

Currently Docker enables IPv4 forwarding by default. Enabling IPv6
support will enable IPv6 routing as well, but we are not ready yet to
enable IPv6 support for Docker at this point.

Enabling IPv6 forwarding should be harmless as there are no IPv6
addresses configured internally and Home Assistant OS is not typically
dual-homed. In cases where it is dual-homed (e.g. VPN), routing is
often used and firewalling is setup as part of that add-on.
2022-04-07 13:24:13 +02:00
Stefan Agner
afff68ca4d Deploy bootcode.bin for Raspberry Pi 2 and 3 (#1831)
* Drop unnecessary rpi-firmware.mk overrides

* Deploy bootcode.bin for Raspberry Pi 2 and 3
2022-04-04 15:44:15 +02:00
Stefan Agner
dceba8bb43 Add Intel WiFi 3945ABG/BG/4965AGN drivers and firmware (#1826) (#1827)
* Enable Intel WiFi 3945ABG/BG/4965AGN drivers and firmware

* buildroot a98c1c31a0...949a683071 (1):
  > package/linux-firmware: Add Intel WiFi 3945ABG/BG/4965AGN
2022-04-04 15:43:38 +02:00
Guglielmo De Concini
f0032a39f2 Enable wext backend for wpa_supplicant to support r8188eu (#1811)
* Enable wext and nl80211 drivers for wpa_supplicant for all devices

* Enable r8188eu module globally and add related firmware to all devices config

Co-authored-by: Stefan Agner <stefan@agner.ch>
2022-04-01 18:39:28 +02:00
Stefan Agner
66303c1078 Use anonymous Docker volume as build output (#1825)
* Use anonymous Docker volume as build output

Use anonymous Docker volumes as build output. This makes sure
every build is using a clean output directory.
2022-03-31 23:43:37 +02:00
Stefan Agner
23e58009f2 Enable nftables packet filtering as modules (#1812) (#1824) 2022-03-31 21:27:38 +02:00
Stefan Agner
6b3440f4fd Set GRUB2 bootloader timeout to 1s (#1823)
This aligns with what we used to have in Barebox. Most of the time the
user is not expected to make a choice, so keeping the timeout short is
sensible.
2022-03-31 21:26:50 +02:00
Stefan Agner
31b9c46a79 Enable 32-bit UEFI support (#1752) (#1819) 2022-03-31 17:48:06 +02:00
Stefan Agner
e8f487f96e Linux: Update kernel 5.15.32 (#1818)
* Linux: Update kernel 5.15.32

* Fix kernel update script
2022-03-31 17:47:54 +02:00
Stefan Agner
9bdd810e76 Yellow: Bump Raspberry Pi kernel to 1.20220308 (#1817)
Update kernel to Raspberry Pi kernel 1.20220308 and rebase Yellow
specific patches.
2022-03-29 01:06:23 +02:00
Stefan Agner
99be958c4f Drop NetworkManager default config (#1813)
* Drop default NetworkManager configuration

NetworkManager will automatically connect using the global defaults.
Also Supervisor today will create a profiles once the user configures
the network explicitly.

* Create system-connection directory
2022-03-25 08:53:30 +01:00
Stefan Agner
59d69209dc Use correct path for tempio (#1807) 2022-03-21 01:06:55 +01:00
Stefan Agner
1b7f9cd42f Bump Raspberry Pi kernel/firmware to 1.20220308 (#1806)
* RaspberryPi: Update kernel 5.10.103 - 1.20220308

* Bump buildroot

* buildroot 8b00576a77...a98c1c31a0 (1):
  > package/rpi-firmware: bump version to 1.20220308
2022-03-21 00:41:21 +01:00
Guglielmo De Concini
a9ea934edc Add RTL_81XX firmware to raspberry pi devices (#1804) 2022-03-21 00:41:08 +01:00
redgryphon
f62fee2ff7 Add support for NTP configuration via DHCP (fixes #689) (#1798)
* Add support for NTP configuration via DHCP.

* Default fallback NTP pool is the Cloudflare's one
2022-03-21 00:40:43 +01:00
Stefan Agner
616c406e8e Use tempio to generate RAUC configuration files (#1797)
* Add tempio host package

tempio is a template helper using Go's template engine and sprig
functions.

* Use tempio to generate rauc manifest

* Use tempio to generate rauc system.conf
2022-03-17 20:28:40 +01:00
Stefan Agner
dde7a7b809 Revert "Remove git submodules before git checkout (#1611)" (#1799)
This reverts commit ff07728fa3.

Removing the .git file from the git submodule is problematic when
updating buildroot: Files deleted stay present in the buildroot
directory (since their origin is no longer known).

The workaround has been introduced to allow building non-git submodule
releases (rel-6) on the same runners. Since rel-7 uses git submodule and
we stay with git submodule for the forseeable future, remove this work
around.
2022-03-17 13:40:02 +01:00
Stefan Agner
829b5941e1 Update to Buildroot 2022.02 (#1781)
* Update board configurations for Buildroot 2022.02

* Bump buildroot

* buildroot 962ff8c0d4...8b00576a77 (3445):
  > Revert "package/systemd: set cgroups default-hierarchy to unified"
  > package/linux-firmware: Add Broadcom BNX2 firmware
  > package/rpi-firmware: bump version to 1.20220120
  > package/linux-firmware: add rtl8761b/rtl8761bu firmware
  > package/docker-proxy: bump version to 64b7a4574d14
  > network-manager: wpa_supplicant
  > Update for 2022.02
2022-03-17 12:26:54 +01:00
Stefan Agner
4390fa7acd Add IP set support for iptables (#1778) (#1780) 2022-03-16 15:38:34 +01:00
Stefan Agner
62de5f53a8 Improve OS 8 GRUB upgrade (#1793)
* Drop unnecessary device tree utilities

They have been used for Barebox which uses device tree to configure the
state storage and its location. With the change to GRUB the tools are no
longer required.

* Determine manual GRUB update depending on installed tools

Manually update the GRUB environment if no grub environment tools are
installed. This makes a upgrade work even after a previous downgrade (in
that case a grubenv file might still be present in the UEFI ESP).
2022-03-16 15:38:18 +01:00
Stefan Agner
bf0aa61d87 Bump Khadas VIM3 to Linux 5.15.25 (#1779) 2022-03-02 15:35:42 +01:00
Stefan Agner
7ca62cb53a Fix Linux kernel 5.15 bump fallout (#1777)
* Add generic-aarch64 to the list of Kernels

* Bump buildroot

* buildroot 8bbb32c16a...962ff8c0d4 (1):
  > package/rtl8812au-aircrack-ng: bump version to 3a6402e

* Fix kernel version for Raspberry Pi kernel based boards
2022-03-02 12:16:22 +01:00
Stefan Agner
cd87324452 Don't fail update even if files are missing (#1776)
Don't fail the boot slot update even if files are missing in the current
boot directory.
2022-03-02 11:44:56 +01:00
Stefan Agner
de21729578 Update to latest Linux LTS kernel 5.15.25 (#1774)
* Linux: Update kernel 5.15.25

Use highest available kernel version in Buildroot 2021.08 (5.13)

* Update Hardkernel patches to Linux 5.15

* Update generic-x86-64/ova kernel config/patches for 5.15

* Drop Intel e1000e Sourceforge driver

The driver has been discontinued sometime last year. The main reason the
out-of-tree kernel has been enabled was for support for the i219-V
network chips which meanwhile are supported in mainline.
2022-03-01 23:40:25 +01:00
Stefan Agner
fc0f1e20d5 Fix GRUB2 update using post-install hook (#1770)
* Use shell functions for install hooks

* Use post-install hook to initialize GRUB2 bootloader env

Unfortunately the boot name to be updated (RAUC_SLOT_BOOTNAME) is not
available when updating the "boot" slot. Instead, initialize the boot
slot in a kernel post-install slot.
2022-02-28 16:49:34 +01:00
Stefan Agner
22f5a83dcc Fix migration from Barebox GRUB for OVA (#1769) 2022-02-28 00:17:49 +01:00
Stefan Agner
f509e9ce5d Shutdown HA CLI properly (#1768)
Drop IgnoreOnIsolate to make sure the service is shutdown during
shutdown.
2022-02-25 19:17:57 +01:00
Stefan Agner
381026758a Fix migration from Barebox GRUB (#1767)
* Fix migration from Barebox GRUB

Create GRUB env which defaults to the boot slot we are updating to. This
makes sure that the newly installed OS version will be booted on next
reboot even if installed on boot slot B.
2022-02-25 19:17:49 +01:00
Stefan Agner
5a409ec0ec Linux: Update kernel 5.10.102 (#1765)
* Linux: Update kernel 5.10.102
2022-02-24 13:42:30 +01:00
Stefan Agner
d1cc7394b5 Use GRUB bootloader for all UEFI platforms (#1762)
* Use GRUB bootloader for all UEFI platforms
* Introduce and use file_env command
* Compress squashfs for aarch64 as well
2022-02-24 13:42:17 +01:00
Stefan Agner
b0bbe70315 Bump U-Boot to 2022.01 (#1761) 2022-02-24 13:22:21 +01:00
Mark Dietzer
0f4016c180 Add support for AArch64/ARM64 EFI architecture (#1757)
* Add AArch64/ARM64 EFI boot support (for QEMU and some boards)
* Allow GRUB to load cmdline.txt-like
* Enable qcow2/vmdk disk images

Co-authored-by: Stefan Agner <stefan@agner.ch>
2022-02-23 10:42:02 +01:00
kyangk
81b3bc8787 Add support for RTL88x2BU USB WiFi dongles (#1742)
* buildroot: package/rtl88x2bu: add rtl88x2bu package

Signed-off-by: Kevin Yang <kangyang@google.com>
Co-authored-by: Stefan Agner <stefan@agner.ch>
2022-02-21 17:32:23 +01:00
Stefan Agner
061a6e9860 Add Intel WiFi driver fix to avoid crash on Intel NUC systems (#1739) (#1745) 2022-02-08 16:13:13 +01:00
Stefan Agner
c29f95678f Linux: Update kernel 5.10.98 (#1744) 2022-02-08 16:13:03 +01:00
Calvin Vette
fed57ec5a3 network.md doc - add WiFi example with caveat (#1719)
Add example command to enabling WiFi with note about caveat.

Co-authored-by: Stefan Agner <stefan@agner.ch>
2022-02-08 14:41:34 +01:00
Stefan Agner
d9f463322b Add Broadcom BNX2/BNX2X firmware (#1732) (#1735)
* buildroot e2ac9b528a...8bbb32c16a (1):
  > package/linux-firmware: Add Broadcom BNX2 firmware

* Add Broadcom BNX2/BNX2X firmware (#1732)

Signed-off-by: Stefan Agner <stefan@agner.ch>
2022-02-02 16:57:32 +01:00
Stefan Agner
6d75b47865 Linux: Update kernel 5.10.96 (#1736) 2022-02-02 16:41:36 +01:00
Stefan Agner
feb045b32d Bump raspberry pi kernel firmware to 1.20220120 (#1731)
* Bump buildroot

* buildroot 3cedcad616...e2ac9b528a (1):
  > package/rpi-firmware: bump version to 1.20220120

* RaspberryPi: Update kernel 5.10.92 - 1.20220120
2022-01-26 13:53:38 +01:00
Jens Maus
c1bd178021 Integrate dual HomeMatic+HomeMatic IP support for HmIP-RFUSB (#1683)
* updated generic_raw_uart to latest version which comes with dualcopro
support for the HmIP-RFUSB usb rf-sticks by eQ3/ELV.

* remove 99-hmip-rfusb.rules to keep a HmIP-RFUSB device free from being
occupied by the cp210x driver but use the new generic_raw_uart support
instead allowing for advanced dualcopro support for HomeMatic/BidCos-RF
and homematicIP support in parallel.
2022-01-26 13:53:16 +01:00
Stefan Agner
260a7c7d05 Update issue template with directions to the new locations (#1727) 2022-01-26 11:56:06 +01:00
Stefan Agner
5291fbf999 Fix reboot on ODROID-N2 (again) (#1722)
To make HDMI CEC work, we have to compile MESON_DRM as a module
(see #1717). However, this essentially reverts #1347, which fixed the
reboot problem by compiling the driver into the kernel.

Hence we need to reintroduce the earlier fix from #1345, which reverts
the offending commit causing the reboot problem.
2022-01-16 12:44:42 +01:00
Stefan Agner
a5949bbc0b Remove reference to non-existing patch directory to fix ODROID-C2 build (#1718) 2022-01-15 14:50:56 +01:00
Stefan Agner
d17a739f48 Fix HDMI CEC on ODROID-N2(+) (#1717)
Build HDMI graphics driver as a module which seems to fix HDMI CEC on
ODROID-N2(+).
2022-01-15 14:41:39 +01:00
Stefan Agner
3c582190d6 Add Intel SoC sound drivers (#1690) (#1715) 2022-01-13 17:38:16 +01:00
Stefan Agner
186107e089 Disable DW-HDMI CEC driver to avoid non-working CEC device file (#1216) (#1714)
The DW HDMI CEC implementation is not used in Amlogic SoC. Disable the
driver to avoid it claiming /dev/cec0 and getting used by user space
tools.

See also: https://lore.kernel.org/all/20210416092737.1971876-3-narmstrong@baylibre.com/T/
2022-01-13 17:37:48 +01:00
Stefan Agner
4399b28d2f Linux: Update kernel 5.10.91 (#1713) 2022-01-13 17:37:34 +01:00
Stefan Agner
c1acccf30e Home Assistant Yellow fixes (#1709)
* Fix enable USB host mode kernel patch

Update to a new patch which applies the device tree change such that the
USB controller actually gets enabled.

* Update Home Assistant Yellow board config

Update config to match changes which have been made to other baords as
well.
2022-01-12 11:11:02 +01:00
Stefan Agner
51b8836af0 Rename Home Assistant Amber to Yellow (#1708)
* Rename Home Assistant Amber to Yellow

Rename the board from "amber" to "yellow" as Home Assistant Yellow is
the official name now.

* Add Home Assistant Yellow to the build matrix
2022-01-07 18:14:25 +01:00
Stefan Agner
76d4485639 Bump buildroot (#1700)
* buildroot 4c6c8fb767...3cedcad616 (1):
  > Merge tag '2021.08.3' into 2021.08.x-haos
2021-12-29 16:49:35 +01:00
Stefan Agner
abfee18363 ODROID XU4: Update U-Boot on eMMC boot partition (#1699)
* ODROID XU4: Update U-Boot on eMMC boot partition

Update the U-Boot on the eMMC boot partition if present. Only write the
first megabyte as the eMMC boot partition might be smaller than the SPL
image and only the first megabyte is occupied by FW/BL1/BL2/TZSW (see
https://wiki.odroid.com/odroid-xu4/software/partition_table#tab__odroid-xu341).
2021-12-29 15:19:31 +01:00
Stefan Agner
5d2154cc97 Update Raspberry Pi kernel and firmware to oldstable_20211201/71bd3109/Linux 5.10.63 (#1119) (#1696)
* Bump buildroot

* buildroot 907739ed48...4c6c8fb767 (1):
  > package/rpi-firmware: bump version to 71bd3109

* RaspberryPi: Update kernel 5.10.63 - oldstable_20211201

* Add Raspberry Pi Zero 2 W device tree
2021-12-28 15:58:18 +01:00
Stefan Agner
24615739ea Use LSI Logic SCSI controller (#1695)
* Use LSI Logic SCSI controller in vmdk descriptor as well

For some reason, the vmdk disk format's descriptor contains the
controller type as well. By default, qemu-img sets it to "ide", which
seems not optimal especially for VMware's ESXi. Set adapter type to
commonly supported "lsilogic".

* Move ova image generation to hdd-image.sh
2021-12-27 14:58:27 +01:00
Stefan Agner
55c9b54b13 Check if Busybox supports oflag (#1692) (#1694)
* Check if Busybox supports oflag

It seems that Busybox' dd shipped with OS release 5 and earlier does not
support oflag. Check if the flag is supported before making use of it.

* Exit if a command in the update scripts returns an error

This makes sure that the update isn't marked as successful in case there
is an error in the update script.
2021-12-27 14:58:19 +01:00
Stefan Agner
580e541f77 Linux: Update kernel 5.10.88 (#1693) 2021-12-27 14:58:11 +01:00
Łukasz Szeremeta
7ed97e89a3 Devices description update (#1684)
* Devices description update

Updating the list of supported devices according to https://www.home-assistant.io/installation/

* Intel NUC -> Generic x86-64 (e.g. Intel NUC)

* Remove unsupported Raspberry Pi and Raspberry Pi Zero
2021-12-24 11:08:28 +01:00
Stefan Agner
1e94f9a79e Adjust ova to support VMware ESXi (#826) (#1674)
* Use OpenSSL to generate OVA manifest file (#826)

It seems that sha256sum adds a space after the hash algorithm which
causes "Invalid OVF checksum algorithm" on certain VMware virtualization
products.

Using OpenSSL avoids the space and makes the manifest file compatible
wiht VMware products.

* Use Buildroot provided OpenSSL binary

* Use SCSI controller by default
2021-12-15 12:11:26 +00:00
Stefan Agner
b7a7805262 Re-upload rebuilt files (#1676)
Make sure to overwrite existing files on upload. This allows to trigger
rebuilds and have the latest builds on the os-builds server.

Note: When using GitHub Actions, the release/ directory is cleared at
the beginning (by the checkout action, which has the clean option set
by default which also causes files in .gitignore to be deleted).
2021-12-14 21:59:27 +00:00
Stefan Agner
19a135edac Avoid race condition when fetching containers during build (#1671)
* Avoid race condition when fetching containers during build

So far only a single builder was active for each architecture. This
toghether with the naming scheme to include architecture/machine name
made sure that an image could only be fetched or used by a single
builder.

However, since most systems are now aarch64, multiple runners are now
active for a single architecture. This makes it necessary to lock
fetching/coping of container images to avoid race conditions.
2021-12-13 15:43:42 +00:00
Stefan Agner
c99927f3c4 Add patch for iwlwifi to fix beacon timeout (#1655) (#1670)
Allow to configure missed beacons using the iwlwifi.beacon_timeout
kernel parameter.
2021-12-13 12:52:29 +00:00
Stefan Agner
f5be7693de rtl8812au: use buildroot provided aircrack-ng driver (#1660) (#1669)
Use rtl8812au driver provided by buildroot. This uses a newer verison of
the v5.6.4.2 branch which works with newer kernel and seems to be the
recommended branch.

Note: It seems that our buildroot package currently fails to properly
deploy the 88XXau.ko kernel module. Instead of fixing our version, just
move to the buildroot version.
2021-12-13 12:52:13 +00:00
geftactics
a4be500bf9 Update download URL for package intel-e1000e (#1668) 2021-12-13 11:30:03 +00:00
Stefan Agner
cc0d4f8b62 Linux: Update kernel 5.10.83 (#1658) 2021-12-03 15:44:08 +00:00
Alexander Reinert
26c36a8caf Updated to latest generic_raw_uart package (#1653) 2021-12-03 15:05:43 +00:00
Stefan Agner
b5c9c9df22 Enable Broadcom and Atheros Ethernet drivers (#1650) (#1651) 2021-11-14 01:36:21 +01:00
Stefan Agner
19616b05d7 Update Linux kernel patches for Home Assistant Amber (#1649)
* Update Linux kernel patches for Home Assistant Amber

Fix user LED polarity. Also rebase the patchset ontop of the Raspberry Pi
kernel 1.20211029.

* Add RTC as well
2021-11-13 16:06:16 +01:00
Stefan Agner
3f28023dc4 Bump OS release version to 8 (#1648) 2021-11-13 16:05:57 +01:00
Stefan Agner
2b34503524 Update Raspberry Pi kernel and firmware to 1.20211029/Linux 5.10.63 (#1645)
* Bump buildroot

* buildroot a46737692c...907739ed48 (1):
  > package/rpi-firmware: bump version to 1.20211029

* RaspberryPi: Update kernel 5.10.63 - 1.20211029
2021-11-11 12:10:21 +01:00
Stefan Agner
b1f6c3a87a Bump buildroot to 2021.08.2 (#1643)
* buildroot 5b5dff3136...a46737692c (1):
  > Merge tag '2021.08.2' into 2021.08.x-haos
2021-11-10 22:53:43 +01:00
Stefan Agner
d065287acd Linux: Update kernel 5.10.78 (#1642) 2021-11-10 22:08:33 +01:00
Stefan Agner
cb8b2e3f5f Drop Raspberry Pi 1/Zero W support (#1638)
These boards support the rather ancient ARMv6 architecture only. We
officially stopped supporting them already two releases ago, its time to
say goodbye.
2021-11-10 14:50:37 +01:00
Stefan Agner
1638097485 Use GitHub issue form (#1637)
* Use GitHub issue form

Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2021-11-09 14:28:16 +01:00
Stefan Agner
b1c59f4f6e Add label action workflow (#1631)
* Add label action workflow
2021-11-05 10:17:41 +01:00
Stefan Agner
5fd943c936 Expose systemd-journal-gatewayd to Supervisor (#1627)
* Add systemd-journal-remote to the image

This allows to access journald's log from within Supervisor and expose
more system logs to users.

* Allow to access systemd-journal-gatewayd from Supervisor

Create a systemd-journal-gatewayd.socket service using a Unix socket and
bind mount it into the Supervisor container. This allows to query
systemd-journald from Supervisor directly.
2021-11-04 15:38:35 +01:00
Stefan Agner
e63aa1a5f4 Update Linux kernel patches for Home Assistant Amber (#1626)
Support the user LED available on the latest revision of the PCB. Also
rebase the patchset ontop of the Raspberry Pi kernel 1.20210928.
2021-11-03 00:54:15 +01:00
Stefan Agner
06a1c21b82 Support Realtek 8152/8153/8156 USB Ethernet adapter (#1604) (#1625)
* Bump buildroot

* buildroot 73991f0fee...5b5dff3136 (1):
  > package/linux-firmware: Add RTL8152/8153/8156 firmware

* Enable Realtek 8152/8153/8156 USB Ethernet adapter support

Enable kernel driver and install firmware for Realtek USB Ethernet
adapter. While at it, also enable some other common USB Ethernet
adapters which don't require firmwares.
2021-11-02 23:53:48 +01:00
Pascal Vizeli
8c1ff000f0 Simplify AppArmor with new OS-Agent SU (#1622) 2021-11-01 15:24:28 +01:00
Stefan Agner
8058392043 Compile Btrfs support as a module (#1623)
We don't use Btrfs as root file system, so there is no need to have it
compiled in by default.
2021-11-01 14:33:42 +01:00
Stefan Agner
6a8b69f793 Update Raspberry Pi kernel and firmware to 1.20211007/Linux 5.10.63 (#1618)
* RaspberryPi: Update kernel 5.10.63 - 1.20211007

* Bump buildroot

* buildroot 5ffdf6ccc5...73991f0fee (1):
  > package/rpi-firmware: bump version to 1.20211007
2021-10-28 10:50:24 +02:00
Stefan Agner
fe4468d789 Reintroduce systemd patches to fix hostname configuration (#1617)
Even though upstream changed the way hostname gets set, it still
requires changes to make it work on a bind mounted /etc/hostname file.
2021-10-28 01:39:16 +02:00
annuges
323cba6777 Add support for Btrfs (#1612)
Add support for Btrfs file system to the kernel to allow host OS and Add-ons to mount external disks formatted with it.
2021-10-28 01:35:37 +02:00
Stefan Agner
ff07728fa3 Remove git submodules before git checkout (#1611)
If a git submodule is converted to a regular git directory (e.g. when
moving from dev -> rel-6 branch), the directory is not properly cleaned
by the checkout action.

Remove the git submodule .git files which makes sure that git properly
reinitialize subdirectories, even if they have been a submodule before.

See also: https://github.com/actions/checkout/issues/624
2021-10-27 11:02:24 +02:00
Stefan Agner
e83e6f4712 Add Amber as new machine (#1569)
* Add Amber machine

Introduce a new machine for Amber. Store it under Raspberry Pi boards
since Amber is based on the Raspberry Pi Compute Module 4. This way we
can reuse existing scripts.

* Add kernel patches for Amber

Add kernel patches which add a custom device tree for Amber.

* Add device wipe support via GPIO button

Allow to wipe the device by pressing and holding the red button.

* Enable serial console by default

Enable serial console on the on-board USB-to-UART adapter as well as on
the GPIO header.

* Use 64-bit mode by default

Support only 64-bit for Amber, it is mature enough.
2021-10-22 11:25:50 +02:00
Stefan Agner
c7ec9468c0 Remove developer documentation (#1580)
Remove developer documentation in favor of the developer docs website.
2021-10-21 16:57:01 +02:00
Stefan Agner
b72acfa648 Synchronize Raspberry Pi config.txt with Raspberry Pi OS (#1601)
It seems that Raspberry Pi OS by default applies an overlay for
Raspberry Pi 4. Apply this change to the HAOS config.txt as well.
2021-10-19 01:43:59 +02:00
Stefan Agner
74fe7d4cb8 Make AppArmor independent of Supervisor service (#1592)
Currently the hassos-apparmor.service wants the
hassos-supervisor.service and vice-versa. This is unnecessary and leads
to activation of hassos-supervisor.service when reload/restart
hassos-apparmor.service (Supervisor is doing that on startup).

Make hassos-apparmor.service independent and add dependency as well as
ordering from hassos-supervisor.service side.
2021-10-15 01:36:02 +02:00
Stefan Agner
ce566167f2 Improve OS logging (#1590)
* Avoid duplicate log entries

So far the hassos-supervisor.service starts the hassos-supervisor script
which in turn attaches to the Supervisor container. This causes stdout
and stderr to be forwarded to the service unit, which in turn logs it in
the journal.

However, Docker too logs all stdout/stderr to the journal through the
systemd-journald log driver.

Do not attach to the Supervisor container to avoid logging the
Supervisor twice.

Note that this no longer forwards signals to the container. However, the
hassos-supervisor.service uses the ExecStop= setting to make sure the
container gets gracefully stopped.

* Use image and container name as syslog identifier

By default Docker users the container id as syslog identifier. This
leads to log messages which cannot easily be attributed to a particular
container (since the container id is a random hex string).

Use the image and container name as syslog identifier.

Note that the Docker journald log driver still stores the container id
as a separate field (CONTAINER_ID), in case the particular instance need
to be tracked.
2021-10-13 16:12:05 +02:00
Stefan Agner
b211c653c7 Fix y2038 file system warnings (#1589)
* Bump buildroot

* buildroot 3c5f87185d...5ffdf6ccc5 (1):
  > package/e2fsprogs: Create y2038 capable file systems by default

* Use inode size of 256 bytes for overlayfs

By default older versions of mkfs.ext4 create file systems with inode
size of 128 bytes. This does not allow for 64-bit timestamps, which
leads to y2038 compatibility warnings. Use 256 bytes inodes.
2021-10-13 16:07:13 +02:00
Stefan Agner
53dcfd3134 Fix fallout from Buildroot 2021.08.1 update (#1588)
* Remove dt-utils patches applied upstream

All patches are now applied upstream. With 2021.03.0 release no more
downstream patches are required.

* Bump buildroot to fix linux-firmware build issues

* buildroot f10577b836...3c5f87185d (3):
  > package/linux-firmware: add rtl8761b/rtl8761bu firmware
  > package/linux-firmware: bump version to 20210919
  > Revert "package/linux-firmware: add rtl8761b/rtl8761bu firmware"
2021-10-12 11:49:58 +02:00
Stefan Agner
eed6302ad8 Bump buildroot to 2021.08.1 (#1587)
* Bump to Buildroot 2021.08.1

Move to Buildroot 2021.08.1 using the 2021.08.x-haos branch. Some
patches on the previous branch 2021.02.x-haos have been applied upstream
meanwhile. Others required rather trivial rebasing.

This latest Buildroot release brings new versions of the following
components:
 - glibc 2.33
 - systemd 249.3
 - Networkmanager 1.32.2
 - BlueZ 5.60
 - Docker 20.10.8

The patch "Fix dhcp client" seems not to be necessary anymore. The
directory /var/lib/dhcp seems not in use when NetworkManager invokes
dhclient. It seems the leases which are typically stored in that
directory are managed inside NetworkManager.

* buildroot 2021.08.1..2021.08.x-haos (6)
  > package/rpi-firmware: bump version to 1.20210805
  > package/rpi-wifi-firmware: bump version to 883b726
  > package/linux-firmware: add rtl8761b/rtl8761bu firmware
  > package/docker-proxy: bump version to 64b7a4574d14
  > package/rpi-firmware: Allow to deploy multiple firmware files
  > network-manager: wpa_supplicant

* Bump Raspberry Pi Bluetooth helper scripts

With the update to Buildroot 2021.08.1, the bthelper fails with an error
org.bluez.Error.Busy when trying to power off the device. Presumably this
is a race condition which surfaced due to a change in Bluez 5.60:
348feb005a

Oct 11 14:32:21 homeassistant systemd[1]: Reached target Bluetooth Support.
...
Oct 11 14:32:21 homeassistant bluetoothd[412]: Bluetooth management interface 1.18 initialized
Oct 11 14:32:21 homeassistant systemd[1]: Started Raspberry Pi bluetooth helper.
Oct 11 14:32:21 homeassistant bthelper[417]: Raspberry Pi BDADDR already set
Oct 11 14:32:21 homeassistant bthelper[426]: [58B blob data]
Oct 11 14:32:21 homeassistant bthelper[426]: [59B blob data]
Oct 11 14:32:21 homeassistant bthelper[426]: Failed to set power off: org.bluez.Error.Busy
Oct 11 14:32:21 homeassistant systemd[1]: bthelper@hci0.service: Main process exited, code=exited, status=1/FAILURE
Oct 11 14:32:21 homeassistant systemd[1]: bthelper@hci0.service: Failed with result 'exit-code'.

The latest version of the pi-bluetooth package introduced a sleep before
powering off the device, however, presumably for a different reason:
ae2efdeee8 (diff-609c8a23261988c47afd40be9b012feb1d167de8761c1301e44e1864635c19e3)

Anyways, this latest version seems to also fix the above mentioned race
condition.
2021-10-12 01:08:04 +02:00
Stefan Agner
e0e270df1a Wait for Docker daemon (#1586)
Sometimes the first command after starting the Docker daemon container
fails, presumably because the container did not start yet. Wait until
the Docker daemon is ready.
2021-10-11 16:06:36 +02:00
TJ Horner
f012f09d4f Change barebox boot configs to support USB booting (#1575) 2021-10-07 21:43:49 +02:00
Stefan Agner
e819f05927 Fix Compute Module 4 USB driver (#1281) (#1577)
The BCM2711 has two USB 2.0 IPs: A Broadcom XHCI USB 2.0 controller and
a Synopsys DWC2 USB 2.0 Host/Device controller. When USB boot is used
the former is active. Make sure the driver has the correct device tree
compatible.
2021-10-07 14:02:04 +02:00
Stefan Agner
e916d9f93c Move patch to fix U-Boot 2021.10 build (#1576)
We only have a single U-Boot version currently, so there is no value in
storing the patch file in a version specific directory. This makes sure
U-Boot 2021.10 final release also has fileenv support.
2021-10-07 14:01:55 +02:00
Stefan Agner
d8dfa88fb8 Replace Stale Bot with Stale GitHub Action (#1573) 2021-10-06 12:18:38 +02:00
Stefan Agner
565c473a75 Raspberry Pi U-Boot fixes (#1572)
* Add NVMe and XHCI USB driver fix for Raspberry Pi

Add patch which fixes NVMe read reliability and allows to compile the
XHCI USB driver (for Compute Module 4).

* Enable Broadcom XHCI driver for Compute Module 4

The BCM2711 has two USB 2.0 IPs: A Broadcom XHCI USB 2.0 controller and
a Synopsys DWC2 USB 2.0 Host/Device controller. When USB boot is used
the former is active. Make sure U-Boot has the driver built-in for that
IP.
2021-10-05 19:16:16 +02:00
Stefan Agner
a19870947a Bump U-Boot to stable release 2021.10 (#1571) 2021-10-05 19:15:59 +02:00
Stefan Agner
bdc319d3df Use file for cmdline.txt (#1568)
* Remove duplicate config.txt copy statement

* Use static cmdline.txt file

Instead of dynamically creating cmdline.txt use a static version of it.
This aligns with other boot loader/firmware configuration files and makes
it easier to customize the file per board.
2021-10-04 14:38:52 +02:00
Stefan Agner
8d69f395c2 Support board specific RPi firmware configuration (#1567)
Support optional board specific default RPi firmware configuration file
(config.txt). Also rename from boot-env.txt to config.txt since this
file is not read by the U-Boot boot loader but the Raspberry Pi specific
boot firmware.
2021-10-04 11:51:31 +02:00
Stefan Agner
8049dfb30c Bump buildroot (#1565)
* buildroot f0b9df907a...291b4156c7 (2):
  > Merge tag '2021.02.5' into 2021.02.x-haos
  > package/rpi-firmware: bump version to 1.20210831
2021-10-04 10:31:02 +02:00
Stefan Agner
a4edece719 Linux: Update kernel 5.10.70 (#1564) 2021-10-04 10:06:37 +02:00
Stefan Agner
762f098c14 Use skopeo and DIND to download container images (#1561)
* Use skopeo to download container images

Separate container download from image build. This will allow to share
the downloaded images between multiple builds.

We won't store the Supervisor container with the version tag, just with
the latest tag. This allows to simplify the procedure a bit. It seems
there is no downside to this approach.

* Use official Docker in Docker images to build data partition

Instead of building our own Debian based image let's use the official
Docker in Docker image. This avoids building an image for the hassio
data partition and speeds up build as well.

This calls mount commands using sudo to mount the data partition as part
of the buildroot build now. This is not much different from before as
mount has been called as root inside the container, essentially equates
to the same "isolation" level.

* Use image digest as part of the file name

The landing page has no version information in the tag. To avoid
potentially source caching issues, use the digest as part of the file
name.
2021-10-04 10:06:26 +02:00
Stefan Agner
693507aaca Bump build container to Debian bullseye (#1560) 2021-09-30 09:47:20 +02:00
Stefan Agner
b7bbb63a26 Support development builds in pull-requests (#1464)
Use the "run-dev-build" label to trigger a development build. This will
only generate a build for the machines the PR has been tagged with.
2021-09-29 22:04:30 +02:00
Stefan Agner
631c0c5d53 Make sure Intel BT gets built as a module (#1558)
CONFIG_BT_HCIBTUSB selects CONFIG_BT_INTEL. That causes CONFIG_BT_INTEL
to be built-in instead of being built as a kernel module.

When the driver is built-in, loading firmware fails during early boot
with the following error message:
[ 1.058941] bluetooth hci0: Direct firmware load for intel/ibt-17-16-1.sfi failed with error -2

Make sure the driver is built as a module which should fix firmware
loading.
2021-09-29 10:13:16 +02:00
Stefan Agner
55568f597f Bump OS Agent to 1.2.1 (#1559)
This should make the D-Bus method ReloadDevice working and show the
current data disk correctly.
2021-09-29 09:58:15 +02:00
Stefan Agner
7592143322 Add NVMe boot support for RPi Compute Module 4 (#1557)
* Add U-Boot patches for NVMe boot support

Add NVMe to boot order. Fix NVMe support on 64-bit Raspberry Pi devices.
This is useful for Raspberry Pi Compute Module 4 IO Board where a native
NVMe can be plugged in.

* Enable NVMe support for Raspberry Pi 4

Our machine configuration rpi4 and rpi4_64 work on the Compute Module IO
Board. In this configuration a NVMe SSD can be used. Therefor, enable
support for NVMe in the Raspberry Pi 4 configurations.

Note: Regular Raspberry Pi devices will not notice a difference as the
"nvme scan" command will return very quickly and not find a NVMe on the
PCIe bus.

* Use built-in NVMe support in Kernel for NVMe boot support
2021-09-28 10:51:43 +02:00
Stefan Agner
008fb3fb74 Bump to U-Boot 2021.10-rc5 (#1556)
The bump to U-Boot 2021.10-rc5 also makes quite some patches obsolete
since they are already part of U-Boot.

This also removes a patch which disables framebuffer support on
Raspberry Pi: Framebuffer support seems to work fine in todays
U-Boot/Linux combination. It can help debug boot problems on Raspberry
Pi devices. Without the patch framebuffer support will be enabled by
default.
2021-09-28 10:02:52 +02:00
Pascal Vizeli
a7c237f93d Update OS-Agent 1.2.0 & adjust datadisk support (#1554)
* Update OS-Agent & adjust datadisk support

* Update Documentation/partition.md

Co-authored-by: Stefan Agner <stefan@agner.ch>
2021-09-28 09:54:04 +02:00
Stefan Agner
3d42d3690b Add USB stall handling for U-Boot (#1011, #1544) (#1553)
Some USB devices cause the USB stack to get stuck with a stall error.
This adds a patch which recovers from this situation.

This avoids an U-Boot crash when Arduino Mega R3 devices are connected,
which cause an USB stall when trying to read the product string.
2021-09-27 14:44:36 +02:00
Christian Knittl-Frank
1e7cd66165 Fix datactl for NVMe devices (#1550)
Add "p" in partition names ending with digit.

See https://community.home-assistant.io/t/datactl-help/276117 and https://unix.stackexchange.com/a/500910/334933
2021-09-21 00:24:08 +02:00
Stefan Agner
7d187405de Fix hybrid spelling (#1548)
Fix misspelled word "hybrid" for hybrid GPT/MBR partition tables.
2021-09-20 13:44:45 +02:00
Stefan Agner
66d5957310 Wait until Internet is available before starting AppArmor (#1547)
This makes sure that internet connectivity is available to replace the
AppArmor configuration in case the device has been wiped.
2021-09-20 13:44:09 +02:00
Stefan Agner
7ca4e90885 Fix buffer overflow when initialize USB keyboard in U-Boot (#1538) (#1541)
When a USB keyboard is connected to Raspberry Pi 32-bit versions of
U-Boot crashed in certain situations just before booting Linux. This
seems to be cause by a buffer overflow when removing the USB keyboard
before hand-over to Linux.
2021-09-07 21:56:37 +02:00
Stefan Agner
7d5ebfcd31 Linux: Update kernel 5.10.62 (#1536) 2021-09-06 14:05:14 +02:00
Stefan Agner
5af4942607 Add USB DS9490R 1-wire master support (#1513) (#1527)
* Add USB DS9490R 1-wire master support (#1513)

* Add 1-Wire support via GPIO as well
2021-09-04 14:47:02 +02:00
Jens Maus
97dffedbcd Add a buildroot utils/check-package linter check to pr-checks.yml (#1523)
Add buildroot utils/check-package check to the pr-checks.yml workflow.
It checks for common errors/mistakes when creating own buildroot
packages. Also fixed all warnings this utility output for our existing packages.
2021-09-04 10:46:55 +02:00
Stefan Agner
b6b8e3b1dc Fix U-Boot USB initialization failure (#1203, #1490) (#1529)
Add a patch to fix a U-Boot issue causing troubles when enumerating USB
devices (required when booting from USB devices).
2021-09-03 16:33:47 +02:00
Stefan Agner
33280dc4cd Linux: Update kernel 5.10.61 for ODROID-N2 (#1512) (#1528)
* Linux: Update kernel 5.10.61 for ODROID-N2 (#1512)

Update the kernel to 5.10.61 for ODROID-N2 and fix the update script
to update kernel for ODROID-N2 next time too.

* Move ODROID kernel patches to non-kernel version specific directory
2021-09-03 13:44:42 +02:00
Stefan Agner
0d31ddfa43 Add Mediatek MT7601U support (#1526) 2021-09-03 01:18:26 +02:00
Stefan Agner
6bc5c3e5d0 Increase minimal free memory for Raspberry Pis (#1525)
The minimal memory reserved parameter vm.min_free_kbytes should be
between 1-3% according to RedHat.

However, the kernel by default reserves around 3MB (e.g. only 3285 on a
32-bit Raspberry Pi 4 2GB installation). This seems to be too low for
network intensive applications such as ours: Under memory pressure
"page allocation failure" on various orders have been observed.

Raspberry Pi OS uses a fixed value of 16MB. Follow this setting for now.

Note: We cannot set this globally for Home Assistant: x86-64 machines
can have quite a bit more memory, which also requires increased
min_free_kbytes parameter. ODROID-N2 on the other hand uses transparent
huge pages: If enabled, the kernel requires higher min_free_kbytes
values, and sets those also by default (e.g. on ODROID-N2+ with 4GB
memory its set to 22528 by default).
2021-09-03 00:28:33 +02:00
Jens Maus
9582183458 Update eq3_char_loop and rpi-rf-mod package to latest (#1517)
Update eq3_char_loop and rpi-rf-mod package to latest versions. Add proper hash files accordingly.
2021-09-02 09:54:38 +02:00
Jens Maus
57d7059dae updated generic_raw_uart to latest 1.20 version. (#1516) 2021-09-02 09:51:13 +02:00
Stefan Agner
50749052ae Linux: Update kernel 5.10.61 (#1512) 2021-08-26 19:35:25 +02:00
Stefan Agner
222cfff8b8 Bump buildroot (#1511)
* buildroot c92d04a431...f0b9df907a (1):
  > Merge tag '2021.02.4' into 2021.02.x-haos
2021-08-26 19:16:30 +02:00
Stefan Agner
a504869cbb Add Intel WiFi firmwares (#1505) (#1506)
Add all available Intel WiFi firmwares.
2021-08-26 17:54:03 +02:00
Rob VDM
5bb42ff43c Add support for Keyspan USB-Serial adapters (#1509) 2021-08-19 12:00:28 +02:00
Stefan Agner
cbce0f2a2e Add Khadas VIM3 to GitHub Actions (#1498)
* Add Khadas VIM3 to GitHub Actions/Issue Template
2021-08-06 14:45:51 +02:00
Stefan Agner
6c3bcb708f Enable HDMI CEC drivers for ODROID-N2 (#1216) (#1497) 2021-08-06 14:35:41 +02:00
Stefan Agner
ac407a6679 Add Khadas VIM3 (#1473)
* Add Khadas VIM3

Add Khadas VIM3 board support.

Co-authored-by: Pascal Vizeli <pascal.vizeli@syshack.ch>
2021-08-06 14:14:09 +02:00
Stefan Agner
f47b371f23 Fix Ralink RT73 package selection (#1496) 2021-08-06 11:01:43 +02:00
marengaz
ecfb744fe7 Typo (#1495) 2021-08-05 18:32:15 +02:00
Stefan Agner
511169b31b Bump buildroot (#1486)
* buildroot c8de13c113...c92d04a431 (1):
  > package/rpi-firmware: bump version to 1.20210527
2021-07-28 19:13:37 +02:00
Stefan Agner
df167910e1 Add Bluetooth firmware file for Raspberry Pi 400 (#1469) (#1484) 2021-07-28 18:04:50 +02:00
Stefan Agner
965198e8a1 Bump buildroot (#1482)
* buildroot f358c8ba53...c8de13c113 (1):
  > package/rpi-wifi-firmware: bump version to 883b726
2021-07-28 18:02:58 +02:00
Stefan Agner
c8f6c6c2b0 Add firmware for Realtek 87xx/88xx Bluetooth devices (#1427) (#1480) 2021-07-27 23:56:23 +02:00
Stefan Agner
99319542b9 Enable support for Ralink rt27xx/rt28xx/rt30xx and rt73 devices (#1443) (#1479)
This includes device support for RT2870 or RT5572 among many others.
2021-07-27 23:48:33 +02:00
Stefan Agner
2c9ce139d4 Remove duplicated patch file (#1477)
The patch file is already present in the board specific patch directory.
2021-07-27 23:48:25 +02:00
Stefan Agner
720390862a board: hardkernel: Fix random crash on Linux kernel 5.10 and newer (#1476)
Don't fail adding reserved memory when a memory region already has been
reserved (e.g. via  memreserve). This avoids conflicting no-map setting
and makes sure memory is properly reserved.
2021-07-26 17:29:19 +02:00
Stefan Agner
be3afe8b68 Update to Linux 5.10.53 (#1475)
* Linux: Update kernel 5.10.53

Move back to the LTS kernel 5.10.

* Remove ODROID-N2 specific kernel update script
2021-07-26 17:25:01 +02:00
Stefan Agner
bdc9909117 Improve Xen support (#1459)
* Enable some useful kernel configurations

* Add xe-guest-utilities for better Xen support

Add guest utilities and make sure the Xen guest daemon gets started
when running under Xen virtualization.
2021-07-17 02:20:57 +02:00
Stefan Agner
54fa9899eb Avoid using tar when uploading dev builds (#1462)
* Avoid using tar when uploading dev builds

The GitHub action to upload the images to the os-builds server uses
tar before uploading. This creates unnecessary copies and takes a while.
Switch to a GitHub action which uploads the images using rsync instead.
2021-07-14 13:30:29 +02:00
Stefan Agner
c58a568f64 Remove original images when creating zip (#1461)
Other compression methods remove the original image file at compression.
Add the -m (move) command to zip to do the same when compressing with
zip. This saves some space in the builds image/release directory.
2021-07-14 09:51:39 +02:00
Stefan Agner
ad8ee5610d RaspberryPi: Update kernel 5.10.17 - raspberrypi-kernel_1.20210527-1 (#1456) 2021-07-12 16:07:04 +02:00
Stefan Agner
1ef4d43d4e Use sparse file for pre-composed data partition (#1454) 2021-07-12 16:06:53 +02:00
Stefan Agner
d40fa3beea Ignore build output directory (#1453)
Avoid Docker sending the complete build output directory when trying to
build the builder image.
2021-07-09 16:16:34 +02:00
Stefan Agner
b03482996f Drop superseeded CRDA utility (#1452)
The CRDA (Central Regulatory Domain Agent) utility has been used as a
user space helper to load regulatory information for WiFi drivers.
However, since Linux 4.15 the kernel can load the regulatory information
directly from a signed firmware file "regulatory.db".

The regulatory.db file is provided by the WIRELESS_REGDB package, which
has been already installed since its a dependency of CRDA.

Drop CRDA and select WIRELESS_REGDB package explicitly to make sure the
regulatory.db file is present.
2021-07-09 16:12:03 +02:00
Stefan Agner
0c6888cdd0 buildroot: package/lvm2: install dmsetup only (#1449)
LVM2 is not really required in the embedded use case. Opt out of
installing the standard installation which will install only dmsetup.
This requires a backported fix for the lvm2 package to not install
unnecessary systemd services.

Fixes: #1448
2021-07-08 19:43:17 +02:00
Pascal Vizeli
269246c412 Using image name from version file (#1437)
* Using image name from version file

* Use jq for arch/machine substitution

Co-authored-by: Stefan Agner <stefan@agner.ch>
2021-07-08 19:43:03 +02:00
Stefan Agner
6c79ce0f98 Use git submodule for buildroot (#1445)
* Drop buildroot from git repository

Manage buildroot in a separate git repository and use a git submodule
to include it into the HAOS source tree.

This makes it easier to manage changes to buildroot since it can be
managed by git. A buildroot fork repository is being maintained with
the changes we currently have. It makes the buildroot-patches unnecessary
and should make it easier to rebase and upstream changes to buildroot.

* Remove buildroot-patches

Now that buildroot changes are managed in the buildroot fork repository
there is no need to manage patches in a separate directory.

* Initialize git submodule if necessary

* Move build directory to root

This avoids conflict/local modification issues with the buildroot
git submodule.
2021-07-08 16:19:37 +02:00
Stefan Agner
166537bf00 Dockerfile: Add dependencies for make graph-depends/-size targets (#1444)
Install buildroot dependencies so make graph-depends/-size targets can
be used.
2021-07-08 11:51:15 +02:00
Alexander Reinert
c2ac8b5763 Update generic_raw_uart module to latest version (#1430) 2021-06-22 22:50:09 +02:00
Joakim Sørensen
a538ac2c8a Adjust recommended platforms (#1429) 2021-06-22 17:35:30 +02:00
Stefan Agner
e5933c4ed4 Add firmware for RTL8761B/BU devices (#1392) (#1423) 2021-06-20 01:07:56 +02:00
Stefan Agner
94432dad88 Linux: Update kernel 5.10.45 (#1424) 2021-06-20 01:07:37 +02:00
Stefan Agner
9c8172df40 Update buildroot to 2021.02.3 (#1422)
Signed-off-by: Stefan Agner <stefan@agner.ch>
2021-06-19 19:26:55 +02:00
Stefan Agner
96a8ab17c1 Improve kernel update scripts (#1413)
* Improve kernel update scripts

Use separate script for ODROID-N2 for now. Also warn if there are kernel
patches with a specific kernel version number in the source tree: They
typically can be just moved to the new kernel version, but one should
compile check them before committing.
2021-06-19 19:26:44 +02:00
Stefan Agner
f6d639f2bf Use compressed squashfs for kernel (#1418)
* Add squashfs with LZ4 and LZO compression to Barebox

* Add squashfs with LZO compression to U-Boot

* Use squashfs for Linux kernel partition

Generate a squashfs image with LZO compression for the Linux kernel
partition. Adjust the boot scripts to be file system independent commands
to boot from squashfs.
2021-06-17 01:53:35 +02:00
Jens Maus
44cca729f0 Update generic_raw_uart module to latest version (#1417) 2021-06-16 07:50:48 +02:00
Stefan Agner
f39ee8b863 rtl8812au: bump to latest aircrack-ng 5.7.0 version (#1416)
Bump to the latest git version of this out-of-tree driver. This allows
to compile the driver against Linux 5.12.
2021-06-15 08:46:00 +02:00
Stefan Agner
64d3cd88a1 Move ODROID patches (#1415)
The patches for ODROID-C2/C4 don't apply to Linux 5.12 used in
ODROID-N2. Move ODROID-C2/C4 patches to kernel version specific
directory so they don't get applied for ODROID-N2.
2021-06-14 22:10:24 +02:00
Stefan Agner
084636b6cf Bump ODROID-N2 to Linux 5.12 (#1414)
Use the latest Linux stable release 5.12 for ODROID-N2. This allows to
test if we see the random kernel crashes observed with 5.10 in latest
stable 5.12 as well.
2021-06-14 19:04:54 +02:00
Stefan Agner
f7c5154bda Remove unnecessary ODROID-N2 kernel patches (#1412)
For ODROID-N2, release 6 is using Linux 5.9.16. On dev branch we most
likely will move to latest stable and skip 5.10. Drop those unnecessary
patches.
2021-06-14 18:18:55 +02:00
Stefan Agner
9bf12a8648 Use direct I/O for SPL update (#1408)
The rauc hook for the spl slotclass writes to the disk directly. Make
sure the changes do not end up in cache in case the device looses power
or is otherwise not properly rebooted.

Also use the same partition label detection we are using in
hassos-expand.
2021-06-14 11:27:03 +02:00
Stefan Agner
cfb68c5b39 Use file system extents for the kernel partition (#1406)
In the past file system extents have been deactivated to get better
performance in U-Boot. However, the performance issue has been addressed
with commit d5aee659f217 ("fs: ext4: cache extent data") in U-Boot. The
performance should be equal to regular files using no extents.

Enabling extents has an advantage however: Files are stored more
efficently, especially relatively large files like a kernel image. The
impact is not all that big (~100KiB), but worthwhile nonetheless.
2021-06-14 11:26:29 +02:00
Andrew Dunham
cceb5dcf39 pc/ova: support virtio-fs (#1400) 2021-06-14 11:26:12 +02:00
Stefan Agner
582ec82f83 Bump OS release version to 7 (#1404) 2021-06-13 16:51:41 +02:00
Stefan Agner
cb0fa11eeb Fix release builds without dev part in version number (#1396) 2021-06-09 01:18:42 +02:00
Stefan Agner
89c4d57b18 Bump linux to 5.10.42 (#1395)
* Linux: Update kernel 5.10.42

* Fix kernel version documentation
2021-06-08 23:59:31 +02:00
Stefan Agner
a66f3380e3 Enable Wireless Extension for proc API (#1389) (#1394)
The Wireless Extension framework is deprecated, but it seems that the
Wireless Extensions proc API is still popular (/proc/net/wireless).
Enable the minimal set of Wireless Extension to get the proc API.
2021-06-08 23:44:06 +02:00
Marius
288f4a0082 Verify Power Supply Rating (#1393)
* Add paragraph on Power Supply

see: https://jamesachambers.com/raspberry-pi-4-ubuntu-20-04-usb-mass-storage-boot-guide/
2021-06-07 11:51:06 +02:00
Stefan Agner
622cbb806d Restart console on tty1 on exit (#1387) (#1391)
Since we start the HomeAssistant shell directly on tty the service
responsible for starting did not restart the shell on exit. Remove the
RemainAfterExit flag to make sure that the shell restarts on exit.
2021-06-05 15:17:14 +02:00
Herr Frei
5c8a0307fb Add thinkpad_acpi module (#1388)
* Add defconfig entry for thinkpad_acpi module
2021-06-05 15:16:56 +02:00
Stefan Agner
51e80cb7bc Avoid spurious shutdown on ODROID-XU4 (#1385) (#1386)
It seems that the TPU (thermal monitoring) sometimes reports
unreasonable high temperatures, leading the kernel to trigger a thermal
shutdown. Add a patch which filters out such spurious temperature
readings.
2021-06-04 15:20:10 +02:00
Stefan Agner
9e921ed9ad Add additional directories to .dockerignore (#1382) 2021-05-30 21:43:44 +02:00
Stefan Agner
56730adf48 Keep Linux patches for 5.10.37 for other ODROID boards (#1381) 2021-05-27 11:57:26 +02:00
Stefan Agner
22aa316483 Update Barebox to 2021.05.0 (#1380)
* Remove CONFIG_CLOCKSOURCE_EFI configuration

It seems to cause messages like this on some machines:
EFI Event timer too slow freq = 100 Hz

The Barebox efi_defconfig configurationd doesn't enable it either.
Disable it by default as well.

* Enable CONFIG_CMD_ECHO_E to fix menutree

It seems that menutree needs CONFIG_CMD_ECHO_E to properly display the
boot menu.

Also enable other useful commands such as edit or reset.

* Bump Barebox to 2021.05.0
2021-05-27 00:33:34 +02:00
Stefan Agner
d60272b79a Revert ODROID-N2(+) back to use Linux 5.9 (#1379)
Since the move to 5.10 multiple users experience stability issues
leading to random crashes. All reboots follow a SError Interrupt:
[48112.247242] SError Interrupt on CPU5, code 0xbf000000 -- SError
...

Revert back to Linux 5.9.16 for now.
2021-05-27 00:29:20 +02:00
Stefan Agner
068a57763c Enable serial console as well (#1339) (#1378)
Using console focused virtualization environments such as virsh having
a serial console is the easiest way to interact with a virtual machine.
It also saves resources since no video memory needs to be allocated.
Enable serial console besides tty1 by default.

Note: The bootloader as well as the kernel shows its boot messages on
all consoles. However, only the last console is mapped to /dev/console,
which systemd is using to show service startup messages. Putting tty1 as
last console makes sure that systemd messages are still shown on the
console screen.
2021-05-27 00:29:06 +02:00
Stefan Agner
6810659f9b Pass ha command with quotes to CLI container (#1377)
When using quotes currently, they are not passed to HA due to $*. This
doesn't allow to use some commands properly, e.g. snapshot restore with
a passwort with spaces:

```
ha snapshot restore c31f3c93 --password "test test"
...
time="2021-05-26T11:24:19+02:00" level=fatal msg="Error while executing rootCmd: accepts 1 arg(s), received 2"
```

Properly pass all arguments using $@ in quotes.
2021-05-26 14:16:43 +02:00
Stefan Agner
8020671ca6 Drop directories when creating zip file (#1372)
We zip a single file nested in a rather deep directory tree which stems
from the build system. This doesn't need to be exposed to users.
2021-05-25 19:32:42 +02:00
Stefan Agner
0f57b55b4c Add minimal message of the day (#1373)
Add a minimal motd so users know what kind of system they just logged
in. Also add the hint that the Home Assistant CLI is still available
using the command ha.
2021-05-25 14:40:54 +02:00
Stefan Agner
c7909de767 Recreate Supervisor container on OS upgrade/downgrade (#1368)
* Recreate Supervisor container on OS upgrade/downgrade

When the operating system gets upgraded or downgraded the Supervisor
start script might start the Supervisor slightly differently (e.g. with
RT scheduling support). If the container has already been created, a OS
upgrade or downgrade won't recreate the Supervisor container.

* Move startup script version file to /mnt/data
2021-05-19 22:27:16 +02:00
Stefan Agner
c1c6a6ce21 Update buildroot to 2021.02.2 (#1370) 2021-05-19 22:20:50 +02:00
Stefan Agner
111018b911 Remove obsolete Busybox ACPI config (#1369) 2021-05-19 14:41:30 +02:00
Stefan Agner
40b4d5ca2e Start Home Assistant CLI on tty1 without login (#1366)
* Start ha-cli on tty1 instead of a getty

Instead of starting a getty start the ha-cli directly. This will show
the banner right on startup with the important information such as IP
address of the instance or the URL to reach it.

* Use default shell as root shell instead of HA CLI

Instead of using the ha-cli.sh script as login shell use the regular
shell. Amongst other things, this allows to run VS Code devcontainers
remotely via SSH or using scp. The HA CLI is still available using the
`ha` command.
2021-05-19 13:18:02 +02:00
Stefan Agner
25d1f5d7d1 RaspberryPi: Update kernel 5.10.17 - 3a33f11c48572b9dd0fecac164b3990fc9234da8 (#1365) 2021-05-19 09:59:54 +02:00
Stefan Agner
d6a86c29f9 Linux: Update kernel 5.10.37 (#1364) 2021-05-19 09:50:45 +02:00
Stefan Agner
2d3119ef22 Delay Supervisor start until time has been sychronized (#1360)
* Enable systemd-time-wait-sync.service by default

Enable the systemd-time-wait-sync.service by default. This allows to use
the time-sync.target which allows to make sure services only get started
once the time is synchronized.

* Make sure time is synchronized when starting  hassos-supervisor.service

Use the time-sync.target to make sure that the Supervisor gets stsarted
after the time has been synchronized.

* Set timeout for systemd-time-wait-sync.service

Don't delay startup forever in case time synchronization doesn't work.
This allows to boot the system even without Internet connection.
2021-05-12 17:47:42 +02:00
Pascal Vizeli
9dd269d766 Fix NM connectivity URL (#1359) 2021-05-12 14:37:37 +02:00
Ajinkya Bawaskar
3c6897e2cd Update getting_started_development.md (#1355)
Changed name of the repository cloned from `hassos` to `operating-system`
2021-05-09 11:19:51 +02:00
Krzysztof Karol
7afe867fd5 Fix typos in issue template (#1356) 2021-05-09 11:08:47 +02:00
Stefan Agner
779dc0bcb8 Make sure to upload correct image files in release pipeline (#1353)
The images have been renamed from hassos to haos. Make sure to upload
the correct files.
2021-05-07 00:24:21 +02:00
Stefan Agner
70d6252eae Support OS releases with custom dev part (#1352)
Support OS releases (tags) with custom dev part (3rd group of the
release number). This allows to create tagged release candidates with
the form 6.0.rc1.
2021-05-07 00:14:33 +02:00
Jens Maus
9ed200a70e add ODROID-C2/C4/N2/N2+ support for RPI-RF-MOD/HM-MOD-RPI-PCB integration (#1323)
* add ODROID-C2/C4/N2/N2+ support for RPI-RF-MOD/HM-MOD-RPI-PCB integration

* updated rpi-rf-mod package to latest version with dtbo fixes
2021-05-04 20:42:57 +02:00
Stefan Agner
be2cfd7622 Enable UART and I2C on J2 header (#1349)
Enable UART as well as I2C on the J2 header. Also backport the upstream
version of the I2C3/RTC patch.
2021-04-29 23:04:34 +02:00
Stefan Agner
367fc1561b Use upstream SoC version detection (#1348)
With U-Boot 2021.04 we can use the upstream SoC revision detection by
enabling runtime variables and using the "soc_rev" variable.
2021-04-29 22:52:46 +02:00
Stefan Agner
5ac85a4c45 Use built-in Meson DRM driver (#1347)
It seems that the crash of the Meson DRM driver on shutdown can also be
fixed by compiling it in. The driver is also built-in in LibreELEC,
hence this is better tested by the upstream community.

Note the underlying issue seems to be a disabled clock: Since the
introduction of meson_drv_shutdown some registers are touched at a very
late stage. Those clock get disabled in meson_ee_pwrc_shutdown. It seems
that when the driver is built-in, meson_drv_shutdown gets called before
meson_ee_pwrc_shutdown and hence sidesteps the problem.

Note: This increases the kernel by a bit since DRM needs to be built-in
as well. Configure some less common used file systems as modules
(ext3/NFS).
2021-04-29 22:52:27 +02:00
Stefan Agner
3d793dc7ef Drop global patch from Raspberry Pi patchset (#1346)
Since 0001-CMD-read-string-from-fileinto-env.patch is in the global
directory to be applied for U-Boot, drop it from the Raspberry Pi
specific patch directory.
2021-04-29 11:26:55 +02:00
Stefan Agner
b76d55283d Fix reboot issue on ODROID-N2+ on Linux 5.10 (#1345)
In Linux 5.10.24 a regression has been introduced which broke reboot on
ODROID-N2(+). Interestingly the patch should improve reboot stability
for VIM3, which uses the same SoC. However, it seems that in the
ODROID-N2 case, this causes more problems then it fixes. Revert the
offending patch.
2021-04-29 01:31:13 +02:00
Stefan Agner
422bf2d1e1 Add fileenv patch for U-Boot 2021.04 (#1344)
Update of this patch has been missed. Also drop the versions for U-Boot
2020.01 and 2020.10 since they are no longer required.
2021-04-29 01:30:55 +02:00
Stefan Agner
33e0ccb9ce Linux: Update kernel 5.10.33 (#1343) 2021-04-29 01:17:02 +02:00
Stefan Agner
f86fcbd609 Fix shellcheck issues (#1341)
* Fix issue with latest shellcheck version

The latest shellcheck versions use a new error number for non-POSIX
string replacement. Change to ignore this new error number.

* Ignore shellcheck issue about not following sourced files

Newer shellcheck versions also warn when shellcheck does not follow
sourcing of files with known path:
  Not following: ./meta was not specified as input (see shellcheck -x).

We check those files separately so ignore this error for the two scripts
affected.
2021-04-29 01:15:47 +02:00
Stefan Agner
99a4d4ea75 Bump Raspberry Pi firmware to 1.20210303 (#1334) 2021-04-19 23:56:54 +02:00
Stefan Agner
0b1c349a8f Bump Raspberry Pi kernel to 1.20210303-1 (#1333)
* Update docs, the default kernel version is now 5.10

* RaspberryPi: Update kernel v5.10.17 - 623ca2ba45d86eb1b0323637330295c3f8d93c76
2021-04-19 23:56:33 +02:00
Stefan Agner
2a910b0e45 Use zip file format for virtual disk images (#1327)
Virtual Disk images are often used on Windows and/or Mac platforms where
xz is not a widely known file ending and also not supported by dafault.
Use zip which is much better known.

Keep using xz for boards since those are not meant to be extracted by
users but directly used in Etcher. Also keep using xz for qcow2, since
qcow2 is mostly used on Linux platforms where xz is available by default
and zip usually needs an extra package.
2021-04-19 10:53:22 +02:00
Stefan Agner
05ba57e006 Bump Docker to 20.10.6 (#1328)
Bump Docker to latest release 20.10.6. Also make sure to upgrade
docker-proxy with various IPv6 releated features and fixes.
2021-04-15 18:10:56 +02:00
Stefan Agner
56e0d941d0 Use sparse files when generating image (#1326)
Use sparse files instead of files written full of zeros. This speeds up
the image generation process significantly. It also makes sure that
virtual disk image formats are minimal in size.

Note: qemu-img automatically generates sparse files when detecting a
block full of zeros. But this is applied on the write side, after image
convertion: The disk image format itself still thinks the whole image
is allocated, leading to larger image than necessary. Also some output
format seem to regonize chunks of zero and create sparse files themself.

With this change, the raw source image file is a sparse file. This is
regocnized by qemu-img at read time (see block/file-posix.c), and leads
to "native" sparse files in the output format.

Some numbers
- qcow2 1.8G -> 862M (same on-disk size)
- vdi 15G -> 888M (same on-disk size)
- vhdx 30G -> 1.1G (918M -> 861M on-disk size)
- vmdk 1.8G -> 866M (about the same on-disk size)

Obviously this also affects the compressed size. But because there are
still lots of zeros, the difference in compressed size is not that big.
2021-04-15 16:27:02 +02:00
Stefan Agner
2d9540117f script/enter.sh: Exit if there is an error (#1325) 2021-04-15 13:06:43 +02:00
Pascal Vizeli
5cae40c396 Update to OS Agent 1.1.0 (#1319) 2021-04-11 21:35:18 +02:00
Stefan Agner
ae0aeb84f5 Update to OS Agent 1.0.0 (#1317)
* Update to OS Agent 1.0.0

* Use new D-Bus path/interface/object in haos-wipe.service
2021-04-08 20:22:19 +02:00
Stefan Agner
c9d091c1b3 Change OS name from HassOS to HAOS in user visible places (#1316) 2021-04-08 16:01:57 +02:00
Stefan Agner
a52f7ae02c Enable Intel IGC driver for I225-LM/I225-V Ethernet support (#1309) (#1315) 2021-04-08 15:52:29 +02:00
Stefan Agner
366bb0e495 Push dev to dev channel (#1313) 2021-04-08 15:51:59 +02:00
Stefan Agner
aff28ce60e Update buildroot to 2021.02.1 (#1312)
Signed-off-by: Stefan Agner <stefan@agner.ch>
2021-04-08 15:51:24 +02:00
Stefan Agner
40a705bbd3 Linux: Update kernel 5.10.28 (#1310) 2021-04-08 15:51:14 +02:00
Stefan Agner
1e1d10570c Use interface-name to exclude veth (#1314)
* Use interface-name to exclude veth

The type veth is not a valid type (see [1] for how to obtain a list of
valid device types. Use `driver` to filter veth.

Note: It seems that NetworkManager did not manage veth so far, so this
change seems not to be relevant in practice.

Co-authored-by: Pascal Vizeli <pascal.vizeli@syshack.ch>
2021-04-08 15:50:56 +02:00
Stefan Agner
fe1083822d Fix file name of generic-x86-64 defconfig (#1311) 2021-04-08 11:11:58 +02:00
Malachi Soord
b4710290b6 Typo fix in issue template (#1307) 2021-04-07 23:28:33 +02:00
Stefan Agner
bb7964ff02 Fix ODROID-C2 Ethernet on some boards (#1202) (#1305) 2021-04-07 19:21:30 +02:00
Pascal Vizeli
7f934b4470 Use updater instead of config version (#1301) 2021-04-07 15:46:56 +02:00
Jens Maus
0eef6473ba Support for RPI-RF-MOD/HM-MOD-RPI-PCB for HomeMatic/homematicIP communication (#1266)
* add eq3_char_loop package (eQ-3 char loopback kernel module)

* add generic_raw_uart package (low-latency raw UART kernel driver)

* add rpi-rf-mod package 

* add device tree overlay support for RPI-RF-MOD/HM-MOD-RPI-PCB on Raspberry Pi

* enable GPIOLIB and GPIO_SYSFS required for RPI-RF-MOD/HM-MOD-RPI-PCB support.

* add basic RPI-RF-MOD/HM-MOD-RPI-PCB support for ASUS Tinker Board

* add device tree overlay support for ASUS Tinker Board and add
haos-config.txt loading support to U-Boot boot script
2021-04-07 15:17:41 +02:00
Stefan Agner
9c6cb6e1f0 Update to U-Boot 2021.04 (#1300)
* Re-add patches missed with U-Boot 2021.04-rc4 upgrade

Also add patches for Raspberry Pi again.

* Regenerate patches for U-Boot 2021.04

* Update to U-Boot 2021.04
2021-04-07 00:37:41 +02:00
Pascal Vizeli
98ce2bec4a Remove OS mount in favor of os-agent (#1297) 2021-04-07 00:36:56 +02:00
Stefan Agner
1d6ab42f88 Re-add patches missed with U-Boot 2021.04-rc4 upgrade (#1293) 2021-04-06 19:51:07 +02:00
Stefan Agner
dde7f1d073 Bump to latest OS Agent version to support Device Wipe (#1292)
The latest version of OS Agent sets haos.wipe=1 as kernel argument to
trigger a device wipe. Let systemd pickup this kernel command line
argument and start haos-wipe.service.

This rather complex architecture allows to add other triggers in the
future, e.g. a button read in the boot loader.
2021-03-31 23:43:26 +02:00
capstan1
ef25289a6d Update datactl move documentation (#1290)
Add reboot command to the instructions. Also document how to check if data move has been successful.
2021-03-31 23:40:09 +02:00
Stefan Agner
82db02756c Make D-Bus and udisks2 available early (#1291)
* Disable systemd-logind support for udisks2

Currently udisks2 uses systemd-logind to prevent the system from
rebooting or similar operations while udisks operations are ongoing.
Unfortunately this stops us from using udisks2 during early boot since
systemd-logind is not ready at this point. Make the dependency
configureable so we can opt-out of using systemd-logind.

* Make dbus.service/socket and udisks2.service/socket available early

Disable default dependencies. This avoids those services to be ordered
after sysinit.target, and makes them available before local-fs.target
is reached. All mounts like mnt-data.mount are ordered before
local-fs.target, so breaking this dependency allows to use D-Bus before
mounting local file systems.

This seems fine when using the system bus directly from /run (instead of
/var/run, which is anyway a symlink to /run normally). It seems that
udisks misses /var/lib/udisks2 but it seems not to be required for the
features used so far.
2021-03-31 21:46:02 +02:00
Stefan Agner
905aa21e8c Only start the HA CLI if we are in the default.target (#1287)
This makes sure that we always get a Linux shell in other targets such
as the rescue.target.
2021-03-24 19:14:06 +01:00
Stefan Agner
ab19c8c6cf Improve dropbear.service to avoid failed state after stop (#1286)
So far the exit code has been evaluated, which seems to be non-zero even
with a regular term signal. With that systemd assumed the service is in
a failed state, when in fact this seems the regular behavior of dropbear
when shutting it down.
2021-03-24 19:13:43 +01:00
Stefan Agner
fdd8c246dd Add udisks2 dameon and udisks2 OS agent support (#1284)
* Add udisks2 package

Add latest release of udisks2 as a package. Also disable polkit to avoid
excessive dependencies.

* Add udisks2 and os-agent to Home Assistant OS

* Bump OS Agent to latest version with udisks support
2021-03-22 23:43:09 +01:00
Stefan Agner
23fb6b8dd3 Enable Realtek Bluetooth firmwares (#1283)
* Add RTL87xx/RTL88xx Bluetooth firmware

Enable Realtek Bluetooth dongles by adding firmware for RTL87xx and
RTL8xx devices.

* Enable Wireless firmwares for OVA and Generic x86-64 machines

Virtual machines might use hardware pass through functionality to get
direct access to wireless hardware. Add all firmwares we use in Generic
x86-64 image also to the OVA image. Also enable Ralink devices for the
two machines.

* Add RTL87xx/RTL88xx Bluetooth firmwares (#1273)

Add RTL87xx/RTL88xx Bluetooth to all devices without on-board Bluetooth.
2021-03-22 23:37:53 +01:00
Stefan Agner
45abe203f5 Restore AppArmor profile when not present on the system (#1278)
Restore our default AppArmor profile when not present on the system.
This allows to implement factory reset.
2021-03-19 10:53:49 +01:00
Stefan Agner
86cabd3d1a Remove unnecessary avahi-daemon.service configs (#1280)
The avahi-daemon.service has been removed a while ago, this extra
systemd configurations are no longer necessary.
2021-03-19 10:53:32 +01:00
Stefan Agner
8fe1d2ddbe Rename NetworkManager default profile (#1277)
* Rename NetworkManager default profile

Rename the NetworkManager default profile to "Home Assistant OS
default". Improve documentation on how to reset to default
configuration.
2021-03-18 17:35:04 +01:00
Stefan Agner
a15671a530 Remove unnecessary avahi-daemon.service configs (#1279)
The avahi-daemon.service has been removed a while ago, this extra
systemd configurations are no longer necessary.
2021-03-18 16:06:51 +01:00
Stefan Agner
6f512527aa Bump to U-Boot 2021.04-rc4 (#1275)
Bump to the latest U-Boot release 2021.04-rc4. This alows to drop quite
some patches which have been sent to the mailing list or picked from the
mailing list and have been merged upstream now.
2021-03-16 21:36:11 +01:00
Stefan Agner
7e702a2ab2 Clarify network configuration support (#1276)
Clarify what type of network configuration is supported.

Related to: #1262
2021-03-16 12:52:41 +01:00
Stefan Agner
37d2f13e49 Update Buildroot to 2021.02 (#1274) 2021-03-16 11:45:43 +01:00
Stefan Agner
0a2fdf47b3 Add OS agent (#1269)
* Add OS Agent

* Do go vendoring as part of the buildroot build

* Allow to skip confirmation in datactl
2021-03-12 18:00:39 +01:00
Stefan Agner
55f8704523 Update Github Actions to use generic-x86-64 (#1267) 2021-03-11 23:29:21 +01:00
Stefan Agner
19c03729f3 Accept installation with intel-nuc in compatible string (#1265)
* Accept installation with intel-nuc in compatible string

For the OS release 6 intel-nuc gets renamed to generic-x86-64. Since
the machine name is in the OS compatible string we need to make sure
OS release 5 installation can update to release 6 despite the new
machine name.
2021-03-09 23:53:15 +01:00
Stefan Agner
66e5ea3b4b Rename hassos to haos (#1213)
* Change HASSOS_ID from hassos to haos

Use a rauc install-check hook to make this update compatible with OS
releases using hassos in the compatible string.

* Use home-assistant as organization in CPE_NAME

Align with Home Assistant core which uses home-assistant with a dash as
organization in CPE_NAME.
2021-03-09 15:27:12 +01:00
Stefan Agner
28e3b109b7 Rename Intel NUC machine to Generic x86-64 (#1209)
* Rename Intel NUC machine to Generic x86-64

The Intel NUC machine has evolved and supports various x86-64 machines
today. Rename the board.

Note that this does not address the migration issue. This will be
handled separately.

* Update Scripts/Documentation
2021-03-09 15:25:35 +01:00
ryddler
a5256fb2d0 Adding gasket/apex kernel modules so that Google Coral EdgeTPU pcie devices can be used. (#1263) 2021-03-08 11:15:19 +01:00
Stefan Agner
f358f322da Bump Buildroot to 2021.02-rc3 (#1260)
* Rebase patches to Buildroot 2021.02-rc3

* Update Buildroot to 2021.02-rc3

* Declare Kernel headers to be Linux version 5.10 (since they are, and new Buildroot knows about 5.10)
2021-03-04 00:50:33 +01:00
Stefan Agner
b77d633382 Remove the no longer required busybox-acpid service (#1261)
The BusyBox option has been disabled in #1210.
2021-03-04 00:49:04 +01:00
Stefan Agner
cd022e6d5e Update Raspberry Pi to Linux 5.10 (raspberrypi-kernel_1.20210201-1) (#1258)
Move to the new Linux 5.10 based kernel for all Raspberry Pi boards.
This uses the version of the last OS version used in Raspberry Pi OS
raspberrypi-kernel_1.20210201-1.
2021-03-02 15:33:36 +01:00
Stefan Agner
27e6aa60fd Add Ralink rt27xx/rt28xx/rt30xx driver and firmware (#1242) (#1248)
* Add Ralink rt27xx/rt28xx/rt30xx firmware (#1242)

Add Ralink firmware for devices which have the driver enabled. The
firmware's are rather small at 20KiB in total.

* Remove Ralink and other WiFi drivers from Tinker Board

The board has on-board WiFi, no need for Ralink drivers to be enabled.

* Add Ralink WiFi drivers and firmware to ODROID boards
2021-03-01 22:34:49 +01:00
Stefan Agner
dc795cfc51 Update Bluetooth firmware for CYW43455 (Raspberry Pi 3 B+/4) (#1250)
This matches the 1.2-4+rpt8 release of Raspberry Pi OS' bluez-firmware
package. It addresses mainly addresses Spectra fix for CYW43455
(CVE-2020-10370).

Also update the Bluetooth start scripts with CM4 support and some
minor improvements.
2021-03-01 16:40:29 +01:00
Fredrik Erlandsson
4d2229e50b Fix: ovf:id to get Synology VMM detect Guest Agent (#1233) 2021-02-26 18:38:42 +01:00
Stefan Agner
82a40de894 Add --cpu-rt-runtime to allow Docker allocate real-time CPU time (#1235) (#1236)
* Add --cpu-rt-runtime to allow Docker allocate real-time CPU time (#1235)

* Enable Supervisor's CPU bandwith allocation feature (#1235)

Since we have CONFIG_RT_GROUP_SCHED enabled in the Home Assistant OS
kernel the Supervisor needs to enable CPU bandwith allocation for
Add-Ons which need real-time scheduling. Set the appropriate environment
variable.
2021-02-25 18:40:24 +01:00
Stefan Agner
5c17e0974b Don't filter previous releases on dev branch (#1246)
It seems that the release drafter filters commits which have been made
before the last release has been made. If the last release is a
unrelated stable release, this clears the full changelog for the next
major release. It seems `filter-by-commitish` should prevent that.

While at it, also set `commitish` to be dev (which is the default, but
being explicit certainly doesn't hurt).
2021-02-25 15:43:08 +01:00
Stefan Agner
9db5dc7ab8 Fix Bluetooth on ASUS Tinker (#1234)
* Improve ASUS Tinker Board support for 5.10

Remove patches which are unnecessary. Revert DMA for UART as it seems to
cause more problems (its also what Armbian is doing). With that
Bluetooth firmware seems to load without errors when loaded before the
bluetooth daemon is running!

Note: It seems that the board overheats quite quickly. With Armbian,
without load, that seems not to be a big deal, but HAOS does quite a
bunch at startup, leading the CPU to reach the 90°C trip point. Maybe it
was related to the rather closed shelf I have the ASUS Tinker board
running, but only after using a fan the board behaved for me.

* Use hardware flow control explicitly

The rtk_hciattach program uses hardware flow control by default (judging
from tty settings after starting the program). Just to be sure,
explicitly request 115200 and hardware flow control.
2021-02-19 23:53:18 +01:00
Stefan Agner
9ba4dd5524 Linux: Update kernel 5.10.17 (#1231) 2021-02-18 11:05:36 +01:00
pergolafabio
32b037af32 Add SocketCAN support (#1228)
* Add SocketCAN support

A Controller Area Network (CAN bus) is a robust vehicle bus standard designed to allow microcontrollers and devices to communicate with each other's applications without a host computer. It is a message-based protocol, designed originally for multiplex electrical wiring within automobiles to save on copper, but it can also be used in many other contexts. For each device, the data in a frame is transmitted sequentially but in such a way that if more than one device transmits at the same time, the highest priority device can continue while the others back off. Frames are received by all devices, including by the transmitting device.

* Update also for GS_USB support

There is a port of the candleLight USB to CAN firmware for CANable. The port works very well under Linux using the gs_usb driver. This firmware does not use slcan, so it is not interchangeable with the stock firmware. However, the CANable appears as a CAN interface natively in Linux

With the candlelight firmware, simply plug in the CANable and the device will enumerate as can0. Set the baud rate and bring the interface up with the following command, and you're good to go!

ip link set can0 up type can bitrate 500000

* Update for Peak PCAN-USB Support
2021-02-17 10:26:00 +01:00
Stefan Agner
c2c05312a0 Increase maximum IGMP memberships (#1222)
Currently Linux has a limit of IGMP memberships of 20. When trying to
add membership to more than that, Linux fails with:
OSError: [Errno 105] No buffer space available

Allowing more memberships should not really be problematic as memory is
allocated dynamically when membership is actually added.

However, there is a protocol limit of how many memberships a host can be
in. The number of memberships needs to fit in a single group report
datagram of 64kB. In total 5459 group records fit in a datagram, but due
to IP header options this might be slightly smaller in practise.
(see https://github.com/home-assistant/core/issues/45957).

Use a limit of 1024, which should be plenty of headroom in both
directions.

Related to: https://github.com/home-assistant/core/issues/45957
2021-02-15 19:27:35 +01:00
Stefan Agner
b91c432fa8 Deploy all variants of the Raspberry Pi firmwares (#947) (#1219) 2021-02-09 14:06:13 +01:00
Stefan Agner
023d0b27f5 Bump out-of-tree Intel e1000e driver to build with Linux 5.10 (#1215) 2021-02-09 14:06:00 +01:00
Stefan Agner
57ffd6444b Update Linux kernel to 5.10 LTS (#1214)
* Drop ODROID specific kernel update script

With the jump to Linux 5.10 LTS we can use the same upstream kernel for
Hardkernel ODROID boards as well. Extend the update-kernel-upstream.sh
to support the ODROID boards.

* Linux: Update kernel 5.10.13
2021-02-05 18:52:16 +01:00
Stefan Agner
8bbc330407 Disable acpid (#1210)
Disable Busybox' acpid since systemd-logind provides the same
functionality.
2021-02-05 17:11:13 +01:00
Stefan Agner
76853d1171 RaspberryPi: Update firmware 0d458874a89921fbe460e422b239695e1e101e2b (#1211)
* RaspberryPi: Update firmware 0d458874a89921fbe460e422b239695e1e101e2b

* update-firmware-rpi.sh: Fix to work with new hash files
2021-02-05 16:30:31 +01:00
Stefan Agner
0daf748c97 Fix partition resize for MBR for all sizes (#1193) (#1204)
It seems that Busybox shell (ash) cannot calculate the disk size
properly probably due to integer overflow. Use jq to calculate the last
usable LBA which seems to be able to handle large integers.
2021-02-03 17:42:04 +01:00
Stefan Agner
8aabf65bb7 Bump systemd to latest stable release 246.10 (#1205) 2021-02-03 17:41:51 +01:00
Stefan Agner
825ef58f85 Update buildroot to 2020.11.2 (#1200)
Signed-off-by: Stefan Agner <stefan@agner.ch>
2021-02-03 17:23:40 +01:00
Pascal Vizeli
614ff50394 Map host udev data ro to supervisor container (#1186)
* Mapp host udev data ro to container

* fix lint

* fix paths
2021-01-29 17:47:24 +01:00
Stefan Agner
907857985a Disable fsck.fat for boot partition (might help #1125) (#1190)
There are incident reports on the internet where poeple report that
fsck.(v)fat actually leads to problems rather file system fixes. Around
the time when Home Assistant OS added fsck.fat for the boot partition,
reports of empty boot partitions or file with weired filenames started
to appear. This could be caused by fsck.fat.

Disable fsck on the boot partition.
2021-01-29 15:02:08 +01:00
Stefan Agner
846512a283 RaspberryPi: Update kernel 5.4.83 - 76c49e60e742d0bebd798be972d67dd3fd007691 (#1187) 2021-01-29 15:01:21 +01:00
Pascal Vizeli
e646650a7e Fix connectivity check updated NM (#1182) 2021-01-28 10:36:00 +01:00
Stefan Agner
038f1b4bd6 Add GPIO fan support for ODROID-N2 (#1117) (#1166) 2021-01-11 22:50:30 +01:00
Mario Limonciello
d7c09e15b9 Allow setting BUILDDIR in the build to dictate where to find directories (#1153)
This allows building many components without elevated permissions or
needing to do it within a container.
2021-01-11 19:56:51 +01:00
Stefan Agner
2c3c066ea0 Add GPIO power button support for ODROID-N2 (#1161) (#1165) 2021-01-11 18:14:07 +01:00
Mario Limonciello
184eb9e048 Add r8169 firmware into intel_nuc build (Fixes: #1150) (#1152) 2021-01-08 23:23:56 +01:00
Stefan Agner
ce1f07126f Enable memory and CPU hotplugging for virtual machines (#1156) (#1158)
Use udev rules to set the CPU online. For memory, we let the kernel
bring memory online automatically. This is preferred as udev rule
processing might be delayed in a low memory situation, see:
https://lwn.net/Articles/668944/
2021-01-05 23:19:42 +01:00
Stefan Agner
0188f24a0d Fix partition resize for MBR (#1149)
Partition handling for disks with 4k sectors broke partition resizing
when using MBR disk label. It seems that sfdisk doesn't calculate the
last LBA for diks with MBR label. Calculate the last usable LBA ourselfs
in the MBR case.
2020-12-31 14:58:21 +01:00
Stefan Agner
581de22a06 Fix boot from eMMC on ODROID-C2 (#1142) (#1148)
Latest U-Boot broke boot from eMMC on ODROID-C2. Revert the offending
device tree change to make the system boot again.
2020-12-31 14:45:31 +01:00
Stefan Agner
9764273894 Fix handling of disks with 4k sector size (#1141) (#1146)
The calculation whether to resize the partition only works with disks
with 512 byte sector size. Use values provided by sfdisk exclusively to
make sure comparing the same sector size.

Furthermore, it seems that sgdisk does not like sfdisk's backup GPT
placement:
$ sgdisk -e /dev/zram1
Warning! Secondary partition table overlaps the last partition by 250 blocks!

Today it seems sfdisk can handle GPT quite well. Use sfdisk for all
operations in hassos-expand.
2020-12-30 18:12:44 +01:00
Mario Limonciello
cc53ad4fd6 Add LPSS support for intel-nuc (#1145)
This is needed for MMC to enumerate properly (Fixes: #1112)
2020-12-30 16:04:34 +01:00
Stefan Agner
142e7df6cf Drop e2scrub (#1144)
The e2scrub utilities only make sense on system which use LVM. They
come with e2fsprogs and can't be disabled currently. Drop them manually
in our post-build script.
2020-12-29 23:55:38 +01:00
Stefan Agner
4d6991fd45 Fix 64-bit image to boot on Raspberry Pi 400 (#1134) (#1143)
Add the missing PCIe node to make U-Boot's PCIe driver happy on
Raspberry Pi 400 as well.
2020-12-29 23:55:27 +01:00
Stefan Agner
98ab22c119 Add sulogin to make the systemd recovery.target work (#1139)
The systemd recovery.target starts a shell using sulogin. This can be
useful to debug Home Assistant OS if it isn't able to boot completely
anymore.
2020-12-29 20:57:52 +01:00
Stefan Agner
381d2aa8f7 Fix systemd-udevd rule warning (#1136)
systemd-udevd substitutes variables starting with $ in the PROGRAM
argument. If a shell variable is to be used, two $ need to be used to
escape properly. This fixes three instances of the following warning:
Invalid value "..." for PROGRAM (char 58: invalid substitution type), ignoring, but please fix it.
2020-12-29 20:57:29 +01:00
carras
594c24eab7 Update network.md (#1114)
* Mention Supervisor network configuration capabilities
2020-12-29 13:48:06 +01:00
Stefan Agner
be2a64f4d2 Add hassos-apparmor dependency to supervisor (#1140)
The supervisor container requires the "hassio-supervisor" AppArmor
profile. Make sure our AppArmor service hassos-apparmor is a dependency
of the hassos-supervisor.service.
2020-12-29 13:46:40 +01:00
Stefan Agner
51bd8bd0e5 Add eMMC support for Intel NUC with ACPI (#1112) (#1137)
Also enable CONFIG_MMC_SDHCI_ACPI which seems to be required for Intel
NUC with eMMC.
2020-12-29 00:37:24 +01:00
Stefan Agner
4fa3329d59 Update buildroot to 2020.11.1 (#1135)
Signed-off-by: Stefan Agner <stefan@agner.ch>
2020-12-28 23:48:23 +01:00
Stefan Agner
7959113c97 Use systemd-growfs (#1133)
* Use systemd-growfs instead of resize2fs (#1106)

Since systemd 236 systemd has a built-in file system growing mechanism.
The mechanism relies on the kernels online file system resize
capabilities instead of the external resize2fs utility. Online resizing
is supposedly much faster since the kernel takes care of things.

This also makes sure that external file systems get resized which
previously have not been taken care of.

* Drop HA OS specific file system resizing

Since we have systemd-growfs in place now we can drop our file system
resizing code.

* Make sure /dev/disk/by-label/hassos-data is present after resizing

Note: systemd will retry mnt-data.mount later, so at least in theory
this shouldn't really matter. However, the journal has a lot of churn
due to that reordering.
2020-12-28 23:46:55 +01:00
Stefan Agner
cd385be81f Don't use page table mapping for compressed pages (#1129) (#1132)
It seems that page table mappings for compressed tables cause issues in
certain situation leading to "zram: Decompression failed!" errors.
Upstream Linux seems to have recognized the problem and a patch to drop
the functionality entirly has been proposed:
https://lore.kernel.org/linux-mm/20201117135632.GA27763@infradead.org/
2020-12-28 15:43:21 +01:00
Stefan Agner
8ed6bc2e31 Add firmware for TI 3410/5052 USB to UART adapters (#1124) (#1126)
* Add firmware for TI 3410/5052 USB to UART adapters (#1124)
2020-12-28 15:40:53 +01:00
Stefan Agner
68e63d15e5 Add eMMC support for Intel NUC (#1112) (#1123)
Enable CONFIG_MMC and friends for Intel NUC with eMMC.
2020-12-22 18:43:19 +01:00
Stefan Agner
89c31bb967 Enable hidraw driver (#1120) (#1122)
* Enable hidraw driver (#1120)

The hidraw driver is required by some IoT devices such as Wyze sense or
Jablotron JA-100. Enable the driver on all platforms by default.
2020-12-22 18:43:12 +01:00
Stefan Agner
e3120df5d0 Disable DNS over TLS by default (#1113) (#1121)
It seems that on certain setups the default DNS over TLS mode
"opportunistic" causes delays of ~10s when trying to resolve names. This
is probably caused by providers and/or firewall setups not properly rejecting
connections on port 853.

It seems that also other distributions (such as Arch Linux) still
disable DNS over TLS currently. Side step issues with DNS over TLS by
disabling it for now.
2020-12-22 18:42:58 +01:00
Thanasis
59b687f0db Mention potential need for quirks on usb boot (#1111)
Directing people from discord to this page but there wasn't any mention they will likely be needing quirks enabled for usb boot on Rpi4. Also some minor layout adjustments on that section.
2020-12-21 11:31:02 +01:00
Stefan Agner
cee0123105 Bump systemd to latest stable release 246.9 (#1110) 2020-12-20 17:26:31 +01:00
Stefan Agner
22aede0278 Copy the Raspberry Pi 4 EEPROM only if we deploy the package (#1104)
Fix build by only copy the EEPROM update to the boot partition if we
actually enable the EEPROM package.
2020-12-18 19:29:46 +01:00
Stefan Agner
dadc82ae37 Document Hardkernel WiFi modules WiFi status (#1099) 2020-12-18 16:41:13 +01:00
Stefan Agner
26af1dd907 Disable Raspberry Pi EEPROM upgrade (#1045) (#1103)
The EEPROM upgrade 2020-10-28 causes issues with JMS583 or JMS580
controller from Jmicron. Others reported that the same update fixes
reboot issues. Currently there is no Raspberry Pi 4 firmware which works
for all cases. Therefor don't ship an EEPROM upgrade so users can flash
and continue using what works for their setup.
2020-12-17 16:30:02 +01:00
Stefan Agner
c515dd19f2 Don't suspend Home Assistant OS on closed lids (#1093) (#1100)
Old Laptops are a popular choice to run Home Assistant: They have low
power consumption, are relatively fast and cheap to come by. However,
closing their lid by default puts a Linux system into suspend. This is
not what the typical user of Home Assistant OS wants. Ignore lid
activity in any state by default.
2020-12-17 16:29:45 +01:00
Stefan Agner
a39b8576e8 Deploy firmware for RTL8188CUS chipset (#1098)
The Hardkernel WiFi Module 3 comes with a Realtek RTL8188CUS chipset.
Make sure to ship the latest firmware files provided by kernel.org.
2020-12-17 16:28:50 +01:00
Stefan Agner
a4d8e8492f Add RTL8812AU driver from aircrack-ng (#1097)
* Add Realtek RTL8812AU out-of-tree driver

This adds support for Realtek RTL8812AU devices such as the Hardkernel
WiFi Module 5A (with the RTL8811AU chipset, supported by this driver as
well). This patch uses Realtek driver 5.9.3.2 which has been made to
compile up to Linux 5.10.

Note: This driver does not seem to support 5GHz networks! But it seems
the only driver which supports the RTL8811AU chipset and also works with
recent mainline drivers...

* Enable RTL8812AU driver for Hardkernel modules

The WiFi Module 5A comes with a RTL8811AU chipset. Enable the driver for
all Hardkernel modules.
2020-12-17 16:28:36 +01:00
Stefan Agner
323f415fa8 Mount boot partition sync (#1092) (#1101)
When we write the update to the boot partiton, there is nothing which
makes sure that data is written to disk. This leaves a rather large
window (probably around 30s) where a machine reset/poweroff can lead
to a corrupted boot partition. Use the sync mount option to minimize the
corruption window.

Note that sync is not ideal for flash drives normally. But since we
write very little and typically only on OS update to the boot partition,
this shouldn't be a problem.
2020-12-17 14:09:43 +01:00
Stefan Agner
4255425b93 Deploy Raspberry Pi 400 and Compute Module 4 device tree (#1094)
To properly support those devices the dedicated device tree should be
present on the boot partition. Make sure those device trees get
deployed.
2020-12-16 21:23:22 +01:00
Stefan Agner
7c70e3ef84 Increasee disk image capacity to 32GB in OVF as well (#1084) (#1088)
After increasing the actual disk image size the capacity field in the
OVF description file still was mentioning 6GB. This seems to be
problematic for VMware hypervisor. Increase the size to 32GB as well.
2020-12-15 13:22:42 +01:00
Pascal Vizeli
d42f80c65e Update data disk documentation (#1082)
* Add Data disk picture to documentation

Co-authored-by: Joakim Sørensen <joasoe@gmail.com>
2020-12-13 11:08:59 +01:00
Stefan Agner
c3cc81249b Upload ova (Open Virtualization Appliance) image as well (#1080) 2020-12-12 12:57:37 +01:00
Stefan Agner
d8273af0ad Bump version to 6.0 2020-12-12 11:49:46 +01:00
Stefan Agner
a6bdf2c1c9 Set OS pretty name to Home Assistant OS 2020-12-11 12:59:17 +01:00
Stefan Agner
14bb885ce9 Odroid: Update kernel 5.9.13 (#1077) 2020-12-10 22:19:00 +01:00
Stefan Agner
e5eefc9978 Use correct label for ODROID boards in release drafter (#1078)
The correct label for Hardkernel's ODROID is board/odroid.
2020-12-10 22:08:41 +01:00
Stefan Agner
6001c34091 Linux: Update kernel 5.4.82 (#1076) 2020-12-10 22:03:50 +01:00
Stefan Agner
17d0cdf823 Fix another boot script syntax error on Tinker Board (S) (#1074) (#1075) 2020-12-10 15:06:56 +01:00
Stefan Agner
8aceb287de Add major.minor to development build sub-directory (#1073) 2020-12-10 00:45:31 +01:00
Stefan Agner
e42835f163 Cap eMMC frequency to 24MHz in U-Boot for ODROID-N2(+) (#1072)
* Revert "Fix boot from 128GB Micron eMMC on ODROID-N2(+) (#1064)"

This reverts commit 162084082e.

This patches seem to cause issue on a ODROID-N2 with 32GB eMMC.

* Cap eMMC frequency to 24MHz in U-Boot for ODROID-N2(+)

Also remove the ODROID-C4 specific patch.
2020-12-10 00:45:05 +01:00
Stefan Agner
1a8f9ca2e3 Avoid waiting for external drive unnecessarily (#1066)
* Avoid waiting for external drive unnecessarily

Even though the condition to start hassos-data.service is not met (the
file /mnt/overlay/data-move is not there by default), it seems that
systemd waits for the dependencies for hassos-data.service. Don't
Require or Wants any dependencies which might not be present by
default.

* Use systemd to wait for partition using partlabel device

* Use sfdisk which allows to wipe filesystem signatures

Even though we zap the partition table using sgdisk, the file system
superblock (which contains the file system label) does survive. This
can cause problems when trying to reuse a disk previously already
labeled using hassos-data: It might take precendence on next boot
over the existing data partition on the eMMC.

Make sure to clean all file system signatures using sfdisk.
2020-12-08 01:11:00 +01:00
Stefan Agner
162084082e Fix boot from 128GB Micron eMMC on ODROID-N2(+) (#1064) 2020-12-07 22:18:35 +01:00
Pascal Vizeli
c2098e1cf4 No random mac for wifi scan (#1061) 2020-12-05 22:31:19 +01:00
Stefan Agner
22c668b500 Add support for LSI53C10XX SCSI controller commonly used in VMs (#1056) (#1060)
VMware as well as Qemu emulate LSI53C1030 SCSI controller when choosing
a SCSI controller has host interface for disks. For VMware this seems
to be the default choice. Enable the driver by default.
2020-12-05 19:16:07 +01:00
Stefan Agner
6672046b6f Make the datactl command more robust (#1059)
* Make the datactl command more robust

Validate target disk (partition) size to avoid a copy attempt which will
fail. If e2image operation fails, make sure the leftover copy is not
regonized as data partition.

* Fix hassos-data service device unit dependencies
2020-12-04 20:55:35 +01:00
Stefan Agner
78b456d05c Fix U-Boot crash seen on RPi400 (#1057) (#1058) 2020-12-04 20:54:49 +01:00
Stefan Agner
2cc78abe56 Enter console if data partition is missing (#1055)
In case the data partition is missing avoid using the Docker command.
The Docker command triggers a socket activation, which in turn makes
systemd wait for the data partition. This blocks entry into the shell
forever.

Just enter the shell in case data partition is not mounted.
2020-12-03 20:29:07 +01:00
Stefan Agner
46bb12844f Rewrite datactl command (#1046)
* Rewrite datactl command

Prepare the target partition as part of the datactl command. Rely on
partlabel for the target disk since we are always using GPT on the
target disk. Use systemd and partlabel mechanism to wait and find
the target data disk. Keep using the file system label to identify
the source disk.

Also use e2image instead of raw dd to move data. This should
speed up the processes significantly.

* Fix corner case when reusing same disk again
2020-12-03 20:05:02 +01:00
Stefan Agner
1537d02408 Lower console log level after boot-up (#1054)
Some console logs are really not helpful in practise and are more
confusing then helpful. Show warnings and higher on console after
boot-up.
2020-12-03 15:38:10 +01:00
Stefan Agner
a66591166f Update BusyBox configuration (#1053)
* Add find utility helpful to find things

* Add hwclock utility useful to debug RTC issues

* Remove several utilities which are provided by util-linux (such as
  dmesg, mount, blkid etc.)

* Drop unused utilities e.g. for raw nand (nandread/write/ubi)
2020-12-03 15:37:29 +01:00
Stefan Agner
7443c45001 Add explicit apparmor dependency for Docker (#1052)
Signed-off-by: Stefan Agner <stefan@agner.ch>
2020-12-03 15:36:45 +01:00
Stefan Agner
a4f5670cd8 Update buildroot to 2020.11 (#1051)
Signed-off-by: Stefan Agner <stefan@agner.ch>
2020-12-03 12:34:02 +01:00
Stefan Agner
c9c5f1b3e9 Fix boot script issue on Tinker Board (S) (#1043) (#1044) 2020-12-02 13:44:28 +01:00
Stefan Agner
b4c9f2fce2 Fix ethernet link not comming up on ODROID-C2 (#1042)
Use the latest patches from the mailing list to fix Ethernet on
ODROID-C2/N2(+).
2020-12-01 14:54:41 +01:00
Pascal Vizeli
c48184cf91 Set NetworkManager default value / fix mDNS in OTA updates (#1041)
* Set NetworkManager default values / fix mDNS in OTA updates
2020-12-01 10:15:06 +01:00
Stefan Agner
681fe1421a Merge pull request #1039 from agners/fix-ethernet-link-restart
Fix ethernet link not comming up (#1038)
2020-12-01 01:03:22 +01:00
Stefan Agner
acc293b662 Fix ethernet link not comming up (#1038)
Fix ethernet PHY reset timing to make sure the link comes up when
reconfiguring the link.

Also drop 0006-clk-meson-g12a-mark-fclk_div2-as-critical.patch which has
been applied in v5.9.2 stable release.
2020-12-01 00:53:18 +01:00
Stefan Agner
3a67e2e8c4 Merge pull request #1036 from agners/fix-barebox-use-run
Fix Barebox Environment handling
2020-11-30 17:03:08 +01:00
Stefan Agner
8682d8af78 Fix Barebox Environment handling (#1037)
Similar to U-Boot dt-utils (barebox-state in particular) use /var/lock
as location for lockfiles. Use the recommended location /run.
2020-11-29 22:34:06 +01:00
Stefan Agner
b82707ff9a Pass empty VERSION_DEV variable to make for release builds 2020-11-28 19:27:12 +01:00
Stefan Agner
525dcfedfb Upload xz output files instead of gz 2020-11-28 19:27:11 +01:00
Stefan Agner
18cc261e35 Bump linux buildroot (#1032)
* Update buildroot to 2020.11-rc3

Signed-off-by: Stefan Agner <stefan@agner.ch>

* ODROID: Update kernel 5.9.11

* Remove patch which has been applied upstream

* Linux: Update kernel 5.4.80
2020-11-28 16:19:21 +01:00
Stefan Agner
bda9c3d715 Fix ODROID-N2(+) SoC version banner (#1031)
The version banner was showing "Amlogic Meson G12A (Unknown) Revision
28:0 (0:0)" in all cases instead of the correct SoC name and revision.
Make sure the SoC revision is properly read also for the banner.
2020-11-27 16:37:04 +01:00
Stefan Agner
4cbbeeb7dc Improve OVF descriptor (#1030)
* Add sound card by default using the hdaudio driver (#925)

* Use virtio-net for VirtualBox

The virtio-net driver is a paravirtualization driver which means less
overhead than virtualizing a full network card. The driver is supported
by VirtualBox since several releases by now.

* Use full OS name in product name.
2020-11-27 16:36:44 +01:00
Stefan Agner
beaad9ac9b Fix boot script issues (#1024) (#1026)
The change "Avoid trying to boot non-existing kernel image in failover
case" introduced a broken boot script on Raspberry Pi (when booting from
partition B) and ODROID-XU4.
2020-11-27 13:47:46 +01:00
Stefan Agner
bf1eaf44d5 Raspberry Pi: Add RPi400 and CM4 support (#1025)
Backport patches for RPi400 and CM4 support. Tested on a RPi400 which
seems to successfully boot and run Home Assistant OS with this.
2020-11-26 23:13:57 +01:00
Stefan Agner
c94f7933ef RaspberryPi: Update kernel 5.4.79 - 9797f1a4938c20139b00a25de93cc99efb5c291b (#1023) 2020-11-26 23:04:39 +01:00
Stefan Agner
01475a8c45 Fix boot from USB for Raspberry Pi 32-bit installations (#987) (#1022) 2020-11-26 23:04:24 +01:00
Stefan Agner
9436661958 Bump dev channel after build (#1021)
* Bump dev channel after build

Bump version on dev channel automatically when building a dev branch
pre-release.

Co-authored-by: Joakim Sørensen <hi@ludeeus.dev>
2020-11-26 23:04:05 +01:00
Stefan Agner
e88ae15272 Add sub-directory per development build (#1020)
HAOS builds add a lot of files and things get quickly messy. Use a
directory per build.

Also don't abort the complete build if a single board failed, we still
might be interested in the rest.
2020-11-26 00:34:46 +01:00
Aman Gupta Karmani
1fa53bc3dc Add rpi-eeprom firmware (#939)
* Add 2020-10-28 beta EEPROM

This improves boot from USB and speeds up boot times.
also includes sd card v1 boot reliability.
see https://github.com/raspberrypi/rpi-eeprom/pull/246

Also add HDMI_DELAY=0 so HDMI display is always visible
for easier debugging.
2020-11-26 00:33:48 +01:00
Stefan Agner
1a6dcbbf5b Compress images using xz instead of gzip (#1018)
The xz compression allows higher compression rates and higher speeds,
a quick measurement lead to this numbers:
gzip --best: compression 131.11s, decompression 9.797s (299M)
xz -3 (single thread): compression 95.13s, decompression 14.902s (228M)
xz -3 (multi thread): compression 12.146s, decompression 14.902s (228M)
2020-11-26 00:29:11 +01:00
Stefan Agner
4be3dee0b4 Add dev build workflow (#1017)
* Add development build version part to version number

Add third part in the version number to indicate development builds.
Generate a default version number based on the date, e.g.
"5.6.dev20201124".

* Add GitHub Action workflow for development builds

Add another GitHub workflow for development builds. Make it triggered
only for now. The version number is generated by the workflow and
passed to all builds to make sure all builds have the same development
build version.

* Add documentation
2020-11-25 10:52:28 +01:00
Stefan Agner
5756969be9 Avoid trying to boot non-existing kernel image in failover case (#1016)
* Avoid trying to boot non-existing kernel image in fail-over case

The A/B update system automatically switches to the other boot slot when
booting fails. However, in a fresh installation, only boot slot A
exists. If booting fails three times (e.g. if somebody plugs out power
before the slot can be marked as good), then the system switches to boot
slot B which does not contain a kernel image yet. Avoid trying to boot
the non-existing kernel image.

With this change, if slot B is empty U-Boot will restore both slots to 3
attempts and retry booting from slot A on next reboot:

```
Trying to boot slot B, 2 attempts remaining. Loading kernel ...
** Unrecognized filesystem type **
No valid slot found, resetting tries to 3
storing env...
```

Co-authored-by: Pascal Vizeli <pascal.vizeli@syshack.ch>
2020-11-24 17:33:44 +01:00
Stefan Agner
8442d2ccfa ODROID: disable USB enumeration (#1015)
* Fix N2+ boot by disabling USB enumeration

On some devices USB enumeration in U-Boot seems to freeze:
starting USB...
Bus usb@ff500000: Register 3000140 NbrPorts 3
Starting the controller
USB XHCI 1.10
scanning bus usb@ff500000 for devices... <freeze>

We don't use USB currenty in the U-Boot script, disable it for now.

* Disable USB enumeration on all ODROID devices
2020-11-23 11:10:55 +01:00
Stefan Agner
300986f129 Increase OVA disk image default size to 32GB (#1009)
The current default size of 6GB can fill up pretty quickly. Since most
disk images we offer resize dynamically its not really problem to ship
with a bigger default size. It avoids support cases when people forget
to increase the disk image size.
2020-11-21 10:21:38 +01:00
Stefan Agner
08cbbe8988 Improve issue reporting template (#1008) 2020-11-20 21:57:24 +01:00
Stefan Agner
827c97f0ca Make sure ALSA modprobe parameters get applied (#1007)
* Remove busybox Linux module support

Since systemd relies on the upstream Linux kernel module handling
utility "kmod" the busybox implementations are not required. Already
today the official "kmod" utility takes precedence:
haos # ls -la /usr/sbin/*mod*
lrwxrwxrwx    1 root     root            11 Nov 11 11:32 /usr/sbin/depmod -> ../bin/kmod
lrwxrwxrwx    1 root     root            11 Nov 11 11:32 /usr/sbin/insmod -> ../bin/kmod
lrwxrwxrwx    1 root     root            11 Nov 11 11:32 /usr/sbin/lsmod -> ../bin/kmod
lrwxrwxrwx    1 root     root            11 Nov 11 11:32 /usr/sbin/modinfo -> ../bin/kmod
lrwxrwxrwx    1 root     root            11 Nov 11 11:32 /usr/sbin/modprobe -> ../bin/kmod
lrwxrwxrwx    1 root     root            11 Nov 11 11:32 /usr/sbin/rmmod -> ../bin/kmod

* Move modprobe configuration alsa-base.conf to correct location

The official modprobe package from kmod checks three locations:
/etc/modprobe.d/, /lib/modprobe.d/ and /run/modprobe.d/. Since usr-move
/lib is a symlink to /usr/lib, the correct location for distribution
provided modprobe files is /usr/lib/modprobe.d.
2020-11-20 19:35:20 +01:00
Stefan Agner
3f5b28a0b4 Use GitHub Actions (#1005)
* Initial version of release workflow using GitHub Actions

Add release workflow using GitHub Actions to replace the current Azure
DevOps pipeline. Currently the same functionality is implemented. This
uses multiple builds in parallel to make better use of CPU resources.

Remove Azure DevOps pipeline.

* Add GitHub Actions workflow for pull-request checks

Lint Dockerfile and shell scripts when PRs are opened.

* Use multiple runners in parallel

Buildroot has stretches where CPU resources are not fully utilized.
Spawn multiple builds accross builders to increase load. Also sort them
by architecture to maximize ccache hit rate.

* Checkout before validate version
2020-11-19 12:29:21 +01:00
Stefan Agner
7c25f7c187 Fix DNS resolving (#1004)
* Add resolved.conf to disable stub resolver and DNSSEC

There are Add-Ons which try to bind port 53 on all interfaces including
127.0.0.53. Disable the stub resolver to make them continue working. We
don't need the resolver currently anyway.

Also disable DNSSEC to make sure the baords can access a NTP time server
even when their time is incorrect (since DNSSEC validation may fail).
This is a known chicken-egg problem with systemd-resolved/systemd-timesyncd
and might be addressed in a future version, with what we can reenable
DNSSEC:
https://github.com/systemd/systemd/issues/5873

* Make sure resolve gets added only once to nsswitch.conf

Only add resolve to nsswitch.conf if not already present.
2020-11-18 09:56:38 +01:00
Stefan Agner
52e21c9ccf Fix shellcheck warnings (#1003)
* Use double quote to prevent globbing and exit with error in case
  directory doesn't exit in hassos-hook.sh

* echo flags are undefined in POSIX, use bash instead in
  bluetooth-rtl8723
2020-11-17 20:06:03 +01:00
Stefan Agner
8d448a130c Set permissions for builder on entry (#1002)
Make sure the builder can write the ccache directory. This is useful
e.g. when using a Docker volume or a newly created directory.
2020-11-17 16:27:30 +01:00
Stefan Agner
39debca9fc Fix U-Boot environment handling (#1001)
* Use /run as default location for lock files for U-Boot tools

While there is a command line parameter to set the lock file explicitly,
there are other tools invoking fw_setenv (in particular rauc) which do
not set the lock file. Using /run by default makes fw_setenv use the
correct lock file in all situations.

* Don't explicitly set lock file location

Since we patch U-Boot tools to use /run by default setting it explicitly
is unnecessary.
2020-11-17 15:15:50 +01:00
Stefan Agner
29e92f4231 Add on-board RTC support for ODROID-N2+ (#999)
Make the NXP PCF8563TS on-board RTC the primary RTC of the system.
2020-11-17 10:49:01 +01:00
Stefan Agner
0797bccc36 Improve release drafter (#998)
* Change titels to reflect official/new naming

* Use GitHub Actions to trigger Release Drafter

The Add-On is no longer developed and GitHub Actions is the recommended
way to use the Release Drafter
2020-11-16 22:13:01 +01:00
Stefan Agner
e8c2bacae6 Use upstream fix for zram on 32-bit ARM with LPAE (RPi4) (#996) 2020-11-16 15:09:12 +01:00
Stefan Agner
80f02b8ab6 Update buildroot to 2020.11-rc2 (#995)
Signed-off-by: Stefan Agner <stefan@agner.ch>
2020-11-16 11:06:25 +01:00
Stefan Agner
a0871be6c0 Bump buildroot to 2020.11-rc1 (#985)
* Update buildroot-patches for 2020.11-rc1 buildroot

* Update buildroot to 2020.11-rc1

Signed-off-by: Stefan Agner <stefan@agner.ch>

* Don't rely on sfdisk --list-free output

The --list-free (-F) argument does not allow machine readable mode. And
it seems that the output format changes over time (different spacing,
using size postfixes instead of raw blocks).

Use sfdisk json output and calculate free partition space ourselfs. This
works for 2.35 and 2.36 and is more robust since we rely on output which
is meant for scripts to parse.

* Migrate defconfigs for Buildroot 2020.11-rc1

In particular, rename BR2_TARGET_UBOOT_BOOT_SCRIPT(_SOURCE) to
BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT(_SOURCE).

* Rebase/remove systemd patches for systemd 246

* Drop apparmor/libapparmor from buildroot-external

* hassos-persists: use /run as directory for lockfiles

The U-Boot tools use /var/lock by default which is not created any more
by systemd by default (it is under tmpfiles legacy.conf, which we no
longer install).

* Disable systemd-update-done.service

The service is not suited for pure read-only systems. In particular the
service needs to be able to write a file in /etc and /var. Remove the
service. Note: This is a static service and cannot be removed using
systemd-preset.

* Disable apparmor.service for now

The service loads all default profiles. Some might actually cause
problems. E.g. the profile for ping seems not to match our setup for
/etc/resolv.conf:
[85503.634653] audit: type=1400 audit(1605286002.684:236): apparmor="DENIED" operation="open" profile="ping" name="/run/resolv.conf" pid=27585 comm="ping" requested_mask="r" denied_mask="r" fsuid=0 ouid=0
2020-11-13 18:25:44 +01:00
Stefan Agner
25a0dd3082 Use systemd-resolved to announce hostname via mDNS and LLMNR (#986)
Drop AVAHI and use systemd-resolved to announce hostname via mDNS
and LLMNR. Also continue to offer the _workstation._tcp.local service
since it is used by the CoreDNS mDNS plug-in.
2020-11-13 17:43:46 +01:00
Stefan Agner
50d304d7f3 Drop services we don't offer (#988)
Stop announcing services using DNS-SD we don't offer.
2020-11-13 15:26:30 +01:00
Stefan Agner
021b2c0357 Bump version 5.6 2020-11-10 22:55:18 +01:00
Stefan Agner
f922c14f15 Enable dropbear client to make scp work (#951) (#979)
When trying to use scp it fails due to missing /usr/bin/dbclient. For
debugging/testing scp can be helpful and is rather slim. Add it to all
configs.
2020-11-10 22:21:32 +01:00
Stefan Agner
92541b7280 Move patch for the RPi Linux kernel to the correct location (#978) 2020-11-10 21:30:32 +01:00
Stefan Agner
f5ff224358 Bump Raspberry Pis to 5.4 kernel (#956)
* Bump Raspberry Pi kernel to 5.4

Bump kernel to the downstream Raspberry Pi 5.4 kernel. Drop patches
already merged upstream and use rebased patches for USB reset
controller (required for U-Boot 2020.10 for USB SSD boot).

* Add compatible node for upstream U-Boot

Add brcm,bcm2835-pl011 to make upstream U-Boot bind with the
bcm283x_pl011 driver. This allows to boot with the device tree provided
by the Raspberry Pi Linux kernel 5.4 even without enable_uart=1.
2020-11-10 18:25:51 +01:00
Stefan Agner
6bc6300149 ODROID: Update kernel 5.9.6 (#976)
The CDC ACM cooldown fix is now part of upstream Linux, so we can drop
our patch.
2020-11-10 14:25:39 +01:00
Stefan Agner
fe9fc1cbd2 Use performance governor to avoid frequency scaling (#973)
After running HAOS on my ODROID N2+ several hours I see freezes and
sometimes stack traces which point to a problem in CPU frequency
scaling. This crash seems not to appear on Hardkernel's 18.04 Ubuntu
stable release. However, Hardkernel's Ubuntu uses the performance
governor. Use the performance governor as well to avoid crashes on N2+.
2020-11-10 13:40:39 +01:00
Stefan Agner
4f28a284be Make self healing capabilities more robust (#960)
In case a container image is corrupted `docker inspect` might fail:
  # docker inspect --format='{{.Id}}' "${SUPERVISOR_IMAGE}"

  Error response from daemon: readlink /mnt/data/docker/overlay2: invalid argument

In that same state the `docker images` command still shows the images.
Since `docker inspect` returns an error SUPERVISOR_IMAGE_ID will be empty
and a simple `docker pull` will be attempted. That does not suffice to
recover from a corrupted container image.

Use `docker images` to get the image ids and make sure to delete all
image ids found by that command.

Also don't use RuntimeDirectory since it deletes the runtime directory
between the service start attempts which defeats the purpose.
2020-11-09 13:05:54 +01:00
Stefan Agner
094208492e ODROID-C4 fixes (#963)
* Add machine specific landingpage container to ODROID-C4 as well (#949)

* Fetch script from new repo location and layout as well
2020-11-07 19:46:42 +01:00
Stefan Agner
ce95fdccd3 Revert "use GPT partition table for RPi4 (#936)" (#969)
This reverts commit c92b4b54be.

Pure GPT would be nice, but older EEPROM/firmware version seem not to
handle it properly (before EEPROM 2020-09-03/firmware 2020-10-22). Since
devices still get shipped with older EEPROM we currently moving to pure
GPT would make those devices not booting.

Stick with hybrid mode for now to make sure HAOS boots on all devices no
matter if a new or old EEPROM is in use.
2020-11-07 19:46:17 +01:00
Jakub Bartkowiak
2c335a4dd9 Fix configuration.md link in raspberrypi README.md (#967) 2020-11-07 13:39:29 +01:00
Stefan Agner
1a99d07cae Update ODROID-N2 binary blobs to those built with latest U-Boot (#961) 2020-11-06 10:10:26 +01:00
Stefan Agner
58d4b79376 Update ODROID N2 U-Boot reference to get latest DDR timings (#958)
The DDR timings are taken direclty from the checked out hardkernel
U-Boot tree. Make sure to use the lastest hash to get the latest timing
changes.
2020-11-05 15:51:16 +01:00
ubergeek801
0b52271b3a Support ODROID C4 SBC (#926)
* initial ODROID-C4 support
* setting clk_ignore_unused
2020-11-05 10:40:25 +01:00
Stefan Agner
503117d8bf Move RuntimeDirectory to the Service section (#957)
RuntimeDirectory needs to be in the [Service] section to take effect.
2020-11-04 16:55:19 +01:00
Aman Gupta Karmani
c92b4b54be use GPT partition table for RPi4 (#936)
* use GPT partition table for RPi4
2020-11-04 11:10:57 +01:00
Stefan Agner
5e44dcc681 RaspberryPi: Update firmware 2ba11f2a07760588546821aed578010252c9ecb3 (#954) 2020-11-04 11:09:06 +01:00
Stefan Agner
2d257bd671 Simplify self healing capabilities of Supervisor service (#952)
* Simplify self healing capabilities of Supervisor service

Instead of relying on time based information on how long the container
has been running use a startup marker file to infer if the last startup
has been successful.

* Update buildroot-external/rootfs-overlay/usr/sbin/hassos-supervisor

Co-authored-by: Pascal Vizeli <pascal.vizeli@syshack.ch>

Co-authored-by: Pascal Vizeli <pascal.vizeli@syshack.ch>
2020-11-04 10:05:38 +01:00
Aman Gupta Karmani
8ed04ed73c reboot kernels on panic so u-boot can fallback to previous update (#937) 2020-11-03 18:31:59 +01:00
Stefan Agner
737a6f18c3 Add machine specific landingpage container at build time (#949)
The landingpage container is a minimal webserver with built-in zeroconf
annoucement. Preinstall the machine specific landingpage container to
make sure it will show up right after startup.
2020-11-02 13:35:00 +01:00
Aman Gupta Karmani
ac942b8ed9 add fsck.repair=yes to all uboot kernel cmdline args (#943) 2020-10-30 21:54:20 +01:00
Aman Gupta Karmani
a8bad54efc automatically fsck to repair issues after an unclean shutdown (#938)
* automatically fsck to repair partitions

* add fsck.fat so rpi boot partition can be repaired

* Use Wants= instead of Requires=

Co-authored-by: Pascal Vizeli <pascal.vizeli@syshack.ch>

* add dosfstools to all images

* run hassos-data and hassos-expand after fsck

Co-authored-by: Pascal Vizeli <pascal.vizeli@syshack.ch>
2020-10-30 21:52:24 +01:00
Stefan Agner
481a79eb28 Revert "bump rpi-firmware to latest stable release (sep 2020) (#899)" (#928) (#942)
This reverts commit dade3adf80.
The new firmware lead to black screens and rainbow screen on various
Raspberry Pis.
2020-10-27 09:42:21 +01:00
Aman Gupta Karmani
8cd7dfe822 make it easier to edit and transfer files in the docker builder (#935) 2020-10-27 09:32:32 +01:00
Aman Gupta Karmani
2416c6c26c add .DS_Store to .gitignore (#934) 2020-10-27 09:26:03 +01:00
Harsh Kevadia
4eb0cd6460 Update README.md (#930)
* Update README.md

* Update based on PR comments
2020-10-25 18:36:15 +01:00
Stefan Agner
e43747c2e9 ODROID N2+ fixes (#929)
* Make sure to set board_rev for N2+ correctly

For some reason the code to set the environment did not make it into the
ODROID N2 board code. Fix the patch to correctly set board_rev for N2(+).
Also remove the w400 patch as it is no longer required.

* Use latest ODROID-N2+ patches

Use the queued patches (and fixes) for upstream ODROID-N2+ support.
This uses the clock settings from meson-g12b-a311d.dtsi running the
CPUs at the following clocks:
- 4xA73@2.2GHz
- 2xA53@1.8GHz
2020-10-24 18:45:41 +02:00
Pascal Vizeli
5f8aeb1c6d Bump version 5.5 2020-10-22 17:07:52 +02:00
Pascal Vizeli
dcfb296dcf Update buildroot to 2020.02.7 (#923)
Signed-off-by: Pascal Vizeli <pvizeli@syshack.ch>
2020-10-22 17:05:36 +02:00
Stefan Agner
fdcb94f0d8 Actually fix CDC ACM error recovery path (#712) (#921)
Instead of reverting the CDC ACM cool-down patch fix the intention of
that change. This should fix the error recovery paths in the CDC ACM
driver and allow CDC ACM devices to continue working even in the event
of USB issues.
2020-10-21 20:34:26 +02:00
Stefan Agner
5f0a8fe627 Bump firmware to RPi bluez-firmware 1.2-4+rpt6 release (#918)
This addresses recent Bluetooth secruity vulnerabilities.
2020-10-20 22:39:59 +02:00
Pascal Vizeli
0495ba25ad RaspberryPI: Fix issue with correct SYMLINK with ttyAMA (#915) 2020-10-20 19:08:19 +02:00
Pascal Vizeli
fa242e32d7 Remove not needed partition magic (#901)
* Update Documentation/partition.md

Co-authored-by: Stefan Agner <stefan@agner.ch>
2020-10-18 15:08:11 +02:00
Stefan Agner
fc3b098170 Fix CDC ACM error recovery path (#712) (#905)
Revert CDC ACM cool-down patch. This should fix the error recovery paths
in the CDC ACM driver and allow CDC ACM devices to continue working even
in the event of USB issues.
2020-10-17 13:16:08 +02:00
Stefan Agner
2b0fff31a3 Bump ODROID boards to Linux 5.9 (#898)
* Bump ODROID boards to Linux 5.9.1

This makes quite some patches obsolete which since have been upstreamed.

* Drop Linux 5.7 header symbols

Since we do not introduce new packages which actually require a newer
kernel headers, there is no value in having config symbols for the new
kernel version. Buildroot is still using the headers from our kernel,
and hence gets the latest version of the headers.
2020-10-17 13:14:47 +02:00
Aman Gupta Karmani
dade3adf80 bump rpi-firmware to latest stable release (sep 2020) (#899) 2020-10-16 15:12:35 +02:00
Souradip Mookerjee
b4fad03613 Make clear this should be with UNIX line endings (#884) 2020-10-15 11:49:08 +02:00
Aman Gupta Karmani
59b8636bc8 Fix systemd-time-wait-sync getting stuck with upstream patches (#897) 2020-10-13 00:38:04 +02:00
Aman Gupta Karmani
3337cd0f79 Fix var-lib-NetworkManager.mount dependencies (#895) 2020-10-12 21:41:12 +02:00
Pascal Vizeli
0c7cd8023e Bump version 5.4 2020-10-11 19:38:10 +02:00
Stefan Agner
502ef82b80 Bump U-Boot to 2020.10 for all boards using U-Boot (#889) 2020-10-10 12:27:47 +02:00
Stefan Agner
1708ed11b4 Fix Docker socket path (#885)
The Docker socket path is /run/docker.sock. Also only one path can be
used per property. This fixes the supervisor service, which currently
refuses to start due to missing Docker socket.
2020-10-06 12:17:39 +02:00
cogneato
59b9d82a55 Clean up initial description (#886) 2020-10-05 22:11:19 +02:00
Stefan Agner
39babd5368 Extend RPi default config.txt (#875)
Add commented out commands to enable serial console (useful for
debugging) and to disable SD card poll (useful for USB SSD boot).
2020-09-25 08:46:27 +02:00
Stefan Agner
2595dd815b Enable drivers for Intel Network devices with Virtual Function (#754) (#878) 2020-09-25 08:45:22 +02:00
Stefan Agner
d1577a6a65 Enable Hyper-V PCI support (#872) (#877) 2020-09-25 08:43:39 +02:00
Pascal Vizeli
f219f239d8 Improve handling with services on supervisor (#867)
* Improve handling with services on supervisor

* add condition

* move dbus to required, since we can't start the supervisor
2020-09-24 13:40:39 +02:00
Stefan Agner
ebc93692f5 Drop UART write retry patch from U-Boot (#873)
The patch causes U-Boot freezes in some configurations. The root cause
is that U-Boot does not allow to use the bss section in pre-relocation
code (which is where the UART is used). Drop the patch as it is not
required currently.

See also:
http://u-boot.10912.n7.nabble.com/RPi4-U-Boot-freeze-td424432.html#a427198
2020-09-24 13:37:44 +02:00
Pascal Vizeli
3af31c2265 Add observer plugin (#864) 2020-09-14 10:21:03 +02:00
Stefan Agner
f4f6908c80 Make sure udev rule only applies to first PL011 UART (#778) (#862)
The to symlink serial0/1 currently might apply to the first or second
ttyAMAX instance. In downstream, a patch makes sure that the first
PL011 is always ttyAMA0. However, upstream the numbering depends on the
UART alias, which leads to the first PL011 being ttyAMA1.

Check the actual iobase too to make sure we are dealing with the first
PL011 instance.

See also:
05cfe136f7 (diff-2678c183f503319c8d8c09c818af789a)
2020-09-12 09:08:27 +02:00
Stefan Agner
31fc13cf03 Resize serial terminal on login (#860) (#863)
The new readline utilty used by the CLI add-on requires the size of the
terminal to be set. Use the resize command to initialize terminal size
on login if we are running on a serial terminal.
2020-09-12 09:07:03 +02:00
Stefan Agner
ec1561661b Make sure U-Boot built idbloader.img gets copied (#854)
The U-Boot build system creates a ready to use idbloader.img. A earlier
commit dropped the HAOS code to create the same. However, the commit
missed copying the one built by U-Boot. Make sure idbloader.img gets
copied to the image output directory.
2020-09-10 10:55:41 +02:00
Pascal Vizeli
272430a58c Revert "Use Microsoft Basic Data instead of Microsoft Reserved Partition (#847)" (#852)
This reverts commit 31bb38ffd4.
2020-09-07 11:19:03 +02:00
Pascal Vizeli
1537e14dfc Bump version 5.3 2020-09-06 22:29:39 +02:00
Pascal Vizeli
22f7777099 Make getty for serial/tty same (#850)
* Make getty for serial/tty same

* adjust log output
2020-09-06 22:18:19 +02:00
Pascal Vizeli
813030bb4c Linux: Update kernel 5.4.63 / 5.7.13 (#849)
* Odroid: Update kernel 5.7.19

* Linux: Update kernel 5.4.63
2020-09-06 22:17:13 +02:00
Stefan Agner
31bb38ffd4 Use Microsoft Basic Data instead of Microsoft Reserved Partition (#847)
Currently the Microsoft Reserved Partition GUID is used for this FAT32
formatted partition. This GUID is a rather Microsoft Windows specific
GUID and not commonly used on Linux.

On Linux systems partitions of this type do not get automatically
mounted (see /usr/lib/udev/rules.d/80-udisks2.rules). However, since
this partition contains some files user commonly need to adjust
(config.txt, cmdline.txt) it would be good if the partition does get
mounted.

Use Microsoft Basic Data instead, which is used by default for FAT32
partition (even by Linux partitioning tools such as gparted). Tested
on ASUS Tinker Board and RPi4.
2020-09-06 11:57:17 +02:00
Stefan Agner
b6cfe04422 Do not attempt to resize on every boot (#843) (#848)
The hassos-expand script calls sfdisk to find free disk space. It seems
that today it considers the space before the first partition as free:
$ sudo sfdisk -Fq /dev/sdi
Start   End Sectors Size
 2048 16383   14336   7M

This causes the script to always resize. It seems not to cause harm to
the partition table (it does not resize really). However, the call to
partx seems to confuse systemd and kill the mnt-data.mount process
(presumably because udev causes remove/add events for the by-label
device units).

Consider everything below 8MiB to not be worthy of a size change. This
avoids missdetection and resize attempts where there is no need.
2020-09-06 11:22:43 +02:00
Stefan Agner
0ae67991d1 Cleanup Tinker Board patches (#846)
* Remove rk3288-xt-q8l-v10.dts related patches

We only support ASUS Tinker Board, so no need for those patches.

* Remove unnecessary patches and rebase some for Tinker Board S

Some patches only apply to the Tinker Board device tree. Rebase them to
apply to the dtsi file so they apply for both boards, the Tinker Board
and the Tinker Board S board.
2020-09-05 11:11:18 +02:00
Stefan Agner
f892334077 Support custom output directory (#842)
Support custom output directories akin to how buildroot supports O=.
This allows to use separate output directory per board, e.g. using
make O=output_odroid-n2.
2020-09-04 21:07:32 +02:00
Stefan Agner
2e2f6e893b Fix Tinker Board S (eMMC) boot (#650) (#845)
* Fix Tinker Board S (eMMC) boot (#650)

Use Tinker Board S U-Boot configuration which is capable to boot from
eMMC as well as from SD card.

Note that this makes U-Boot always claiming to run on Tinker Board S:
..
Model: Rockchip RK3288 Asus Tinker Board S
..

It seems that there is no generic Tinker Board configuration. However,
Tinker Board S configuration really seems to work well with Tinker Board
as well, so just use it.

Also today the U-Boot Makefile seems to generate a working idbloader.img
already. Drop our special handling.

* Use Tinker Board S device tree if booting from eMMC for Linux

Instead of patching the Tinker Board device tree, select the device tree
based on what device we are booting from.

Note: This boots the non-S device tree when booting a Tinker Board S
from SD card! But there is no reliable detection otherwise, so let's
just live with that fact.

* Document how to use our U-Boot to flash eMMC
2020-09-04 21:05:49 +02:00
Stefan Agner
a2a4cf8668 Align all partitions to 1MiB boundary (#808)
Aligning partitions (and hence file system structures) to higher level
then 512 byte sectors is common practise and highly recommended for flash
backed block devices. It makes sure that the underlaying flash translation
layer (FTL) does not amplify writes due to missalignment of its erase
block size. Use a 1MiB boundary which is what a modern fdisk is doing.

Before this change:

 # fdisk /dev/mmcblk0

Welcome to fdisk (util-linux 2.35.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Command (m for help): p
Disk /dev/mmcblk0: 14.57 GiB, 15634268160 bytes, 30535680 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x48617373

Device         Boot   Start      End  Sectors  Size Id Type
/dev/mmcblk0p1 *      16384    65537    49154   24M  c W95 FAT32 (LBA)
/dev/mmcblk0p2        65539  1228814  1163276  568M  5 Extended
/dev/mmcblk0p3      1228816  1425425   196610   96M 83 Linux
/dev/mmcblk0p4      1425427 30535679 29110253 13.9G 83 Linux
/dev/mmcblk0p5        65540   114693    49154   24M 83 Linux
/dev/mmcblk0p6       114695   638984   524290  256M 83 Linux
/dev/mmcblk0p7       638986   688139    49154   24M 83 Linux
/dev/mmcblk0p8       688141  1212430   524290  256M 83 Linux
/dev/mmcblk0p9      1212432  1228814    16383    8M 83 Linux

After this change:

 # fdisk /dev/mmcblk0

Welcome to fdisk (util-linux 2.35.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Command (m for help): p
Disk /dev/mmcblk0: 14.57 GiB, 15634268160 bytes, 30535680 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x48617373

Device         Boot   Start      End  Sectors  Size Id Type
/dev/mmcblk0p1 *      16384    65535    49152   24M  c W95 FAT32 (LBA)
/dev/mmcblk0p2        65536  1239039  1173504  573M  5 Extended
/dev/mmcblk0p3      1241088  1437695   196608   96M 83 Linux
/dev/mmcblk0p4      1439744 30535679 29095936 13.9G 83 Linux
/dev/mmcblk0p5        67584   116735    49152   24M 83 Linux
/dev/mmcblk0p6       118784   643071   524288  256M 83 Linux
/dev/mmcblk0p7       645120   694271    49152   24M 83 Linux
/dev/mmcblk0p8       696320  1220607   524288  256M 83 Linux
/dev/mmcblk0p9      1222656  1239039    16384    8M 83 Linux

See also:
https://unix.stackexchange.com/questions/248939/how-to-achieve-optimal-alignment-for-emmc-partition
http://3gfp.com/wp/2014/07/formatting-sd-cards-for-speed-and-lifetime/
2020-09-01 22:54:19 +02:00
Stefan Agner
b8cf3face0 Load socinfo only once (#838)
Remove code duplication and make sure to load socinfo only once. Also
set board_rev before MAC address to make sure board_rev is set even if
loading MAC address from efuses fails.
2020-09-01 19:07:07 +02:00
mikebaz
1c991c229d Update network.md (#833)
small change to reflect the renaming of the OS as shown in the top-level README
2020-08-28 10:37:01 +02:00
Stefan Agner
a3c5e670ef Fix ODROID-N2(+) SD card boot (#835) (#836) 2020-08-28 10:18:50 +02:00
Pascal Vizeli
ffc75a5053 Optimize overlay driver (#831)
* Optimize overlay driver

https://www.youtube.com/watch?v=fSyr_IXM21Y&feature=youtu.be

Not sure about the INDEX, but the other should be safe.

* Update buildroot-external/kernel/docker.config

Co-authored-by: Stefan Agner <stefan@agner.ch>

Co-authored-by: Stefan Agner <stefan@agner.ch>
2020-08-27 11:50:16 +02:00
Stefan Agner
4d6246be4d RPi4 fix WiFi with 802.11r fast roaming enabled (#733) (#830)
Add brcmfmac patch which adds 802.11r fast roaming support.
2020-08-22 15:08:14 +02:00
Stefan Agner
c6a1e668f4 Load loop module before starting the container (#824)
This makes sure that the kernel module loop is loaded, the loop devices
under /dev have been created before the container starts. Docker uses
the current /dev as template for the container /dev. If the loop entries
are missing, loop devices can't be used inside the container. Use
losetup which does not make assumption weather loop support is built-in.

This fixes issues seen on my machine when entering the build environment
the first time after build:
  mount: /mnt/data: failed to setup loop device for /export/data.ext4.
  make[2]: *** [package/pkg-generic.mk:364: /build/buildroot/output_rpi4/build/hassio-1.0.0/.stamp_target_installed] Error 32
2020-08-18 10:46:28 +02:00
Pascal Vizeli
b19f83d74d N2: fix possible issue with end up in not working device (#818) 2020-08-10 09:59:49 +02:00
Pascal Vizeli
a877e0c3dd Fix RPi4 with buildroot v2020.02.4 (#815) 2020-08-07 12:49:52 +02:00
Pascal Vizeli
265cb08e79 Bump version 5.2 2020-08-06 21:23:03 +02:00
Pascal Vizeli
c473aca701 Add support for USB wifi (#813)
Signed-off-by: Pascal Vizeli <pvizeli@syshack.ch>
2020-08-06 21:20:29 +02:00
Pascal Vizeli
f93f8e34b3 Kernel 5.4.56 / Odroid 5.7.13 (#812)
* Linux: Update kernel 5.4.56

* Odroid: Update kernel 5.7.13
2020-08-06 21:12:41 +02:00
Pascal Vizeli
fa53c7bc99 Update buildroot v2020.02.4 (#811)
* Update buildroot to 2020.02.4

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

* fix patches

Signed-off-by: Pascal Vizeli <pvizeli@syshack.ch>
2020-08-06 20:54:14 +02:00
Pascal Vizeli
1f4bd67f7e Improve the compatibility (#810)
* Improve the compatibility

* small style fix
2020-08-06 20:49:42 +02:00
Pascal Vizeli
0c427d0dee Update rauc 1.4 to fix mounted boot partition issue (#809)
* Update rauc 1.4 to fix mounted boot partition issue

* applay update

* fix characters

* fix CI

* Support old format

* fix mcopy prefix

* fix lint

* fix lint

* clean style

* Fix script

* fix syntax

* Support all system

* fix shell

* Fix script
2020-08-06 19:37:52 +02:00
Konpon96
701e4f78aa Enable systemd-logind (#797)
Signed-off-by: Konrad Ponichtera <konpon96@gmail.com>
2020-08-06 08:38:14 +02:00
Stefan Agner
cd5cb880ea Do not break device tree changes made by audio patches (#807) 2020-08-06 08:32:25 +02:00
Stefan Agner
cf033ec49d hardkernel: Fix build warning when building U-Boot (#806)
Drop const since we actually modify the buffer in meson_get_soc_rev
2020-08-05 12:07:53 +02:00
Pascal Vizeli
0ec506470a Fix amlogic patch for soc rev (#804) 2020-08-04 16:46:26 +02:00
cogneato
606da02461 Fix duplicate link and typo in documentation (#805) 2020-08-04 16:44:37 +02:00
Pascal Vizeli
e49f8fe630 Update kernel mainline 5.4.55 / Odroid 5.7.12 (#803)
* Odroid: Update kernel 5.7.12

* Linux: Update kernel 5.4.55

* Fix patch
2020-08-03 22:58:40 +02:00
Adam Griffiths
02836524ce Documentation (#769)
* spelling correction

* Restuctured, added "features", "supported hardware", intro for developers and links to the developer documentation.

* Spelling correction

* URL correction

* Documentation restructure

* Moving developer documentation index from top level README to Documentation directory README

* fixing URLS

* Restructuring and adding to board config

* Improving navigation of docs oon github

* New line after first heading

(https://github.com/home-assistant/operating-system/pull/768#discussion_r453336692)

Co-authored-by: Franck Nijhof <frenck@frenck.nl>

* Update README.md

https://github.com/home-assistant/operating-system/pull/768#discussion_r453336871

Co-authored-by: Franck Nijhof <frenck@frenck.nl>

* Update README.md

(https://github.com/home-assistant/operating-system/pull/768#discussion_r453336999)
- Surround headings with newlines
- ODROID
- Use dashes for unordered lists

Co-authored-by: Franck Nijhof <frenck@frenck.nl>

* Update README.md

- new line after heading
(https://github.com/home-assistant/operating-system/pull/768#discussion_r453337043)

Co-authored-by: Franck Nijhof <frenck@frenck.nl>

* Update README.md

- \- for unordered lists
- new line after heading
(https://github.com/home-assistant/operating-system/pull/768#discussion_r453337101)

Co-authored-by: Franck Nijhof <frenck@frenck.nl>

* Update README.md

- new line after heading
- \- for unordered lists
(https://github.com/home-assistant/operating-system/pull/768#discussion_r453337183)

Co-authored-by: Franck Nijhof <frenck@frenck.nl>

* Spelling correction, to ensure /Dpcumentation/kernel.mdhas the correct spelling

* capitalisation

* using - for unordered lists

* Adding links to config files

* fixing links to _defconfig files

* fixing link for rpi0_w

* fixing link for rpi3_64 and rpi4_64

* making the ova README consistent with the others

* formmating

* fixing numbered list

* fixing indent for sub-bullets

* questions regarding Tinker S and OVA support

* resolving PR comment from fabaff

* resolving PR comment from fabaff

* https://github.com/home-assistant/operating-system/pull/769\#discussion_r456774209

* Changing uBoot to U-Boot (https://github.com/home-assistant/operating-system/pull/769#discussion_r456774290)

* s/boot sector/eMMC boot partition/ (See https://github.com/home-assistant/operating-system/pull/769#discussion_r456774329)

* As per comments here:
https://github.com/home-assistant/operating-system/pull/769#discussion_r456791491
https://github.com/home-assistant/operating-system/pull/769#discussion_r456791580

* HassOS is no longer the official name (https://github.com/home-assistant/operating-system/pull/769#discussion_r456791863)

* Should be Home Assistant Operating System (or OS) (see https://community.home-assistant.io/t/changing-the-home-assistant-brand/167500/16). See also commennts here https://github.com/home-assistant/operating-system/pull/769#discussion_r456793030, taken in to account along with previous comments about this paragraph.

* s/HassOS/Home Assistant Operating System/

* 8Gb Pi 4 will be supported soon (see comment https://github.com/home-assistant/operating-system/pull/769#discussion_r459768349)

* resolving conflict with main dev branch.

Co-authored-by: Franck Nijhof <frenck@frenck.nl>
Co-authored-by: Pascal Vizeli <pvizeli@syshack.ch>
2020-08-03 16:31:36 +02:00
Pascal Vizeli
50176a0e3b Add support for snapshots/restore on OS level (#801) 2020-08-03 16:28:08 +02:00
Pascal Vizeli
06e7ee7efb Change VM naming handling (#794) 2020-07-29 11:19:00 +02:00
Stefan Agner
e08bbd7047 Add ODROID-N2+ support (#793)
* Add ODROID-N2+ support

Add ODROID-N2+ support with the new SoC revision c. Extend the U-Boot
script: Assume ODROID-N2 if the SoC revision is "a" (there are only "a"
revision SoCs on ODROID N2) and assume N2+ otherwise.

Currently using overclock mode as proposed in the upstream kernel patches.

* Update hassos-hook.sh

Co-authored-by: Pascal Vizeli <pascal.vizeli@syshack.ch>
2020-07-29 11:06:01 +02:00
Pascal Vizeli
653bcbe3ae Add functionts for RPi to handle kernel options (#792) 2020-07-27 12:09:43 +02:00
Pascal Vizeli
3700516097 Show board info on startup & Cleanup unused functionality (#784)
* Show board info on startup & Cleanup unused functionality

* Add patch for get env

* move patch
2020-07-27 11:54:25 +02:00
Pascal Vizeli
3fe09a4e6a Bump version to 5.1 2020-07-24 12:27:02 +02:00
Pascal Vizeli
2b8dc1c913 Fix deployment questions 2020-07-24 12:20:08 +02:00
Pascal Vizeli
9f7a846d6b RaspberryPi: Update kernel 4.19.127 - cc39f1c9f82f6fe5a437836811d906c709e0661c 2020-07-24 10:17:10 +00:00
Pascal Vizeli
466225806e Linux: Update kernel 5.4.53 2020-07-24 10:15:39 +00:00
Pascal Vizeli
8e42ad5536 Cleanup boot files & Kenrel 5.7.10 (#782)
* Odroid: Update kernel 5.7.10

* Cleanup boot files

* Fix patches
2020-07-23 18:52:01 +02:00
Pascal Vizeli
39e78a1014 fix lint 2020-07-23 12:20:50 +02:00
Stefan Agner
cc4a6ebf96 Allow to execute commands using enter.sh directly (#781)
This is useful e.g. if one just wants to run a build.
2020-07-22 23:40:45 +02:00
Pascal Vizeli
4a3837374f Fix linter 2020-07-22 17:53:10 +02:00
Pascal Vizeli
f70067c570 Add update script (#780) 2020-07-21 18:06:07 +02:00
Brad Simmons
24b6463fbb Update network.md for bad NetworkManager.conf link (#779)
Corrected bad link for Gnome NetworkManager.conf
2020-07-19 14:20:37 -07:00
Stefan Agner
78152db78f Add boot from USB mass storage device support for RPi 4 (#746) (#776)
* Backport USB PCIe/XHCI patches to U-Boot 2020.07

Backport relevant patches required to make PCIe/USB XHCI work.

* Backport/integrate PCIe device tree changes from upstream Linux

U-Boot uses the device tree provided by upstream Linux. Make sure the
device tree has the relevant chanages to make VL805 USB controller
reset work.

* Document RPi 4 USB mass storage support (#746)
2020-07-19 13:59:10 +02:00
Stefan Agner
985f3b8e3d Bump RPi 64-bit to U-Boot 2020.07 release to fix RPi 4 8GB boot (#740) (#775)
Unfortunately builds for 32-bit seem to lead to freezes. Conservatively
only update to 2020.07 for 64-bit builds.

Co-authored-by: Malcolm Lashley <mlashley@gmail.com>

Co-authored-by: Malcolm Lashley <mlashley@gmail.com>
2020-07-18 23:32:19 +02:00
kdhoermann
245dc7603f Add sound card support to OVA. (#770)
* Add sound card support to OVA.

* Audio device support for all platforms
2020-07-15 19:06:18 +02:00
Simon Opelt
53bbc43ff3 Add NUC (10) support info (#766) 2020-07-08 13:33:07 +02:00
Simon Opelt
ad6ac0a770 add out-of-tree intel e1000e ethernet module (#765)
* add intel-e1000e net module for nuc (e.g. i219v)

* disable mainline E1000E

* fix hash case

* add e1000e module make opts

* add missing newline

* remove redundant MD5

* Update intel-e1000e.hash

Co-authored-by: Pascal Vizeli <pascal.vizeli@syshack.ch>
2020-07-06 13:46:00 +02:00
cogneato
de67752a46 Update datactl docs (#756)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2020-07-05 11:58:42 +02:00
Pascal Vizeli
a5eb7ffc8e Fix tinker for 5.4.50 (#764) 2020-07-05 00:17:26 +02:00
Pascal Vizeli
b09e5b5688 Revert DTS rpi4 2020-07-03 07:38:38 +00:00
Sean Mooney
a4c65b3fd1 Update issue template (#760) 2020-07-02 15:09:36 -07:00
Pascal Vizeli
ec6f7978b5 cleanup patch 2020-07-02 13:22:09 +00:00
Pascal Vizeli
c9033551f2 Fix patch for 5.4.50 (#758) 2020-07-02 14:42:48 +02:00
Pascal Vizeli
375e688938 Update kernel 20200702 (#757)
* Odroid: Update kernel 5.7.7

* Linux: Update kernel 5.4.50

* RaspberryPi: Update kernel 4.19.127 - a03605b08ae73107100c72dc92c92adf0dde3e42

* Fix script

* Add bcm2711-rpi-cm4
2020-07-02 11:28:39 +02:00
Pascal Vizeli
9d6b3a1d0b Kernel improvments for Amlogic / Odroid (#747)
* Kernel improvments for Amlogic / Odroid

* Odroid: Update kernel 5.7.4

* Fix script

* include audio into kernel
2020-06-27 10:48:08 +02:00
thecode
43e4bc81d3 Add condition to run QEMU guest agent for QEMU hypervisor (#752)
The proposed changed is to run the qemu guest agent for QEMU hypervisor. QEMU hypervisor and KVM hypervisor are using the same guest agent.
systemd allow detecting the difference between the two hypervisors. The change is using OR trigger, meaning it will trigger if one of the "ConditionVirtualization" rules is true.
2020-06-27 10:47:28 +02:00
Pascal Vizeli
4bcba322ff Fix jitters during first update/boot (#742)
* Fix jitters during first update/boot

* Address comments

* fix lint
2020-06-15 14:48:58 +02:00
Pascal Vizeli
0991cc1c25 Fix version json name if image is missing (#741)
* Fix version json name if image is missing

* Update hassos-supervisor
2020-06-15 14:48:02 +02:00
Bram Kragten
83cbc37422 Add line about Raspberry Pi overlays (#736)
* Add line about Raspberry Pi overlays

* Update .github/ISSUE_TEMPLATE.md

Co-authored-by: Pascal Vizeli <pascal.vizeli@syshack.ch>

Co-authored-by: Pascal Vizeli <pascal.vizeli@syshack.ch>
2020-06-11 13:20:21 +02:00
Bram Kragten
0909462d51 Add overlay message (#735) 2020-06-11 11:44:40 +02:00
Franck Nijhof
27fc2de146 Fix missing wmv namespace in ovf definition (#732) 2020-06-08 15:36:38 +02:00
Pascal Vizeli
be7228c7e6 Bump wireguard linux compat for RPi kernel 2020-06-06 22:54:26 +00:00
Pascal Vizeli
e51b1bd9eb Make odroid upstream again (#724)
* Make odroid upstream again

* Fix question

* Linux 5.7

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

* Add patch

* Add DT sound

* fix build

* Fix kernel options

* working audio
2020-06-06 11:44:41 +02:00
Franck Nijhof
2706b4d866 Improve self healing capabilities of Supervisor service (#726)
* Improve self healing capabilities of Supervisor service

* Fixes shellcheck linter warnings
2020-06-05 23:28:05 +02:00
Franck Nijhof
83af2731a8 Fix Supervisor container name reference in hassos-supervisor service (#727) 2020-06-05 22:14:34 +02:00
Pascal Vizeli
f66fbda032 RaspberryPi move back to 4.19 Kernel (#723)
* RaspberryPi: Update kernel 4.19.126 - f6b3ac28f0a9137d4c24c0b8832e693bbd16f5b7

* RaspberryPi: Update firmware 7caead9416f64b2d33361c703fb243b8e157eba4

* Remove kernel for 5.4
2020-06-05 16:08:50 +02:00
Pascal Vizeli
d215e81fb1 Update kernel Upstream/RPi (#708)
* Linux: Update kernel 5.4.44

* RaspberryPi: Update kernel 5.4.42 - 3d1e5203531fd1791762f018538e670bf10f722c

* RaspberryPi: Update firmware f382cc150445b3ef07de941e4877a5890d665aa7
2020-06-03 13:36:26 +02:00
Pascal Vizeli
afe39c279b Fix RPi4 uart 2-5 (#706) 2020-06-02 23:32:49 +02:00
Pascal Vizeli
ee13d1fb45 Add emergency Console (#705)
* Add emergency Console

* fix lint
2020-06-02 23:28:13 +02:00
Pascal Vizeli
917f022614 Fix issue with RPi2 armhf / armv7 2020-06-02 21:56:41 +02:00
Sergey Avdeev
fc68bce7d9 Update home-assistant.ovf (#696) 2020-06-02 10:56:30 +02:00
Adorem
0363ddab37 Update link to operating-system/debugging in configuration.md (#699) 2020-05-30 11:23:35 +02:00
Adorem
f18345a6c4 Update link to partition.md (#698) 2020-05-30 11:23:05 +02:00
Pascal Vizeli
8b13cfd902 RaspberryPi: Update firmware 62fc8c01165a80021054a430182b504f7b877c2d 2020-05-27 20:22:25 +00:00
Pascal Vizeli
16313059d9 RaspberryPi: Update kernel 5.4.42 - 5e5024f643caa53ff59a6e00f40a9b55f7fc4e17 2020-05-27 20:20:20 +00:00
Pascal Vizeli
deb072cb76 Linux: Update kernel 5.4.43 2020-05-27 20:17:42 +00:00
Pascal Vizeli
b206787520 Fix issue with mbr partition remove on MBR (#694) 2020-05-27 16:30:07 +02:00
Pascal Vizeli
0db61e85b0 Fix issue with Odroid-N2 on USB (#693) 2020-05-27 15:54:44 +02:00
Pascal Vizeli
c3fba76142 Use odroid defconfig for XU4 (#690) 2020-05-27 11:01:28 +02:00
Pascal Vizeli
7fc9c7d03b Fix build issues with gcc (#685)
* Fix build issues with gcc

* fix qemu
2020-05-26 08:02:53 +02:00
Pascal Vizeli
70c41b5690 Fix doc 2020-05-25 11:34:29 +00:00
Pascal Vizeli
68522d2062 Bump version to 5.0 2020-05-25 13:33:07 +02:00
Pascal Vizeli
3bb6442117 Mark stable release 2020-05-25 11:31:18 +00:00
Pascal Vizeli
2b3e806e56 Cleanup U-boot 2020-05-25 07:24:03 +00:00
Pascal Vizeli
a034fc9997 RaspberryPi: Update firmware a6c9b6b48ce86ef2527586a50760d52f1b33f642 2020-05-25 07:07:51 +00:00
Pascal Vizeli
4861cc58ce Linux: Update kernel 5.4.42 2020-05-25 07:06:32 +00:00
Pascal Vizeli
3160b59730 RaspberryPi: Update kernel 5.4.42 - 79495a5ecdfba69de51e88701a69c42d09806d84 2020-05-25 07:06:10 +00:00
Pascal Vizeli
032af2f56d Odroid: Update kernel 5.4.41 - 237731e3d2c145bd711bd1dcad0479c912b9fb4f 2020-05-25 07:05:20 +00:00
Pascal Vizeli
035e3884d8 Update Buildroot 2020.02.2 (#682)
Signed-off-by: Pascal Vizeli <pvizeli@syshack.ch>
2020-05-20 17:32:11 +02:00
Pascal Vizeli
ce3c80641b cleanup-device (#681) 2020-05-19 21:29:57 +02:00
Pascal Vizeli
4eda8a1ff3 Wait until device is exists for moving data (#680)
* Wait until device is exists for moving data

* Update hassos-data

* Update hassos-data

* Update hassos-data
2020-05-19 15:21:08 +02:00
Pascal Vizeli
b410b70814 Update the old partition layout not just partial (#679) 2020-05-19 10:38:27 +02:00
Pascal Vizeli
eca72c9898 Fix vmware OS-Type for OVA (#677) 2020-05-18 11:43:45 +02:00
Fabian Affolter
71974edfd7 Update the README file (#666) 2020-05-14 09:27:11 +02:00
Fabian Affolter
613604ea74 Update style and static IPv4 address section (#667) 2020-05-14 09:25:31 +02:00
Fabian Affolter
6c62029a74 Fix typos (#668) 2020-05-14 09:21:53 +02:00
Fabian Affolter
a5209dc400 Fix typo and style (#669) 2020-05-14 09:17:04 +02:00
Fabian Affolter
1118335b1c Fix some typos and use the upstream project's spelling (#670) 2020-05-14 09:16:22 +02:00
Fabian Affolter
f96163f04e Keep the packages sorted and one per line (as above) (#672) 2020-05-14 08:54:18 +02:00
Fabian Affolter
b0dbbf963c Update spelling (#671) 2020-05-14 01:02:35 +02:00
Pascal Vizeli
a38bf6e75a Fix issue with loop devices (#659)
Signed-off-by: Pascal Vizeli <pvizeli@syshack.ch>
2020-05-08 10:21:40 +02:00
Pascal Vizeli
0d892dbf23 Remove wrong support on the docs for Tinker S (#658) 2020-05-08 09:38:48 +02:00
Pascal Vizeli
a403b790f7 Update docker proxy (#657) 2020-05-07 22:55:37 +02:00
Pascal Vizeli
43aa64bb86 Add CRDA packages (#656)
* Add CRDA packages

* add ova too
2020-05-07 10:38:00 +02:00
Pascal Vizeli
ba17e542c5 Fix nl80211 crda errors (#655) 2020-05-07 09:48:07 +02:00
Pascal Vizeli
73dedf35de Bump version 4.7 2020-05-06 11:51:10 +02:00
Pascal Vizeli
96c622b36f Update deployment.md 2020-05-06 11:50:19 +02:00
Pascal Vizeli
698f2bb7d4 Move to staging 2020-05-06 09:42:39 +00:00
Pascal Vizeli
be39da4855 RaspberryPi: Update firmware 7eff9f6774bb43bfd61e749a0b45ffddc98c2311 2020-05-06 09:41:24 +00:00
Pascal Vizeli
b14d0223c2 Linux: Update kernel 5.4.39 2020-05-06 09:35:40 +00:00
Pascal Vizeli
fcfd951f2b RaspberryPi: Update kernel 5.4.38 - c41ae7cf543c1d680b4ac1afae40ca5bb0a96661 2020-05-06 09:35:18 +00:00
Pascal Vizeli
fcefb1e515 expand 2020-05-06 08:33:48 +00:00
Pascal Vizeli
3070b52a3e fix spell 2020-05-06 08:29:26 +00:00
Pascal Vizeli
37639fc3ff cleanup badge 2020-05-06 08:27:59 +00:00
Pascal Vizeli
770bcb62a0 Update docs 2020-05-06 08:26:44 +00:00
Pascal Vizeli
b3530d1ce1 Allow easy move data partition (#651)
* Allow easy move data partition

* Cleanup handling systemd

* Improve handling

* fix pipeline

* pipeline

* fix shell handling

* fix scripts

* Add bin folder

* fix lint

* Fix service handling

* Fix loading

* hide output

* Fix handling
2020-05-06 00:00:28 +02:00
Pascal Vizeli
ba9d1bac1e Use older Kernel for N2 (#652)
* Use older Kernel for N2

* Update docs

* Update kernel-amlogic.config
2020-05-05 14:23:17 +02:00
Pascal Vizeli
db184bf5d3 Make machine-id persist (#649)
* Make machine-id persist

* update

* Adjustments

* cleanup

* fix cleanups

* small cleanup
2020-05-04 15:11:43 +02:00
Pascal Vizeli
15a80bb405 Odroid N2 - update boot firmware (#647) 2020-04-30 17:09:30 +02:00
Pascal Vizeli
f0b5be41fe Bugfix qemu agent 4.2.0 (#646) 2020-04-29 22:09:47 +02:00
Pascal Vizeli
517abe0ea9 Check keyring of ota update file (#645) 2020-04-29 14:49:32 +02:00
Pascal Vizeli
ca90fa515d Bump version 4.6 2020-04-29 12:43:10 +02:00
Pascal Vizeli
6605b1511f Kernel updates (#643)
* Odroid: Update kernel 5.35 - f2eb401e73e9b54432cf4234722cb4fad1b334f2

* RaspberryPi: Update kernel 5.4.35 - 9a583229eff3263202522945a594a9115d49fcc6

* Odroid: Update kernel 5.4.35 - f2eb401e73e9b54432cf4234722cb4fad1b334f2

* Fix script

* RaspberryPi: Update firmware 2b731476edc463f2d6b3d751cb47c515b4b5853f

* Add script for rpi update

* RaspberryPi: Update firmware 2b731476edc463f2d6b3d751cb47c515b4b5853f

* fix script
2020-04-29 11:16:38 +02:00
Pascal Vizeli
f8b24f4b70 Make odroid downstream (#642)
* Make odroid downstream

* Fix patch

* Fix config

* audio support exynos

* Cleanup scripts

* Fix commit message

* clean options

* Extend options

* Cleanup
2020-04-28 22:23:08 +02:00
Pascal Vizeli
ada03f6736 Update qemu guest agent 4.2.0 (#639) 2020-04-26 12:33:54 +02:00
Pascal Vizeli
04e679798a Fix workstation avahi handling & add NSS mdns to host (#638)
* Fix workstation avahi handling & add NSS mdns to host

* disable avahi daemon on internal
2020-04-26 11:19:28 +02:00
Pascal Vizeli
6a49aa1c2b Create OVA file from release (#636)
* Create OVA file from release

* Fix name & add boot flag

* revert name

* style cleanup

* Fix script

* Add cleanup
2020-04-26 01:09:51 +02:00
Pascal Vizeli
34b7bbd68d New approach for uboot and rpi 5.4 (#635)
* New approach for uboot and rpi 5.4

* fix dts

* Update firmware to next
2020-04-25 11:17:03 +02:00
Pascal Vizeli
c0d8e14c2a Rpi update (#633)
* RaspberryPi: Update kernel 9daf4531948808f4a1913e6767fae6f421fb7896

* Update firmware
2020-04-24 18:28:08 +02:00
Pascal Vizeli
c017b43456 Tinker linux5.4 (#632)
* Migrate Tinker to linux 5.4

* Update bootloader
2020-04-24 15:12:57 +02:00
Pascal Vizeli
98f13d9282 RPi 5.4 (#631)
* RaspberryPi: Update kernel 68fd7d52c9fc7c40b996d6b91acaf3e03b2c3ea0

* update kernel config

* update bootloader

* Fix boot

* work

* fix boot

* Fix script

* optimize script
2020-04-23 23:05:28 +02:00
Pascal Vizeli
5ef1e83197 Update apparmor 2.13.4 (#630) 2020-04-22 22:54:58 +02:00
Pascal Vizeli
4df2ab6013 Use default CloudFlare anycast time service (#629) 2020-04-21 14:41:13 +02:00
Pascal Vizeli
45c62716cb New way to install/run supervisor + plugins (#620)
* Use new layout for CLI/Supervisor

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

* Fix install script

* Fix config

* Add docs

* Fix shellcheck

* Fix issue

* rename package

* Fix build

* Fix apparmor
2020-04-21 14:37:25 +02:00
Pascal Vizeli
48f3045854 Support NVMe & update barebox (#626)
* Support NVMe & Update barebox

* same for ova
2020-04-19 01:33:45 +02:00
Pascal Vizeli
3281cbd365 Optimize GCC9 & busybox (#623)
* Optimize GCC9 & busybox

* Move to o2 for stable

* fix shell issue
2020-04-17 14:44:34 +02:00
Pascal Vizeli
5a6678147e Update buildroot 2020.02.01 (#622)
* Update buildroot 2020.02.01

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

* Fix LN

* Fix wpa

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

* Fix lint

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

* fix-network

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

* Fix script

Signed-off-by: Pascal Vizeli <pvizeli@syshack.ch>
2020-04-16 20:03:01 +02:00
Pascal Vizeli
0c2b5aff65 Update azure-pipelines-release.yml 2020-04-15 16:21:55 +02:00
Pascal Vizeli
9dca4fc837 Update enter.sh 2020-04-15 16:08:16 +02:00
Pascal Vizeli
fff08c6101 Fix script 2020-04-15 14:06:39 +00:00
Pascal Vizeli
1022053aef Fix enter script & permission 2020-04-15 11:55:53 +00:00
Pascal Vizeli
0629c58d31 Update azure-pipelines-release.yml for Azure Pipelines 2020-04-15 12:37:36 +02:00
Pascal Vizeli
bc2afe33b0 Update rpi kernel/firmware (#621)
* RaspberryPi: Update kernel 2e79fd01b4b9a7eea5acb234ad4e4cdca8449d5a

* Update rpi firmware & kernel
2020-04-15 11:52:11 +02:00
Pascal Vizeli
2c963fcd05 Add dbus config for pulseaudio (#619) 2020-04-03 14:53:42 +02:00
lucagiove
d4a403b640 Fixed bluetooth-bcm43xx build (#616)
Brutally added patch command after download.

> I'm not a buildroot expert but the best way seemed to move the
> upstream btuart download in a PRE_PATCH_HOOK so that standard
> buildroot way of patching can be applied.

I've been finally able to test it and the PRE_PATCH_HOOK does not work
seems it's never triggered.
I tried also th POST_RSYNC_HOOK that works but still patch is not
applied.
I think that patch is not detected (odd, patch naming seems complient)
or since source code is not downloaded buildroot thinks that patch is
not needed, couldn't sort it out.
2020-04-03 10:27:55 +02:00
Perry Naseck
89cb68f7b7 Add USB video kernel support (#609)
* Add USB video kernel support for intel_nuc

* Add USB video kernel support for all boards

* Support USB video capture devices only, not tuners
2020-04-03 10:26:06 +02:00
lucagiove
c371e45144 Attempt to fix bluetooth communication problem on rpi3b (#614)
This problem is referenced in many different issues, some of them:
Bluetooth: hci0: Frame reassembly failed (-84)
https://github.com/raspberrypi/firmware/issues/1150

Error communicating with local bluetooth adapter (RPi3)
https://github.com/home-assistant/core/issues/30147

Xiaomi BLE Temperature and Humidity sensor no longer working after update from 0.95.4 to .096.5
https://github.com/home-assistant/core/issues/25704

Xiaomi BLE Temperature and Humidity sensor
https://github.com/home-assistant/core/issues/24313#issuecomment-578554315

Solution seemed to reeduce the boud rate of the serial connection to BT
on rpi3b where flow control is missing.

The patch to the original btuart file is to reduce the baudrate only for
rpi3b models where flow control is missing:

-		$HCIATTACH /dev/serial1 bcm43xx 921600 noflow - $BDADDR
+		$HCIATTACH /dev/serial1 bcm43xx 460800 noflow - $BDADDR

I'm not a buildroot expert but the best way seemed to move the
upstream btuart download in a PRE_PATCH_HOOK so that standard
buildroot way of patching can be applied.
2020-03-31 11:03:14 +02:00
Pascal Vizeli
2e7e039899 Optimize SND kernel module handling (#606)
* Optimize SND kernel module handling

* Update alsa-base.conf

* Update alsa-base.conf
2020-03-10 10:28:45 +01:00
Pascal Vizeli
c6e01d3468 Bump version to 4.5 2020-03-07 14:08:39 +01:00
Pascal Vizeli
5336e17a06 Update Kernel 5.4.24 (#603) 2020-03-07 14:07:05 +01:00
Pascal Vizeli
a017fae49d OS: Update CLI 21 2020-03-07 11:13:34 +00:00
Pascal Vizeli
96d59c2a40 OS: Update supervisor 209 2020-03-07 11:13:30 +00:00
Pascal Vizeli
1f23c3ac72 Replace on upload 2020-03-06 11:59:02 +01:00
Pascal Vizeli
3f26a61d9a Update RaspberryPi Kernel & Firmware 4.19.106 (#601)
* RaspberryPi: Update kernel ecb440abef61d198478b6e598b3510ff6680090a

* Update RaspberryPi kernel 4.19.106
2020-03-05 16:33:48 +01:00
nepozs
6a728d916f Update nuc.md (#591) 2020-02-20 21:42:23 +01:00
Pascal Vizeli
7f0ab07752 Bump version to 4.4 2020-02-18 13:25:39 +01:00
Pascal Vizeli
7d7a52732d Fix supervisor name on cli config (#588) 2020-02-17 13:25:44 +01:00
Pascal Vizeli
2d6f692a4c Rename Hass.io (#587) 2020-02-17 09:53:09 +01:00
Pascal Vizeli
279a4c4db1 Change uptime for offline update (#585) 2020-02-16 11:46:41 +01:00
Pascal Vizeli
a65db13c9e Support better armv7 emulation N2/C2 (#584)
* Support better armv7 emulation N2/C2

* Update kernel.config
2020-02-16 11:46:25 +01:00
Pascal Vizeli
a592fc9866 Change handling for SPL based images (#578)
* Change handling for SPL based images

* Fix script

* Fix path for rauc-hook
2020-02-10 14:52:03 +01:00
Pascal Vizeli
66c1b016c9 Bump version to 4.3 2020-02-06 18:57:20 +01:00
Pascal Vizeli
f9a3bccf7b Update Kernel 5.4.18 (#572) 2020-02-06 18:40:30 +01:00
Pascal Vizeli
1c95022184 Add support for audio & thermal & small FTD fixes (#571) 2020-02-06 18:36:44 +01:00
Pascal Vizeli
d4deca66b2 OS: Update CLI 16 2020-02-06 13:40:17 +00:00
Pascal Vizeli
1c2ef541ea OS: Update supervisor 199 2020-02-06 13:39:50 +00:00
Jason Hines
55d84758a2 Update bluetooth.md (#569)
grammatical changes
2020-02-06 08:27:22 +01:00
Pascal Vizeli
82010866b1 Bump version to 4.2 2020-02-05 16:58:30 +01:00
Pascal Vizeli
294ad6cd58 Merge branch 'master' into dev 2020-02-05 16:29:11 +01:00
Pascal Vizeli
bfdedbffe6 Support usb audio all (#566)
* Add support for SND USB audio over all

* Cleanup
2020-02-05 16:25:58 +01:00
Pascal Vizeli
d409e328be Add CEC & audo support for odroid C2/N2 (#565) 2020-02-05 16:16:22 +01:00
Etzion Bar-Noy
a6ae25da06 BT support for all platforms (#563)
* Update azure-pipelines-release.yml for Azure Pipelines

* Update azure-pipelines-release.yml for Azure Pipelines

* Update azure-pipelines-release.yml for Azure Pipelines

* Fix double LINUX_HEADERS

* Add support for TI USB 3410 or 5052 serial devices (#542)

* Added BT support to device-support.conf file, and removed BT support from kernel.config file

* Removed BT support, as it was moved to device-support.config file

* Added new line at the end of the file

* Changed:
CONFIG_BT_HCIBTUSB from 'm' to 'y'
CONFIG_BT_HCIBTUSB_BCM from 'y' to 'm'
CONFIG_BT_HCIBTUSB_RTL from 'y' to 'm'

* Update device-support.config

Co-authored-by: Pascal Vizeli <pascal.vizeli@syshack.ch>
2020-02-04 18:03:51 +01:00
Pascal Vizeli
bc1266a44b [skip ci] Change group 2020-02-03 14:30:37 +01:00
Pascal Vizeli
c1eb0ac4cd Update docker 19.03.5 on builder (#561) 2020-02-03 12:12:07 +01:00
Pascal Vizeli
9939422d10 Add more SND audio codec modules (#560)
* Add more SND audio codec modules

* Update kernel.config
2020-02-03 11:06:35 +01:00
Pascal Vizeli
51cf310472 Fix odroid issues (#556)
* Adjust kernel for C2/N2 & Kenrel 5.4.16

* Update docs

* Add script to fix mac with efuse

* Fix script

* update description

* Fix script

* Use u-boot patch

* Fix patch
2020-02-01 21:57:20 +01:00
Pascal Vizeli
f38a31eee3 Update README.md 2020-01-17 13:20:18 +01:00
Pascal Vizeli
e388662422 Add support for TI USB 3410 or 5052 serial devices (#542) 2020-01-13 14:55:08 +00:00
Pascal Vizeli
0258ef641d Fix double LINUX_HEADERS 2020-01-13 14:54:57 +00:00
Pascal Vizeli
bf29dd3971 Fix double LINUX_HEADERS 2020-01-13 15:54:13 +01:00
Pascal Vizeli
7314ce1963 Add support for TI USB 3410 or 5052 serial devices (#542) 2020-01-13 15:36:56 +01:00
Pascal Vizeli
70d69d3518 Bump version 4.1 2020-01-13 15:09:24 +01:00
Pascal Vizeli
574c883207 Merge pull request #540 from home-assistant/dev
Release 4.0
2020-01-13 15:02:39 +01:00
Pascal Vizeli
5812ed014e Default Kernel 5.4 (#541) 2020-01-13 15:02:21 +01:00
Pascal Vizeli
13e4578b7a Migrate Buildroot 2019.02.9 (#539) 2020-01-13 14:47:52 +01:00
Pascal Vizeli
d6a700565e Update RPI firmware (#537) 2020-01-12 11:03:59 +01:00
Pascal Vizeli
d9d8c96c70 Add CONFIG_VIRT_DRIVERS to ova (#536) 2020-01-12 10:21:10 +01:00
Pascal Vizeli
329caf6c1c Cleanup 2020-01-11 16:52:26 +00:00
Pascal Vizeli
27ee3ef98f VirtIO MMIO kernel module (#534)
* VirtIO MMIO kernel module

* Update kernel.config

* Update kernel.config
2020-01-11 11:50:28 +01:00
Pascal Vizeli
63967cf6c0 Buildroot 2019.02.8 (#533)
* Update Buildroot 2019.02.8

* Update patches
2020-01-11 11:24:41 +01:00
Pascal Vizeli
a874bb5fb5 RaspberryPi update stable u-boot / Kernel + Firmware (#532)
* RaspberryPi: Update kernel b4180819d3a119c56133d6a2d8301775bf6c60bb

* Update kernel docs

* Update firmware
2020-01-10 14:16:32 +01:00
Pascal Vizeli
dc4ee61809 Remove orangepi (#531) 2020-01-09 23:16:03 +01:00
Pascal Vizeli
febc4473d3 New supervisor / Adjust rauc handling (#530)
* OS: Update supervisor 194

* Remove old rauc mark code

* OS: Update supervisor 195

* Adjust dockerd
2020-01-09 23:02:46 +01:00
Pascal Vizeli
7b379e648c Initial support Odroid N2 / Linux 5.4 (#523)
* Initial version Odroid N2

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

* fix some issue

* optimize

* cleanup kernel config

* Fix HDMI output

* Migrate to upstream u-boot

* Use own HA image

* Add kernel for odroid xu4

* Add N2 to release pipeline

* Use uboot 2020.01 / fix version hardkernel

* Fix image
2020-01-07 18:13:24 +01:00
Pascal Vizeli
e4bff62923 Create ISSUE_TEMPLATE.md 2019-12-18 10:27:09 +01:00
Pascal Vizeli
3839e43428 OS: Update supervisor 193 2019-12-13 16:14:08 +00:00
Pascal Vizeli
9e8cccdf82 OS: Update CLI 15 2019-12-13 16:13:49 +00:00
Pascal Vizeli
f87032c302 Some cleanups (#511) 2019-12-13 15:48:22 +01:00
Pascal Vizeli
30aa775450 Fix Kernel For odroid XU4/C2 (#510) 2019-12-13 09:13:41 +01:00
Pascal Vizeli
308fccd7b1 Kernel updates 4.19.88 (#509)
* Update kernel 4.19.88

* Fix asus
2019-12-12 12:28:31 +01:00
Franck Nijhof
6e7bbdbe63 Fix auto expand disk for GPT (#508) 2019-12-12 12:12:49 +01:00
Pascal Vizeli
4c9a4aadc8 Add qemu guest agent (#505)
* Add qemu guest agent

* Fix make file

* Fix targets

* Convert it to autobuild

* Fix paths

* fix target

* Fix options

* Fix startup

* Update kernel

* Fix state dir

* Only load on kvm
2019-12-12 10:44:41 +01:00
Pascal Vizeli
d340e79bea Fix RPI issues with u-boot / firmware (#503)
* Fix RPI issues with u-boot / firmware

* Cleanup bluetooth handling

* Use RC4 for u-boot on rpi4
2019-12-10 19:07:16 +01:00
Pascal Vizeli
09cf67cb73 RaspberryPi: Update kernel 988cc7beacc150756c3fbe40646afcf8438b741b 2019-12-10 09:14:09 +00:00
Pascal Vizeli
0ef7c459ca Fix RPI bluetooth issues (#502)
* Fix RPI bluetooth issues

* Add to buildroot
2019-12-10 10:13:08 +01:00
Pascal Vizeli
bf9795f70b Update RPI firmware (#501)
* Update RPI firmware

* Update buildroot
2019-12-10 10:10:59 +01:00
Robin Harmsen
712dcf9f74 Update azure-pipelines-ci.yml (#486) 2019-10-03 12:16:30 +02:00
Robin Harmsen
c42dba1623 Update azure-pipelines-release.yml (#487) 2019-10-03 12:16:13 +02:00
Oscar Calvo
d44d271c28 Add support for SMS integrations with USB/GSM modem dongles (#485)
* Add support for USB/GSM modem dongles

* Apply PR feedback
2019-09-30 22:57:45 +02:00
mbo18
501b4bd9f4 Update network.md (#446)
* Update network.md

Solve https://community.home-assistant.io/t/setting-a-static-ip-on-hassio-hassos/63378

* Update network.md

Forgot to update the text
2019-09-26 11:29:54 +02:00
capstan1
2fd14442c7 new subheading 'configure network' (#443)
added a new subheading to make clear what the page is about
2019-09-26 11:16:14 +02:00
capstan1
4efd038805 make clear the usb drive needs to be connected only while configuration (#442) 2019-09-26 11:15:18 +02:00
Pascal Vizeli
3e1adf8325 Delete build.md 2019-09-25 23:03:14 +02:00
Pascal Vizeli
60e4d1a3cd Don't hang on serial interupts (#483) 2019-09-23 09:11:45 +02:00
Pascal Vizeli
a13089516e Bump version 4.0 / development 2019-09-13 14:15:47 +02:00
Pascal Vizeli
2e3e518982 Merge branch 'dev' of https://github.com/home-assistant/hassos into dev 2019-09-13 12:13:32 +00:00
Pascal Vizeli
c12ae11ed7 OS: Update supervisor 187 2019-09-13 12:13:28 +00:00
Pascal Vizeli
956badb2fd Change to RC 2019-09-13 14:11:53 +02:00
Pascal Vizeli
e71400cd5c Fix handling with FB on RPi4 (#477) 2019-09-13 14:08:47 +02:00
Pascal Vizeli
6668d77b93 Fix rpi firmware checksum 2019-09-12 15:57:15 +00:00
Pascal Vizeli
629f13f3d9 Update kernels to 4.19.72 (#476) 2019-09-12 16:45:44 +02:00
Pascal Vizeli
dfe261a715 rpi-update-firmware (#475) 2019-09-12 16:34:12 +02:00
Pascal Vizeli
756a0c9b13 RaspberryPi: Update kernel bd3452c84c206a171fa4cf5f6ddfab5687667228 2019-09-12 14:20:36 +00:00
Pascal Vizeli
49948b577e Remove ModemManager (#474) 2019-09-12 16:11:36 +02:00
Pascal Vizeli
61516914ce Fix screen issue with RPi4 (#472) 2019-09-09 17:10:28 +02:00
Moshe Levi
c424b295b1 create cache dir if not exist (#471)
Signed-off-by: Moshe Levi <moshele@mellanox.com>
2019-09-09 16:06:53 +02:00
Pascal Vizeli
c37d0ecd76 Bump version 3.5 2019-08-28 15:55:12 +02:00
Pascal Vizeli
37615a135b Merge pull request #460 from home-assistant/dev
Release 3.4
2019-08-28 15:54:47 +02:00
Pascal Vizeli
abf9a3b7c3 OS: Update supervisor 184 2019-08-28 13:53:54 +00:00
Pascal Vizeli
c87ac63e9b Update Some Boards to 4.19.68 2019-08-28 13:52:51 +00:00
Pascal Vizeli
28d262eecd Add simple fb for 64bit 2019-08-28 13:16:50 +00:00
Pascal Vizeli
d1d3593d65 Fix boot (#459)
* Fix permission check

* Remove fails on copy

* Disable FB_BCM2708

* Don't touch the memory map from first stage

* bootcode.bin is not needed on rpi4
2019-08-28 10:32:46 +02:00
Pascal Vizeli
9f06ffbbd5 Rpi update (#457)
* RaspberryPi: Update kernel 64f2b1b0a728a13373f9c74c6247ecf17af2caef

* Update documentation & Script

* Update firmware

* Update bluetooth firmware

* Update wifi driver
2019-08-24 14:57:16 +02:00
Pascal Vizeli
b963b1a587 Build: update script to do also commits 2019-08-23 15:39:09 +00:00
Pascal Vizeli
998c8365c0 OS: Update CLI 14 2019-08-23 15:38:29 +00:00
Pascal Vizeli
70e43c02fb OS: Update supervisor 183 2019-08-23 15:37:39 +00:00
Ryan Bray
fed40532c1 rpi: Add USB boot support (#440) 2019-07-23 14:28:22 +02:00
Alexey Pristavkin
08fac89fb0 Note that disk controller must be SATA not SCSI. (#424)
The image hang on startup on the SCSI controller, which is the default controller type for custom VMs in VMWare Fusion.
2019-07-22 16:49:39 +02:00
Pascal Vizeli
e7da2e0779 Fix defconfig name for rpi zero (#436) 2019-07-17 22:07:25 +02:00
Pascal Vizeli
3d999f8936 Update release-drafter.yml 2019-07-16 14:23:28 +02:00
Pascal Vizeli
b26d4bbb40 Pump version 3.4 2019-07-16 14:18:43 +02:00
Pascal Vizeli
e5734a9024 Merge pull request #432 from home-assistant/dev
Release 3.3
2019-07-16 14:18:13 +02:00
Pascal Vizeli
8c691e8e56 Update Hass.io Supervisor (#431) 2019-07-16 13:47:03 +02:00
Pascal Vizeli
14d91e094a RaspberryPi 4 (#428)
* RaspberryPi4 support

* Update kernel file

* Fix lint

* Fix uboot defconfig

* Update firmware for rpi4

* fix naming

* Add support for 64bit

* fix path for dts
2019-07-16 09:44:29 +02:00
Pascal Vizeli
2f40d76b6f Update bootloader RPi (#427) 2019-07-15 15:47:54 +02:00
Pascal Vizeli
219e9ca1ef Raspberry Pi Firmware/Kernel update (#426)
* Raspberry Pi Firmware/Kernel update

* Fix checksum

* Update Kernel doc
2019-07-15 14:44:22 +02:00
Ryan Bray
f3f9bd9697 Odroid xu4 updates (#425)
* Odroid-XU4: Attempt to fix some eMMC devices

* Linux-firmware: add s5p to buildroot

* Odroid-XU4: fix uboot env size
2019-07-15 09:24:43 +02:00
Franck Nijhof
2e205cafd3 Merge pull request #423 from rbrenton/patch-1
Update ova.md
2019-07-13 15:59:16 +02:00
Franck Nijhof
4d7e0977ac ✏️ More improvements 2019-07-13 15:38:59 +02:00
Brenton
0f93fcc477 Update ova.md
I had issues with "Other Linux (64-bit)", and "Other 4.x or later Linux (64-bit)" appears to be the correct choice.
2019-07-08 18:41:03 -04:00
Pascal Vizeli
fa6f7ac74d Fix build error raspberry pi3 2019-06-30 23:29:34 +02:00
Pascal Vizeli
081f7124d7 Update azure-pipelines-release.yml for Azure Pipelines 2019-06-28 11:17:25 +00:00
Pascal Vizeli
2caaf89186 Update azure-pipelines-release.yml for Azure Pipelines 2019-06-28 13:16:49 +02:00
Pascal Vizeli
5a612922f3 Update azure-pipelines-release.yml for Azure Pipelines 2019-06-28 11:10:51 +00:00
Pascal Vizeli
9f584f2c6a Update azure-pipelines-release.yml for Azure Pipelines 2019-06-28 13:10:31 +02:00
Pascal Vizeli
ee4b3a101e Update azure-pipelines-release.yml for Azure Pipelines 2019-06-28 11:09:32 +00:00
Pascal Vizeli
a04fa47883 Update azure-pipelines-release.yml for Azure Pipelines 2019-06-28 13:08:06 +02:00
Pascal Vizeli
efc61a57d9 Bump version 3.3 2019-06-28 12:17:17 +02:00
Pascal Vizeli
1e627fed34 Merge pull request #420 from home-assistant/dev
Release 3.2
2019-06-28 12:16:42 +02:00
Pascal Vizeli
20afea35d9 Update kernel patch for 4.19 (#419) 2019-06-28 10:35:20 +02:00
Pascal Vizeli
db8127c253 Update kernel 4.19.56 (#418) 2019-06-27 22:32:57 +02:00
Pascal Vizeli
e03ea97133 Cleanup host linux header pinning (#417)
* Cleanup host linux header pinning

* Update intel_nuc_defconfig
2019-06-27 22:26:29 +02:00
Pascal Vizeli
3d858e3bb6 Create azure-pipelines-release.yml 2019-06-27 18:05:36 +02:00
Pascal Vizeli
a0cba05830 Update and rename azure-pipelines.yml to azure-pipelines-ci.yml 2019-06-27 18:04:20 +02:00
Pascal Vizeli
868935f8a0 Update azure-pipelines.yml for Azure Pipelines 2019-06-27 17:11:36 +02:00
Pascal Vizeli
6581ec4028 Update Supervisor 167 (#416) 2019-06-27 16:32:19 +02:00
Pascal Vizeli
41d3f59002 Update Buildroot to 2019.02.3 (#415)
* Update Buildroot to 2019-02.3

* Fix enter script

* Update ova_defconfig

* Fix network manager

* Remove runc patches

* Use same docker version

* Fix build

* Fix vmtools

* Fix depens

* Fix handling with tempfiles

* Fix permission handling

* Fix cp

* Cleanup

* Fix mounts
2019-06-27 11:58:50 +02:00
Fabio Fantoni
bb201fb842 Add cifs support (#408)
* Add cifs support in hassos kernel

This make possible mount remote smb share in addons (if they have cifs-utils)

* Update hassos.config
2019-05-19 11:22:02 +02:00
Pascal Vizeli
a55aaf7f38 Update azure-pipelines.yml for Azure Pipelines 2019-05-15 14:36:22 +02:00
Piotr Witek
edcca58e38 ID parameter in file have to be the same as name of file (#400) 2019-05-15 13:55:05 +02:00
Pascal Vizeli
d1c2715402 Update azure-pipelines.yml for Azure Pipelines 2019-05-14 23:34:02 +02:00
Pascal Vizeli
1febb31647 Lint hostapp.sh and robust umount (#406)
* Lint hostapp.sh and robust umount

* Update hostapp.sh

* Update Dockerfile

* Update Dockerfile

* Update hassos.mk

* Update hostapp.sh

* Update Dockerfile

* Update hassos.mk

* Update hostapp.sh

* Update hdd-image.sh

* Update entry.sh
2019-05-14 23:22:48 +02:00
Pascal Vizeli
d5e6cc78d5 Update azure-pipelines.yml for Azure Pipelines 2019-05-14 01:23:58 +02:00
Pascal Vizeli
e8d14bdc60 Support build as user (#405)
* Support build as user

* Update enter.sh

* Update Dockerfile

* Update enter.sh

* Update entry.sh
2019-05-14 01:16:40 +02:00
Pascal Vizeli
5f1fadad29 Update azure-pipelines.yml for Azure Pipelines 2019-05-14 01:14:17 +02:00
Pascal Vizeli
5c38357ba6 Update HassOS App to use alpine 3.9 (#404) 2019-05-14 00:52:23 +02:00
Pascal Vizeli
27aa12911d Update azure-pipelines.yml 2019-05-13 23:31:52 +02:00
Pascal Vizeli
c662ef86d7 Update azure-pipelines.yml for Azure Pipelines 2019-05-13 22:33:54 +02:00
Pascal Vizeli
450a8295f7 Delete ghr 2019-05-13 22:08:24 +02:00
Pascal Vizeli
a13e7ad3e1 Update azure-pipelines.yml for Azure Pipelines 2019-05-13 22:07:59 +02:00
Pascal Vizeli
3077b9423d Update azure-pipelines.yml for Azure Pipelines 2019-05-13 21:53:47 +02:00
Pascal Vizeli
6204b3d165 Update azure-pipelines.yml 2019-05-13 21:31:43 +02:00
Pascal Vizeli
1624e26447 Update azure-pipelines.yml 2019-05-13 21:23:59 +02:00
Pascal Vizeli
cec027a6e6 Update azure-pipelines.yml 2019-05-13 18:48:28 +02:00
Pascal Vizeli
d347532c96 Change docker entry point script to allow additional commands (#403)
* Change docker entry point script to allow additional commands

* Delete Dockerfile
2019-05-13 17:43:11 +02:00
Pascal Vizeli
d9c2347e7c Update azure-pipelines.yml for Azure Pipelines 2019-05-13 10:38:43 +02:00
Pascal Vizeli
2e7c93428d Update azure-pipelines.yml for Azure Pipelines 2019-05-13 10:27:29 +02:00
Pascal Vizeli
4455e9a907 Update azure-pipelines.yml for Azure Pipelines 2019-05-13 08:50:10 +02:00
Pascal Vizeli
5d16ac24c3 Update azure-pipelines.yml for Azure Pipelines 2019-05-13 08:33:05 +02:00
Pascal Vizeli
f715486c58 Update azure-pipelines.yml for Azure Pipelines 2019-05-12 23:18:38 +02:00
Pascal Vizeli
7c77a692ce Update azure-pipelines.yml for Azure Pipelines 2019-05-12 23:13:54 +02:00
Pascal Vizeli
ac5121f067 Update azure-pipelines.yml for Azure Pipelines 2019-05-12 23:07:23 +02:00
Pascal Vizeli
e34b01755e Update azure-pipelines.yml for Azure Pipelines 2019-05-12 23:03:55 +02:00
Pascal Vizeli
5971ee1a46 Update Dockerfile 2019-05-12 22:57:52 +02:00
Pascal Vizeli
6bda70a451 Update azure-pipelines.yml for Azure Pipelines 2019-05-12 22:57:04 +02:00
Pascal Vizeli
9a9e2cc5df Update azure-pipelines.yml for Azure Pipelines 2019-05-12 22:53:15 +02:00
Pascal Vizeli
3dbe3e9ea7 Update azure-pipelines.yml for Azure Pipelines 2019-05-12 22:44:50 +02:00
Pascal Vizeli
3ad7dc3714 Update azure-pipelines.yml for Azure Pipelines 2019-05-12 22:35:50 +02:00
Pascal Vizeli
1a3bcf6486 Update azure-pipelines.yml for Azure Pipelines 2019-05-12 22:33:18 +02:00
Pascal Vizeli
6ddbfabfae Update azure-pipelines.yml for Azure Pipelines 2019-05-12 22:22:11 +02:00
Pascal Vizeli
c72e61e542 Update Dockerfile 2019-05-12 22:10:56 +02:00
Pascal Vizeli
f8081d7829 Create Dockerfile 2019-05-12 22:10:19 +02:00
Pascal Vizeli
27c25da90d Update azure-pipelines.yml for Azure Pipelines 2019-05-12 21:49:13 +02:00
Pascal Vizeli
d47e169bd5 Update azure-pipelines.yml for Azure Pipelines 2019-05-12 21:46:36 +02:00
Pascal Vizeli
6510cf9619 Update azure-pipelines.yml for Azure Pipelines 2019-05-12 21:42:23 +02:00
Pascal Vizeli
1419e72dbc Update azure-pipelines.yml for Azure Pipelines 2019-05-12 21:41:36 +02:00
Pascal Vizeli
30448dbc5a Update azure-pipelines.yml for Azure Pipelines 2019-05-12 21:40:32 +02:00
Pascal Vizeli
85c82c4479 Update azure-pipelines.yml for Azure Pipelines 2019-05-12 21:37:25 +02:00
Pascal Vizeli
e21f59111c Update README.md 2019-05-12 19:08:31 +02:00
Pascal Vizeli
543075222e Bump version 3.2 2019-05-12 19:05:25 +02:00
Pascal Vizeli
661b39565f Merge pull request #402 from home-assistant/dev
Version 3.1
2019-05-12 18:47:08 +02:00
Pascal Vizeli
7439de3d25 Supervisor: update Hass.io to 163 2019-05-12 09:03:02 +00:00
Pascal Vizeli
c9f4879780 Update Hass.io cli to 11 2019-05-12 09:02:31 +00:00
Pascal Vizeli
60cf077e48 Update Dockerfile 2019-05-12 11:00:07 +02:00
Pascal Vizeli
06e65b5734 Update release-drafter.yml 2019-05-11 11:10:00 +02:00
Pascal Vizeli
ac70f1bfac Update release-drafter.yml 2019-05-11 11:01:47 +02:00
Pascal Vizeli
1fc912eaf9 Create release-drafter.yml 2019-05-11 10:59:36 +02:00
Pascal Vizeli
83a0981113 Update Dockerfile 2019-05-09 10:14:23 +02:00
Pascal Vizeli
79dc34c531 Update Dockerfile 2019-05-09 10:11:42 +02:00
Pascal Vizeli
6ca35fb1af Create .hadolint.yaml 2019-05-09 10:10:53 +02:00
Pascal Vizeli
e273883077 Update Dockerfile 2019-05-09 10:08:58 +02:00
Pascal Vizeli
0fb9102e69 Set up CI with Azure Pipelines
[skip ci]
2019-05-09 10:00:51 +02:00
Pascal Vizeli
9a4027e9d4 Delete main.workflow 2019-05-09 09:43:43 +02:00
Maël Kimmerlin
5e82060124 Adding /etc/modprobe.d folder for module configuration (#397)
* Add a /etc/modprobe.d folder

populated using a config USB stick with folder modprobe

* Add the documentation for the modprobe folder
2019-05-08 13:15:48 +02:00
TonyApuzzo
d861ecae6f Add PROCPS_NG package to enable portainer stats (#398)
portainer requires ability to run 'ps -e' which is not supported
by busybox's ps.

This fixes https://github.com/hassio-addons/addon-portainer/issues/3

Tested on odroid_xu4 target.
2019-05-07 18:15:18 +02:00
Jan
061ab0ed8a Added Vmware specific kernel modules to support paravirtualized drivers (#395)
This adds VMXNET3 support and the paravirtualized SCSI controller along with virtual sockets for the guest additions and memory ballooning so that unused memory can be shared with other Vmware guests. Tested on ESXi 6.5 and it works great.
2019-04-29 22:58:03 +02:00
Pascal Vizeli
722f27d3c8 Create stale.yml 2019-04-16 11:05:56 +02:00
Ryan Bray
57ec2bb25c Merge pull request #391 from home-assistant/rbray89-patch-1
Update odroid-xu4.md to add additional eMMC instruction
2019-04-05 09:09:51 -06:00
Ryan Bray
f0c38a20bc Update odroid-xu4.md 2019-04-05 09:05:30 -06:00
Ryan Bray
267b61405d Update odroid-xu4.md 2019-04-05 08:56:29 -06:00
Franck Nijhof
98b14be0f6 OS: Adds universal TUN/TAP kernel support (#390) 2019-04-05 12:12:22 +02:00
Pascal Vizeli
fa20ccdd94 OS: Enable systemd-coredump (#382) 2019-03-20 18:10:44 +01:00
Pascal Vizeli
454964877d Add support for privileged supervisor (#381) 2019-03-18 12:45:15 +01:00
Pascal Vizeli
16fcb84886 Update CLI v9 with armv7 (#379)
* Update CLI v9 with armv7

* Update rpi2_defconfig
2019-03-18 10:36:25 +01:00
Pascal Vizeli
1d40ffd4f9 OS: Fix boot problem (#370)
* OS: Fix boot problem

* Update var-lib-docker.mount

* Update var-lib-docker.mount

* Update var-lib-docker.mount
2019-03-18 09:53:22 +01:00
Pascal Vizeli
a21871f4af OS: Disable coredump (#365) 2019-02-22 21:24:58 +01:00
Pascal Vizeli
ba01ed951b Fix workflow (#363)
* Fix workflow

* Update rauc.sh

* Update rootfs-layer.sh

* Delete .travis.yml
2019-02-22 00:51:46 +01:00
Pascal Vizeli
7308bad953 Update main.workflow (#362) 2019-02-22 00:28:52 +01:00
Pascal Vizeli
9415e2c5d0 Bump version 3.1 2019-02-21 16:04:58 +01:00
Pascal Vizeli
aa392e78a6 Merge pull request #361 from home-assistant/dev
Release 3.0
2019-02-21 16:04:25 +01:00
Pascal Vizeli
2703ec31b9 Supervisor: update Hass.io to 144 2019-02-21 14:24:45 +00:00
Pascal Vizeli
8cd0ca2cfe Rpi: update kernel 4.14.98 42f1859 (#360)
* Rpi: update kernel 4.14.98

* Update kernel
2019-02-21 15:23:42 +01:00
Pascal Vizeli
c317941767 Fix cve-2019-5736 (#359)
* Fix CVE-2019-5736

* Fix cve-2019-5736
2019-02-21 12:07:59 +01:00
TonyApuzzo
d1cf8e0016 Odroid: Fix ring buffer errors by applying (#355) 2019-02-15 15:56:14 +01:00
Pascal Vizeli
188fbc340e OVA: update kernel 4.19.20 (#353)
* OVA: update kernel 4.19.20

* Update kernel.md
2019-02-11 11:16:15 +01:00
mbo18
5e8f910714 Documentation: Tinker eMMC 2019-02-10 23:35:21 +01:00
Pascal Vizeli
30b599acc6 Tinker: update kernel 4.19 (#349) 2019-02-09 11:45:13 +01:00
Pascal Vizeli
7b4be3b4f7 OS: change zram swap to 25% of available memory (#348) 2019-02-08 11:53:31 +01:00
Ryan Bray
662eda3c3b Update odroid-xu4.md
Fix bullets
2019-02-06 02:15:51 -07:00
Ryan Bray
aad41225f4 Create odroid-xu4.md 2019-02-06 02:12:47 -07:00
Pascal Vizeli
d697c4bc8e Odroid XU4: Use ondemand (#341) 2019-02-03 11:55:15 +01:00
Pascal Vizeli
2a2e97ddf9 Build: speedup uboot kernel load (#338) 2019-02-03 11:47:45 +01:00
Ryan Bray
32fe415515 OdroidC2: fix long-running ethernet issues (#337) 2019-01-31 09:03:29 +01:00
Pascal Vizeli
292e4b3515 OVA: update kernel 4.19.18 (#335) 2019-01-28 17:49:36 +01:00
Pascal Vizeli
1a337ab937 OVA: fix openvmtools load (#334) 2019-01-28 16:31:32 +01:00
Bryan Berg
43828c2555 Migrate from LABEL= to /dev/disk/by-label/* (#318) 2019-01-28 09:58:40 +01:00
Simon Holzmayer
73a875c263 Fix modules import from USB-Stick (#331) 2019-01-25 14:27:02 +01:00
Pascal Vizeli
c270ac5c9a Bump version 3.0 2019-01-18 00:12:30 +01:00
Pascal Vizeli
c37a6d4c8c Merge pull request #323 from home-assistant/dev
Prepare new release tree
2019-01-18 00:11:34 +01:00
Pascal Vizeli
d677e2d5b2 OS: update supervisor to version 142 2019-01-17 23:05:49 +00:00
Pascal Vizeli
2d44748080 OS: update cli to version 8 2019-01-17 23:05:18 +00:00
Pascal Vizeli
b959d9c805 OS: update AppArmor to 2.13.2 (#325) 2019-01-18 00:02:40 +01:00
Pascal Vizeli
5e9ba3bb7a OS: Add kernel support for wireguard (#324) 2019-01-17 21:49:52 +01:00
Ryan Bray
3d91ac2374 Odroid-C2: Updating to 4.19 kernel (#321)
* Odroid-C2: Updating to 4.19 kernel

* Fix and tested config.
2019-01-17 12:16:13 +01:00
Pascal Vizeli
b0f95fcaec Update deployment.md 2019-01-17 11:27:38 +01:00
Ryan Bray
fffa24ed1e Odroid-XU4: Initial commit (#303) 2019-01-17 11:02:47 +01:00
Jasper van der Neut - Stulen
07bec45d8a NUC: Enable bluetooth support (#320)
* NUC: Enable bluetooth support

Enable kernel support for the intel bt-wifi-combo devices and usb
bluetooth modules. This will make Bluetooth and Bluetooth LE device
trackers work.

* BUILD: Make bluetooth kernel config the same for all boards.

The defconfig for a board may include more drivers, but this
set should be enough to get device trackers working. BLE support
is also enabled.

* Revert "BUILD: Make bluetooth kernel config the same for all boards."

This reverts commit 58f9b7c651.
2019-01-14 23:55:35 +01:00
Jasper van der Neut - Stulen
5835b6a683 OS: Fix unmount of busy mounts (#319)
dhclient and systemd-journald will be running during shutdown and are
only killed in the final shutdown fase. Unmounting the directories
they use will fail. Use lazy unmouting to fix this.
2019-01-13 21:04:57 +01:00
Pascal Vizeli
2d870984e2 Merge pull request #312 from home-assistant/dev
Release 2.5
2019-01-09 22:23:28 +01:00
Alastair D'Silva
e858c774d2 Opi prime updates (#315)
* Backport support for Linux 4.19

Signed-off-by: Alastair D'Silva <alastair@d-silva.org>

* OPI: Update Orange Pi Prime config to use Linux 4.19

Signed-off-by: Alastair D'Silva <alastair@d-silva.org>

* OPI: Enable I2C0 on the Orange Pi Prime

Signed-off-by: Alastair D'Silva <alastair@d-silva.org>

* OPI: Enable GPIO via sysfs

Signed-off-by: Alastair D'Silva <alastair@d-silva.org>
2019-01-09 16:27:20 +01:00
Jasper van der Neut - Stulen
4aa07960d8 BUILD: Build with make (#306)
* Use a Makefile to configure,build or clean the images.

* Update docs

* Remove old build script.
2019-01-04 22:01:43 +01:00
Jasper van der Neut - Stulen
5fc32d2eb7 OS: Run ash as login shell, so $PATH is set correctly. (#305) 2019-01-04 22:00:03 +01:00
Pascal Vizeli
2be8aecfbd OS: Fix docker-init (#302) 2019-01-03 21:47:44 +01:00
Pascal Vizeli
e0e87141c6 Build: Enable LTO for GCC/Binutils (#301)
* Build: Enable LTO for GCC/Binutils

* Update odroid_c2_defconfig

* Update ova_defconfig

* Update rpi0_w_defconfig

* Update rpi2_defconfig

* Update rpi3_64_defconfig

* Update rpi3_defconfig

* Update rpi_defconfig

* Update tinker_defconfig
2019-01-01 15:46:33 +01:00
Pascal Vizeli
76553bf984 OPI: Fix kernel config path 2019-01-01 15:17:03 +01:00
Alastair D'Silva
96e7e57fc4 Add support for the Orange Pi Prime (#298)
* Add support for the Orange Pi Prime

Signed-off-by: Alastair D'Silva <alastair@d-silva.org>

* Update opi_prime_defconfig

* Delete kernel.config

* Update opi_prime_defconfig
2018-12-31 11:58:41 +01:00
Pascal Vizeli
26d427ef1d Update README.md 2018-12-31 11:18:22 +01:00
Pascal Vizeli
f7eb215016 Build: Update buildroot 2018-11.1 (#300)
* Build: Update buildroot 2018-11.1

* Add cli to image
2018-12-31 02:32:21 +01:00
Jasper van der Neut - Stulen
8810b0409c OS: Make use of hardware rng devices (#299) 2018-12-30 23:04:01 +01:00
Pascal Vizeli
5adc9d0080 Kernel: Add support for RFLink (#297) 2018-12-29 22:25:57 +01:00
Jasper van der Neut - Stulen
59dba51f38 OVA: Make image bootable from virtio disk (#296) 2018-12-29 18:24:02 +01:00
Jasper van der Neut - Stulen
f711123582 Documentation: Add for intel-nuc board (#295)
Documentation: Add for intel-nuc board
2018-12-28 22:38:50 +01:00
Pascal Vizeli
3cbe6c9816 Bump version to 2.5 2018-12-28 17:42:33 +01:00
Pascal Vizeli
a5aaf01042 Build: Split kernel files for maintaining (#294)
* Build: Split kernel files for maintaining

* Update hassos.config

* Update odroid_c2_defconfig

* Update ova_defconfig

* Update rpi0_w_defconfig

* Update rpi2_defconfig

* Update rpi3_64_defconfig

* Update rpi_defconfig

* Update tinker_defconfig

* Update hassos.config

* Update intel_nuc_defconfig

* Delete misc.config

* Update hassos.config

* Update intel_nuc_defconfig

* Update odroid_c2_defconfig

* Update ova_defconfig

* Update rpi0_w_defconfig

* Update rpi2_defconfig

* Update rpi3_64_defconfig

* Update rpi3_defconfig

* Update rpi_defconfig

* Update tinker_defconfig

* Update hassos.config
2018-12-28 17:34:30 +01:00
Pascal Vizeli
934b276a3c Revert "Build: Split kernel files for maintaining (#291)" (#293)
This reverts commit 615daddbf6.
2018-12-28 14:16:31 +01:00
Pascal Vizeli
615daddbf6 Build: Split kernel files for maintaining (#291)
* Build: Split kernel files for maintaining

* Update hassos.config

* Update odroid_c2_defconfig

* Update ova_defconfig

* Update rpi0_w_defconfig

* Update rpi2_defconfig

* Update rpi3_64_defconfig

* Update rpi_defconfig

* Update tinker_defconfig

* Update hassos.config

* Update intel_nuc_defconfig
2018-12-28 14:15:22 +01:00
Jasper van der Neut - Stulen
9bc61e6318 Intel NUC support (#288)
* Add hassos configuration for intel-nuc:

 * Cloned from ova config
 * Use default amd64 kernel config
 * Add support for Intel IGB type nics
 * Add rng-tools for better random

* Build with iwlwifi module & firmware (only newer modules with iwlmvm firmware)

* Include firmware for 915, which should improve power efficiency.
Build display and audio as a module to make it all work.

* Add intel_nuc to build script.

* Change directory structure as proposed by @pvizeli

*  * Fix paths
 * Remove unused patch directory

* Unduplicate barebox config.
2018-12-28 11:09:24 +01:00
Pascal Vizeli
a860374d64 Merge pull request #285 from home-assistant/dev
Release 2.4
2018-12-18 21:21:11 +01:00
Justin Otherguy
42c2f88588 Build: Replace "~/hassos-cache" with "$HOME/hassos-cache" (#281)
Build: Replace "~/hassos-cache" with "$HOME/hassos-cache"
2018-12-10 23:54:50 +01:00
Pascal Vizeli
2107a6b64d Build: Add patch source to tinker (#278) 2018-12-06 10:20:42 +01:00
Ryan Bray
75e721e77e OdroidC2: Updating Kernel (#277) 2018-12-06 10:09:16 +01:00
Pascal Vizeli
fd707ba270 Build: Fix bug with glibc dt-utils (#275)
* Fix bug with glibc dt-utils

* Fix openvmtools

* Fix openvmtools p2
2018-12-05 07:33:15 +01:00
Pascal Vizeli
76fad70ebe Update buildroot 2018.11 (#274) 2018-12-02 16:25:21 +01:00
Pascal Vizeli
d6ad746fda Documentation: maintain local changes for ntp (#271) 2018-11-30 17:00:56 +01:00
Pascal Vizeli
60c9013535 Travis (#269)
* Update build-all.sh

* Delete ovf-create.sh

* Update patches.sh

* Update hdd-image.sh

* Create .travis.yml

* Update hdd-image.sh

* Update hdd-image.sh

* Update hdd-image.sh

* Update hdd-image.sh

* Update ota.sh

* Update post-build.sh

* Update post-image.sh

* Update rauc.sh

* Update rootfs-layer.sh

* Update hassos-cli

* Update hassos-supervisor

* Update hassos-config

* Update hassos-apparmor

* Update hassos-expand

* Update hassos-persists-journald

* Update hassos-rate

* Update hassos-hook.sh

* Update hassos-hook.sh

* Rename uboot-boot.sh to uboot-boot.ush

* Rename uboot-boot.sh to uboot-boot.ush

* Update hassos-hook.sh

* Rename uboot-boot.sh to uboot-boot.ush

* Rename uboot-boot.sh to uboot-boot.ush

* Update hassos-hook.sh

* Update odroid_c2_defconfig

* Update rpi0_w_defconfig

* Update rpi2_defconfig

* Update rpi3_64_defconfig

* Update rpi3_defconfig

* Update rpi_defconfig

* Update tinker_defconfig

* Update enter.sh

* Update .travis.yml
2018-11-30 16:22:04 +01:00
Pascal Vizeli
ae0a2fe264 OS: move service scripts into libexec 2018-11-29 16:01:16 +00:00
Pascal Vizeli
bc3cc20629 Don't use a bind mount for docker data (#266) 2018-11-29 15:20:58 +01:00
Pascal Vizeli
d94095a565 OVA: Add driver support for Xen, Hyper-V (#265)
* OVA: Add driver support for Xen, Hyper-V

* Fix devices
2018-11-28 01:04:18 +01:00
Pascal Vizeli
8ed63a9aab Fix tini static for docker (#263) 2018-11-27 21:34:54 +01:00
Pascal Vizeli
27a94565ea Update containerd to 1.2.0 (#262) 2018-11-27 09:20:21 +01:00
Pascal Vizeli
d46e2a808f Revert "Update containerd to 1.2.0 (#260)" (#261)
This reverts commit 50bc0451d0.
2018-11-27 00:06:46 +01:00
Pascal Vizeli
50bc0451d0 Update containerd to 1.2.0 (#260) 2018-11-26 16:35:54 +01:00
Pascal Vizeli
5ff51846e2 Build: Support VDI, VDHX, VMDK (#259)
* Support VDI, VDHX, VMDK

* Update hassos-hook.sh

* Update hdd-image.sh
2018-11-26 12:14:44 +01:00
Pascal Vizeli
4411307353 Buildroot 2018-11 (#258)
* Update to buildroot 2018.11

* containerd update

* runc update

* runc docker engine

* runc docker proxy

* update rpi firmware

* update network manager

* update dhcpd

* update wait on network

* update rpi wifi

* revert glibc
2018-11-26 11:04:01 +01:00
Pascal Vizeli
a9bbc7babe Bump version 2.4 2018-11-25 16:31:10 +01:00
Pascal Vizeli
80f5fe0722 Delete release-drafter.yml 2018-11-23 08:06:20 +01:00
Pascal Vizeli
519acca46d CLI: Update to version 7 2018-11-22 23:52:50 +00:00
Pascal Vizeli
566641bf8a Supervisor: Update to version 140 2018-11-22 23:52:29 +00:00
Pascal Vizeli
4d99243c91 Merge pull request #256 from home-assistant/dev
Release 2.3
2018-11-23 00:47:07 +01:00
Pascal Vizeli
18640da277 Merge branch 'dev' of https://github.com/home-assistant/hassos into dev 2018-11-22 14:45:25 +00:00
Pascal Vizeli
5351b542ff Raspberry: fix wrong patch folder in config p2 2018-11-22 14:44:54 +00:00
Pascal Vizeli
033e153d49 Delete move.yml 2018-11-22 14:48:18 +01:00
Pascal Vizeli
ad898040ac Create release-drafter.yml 2018-11-22 14:48:09 +01:00
Pascal Vizeli
9e29a12f95 Raspberry: fix wrong patch folder in config 2018-11-22 12:24:13 +00:00
Pascal Vizeli
0ab78a97c7 Tinker: update kernel 4.14.82 2018-11-21 14:57:01 +00:00
Pascal Vizeli
43c423243a OVA: update kernel 4.14.82 2018-11-21 10:14:58 +00:00
Pascal Vizeli
19488834e4 Raspberry: update kernel 4.14.81 2018-11-21 10:13:28 +00:00
Pascal Vizeli
dc35208efe OS: allow set NTP (#252)
* OS: allow set NTP

* Create etc-systemd-timesyncd.conf.mount

* Update hassos-config

* Update configuration.md

* add link

* Update Documentation/configuration.md

Co-Authored-By: pvizeli <pascal.vizeli@syshack.ch>
2018-11-21 00:28:40 +01:00
Simon Holzmayer
2435ca9065 provide a message when the OTA is skipped (#255)
Closes #249
2018-11-20 15:57:58 +01:00
cogneato
404efdee52 clarity and grammar fixes (#248) 2018-11-16 16:34:13 +01:00
Joeboyc2
cbd9b45adc Updated the fine nmcli command (#243) 2018-11-14 21:26:07 +01:00
seanodell
56992c6a77 Documentation: Add hidden=true comment for Wifi routers not broadcasting SSID (#241) 2018-11-05 20:45:24 +01:00
thomasvs
47bb76acec Clarify the format of the address field to avoid people accidentally swapping IP address of hassio vs. gateway. (#237) 2018-11-01 13:45:41 +01:00
Pascal Vizeli
caf708e14a Raspberry: Bugfix not try to load Bluetooth (#235) 2018-10-29 22:42:47 +01:00
Simon Holzmayer
809abbfde2 Fixed keeping name of udev rules after usb import (#232)
Closes #231
2018-10-29 16:01:29 +01:00
Pascal Vizeli
a2363d9a27 OS: bugfix acpid service file (#229)
* OS: bugfix acpid service file

* Update busybox-acpid.service
2018-10-29 16:00:20 +01:00
Josh Cooper
5cdf66c2c8 Typo fix (#228)
* typo fix

stands instead of stays

* typo fix 2
2018-10-28 00:04:59 +02:00
Pascal Vizeli
a7fa7efbf9 Raspberry: update kernel 4.14.78 2018-10-27 13:07:12 +00:00
Pascal Vizeli
976e9b0bce OVA: update kernel 4.14.78 2018-10-27 12:07:46 +00:00
Ryan Bray
960e11dc4f Uboot bootstate (#215)
* Uboot: cleaning up bootstate env import/export.

* Tinker: Add potential eMMC boot support.
2018-10-26 11:36:29 +02:00
Pascal Vizeli
2291e8599e 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-25 21:59:58 +02:00
Dave
bcb9c3fa1f Remove smart quotes and fix typo (#222)
Both of these create errors when copy pasting to follow the instructions:
  - Remove smart quotes from around "HassOS default"
  - Changing typo of 'system_connections' to 'system-connections'
2018-10-24 15:55:09 +02:00
Johannes Truschnigg
b827a90a35 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-24 15:54:26 +02:00
Johannes Truschnigg
921dd693dd Add informal "getting started with development" document (#220) 2018-10-24 15:52:45 +02:00
Pascal Vizeli
005cbc0b89 OS: use newer docker run command (#217)
* OS: use newer docker run command

* Update hassos-supervisor
2018-10-16 16:32:00 +02:00
Robert Schindler
482e6f7a7b Added 8021q kernel module for VLAN support (#216) 2018-10-13 17:58:13 +02:00
Pascal Vizeli
b83bfc5910 Bump version 2018-10-13 17:57:22 +02:00
Pascal Vizeli
c475daf889 build: tuning dockerignore 2018-10-11 20:56:11 +02:00
Pascal Vizeli
dac76b1632 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-11 20:49:20 +02:00
Johannes Truschnigg
faa371191f 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-10 11:34:06 +02:00
Makrand Gupta
8cde7f9192 Fixed typo in 'address' property name for Static IP (#208) 2018-10-10 11:31:59 +02:00
Pascal Vizeli
1112a10509 Raspberry: Fix power options 2018-09-24 16:30:04 +02:00
borpin
ad9f21fdfb Update documentation for a static IPV4 address via nmcli (#199)
* Update documentation for a static IPV4 address via nmcli

This update documents a method to change to a Static IPV4 address using the NetworkManager CLI (nmcli).

Happy for the formatting to be modified to suit local convention.

I cannot be more specific about how to get into the base OS as I don't know!

* Additional nmcli commands for dns and gateway

I found that there is a need to add in the dns and gateway IP addresses otherwise there was no route out.  I note there are a number of issues alive re this routing problem e.g. https://github.com/home-assistant/home-assistant/issues/15221

* Update network.md
2018-09-20 11:48:57 +02:00
Ryan Kladar
55cc60fc8e MYLAN_SECRED_KEY should be MYLAN_SECRET_KEY, no? (#196)
Changed the placeholder secret key name spelling mistake.
2018-09-17 23:07:08 +02:00
Pascal Vizeli
075799aaa8 Raspberrypi: Performance on Raspberry Pi due to governor (#193)
* Raspberrypi: Performance on Raspberry Pi due to governor

* Update rpi0_w_defconfig

* Update rpi2_defconfig

* Update rpi3_defconfig

* Update rpi_defconfig

* Update rpi3_64_defconfig
2018-09-10 12:22:52 +02:00
Johannes Truschnigg
3733a07bac 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-04 21:30:32 +02:00
Ryan Bray
eb553bec07 Odroid-C2: updating kernel to 4.14.67 (#176) 2018-08-26 22:09:49 +02:00
Pascal Vizeli
803bfc8391 Merge pull request #177 from home-assistant/dev
Release 2.2
2018-08-26 10:06:14 +02:00
Pascal Vizeli
e7e2dc2aad Raspberry: fix path for config.txt 2018-08-25 22:37:47 +00:00
Pascal Vizeli
352072cc5a Supervisor: Update to version 127 2018-08-25 21:13:11 +00:00
Pascal Vizeli
5d90fa9e20 Merge pull request #175 from home-assistant/kernel
Latest kernel updates/bugfixes
2018-08-25 23:10:07 +02:00
Pascal Vizeli
54389be443 Raspberry: Bump Firmware for 4.14.66 2018-08-25 21:07:50 +00:00
Pascal Vizeli
ae8dec9f72 Documentation: Update Kernel infos 2018-08-25 20:49:46 +00:00
Pascal Vizeli
064ee9ef84 Raspberry: update kernel 4.14.66 2018-08-25 20:47:18 +00:00
Pascal Vizeli
21e3a30012 Tinker: update kernel 4.14.67 2018-08-25 20:44:10 +00:00
Pascal Vizeli
8d86fa9ec9 OVA: update kernel 4.14.67 2018-08-25 20:43:50 +00:00
Pascal Vizeli
1ead97f64a raspberry: Use new config.txt (#174) 2018-08-25 22:40:17 +02:00
Pascal Vizeli
703f0168bf odroid-c2: Add device to auto build list (#173) 2018-08-25 22:38:52 +02:00
Pascal Vizeli
7cea5a829f Merge pull request #172 from home-assistant/ota-odriod
odroid-c2: initial import
2018-08-25 22:13:26 +02:00
Dmitri Pribysh
0bc81f78ec Fix syntax highlighting in network docs (#171) 2018-08-25 21:40:15 +02:00
Ryan Bray
331336a2d4 Odroid-C2: Fix documentation typo/formatting 2018-08-25 11:48:42 -06:00
Ryan Bray
8086b55acd Odroid-C2: Updating Documentation 2018-08-25 11:45:59 -06:00
Pascal Vizeli
2a0d551667 Bump version 2.2 2018-08-25 16:46:35 +00:00
Pascal Vizeli
61b0b333f0 ota: skeep mbr 2018-08-25 07:52:46 +00:00
Ryan Bray
dc0f6367cb Odroid-C2: Build Fixes, correct root partition 2018-08-24 22:40:15 -06:00
Pascal Vizeli
486161f2d8 Fix uboot 2018-08-25 00:37:00 +00:00
Pascal Vizeli
9441f6b16e Fix uboot 2018-08-24 23:05:05 +00:00
Ryan Bray
514c59796f Odroid-c2: Moving to 4.14.36 kernel 2018-08-24 22:52:18 +00:00
Pascal Vizeli
ebf84216e9 cleanup 2018-08-24 22:46:03 +00:00
Pascal Vizeli
74ff13e25e P1 2018-08-24 21:50:29 +00:00
Pascal Vizeli
9b170812d6 Cleanup odroid 2018-08-22 22:15:08 +00:00
Ryan Bray
3b45011982 Reverting 4.17 buildroot changes 2018-08-21 03:05:25 -06:00
Ryan Bray
8e1af1313b Odroid: Allow booting from eMMC, Use bootstate partition rather than env file 2018-08-21 02:59:30 -06:00
Ryan Bray
0f8010bc90 Odroid-C2: Move to 4.17 kernel, rework directories 2018-08-21 02:56:00 -06:00
Pascal Vizeli
7006a5fd64 Merge pull request #162 from rbray89/dev
Adding Support for Odroid C2
2018-08-19 19:14:36 +02:00
Ryan Bray
170ed2db00 updating to proper homeassistant image 2018-08-17 02:19:19 -06:00
Ryan Bray
ef40d38b12 rename hardkernel-sbl to hardkernel-boot 2018-08-16 22:24:11 -06:00
Ryan Bray
d144f72868 Odroidc2: boot arg cleanup 2018-08-16 22:24:11 -06:00
Ryan Bray
11088580c5 odroid-c2: Initial Support
Working:
* Ethernet
* Resize of Data
* RAUC boot marking/fetching
* CMD Line into HASSOS and Linux

Partially working:
* USB (requires 1+ devices in at boot. Seems to be a kernel/dt issue.)

Untested:
* RAUC Update
* HDMI

Not working:
* Homeassistant
** We see:
hassio > ha info
The HTTP request failed with the error: Get http://hassio/homeassistant/info: dial tcp 172.30.32.2:80: getsockopt: connection refused
2018-08-16 22:24:11 -06:00
Fabian Affolter
5c8f8bea48 Minor changes 2018-08-15 08:30:15 +02:00
Fabian Affolter
8bb3732934 Fix typos 2018-08-15 08:27:52 +02:00
Fabian Affolter
86f88aae0a Minor changes 2018-08-15 08:26:12 +02:00
Fabian Affolter
10e310d8b5 Minor changes 2018-08-15 08:24:24 +02:00
Pascal Vizeli
6467f343cd Merge pull request #158 from home-assistant/doc-rpi
Documentation: RPI, disable bluetooth for serial console
2018-08-11 23:21:19 +02:00
Pascal Vizeli
e20249676a Documentation: RPI, disable bluetooth for serial console 2018-08-11 23:20:37 +02:00
Pascal Vizeli
67e722b032 Merge pull request #157 from home-assistant/dev
Beta 2.1
2018-08-11 21:46:24 +02:00
Pascal Vizeli
518df77e05 Merge branch 'master' into dev 2018-08-11 21:45:46 +02:00
Pascal Vizeli
202b267d09 os: add spl mbr 2018-08-11 11:03:50 +00:00
Pascal Vizeli
5ad184f943 os: use hyprid for SPL to fix windows 2018-08-11 11:02:15 +00:00
Pascal Vizeli
6ab6cd7ff4 os: revert gpt fix / not needed 2018-08-11 10:35:43 +00:00
Pascal Vizeli
a2c6107685 os: fix GPT alligne with SPL images 2018-08-11 08:56:46 +00:00
Pascal Vizeli
5f24bd5574 build: optimize vmdk 2018-08-10 15:10:38 +00:00
Pascal Vizeli
ef61756566 Documentation: Raspeberry Pi I2C (#147) 2018-08-10 12:18:45 +02:00
Pascal Vizeli
7a3d3ae502 tinker: use a other address for boot config 2018-08-10 00:40:55 +02:00
Pascal Vizeli
4346220e27 os: fix bootstate link 2018-08-08 15:09:08 +00:00
Pascal Vizeli
12b5731e20 os: fix u-boot env size (#153)
* os: fix u-boot env size

* Delete fw_env.config
2018-08-08 12:48:07 +02:00
Pascal Vizeli
72a3aec55b tinker: fix bluetooth forking 2018-08-07 20:28:55 +00:00
Pascal Vizeli
9ef96373a9 Update buildroot 2018.05.1 / u-boot (#150)
* Update buildroot 2018.05.1 / u-boot

* Cleanup

* Fix bl
2018-08-07 16:45:12 +02:00
Pascal Vizeli
bbe4c47574 os: improve fileenv u-boot (#148) 2018-08-06 23:45:12 +02:00
Pascal Vizeli
1dc2392f15 Fix some build errors (#146)
* Fix folder

* Add tinker board to build all

* Fix download URL

* Revert uart patch

* Fix link p2

* Fix cmdline
2018-08-06 00:51:12 +02:00
Pascal Vizeli
c5e85a625f OS: Update supervisor 123 2018-08-05 10:22:34 +00:00
Pascal Vizeli
fbb45e1544 tinker: Initial support (#140)
* tinker: initial support

* Fix info

* Fix uboot defconfig

* Split kernel config

* Fix name

* Add post-image

* Init different boot

* Add SPL images

* Dynamic rauc config

* Support SPL for OTA

* Fix expand script style

* Fix SPL

* Bump build u-boot

* Cleanup

* Add cmd for scritps

* Use kernel from armbian

* Fix u-boot

* Add bluetooth support

* Fix bt

* Fix env

* Change uart debug like rpi

* move config
2018-08-03 13:21:55 +02:00
Pascal Vizeli
48500a6c6e rpi: Update kernel & firmware 4.14.58 (#139) 2018-07-29 00:10:24 +02:00
Pascal Vizeli
ae58be25ad OVA: Update kernel to 4.14.59 (#138) 2018-07-28 23:52:06 +02:00
Pascal Vizeli
42087b40c5 OVA: Add support for Aeotec Zstick (#132) 2018-07-28 23:39:03 +02:00
Pascal Vizeli
e4b99ea7c0 OS: Update supervisor 121 (#137) 2018-07-28 23:38:40 +02:00
Pascal Vizeli
233e097cc4 fix wireless settings (#124) 2018-07-19 10:50:46 +02:00
Pascal Vizeli
e093875e66 OVA: Fix serial support (#119)
OVA: Fix serial support
2018-07-18 16:07:06 +02:00
Pascal Vizeli
312766e962 Add support for VIRTIO (#118)
* Add support for VIRTIO

* Update kernel.config
2018-07-18 11:57:31 +02:00
Pascal Vizeli
e3ceea2058 Allow more USB serial device on OVA (#115)
* Allow more USB serial device on OVA

* Update kernel.config
2018-07-17 09:57:35 +02:00
Robin
49edc087b0 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-17 09:48:30 +02:00
Pascal Vizeli
75cd510283 Fix prevent device tree on rpi (#107)
* Fix prevent device tree

* Update uboot-boot.sh

* Update rauc-hook

* Update rauc-hook
2018-07-15 21:40:28 +02:00
Pascal Vizeli
3847d13b1a Update OVA kernel to 4.14.55 (#108) 2018-07-15 21:40:09 +02:00
Pascal Vizeli
eaab4a7a86 Raspberry Pi node of 64bit (#103) 2018-07-14 11:07:18 +02:00
DubhAd
d5953e13be Grammar and language tweaks (#101)
Some grammar and language tweaks
2018-07-14 09:01:36 +00:00
DubhAd
ac2a1883a2 Grammar and language tweaks (#101)
Some grammar and language tweaks
2018-07-14 11:00:13 +02:00
Pascal Vizeli
85c9aa4191 Fix handling with resolv.conf (#99) 2018-07-13 18:29:34 +02:00
Pascal Vizeli
a7b16cd051 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 09:52:45 +02:00
Pascal Vizeli
d7129fb57c Update docker & new publish (#96) 2018-07-12 12:59:45 +02:00
Pascal Vizeli
1254c6162c Update Documentation (#95)
* Update deployment.md

* Update raspberrypi.md

* Update raspberrypi.md

* Update raspberrypi.md
2018-07-12 12:50:28 +02:00
Pascal Vizeli
95a2844265 Fix boot menu (#94)
* Fix boot menu

* Update action
2018-07-10 14:53:29 +02:00
Pascal Vizeli
5ce7331001 Update bluetooth docs & add udev rules (#92)
* Update bluetooth docs

* add udev rules

* Add cmp to build

* Create bluetooth.md
2018-07-10 10:11:58 +02:00
Pascal Vizeli
7cffb1f45b 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 01:14:07 +02:00
Pascal Vizeli
a0551d8010 Check simlink (#90) 2018-07-08 14:19:30 +02:00
Pascal Vizeli
38c1df36c0 Fix time on overlay (#88)
* Fix time on overlay

* Fix rights

* Fix timesync
2018-07-08 00:43:46 +02:00
Pascal Vizeli
5526dbb2f7 Bump version to 2.1 2018-07-07 13:25:20 +02:00
Pascal Vizeli
fd56d6544c Merge pull request #85 from home-assistant/dev
Beta 2.0
2018-07-07 13:24:51 +02:00
Pascal Vizeli
d2ba03164b Add powersave config to network manager (#86)
* Add powersave config to network manager

* Update network.md
2018-07-07 10:45:59 +02:00
Pascal Vizeli
c6d0fef0b4 Some cleanup (#84) 2018-07-06 21:04:48 +02:00
Pascal Vizeli
0671e3f71c Reset if we can't boot (#83)
* Update uboot-boot.sh

* Update uboot-boot.sh
2018-07-06 19:08:52 +02:00
Pascal Vizeli
14833a110f 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 18:21:19 +02:00
Pascal Vizeli
988d4ebecf Update supervisor 115 (#82) 2018-07-06 14:35:22 +02:00
Pascal Vizeli
bf59b7744d 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-05 20:00:56 +02:00
Gabriel Oliveira
4a80c7fcd0 Fix config documentation closing tags (#80) 2018-07-05 16:40:41 +02:00
Pascal Vizeli
6c58eb1615 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-05 13:44:52 +02:00
cogneato
46d6dba859 Update configuration.md (#50)
* Update configuration.md

Clearing up documentation, grammar fixes.

* changed known_hosts to authorized_keys

* Update configuration.md
2018-07-03 07:32:44 +02:00
cogneato
12393e083d Update network.md (#51)
* Update network.md

Clearing up network documentation, grammar

* Update network.md
2018-07-03 07:30:17 +02:00
Pascal Vizeli
3700d744b4 Update CLI / Supervisor (#71) 2018-07-03 00:00:25 +02:00
Pascal Vizeli
7e665a7b42 Fix persistent log (#70) 2018-07-02 23:53:07 +02:00
Pascal Vizeli
c860229130 Change chmod of network connection files from fat32 (#69) 2018-07-02 23:03:13 +02:00
Pascal Vizeli
32ab05bd2e Fix update script with uptime (#68) 2018-07-02 22:51:54 +02:00
Pascal Vizeli
8792d37402 Fix docker warning on rpi (#67) 2018-07-02 21:43:33 +02:00
Pascal Vizeli
414b59ac4a Fix label name in test script (#66)
* Fix label name in test script

* Update hassos-config
2018-07-02 21:24:05 +02:00
Pascal Vizeli
f8fa170e2a Fix spell in journald script (#65) 2018-07-02 19:58:00 +02:00
Pascal Vizeli
11b1946cd7 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 01:05:21 +02:00
Pascal Vizeli
7d4b424d2f Map /etc/machine-id into supervisor/cli (#60)
* Map /etc/machine-id into supervisor/cli

* Update hassos-cli

* Update hassos-supervisor
2018-07-01 15:15:54 +02:00
Pascal Vizeli
6aa8e61d88 Add lost persistent ssh folder (#58)
Signed-off-by: Pascal Vizeli <pvizeli@syshack.ch>
2018-07-01 00:38:30 +02:00
Pascal Vizeli
d536e3d7a7 Use wpa_supplicant with NetworkManager (#57) 2018-07-01 00:29:10 +02:00
Pascal Vizeli
2614ffce40 Use CONFIG as label for config partition (#56)
* Use CONFIG as label for config partition

* Update configuration.md

* Update hassos-config
2018-07-01 00:28:00 +02:00
Pascal Vizeli
dde6d8f806 Set hassos supervisor to rauc (#55)
* Set hassos supervisor to rauc

* Update post-install

* Update hassos-config
2018-06-29 15:23:49 +02:00
Pascal Vizeli
8dd8816e4e Fix authorized_keys keys (#53)
* Fix authorized_keys keys

* Update hassos.conf

* Update configuration.md

* Update hassos-config

* Update hassos-config
2018-06-28 22:21:50 +02:00
Pascal Vizeli
f739aed8de Fix hassos-conf label (#48)
* Update mnt-config.mount

* Update configuration.md

* Update configuration.md

* Update mnt-config.mount

* Update configuration.md
2018-06-28 22:20:34 +02:00
Pascal Vizeli
f6a916001d Update ova.md (#47) 2018-06-27 13:56:52 +02:00
Pascal Vizeli
23a58b23b5 We publish now the vmdk and not OVA/OVF (#46)
* Update upload-rel.sh

* Create ova.md
2018-06-27 12:05:44 +02:00
Pascal Vizeli
d3e3e36a6e Improve the documentation (#44)
* Create network.md

* Update configuration.md

* Update network.md

* Update network.md
2018-06-26 22:24:15 +02:00
Pascal Vizeli
af23b6199e Add script for github upload (#43)
Signed-off-by: Pascal Vizeli <pvizeli@syshack.ch>
2018-06-26 21:32:41 +02:00
Pascal Vizeli
80079930c5 Include ota script into board image (#42) 2018-06-26 13:28:00 +02:00
Pascal Vizeli
ca50a86768 Bump version to next development release (#41) 2018-06-26 12:27:09 +02:00
Pascal Vizeli
6e9326d11b Fix build script for new layout (#40) 2018-06-26 11:48:16 +02:00
Pascal Vizeli
b731b422fe Merge pull request #38 from home-assistant/dev
Release 0.7 beta
2018-06-26 10:20:24 +02:00
Pascal Vizeli
27cd425f5b Use systemd for config mount (#37)
* Create mnt-config.mount

* Update hassos-config

* Update mnt-config.mount

* Update hassos-config
2018-06-26 10:18:16 +02:00
Pascal Vizeli
42f1c4bf01 cleanup avahi
Signed-off-by: Pascal Vizeli <pvizeli@syshack.ch>
2018-06-25 22:11:59 +00:00
Pascal Vizeli
b3943870dc Fix rauc config 2018-06-25 21:11:18 +00:00
Pascal Vizeli
4b4e22c355 Fix args 2018-06-25 19:22:15 +00:00
Pascal Vizeli
7675cc61fb Update Hass.io CLI to version 5 (#36) 2018-06-25 20:36:30 +02:00
Pascal Vizeli
11b1867c73 Create build.md 2018-06-25 09:00:31 +02:00
Pascal Vizeli
5cd03d19dd Update README.md 2018-06-25 08:59:43 +02:00
Pascal Vizeli
26d7a4cb23 Update hassos.conf 2018-06-25 08:58:26 +02:00
Pascal Vizeli
cc80265997 Run dropbear only if they have a known_hosts 2018-06-25 08:55:16 +02:00
Pascal Vizeli
8434f3ee55 Create docker.conf 2018-06-25 08:51:22 +02:00
Pascal Vizeli
ddde16216c Rename hassos.conf to docker.conf 2018-06-25 08:50:39 +02:00
Pascal Vizeli
3e8499ecbf Use correct cert (#35)
* Use correct cert

* Fix boot partition handling

* Cleanup rauc handling

* Make a reboot

* handling
2018-06-24 23:41:04 +02:00
Pascal Vizeli
42dc915436 Create deployment.md 2018-06-24 10:41:05 +02:00
Pascal Vizeli
17ca2ccf0a Create OTA updater (#34)
* Create OTA updater

* Create .gitignore

* Update build-all.sh

* Update hdd-image.sh

* Update ota.sh

* Update ota.sh

* Update ota.sh

* Update ota.sh

* Update post-image.sh

* Create name.sh

* Update name.sh

* Update post-build.sh

* Update name.sh

* Update post-image.sh

* Update ota.sh

* Update hdd-image.sh

* Update post-image.sh

* Update name.sh

* Update ota.sh

* Update post-image.sh

* Update hdd-image.sh

* Update hdd-image.sh

* Update hdd-image.sh

* Update post-image.sh

* Update post-image.sh

* Update hdd-image.sh

* Update hdd-image.sh

* Update post-image.sh

* Update post-image.sh

* Update post-image.sh

* Update info

* Update info

* Update info

* Update info

* Update info

* Update info

* Rename buildroot-external/board/raspberrypi/uboot-boot64.sh to buildroot-external/board/raspberrypi/rpi3-64/uboot-boot.sh

* Update rpi3_64_defconfig

* Update hdd-image.sh

* Update ota.sh

* Update post-image.sh

* Update post-image.sh

* Fix building

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

* Fix building v2

Signed-off-by: Pascal Vizeli <pvizeli@syshack.ch>
2018-06-24 00:11:54 +02:00
Pascal Vizeli
1e30f5120c Update configuration.md 2018-06-21 15:50:01 +02:00
Pascal Vizeli
e30e15dc53 fix rauc name 2018-06-21 15:49:37 +02:00
Pascal Vizeli
3aaadf3f5f Update supervisor 108 2018-06-21 11:37:10 +00:00
Pascal Vizeli
161c8624e0 Bump version to 0.7 2018-06-21 11:17:23 +02:00
Pascal Vizeli
56afd74720 Don't install kernel to rootfs 2018-06-21 09:15:28 +00:00
Pascal Vizeli
ed5a5033dd Use apparmor from s3 2018-06-20 13:28:30 +00:00
Pascal Vizeli
2abbbbd1fa Cleanup uboot handling like linux kernel 2018-06-20 10:41:45 +00:00
Pascal Vizeli
fa44e0a7fd cleanup 2018-06-17 01:25:47 +02:00
Pascal Vizeli
1a3d063fec Reboot after mark partition as bad 2018-06-16 22:24:36 +02:00
Pascal Vizeli
49df049f2c Change rauc mark handling 2018-06-16 09:06:07 +00:00
Pascal Vizeli
c657f6f3e7 Ignore debug stack usage 2018-06-16 01:27:34 +02:00
Pascal Vizeli
0a43cbdb05 Update hassio-supervisor 2018-06-14 16:44:40 +02:00
Pascal Vizeli
45274411e7 Merge pull request #31 from home-assistant/dev
Release 0.6
2018-06-14 15:43:10 +02:00
Pascal Vizeli
d5ff3596b1 Fix build script v2
Signed-off-by: Pascal Vizeli <pvizeli@syshack.ch>
2018-06-14 13:10:32 +00:00
Pascal Vizeli
95f82aa75d Fix build script
Signed-off-by: Pascal Vizeli <pvizeli@syshack.ch>
2018-06-14 05:15:10 +00:00
Pascal Vizeli
fc4de4f02a Fix 64bit
Signed-off-by: Pascal Vizeli <pvizeli@syshack.ch>
2018-06-14 00:13:35 +00:00
Pascal Vizeli
eae3659909 Add Builder script
Signed-off-by: Pascal Vizeli <pvizeli@syshack.ch>
2018-06-13 19:28:05 +00:00
Pascal Vizeli
6a05718235 Fix expander on SD cards
Signed-off-by: Pascal Vizeli <pvizeli@syshack.ch>
2018-06-13 19:12:57 +00:00
Pascal Vizeli
5055236725 Bump version 2018-06-13 17:04:33 +02:00
Pascal Vizeli
ac40e97670 Update hassio-supervisor 2018-06-12 23:23:33 +02:00
10817 changed files with 40147 additions and 406437 deletions

View File

@@ -1,3 +1,3 @@
buildroot
buildroot-external
buildroot-patches
# Ignore everything except what we really need
*
!scripts/

127
.github/ISSUE_TEMPLATE/bug_report.yml vendored Normal file
View File

@@ -0,0 +1,127 @@
name: Bug Report Form
description: Report an issue related to the Home Assistant Operating System.
labels: bug
body:
- type: markdown
attributes:
value: |
Make sure to test with the last version of the Operating System before reporting a bug.
If the bug appears to be a regression, make sure to check if the bug indeed disappears
from the previous version. Use `ha os update --version x.y` command to downgrade.
- type: textarea
validations:
required: true
attributes:
label: Describe the issue you are experiencing
description: Provide a clear and concise description of what the bug is.
- type: markdown
attributes:
value: |
## Environment
- type: dropdown
validations:
required: true
attributes:
label: What operating system image do you use?
default: 0
options:
- generic-x86-64 (Generic UEFI capable x86-64 systems)
- generic-aarch64 (Generic UEFI capable aarch64 systems)
- khadas-vim3 (Khadas VIM3)
- odroid-c2 (Hardkernel ODROID-C2)
- odroid-c4 (Hardkernel ODROID-C4)
- odroid-m1 (Hardkernel ODROID-M1)
- odroid-m1s (Hardkernel ODROID-M1S)
- odroid-n2 (Hardkernel ODROID-N2/N2+)
- odroid-xu4 (Hardkernel ODROID-XU4)
- ova (for Virtual Machines)
- rpi2 (Raspberry Pi 2)
- rpi3 (Raspberry Pi 3 32-bit OS)
- rpi3-64 (Raspberry Pi 3 64-bit OS)
- rpi4 (Raspberry Pi 4/400 32-bit OS)
- rpi4-64 (Raspberry Pi 4/400 64-bit OS)
- rpi5-64 (Raspberry Pi 5 64-bit OS)
- tinker (ASUS Tinker Board/Tinker Board S)
- yellow (Home Assistant Yellow)
- green (Home Assistant Green)
description: >
Can be found in [Settings -> System -> Repairs -> System Information](https://my.home-assistant.io/redirect/system_health/). It is listed as the `Board` value.
[![Open your Home Assistant instance and show health information about your system.](https://my.home-assistant.io/badges/system_health.svg)](https://my.home-assistant.io/redirect/system_health/)
- type: input
validations:
required: true
attributes:
label: What version of Home Assistant Operating System is installed?
placeholder: "6.6"
description: >
Can be found in [Settings -> System -> Repairs -> System Information (top right menu)](https://my.home-assistant.io/redirect/system_health/). It is listed as the `Host Operating System` value.
- type: dropdown
validations:
required: true
attributes:
label: Did the problem occur after upgrading the Operating System?
default: 0
options:
- "No"
- "Yes"
- type: textarea
validations:
required: true
attributes:
label: Hardware details
description: >
Provide details about the hardware used for your install.
This is especially important for bare-metal x86 installations.
If you have any USB devices attached, please list them here.
For VMs, include the hypervisor type and version.
- type: textarea
validations:
required: true
attributes:
label: Steps to reproduce the issue
description: |
Please tell us exactly how to reproduce your issue.
Provide clear and concise step by step instructions and add code snippets if needed.
value: |
1.
2.
3.
...
- type: textarea
validations:
required: true
attributes:
label: Anything in the Supervisor logs that might be useful for us?
description: >
Supervisor Logs can be found in [Settings -> System -> Logs](https://my.home-assistant.io/redirect/logs/?provider=supervisor)
then choose `Supervisor` in the top right. Alternatively enter `ha supervisor logs` in the Home Assistant CLI.
[![Open your Home Assistant instance and show your Supervisor system logs.](https://my.home-assistant.io/badges/supervisor_logs.svg)](https://my.home-assistant.io/redirect/logs/?provider=supervisor)
render: txt
- type: textarea
validations:
required: true
attributes:
label: Anything in the Host logs that might be useful for us?
description: >
Host Logs can be found in [Settings -> System -> Logs](https://my.home-assistant.io/redirect/logs/?provider=host)
then choose `Host` in the top right. Alternatively enter `ha host logs` in the Home Assistant CLI.
render: txt
- type: textarea
attributes:
label: System information
description: >
**Optional** Copy the full System Health in this text area.
System information can be found in [Settings -> System -> Repairs -> System Information (top right menu)](https://my.home-assistant.io/redirect/system_health/),
Click the copy button at the bottom of the pop-up and paste it here.
[![Open your Home Assistant instance and show health information about your system.](https://my.home-assistant.io/badges/system_health.svg)](https://my.home-assistant.io/redirect/system_health/)
- type: textarea
attributes:
label: Additional information
description: >
**Optional** If you have any additional information for us, use the field below.
Please note, you can attach screenshots or screen recordings here, by
dragging and dropping files in the field below.

21
.github/ISSUE_TEMPLATE/config.yml vendored Normal file
View File

@@ -0,0 +1,21 @@
blank_issues_enabled: false
contact_links:
- name: Report incorrect or missing information on our documentation
url: https://github.com/home-assistant/home-assistant.io/issues
about: Our documentation has its own issue tracker. Please report issues with the website there.
- name: Report incorrect or missing information on our developer documentation
url: https://github.com/home-assistant/developers.home-assistant/issues
about: Our developer documentation has its own issue tracker. Please report issues with the website there.
- name: Request a feature for the Operating System
url: https://community.home-assistant.io/c/feature-requests
about: Request an new feature for the Operating System.
- name: I have a question or need support
url: https://www.home-assistant.io/help
about: We use GitHub for tracking bugs, check our website for resources on getting help.
- name: I'm unsure where to go?
url: https://www.home-assistant.io/join-chat
about: If you are unsure where to go, then joining our chat is recommended; Just ask!

View File

@@ -0,0 +1,97 @@
name: 'Bump RPi Imager OS version'
description: 'Bump version of Home Assistant OS in RPi Imager'
inputs:
version:
required: true
description: "Version of Home Assistant OS to bump to."
release-date:
required: true
description: "Release date as ISO 8601 date string."
runs:
using: "composite"
steps:
- shell: bash
id: validate-input
env:
INPUTS_DATE: ${{ inputs.release-date }}
run: |
if [[ -z "$INPUTS_DATE" ]] || [[ ! "$INPUTS_DATE" =~ ^([0-9]{4})-([0-9]{2})-([0-9]{2})T([0-9]{2}):([0-9]{2}):([0-9]{2})Z$ ]]; then
echo "::error::Argument 'release-date' must be an ISO 8601 date string."
exit 1
else
echo "date=$(date --date=${INPUTS_DATE} +'%Y-%m-%d')" >> "$GITHUB_OUTPUT"
fi
- shell: bash
run: git clone --depth 1 https://github.com/home-assistant/version.git /tmp/version
- shell: bash
env:
INPUTS_VERSION: ${{ inputs.version }}
run: |
function bump_entry() {
json=$1
version=$2
release_date=$3
image_id=$4
image_name=$5
url="https://github.com/home-assistant/operating-system/releases/download/${version}/haos_${image_id}-${version}.img.xz"
temp_image=$(mktemp --suffix=.img.xz)
temp_out=$(mktemp)
curl -fsL -o "$temp_image" "$url"
image_download_size=$(stat --printf="%s" "$temp_image")
image_download_sha256=$(sha256sum "$temp_image" | awk '{print $1}')
unxz "$temp_image"
temp_unpacked="${temp_image%.*}"
extract_size=$(stat --printf="%s" "$temp_unpacked")
extract_sha256=$(sha256sum "$temp_unpacked" | awk '{print $1}')
entry_name="Home Assistant OS ${version} (${image_name})"
jq '
. as $data
| $data
| .os_list = [
.os_list[]
| if .name | test("Home Assistant OS .* \\(" + $image_name + "\\)") then
.name = "Home Assistant OS " + $version + " (" + $image_name + ")"
| .url = $url
| .extract_size = ($extract_size | tonumber)
| .extract_sha256 = $extract_sha256
| .release_date = $release_date
| .image_download_size = ($image_download_size | tonumber)
| .image_download_sha256 = $image_download_sha256
else .
end
]' \
--arg version "$version" \
--arg image_name "$image_name" \
--arg entry_name "$entry_name" \
--arg release_date "$release_date" \
--arg url "$url" \
--arg image_download_size "$image_download_size" \
--arg image_download_sha256 "$image_download_sha256" \
--arg extract_size "$extract_size" \
--arg extract_sha256 "$extract_sha256" \
"$json" > "$temp_out"
mv "$temp_out" "$json"
rm -rf "$temp_unpacked" "$temp_out"
}
bump_entry /tmp/version/rpi-imager-haos.json "$INPUTS_VERSION" "${{ steps.validate-input.outputs.date }}" "rpi3-64" "RPi 3"
bump_entry /tmp/version/rpi-imager-haos.json "$INPUTS_VERSION" "${{ steps.validate-input.outputs.date }}" "rpi4-64" "RPi 4/400"
bump_entry /tmp/version/rpi-imager-haos.json "$INPUTS_VERSION" "${{ steps.validate-input.outputs.date }}" "rpi5-64" "RPi 5"
bump_entry /tmp/version/rpi-imager-haos.json "$INPUTS_VERSION" "${{ steps.validate-input.outputs.date }}" "yellow" "Yellow"
- shell: bash
env:
INPUTS_VERSION: ${{ inputs.version }}
run: |
cd /tmp/version
git commit -am "Bump Home Assistant OS to ${INPUTS_VERSION} for RPi Imager"
git push
- shell: bash
run: rm -rf /tmp/version

6
.github/dependabot.yml vendored Normal file
View File

@@ -0,0 +1,6 @@
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"

59
.github/label-actions.yml vendored Normal file
View File

@@ -0,0 +1,59 @@
assume-fixed:
comment: >
:wave: @{issue-author}, thanks for reporting an issue!
This issue is assumed to be fixed in the latest stable release. Please
reopen in case you can still reproduce the issue with the latest stable
release. You can find the latest stable release at
https://github.com/home-assistant/operating-system/releases/latest
close: true
close-reason: not planned
core-issue:
comment: >
:wave: @{issue-author}, thanks for reporting an issue!
It looks like this issue is related to Home Assistant Core. Please check
the [Home Assistant Core](https://github.com/home-assistant/core/issues)
repository, the issue might have been reported already. Open a new issue
in that repository if you can't find a matching issue.
close: true
close-reason: not planned
frontend-issue:
comment: >
:wave: @{issue-author}, thanks for reporting an issue!
It looks like this issue is related to Home Assistant Frontend. Please
check the [Home Assistant Frontend](https://github.com/home-assistant/frontend/issues)
repository, the issue might have been reported already. Open a new issue
in that repository if you can't find a matching issue.
close: true
close-reason: not planned
supervisor-issue:
comment: >
:wave: @{issue-author}, thanks for reporting an issue!
It looks like this issue is related to Home Assistant Supervisor. Please
check the [Home Assistant Supervisor](https://github.com/home-assistant/supervisor/issues)
repository, the issue might have been reported already. Open a new issue
in that repository if you can't find a matching issue.
close: true
close-reason: not planned
new-feature:
comment: >
:wave: @{issue-author}, thanks for your input!
We use this issue tracker to track issues of currently supported features.
Your request appears to request a new feature. We track potential new
features in the [Feature Request section of our Community Forum](https://community.home-assistant.io/c/feature-requests/13).
Please check if someone already requested a similar feature, or create
a new feature request with the "haos" tag in that forum. Thank you!
close: true
close-reason: not planned

13
.github/move.yml vendored
View File

@@ -1,13 +0,0 @@
# Configuration for move-issues - https://github.com/dessant/move-issues
# Delete the command comment. Ignored when the comment also contains other content
deleteCommand: true
# Close the source issue after moving
closeSourceIssue: true
# Lock the source issue after moving
lockSourceIssue: false
# Set custom aliases for targets
# aliases:
# r: repo
# or: owner/repo

40
.github/release-drafter.yml vendored Normal file
View File

@@ -0,0 +1,40 @@
name-template: Home Assistant OS $RESOLVED_VERSION
tag-template: $RESOLVED_VERSION
version-template: "$MAJOR.$MINOR"
categories:
- title: 'Home Assistant Operating System'
label: 'os'
- title: 'Raspberry Pi'
label: 'board/raspberrypi'
- title: 'Home Assistant Yellow'
label: 'board/yellow'
- title: 'Home Assistant Green'
label: 'board/green'
- title: 'Open Virtual Appliance'
label: 'board/ova'
- title: 'Generic x86-64'
label: 'board/generic-x86-64'
- title: 'Hardkernel ODROID'
label: 'board/odroid'
- title: 'ASUS Tinker'
label: 'board/tinker'
- title: 'Khadas VIM Series'
label: 'board/khadas'
- title: 'Generic aarch64'
label: 'board/generic-aarch64'
- title: 'Documentation'
label: 'documentation'
- title: 'Build System'
label: 'build'
- title: 'Dependencies'
label: 'dependencies'
filter-by-commitish: true
template: |
## Changes
$CHANGES
version-resolver:
major:
labels:
- 'major'
default: minor

102
.github/workflows/artifacts-index.yaml vendored Normal file
View File

@@ -0,0 +1,102 @@
name: Update artifacts index
on:
# Manual run for specified version
workflow_dispatch:
inputs:
version:
description: Version of HAOS to build index for
required: true
type: string
# Called by other workflows (e.g. build.yaml)
workflow_call:
inputs:
version:
description: Version of HAOS to build index for
required: true
type: string
secrets:
R2_OS_ARTIFACTS_ID:
required: true
R2_OS_ARTIFACTS_KEY:
required: true
R2_OS_ARTIFACTS_BUCKET:
required: true
R2_OS_ARTIFACTS_ENDPOINT:
required: true
CF_ZONE:
required: true
CF_PURGE_TOKEN:
required: true
env:
PYTHON_VERSION: "3.13"
jobs:
build-index:
name: Build Home Assistant OS artifacts index
runs-on: ubuntu-22.04
steps:
- name: Checkout source
uses: actions/checkout@v4
with:
persist-credentials: false
- name: Setup Python version ${{ env.PYTHON_VERSION }}
uses: actions/setup-python@v5
with:
python-version: ${{ env.PYTHON_VERSION }}
- name: Install AWS CLI
run: pip install 'awscli<1.37.0'
- name: Create build index
env:
AWS_ACCESS_KEY_ID: ${{ secrets.R2_OS_ARTIFACTS_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.R2_OS_ARTIFACTS_KEY }}
run: |
aws s3api list-objects-v2 \
--bucket "${{ secrets.R2_OS_ARTIFACTS_BUCKET }}" \
--endpoint-url "${{ secrets.R2_OS_ARTIFACTS_ENDPOINT }}" \
--prefix "${{ inputs.version }}/" \
--query 'Contents[].Key' | jq 'map(split("/")[1]) | sort' > "${{ inputs.version }}.json"
aws s3 cp \
"${{ inputs.version }}.json" \
s3://${{ secrets.R2_OS_ARTIFACTS_BUCKET }}/indexes/ \
--endpoint-url "${{ secrets.R2_OS_ARTIFACTS_ENDPOINT }}"
- name: Regenerate artifacts index
env:
AWS_ACCESS_KEY_ID: ${{ secrets.R2_OS_ARTIFACTS_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.R2_OS_ARTIFACTS_KEY }}
run: |
aws s3api list-objects-v2 \
--bucket "${{ secrets.R2_OS_ARTIFACTS_BUCKET }}" \
--endpoint-url "${{ secrets.R2_OS_ARTIFACTS_ENDPOINT }}" \
--prefix "indexes/" \
--query 'Contents[].Key' | jq 'map(capture("indexes/(?<version>[[:digit:]].+).json").version) | sort' > .os-artifacts/index.json
aws s3 sync \
.os-artifacts/ \
s3://${{ secrets.R2_OS_ARTIFACTS_BUCKET }}/ \
--endpoint-url "${{ secrets.R2_OS_ARTIFACTS_ENDPOINT }}" \
- name: Flush CloudFlare cache
run: |
# Create purge list of all artifacts
jq -r '. | map("https://os-artifacts.home-assistant.io/${{ inputs.version }}/" + .) | join("\n")' < "${{ inputs.version }}.json" > purge_list
# Add indexes to purge list too
echo "https://os-artifacts.home-assistant.io/indexes/${{ inputs.version }}.json" >> purge_list
echo "https://os-artifacts.home-assistant.io/index.html" >> purge_list
echo "https://os-artifacts.home-assistant.io/index.json" >> purge_list
# Split to chunks of 30 files (limit of CF API)
split -d -l30 purge_list purge_list_chunked
# Convert chunked lists to JSON arrays and call CF purge API
for f in purge_list_chunked*; do
files=$(jq -R -s 'split("\n")[:-1]' < "$f")
curl --silent --show-error --fail -X POST \
"https://api.cloudflare.com/client/v4/zones/${{ secrets.CF_ZONE }}/purge_cache" \
-H "Authorization: Bearer ${{ secrets.CF_PURGE_TOKEN }}" \
-H "Content-Type: application/json" \
--data "{\"files\": ${files}}"
done

444
.github/workflows/build.yaml vendored Normal file
View File

@@ -0,0 +1,444 @@
# Home Assistant Operating System build workflow
name: OS build
on:
release:
types: [published]
workflow_dispatch:
inputs:
boards:
description: 'List of boards to build (comma separated identifiers)'
required: false
type: string
publish:
description: 'Publish build artifacts to R2 (not applicable to forks)'
required: true
type: boolean
default: true
env:
PYTHON_VERSION: "3.13"
jobs:
prepare:
name: Prepare build
runs-on: ubuntu-22.04
permissions:
contents: read
pull-requests: read
packages: write
outputs:
version_dev: ${{ steps.version_dev.outputs.version_dev }}
version_main: ${{ steps.version.outputs.version_main }}
version_full: ${{ steps.version.outputs.version_full }}
channel: ${{ steps.channel.outputs.channel }}
matrix: ${{ steps.generate_matrix.outputs.result }}
build_container_image: ghcr.io/${{ github.repository_owner }}/haos-builder@${{ steps.build_haos_builder.outputs.digest }}
publish_build: ${{ steps.check_publish.outputs.publish_build }}
self_signed_cert: ${{ steps.generate_signing_key.outputs.self_signed_cert }}
steps:
- name: Checkout source
uses: actions/checkout@v4
with:
persist-credentials: false
- name: Check if build should be published
id: check_publish
env:
PUBLISH_FLAG: ${{ inputs.publish }}
run: |
if [ "${{ github.repository }}" == "home-assistant/operating-system" ]; then
if [ "${PUBLISH_FLAG}" != "true" ] && [ "${{ github.event_name }}" != "release" ]; then
echo "publish_build=false" >> "$GITHUB_OUTPUT"
else
echo "publish_build=true" >> "$GITHUB_OUTPUT"
fi
else
echo "publish_build=false" >> "$GITHUB_OUTPUT"
fi
- name: Generate development version
shell: bash
id: version_dev
if: ${{ github.event_name != 'release' }}
env:
PUBLISH_BUILD: ${{ steps.check_publish.outputs.publish_build }}
run: |
version_dev="dev$(date --utc +'%Y%m%d')"
if [ "${{ env.PUBLISH_BUILD }}" != "true" ]; then
version_dev="dev$(date +%s)"
fi
echo "Development version \"${version_dev}\""
echo "version_dev=${version_dev}" >> $GITHUB_OUTPUT
- name: Set version suffix
if: ${{ github.event_name != 'release' }}
env:
VERSION_DEV: ${{ steps.version_dev.outputs.version_dev }}
run: |
sed -i -E "s/(^VERSION_SUFFIX=\").*(\"$)/\1${VERSION_DEV}\2/" buildroot-external/meta
- name: Get version
id: version
run: |
. ${GITHUB_WORKSPACE}/buildroot-external/meta
echo "version_main=${VERSION_MAJOR}.${VERSION_MINOR}" >> $GITHUB_OUTPUT
if [ -z "${VERSION_SUFFIX}" ]; then
version_full="${VERSION_MAJOR}.${VERSION_MINOR}"
else
version_full="${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_SUFFIX}"
fi
echo "version_full=${version_full}" >> $GITHUB_OUTPUT
echo "Full version number of this release is \"${version_full}\"."
- name: Validate version
id: version_check
if: ${{ github.event_name == 'release' }}
run: |
if [ "${{ steps.version.outputs.version_full }}" != "${{ github.event.release.tag_name }}" ]; then
echo "Version number in Buildroot metadata does not match tag (${{ steps.version.outputs.version_full }} vs ${{ github.event.release.tag_name }})."
exit 1
fi
- name: Get channel
id: channel
run: |
if [[ "${{ github.event_name }}" == "release" ]]; then
if [[ "${{ github.event.release.prerelease }}" == "true" ]]; then
echo "channel=beta" >> "$GITHUB_OUTPUT"
else
echo "channel=stable" >> "$GITHUB_OUTPUT"
fi
else
echo "channel=dev" >> "$GITHUB_OUTPUT"
fi
- name: Create build matrix
uses: actions/github-script@v7
id: generate_matrix
with:
script: |
const boards = require('./.github/workflows/matrix.json')
if ("${{ github.event_name }}" == "release") {
return { "board": boards }
}
const boardFilter = "${{ github.event.inputs.boards }}"
if (boardFilter == "") {
console.log("Run full build for all boards")
return { "board": boards }
} else {
console.log("Run partial build")
const boardSet = new Set(boardFilter.split(","))
const buildBoards = boards.filter(b => boardSet.has(b.id))
return { "board": buildBoards }
}
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3.9.0
- name: Log in to the GitHub container registry
uses: docker/login-action@v3.3.0
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and Push
uses: docker/build-push-action@v6.14.0
id: build_haos_builder
with:
context: .
file: Dockerfile
tags: ghcr.io/${{ github.repository_owner }}/haos-builder
cache-from: ghcr.io/${{ github.repository_owner }}/haos-builder:cache-${{ steps.version.outputs.version_main }}
cache-to: ghcr.io/${{ github.repository_owner }}/haos-builder:cache-${{ steps.version.outputs.version_main }}
push: true
- name: Generate self-signed certificate
id: generate_signing_key
env:
RAUC_CERTIFICATE: ${{ secrets.RAUC_CERTIFICATE }}
RAUC_PRIVATE_KEY: ${{ secrets.RAUC_PRIVATE_KEY }}
if: env.RAUC_CERTIFICATE == '' || env.RAUC_PRIVATE_KEY == ''
run: |
echo "::warning:: RAUC certificate or key is missing in the repository secrets. Building with a public self-signed certificate!"
buildroot-external/scripts/generate-signing-key.sh cert.pem key.pem
echo "self_signed_cert=true" >> $GITHUB_OUTPUT
- name: Create signing key
uses: actions/upload-artifact@v4
if: steps.generate_signing_key.outcome == 'success'
with:
name: signing-key
path: |
cert.pem
key.pem
build:
name: Build for ${{ matrix.board.id }}
permissions:
contents: write # for actions/upload-release-asset to upload release asset
needs: prepare
strategy:
fail-fast: ${{ github.event_name == 'release' }}
matrix: ${{ fromJson(needs.prepare.outputs.matrix) }}
runs-on: ubuntu-22.04
steps:
- name: Checkout source
uses: actions/checkout@v4
with:
submodules: true
persist-credentials: false
- name: Setup Python version ${{ env.PYTHON_VERSION }}
if: ${{ github.event_name != 'release' }}
uses: actions/setup-python@v5
with:
python-version: ${{ env.PYTHON_VERSION }}
- name: Install AWS CLI
if: ${{ github.event_name != 'release' && needs.prepare.outputs.publish_build == 'true' }}
run: pip install 'awscli<1.37.0'
- name: Set version suffix
if: ${{ github.event_name != 'release' }}
env:
VERSION_DEV: ${{ needs.prepare.outputs.version_dev }}
run: |
sed -i -E "s/(^VERSION_SUFFIX=\").*(\"$)/\1${VERSION_DEV}\2/" buildroot-external/meta
- name: 'Add release PKI certs'
if: ${{ needs.prepare.outputs.self_signed_cert != 'true' }}
env:
RAUC_CERTIFICATE: ${{ secrets.RAUC_CERTIFICATE }}
RAUC_PRIVATE_KEY: ${{ secrets.RAUC_PRIVATE_KEY }}
run: |
echo -e "-----BEGIN CERTIFICATE-----\n${RAUC_CERTIFICATE}\n-----END CERTIFICATE-----" > cert.pem
echo -e "-----BEGIN PRIVATE KEY-----\n${RAUC_PRIVATE_KEY}\n-----END PRIVATE KEY-----" > key.pem
- name: Get self-signed certificate from the prepare job
if: ${{ needs.prepare.outputs.self_signed_cert == 'true' }}
uses: actions/download-artifact@v4
with:
name: signing-key
- name: Free space on build drive
run: |
# Inspired by https://github.com/easimon/maximize-build-space/blob/v7/action.yml
df -h
sudo rm -rf /usr/local/lib/android/sdk/ndk
sudo rm -rf /opt/hostedtoolcache/CodeQL
sudo mkdir /mnt/cache
sudo mkdir /mnt/output
WORKSPACE_OWNER="$(stat -c '%U:%G' "${GITHUB_WORKSPACE}")"
# output directory is symlinked for easier access from workspace
# but for build container it must be mounted as a volume
sudo ln -sf /mnt/output "${GITHUB_WORKSPACE}/output"
sudo chown -R "${WORKSPACE_OWNER}" /mnt/cache
sudo chown -R "${WORKSPACE_OWNER}" /mnt/output
df -h
- name: "Restore cache: object files"
uses: actions/cache/restore@v4
with:
path: /mnt/cache/cc
key: haos-cc-${{ matrix.board.id }}
- name: Build
run: |
BUILDER_UID="$(id -u)"
BUILDER_GID="$(id -g)"
docker run --rm --privileged \
-e BUILDER_UID="${BUILDER_UID}" -e BUILDER_GID="${BUILDER_GID}" \
-v "${GITHUB_WORKSPACE}:/build" \
-v "/mnt/cache:/cache" \
-v "/mnt/output:/build/output" \
${{ needs.prepare.outputs.build_container_image }} \
make BUILDDIR=/build ${{ matrix.board.defconfig }}
- name: Check Linux config
run: |
docker run --rm --privileged \
-e BUILDER_UID="$(id -u)" -e BUILDER_GID="$(id -g)" \
-v "${GITHUB_WORKSPACE}:/build" \
-v "/mnt/cache:/cache" \
-v "/mnt/output:/build/output" \
${{ needs.prepare.outputs.build_container_image }} \
make -C buildroot O="/build/output" BR2_EXTERNAL="/build/buildroot-external" \
BR2_CHECK_DOTCONFIG_OPTS="--github-format --strip-path-prefix=/build/" linux-check-dotconfig
- name: Upload artifacts
if: ${{ github.event_name != 'release' && needs.prepare.outputs.publish_build == 'true' }}
working-directory: output/images/
env:
AWS_ACCESS_KEY_ID: ${{ secrets.R2_OS_ARTIFACTS_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.R2_OS_ARTIFACTS_KEY }}
run: |
aws s3 sync \
./ \
s3://${{ secrets.R2_OS_ARTIFACTS_BUCKET }}/${{ needs.prepare.outputs.version_full }}/ \
--exclude "*" \
--include "haos_*" \
--endpoint-url ${{ secrets.R2_OS_ARTIFACTS_ENDPOINT }}
- name: Upload release assets
if: ${{ github.event_name == 'release' }}
uses: shogo82148/actions-upload-release-asset@v1
with:
upload_url: ${{ github.event.release.upload_url }}
asset_path: output/images/haos_*
- name: Print cache stats
run: |
echo "Cache size: $(du -sh /mnt/cache/cc)"
echo "Files total: $(find /mnt/cache/cc -mindepth 1 -type f | wc -l)"
echo "Old files to remove: $(find /mnt/cache/cc -mindepth 1 -type f -not -anewer output/Makefile | wc -l)"
find /mnt/cache/cc -mindepth 1 -type f -not -anewer output/Makefile -delete
echo "Cache size after pruning: $(du -sh /mnt/cache/cc)"
- name: "Save cache: object files"
if: github.ref == 'refs/heads/dev'
uses: actions/cache/save@v4
with:
path: /mnt/cache/cc
key: haos-cc-${{ matrix.board.id }}-${{ github.run_id }}
- name: Generate build summary
run: |
echo "# ${{ matrix.board.id }} build summary" >> $GITHUB_STEP_SUMMARY
echo "## Artifacts" >> $GITHUB_STEP_SUMMARY
echo "| File | Size (bytes) | Size (formatted) |" >> $GITHUB_STEP_SUMMARY
echo "|:-|:-|:-|" >> $GITHUB_STEP_SUMMARY
for f in output/images/haos_*; do
echo "| $(basename $f) | $(du -b $f | cut -f1) | $(du -bh $f | cut -f1) |" >> $GITHUB_STEP_SUMMARY
done
echo "## Partitions" >> $GITHUB_STEP_SUMMARY
echo "| File | Size (bytes) | Size (formatted) |" >> $GITHUB_STEP_SUMMARY
echo "|:-|:-|:-|" >> $GITHUB_STEP_SUMMARY
for f in boot.vfat kernel.img rootfs.erofs overlay.ext4 data.ext4; do
echo "| ${f} | $(du -b output/images/$f | cut -f1) | $(du -bh output/images/$f | cut -f1) |" >> $GITHUB_STEP_SUMMARY
done
- name: Upload OS image artifact
uses: actions/upload-artifact@v4
if: ${{ github.event_name != 'release' && needs.prepare.outputs.publish_build != 'true' && matrix.board.id != 'ova' }}
with:
name: haos_${{ matrix.board.id }}-${{ needs.prepare.outputs.version_full }}.img.xz
path: |
output/images/haos_${{ matrix.board.id }}-${{ needs.prepare.outputs.version_full }}.img.xz
- name: Upload RAUC bundle artifact
uses: actions/upload-artifact@v4
if: ${{ github.event_name != 'release' && needs.prepare.outputs.publish_build != 'true' }}
with:
name: haos_${{ matrix.board.id }}-${{ needs.prepare.outputs.version_full }}.raucb
path: |
output/images/haos_${{ matrix.board.id }}-${{ needs.prepare.outputs.version_full }}.raucb
- name: Upload Open Virtualization Format (OVA) artifact
uses: actions/upload-artifact@v4
if: ${{ github.event_name != 'release' && needs.prepare.outputs.publish_build != 'true' && matrix.board.id == 'ova' }}
with:
name: haos_${{ matrix.board.id }}-${{ needs.prepare.outputs.version_full }}.ova
path: |
output/images/haos_${{ matrix.board.id }}-${{ needs.prepare.outputs.version_full }}.ova
- name: Upload QEMU disk image artifact
uses: actions/upload-artifact@v4
# Create artifact for ova every time - it's used by the called tests workflow
if: ${{ matrix.board.id == 'ova' || (github.event_name != 'release' && needs.prepare.outputs.publish_build != 'true' && matrix.board.id == 'generic-aarch64') }}
with:
name: haos_${{ matrix.board.id }}-${{ needs.prepare.outputs.version_full }}.qcow2.xz
path: |
output/images/haos_${{ matrix.board.id }}-${{ needs.prepare.outputs.version_full }}.qcow2.xz
- name: Upload VMware Virtual Machine Disk (VMDK) artifact
uses: actions/upload-artifact@v4
if: ${{ github.event_name != 'release' && needs.prepare.outputs.publish_build != 'true' && (matrix.board.id == 'generic-aarch64' || matrix.board.id == 'ova') }}
with:
name: haos_${{ matrix.board.id }}-${{ needs.prepare.outputs.version_full }}.vmdk.zip
path: |
output/images/haos_${{ matrix.board.id }}-${{ needs.prepare.outputs.version_full }}.vmdk.zip
- name: Upload VirtualBox Virtual Disk Image (VDI) artifact
uses: actions/upload-artifact@v4
if: ${{ github.event_name != 'release' && needs.prepare.outputs.publish_build != 'true' && matrix.board.id == 'ova' }}
with:
name: haos_${{ matrix.board.id }}-${{ needs.prepare.outputs.version_full }}.vdi.zip
path: |
output/images/haos_${{ matrix.board.id }}-${{ needs.prepare.outputs.version_full }}.vdi.zip
- name: Upload Virtual Hard Disk v2 (VHDX) artifact
uses: actions/upload-artifact@v4
if: ${{ github.event_name != 'release' && needs.prepare.outputs.publish_build != 'true' && matrix.board.id == 'ova' }}
with:
name: haos_${{ matrix.board.id }}-${{ needs.prepare.outputs.version_full }}.vhdx.zip
path: |
output/images/haos_${{ matrix.board.id }}-${{ needs.prepare.outputs.version_full }}.vhdx.zip
test:
name: Test OS image
needs: [ build, prepare ]
uses: ./.github/workflows/test.yaml
with:
version: ${{ needs.prepare.outputs.version_full }}
update_index:
name: Update artifacts index
if: ${{ github.event_name != 'release' && needs.prepare.outputs.publish_build == 'true' }}
needs: [ build, prepare ]
uses: home-assistant/operating-system/.github/workflows/artifacts-index.yaml@dev
with:
version: ${{ needs.prepare.outputs.version_full }}
secrets:
R2_OS_ARTIFACTS_ID: ${{ secrets.R2_OS_ARTIFACTS_ID }}
R2_OS_ARTIFACTS_KEY: ${{ secrets.R2_OS_ARTIFACTS_KEY }}
R2_OS_ARTIFACTS_BUCKET: ${{ secrets.R2_OS_ARTIFACTS_BUCKET }}
R2_OS_ARTIFACTS_ENDPOINT: ${{ secrets.R2_OS_ARTIFACTS_ENDPOINT }}
CF_ZONE: ${{ secrets.CF_ZONE }}
CF_PURGE_TOKEN: ${{ secrets.CF_PURGE_TOKEN }}
bump_version:
name: Bump ${{ needs.prepare.outputs.channel }} channel version
if: ${{ github.repository == 'home-assistant/operating-system' && needs.prepare.outputs.publish_build == 'true' }}
environment: ${{ needs.prepare.outputs.channel }}
needs: [ build, prepare ]
runs-on: ubuntu-22.04
steps:
- name: Checkout source
uses: actions/checkout@v4
with:
persist-credentials: false
- name: Initialize git
uses: home-assistant/actions/helpers/git-init@master
with:
name: ${{ secrets.GIT_NAME }}
email: ${{ secrets.GIT_EMAIL }}
token: ${{ secrets.GIT_TOKEN }}
- name: Bump Home Assistant OS ${{ needs.prepare.outputs.channel }} channel version
uses: home-assistant/actions/helpers/version-push@master
with:
key: "hassos[]"
key-description: "Home Assistant OS"
version: ${{ needs.prepare.outputs.version_full }}
channel: ${{ needs.prepare.outputs.channel }}
- name: Bump Home Assistant OS beta channel version on stable release
if: ${{ needs.prepare.outputs.channel == 'stable' }}
uses: home-assistant/actions/helpers/version-push@master
with:
key: "hassos[]"
key-description: "Home Assistant OS"
version: ${{ needs.prepare.outputs.version_full }}
channel: beta
- name: Bump stable Home Assistant version for RPi Imager
if: ${{ github.event_name == 'release' && needs.prepare.outputs.channel == 'stable' }}
uses: "./.github/actions/bump-rpi-imager-version"
with:
version: ${{ needs.prepare.outputs.version_full }}
release-date: ${{ github.event.release.published_at }}

17
.github/workflows/label-actions.yml vendored Normal file
View File

@@ -0,0 +1,17 @@
name: 'Label Actions'
on:
issues:
types: [labeled, unlabeled]
permissions:
contents: read
issues: write
pull-requests: write
discussions: write
jobs:
action:
runs-on: ubuntu-latest
steps:
- uses: dessant/label-actions@v4.0.1

116
.github/workflows/matrix.json vendored Normal file
View File

@@ -0,0 +1,116 @@
[
{
"id": "ova",
"defconfig": "ova",
"architecture": "x86-64",
"label": "board/ova"
},
{
"id": "generic-x86-64",
"defconfig": "generic_x86_64",
"architecture": "x86-64",
"label": "board/generic-x86-64"
},
{
"id": "generic-aarch64",
"defconfig": "generic_aarch64",
"architecture": "aarch64",
"label": "board/generic-aarch64"
},
{
"id": "khadas-vim3",
"defconfig": "khadas_vim3",
"architecture": "aarch64",
"label": "board/khadas"
},
{
"id": "odroid-c2",
"defconfig": "odroid_c2",
"architecture": "aarch64",
"label": "board/odroid"
},
{
"id": "odroid-c4",
"defconfig": "odroid_c4",
"architecture": "aarch64",
"label": "board/odroid"
},
{
"id": "odroid-m1",
"defconfig": "odroid_m1",
"architecture": "aarch64",
"label": "board/odroid"
},
{
"id": "odroid-m1s",
"defconfig": "odroid_m1s",
"architecture": "aarch64",
"label": "board/odroid"
},
{
"id": "odroid-n2",
"defconfig": "odroid_n2",
"architecture": "aarch64",
"label": "board/odroid"
},
{
"id": "odroid-xu4",
"defconfig": "odroid_xu4",
"architecture": "aarch64",
"label": "board/odroid"
},
{
"id": "rpi2",
"defconfig": "rpi2",
"architecture": "arm",
"label": "board/raspberrypi"
},
{
"id": "rpi3",
"defconfig": "rpi3",
"architecture": "arm",
"label": "board/raspberrypi"
},
{
"id": "rpi3-64",
"defconfig": "rpi3_64",
"architecture": "aarch64",
"label": "board/raspberrypi"
},
{
"id": "rpi4",
"defconfig": "rpi4",
"architecture": "arm",
"label": "board/raspberrypi"
},
{
"id": "rpi4-64",
"defconfig": "rpi4_64",
"architecture": "aarch64",
"label": "board/raspberrypi"
},
{
"id": "rpi5-64",
"defconfig": "rpi5_64",
"architecture": "aarch64",
"label": "board/raspberrypi"
},
{
"id": "yellow",
"defconfig": "yellow",
"architecture": "aarch64",
"label": "board/yellow"
},
{
"id": "green",
"defconfig": "green",
"architecture": "aarch64",
"label": "board/green"
},
{
"id": "tinker",
"defconfig": "tinker",
"architecture": "arm",
"label": "board/tinker"
}
]

34
.github/workflows/pr-checks.yml vendored Normal file
View File

@@ -0,0 +1,34 @@
# Home Assistant Operating System pull-request checks
name: PR checks
on: [pull_request]
jobs:
linters:
runs-on: ubuntu-22.04
steps:
- name: Install additional dependencies
run: |
sudo apt-get update
sudo apt-get -y install \
python3-flake8
- name: Check out code
uses: actions/checkout@v4
with:
submodules: true
- name: Check Dockerfile
uses: brpaz/hadolint-action@v1.5.0
with:
dockerfile: Dockerfile
- name: Check shell scripts
uses: ludeeus/action-shellcheck@2.0.0
with:
ignore_paths: buildroot
- name: Check buildroot-external packages
run: |
buildroot/utils/check-package --exclude PackageHeader --exclude Upstream --br2-external buildroot-external/package/*/*

18
.github/workflows/release-drafter.yml vendored Normal file
View File

@@ -0,0 +1,18 @@
name: Release Drafter
on:
push:
branches:
- dev
- rel-*
jobs:
update_release_draft:
permissions:
contents: write # for release-drafter/release-drafter to create a github release
pull-requests: read # for release-drafter/release-drafter to read PR content and labels
runs-on: ubuntu-latest
steps:
- uses: release-drafter/release-drafter@v6
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

50
.github/workflows/stale.yml vendored Normal file
View File

@@ -0,0 +1,50 @@
name: Stale
# yamllint disable-line rule:truthy
on:
schedule:
- cron: "40 5 * * *"
workflow_dispatch:
jobs:
stale:
permissions:
issues: write # for actions/stale to close stale issues
pull-requests: write # for actions/stale to close stale PRs
runs-on: ubuntu-latest
steps:
# The 90 day stale policy
# Used for:
# - Issues & PRs
# - No PRs marked as no-stale or pinned
# - No issues marked as no-stale, help-wanted or pinned
- name: 90 days stale issues & PRs policy
uses: actions/stale@v9.1.0
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
days-before-stale: 90
days-before-close: 7
operations-per-run: 150
remove-stale-when-updated: true
stale-issue-label: "stale"
exempt-issue-labels: "no-stale,help-wanted,pinned,enhancement"
stale-issue-message: >
There hasn't been any activity on this issue recently. To keep our
backlog manageable we have to clean old issues, as many of them have
already been resolved with the latest updates.
Please make sure to update to the latest Home Assistant OS version and
check if that solves the issue. Let us know if that works for you by
adding a comment 👍
This issue has now been marked as stale and will be closed if no
further activity occurs. Thank you for your contributions.
stale-pr-label: "stale"
exempt-pr-labels: "no-stale,pinned"
stale-pr-message: >
There hasn't been any activity on this pull request recently. This
pull request has been automatically marked as stale because of that
and will be closed if no further activity occurs within 7 days.
Thank you for your contributions.

101
.github/workflows/test.yaml vendored Normal file
View File

@@ -0,0 +1,101 @@
name: Test HAOS image
run-name: "Test HAOS ${{ inputs.version || format('(OS build #{0})', github.event.workflow_run.run_number) }}"
on:
# Manual test of specified version
workflow_dispatch:
inputs:
version:
description: Version of HAOS to test
required: true
type: string
# Called by other workflows (e.g. build.yaml)
workflow_call:
inputs:
use-artifact:
# Workaround for GH weirdness: https://github.com/actions/runner/discussions/1884
description: Download OS image using actions/download-artifact
required: false
type: boolean
default: true
version:
description: Version of HAOS to test (as used in the name of the qcow2 image artifact)
required: true
type: string
jobs:
test:
if: ${{ github.event_name != 'workflow_run' || github.event.workflow_run.conclusion == 'success' }}
name: Test in QEMU
runs-on: ubuntu-22.04
steps:
- name: Checkout source
uses: actions/checkout@v4
with:
persist-credentials: false
- name: Install system dependencies
run: |
sudo apt update
sudo apt install -y qemu-system-x86 ovmf
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: 3.12
- name: Install Python requirements
run:
pip install -r tests/requirements.txt
- name: Download HAOS image
if: ${{ !inputs.use-artifact }}
run: |
curl -sfL -o haos.qcow2.xz https://os-artifacts.home-assistant.io/${{github.event.inputs.version}}/haos_ova-${{github.event.inputs.version}}.qcow2.xz
- name: Get OS image artifact
if: ${{ inputs.use-artifact }}
uses: actions/download-artifact@v4
with:
name: haos_ova-${{ inputs.version }}.qcow2.xz
- name: Extract OS image
run: |
xz -dc haos*.qcow2.xz > tests/haos.qcow2
rm haos*.qcow2.xz
- name: Enable KVM group perms
run: |
echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
sudo udevadm control --reload-rules
sudo udevadm trigger --name-match=kvm
- name: Run tests
run: |
./tests/run_tests.sh
- name: Archive logs
uses: actions/upload-artifact@v4
if: always()
with:
name: logs
path: |
tests/lg_logs/**
- name: Archive JUnit reports
uses: actions/upload-artifact@v4
if: always()
with:
name: junit_reports
path: |
tests/junit_reports/*.xml
- name: Publish test report
uses: mikepenz/action-junit-report@v5
if: always()
with:
report_paths: 'tests/junit_reports/*.xml'
annotate_only: true
detailed_summary: true

12
.gitignore vendored Normal file
View File

@@ -0,0 +1,12 @@
# OS generated files
.DS_Store
# Build output dirs
/release
output*/
# Certificates
*.pem
# vscode generated files
.vscode*

4
.gitmodules vendored Normal file
View File

@@ -0,0 +1,4 @@
[submodule "buildroot"]
path = buildroot
url = https://github.com/home-assistant/buildroot.git
branch = 2024.02.x-haos

2
.hadolint.yaml Normal file
View File

@@ -0,0 +1,2 @@
ignored:
- DL3008

82
.os-artifacts/index.html Normal file
View File

@@ -0,0 +1,82 @@
<!DOCTYPE html>
<html>
<head>
<title>Home Assistant OS - development builds</title>
<link rel="shortcut icon" href="https://brands.home-assistant.io/homeassistant/icon.png">
<style>
body {
font-family: 'Trebuchet MS', 'Lucida Sans Unicode', 'Lucida Grande', 'Lucida Sans', Arial, sans-serif;
}
.error {
color: maroon;
}
</style>
</head>
<body>
<h1>Home Assistant OS - development builds</h1>
<select id="os-builds"></select>
<div id="os-builds-list"></div>
<script>
const buildSelect = document.getElementById('os-builds');
const osBuildsList = document.getElementById('os-builds-list');
const fillVersions = async () => {
try {
const response = await fetch('/index.json');
if (!response.ok) {
const p = document.createElement('p');
p.className = "error";
p.textContent = "Could not load version index file.";
osBuildsList.appendChild(p);
return;
}
const items = await response.json();
items.reverse();
items.forEach(buildVersion => {
buildSelect.appendChild(new Option(buildVersion, buildVersion));
});
buildSelect.dispatchEvent(new Event('change'));
} catch (error) {
console.error('Error fetching data:', error);
}
}
buildSelect.addEventListener('change', async function() {
osBuildsList.innerHTML = '';
const buildVersion = this.value;
try {
const response = await fetch(`/indexes/${buildVersion}.json`);
if (!response.ok) {
const p = document.createElement('p');
p.className = "error";
p.textContent = `Could not load index file for version ${buildVersion}.`;
osBuildsList.appendChild(p);
return;
}
const images = await response.json();
const ul = document.createElement('ul');
images.forEach(image => {
const li = document.createElement('li');
const a = document.createElement('a');
a.href =`/${buildVersion}/${image}`;
a.textContent = image;
li.appendChild(a);
ul.appendChild(li);
});
osBuildsList.appendChild(ul);
} catch (error) {
console.error('Error fetching images:', error);
}
});
fillVersions();
</script>
</body>
</html>

View File

@@ -1,21 +1,55 @@
FROM ubuntu:16.04
FROM debian:bullseye
# Set shell
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
# Docker
RUN apt-get update && apt-get install -y \
RUN apt-get update && apt-get install -y --no-install-recommends \
apt-transport-https \
ca-certificates \
curl \
gpg-agent \
gpg \
dirmngr \
software-properties-common \
&& rm -rf /var/lib/apt/lists/* \
&& curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add - \
&& add-apt-repository "deb https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" \
&& apt-get update && apt-get install -y docker-ce \
&& curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /etc/apt/trusted.gpg.d/docker.gpg \
&& echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/trusted.gpg.d/docker.gpg] \
https://download.docker.com/linux/debian $(lsb_release -cs) stable" > /etc/apt/sources.list.d/docker.list \
&& apt-get update && apt-get install -y --no-install-recommends \
docker-ce \
&& rm -rf /var/lib/apt/lists/*
# Build Tools
RUN apt-get update && apt-get install -y \
wget patch vim cpio python unzip rsync bc bzip2 ncurses-dev \
git make g++ file perl bash binutils locales qemu-utils \
# Build tools
RUN apt-get update && apt-get install -y --no-install-recommends \
automake \
bash \
bc \
binutils \
build-essential \
bzip2 \
cpio \
file \
git \
graphviz \
help2man \
jq \
make \
ncurses-dev \
openssh-client \
patch \
perl \
python3 \
python3-matplotlib \
python-is-python3 \
qemu-utils \
rsync \
skopeo \
sudo \
texinfo \
unzip \
vim \
wget \
zip \
&& rm -rf /var/lib/apt/lists/*
# Init entry

9
Documentation/README.md Normal file
View File

@@ -0,0 +1,9 @@
# Documentation
## Contents
- [Configuration](./configuration.md) - how users can configure HAOS
- [Network](./network.md) - approach to networking
- [Bluetooth](./bluetooth.md) - approach to bluetooth
- [Kernel](./kernel.md) - kernel versions
- [Boards](./boards/README.md) - board specific documentation

View File

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

View File

@@ -0,0 +1,62 @@
# Boards
## Overview
The following boards/devices are supported:
- Nabu Casa
- [Home Assistant Green](https://www.home-assistant.io/green/)
- [Home Assistant Yellow](https://www.home-assistant.io/yellow/) (based custom carrier board and powered by a Raspberry Pi 4 Compute Module)
- [Home Assistant Blue](https://www.home-assistant.io/blue/) (based on ODROID-N2+)
- Raspberry Pi
- Pi 5 ([4 GB](https://www.raspberrypi.com/products/raspberry-pi-5/?variant=raspberry-pi-5-4gb) and [8 GB](https://www.raspberrypi.com/products/raspberry-pi-5/?variant=raspberry-pi-5-8gb) model) 64-bit
- Pi 4 Model B ([1 GB](https://www.raspberrypi.com/products/raspberry-pi-4-model-b/?variant=raspberry-pi-4-model-b-1gb), [2 GB](https://www.raspberrypi.com/products/raspberry-pi-4-model-b/?variant=raspberry-pi-4-model-b-2gb), [4 GB](https://www.raspberrypi.com/products/raspberry-pi-4-model-b/?variant=raspberry-pi-4-model-b-4gb) and [8 GB](https://www.raspberrypi.com/products/raspberry-pi-4-model-b/?variant=raspberry-pi-4-model-b-8gb) model) 32-bit or 64-bit (recommended)
- [Pi 3 Model B](https://www.raspberrypi.com/products/raspberry-pi-3-model-b/) and [B+](https://www.raspberrypi.com/products/raspberry-pi-3-model-b-plus/) 32-bit or 64-bit (recommended)
- [Pi 2](https://www.raspberrypi.com/products/raspberry-pi-2-model-b/) (not recommended)
- Hardkernel
- [ODROID-C2](https://www.hardkernel.com/shop/odroid-c2/) (discontinued)
- [ODROID-C4](https://www.hardkernel.com/shop/odroid-c4/)
- [ODROID-M1](https://www.hardkernel.com/shop/odroid-m1/)
- ODROID-M1S [4 GB](https://www.hardkernel.com/shop/odroid-m1s-with-4gbyte-ram/) or [8 GB](https://www.hardkernel.com/shop/odroid-m1s-with-8gbyte-ram/)
- [ODROID-N2](https://www.hardkernel.com/shop/odroid-n2/) (discontinued)
- ODROID-N2+ [2 GB](https://www.hardkernel.com/shop/odroid-n2-with-2gbyte-ram-2/) or [4 GB](https://www.hardkernel.com/shop/odroid-n2-with-4gbyte-ram-2/)
- [ODROID-XU4](https://www.hardkernel.com/shop/odroid-xu4-special-price/)
- Asus
- [Tinker Board](https://tinker-board.asus.com/product/tinker-board.html)
- Generic x86-64 (UEFI, not suited for virtualization)
- [Intel NUC5CPYH](https://www.intel.com/content/www/us/en/products/sku/85254/intel-nuc-kit-nuc5cpyh/specifications.html)
- [Intel NUC6CAYH](https://www.intel.com/content/www/us/en/products/sku/95062/intel-nuc-kit-nuc6cayh/specifications.html)
- [Intel NUC10I3FNK2](https://www.intel.com/content/www/us/en/products/sku/195503/intel-nuc-10-performance-kit-nuc10i3fnk/specifications.html)
- [Gigabyte GB-BPCE-3455](https://www.gigabyte.com/Mini-PcBarebone/GB-BPCE-3455-rev-10/sp#sp)
- Computers supporting x86-64 architecture and UEFI boot should generally work
- Virtual appliance (x86_64/UEFI):
- VMDK
- OVA ?
- VHDX ?
- VDI ?
- QCOW2 ?
Notes:
- see ? above: are these currently supported? see ova documentation which explains issues with previous OVA distribution)
## Board specifics
|Board|Build|Config|Docs|
|-----|----|------|----|
|Green |`make green` |[green](../../buildroot-external/configs/green_defconfig)|-|
|Yellow |`make yellow` |[yellow](../../buildroot-external/configs/yellow_defconfig)|-|
|Pi5 64-bit |`make rpi5_64` |[rpi5_64](../../buildroot-external/configs/rpi5_64_defconfig)|[raspberrypi](./raspberrypi/)|
|Pi4B 64-bit |`make rpi4_64` |[rpi4_64](../../buildroot-external/configs/rpi4_64_defconfig)|[raspberrypi](./raspberrypi/)|
|Pi4B 32-bit |`make rpi4` |[rpi4](../../buildroot-external/configs/rpi4_defconfig)|[raspberrypi](./raspberrypi/)|
|Pi3B 64-bit |`make rpi3_64` |[rpi3_64](../../buildroot-external/configs/rpi3_64_defconfig)|[raspberrypi](./raspberrypi/)|
|Pi3B 32-bit |`make rpi3` |[rpi3](../../buildroot-external/configs/rpi3_defconfig)|[raspberrypi](./raspberrypi/)|
|Pi2 |`make rpi2` |[rpi2](../../buildroot-external/configs/rpi2_defconfig)|[raspberrypi](./raspberrypi/)|
|ODROID-C2 |`make odroid_c2` |[odroid_c2](../../buildroot-external/configs/odroid_c2_defconfig)|[hardkernel](./hardkernel/)|
|ODROID-C4 |`make odroid_c4` |[odroid_c4](../../buildroot-external/configs/odroid_c4_defconfig)|[hardkernel](./hardkernel/)|
|ODROID-M1 |`make odroid_m1` |[odroid_m1](../../buildroot-external/configs/odroid_m1_defconfig)|[hardkernel](./hardkernel/)|
|ODROID-M1S |`make odroid_m1s` |[odroid_m1s](../../buildroot-external/configs/odroid_m1s_defconfig)|[hardkernel](./hardkernel/)|
|ODROID-N2/N2+ |`make odroid_n2` |[odroid_n2](../../buildroot-external/configs/odroid_n2_defconfig)|[hardkernel](./hardkernel/)|
|ODROID-XU4 |`make odroid_xu4` |[odroid_xu4](../../buildroot-external/configs/odroid_xu4_defconfig)|[hardkernel](./hardkernel/)|
|Tinker Board |`make tinker` |[tinker](../../buildroot-external/configs/tinker_defconfig)|[asus](./asus/)|
|Generic x86-64|`make generic_x86_64`|[generic_x86_64](../../buildroot-external/configs/generic_x86_64_defconfig)|[generic-x86-64](./generic-x86-64/)|
|OVA |`make ova` |[ova](../../buildroot-external/configs/ova_defconfig)|[ova](./ova/)|

View File

@@ -0,0 +1,31 @@
# Tinker Board
## Supported Hardware
| Device | Release Date | Support | Config |
|----------------|---------------|---------|----------|
| Tinker RK3288 | April 2017 | yes | [tinker](../../../buildroot-external/configs/tinker_defconfig) |
| Tinker S RK3288| January 2018 | yes | [tinker](../../../buildroot-external/configs/tinker_defconfig) |
| Tinker Edge T | November 2019 | no? | |
| Tinker Edge R | November 2019 | no? | |
## eMMC
eMMC support is provided with the same image. Just flash the image to the eMMC by connecting your Tinker Board S to your PC via Micro-USB. Refer to the Tinkerboard documentation how-to flash using Micro-USB and UMS.
The Home Assistant OS provided U-Boot does support UMS as well,
however manual intervention is necessary:
1. Set the jumper between Micro-USB and HDMI the maskrom mode
2. Insert SD card and connect the board via Micro-USB to your PC
3. Continusly press Ctrl+C to interrupt boot
4. Set the jumper back to the park position
5. Start UMS using:
```
ums 0 mmc 0
```
6. A mass storage device should appear. Flash Home Assistant OS to it.
## Serial console
To access the terminal over serial console, add `console=ttyS2,115200` to `cmdline.txt`. GPIO pins are: 34 = GND / 32 = UART TXD / 33 = UART RXD.

View File

@@ -0,0 +1,36 @@
# Generic aarch64
## Supported Hardware
This board configuration aims to support most aarch64 systems with UEFI boot
Hardware it has been tested with is listed below.
## Tested Hardware
| Device | Release Date | Support | Config |
|-----------------------|--------------|---------|-------------|
| QEMU | QEMU | yes | [generic_aarch64](../../../buildroot-external/configs/generic_aarch64_defconfig) |
## Requirements
- aarch64 support
- UEFI boot
## Wifi
WiFi is untested.
## Bluetooth
Bluetooth is untested.
## Installation
Make sure secure boot is disabled in the UEFI BIOS settings.
Currently there is no shiny installation method. Checklist:
- Boot PC to live environment using PXE or USB
- Copy or download the Home Assistant OS image into your live environment
- unxz the image and dd to the local hard disk
- Reboot

View File

@@ -0,0 +1,62 @@
# Generic x86-64
## Supported Hardware
This board configuration aims to support most x86-64 systems with UEFI boot. The
main aim is to support Intel NUC mini PCs and similar systems. Hardware it has
been tested with is listed below.
## Tested Hardware
| Device | Release Date | Support | Config |
|-----------------------|--------------|---------|-------------|
| Intel NUC5CPYH | Q3 2015 | yes | [generic_x86_64](../../../buildroot-external/configs/generic_x86_64_defconfig) |
| Intel NUC6CAYH | Q4 2016 | yes | [generic_x86_64](../../../buildroot-external/configs/generic_x86_64_defconfig) |
| Intel NUC6CAYS | Q4 2016 | yes | [generic_x86_64](../../../buildroot-external/configs/generic_x86_64_defconfig) |
| Intel NUC7i3DNHE | Q3 2017 | yes | [generic_x86_64](../../../buildroot-external/configs/generic_x86_64_defconfig) |
| Intel NUC10i3FNK2 | Q4 2019 | yes | [generic_x86_64](../../../buildroot-external/configs/generic_x86_64_defconfig) |
| Gigabyte GB-BPCE-3455 | 2017 | yes* | [generic_x86_64](../../../buildroot-external/configs/generic_x86_64_defconfig) |
\* needs 'nomodeset' in cmdline.txt if you want a console
## Requirements
- x86-64 support
- UEFI boot
- SATA/AHCI or eMMC storage
- Supported NIC:
- Intel Gigabit NIC (e1000, igb - via Linux mainline)
- Intel PCIe Gigabit NIC (e1000e - via out-of-tree module in *buildroot-external/package/intel-e1000e*)
- Realtek Gigabit NIC (r8169)
- Intel Wireless Wifi 802.11ac (iwlwifi, see below)
## Wifi
The following cards are supported:
- Intel Wireless 3160
- Intel Wireless 7260
- Intel Wireless 7265
- Intel Wireless-AC 3165
- Intel Wireless-AC 3168
- Intel Wireless-AC 8260
- Intel Wireless-AC 8265
- Intel Wireless-AC 9260
- Intel Wireless-AC 9461
- Intel Wireless-AC 9462
- Intel Wireless-AC 9560
## Bluetooth
Bluetooth integrated in Intel Wireless cards working OK, other options untested.
## Installation
Make sure secure boot is disabled in the UEFI BIOS settings.
Currently there is no shiny installation method. Checklist:
- Boot PC to live environment using PXE or USB
- Copy or download the Home Assistant OS image into your live environment
- unxz the image and dd to the local hard disk
- Reboot

View File

@@ -0,0 +1,28 @@
# ODROID
## Supported Hardware
| Device | Release Date | Support | Config |
|----------------|---------------|--------------|-----------|
| ODROID-C2 | 2016 | yes | [odroid_c2](../../../buildroot-external/configs/odroid_c2_defconfig) |
| ODROID-C4 | 2020 | yes | [odroid_c4](../../../buildroot-external/configs/odroid_c4_defconfig) |
| ODROID-M1 | 2022 | yes | [odroid_m1](../../../buildroot-external/configs/odroid_m1_defconfig) |
| ODROID-M1S | 2023 | yes | [odroid_m1s](../../../buildroot-external/configs/odroid_m1s_defconfig)|
| ODROID-N2 | 2019 | yes | [odroid_n2](../../../buildroot-external/configs/odroid_n2_defconfig) |
| ODROID-XU4 | 2015 | yes | [odroid_xu4](../../../buildroot-external/configs/odroid_xu4_defconfig)|
See separate documentation for each board.
## Connectivity devices
### Wi-Fi
The following devices have been tested on Home Assistant OS 5.8:
- [Bluetooth Module 2](https://www.hardkernel.com/shop/bluetooth-module-2/)
- [WiFi Module 3](https://www.hardkernel.com/shop/wifi-module-3/)
The [WiFi Module 5A](https://www.hardkernel.com/shop/wifi-module-5a/) is not
recommended as there is no upstream driver support available. The driver
currently compatible with recent Linux kernel version seems to have issues
connecting to 5GHz networks.

View File

@@ -0,0 +1,22 @@
# ODROID-C2
## eMMC
eMMC support is provided transparently. Just flash the image to the eMMC board as you would an SD card.
## Console
By default, console access is granted over the serial header and over HDMI. Certain startup messages will only appear on the serial console by default. To show the messages on the HDMI console instead, swap the order of the two consoles in the `cmdline.txt` file on the boot partition. You can also delete the AML0 console if you don't plan on using the serial adapter.
eg. `console=ttyAML0,115200n8 console=tty0`
## USB
A long-standing kernel bug currently results in some odd behavior. To use the USB, a device must be plugged into one of the USB ports at hard boot. If all devices are removed from the USB ports, the USB will cease to function until a reboot.
### OTG
The OTG USB is untested.
## GPIO
Refer to [the odroid wiki](https://wiki.odroid.com/odroid-c2/hardware/expansion_connectors).

View File

@@ -0,0 +1,16 @@
# ODROID-C4
## Experimental
ODROID-C4 support is based heavily on the Odroid-C2 and N2 configurations. Given the similarity of the SoCs, as well as the comparable level of support in the Linux kernel, the C4 should hopefully present few surprises. However, Home Assistant support should be regarded as experimental.
Please also refer to the documentation pages for the [ODROID-C2](./odroid-c2.md) and [Odroid-N2](./odroid-n2.md), as some of that information may apply to the C4 as well.
Common C4 issues that have been specifically tested and appear to be working:
- boot from SD
- boot from eMMC
- MAC address obtained from eFuse
## GPIO
Refer to [the odroid wiki](https://wiki.odroid.com/odroid-c4/hardware/expansion_connectors).

View File

@@ -0,0 +1,50 @@
# ODROID-M1
Home Assistant OS 10 and newer support the ODROID-M1 board.
## SD-card
SD-card boot is supported via on-board bootloader (SPL) or recovery button.
## eMMC
eMMC boot via on-board bootloader requires a newer version of Petitboot
(spiboot 20230328 or later). To install the latest version download the SPI boot image
from [linuxfactory.or.kr][1] as follows:
1. Download `spiupdate_odroidm1_20240415.img.xz`
2. Use balenaEtcher or another tool to flash the updater onto an SD card
3. Download `spiboot-20240109.img`
4. Rename the `spiboot-20240109.img` file to`spiboot.img`.
5. Paste the `spiboot.img` file onto the FAT partition of that same SD card.
6. Plug-in that SD card to your ODROID-M1. Petitboot will update itself, you can verify the progress on the HDMI output.
7. If you see the version 20240109 in the top left corner, the installation was successful.\
If you see any other version there, the installation failed.
Once Petitboot is updated you can flash Home Assistant OS directly onto an eMMC.
## NVMe
Booting directly from NVMe is not supported. The NVMe card can be used as a data disk.
## Technical notes on boot flow
The Home Assistant OS image is bootable by the SoC directly. This means that no help
from the Hardkernel provided and pre-installed bootloader Petitboot is necessary.
However, the ODROID-M1 automatically boots from internal SPI. To boot
directly off the SD-card or eMMC you need to press the recovery button.
The SPI flashed U-Boot SPL tries searches for an U-Boot binary on the SD-card
(and from eMMC with Petitboot 20230328 and later). This mechanism allows you to
boot the Home Assistant OS U-Boot without pressing the recovery button.
## Console
By default, console access is available on the serial header (CON1) and on HDMI.
The serial console's baudrate is 1500000 by default.
The systemd startup messages will only appear on the serial console by default.
To show the messages on the HDMI console instead, add the console manually
to the `cmdline.txt` file on the boot partition (e.g. `console=tty0`).
[1]: http://ppa.linuxfactory.or.kr/images/petitboot/odroidm1/

View File

@@ -0,0 +1,58 @@
# ODROID-M1S
Home Assistant OS 12 and newer support the ODROID-M1S board.
## SD-card
ODROID-M1S can boot HAOS directly from an SD card, as it has higher priority than the system on the eMMC. Simply flash the image to the SD card using your favorite tool and insert it to the micro SD slot on the board. This works even when the eMMC is wiped, or when it contains the factory-default U-Boot SPL loader, which is still able to load U-Boot provided in the HAOS image. In the second case, however, if the SD card fails to probe (e.g. due to a hardware failure), the system on the eMMC may be booted instead of HAOS.
## eMMC
HAOS can be installed directly to the eMMC using a special boot image, to do that:
1. Download the _UMS Utility_ image: [`ODROID-M1S_EMMC2UMS.img`][1]. The _UMS Utility_ is a special image that switches ODROID-M1S to USB Mass Storage device.
2. Use balenaEtcher or another tool to flash the _UMS utility_ onto an SD card.
3. Plug-in that SD card to your ODROID-M1S and boot it. Connect your PC to the Micro USB OTG port.
4. The eMMC will show as a drive on your PC and you can directly flash the HAOS image with balenaEther.
Installing HAOS replaces the firmware and SPL on the eMMC with the mainline version provided by HAOS. As a result, it is not possible to use the SD card with the EMMC2UMS image anymore, because the mainline SPL is not compatible with U-Boot in the EMMC2UMS image at this time (February 2024). This does not pose any problem for standard use, just makes it more complicated in case you want to return to the Hardkernel-provided OS.
A reliable way of reflashing the eMMC in this case is to use HAOS booted from an SD card. To do that, insert the SD card with HAOS to the micro SD slot and plug the board in. Once the device boots to the HA CLI, enter `login` to enter the root shell and use `curl` to download an image and `dd` it to the eMMC block device:
```sh
curl https://dn.odroid.com/RK3566/ODROID-M1S/Installer/ODROID-M1S_EMMC2UMS.img | dd of=/dev/mmcblk0
```
This way the device will start in the UMS mode on the next boot with the SD card removed. Alternatively you can use the [Hardkernel installer image][2] directly instead of the EMMC2UMS image.
## NVMe
Booting directly from NVMe is not supported. The NVMe card can be used as a data disk.
## Technical notes on boot flow
The Home Assistant OS image is bootable by the SoC directly. Refer to the [boot sequence documentation][3] for the details on what part of the boot is executed from the eMMC and what from the SD card. The steps documented above should however cover all scenarios that a standard user may encounter during usage.
## Console
By default, console access is available on the serial header (UART) and on HDMI.
The serial console's baudrate is 1500000 by default.
The systemd startup messages will only appear on the serial console by default.
To show the messages on the HDMI console instead, add the console manually
to the `cmdline.txt` file on the boot partition (e.g. `console=tty0`).
## GPIO
Odroid-M1S introduces a new 14pin expansion header. Refer to [the ODROID wiki][4].
At this point not all functionality is supported by the upstream kernel used by Home Assistant OS.
Supported modules include:
- UPS
- Internal USB
- Mini IO board (partial support)
[1]: https://dn.odroid.com/RK3566/ODROID-M1S/Installer/ODROID-M1S_EMMC2UMS.img
[2]: https://wiki.odroid.com/odroid-m1s/getting_started/os_installation_guide#user_installer
[3]: https://wiki.odroid.com/odroid-m1s/board_support/boot_sequence
[4]: https://wiki.odroid.com/odroid-m1s/hardware/expansion_connectors

View File

@@ -0,0 +1,18 @@
# ODROID-N2
## eMMC
eMMC support is provided transparently. Just flash the image to the eMMC board as you would an SD card.
## Console
By default, console access is granted over the serial header and over HDMI. Certain startup messages will only appear on the serial console by default. To show the messages on the HDMI console instead, swap the order of the two consoles in the `cmdline.txt` file on the boot partition. You can also delete the AML0 console if you don't plan on using the serial adapter.
eg. `console=ttyAML0,115200n8 console=tty0`
## GPIO
Refer to [the odroid wiki](https://wiki.odroid.com/odroid-n2/hardware/expansion_connectors).
At this point not all functionality is supported by the upstream kernel used
by Home Assistant OS.
The GPIO on pin 11 is used as a low active power button input.

View File

@@ -0,0 +1,29 @@
# ODROID-XU4
## eMMC
The ODROID XU4 uses the eMMC boot partition to boot from. Typically eMMC readers can't write to this eMMC boot partition. There are a couple of possibilities:
1. **Working** e.g. the eMMC already had a working image before flashing HassOS:
- It will be booting to U-Boot (but no further).
- If you have the serial adapter, you should be able to enter `distro_bootcmd` at the uboot prompt to continue booting.
- If not, flash the HassOS image to an SD card and boot off that temporarily (while the eMMC is also plugged in).
- Once booted, login at the prompts and then enter `dd if=/dev/mmcblk0 of=/dev/mmcblk0boot0 bs=512 skip=63 seek=62 count=1440` at the linux prompt.
- Reboot with eMMC (don't forget to flip the boot switch to eMMC)
2. **Not Working** e.g. a clean/wiped/corruped eMMC boot partition:
- You'll need to follow [Hardkernel's instructions](https://forum.odroid.com/viewtopic.php?f=53&t=6173) to get a working boot sector. Then flash HassOS and follow instructions above.
- Alternatively, you can try flash HassOS to both an SD and eMMC, then boot off the SD with the eMMC also plugged in, then run `dd if=/dev/mmcblk1 of=/dev/mmcblk0boot0 bs=512 skip=1 seek=0 count=16381` at the Linux prompt. Note that this is untested, but in theory should work..
If you are getting permissions issues when using the dd command, try disabling RO:
`echo 0 > /sys/block/mmcblk0boot0/force_ro`
to re-enable after running dd:
`echo 1 > /sys/block/mmcblk0boot0/force_ro`
## Console
By default, console access is granted over the serial header and over HDMI. Certain startup messages will only appear on the serial console by default. To show the messages on the HDMI console instead, swap the order of the two consoles in the `cmdline.txt` file on the boot partition. You can also delete the SAC2 console if you don't plan on using the serial adapter.
eg. `console=tty1 console=ttySAC2,115200`
## GPIO
Refer to [the odroid wiki](https://wiki.odroid.com/odroid-xu4/hardware/expansion_connectors).

View File

@@ -0,0 +1,22 @@
# Virtual Machine
## Supported Hypervisors
| Hypervisor | Vendor | Support | Config |
|---------------------|-----------|-----------------|--------------------|
| HyperV | Microsoft | yes, via VMDK | [ova](../../../buildroot-external/configs/ova_defconfig) |
| VirtualBox | Oracle | yes, via VMDK | [ova](../../../buildroot-external/configs/ova_defconfig) |
| VMware | VMware | yes, via VMDK | [ova](../../../buildroot-external/configs/ova_defconfig) |
Currently we only publish a VMDK virtual disk due to issues with our previous OVA distribution. We are investigating our options to bring back the OVA distribution, however, the VMDK works for the hypervisors listed above.
## Requirements
Using this VMDK in a virtual machine requires the following:
- Operating system: Other 4.x or later Linux (64-bit)
- Enabled support for UEFI boot
- SATA disk controller
- Minimal of 1GB RAM
- At least 2x vCPU
- An assigned network

View File

@@ -1,5 +0,0 @@
# Raspberry PI
## Serial console
For access to terminal over serial console, add `console=ttyAMA0,115200` to `cmdline.txt` and `enable_uart=1` into `config.txt`.

View File

@@ -0,0 +1,50 @@
# Raspberry PI
## Supported Hardware
| Device | Release Date | Support | Config |
|---------------------|---------------|-----------------|--------------------|
| Raspberry Pi 2 B |2015 | not recommended | [rpi2](../../../buildroot-external/configs/rpi2_defconfig) |
| Raspberry Pi 3 B/B+ |2016/2018 | yes | [rpi3](../../../buildroot-external/configs/rpi3_defconfig) / [rpi3_64](../../../buildroot-external/configs/rpi3_64_defconfig) |
| Raspberry Pi 4 B |2019 | yes | [rpi4](../../../buildroot-external/configs/rpi4_defconfig) / [rpi4_64](../../../buildroot-external/configs/rpi4_64_defconfig) |
| Raspberry Pi 5 |2023 | yes (beta) | [rpi5_64](../../../buildroot-external/configs/rpi5_64_defconfig) |
## Serial console
For access to terminal over serial console, add `console=ttyAMA0,115200` to `cmdline.txt` and `enable_uart=1`, `dtoverlay=pi3-disable-bt` into `config.txt`. GPIO pins are: 6 = GND / 8 = UART TXD / 10 = UART RXD.
## I2C
Add `dtparam=i2c1=on` and `dtparam=i2c_arm=on` to `config.txt`. After that we create a module file on host with [config usb stick][config] or direct into `/etc/modules-load.d`.
rpi-i2c.conf:
```
i2c-dev
i2c-bcm2708
```
## USB Boot
USB mass storage boot is available on Raspberry Pi 4 (64-bit only), 3B, 3B+, 3A+, and 2B v1.2.
For Raspberry 3B, 3A+ and 2B v1.2, to enable USB boot, add `program_usb_boot_mode=1` into `config.txt`. Note that this **permanently** alters the one-time programmable memory of the device.
For Raspberry 4
* Make sure to update the bootloader to a stable release supporting USB mass storage boot (see [bcm2711_bootloader_config.md](https://www.raspberrypi.org/documentation/hardware/raspberrypi/bcm2711_bootloader_config.md#usbmassstorageboot)).
* If no SD card is used add `sd_poll_once=on` to `dtparam` in `config.txt` (comma separated). This gets rid of `mmc0: timeout waiting for hardware interrupt` kernel errors.
* If install still fails, then your SSD likely needs quirks enabled to work correctly (see [Finding the VID and PID of your USB SSD](https://www.raspberrypi.org/forums/viewtopic.php?t=245931)). Once you find your adapter's ID, add the quirks parameter in `cmdline.txt`.
For more information see [RaspberryPi](https://www.raspberrypi.org/documentation/hardware/raspberrypi/bootmodes/msd.md).
### Caveats
* All bootable SD cards must be removed.
* Boot time can be significantly longer with USB. This is due to the boot process first attempting to boot from SD card, failing, and resorting to USB.
* Many USB drives simply do not work for boot. This is likely due to minimal driver support in uboot and will not be fixed. If you can't get it to boot on one drive, try a different brand/model. SanDisk Cruzer drives seem to have a higher rate of issues.
## Tweaks
If you don't need bluetooth, disabled it with add `dtoverlay=pi3-disable-bt` into `config.txt`.
[config]: ../../configuration.md#automatic

View File

@@ -2,28 +2,62 @@
## 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` (in all capitals). Alternative you can create a `CONFIG` folder inside the `boot` partition. Use the following directory structure within the USB drive:
```text
network/
modules/
known_hosts
hassos-xy.rauc
modprobe/
udev/
authorized_keys
timesyncd.conf
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-*.rauc` 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 `modprobe` folder is for modules configuration files (/etc/modprobe.d)
- The `udev` folder is for udev rules files.
- The `authorized_keys` file activates debug SSH access on port `22222`. See [Debugging Home Assistant][debug-homeassistant].
- The `timesyncd.conf` file allow you to set different NTP servers. HassOS won't boot without correct working time servers!
- The `hassos-*.raucb` file is a firmware OTA update which will be installed. These can be found on on the [release][hassos-release] page.
Text files that are on USB stick must have Unix (LF) end of line characters. If you create USB stick on Windows machine, be sure to use Notepad++, Visual Studio Code or any other editor, that supports different line endings. In Notepad++ LF EOL can be enabled with setting `Edit -> EOL Conversion -> Unix (LF)`.
You can put this USB stick into the device and it will be read on startup and files written to the correct places. You can also trigger this process later using `ha os import` from the CLI or by calling `systemctl restart hassos-config` on the OS shell. *The USB Stick just needs to be inserted to the device during this setup process and can be removed afterwards.*
## Local
### Bootargs
You can edit or create a `cmdline.txt` into your boot partition. That will be read from our bootloader.
You can edit or create a `cmdline.txt` in your boot partition. That will be read from the bootloader.
### Kernel-Module
The kernel module folder `/etc/modules-load.d` is persistent and you can add your config files there. See [Systemd modules load][systemd-modules].
The kernel module folder `/etc/modules-load.d` is persistent and you can add your configuration files there. See [Systemd modules load][systemd-modules]. You can add the modules configuration files in `/etc/modprobe.d` that is also persistent.
### 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 configurations from `/etc/NetworkManager/system-connections`.
### NTP
You can manual edit the systemd timesync file on `/etc/systemd/timesyncd.conf`.
Our default NTP configuration look like:
```
[Time]
NTP=time.cloudflare.com
FallbackNTP=0.pool.ntp.org 1.pool.ntp.org 2.pool.ntp.org 3.pool.ntp.org
```
[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-homeassistant]: https://developers.home-assistant.io/docs/operating-system/debugging

24
Documentation/kernel.md Normal file
View File

@@ -0,0 +1,24 @@
# Kernel Version
| Board | Version |
|-------|---------|
| Open Virtual Appliance | 6.12.17 |
| Raspberry Pi | 6.6.74 |
| Raspberry Pi 0-W | 6.6.74 |
| Raspberry Pi 2 | 6.6.74 |
| Raspberry Pi 3 | 6.6.74 |
| Raspberry Pi 4 | 6.6.74 |
| Raspberry Pi 5 | 6.6.74 |
| Home Assistant Yellow | 6.6.74 |
| Home Assistant Green | 6.12.17 |
| Tinker Board | 6.12.17 |
| ODROID-C2 | 6.12.17 |
| ODROID-C4 | 6.12.17 |
| ODROID-M1 | 6.12.17 |
| ODROID-M1S | 6.12.17 |
| ODROID-N2 | 6.12.17 |
| ODROID-XU4 | 6.12.17 |
| Generic aarch64 | 6.12.17 |
| Generic x86-64 | 6.12.17 |
| Khadas VIM3 | 6.12.17 |

193
Documentation/network.md Normal file
View File

@@ -0,0 +1,193 @@
# Network
Home Assistant Operating System uses NetworkManager to control the host network.
## Configure network
By default the device will be in DHCP state.
Basic network settings can be set through the Supervisor frontend in the System
tab. Advanced configurations such as VLAN are also available through the
`ha network` CLI command.
To restore the default configuration the `ha network` CLI command can be used as
well:
```
ha network update default --ipv4-method auto
```
If more advanced network settings are required network connection files can be
placed on a USB drive and imported to the host as described in
[Configuration][configuration-usb].
## Manual Network Configuration
If the frontend or `ha network` CLI cannot meet your use case, it is still
possible to configure the underlying NetworkManager manually.
You can read the [NetworkManager manual][nm-manual] or find many configuration
examples across the internet. Note that changes to `NetworkManager.conf` are
not supported currently, only connection keyfiles are supported. Keep in mind
that the system is read-only. If you don't want the IP address to change on
every boot, you should modify the UUID property to a generic [UUID4][uuid].
Inside the `\CONFIG\network\` directory on the USB drive or SD card, create a
file called `my-network` and add the appropriate contents below:
**NOTE: Please make sure to save this file with UNIX line endings (LF, and not Windows' default CRLF endings). You can do this using Notepad these days!**
### Default
A preinstalled connection profile for wired network is active by default:
```ini
[connection]
id=Home Assistant OS default
uuid=f62bf7c2-e565-49ff-bbfc-a4cf791e6add
type=802-3-ethernet
llmnr=2
mdns=2
[ipv4]
method=auto
[ipv6]
addr-gen-mode=stable-privacy
method=auto
```
### Wired connection to the LAN
```ini
[connection]
id=my-network
uuid=d55162b4-6152-4310-9312-8f4c54d86afa
type=802-3-ethernet
llmnr=2
mdns=2
[ipv4]
method=auto
[ipv6]
addr-gen-mode=stable-privacy
method=auto
```
### Wireless LAN WPA/PSK
```ini
[connection]
id=my-network
uuid=72111c67-4a5d-4d5c-925e-f8ee26efb3c3
type=802-11-wireless
[802-11-wireless]
mode=infrastructure
ssid=MY_SSID
# Uncomment below if your SSID is not broadcasted
#hidden=true
[802-11-wireless-security]
auth-alg=open
key-mgmt=wpa-psk
psk=MY_WLAN_SECRET_KEY
[ipv4]
method=auto
[ipv6]
addr-gen-mode=stable-privacy
method=auto
```
### Static IP
Replace the following configuration:
```ini
[ipv4]
method=manual
address=192.168.1.111/24;192.168.1.1
dns=8.8.8.8;8.8.4.4;
```
For `address`, the value before the semicolon is the IP address and subnet prefix bitlength. The second value (after the semicolon) is the IP address of the local gateway.
## Tips
### Reset network
If you want to reset the network configuration back to the default connection
profile using DHCP, use the following commands on the host console:
```bash
# rm -r /mnt/overlay/etc/NetworkManager/system-connections
# reboot
```
Home Assistant OS will recreate the default connection profile during boot.
### Enabling Wi-Fi
Wi-Fi is discouraged for reliability reasons. However, if you still prefer to use Wi-Fi, you can us the `ha network` command to set up Wi-Fi (example for a Raspberry Pi 4, check `ha network info` to check if your board supports Wi-Fi and the name of the Wi-Fi device):
```bash
ha network update wlan0 --ipv4-method auto --wifi-auth wpa-psk --wifi-mode infrastructure --wifi-ssid "MY-SSID" --wifi-psk MY_PASS
````
### Powersave
If you have trouble with powersave then apply the following changes:
```ini
[wifi]
# Values are 0 (use default), 1 (ignore/don't touch), 2 (disable) or 3 (enable).
powersave=0
```
## Using `nmcli` to set a static IPv4 address
Log into the the Home Assistant OS base system via a console:
```bash
Welcome to Home Assistant
homeassistant login:
```
- Login as `root` (no password needed). At the `ha >` prompt, type `login` (as instructed).
From there you use the `nmcli` configuration tool.
- `# nmcli con show` will list the "Home Assistant OS default" connection in use.
- `# nmcli con show "Home Assistant OS default"` will list all the properties of the connection.
To start editing the configuration setting for "Home Assistant OS default":
```bash
# nmcli con edit "Home Assistant OS default"
```
To add your static IP address (select 'yes' for manual method);
```bash
nmcli> set ipv4.addresses 192.168.100.10/24
Do you also want to set 'ipv4.method' to 'manual'? [yes]:
```
In addition, it's recommended to set the DNS server and the local gateway. For most home routers the DNS server will have the same IP address as the router itself. If you are using Pi-Hole or a third-party DNS system then you can set the DNS server to that.
```bash
nmcli> set ipv4.dns 192.168.100.1
nmcli> set ipv4.gateway 192.168.100.1
```
`nmcli> print ipv4` will show you the IPv4 properties of this connection. With `nmcli> save` you will save the changes afterwards.
If you now view the default connection `cat /etc/NetworkManager/system-connections/default` you should see the method is manual and the address is set.
Doing a `nmcli con reload` does not always work, so restart the virtual machine or the physical system.
[nm-manual]: https://networkmanager.dev/docs/api/1.40/manpages.html
[configuration-usb]: configuration.md
[uuid]: https://www.uuidgenerator.net/version4

BIN
Documentation/usb-disk.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

50
Makefile Normal file
View File

@@ -0,0 +1,50 @@
BUILDDIR:=$(shell pwd)
BUILDROOT=$(BUILDDIR)/buildroot
BUILDROOT_EXTERNAL=$(BUILDDIR)/buildroot-external
DEFCONFIG_DIR = $(BUILDROOT_EXTERNAL)/configs
TARGETS := $(notdir $(patsubst %_defconfig,%,$(wildcard $(DEFCONFIG_DIR)/*_defconfig)))
TARGETS_CONFIG := $(notdir $(patsubst %_defconfig,%-config,$(wildcard $(DEFCONFIG_DIR)/*_defconfig)))
# Set O variable if not already done on the command line
ifneq ("$(origin O)", "command line")
O := $(BUILDDIR)/output
else
override O := $(BUILDDIR)/$(O)
endif
.NOTPARALLEL: $(TARGETS) $(TARGETS_CONFIG) all
.PHONY: $(TARGETS) $(TARGETS_CONFIG) all clean help
all: $(TARGETS)
savedefconfig:
@echo "config $*"
$(MAKE) -C $(BUILDROOT) O=$(O) BR2_EXTERNAL=$(BUILDROOT_EXTERNAL) "savedefconfig"
$(TARGETS_CONFIG): %-config:
@echo "config $*"
$(MAKE) -C $(BUILDROOT) O=$(O) BR2_EXTERNAL=$(BUILDROOT_EXTERNAL) "$*_defconfig"
$(TARGETS): %: %-config
@echo "build $@"
$(MAKE) -C $(BUILDROOT) O=$(O) BR2_EXTERNAL=$(BUILDROOT_EXTERNAL)
# Do not clean when building for one target
ifneq ($(words $(filter $(TARGETS),$(MAKECMDGOALS))), 1)
@echo "clean $@"
$(MAKE) -C $(BUILDROOT) O=$(O) BR2_EXTERNAL=$(BUILDROOT_EXTERNAL) clean
endif
@echo "finished $@"
clean:
$(MAKE) -C $(BUILDROOT) O=$(O) BR2_EXTERNAL=$(BUILDROOT_EXTERNAL) clean
help:
@echo "Supported targets: $(TARGETS)"
@echo "Run 'make <target>' to build a target image."
@echo "Run 'make all' to build all target images."
@echo "Run 'make clean' to clean the build output."
@echo "Run 'make <target>-config' to configure buildroot for a target."

View File

@@ -1,31 +1,61 @@
# HassOS
Hass.io OS based on [buildroot](https://buildroot.org/). It's a hypervisor for Docker and supports various kind of IoT hardware. It is also available as virtual appliance. The whole system is optimized for embedded system and security. You can update the system simple with OTA updates or offline updates.
# Home Assistant Operating System
## Focus
Home Assistant Operating System (formerly HassOS) is a Linux based operating system optimized to host [Home Assistant](https://www.home-assistant.io) and its [Add-ons](https://www.home-assistant.io/addons/).
- Linux kernel 4.14 (LT)
- Barebox as bootloader on EFI
- U-Boot as bootloader on IoT
- RAUC for OTA updates
- SquashFS LZ4 as filesystem
- Docker 18.03.1
- AppArmor protected
- ZRAM LZ4 for /tmp, /var, swap
- Run every supervisor
Home Assistant Operating System uses Docker as its container engine. By default it deploys the Home Assistant Supervisor as a container. Home Assistant Supervisor in turn uses the Docker container engine to control Home Assistant Core and Add-Ons in separate containers. Home Assistant Operating System is **not** based on a regular Linux distribution like Ubuntu. It is built using [Buildroot](https://buildroot.org/) and it is optimized to run Home Assistant. It targets single board compute (SBC) devices like the Raspberry Pi or ODROID but also supports x86-64 systems with UEFI.
# Building
Running `sudo ./enter.sh` will get you into the build Docker container.
`make -C /build/buildroot BR2_EXTERNAL=/build/buildroot-external xy_defconfig`
[![Home Assistant - A project from the Open Home Foundation](https://www.openhomefoundation.org/badges/home-assistant.png)](https://www.openhomefoundation.org/)
## Helpers
## Features
- `make -C /build/buildroot BR2_EXTERNAL=/build/buildroot-external xy_defconfig`
- `make -C /build/buildroot BR2_EXTERNAL=/build/buildroot-external menuconfig`
- `make -C /build/buildroot BR2_EXTERNAL=/build/buildroot-external linux-menuconfig`
- `make -C /build/buildroot BR2_EXTERNAL=/build/buildroot-external barebox-menuconfig`
- `make -C /build/buildroot BR2_EXTERNAL=/build/buildroot-external busybox-menuconfig`
- Lightweight and memory-efficient
- Minimized I/O
- Over The Air (OTA) updates
- Offline updates
- Modular using Docker container engine
- `make -C /build/buildroot BR2_EXTERNAL=/build/buildroot-external savedefconfig`
- `make -C /build/buildroot BR2_EXTERNAL=/build/buildroot-external linux-update-defconfig`
- `make -C /build/buildroot BR2_EXTERNAL=/build/buildroot-external barebox-update-defconfig`
- `make -C /build/buildroot BR2_EXTERNAL=/build/buildroot-external busybox-update-config`
## Supported hardware
- Nabu Casa
- Raspberry Pi
- Hardkernel ODROID
- Asus Tinker Board
- Generic x86-64 (e.g. Intel NUC)
- Virtual appliances
See the full list and specific models [here](./Documentation/boards/README.md)
## Getting Started
If you just want to use Home Assistant the official [getting started guide](https://www.home-assistant.io/getting-started/) and [installation instructions](https://www.home-assistant.io/hassio/installation/) take you through how to download Home Assistant Operating System and get it running on your machine.
If you're interested in finding out more about Home Assistant Operating System and how it works read on...
## Development
If you don't have experience with embedded systems, Buildroot or the build process for Linux distributions it is recommended to read up on these topics first (e.g. [Bootlin](https://bootlin.com/docs/) has excellent resources).
The Home Assistant Operating System documentation can be found on the [Home Assistant Developer Docs website](https://developers.home-assistant.io/docs/operating-system).
### Components
- **Bootloader:**
- [GRUB](https://www.gnu.org/software/grub/) for devices that support UEFI
- [U-Boot](https://www.denx.de/wiki/U-Boot) for devices that don't support UEFI
- **Operating System:**
- [Buildroot](https://buildroot.org/) LTS Linux
- **File Systems:**
- [SquashFS](https://www.kernel.org/doc/Documentation/filesystems/squashfs.txt) for read-only file systems (using LZ4 compression)
- [ZRAM](https://www.kernel.org/doc/Documentation/blockdev/zram.txt) for `/tmp`, `/var` and swap (using LZ4 compression)
- **Container Platform:**
- [Docker Engine](https://docs.docker.com/engine/) for running Home Assistant components in containers
- **Updates:**
- [RAUC](https://rauc.io/) for Over The Air (OTA) and USB updates
- **Security:**
- [AppArmor](https://apparmor.net/) Linux kernel security module
### Development builds
The Development build GitHub Action Workflow is a manually triggered workflow
which creates Home Assistant OS development builds. The development builds are
available at [https://os-artifacts.home-assistant.io/index.html](https://os-artifacts.home-assistant.io/index.html).

1
buildroot Submodule

Submodule buildroot added at 7d5c3b5e70

View File

@@ -1,3 +1,20 @@
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-rtl8723/Config.in"
source "$BR2_EXTERNAL_HASSOS_PATH/package/eq3_char_loop/Config.in"
source "$BR2_EXTERNAL_HASSOS_PATH/package/gasket/Config.in"
source "$BR2_EXTERNAL_HASSOS_PATH/package/generic_raw_uart/Config.in"
source "$BR2_EXTERNAL_HASSOS_PATH/package/hailo8-firmware/Config.in"
source "$BR2_EXTERNAL_HASSOS_PATH/package/hailo-pci/Config.in"
source "$BR2_EXTERNAL_HASSOS_PATH/package/hardkernel-boot/Config.in"
source "$BR2_EXTERNAL_HASSOS_PATH/package/hassio/Config.in"
source "$BR2_EXTERNAL_HASSOS_PATH/package/khadas-boot/Config.in"
source "$BR2_EXTERNAL_HASSOS_PATH/package/os-agent/Config.in"
source "$BR2_EXTERNAL_HASSOS_PATH/package/pi-bluetooth/Config.in"
source "$BR2_EXTERNAL_HASSOS_PATH/package/qemu-guest-agent/Config.in"
source "$BR2_EXTERNAL_HASSOS_PATH/package/lxd-guest-agent/Config.in"
source "$BR2_EXTERNAL_HASSOS_PATH/package/rockchip-blobs/Config.in"
source "$BR2_EXTERNAL_HASSOS_PATH/package/rpi-eeprom/Config.in"
source "$BR2_EXTERNAL_HASSOS_PATH/package/rpi-rf-mod/Config.in"
source "$BR2_EXTERNAL_HASSOS_PATH/package/rtl88x2bu/Config.in"
source "$BR2_EXTERNAL_HASSOS_PATH/package/tempio/Config.in.host"
source "$BR2_EXTERNAL_HASSOS_PATH/package/udisks2/Config.in"
source "$BR2_EXTERNAL_HASSOS_PATH/package/xe-guest-utilities/Config.in"

View File

@@ -1,75 +0,0 @@
#include <tunables/global>
profile hassio-supervisor flags=(attach_disconnected,mediate_deleted) {
#include <abstractions/base>
#include <abstractions/python>
network,
deny network raw,
signal (send) set=(kill,term),
/bin/busybox ix,
/usr/bin/python{,3,3.[0-9]} ix,
/usr/bin/git cx,
/usr/bin/socat cx,
/usr/bin/gdbus cx,
deny /proc/** wl,
deny /root/** wl,
deny /sys/** wl,
/** r,
/tmp/** rw,
/data/** rw,
/{,var/}run/docker.sock rw,
capability net_bind_service,
profile /usr/bin/socat flags=(attach_disconnected,mediate_deleted) {
#include <abstractions/base>
network inet udp,
network inet tcp,
deny network raw,
deny network packet,
signal (receive) set=(kill,term),
capability net_bind_service,
/lib/* mr,
/usr/bin/socat mr,
}
profile /usr/bin/gdbus flags=(attach_disconnected,mediate_deleted) {
#include <abstractions/base>
#include <abstractions/dbus>
unix (send, receive) type=stream,
/usr/bin/gdbus mr,
/lib/* mr,
/{,var/}run/dbus/system_bus_socket rw,
}
profile /usr/bin/git flags=(attach_disconnected,mediate_deleted) {
#include <abstractions/base>
network,
deny network raw,
/bin/busybox ix,
/usr/bin/git mr,
/usr/libexec/git-core/* ix,
deny /data/homeassistant rw,
deny /data/ssl rw,
/** r,
/lib/* mr,
/data/addons/** lrw,
capability dac_override,
}
}

View File

@@ -0,0 +1 @@
console=ttyS0 console=tty0

View File

@@ -0,0 +1,85 @@
set default=99
set timeout=1
set ORDER="A B"
set A_OK=0
set B_OK=0
set A_TRY=0
set B_TRY=0
set MACHINE_ID=""
load_env
# select bootable slot
for SLOT in $ORDER; do
if [ "$SLOT" == "A" ]; then
INDEX=0
OK=$A_OK
TRY=$A_TRY
fi
if [ "$SLOT" == "B" ]; then
INDEX=1
OK=$B_OK
TRY=$B_TRY
fi
if [ "$OK" -eq 1 -a "$TRY" -lt 3 ]; then
default=$INDEX
# increment attempts and save back to slot
if [ "$TRY" -eq 1 ]; then
TRY=2
elif [ "$TRY" -eq 2 ]; then
TRY=3
else
TRY=1
fi
if [ "$SLOT" == "A" ]; then
A_TRY=$TRY
fi
if [ "$SLOT" == "B" ]; then
B_TRY=$TRY
fi
break
fi
done
# No bootable slot found, choose rescue...
if [ "$default" -eq 99 ]; then
if [ "$A_OK" -eq 1 ]; then
default=2
fi
if [ "$B_OK" -eq 1 ]; then
default=3
fi
fi
if [ "$MACHINE_ID" == "" ]; then
boot_condition="systemd.condition-first-boot=true"
fi
save_env A_TRY A_OK B_TRY B_OK ORDER MACHINE_ID
default_cmdline="rootwait zram.enabled=1 zram.num_devices=3 systemd.machine_id=$MACHINE_ID fsck.repair=yes $boot_condition"
file_env -f ($root)/cmdline.txt cmdline
# root is a full HDD/partition definition in GRUB format like hd0,gpt1
# We extract the part before the comma to then append our own partition index
# at the end. This is hacky but the best way I found
regexp --set 1:boothd (.+),.+ ${root}
menuentry "Slot A (OK=$A_OK TRY=$A_TRY)" {
linux (${boothd},gpt2)/Image root=PARTUUID=8d3d53e3-6d49-4c38-8349-aff6859e82fd $default_cmdline $cmdline rauc.slot=A
}
menuentry "Slot B (OK=$B_OK TRY=$B_TRY)" {
linux (${boothd},gpt4)/Image root=PARTUUID=a3ec664e-32ce-4665-95ea-7ae90ce9aa20 $default_cmdline $cmdline rauc.slot=B
}
menuentry "Slot A (rescue shell)" {
linux (${boothd},gpt2)/Image root=PARTUUID=8d3d53e3-6d49-4c38-8349-aff6859e82fd $default_cmdline $cmdline rauc.slot=A systemd.unit=recovery.target
}
menuentry "Slot B (rescue shell)" {
linux (${boothd},gpt4)/Image root=PARTUUID=a3ec664e-32ce-4665-95ea-7ae90ce9aa20 $default_cmdline $cmdline rauc.slot=B systemd.unit=recovery.target
}

View File

@@ -0,0 +1,29 @@
#!/bin/bash
# shellcheck disable=SC2155
function hassos_pre_image() {
local BOOT_DATA="$(path_boot_dir)"
local EFIPART_DATA="${BINARIES_DIR}/efi-part"
mkdir -p "${BOOT_DATA}/EFI/BOOT"
cp "${BOARD_DIR}/grub.cfg" "${EFIPART_DATA}/EFI/BOOT/grub.cfg"
cp "${BOARD_DIR}/cmdline.txt" "${EFIPART_DATA}/cmdline.txt"
grub-editenv "${EFIPART_DATA}/EFI/BOOT/grubenv" create
grub-editenv "${EFIPART_DATA}/EFI/BOOT/grubenv" set ORDER="A B"
grub-editenv "${EFIPART_DATA}/EFI/BOOT/grubenv" set A_OK=1
grub-editenv "${EFIPART_DATA}/EFI/BOOT/grubenv" set A_TRY=0
cp -r "${EFIPART_DATA}/"* "${BOOT_DATA}/"
}
function hassos_post_image() {
convert_disk_image_virtual vmdk
convert_disk_image_virtual qcow2
convert_disk_image_zip vmdk
convert_disk_image_xz qcow2
convert_disk_image_xz
}

View File

@@ -0,0 +1,76 @@
CONFIG_EFI_STUB=y
# CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL is not set
CONFIG_CONNECTOR=y
CONFIG_VSOCKETS=y
CONFIG_VIRTIO=y
CONFIG_VIRTIO_PCI=y
CONFIG_VIRTIO_NET=y
CONFIG_VIRTIO_BALLOON=m
CONFIG_VIRTIO_MEM=m
CONFIG_VIRTIO_INPUT=m
CONFIG_VIRTIO_BLK=y
CONFIG_VIRTIO_CONSOLE=m
CONFIG_VIRTIO_VSOCKETS=m
CONFIG_VIRTIO_MMIO=y
CONFIG_SCSI_VIRTIO=y
CONFIG_HW_RANDOM_VIRTIO=m
CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES=y
CONFIG_VIRTIO_IOMMU=m
CONFIG_CRYPTO_ENGINE=m
CONFIG_CRYPTO_DEV_VIRTIO=m
# options for backward compatibility
CONFIG_ARMV8_DEPRECATED=y
CONFIG_SWP_EMULATION=y
CONFIG_CP15_BARRIER_EMULATION=y
CONFIG_SETEND_EMULATION=y
# These options are needed for virtio-fs
CONFIG_FUSE_FS=y
CONFIG_VIRTIO_FS=y
CONFIG_DAX=y
CONFIG_FS_DAX=y
CONFIG_ZONE_DEVICE=y
CONFIG_DMI_SYSFS=m
CONFIG_FW_CFG_SYSFS=m
CONFIG_NVME_CORE=y
CONFIG_BLK_DEV_NVME=y
CONFIG_NVME_HWMON=y
CONFIG_DRM_VIRTIO_GPU=m
CONFIG_HYPERV=y
CONFIG_HYPERV_UTILS=m
CONFIG_HYPERV_BALLOON=m
CONFIG_HYPERV_KEYBOARD=m
CONFIG_HYPERV_STORAGE=y
CONFIG_HYPERV_NET=y
CONFIG_HYPERV_VSOCKETS=m
CONFIG_PCI_HYPERV=m
CONFIG_PCI_HYPERV_INTERFACE=m
CONFIG_FB_HYPERV=y
CONFIG_I6300ESB_WDT=y
# GPIO support
CONFIG_GPIO_ZYNQ=y
CONFIG_GPIO_PCA9570=y
# PHY drivers
CONFIG_PHY_XILINX_ZYNQMP=y
# USB support
CONFIG_USB_ONBOARD_DEV=y
CONFIG_USB_ONBOARD_DEV_USB5744=y
# i2c support
CONFIG_I2C_CADENCE=y
# 1-wire
CONFIG_W1_MASTER_AMD_AXI=m

View File

@@ -0,0 +1,11 @@
BOARD_ID=generic-aarch64
BOARD_NAME="Generic aarch64"
CHASSIS=embedded
BOOTLOADER=grub
KERNEL_FILE=Image
PARTITION_TABLE_TYPE=gpt
BOOT_SIZE=32M
BOOT_SPL=false
DISK_SIZE=6G
SUPERVISOR_MACHINE=qemuarm-64
SUPERVISOR_ARCH=aarch64

View File

@@ -0,0 +1,21 @@
#!/bin/bash
# shellcheck disable=SC2155
function hassos_pre_image() {
local BOOT_DATA="$(path_boot_dir)"
cp -t "${BOOT_DATA}" \
"${BINARIES_DIR}/boot.scr" \
"${BINARIES_DIR}/rk3288-tinker.dtb" \
"${BINARIES_DIR}/rk3288-tinker-s.dtb"
mkdir -p "${BOOT_DATA}/overlays"
cp "${BINARIES_DIR}"/*.dtbo "${BOOT_DATA}/overlays/"
cp "${BOARD_DIR}/boot-env.txt" "${BOOT_DATA}/haos-config.txt"
cp "${BOARD_DIR}/cmdline.txt" "${BOOT_DATA}/cmdline.txt"
}
function hassos_post_image() {
convert_disk_image_xz
}

View File

@@ -0,0 +1,2 @@
# Uncomment this to enable GPIO support for RPI-RF-MOD/HM-MOD-RPI-PCB
#overlays=rpi-rf-mod

View File

@@ -0,0 +1 @@
console=tty0

View File

@@ -0,0 +1,13 @@
image spl.img {
size = ${BOOT_SPL_SIZE}
hdimage {
partition-table-type = "none"
fill = "yes"
}
partition uboot {
offset = 32k
image = "u-boot-rockchip.bin"
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,12 @@
BOARD_ID=tinker
BOARD_NAME="Asus TinkerBoard"
CHASSIS=embedded
BOOTLOADER=uboot
KERNEL_FILE=zImage
PARTITION_TABLE_TYPE=hybrid
BOOT_SIZE=24M
BOOT_SPL=true
BOOT_SPL_SIZE=8M
BOOT_ENV_SIZE=0x8000
SUPERVISOR_MACHINE=tinker
SUPERVISOR_ARCH=armv7

View File

@@ -0,0 +1,7 @@
partition spl {
size = ${BOOT_SPL_SIZE}
image = "spl.img"
in-partition-table = "no"
offset = 0
holes = {"(0; 17k)"}
}

View File

@@ -0,0 +1,5 @@
## Kernel
https://github.com/armbian/build/tree/master/patch/kernel/rockchip-next
## u-boot
https://github.com/armbian/build/tree/master/patch/u-boot/u-boot-rockchip/board_tinkerboard

View File

@@ -0,0 +1,51 @@
From 675fbbc309e4f7c805cf4fbd7c463cfc8308b54e Mon Sep 17 00:00:00 2001
From: Stefan Agner <stefan@agner.ch>
Date: Wed, 17 Feb 2021 19:55:41 +0100
Subject: [PATCH] Revert "ARM: dts: rockchip: use DMA channels for UARTs for
RK3288"
This reverts commit 3425fe335c29310f6628faf9a7947d07f32d8962.
---
arch/arm/boot/dts/rockchip/rk3288.dtsi | 8 --------
1 file changed, 8 deletions(-)
diff --git a/arch/arm/boot/dts/rockchip/rk3288.dtsi b/arch/arm/boot/dts/rockchip/rk3288.dtsi
index 3f1d640afafae..becf3abd8367f 100644
--- a/arch/arm/boot/dts/rockchip/rk3288.dtsi
+++ b/arch/arm/boot/dts/rockchip/rk3288.dtsi
@@ -387,8 +387,6 @@ uart0: serial@ff180000 {
reg-io-width = <4>;
clocks = <&cru SCLK_UART0>, <&cru PCLK_UART0>;
clock-names = "baudclk", "apb_pclk";
- dmas = <&dmac_peri 1>, <&dmac_peri 2>;
- dma-names = "tx", "rx";
pinctrl-names = "default";
pinctrl-0 = <&uart0_xfer>;
status = "disabled";
@@ -402,8 +400,6 @@ uart1: serial@ff190000 {
reg-io-width = <4>;
clocks = <&cru SCLK_UART1>, <&cru PCLK_UART1>;
clock-names = "baudclk", "apb_pclk";
- dmas = <&dmac_peri 3>, <&dmac_peri 4>;
- dma-names = "tx", "rx";
pinctrl-names = "default";
pinctrl-0 = <&uart1_xfer>;
status = "disabled";
@@ -430,8 +426,6 @@ uart3: serial@ff1b0000 {
reg-io-width = <4>;
clocks = <&cru SCLK_UART3>, <&cru PCLK_UART3>;
clock-names = "baudclk", "apb_pclk";
- dmas = <&dmac_peri 7>, <&dmac_peri 8>;
- dma-names = "tx", "rx";
pinctrl-names = "default";
pinctrl-0 = <&uart3_xfer>;
status = "disabled";
@@ -445,8 +439,6 @@ uart4: serial@ff1c0000 {
reg-io-width = <4>;
clocks = <&cru SCLK_UART4>, <&cru PCLK_UART4>;
clock-names = "baudclk", "apb_pclk";
- dmas = <&dmac_peri 9>, <&dmac_peri 10>;
- dma-names = "tx", "rx";
pinctrl-names = "default";
pinctrl-0 = <&uart4_xfer>;
status = "disabled";

View File

@@ -0,0 +1,49 @@
From 37b4467356113f17f55066aef54db55b64daa030 Mon Sep 17 00:00:00 2001
From: "Miouyouyou (Myy)" <myy@miouyouyou.fr>
Date: Mon, 5 Nov 2018 22:15:14 +0100
Subject: [PATCH] ARM: DTS: rk3288-tinker: Defining the SPI interface
Taken from, and tested by @TonyMac32 .
Well, the original one was tested by him but I had to adapt the
registers definitions to the new 64-bits LPAE-compliant syntax.
Therefore that *might* break, along with a few other patches.
Signed-off-by: Miouyouyou (Myy) <myy@miouyouyou.fr>
[move change to rk3288-tinker.dtsi]
Signed-off-by: Stefan Agner <stefan@agner.ch>
---
arch/arm/boot/dts/rockchip/rk3288-tinker.dtsi | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)
diff --git a/arch/arm/boot/dts/rockchip/rk3288-tinker.dtsi b/arch/arm/boot/dts/rockchip/rk3288-tinker.dtsi
index 09618bb7d872c..30430d2e64b93 100644
--- a/arch/arm/boot/dts/rockchip/rk3288-tinker.dtsi
+++ b/arch/arm/boot/dts/rockchip/rk3288-tinker.dtsi
@@ -483,6 +483,25 @@ &sdio0 {
status = "okay";
};
+&spi2 {
+ max-freq = <50000000>;
+ status = "okay";
+
+ spidev@0 {
+ compatible = "rockchip,spi_tinker";
+ reg = <0x0 0>;
+ spi-max-frequency = <50000000>;
+ spi-cpha = <1>;
+ };
+
+ spidev@1 {
+ compatible = "rockchip,spi_tinker";
+ reg = <0x1>;
+ spi-max-frequency = <50000000>;
+ spi-cpha = <1>;
+ };
+};
+
&tsadc {
rockchip,hw-tshut-mode = <1>; /* tshut mode 0:CRU 1:GPIO */
rockchip,hw-tshut-polarity = <1>; /* tshut polarity 0:LOW 1:HIGH */

View File

@@ -0,0 +1,35 @@
From 1a15fc7f6a241895a31b00c1f324d358d408a610 Mon Sep 17 00:00:00 2001
From: Stefan Agner <stefan@agner.ch>
Date: Fri, 4 Sep 2020 21:57:55 +0200
Subject: [PATCH] ARM: dts: rockchip: enable I2C1/4 on rk3288-tinker
Enable I2C devices which are accessible via 40-pin header.
Signed-off-by: Stefan Agner <stefan@agner.ch>
---
arch/arm/boot/dts/rockchip/rk3288-tinker.dtsi | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/arch/arm/boot/dts/rockchip/rk3288-tinker.dtsi b/arch/arm/boot/dts/rockchip/rk3288-tinker.dtsi
index 30430d2e64b93..395afc2b2283c 100644
--- a/arch/arm/boot/dts/rockchip/rk3288-tinker.dtsi
+++ b/arch/arm/boot/dts/rockchip/rk3288-tinker.dtsi
@@ -342,10 +342,18 @@ regulator-state-mem {
};
};
+&i2c1 {
+ status = "okay";
+};
+
&i2c2 {
status = "okay";
};
+&i2c4 {
+ status = "okay";
+};
+
&i2c5 {
status = "okay";
};

View File

@@ -0,0 +1,28 @@
From d6c44c231fc4518ad69bb7870a193bb10c563f2a Mon Sep 17 00:00:00 2001
From: Myy Miouyouyou <myy@miouyouyou.fr>
Date: Thu, 19 Oct 2017 21:24:47 +0200
Subject: [PATCH] RK3288: DTSI: rk3288.dtsi: Add missing SPI2 pinctrl
The spi2_cs1 pin reference is missing in the spi2 first pin control
definition.
This patch is taken from the patches provided by the ARMbian team.
Signed-off-by: Myy Miouyouyou <myy@miouyouyou.fr>
---
arch/arm/boot/dts/rockchip/rk3288.dtsi | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arm/boot/dts/rockchip/rk3288.dtsi b/arch/arm/boot/dts/rockchip/rk3288.dtsi
index becf3abd8367f..e78fa883b9841 100644
--- a/arch/arm/boot/dts/rockchip/rk3288.dtsi
+++ b/arch/arm/boot/dts/rockchip/rk3288.dtsi
@@ -320,7 +320,7 @@ spi2: spi@ff130000 {
dma-names = "tx", "rx";
interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
pinctrl-names = "default";
- pinctrl-0 = <&spi2_clk &spi2_tx &spi2_rx &spi2_cs0>;
+ pinctrl-0 = <&spi2_clk &spi2_tx &spi2_rx &spi2_cs0 &spi2_cs1>;
reg = <0x0 0xff130000 0x0 0x1000>;
#address-cells = <1>;
#size-cells = <0>;

View File

@@ -0,0 +1,25 @@
From dfb0232e9fae1267d04247aaf171739038c1659e Mon Sep 17 00:00:00 2001
From: "Miouyouyou (Myy)" <myy@miouyouyou.fr>
Date: Mon, 5 Nov 2018 20:16:05 +0100
Subject: [PATCH] ARM: DTSI: rk3288-tinker: Improving the CPU max voltage
Taken from the various patches provided by @TonyMac32 .
Signed-off-by: Miouyouyou (Myy) <myy@miouyouyou.fr>
---
arch/arm/boot/dts/rockchip/rk3288-tinker.dtsi | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arm/boot/dts/rockchip/rk3288-tinker.dtsi b/arch/arm/boot/dts/rockchip/rk3288-tinker.dtsi
index 395afc2b2283c..c7e79e5947206 100644
--- a/arch/arm/boot/dts/rockchip/rk3288-tinker.dtsi
+++ b/arch/arm/boot/dts/rockchip/rk3288-tinker.dtsi
@@ -184,7 +184,7 @@ vdd_cpu: DCDC_REG1 {
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <750000>;
- regulator-max-microvolt = <1400000>;
+ regulator-max-microvolt = <1450000>;
regulator-name = "vdd_arm";
regulator-ramp-delay = <6000>;
regulator-state-mem {

View File

@@ -0,0 +1,113 @@
From 4955695e410289df07258b00290d4028c3ac8fb1 Mon Sep 17 00:00:00 2001
From: Myy Miouyouyou <myy@miouyouyou.fr>
Date: Sun, 7 Jan 2018 01:52:44 +0100
Subject: [PATCH] drivers: mmc: dw-mci-rockchip: Handle ASUS Tinkerboard reboot
On ASUS Tinkerboard systems, if the SDMMC hardware is shutdown before
rebooting, the system will be dead, as the SDMMC is the only way to
boot anything, and the hardware doesn't power up the SDMMC hardware
automatically when rebooting.
So, when using an ASUS Tinkerboard system, a new reboot handler is
installed. This reboot handler takes care of powering the SDMMC
hardware again before restarting the system, resolving the issue.
The code was inspired by the pwrseq_emmc.c, which seems to overcome
similar effects with eMMC hardware.
Signed-off-by: Myy Miouyouyou <myy@miouyouyou.fr>
---
drivers/mmc/host/dw_mmc-rockchip.c | 66 ++++++++++++++++++++++++++++++
1 file changed, 66 insertions(+)
diff --git a/drivers/mmc/host/dw_mmc-rockchip.c b/drivers/mmc/host/dw_mmc-rockchip.c
index f96260fd143b4..fa779ce8fb661 100644
--- a/drivers/mmc/host/dw_mmc-rockchip.c
+++ b/drivers/mmc/host/dw_mmc-rockchip.c
@@ -12,6 +12,11 @@
#include <linux/pm_runtime.h>
#include <linux/slab.h>
+#include <linux/regulator/consumer.h>
+#include <linux/reboot.h>
+#include <linux/delay.h>
+#include "../core/core.h"
+
#include "dw_mmc.h"
#include "dw_mmc-pltfm.h"
@@ -527,6 +532,66 @@ static const struct of_device_id dw_mci_rockchip_match[] = {
};
MODULE_DEVICE_TABLE(of, dw_mci_rockchip_match);
+struct dw_mci_rockchip_broken_boards_data {
+ struct notifier_block reset_nb;
+ struct platform_device *pdev;
+};
+
+/* This reboot handler handles cases where disabling the SDMMC on
+ * reboot will cause the hardware to be unable to start correctly
+ * after rebooting.
+ *
+ * This happens with Tinkerboard systems...
+ */
+static int dw_mci_rockchip_broken_boards_reset_nb(
+ struct notifier_block *this,
+ unsigned long mode, void *cmd)
+{
+ struct dw_mci_rockchip_broken_boards_data const *data =
+ container_of(this,
+ struct dw_mci_rockchip_broken_boards_data,
+ reset_nb);
+ struct dw_mci *host = platform_get_drvdata(data->pdev);
+ struct mmc_host *mmc = host->slot->mmc;
+
+ printk(KERN_ERR "Meow.\n");
+
+ mmc_power_off(mmc);
+
+ mdelay(20);
+
+ if (!IS_ERR(mmc->supply.vmmc))
+ regulator_enable(mmc->supply.vmmc);
+
+ if (!IS_ERR(mmc->supply.vqmmc))
+ regulator_set_voltage(mmc->supply.vqmmc, 3000000, 3300000);
+
+ printk(KERN_ERR "woeM.\n");
+
+ return NOTIFY_DONE;
+}
+
+static void dw_mci_rockchip_register_broken_boards_reboot_handler(
+ struct platform_device *pdev)
+{
+ struct dw_mci_rockchip_broken_boards_data *data;
+
+ if (!of_machine_is_compatible("asus,rk3288-tinker"))
+ return;
+
+ data = devm_kzalloc(&pdev->dev, sizeof(*data), GFP_KERNEL);
+
+ if (!data)
+ return;
+
+ data->reset_nb.notifier_call =
+ dw_mci_rockchip_broken_boards_reset_nb;
+ data->reset_nb.priority = 255;
+ register_restart_handler(&data->reset_nb);
+
+ data->pdev = pdev;
+}
+
static int dw_mci_rockchip_probe(struct platform_device *pdev)
{
const struct dw_mci_drv_data *drv_data;
@@ -554,6 +619,7 @@ static int dw_mci_rockchip_probe(struct platform_device *pdev)
}
pm_runtime_put_autosuspend(&pdev->dev);
+ dw_mci_rockchip_register_broken_boards_reboot_handler(pdev);
return 0;
}

View File

@@ -0,0 +1,57 @@
From 74227462bbe9236dca234dd24cce4191fa71bdf9 Mon Sep 17 00:00:00 2001
From: Stefan Agner <stefan@agner.ch>
Date: Tue, 10 May 2022 22:57:26 +0200
Subject: [PATCH] ARM: dts: rockchip: Add Bluetooth to rk3288-tinker
Enable Bluetooth support via UART0. Use the existing bindings
for Realtek rtl8723bs Bluetooth device.
Signed-off-by: Stefan Agner <stefan@agner.ch>
---
arch/arm/boot/dts/rockchip/rk3288-tinker.dtsi | 26 +++++++++++++++++++
1 file changed, 26 insertions(+)
diff --git a/arch/arm/boot/dts/rockchip/rk3288-tinker.dtsi b/arch/arm/boot/dts/rockchip/rk3288-tinker.dtsi
index c7e79e5947206..5d261fae6e72a 100644
--- a/arch/arm/boot/dts/rockchip/rk3288-tinker.dtsi
+++ b/arch/arm/boot/dts/rockchip/rk3288-tinker.dtsi
@@ -386,6 +386,20 @@ bl_en: bl-en {
};
};
+ bluetooth {
+ bt_enable_pin: bt-enable-pin {
+ rockchip,pins = <4 RK_PD5 RK_FUNC_GPIO &pcfg_pull_none>;
+ };
+
+ bt_device_wake_pin: bt-device-wake-pin {
+ rockchip,pins = <4 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>;
+ };
+
+ bt_host_wake_pin: bt-host-wake-pin {
+ rockchip,pins = <4 RK_PD7 RK_FUNC_GPIO &pcfg_pull_none>;
+ };
+ };
+
buttons {
pwrbtn: pwrbtn {
rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>;
@@ -518,6 +532,18 @@ &tsadc {
&uart0 {
status = "okay";
+ pinctrl-names = "default";
+ pinctrl-0 = <&uart0_xfer &uart0_cts &uart0_rts>;
+ uart-has-rtscts;
+
+ bluetooth {
+ compatible = "realtek,rtl8723bs-bt";
+ pinctrl-names = "default";
+ pinctrl-0 = <&bt_device_wake_pin &bt_host_wake_pin &bt_enable_pin>;
+ enable-gpios = <&gpio4 RK_PD5 GPIO_ACTIVE_HIGH>;
+ device-wake-gpios = <&gpio4 RK_PD2 GPIO_ACTIVE_HIGH>;
+ host-wake-gpios = <&gpio4 RK_PD7 GPIO_ACTIVE_HIGH>;
+ };
};
&uart1 {

View File

@@ -0,0 +1,32 @@
From eb29ab60a69353f355b3af58b06fff1a89d17992 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jan=20=C4=8Cerm=C3=A1k?= <sairon@sairon.cz>
Date: Wed, 10 Jan 2024 16:29:59 +0100
Subject: [PATCH] usb-audio: add ASUS TinkerBoard's ALC4040
Converted to git-series patch from the original plain git diff file
buildroot-external/board/asus/tinker/patches/linux/3001_Tinkerboard-4.19-audio.patch
Co-authored-by: Pascal Vizeli <pascal.vizeli@syshack.ch>
---
sound/usb/card.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/sound/usb/card.c b/sound/usb/card.c
index 9c411b82a218d..672136e25c81d 100644
--- a/sound/usb/card.c
+++ b/sound/usb/card.c
@@ -533,6 +533,14 @@ static void usb_audio_make_shortname(struct usb_device *dev,
}
strim(card->shortname);
+
+ /* Tinker Board ALC4040 CODEC */
+
+ if(USB_ID_VENDOR(chip->usb_id) == 0x0bda &&
+ USB_ID_PRODUCT(chip->usb_id) == 0x481a) {
+ strlcat(card->shortname, " OnBoard", sizeof(card->shortname));
+ }
+
}
static void usb_audio_make_longname(struct usb_device *dev,

View File

@@ -0,0 +1,61 @@
From 78bd1a46cfc585773719963ce8e0a380e9676a93 Mon Sep 17 00:00:00 2001
From: Pascal Vizeli <pvizeli@syshack.ch>
Date: Fri, 24 Apr 2020 11:37:55 +0000
Subject: [PATCH] pmic: enable LDO2 vcc33_mipi at bootup
Signed-off-by: Pascal Vizeli <pvizeli@syshack.ch>
---
board/rockchip/tinker_rk3288/tinker-rk3288.c | 36 ++++++++++++++++++++
1 file changed, 36 insertions(+)
diff --git a/board/rockchip/tinker_rk3288/tinker-rk3288.c b/board/rockchip/tinker_rk3288/tinker-rk3288.c
index e966e9f201a..2944d8c084f 100644
--- a/board/rockchip/tinker_rk3288/tinker-rk3288.c
+++ b/board/rockchip/tinker_rk3288/tinker-rk3288.c
@@ -9,6 +9,7 @@
#include <init.h>
#include <net.h>
#include <netdev.h>
+#include <power/regulator.h>
static int get_ethaddr_from_eeprom(u8 *addr)
{
@@ -34,3 +35,38 @@ int rk3288_board_late_init(void)
return 0;
}
+
+#ifdef CONFIG_DM_PMIC
+static int rockchip_set_regulator_on(const char *name, uint uv)
+{
+ struct udevice *dev;
+ int ret;
+
+ ret = regulator_get_by_platname(name, &dev);
+ if (ret) {
+ debug("%s: Cannot find regulator %s\n", __func__, name);
+ return ret;
+ }
+ ret = regulator_set_value(dev, uv);
+ if (ret) {
+ debug("%s: Cannot set regulator %s\n", __func__, name);
+ return ret;
+ }
+ ret = regulator_set_enable(dev, 1);
+ if (ret) {
+ debug("%s: Cannot enable regulator %s\n", __func__, name);
+ return ret;
+ }
+
+ return 0;
+}
+
+int power_init_board(void)
+{
+ int ret = rockchip_set_regulator_on("vcc33_mipi", 3300000);
+ if (ret)
+ return ret;
+
+ return 0;
+}
+#endif

View File

@@ -0,0 +1,99 @@
part start mmc ${devnum} 6 mmc_env
mmc dev ${devnum}
setenv loadbootstate " \
echo 'loading env...'; \
mmc read ${ramdisk_addr_r} ${mmc_env} 0x40; \
env import -c ${ramdisk_addr_r} 0x8000;"
setenv storebootstate " \
echo 'storing env...'; \
env export -c -s 0x8000 ${ramdisk_addr_r} BOOT_ORDER BOOT_A_LEFT BOOT_B_LEFT MACHINE_ID; \
mmc write ${ramdisk_addr_r} ${mmc_env} 0x40;"
run loadbootstate
test -n "${BOOT_ORDER}" || setenv BOOT_ORDER "A B"
test -n "${BOOT_A_LEFT}" || setenv BOOT_A_LEFT 3
test -n "${BOOT_B_LEFT}" || setenv BOOT_B_LEFT 3
# Allows ConditionFirstBoot=
test -n "${MACHINE_ID}" || setenv BOOT_CONDITION "systemd.condition-first-boot=true"
# HassOS bootargs
setenv bootargs_hassos "zram.enabled=1 zram.num_devices=3 systemd.machine_id=${MACHINE_ID} fsck.repair=yes ${BOOT_CONDITION}"
# HassOS system A/B
setenv bootargs_a "root=PARTUUID=8d3d53e3-6d49-4c38-8349-aff6859e82fd ro rootwait"
setenv bootargs_b "root=PARTUUID=a3ec664e-32ce-4665-95ea-7ae90ce9aa20 ro rootwait"
# Load environment from haos-config.txt
if test -e mmc ${devnum}:1 haos-config.txt; then
fatload mmc ${devnum}:1 ${ramdisk_addr_r} haos-config.txt
env import -t ${ramdisk_addr_r} ${filesize}
fi
# Load extraargs
fileenv mmc ${devnum}:1 ${ramdisk_addr_r} cmdline.txt cmdline
# Load device tree
if test "$devnum" = "0"; then
setenv fdtfile "rk3288-tinker-s.dtb"
else
setenv fdtfile "rk3288-tinker.dtb"
fi
echo "Loading standard device tree ${fdtfile}"
fatload mmc ${devnum}:1 ${fdt_addr_r} ${fdtfile}
fdt addr ${fdt_addr_r}
# load dt overlays
fdt resize 65536
for overlay_file in ${overlays}; do
if fatload mmc ${devnum}:1 ${ramdisk_addr_r} overlays/${overlay_file}.dtbo; then
echo "Applying kernel provided DT overlay ${overlay_file}.dtbo"
fdt apply ${ramdisk_addr_r} || setenv overlay_error "true"
fi
done
if test "${overlay_error}" = "true"; then
echo "Error applying DT overlays, restoring original DT"
fatload mmc ${devnum}:1 ${fdt_addr_r} ${fdtfile}
fi
setenv bootargs
for BOOT_SLOT in "${BOOT_ORDER}"; do
if test "x${bootargs}" != "x"; then
# skip remaining slots
elif test "x${BOOT_SLOT}" = "xA"; then
if test ${BOOT_A_LEFT} -gt 0; then
setexpr BOOT_A_LEFT ${BOOT_A_LEFT} - 1
echo "Trying to boot slot A, ${BOOT_A_LEFT} attempts remaining. Loading kernel ..."
if load mmc ${devnum}:2 ${kernel_addr_r} zImage; then
setenv bootargs "${bootargs_hassos} ${bootargs_a} rauc.slot=A ${cmdline}"
fi
fi
elif test "x${BOOT_SLOT}" = "xB"; then
if test ${BOOT_B_LEFT} -gt 0; then
setexpr BOOT_B_LEFT ${BOOT_B_LEFT} - 1
echo "Trying to boot slot B, ${BOOT_B_LEFT} attempts remaining. Loading kernel ..."
if load mmc ${devnum}:4 ${kernel_addr_r} zImage; then
setenv bootargs "${bootargs_hassos} ${bootargs_b} rauc.slot=B ${cmdline}"
fi
fi
fi
done
if test -n "${bootargs}"; then
run storebootstate
else
echo "No valid slot found, resetting tries to 3"
setenv BOOT_A_LEFT 3
setenv BOOT_B_LEFT 3
run storebootstate
reset
fi
echo "Starting kernel"
bootz ${kernel_addr_r} - ${fdt_addr_r}
echo "Boot failed, resetting..."
reset

View File

@@ -0,0 +1,6 @@
# CONFIG_USB_STORAGE is not set
# CONFIG_DOS_PARTITION is not set
CONFIG_OF_LIBFDT_OVERLAY=y
CONFIG_SPL_PAD_TO=0x3f8000
CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR=0x2000
# CONFIG_ENV_IS_IN_MMC is not set

View File

@@ -0,0 +1,773 @@
CONFIG_LOCALVERSION="-haos"
CONFIG_SYSVIPC=y
CONFIG_POSIX_MQUEUE=y
CONFIG_NO_HZ_IDLE=y
CONFIG_HIGH_RES_TIMERS=y
CONFIG_BPF_SYSCALL=y
CONFIG_BPF_JIT=y
CONFIG_PREEMPT=y
CONFIG_IRQ_TIME_ACCOUNTING=y
CONFIG_BSD_PROCESS_ACCT=y
CONFIG_BSD_PROCESS_ACCT_V3=y
CONFIG_TASKSTATS=y
CONFIG_TASK_DELAY_ACCT=y
CONFIG_TASK_XACCT=y
CONFIG_TASK_IO_ACCOUNTING=y
CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y
CONFIG_NUMA_BALANCING=y
CONFIG_MEMCG=y
CONFIG_BLK_CGROUP=y
CONFIG_CFS_BANDWIDTH=y
CONFIG_CGROUP_PIDS=y
CONFIG_CGROUP_FREEZER=y
CONFIG_CGROUP_HUGETLB=y
CONFIG_CPUSETS=y
CONFIG_CGROUP_DEVICE=y
CONFIG_CGROUP_CPUACCT=y
CONFIG_CGROUP_PERF=y
CONFIG_CGROUP_BPF=y
CONFIG_USER_NS=y
CONFIG_SCHED_AUTOGROUP=y
CONFIG_BLK_DEV_INITRD=y
CONFIG_PROFILING=y
CONFIG_ARCH_MESON=y
CONFIG_ARM64_VA_BITS_48=y
CONFIG_SCHED_MC=y
CONFIG_NUMA=y
CONFIG_NODES_SHIFT=2
CONFIG_KEXEC=y
CONFIG_CRASH_DUMP=y
CONFIG_XEN=y
CONFIG_COMPAT=y
CONFIG_ARMV8_DEPRECATED=y
CONFIG_SWP_EMULATION=y
CONFIG_CP15_BARRIER_EMULATION=y
CONFIG_SETEND_EMULATION=y
CONFIG_RANDOMIZE_BASE=y
CONFIG_HIBERNATION=y
CONFIG_WQ_POWER_EFFICIENT_DEFAULT=y
CONFIG_ARM_PSCI_CPUIDLE=y
CONFIG_CPU_FREQ=y
CONFIG_CPU_FREQ_STAT=y
CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
CONFIG_CPU_FREQ_GOV_POWERSAVE=m
CONFIG_CPU_FREQ_GOV_USERSPACE=y
CONFIG_CPU_FREQ_GOV_ONDEMAND=y
CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y
CONFIG_CPUFREQ_DT=y
CONFIG_ACPI_CPPC_CPUFREQ=m
CONFIG_ARM_SCPI_CPUFREQ=y
CONFIG_ACPI=y
CONFIG_ACPI_APEI=y
CONFIG_ACPI_APEI_GHES=y
CONFIG_ACPI_APEI_PCIEAER=y
CONFIG_ACPI_APEI_MEMORY_FAILURE=y
CONFIG_VIRTUALIZATION=y
CONFIG_KVM=y
CONFIG_JUMP_LABEL=y
# CONFIG_GCC_PLUGINS is not set
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
CONFIG_BLK_DEV_THROTTLING=y
CONFIG_PARTITION_ADVANCED=y
# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
CONFIG_ZSWAP=y
CONFIG_ZSWAP_DEFAULT_ON=y
CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZ4=y
CONFIG_ZSWAP_ZPOOL_DEFAULT_ZSMALLOC=y
# CONFIG_COMPAT_BRK is not set
CONFIG_KSM=y
CONFIG_MEMORY_FAILURE=y
CONFIG_TRANSPARENT_HUGEPAGE=y
CONFIG_CMA=y
CONFIG_CMA_AREAS=7
CONFIG_LRU_GEN=y
CONFIG_LRU_GEN_ENABLED=y
CONFIG_NET=y
CONFIG_PACKET=y
CONFIG_UNIX=y
CONFIG_XFRM_USER=m
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
CONFIG_IP_PNP=y
CONFIG_IP_PNP_DHCP=y
CONFIG_IP_PNP_BOOTP=y
CONFIG_IP_MROUTE=y
CONFIG_INET_ESP=m
CONFIG_IPV6_ROUTER_PREF=y
CONFIG_IPV6_REACHABILITY_PROBE=y
CONFIG_IPV6_SIT=m
CONFIG_IPV6_MROUTE=y
CONFIG_NETFILTER=y
CONFIG_BRIDGE_NETFILTER=y
CONFIG_NF_CONNTRACK=y
CONFIG_NF_CONNTRACK_PROCFS=y
CONFIG_NF_CONNTRACK_EVENTS=y
CONFIG_NF_TABLES=m
CONFIG_NF_TABLES_INET=y
CONFIG_NF_TABLES_NETDEV=y
CONFIG_NFT_NUMGEN=m
CONFIG_NFT_CT=m
CONFIG_NFT_CONNLIMIT=m
CONFIG_NFT_LOG=m
CONFIG_NFT_LIMIT=m
CONFIG_NFT_MASQ=m
CONFIG_NFT_REDIR=m
CONFIG_NFT_NAT=m
CONFIG_NFT_TUNNEL=m
CONFIG_NFT_QUOTA=m
CONFIG_NFT_REJECT=m
CONFIG_NFT_COMPAT=m
CONFIG_NFT_HASH=m
CONFIG_NFT_FIB_INET=m
CONFIG_NFT_XFRM=m
CONFIG_NFT_SOCKET=m
CONFIG_NFT_OSF=m
CONFIG_NFT_TPROXY=m
CONFIG_NFT_SYNPROXY=m
CONFIG_NFT_DUP_NETDEV=m
CONFIG_NFT_FWD_NETDEV=m
CONFIG_NFT_FIB_NETDEV=m
CONFIG_NFT_REJECT_NETDEV=m
CONFIG_NETFILTER_XT_SET=m
CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
CONFIG_NETFILTER_XT_TARGET_LOG=m
CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=y
CONFIG_NETFILTER_XT_MATCH_CONNTRACK=y
CONFIG_NETFILTER_XT_MATCH_IPVS=y
CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
CONFIG_IP_SET=m
CONFIG_IP_SET_BITMAP_IP=m
CONFIG_IP_SET_BITMAP_IPMAC=m
CONFIG_IP_SET_BITMAP_PORT=m
CONFIG_IP_SET_HASH_IP=m
CONFIG_IP_SET_HASH_IPMARK=m
CONFIG_IP_SET_HASH_IPPORT=m
CONFIG_IP_SET_HASH_IPPORTIP=m
CONFIG_IP_SET_HASH_IPPORTNET=m
CONFIG_IP_SET_HASH_IPMAC=m
CONFIG_IP_SET_HASH_MAC=m
CONFIG_IP_SET_HASH_NETPORTNET=m
CONFIG_IP_SET_HASH_NET=m
CONFIG_IP_SET_HASH_NETNET=m
CONFIG_IP_SET_HASH_NETPORT=m
CONFIG_IP_SET_HASH_NETIFACE=m
CONFIG_IP_SET_LIST_SET=m
CONFIG_IP_VS=y
CONFIG_IP_VS_IPV6=y
CONFIG_IP_VS_RR=y
CONFIG_IP_VS_NFCT=y
CONFIG_NFT_DUP_IPV4=m
CONFIG_NFT_FIB_IPV4=m
CONFIG_NF_TABLES_ARP=y
CONFIG_NF_LOG_IPV4=m
CONFIG_IP_NF_IPTABLES=y
CONFIG_IP_NF_FILTER=y
CONFIG_IP_NF_TARGET_REJECT=m
CONFIG_IP_NF_NAT=y
CONFIG_IP_NF_TARGET_MASQUERADE=y
CONFIG_IP_NF_TARGET_REDIRECT=y
CONFIG_IP_NF_MANGLE=m
CONFIG_NFT_DUP_IPV6=m
CONFIG_NFT_FIB_IPV6=m
CONFIG_IP6_NF_IPTABLES=y
CONFIG_IP6_NF_FILTER=y
CONFIG_IP6_NF_TARGET_REJECT=m
CONFIG_IP6_NF_MANGLE=y
CONFIG_IP6_NF_NAT=y
CONFIG_IP6_NF_TARGET_MASQUERADE=m
CONFIG_NF_TABLES_BRIDGE=m
CONFIG_NFT_BRIDGE_META=m
CONFIG_NFT_BRIDGE_REJECT=m
CONFIG_BRIDGE=y
CONFIG_BRIDGE_VLAN_FILTERING=y
CONFIG_VLAN_8021Q=m
CONFIG_VLAN_8021Q_GVRP=y
CONFIG_VLAN_8021Q_MVRP=y
CONFIG_NET_SCHED=y
CONFIG_NET_SCH_FQ_CODEL=m
CONFIG_NET_CLS_CGROUP=y
CONFIG_DNS_RESOLVER=y
CONFIG_CGROUP_NET_PRIO=y
CONFIG_CAN=m
CONFIG_BT=m
CONFIG_BT_RFCOMM=m
CONFIG_BT_RFCOMM_TTY=y
CONFIG_BT_BNEP=m
CONFIG_BT_BNEP_MC_FILTER=y
CONFIG_BT_BNEP_PROTO_FILTER=y
CONFIG_BT_HIDP=m
CONFIG_BT_LEDS=y
CONFIG_BT_HCIBTUSB=m
CONFIG_BT_HCIUART=m
CONFIG_BT_HCIUART_LL=y
CONFIG_BT_HCIUART_BCM=y
CONFIG_CFG80211=m
CONFIG_CFG80211_WEXT=y
CONFIG_MAC80211=m
CONFIG_MAC80211_LEDS=y
CONFIG_RFKILL=m
CONFIG_NET_9P=y
CONFIG_NET_9P_VIRTIO=y
CONFIG_PCI=y
CONFIG_PCIEPORTBUS=y
CONFIG_PCIEAER=y
CONFIG_PCI_IOV=y
CONFIG_HOTPLUG_PCI=y
CONFIG_HOTPLUG_PCI_ACPI=y
CONFIG_PCI_HOST_GENERIC=y
CONFIG_PCI_XGENE=y
CONFIG_PCIE_ALTERA=y
CONFIG_PCIE_ALTERA_MSI=y
CONFIG_PCI_HOST_THUNDER_PEM=y
CONFIG_PCI_HOST_THUNDER_ECAM=y
CONFIG_PCI_HISI=y
CONFIG_PCIE_KIRIN=y
# CONFIG_PCI_MESON is not set
CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y
CONFIG_VEXPRESS_CONFIG=y
CONFIG_ARM_SCPI_PROTOCOL=y
CONFIG_EFI_CAPSULE_LOADER=y
CONFIG_MTD=y
CONFIG_MTD_BLOCK=y
CONFIG_MTD_RAW_NAND=y
CONFIG_MTD_NAND_DENALI_DT=y
CONFIG_MTD_SPI_NOR=y
CONFIG_OF_OVERLAY=y
CONFIG_ZRAM=y
CONFIG_BLK_DEV_LOOP=y
CONFIG_BLK_DEV_NBD=m
CONFIG_VIRTIO_BLK=y
CONFIG_BLK_DEV_NVME=m
CONFIG_SRAM=y
CONFIG_EEPROM_AT25=m
# CONFIG_SCSI_PROC_FS is not set
CONFIG_BLK_DEV_SD=y
CONFIG_SCSI_SAS_ATA=y
CONFIG_SCSI_HISI_SAS=y
CONFIG_SCSI_HISI_SAS_PCI=y
CONFIG_SCSI_MPT3SAS=m
CONFIG_ATA=y
CONFIG_SATA_AHCI=y
CONFIG_SATA_AHCI_PLATFORM=y
CONFIG_AHCI_CEVA=y
CONFIG_SATA_SIL24=y
CONFIG_PATA_OF_PLATFORM=y
CONFIG_MD=y
CONFIG_BLK_DEV_MD=m
CONFIG_BLK_DEV_DM=y
CONFIG_DM_MIRROR=m
CONFIG_DM_ZERO=m
CONFIG_DM_VERITY=y
CONFIG_NETDEVICES=y
CONFIG_DUMMY=m
CONFIG_WIREGUARD=m
CONFIG_MACVLAN=m
CONFIG_MACVTAP=m
CONFIG_IPVLAN=m
CONFIG_VXLAN=m
CONFIG_NETCONSOLE=y
CONFIG_TUN=y
CONFIG_VETH=y
CONFIG_VIRTIO_NET=y
CONFIG_AMD_XGBE=y
CONFIG_ATL1C=m
CONFIG_BNX2X=m
CONFIG_MACB=y
CONFIG_THUNDER_NIC_PF=y
CONFIG_HIX5HD2_GMAC=y
CONFIG_HNS_DSAF=y
CONFIG_HNS_ENET=y
CONFIG_HNS3=y
CONFIG_HNS3_HCLGE=y
CONFIG_HNS3_ENET=y
CONFIG_E1000E=y
CONFIG_IGB=y
CONFIG_IGBVF=y
CONFIG_MVMDIO=y
CONFIG_SKY2=y
CONFIG_MLX4_EN=m
CONFIG_MLX5_CORE=m
CONFIG_MLX5_CORE_EN=y
CONFIG_MLXFW=m
CONFIG_QCOM_EMAC=m
CONFIG_SMC91X=y
CONFIG_SMSC911X=y
CONFIG_STMMAC_ETH=m
CONFIG_MESON_GXL_PHY=y
CONFIG_MARVELL_PHY=m
CONFIG_MARVELL_10G_PHY=m
CONFIG_MICREL_PHY=y
CONFIG_AT803X_PHY=m
CONFIG_REALTEK_PHY=m
CONFIG_ROCKCHIP_PHY=y
CONFIG_CAN_VCAN=m
CONFIG_CAN_SLCAN=m
CONFIG_CAN_GS_USB=m
CONFIG_CAN_PEAK_USB=m
CONFIG_MDIO_BITBANG=y
CONFIG_MDIO_BUS_MUX_MESON_G12A=y
CONFIG_MDIO_BUS_MUX_MMIOREG=y
CONFIG_USB_NET_DRIVERS=m
CONFIG_USB_PEGASUS=m
CONFIG_USB_RTL8150=m
CONFIG_USB_RTL8152=m
CONFIG_USB_LAN78XX=m
CONFIG_USB_USBNET=m
CONFIG_USB_NET_CDC_EEM=m
CONFIG_USB_NET_DM9601=m
CONFIG_USB_NET_SR9800=m
CONFIG_USB_NET_SMSC75XX=m
CONFIG_USB_NET_SMSC95XX=m
CONFIG_USB_NET_PLUSB=m
CONFIG_USB_NET_MCS7830=m
CONFIG_ATH10K=m
CONFIG_ATH10K_PCI=m
CONFIG_BRCMFMAC=m
CONFIG_MWIFIEX=m
CONFIG_MWIFIEX_PCIE=m
CONFIG_MT7601U=m
CONFIG_RT2X00=m
CONFIG_RT2500USB=m
CONFIG_RT73USB=m
CONFIG_RT2800USB=m
CONFIG_RT2800USB_RT3573=y
CONFIG_RT2800USB_RT53XX=y
CONFIG_RT2800USB_RT55XX=y
CONFIG_RT2800USB_UNKNOWN=y
CONFIG_RTL8192CU=m
CONFIG_RTL8XXXU=m
CONFIG_WL18XX=m
CONFIG_WLCORE_SDIO=m
CONFIG_INPUT_EVDEV=y
CONFIG_KEYBOARD_ADC=m
CONFIG_KEYBOARD_GPIO=y
CONFIG_KEYBOARD_GPIO_POLLED=y
CONFIG_KEYBOARD_CROS_EC=y
CONFIG_INPUT_TOUCHSCREEN=y
CONFIG_TOUCHSCREEN_ATMEL_MXT=m
CONFIG_INPUT_MISC=y
CONFIG_SERIO_SERPORT=m
CONFIG_SERIO_AMBAKMI=y
CONFIG_LEGACY_PTY_COUNT=16
CONFIG_SERIAL_8250=y
# CONFIG_SERIAL_8250_16550A_VARIANTS is not set
CONFIG_SERIAL_8250_CONSOLE=y
CONFIG_SERIAL_8250_EXTENDED=y
CONFIG_SERIAL_8250_SHARE_IRQ=y
CONFIG_SERIAL_8250_DW=y
CONFIG_SERIAL_OF_PLATFORM=y
CONFIG_SERIAL_AMBA_PL011=y
CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
CONFIG_SERIAL_MESON=y
CONFIG_SERIAL_MESON_CONSOLE=y
CONFIG_SERIAL_XILINX_PS_UART=y
CONFIG_SERIAL_XILINX_PS_UART_CONSOLE=y
CONFIG_SERIAL_FSL_LPUART=y
CONFIG_SERIAL_FSL_LPUART_CONSOLE=y
CONFIG_SERIAL_DEV_BUS=y
CONFIG_VIRTIO_CONSOLE=y
CONFIG_IPMI_HANDLER=m
CONFIG_IPMI_DEVICE_INTERFACE=m
CONFIG_IPMI_SI=m
CONFIG_HW_RANDOM=y
CONFIG_HW_RANDOM_OPTEE=m
CONFIG_TCG_TPM=y
CONFIG_TCG_TIS_I2C_INFINEON=y
CONFIG_I2C_CHARDEV=y
CONFIG_I2C_MUX=y
CONFIG_I2C_MUX_PCA954x=y
CONFIG_I2C_GPIO=m
CONFIG_I2C_MESON=y
CONFIG_I2C_RK3X=y
CONFIG_I2C_CROS_EC_TUNNEL=y
CONFIG_I2C_SLAVE=y
CONFIG_SPI=y
CONFIG_SPI_BITBANG=m
CONFIG_SPI_MESON_SPICC=m
CONFIG_SPI_MESON_SPIFC=m
CONFIG_SPI_PL022=y
CONFIG_SPI_SPIDEV=m
CONFIG_SPMI=y
CONFIG_PINCTRL=y
CONFIG_PINCTRL_MAX77620=y
CONFIG_PINCTRL_SINGLE=y
CONFIG_GPIO_DWAPB=y
CONFIG_GPIO_MB86S7X=y
CONFIG_GPIO_PL061=y
CONFIG_GPIO_XGENE=y
CONFIG_GPIO_MAX732X=y
CONFIG_GPIO_PCA953X=y
CONFIG_GPIO_PCA953X_IRQ=y
CONFIG_GPIO_MAX77620=y
CONFIG_W1=y
CONFIG_W1_MASTER_DS2490=m
CONFIG_W1_MASTER_DS2482=m
CONFIG_W1_MASTER_GPIO=m
CONFIG_POWER_RESET_VEXPRESS=y
CONFIG_POWER_RESET_XGENE=y
CONFIG_POWER_RESET_SYSCON=y
CONFIG_SYSCON_REBOOT_MODE=y
CONFIG_BATTERY_SBS=m
CONFIG_BATTERY_BQ27XXX=y
CONFIG_SENSORS_ARM_SCPI=y
CONFIG_SENSORS_GPIO_FAN=y
CONFIG_SENSORS_LM90=m
CONFIG_SENSORS_PWM_FAN=m
CONFIG_SENSORS_INA2XX=m
CONFIG_SENSORS_INA3221=m
CONFIG_THERMAL_GOV_BANG_BANG=y
CONFIG_CPU_THERMAL=y
CONFIG_THERMAL_EMULATION=y
CONFIG_WATCHDOG=y
CONFIG_ARM_SP805_WATCHDOG=y
CONFIG_DW_WATCHDOG=y
CONFIG_MESON_GXBB_WATCHDOG=y
CONFIG_MESON_WATCHDOG=y
CONFIG_MFD_BD9571MWV=y
CONFIG_MFD_AXP20X_I2C=y
CONFIG_MFD_HI6421_PMIC=y
CONFIG_MFD_MAX77620=y
CONFIG_MFD_RK8XX_I2C=y
CONFIG_MFD_SEC_CORE=y
CONFIG_MFD_ROHM_BD718XX=y
CONFIG_REGULATOR=y
CONFIG_REGULATOR_FIXED_VOLTAGE=y
CONFIG_REGULATOR_AXP20X=y
CONFIG_REGULATOR_BD718XX=y
CONFIG_REGULATOR_BD9571MWV=y
CONFIG_REGULATOR_FAN53555=y
CONFIG_REGULATOR_GPIO=y
CONFIG_REGULATOR_HI6421V530=y
CONFIG_REGULATOR_MAX77620=y
CONFIG_REGULATOR_MAX8973=y
CONFIG_REGULATOR_PFUZE100=y
CONFIG_REGULATOR_PWM=y
CONFIG_REGULATOR_QCOM_SPMI=y
CONFIG_REGULATOR_RK808=y
CONFIG_REGULATOR_S2MPS11=y
CONFIG_REGULATOR_VCTRL=m
CONFIG_RC_CORE=m
CONFIG_RC_DECODERS=y
CONFIG_RC_DEVICES=y
CONFIG_IR_MESON=m
CONFIG_MEDIA_CEC_RC=y
CONFIG_MEDIA_CEC_SUPPORT=y
CONFIG_CEC_MESON_AO=m
CONFIG_CEC_MESON_G12A_AO=m
CONFIG_CEC_GPIO=m
CONFIG_USB_PULSE8_CEC=m
CONFIG_MEDIA_SUPPORT=y
CONFIG_MEDIA_CAMERA_SUPPORT=y
CONFIG_MEDIA_ANALOG_TV_SUPPORT=y
CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y
# CONFIG_DVB_NET is not set
# CONFIG_DVB_DYNAMIC_MINORS is not set
CONFIG_MEDIA_USB_SUPPORT=y
CONFIG_USB_GSPCA=m
CONFIG_USB_GSPCA_BENQ=m
CONFIG_USB_GSPCA_CONEX=m
CONFIG_USB_GSPCA_CPIA1=m
CONFIG_USB_GSPCA_DTCS033=m
CONFIG_USB_GSPCA_ETOMS=m
CONFIG_USB_GSPCA_FINEPIX=m
CONFIG_USB_GSPCA_JEILINJ=m
CONFIG_USB_GSPCA_JL2005BCD=m
CONFIG_USB_GSPCA_KINECT=m
CONFIG_USB_GSPCA_KONICA=m
CONFIG_USB_GSPCA_MARS=m
CONFIG_USB_GSPCA_MR97310A=m
CONFIG_USB_GSPCA_NW80X=m
CONFIG_USB_GSPCA_OV519=m
CONFIG_USB_GSPCA_OV534=m
CONFIG_USB_GSPCA_OV534_9=m
CONFIG_USB_GSPCA_PAC207=m
CONFIG_USB_GSPCA_PAC7302=m
CONFIG_USB_GSPCA_PAC7311=m
CONFIG_USB_GSPCA_SE401=m
CONFIG_USB_GSPCA_SN9C2028=m
CONFIG_USB_GSPCA_SN9C20X=m
CONFIG_USB_GSPCA_SONIXB=m
CONFIG_USB_GSPCA_SONIXJ=m
CONFIG_USB_GSPCA_SPCA1528=m
CONFIG_USB_GSPCA_SPCA500=m
CONFIG_USB_GSPCA_SPCA501=m
CONFIG_USB_GSPCA_SPCA505=m
CONFIG_USB_GSPCA_SPCA506=m
CONFIG_USB_GSPCA_SPCA508=m
CONFIG_USB_GSPCA_SPCA561=m
CONFIG_USB_GSPCA_SQ905=m
CONFIG_USB_GSPCA_SQ905C=m
CONFIG_USB_GSPCA_SQ930X=m
CONFIG_USB_GSPCA_STK014=m
CONFIG_USB_GSPCA_STK1135=m
CONFIG_USB_GSPCA_STV0680=m
CONFIG_USB_GSPCA_SUNPLUS=m
CONFIG_USB_GSPCA_T613=m
CONFIG_USB_GSPCA_TOPRO=m
CONFIG_USB_GSPCA_TOUPTEK=m
CONFIG_USB_GSPCA_TV8532=m
CONFIG_USB_GSPCA_VC032X=m
CONFIG_USB_GSPCA_VICAM=m
CONFIG_USB_GSPCA_XIRLINK_CIT=m
CONFIG_USB_GSPCA_ZC3XX=m
CONFIG_USB_GL860=m
CONFIG_USB_M5602=m
CONFIG_USB_STV06XX=m
CONFIG_USB_PWC=m
CONFIG_USB_S2255=m
CONFIG_VIDEO_USBTV=m
CONFIG_USB_VIDEO_CLASS=m
CONFIG_VIDEO_HDPVR=m
CONFIG_VIDEO_PVRUSB2=m
CONFIG_VIDEO_AU0828=m
CONFIG_VIDEO_CX231XX=m
CONFIG_VIDEO_CX231XX_ALSA=m
CONFIG_VIDEO_CX231XX_DVB=m
CONFIG_VIDEO_EM28XX=m
CONFIG_VIDEO_EM28XX_V4L2=m
CONFIG_VIDEO_EM28XX_ALSA=m
CONFIG_VIDEO_EM28XX_DVB=m
CONFIG_MEDIA_PCI_SUPPORT=y
CONFIG_DRM=y
CONFIG_DRM_PANEL_SIMPLE=m
CONFIG_DRM_MESON=m
CONFIG_DRM_PL111=m
CONFIG_DRM_LIMA=m
CONFIG_DRM_PANFROST=m
CONFIG_FB=y
CONFIG_FB_MODE_HELPERS=y
CONFIG_FB_EFI=y
CONFIG_BACKLIGHT_CLASS_DEVICE=y
CONFIG_BACKLIGHT_PWM=m
CONFIG_BACKLIGHT_LP855X=m
CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_SOUND=y
CONFIG_SND=y
CONFIG_SND_HDA_INTEL=m
CONFIG_SND_HDA_CODEC_REALTEK=m
CONFIG_SND_HDA_CODEC_ANALOG=m
CONFIG_SND_HDA_CODEC_VIA=m
CONFIG_SND_HDA_CODEC_HDMI=m
CONFIG_SND_USB_AUDIO=m
CONFIG_SND_SOC=y
CONFIG_SND_MESON_AXG_SOUND_CARD=y
CONFIG_SND_MESON_GX_SOUND_CARD=y
CONFIG_SND_MESON_G12A_TOHDMITX=y
CONFIG_SND_SOC_AK4613=m
CONFIG_SND_SOC_DMIC=y
CONFIG_SND_SOC_ES7134=m
CONFIG_SND_SOC_ES7241=m
CONFIG_SND_SOC_MAX98357A=y
CONFIG_SND_SOC_PCM3168A_I2C=m
CONFIG_SND_SOC_SIMPLE_AMPLIFIER=m
CONFIG_SND_SOC_SPDIF=y
CONFIG_SND_SOC_TAS571X=m
CONFIG_SND_SIMPLE_CARD=m
CONFIG_SND_AUDIO_GRAPH_CARD=m
CONFIG_HIDRAW=y
CONFIG_UHID=y
CONFIG_USB=y
CONFIG_USB_OTG=y
CONFIG_USB_XHCI_HCD=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_EHCI_HCD_PLATFORM=y
CONFIG_USB_OHCI_HCD=y
CONFIG_USB_OHCI_HCD_PLATFORM=y
CONFIG_USB_STORAGE=y
CONFIG_USB_UAS=y
CONFIG_USBIP_CORE=m
CONFIG_USBIP_VHCI_HCD=m
CONFIG_USBIP_HOST=m
CONFIG_USBIP_VUDC=m
CONFIG_USB_MUSB_HDRC=y
CONFIG_USB_DWC3=y
CONFIG_USB_DWC2=y
CONFIG_USB_CHIPIDEA=y
CONFIG_USB_CHIPIDEA_UDC=y
CONFIG_USB_CHIPIDEA_HOST=y
CONFIG_USB_ISP1760=y
CONFIG_USB_SERIAL=y
CONFIG_USB_SERIAL_CONSOLE=y
CONFIG_USB_SERIAL_GENERIC=y
CONFIG_USB_SERIAL_SIMPLE=m
CONFIG_USB_SERIAL_CH341=m
CONFIG_USB_SERIAL_CP210X=m
CONFIG_USB_SERIAL_FTDI_SIO=m
CONFIG_USB_SERIAL_KEYSPAN=m
CONFIG_USB_SERIAL_PL2303=m
CONFIG_USB_SERIAL_TI=m
CONFIG_USB_SERIAL_OPTION=m
CONFIG_USB_HSIC_USB3503=y
CONFIG_NOP_USB_XCEIV=y
CONFIG_USB_ULPI=y
CONFIG_USB_GADGET=y
CONFIG_USB_SNP_UDC_PLAT=y
CONFIG_USB_BDC_UDC=y
CONFIG_TYPEC=m
CONFIG_MMC=y
CONFIG_MMC_BLOCK_MINORS=32
CONFIG_MMC_ARMMMCI=y
CONFIG_MMC_SDHCI=y
CONFIG_MMC_SDHCI_ACPI=y
CONFIG_MMC_SDHCI_PLTFM=y
CONFIG_MMC_SDHCI_OF_ARASAN=y
CONFIG_MMC_SDHCI_CADENCE=y
CONFIG_MMC_SDHCI_F_SDH30=y
CONFIG_MMC_MESON_GX=y
CONFIG_MMC_SPI=y
CONFIG_MMC_DW=y
CONFIG_MMC_DW_EXYNOS=y
CONFIG_MMC_DW_HI3798CV200=y
CONFIG_MMC_DW_K3=y
CONFIG_MMC_SDHCI_XENON=y
CONFIG_SCSI_UFSHCD=y
CONFIG_SCSI_UFSHCD_PLATFORM=y
CONFIG_LEDS_CLASS=y
CONFIG_LEDS_GPIO=y
CONFIG_LEDS_PWM=y
CONFIG_LEDS_SYSCON=y
CONFIG_LEDS_TRIGGER_DISK=y
CONFIG_LEDS_TRIGGER_HEARTBEAT=y
CONFIG_LEDS_TRIGGER_CPU=y
CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
CONFIG_LEDS_TRIGGER_PANIC=y
CONFIG_EDAC=y
CONFIG_EDAC_GHES=y
CONFIG_RTC_CLASS=y
CONFIG_RTC_DRV_DS1307=m
CONFIG_RTC_DRV_MAX77686=y
CONFIG_RTC_DRV_RK808=m
CONFIG_RTC_DRV_PCF8563=y
CONFIG_RTC_DRV_RX8581=m
CONFIG_RTC_DRV_S5M=y
CONFIG_RTC_DRV_DS3232=y
CONFIG_RTC_DRV_EFI=y
CONFIG_RTC_DRV_CROS_EC=y
CONFIG_RTC_DRV_PL031=y
CONFIG_DMADEVICES=y
CONFIG_FSL_EDMA=y
CONFIG_MV_XOR_V2=y
CONFIG_PL330_DMA=y
CONFIG_QCOM_HIDMA_MGMT=y
CONFIG_QCOM_HIDMA=y
CONFIG_VFIO=y
CONFIG_VFIO_PCI=y
CONFIG_VIRTIO_PCI=y
CONFIG_VIRTIO_BALLOON=y
CONFIG_VIRTIO_MMIO=y
CONFIG_XEN_GNTDEV=y
CONFIG_XEN_GRANT_DEV_ALLOC=y
CONFIG_STAGING=y
CONFIG_CHROME_PLATFORMS=y
CONFIG_CROS_EC=y
CONFIG_CROS_EC_I2C=y
CONFIG_CROS_EC_SPI=y
CONFIG_COMMON_CLK_RK808=y
CONFIG_COMMON_CLK_SCPI=y
CONFIG_COMMON_CLK_CS2000_CP=y
CONFIG_COMMON_CLK_S2MPS11=y
CONFIG_COMMON_CLK_XGENE=y
CONFIG_COMMON_CLK_PWM=y
CONFIG_HWSPINLOCK=y
CONFIG_ARM_MHU=y
CONFIG_PLATFORM_MHU=y
CONFIG_ARM_SMMU=y
CONFIG_ARM_SMMU_V3=y
CONFIG_REMOTEPROC=y
CONFIG_RPMSG_QCOM_GLINK_RPM=y
CONFIG_MESON_CANVAS=y
CONFIG_SOC_TI=y
CONFIG_EXTCON_USB_GPIO=y
CONFIG_EXTCON_USBC_CROS_EC=y
CONFIG_MEMORY=y
CONFIG_IIO=y
CONFIG_IIO_CROS_EC_SENSORS_CORE=m
CONFIG_IIO_CROS_EC_SENSORS=m
CONFIG_IIO_CROS_EC_LIGHT_PROX=m
CONFIG_SENSORS_ISL29018=m
CONFIG_IIO_CROS_EC_BARO=m
CONFIG_MPL3115=m
CONFIG_PWM=y
CONFIG_PWM_CROS_EC=m
CONFIG_PWM_MESON=y
CONFIG_PHY_QCOM_USB_HS=y
CONFIG_PHY_SAMSUNG_USB2=y
CONFIG_HISI_PMU=y
CONFIG_FPGA=y
CONFIG_FPGA_BRIDGE=m
CONFIG_ALTERA_FREEZE_BRIDGE=m
CONFIG_FPGA_REGION=m
CONFIG_OF_FPGA_REGION=m
CONFIG_TEE=y
CONFIG_OPTEE=y
CONFIG_EXT3_FS=m
CONFIG_EXT4_FS=y
CONFIG_EXT4_FS_POSIX_ACL=y
CONFIG_EXT4_FS_SECURITY=y
CONFIG_BTRFS_FS=m
CONFIG_FANOTIFY=y
CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y
CONFIG_QUOTA=y
CONFIG_AUTOFS_FS=y
CONFIG_FUSE_FS=m
CONFIG_CUSE=m
CONFIG_OVERLAY_FS=y
CONFIG_MSDOS_FS=y
CONFIG_VFAT_FS=y
CONFIG_TMPFS=y
CONFIG_TMPFS_POSIX_ACL=y
CONFIG_HUGETLBFS=y
CONFIG_CONFIGFS_FS=y
CONFIG_EFIVAR_FS=y
CONFIG_SQUASHFS=y
CONFIG_SQUASHFS_XATTR=y
CONFIG_SQUASHFS_LZ4=y
CONFIG_NFS_FS=m
CONFIG_NFS_V4=m
CONFIG_NFS_V4_1=y
CONFIG_NFS_V4_2=y
CONFIG_CIFS=m
# CONFIG_CIFS_STATS2 is not set
CONFIG_CIFS_XATTR=y
CONFIG_CIFS_POSIX=y
CONFIG_CIFS_DFS_UPCALL=y
CONFIG_9P_FS=y
CONFIG_NLS_DEFAULT="utf8"
CONFIG_NLS_CODEPAGE_437=y
CONFIG_NLS_ASCII=y
CONFIG_NLS_ISO8859_1=y
CONFIG_NLS_UTF8=y
CONFIG_SECURITY=y
CONFIG_SECURITY_APPARMOR=y
CONFIG_LSM="apparmor"
CONFIG_CRYPTO_CRYPTD=y
CONFIG_CRYPTO_CHACHA20=m
CONFIG_CRYPTO_ECHAINIV=y
CONFIG_CRYPTO_MD4=m
CONFIG_CRYPTO_SHA256=y
CONFIG_CRYPTO_LZO=y
CONFIG_CRYPTO_ANSI_CPRNG=y
CONFIG_CRYPTO_GHASH_ARM64_CE=y
CONFIG_CRYPTO_SHA1_ARM64_CE=y
CONFIG_CRYPTO_SHA2_ARM64_CE=y
CONFIG_CRYPTO_SHA512_ARM64_CE=m
CONFIG_CRYPTO_SHA3_ARM64=m
CONFIG_CRYPTO_SM3_ARM64_CE=m
CONFIG_CRYPTO_AES_ARM64=y
CONFIG_CRYPTO_AES_ARM64_CE_BLK=y
CONFIG_CRYPTO_AES_ARM64_BS=m
CONFIG_CRYPTO_AES_ARM64_CE_CCM=y
CONFIG_CRYPTO_CRCT10DIF_ARM64_CE=m
CONFIG_CRYPTO_DEV_VIRTIO=m
CONFIG_CRYPTO_DEV_AMLOGIC_GXL=y
CONFIG_INDIRECT_PIO=y
CONFIG_DMA_CMA=y
CONFIG_CMA_SIZE_MBYTES=32
CONFIG_PRINTK_TIME=y
CONFIG_MAGIC_SYSRQ=y
CONFIG_PANIC_TIMEOUT=5
CONFIG_MEMTEST=y

View File

@@ -0,0 +1,2 @@
# Uncomment this to enable GPIO support for RPI-RF-MOD/HM-MOD-RPI-PCB
#overlays=rpi-rf-mod

View File

@@ -0,0 +1 @@
console=ttyAML0,115200n8 console=tty0

View File

@@ -0,0 +1,20 @@
#!/bin/bash
# shellcheck disable=SC2155
function hassos_pre_image() {
local BOOT_DATA="$(path_boot_dir)"
cp "${BINARIES_DIR}/boot.scr" "${BOOT_DATA}/boot.scr"
cp "${BINARIES_DIR}/meson-gxbb-odroidc2.dtb" "${BOOT_DATA}/meson-gxbb-odroidc2.dtb"
mkdir -p "${BOOT_DATA}/overlays"
cp "${BINARIES_DIR}"/*.dtbo "${BOOT_DATA}/overlays/"
cp "${BOARD_DIR}/boot-env.txt" "${BOOT_DATA}/haos-config.txt"
cp "${BOARD_DIR}/cmdline.txt" "${BOOT_DATA}/cmdline.txt"
}
function hassos_post_image() {
convert_disk_image_xz
}

View File

@@ -0,0 +1,20 @@
image spl.img {
size = ${BOOT_SPL_SIZE}
hdimage {
partition-table-type = "none"
fill = "yes"
}
partition bl1 {
in-partition-table = "no"
image = "bl1.bin.hardkernel"
offset = 0
}
partition u-boot {
in-partition-table = "no"
image = "u-boot.gxbb"
offset = 97s
}
}

View File

@@ -0,0 +1,12 @@
BOARD_ID=odroid-c2
BOARD_NAME="Hardkernel ODROID-C2"
CHASSIS=embedded
BOOTLOADER=uboot
KERNEL_FILE=Image
PARTITION_TABLE_TYPE=mbr
BOOT_SIZE=24M
BOOT_SPL=true
BOOT_SPL_SIZE=8M
BOOT_ENV_SIZE=0x2000
SUPERVISOR_MACHINE=odroid-c2
SUPERVISOR_ARCH=aarch64

View File

@@ -0,0 +1,8 @@
partition spl {
size = ${BOOT_SPL_SIZE}
image = "spl.img"
in-partition-table = "no"
offset = 0
holes = {"(440; 512)"}
}

View File

@@ -0,0 +1,107 @@
###########################################
part start mmc ${devnum} 9 mmc_env
mmc dev ${devnum}
setenv loadbootstate " \
echo 'loading env...'; \
mmc read ${ramdisk_addr_r} ${mmc_env} 0x10; \
env import -c ${ramdisk_addr_r} 0x2000;"
setenv storebootstate " \
echo 'storing env...'; \
env export -c -s 0x2000 ${ramdisk_addr_r} BOOT_ORDER BOOT_A_LEFT BOOT_B_LEFT MACHINE_ID; \
mmc write ${ramdisk_addr_r} ${mmc_env} 0x10;"
run loadbootstate
test -n "${BOOT_ORDER}" || setenv BOOT_ORDER "A B"
test -n "${BOOT_A_LEFT}" || setenv BOOT_A_LEFT 3
test -n "${BOOT_B_LEFT}" || setenv BOOT_B_LEFT 3
# Allows ConditionFirstBoot=
test -n "${MACHINE_ID}" || setenv BOOT_CONDITION "systemd.condition-first-boot=true"
# HassOS bootargs
setenv bootargs_hassos "zram.enabled=1 zram.num_devices=3 systemd.machine_id=${MACHINE_ID} fsck.repair=yes ${BOOT_CONDITION}"
# HassOS system A/B
setenv bootargs_a "root=PARTUUID=48617373-06 ro rootwait"
setenv bootargs_b "root=PARTUUID=48617373-08 ro rootwait"
# Load environment from haos-config.txt
if test -e mmc ${devnum}:1 haos-config.txt; then
fatload mmc ${devnum}:1 ${ramdisk_addr_r} haos-config.txt
env import -t ${ramdisk_addr_r} ${filesize}
fi
# Load extraargs
fileenv mmc ${devnum}:1 ${ramdisk_addr_r} cmdline.txt cmdline
# Load device tree
setenv fdtfile "meson-gxbb-odroidc2.dtb"
echo "Loading standard device tree ${fdtfile}"
fatload mmc ${devnum}:1 ${fdt_addr_r} ${fdtfile}
fdt addr ${fdt_addr_r}
# load dt overlays
fdt resize 65536
for overlay_file in ${overlays}; do
if fatload mmc ${devnum}:1 ${ramdisk_addr_r} overlays/${overlay_file}.dtbo; then
echo "Applying kernel provided DT overlay ${overlay_file}.dtbo"
fdt apply ${ramdisk_addr_r} || setenv overlay_error "true"
fi
done
if test "${overlay_error}" = "true"; then
echo "Error applying DT overlays, restoring original DT"
fatload mmc ${devnum}:1 ${fdt_addr_r} ${fdtfile}
fi
# logical volumes get numbered after physical ones.
# 1. boot
# 2. Extended partition
# 3. Overlay
# 4. Data
# 5. KernelA
# 6. SystemA
# 7. KernelB
# 8. SystemB
# 9. BootInfo
setenv bootargs
for BOOT_SLOT in "${BOOT_ORDER}"; do
if test "x${bootargs}" != "x"; then
# skip remaining slots
elif test "x${BOOT_SLOT}" = "xA"; then
if test ${BOOT_A_LEFT} -gt 0; then
setexpr BOOT_A_LEFT ${BOOT_A_LEFT} - 1
echo "Trying to boot slot A, ${BOOT_A_LEFT} attempts remaining. Loading kernel ..."
if load mmc ${devnum}:5 ${kernel_addr_r} Image; then
setenv bootargs "${bootargs_hassos} ${bootargs_a} rauc.slot=A ${cmdline}"
fi
fi
elif test "x${BOOT_SLOT}" = "xB"; then
if test ${BOOT_B_LEFT} -gt 0; then
setexpr BOOT_B_LEFT ${BOOT_B_LEFT} - 1
echo "Trying to boot slot B, ${BOOT_B_LEFT} attempts remaining. Loading kernel ..."
if load mmc ${devnum}:7 ${kernel_addr_r} Image; then
setenv bootargs "${bootargs_hassos} ${bootargs_b} rauc.slot=B ${cmdline}"
fi
fi
fi
done
if test -n "${bootargs}"; then
run storebootstate
else
echo "No valid slot found, resetting tries to 3"
setenv BOOT_A_LEFT 3
setenv BOOT_B_LEFT 3
run storebootstate
reset
fi
printenv bootargs
echo "Starting kernel"
booti ${kernel_addr_r} - ${fdt_addr_r}
echo "Boot failed, resetting..."
reset

View File

@@ -0,0 +1,4 @@
CONFIG_DOS_PARTITION=y
# CONFIG_EFI_PARTITION is not set
# CONFIG_USB_STORAGE is not set
CONFIG_DISPLAY_BOARDINFO=y

View File

@@ -0,0 +1,2 @@
# Uncomment this to enable GPIO support for RPI-RF-MOD/HM-MOD-RPI-PCB
#overlays=rpi-rf-mod

View File

@@ -0,0 +1 @@
console=ttyAML0,115200n8 console=tty0

View File

@@ -0,0 +1,19 @@
#!/bin/bash
# shellcheck disable=SC2155
function hassos_pre_image() {
local BOOT_DATA="$(path_boot_dir)"
cp "${BINARIES_DIR}/boot.scr" "${BOOT_DATA}/boot.scr"
cp "${BINARIES_DIR}/meson-sm1-odroid-c4.dtb" "${BOOT_DATA}/meson-sm1-odroid-c4.dtb"
mkdir -p "${BOOT_DATA}/overlays"
cp "${BINARIES_DIR}"/*.dtbo "${BOOT_DATA}/overlays/"
cp "${BOARD_DIR}/boot-env.txt" "${BOOT_DATA}/haos-config.txt"
cp "${BOARD_DIR}/cmdline.txt" "${BOOT_DATA}/cmdline.txt"
}
function hassos_post_image() {
convert_disk_image_xz
}

View File

@@ -0,0 +1,13 @@
image spl.img {
size = ${BOOT_SPL_SIZE}
hdimage {
partition-table-type = "none"
fill = "yes"
}
partition uboot {
offset = 512
image = "u-boot.sm1"
}
}

View File

@@ -0,0 +1,12 @@
BOARD_ID=odroid-c4
BOARD_NAME="Hardkernel ODROID-C4"
CHASSIS=embedded
BOOTLOADER=uboot
KERNEL_FILE=Image
PARTITION_TABLE_TYPE=mbr
BOOT_SIZE=24M
BOOT_SPL=true
BOOT_SPL_SIZE=8M
BOOT_ENV_SIZE=0x2000
SUPERVISOR_MACHINE=odroid-c4
SUPERVISOR_ARCH=aarch64

View File

@@ -0,0 +1,7 @@
partition spl {
size = ${BOOT_SPL_SIZE}
image = "spl.img"
in-partition-table = "no"
offset = 0
holes = {"(0; 512)"}
}

View File

@@ -0,0 +1,107 @@
###########################################
part start mmc ${devnum} 9 mmc_env
mmc dev ${devnum}
setenv loadbootstate " \
echo 'loading env...'; \
mmc read ${ramdisk_addr_r} ${mmc_env} 0x10; \
env import -c ${ramdisk_addr_r} 0x2000;"
setenv storebootstate " \
echo 'storing env...'; \
env export -c -s 0x2000 ${ramdisk_addr_r} BOOT_ORDER BOOT_A_LEFT BOOT_B_LEFT MACHINE_ID; \
mmc write ${ramdisk_addr_r} ${mmc_env} 0x10;"
run loadbootstate
test -n "${BOOT_ORDER}" || setenv BOOT_ORDER "A B"
test -n "${BOOT_A_LEFT}" || setenv BOOT_A_LEFT 3
test -n "${BOOT_B_LEFT}" || setenv BOOT_B_LEFT 3
# Allows ConditionFirstBoot=
test -n "${MACHINE_ID}" || setenv BOOT_CONDITION "systemd.condition-first-boot=true"
# HassOS bootargs
setenv bootargs_hassos "zram.enabled=1 zram.num_devices=3 systemd.machine_id=${MACHINE_ID} clk_ignore_unused usb-storage.quirks=0x2537:0x1066:u,0x2537:0x1068:u ${BOOT_CONDITION}"
# HassOS system A/B
setenv bootargs_a "root=PARTUUID=48617373-06 ro rootwait"
setenv bootargs_b "root=PARTUUID=48617373-08 ro rootwait"
# Load environment from haos-config.txt
if test -e mmc ${devnum}:1 haos-config.txt; then
fatload mmc ${devnum}:1 ${ramdisk_addr_r} haos-config.txt
env import -t ${ramdisk_addr_r} ${filesize}
fi
# Load extraargs
fileenv mmc ${devnum}:1 ${ramdisk_addr_r} cmdline.txt cmdline
# Load device tree
setenv fdtfile "meson-sm1-odroid-c4.dtb"
echo "Loading standard device tree ${fdtfile}"
fatload mmc ${devnum}:1 ${fdt_addr_r} ${fdtfile}
fdt addr ${fdt_addr_r}
# load dt overlays
fdt resize 65536
for overlay_file in ${overlays}; do
if fatload mmc ${devnum}:1 ${ramdisk_addr_r} overlays/${overlay_file}.dtbo; then
echo "Applying kernel provided DT overlay ${overlay_file}.dtbo"
fdt apply ${ramdisk_addr_r} || setenv overlay_error "true"
fi
done
if test "${overlay_error}" = "true"; then
echo "Error applying DT overlays, restoring original DT"
fatload mmc ${devnum}:1 ${fdt_addr_r} ${fdtfile}
fi
# logical volumes get numbered after physical ones.
# 1. boot
# 2. Extended partition
# 3. Overlay
# 4. Data
# 5. KernelA
# 6. SystemA
# 7. KernelB
# 8. SystemB
# 9. BootInfo
setenv bootargs
for BOOT_SLOT in "${BOOT_ORDER}"; do
if test "x${bootargs}" != "x"; then
# skip remaining slots
elif test "x${BOOT_SLOT}" = "xA"; then
if test ${BOOT_A_LEFT} -gt 0; then
setexpr BOOT_A_LEFT ${BOOT_A_LEFT} - 1
echo "Trying to boot slot A, ${BOOT_A_LEFT} attempts remaining. Loading kernel ..."
if load mmc ${devnum}:5 ${kernel_addr_r} Image; then
setenv bootargs "${bootargs_hassos} ${bootargs_a} rauc.slot=A ${cmdline}"
fi
fi
elif test "x${BOOT_SLOT}" = "xB"; then
if test ${BOOT_B_LEFT} -gt 0; then
setexpr BOOT_B_LEFT ${BOOT_B_LEFT} - 1
echo "Trying to boot slot B, ${BOOT_B_LEFT} attempts remaining. Loading kernel ..."
if load mmc ${devnum}:7 ${kernel_addr_r} Image; then
setenv bootargs "${bootargs_hassos} ${bootargs_b} rauc.slot=B ${cmdline}"
fi
fi
fi
done
if test -n "${bootargs}"; then
run storebootstate
else
echo "No valid slot found, resetting tries to 3"
setenv BOOT_A_LEFT 3
setenv BOOT_B_LEFT 3
run storebootstate
reset
fi
printenv bootargs
echo "Starting kernel"
booti ${kernel_addr_r} - ${fdt_addr_r}
echo "Boot failed, resetting..."
reset

View File

@@ -0,0 +1,4 @@
CONFIG_DOS_PARTITION=y
# CONFIG_EFI_PARTITION is not set
# CONFIG_USB_STORAGE is not set
CONFIG_DISPLAY_BOARDINFO=y

View File

@@ -0,0 +1 @@
console=tty0

View File

@@ -0,0 +1,18 @@
#!/bin/bash
# shellcheck disable=SC2155
function hassos_pre_image() {
local BOOT_DATA="$(path_boot_dir)"
cp "${BINARIES_DIR}/boot.scr" "${BOOT_DATA}/boot.scr"
cp "${BINARIES_DIR}"/*.dtb "${BOOT_DATA}/"
cp "${BOARD_DIR}/boot-env.txt" "${BOOT_DATA}/haos-config.txt"
cp "${BOARD_DIR}/cmdline.txt" "${BOOT_DATA}/cmdline.txt"
}
function hassos_post_image() {
convert_disk_image_xz
}

View File

@@ -0,0 +1,13 @@
image spl.img {
size = ${BOOT_SPL_SIZE}
hdimage {
partition-table-type = "none"
fill = "yes"
}
partition uboot {
offset = 32k
image = "u-boot-rockchip.bin"
}
}

View File

@@ -0,0 +1,12 @@
# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
CONFIG_THERMAL_GOV_BANG_BANG=y
CONFIG_SENSORS_GPIO_FAN=y
CONFIG_KEYBOARD_GPIO=y
CONFIG_KEYBOARD_GPIO_POLLED=y
CONFIG_MMC_SDHCI_OF_DWCMSHC=y
# CONFIG_DW_WATCHDOG is not set

View File

@@ -0,0 +1,12 @@
BOARD_ID=odroid-m1
BOARD_NAME="Hardkernel ODROID-M1"
CHASSIS=embedded
BOOTLOADER=uboot
KERNEL_FILE=Image
PARTITION_TABLE_TYPE=hybrid
BOOT_SIZE=16M
BOOT_SPL=true
BOOT_SPL_SIZE=16M
BOOT_ENV_SIZE=0x8000
SUPERVISOR_MACHINE=odroid-m1
SUPERVISOR_ARCH=aarch64

View File

@@ -0,0 +1,17 @@
partition spl {
size = ${BOOT_SPL_SIZE}
image = "spl.img"
in-partition-table = "no"
offset = 0
holes = {"(0; 17k)", "(8M; 16M)"}
}
partition uboot {
size = 8M
offset = 8M
# FIXME: hdd-image intended to use the following, but the next one
# is in the img because of the _fix_disk_spl_gpt function
# partition-type-uuid = "21686148-6449-6e6f-744e-656564454649"
partition-type-uuid = "e3c9e316-0b5c-4db8-817d-f92df00215ae"
# no image here - already contains data from spl.img
}

View File

@@ -0,0 +1,98 @@
part start ${devtype} ${devnum} hassos-bootstate mmc_env
${devtype} dev ${devnum}
setenv loadbootstate " \
echo 'loading env...'; \
${devtype} read ${ramdisk_addr_r} ${mmc_env} 0x40; \
env import -c ${ramdisk_addr_r} 0x8000;"
setenv storebootstate " \
echo 'storing env...'; \
env export -c -s 0x8000 ${ramdisk_addr_r} BOOT_ORDER BOOT_A_LEFT BOOT_B_LEFT MACHINE_ID; \
${devtype} write ${ramdisk_addr_r} ${mmc_env} 0x40;"
run loadbootstate
test -n "${BOOT_ORDER}" || setenv BOOT_ORDER "A B"
test -n "${BOOT_A_LEFT}" || setenv BOOT_A_LEFT 3
test -n "${BOOT_B_LEFT}" || setenv BOOT_B_LEFT 3
# Allows ConditionFirstBoot=
test -n "${MACHINE_ID}" || setenv BOOT_CONDITION "systemd.condition-first-boot=true"
# HassOS bootargs
setenv bootargs_hassos "zram.enabled=1 zram.num_devices=3 systemd.machine_id=${MACHINE_ID} fsck.repair=yes ${BOOT_CONDITION}"
# HassOS system A/B
setenv bootargs_a "root=PARTUUID=8d3d53e3-6d49-4c38-8349-aff6859e82fd ro rootwait"
setenv bootargs_b "root=PARTUUID=a3ec664e-32ce-4665-95ea-7ae90ce9aa20 ro rootwait"
part number ${devtype} ${devnum} hassos-boot boot_partnum
# Load environment from haos-config.txt
if test -e ${devtype} ${devnum}:${boot_partnum} haos-config.txt; then
fatload ${devtype} ${devnum}:${boot_partnum} ${ramdisk_addr_r} haos-config.txt
env import -t ${ramdisk_addr_r} ${filesize}
fi
# Load extraargs
fileenv ${devtype} ${devnum}:${boot_partnum} ${ramdisk_addr_r} cmdline.txt cmdline
# Load device tree
setenv fdtfile rk3568-odroid-m1.dtb
echo "Loading standard device tree ${fdtfile}"
fatload ${devtype} ${devnum}:${boot_partnum} ${fdt_addr_r} ${fdtfile}
fdt addr ${fdt_addr_r}
# load dt overlays
fdt resize 65536
for overlay_file in ${overlays}; do
if fatload ${devtype} ${devnum}:${boot_partnum} ${ramdisk_addr_r} overlays/${overlay_file}.dtbo; then
echo "Applying kernel provided DT overlay ${overlay_file}.dtbo"
fdt apply ${ramdisk_addr_r} || setenv overlay_error "true"
fi
done
if test "${overlay_error}" = "true"; then
echo "Error applying DT overlays, restoring original DT"
fatload ${devtype} ${devnum}:${boot_partnum} ${fdt_addr_r} ${fdtfile}
fi
setenv bootargs
for BOOT_SLOT in "${BOOT_ORDER}"; do
if test "x${bootargs}" != "x"; then
# skip remaining slots
elif test "x${BOOT_SLOT}" = "xA"; then
if test ${BOOT_A_LEFT} -gt 0; then
setexpr BOOT_A_LEFT ${BOOT_A_LEFT} - 1
echo "Trying to boot slot A, ${BOOT_A_LEFT} attempts remaining. Loading kernel ..."
part number ${devtype} ${devnum} hassos-kernel0 kernel_partnum
if load ${devtype} ${devnum}:${kernel_partnum} ${kernel_addr_r} Image; then
setenv bootargs "${bootargs_hassos} ${bootargs_a} rauc.slot=A ${cmdline}"
fi
fi
elif test "x${BOOT_SLOT}" = "xB"; then
if test ${BOOT_B_LEFT} -gt 0; then
setexpr BOOT_B_LEFT ${BOOT_B_LEFT} - 1
echo "Trying to boot slot B, ${BOOT_B_LEFT} attempts remaining. Loading kernel ..."
part number ${devtype} ${devnum} hassos-kernel1 kernel_partnum
if load ${devtype} ${devnum}:${kernel_partnum} ${kernel_addr_r} Image; then
setenv bootargs "${bootargs_hassos} ${bootargs_b} rauc.slot=B ${cmdline}"
fi
fi
fi
done
if test -n "${bootargs}"; then
run storebootstate
else
echo "No valid slot found, resetting tries to 3"
setenv BOOT_A_LEFT 3
setenv BOOT_B_LEFT 3
run storebootstate
reset
fi
echo "Starting kernel"
booti ${kernel_addr_r} - ${fdt_addr_r}
echo "Boot failed, resetting..."
reset

View File

@@ -0,0 +1,2 @@
# CONFIG_DWC_ETH_QOS is not set
# CONFIG_DWC_ETH_QOS_ROCKCHIP is not set

View File

@@ -0,0 +1 @@
console=tty0

View File

@@ -0,0 +1,18 @@
#!/bin/bash
# shellcheck disable=SC2155
function hassos_pre_image() {
local BOOT_DATA="$(path_boot_dir)"
cp "${BINARIES_DIR}/boot.scr" "${BOOT_DATA}/boot.scr"
cp "${BINARIES_DIR}"/*.dtb "${BOOT_DATA}/"
cp "${BOARD_DIR}/boot-env.txt" "${BOOT_DATA}/haos-config.txt"
cp "${BOARD_DIR}/cmdline.txt" "${BOOT_DATA}/cmdline.txt"
}
function hassos_post_image() {
convert_disk_image_xz
}

View File

@@ -0,0 +1,13 @@
image spl.img {
size = ${BOOT_SPL_SIZE}
hdimage {
partition-table-type = "none"
fill = "yes"
}
partition uboot {
offset = 32k
image = "u-boot-rockchip.bin"
}
}

Some files were not shown because too many files have changed in this diff Show More