Compare commits

..

51 Commits
13.0 ... 13.2

Author SHA1 Message Date
Jan Čermák
3f161bc7d1 Bump OS to release version 13.2 2024-10-15 13:23:17 +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
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
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
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
55 changed files with 292 additions and 121 deletions

View File

@@ -4,8 +4,6 @@ version-template: "$MAJOR.$MINOR"
categories:
- title: 'Home Assistant Operating System'
label: 'os'
- title: 'Build System'
label: 'build'
- title: 'Raspberry Pi'
label: 'board/raspberrypi'
- title: 'Home Assistant Yellow'
@@ -24,6 +22,12 @@ categories:
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

View File

@@ -83,11 +83,20 @@ jobs:
- name: Flush CloudFlare cache
run: |
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": [
"https://os-artifacts.home-assistant.io/index.html",
"https://os-artifacts.home-assistant.io/index.json"
] }'
# 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

View File

@@ -136,7 +136,7 @@ jobs:
}
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3.6.1
uses: docker/setup-buildx-action@v3.7.1
- name: Log in to the GitHub container registry
uses: docker/login-action@v3.3.0
with:
@@ -144,7 +144,7 @@ jobs:
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and Push
uses: docker/build-push-action@v6.5.0
uses: docker/build-push-action@v6.9.0
id: build_haos_builder
with:
context: .

2
.gitmodules vendored
View File

@@ -1,4 +1,4 @@
[submodule "buildroot"]
path = buildroot
url = https://github.com/home-assistant/buildroot.git
branch = 2022.02.x-haos
branch = 2024.02.x-haos

View File

@@ -10,8 +10,8 @@ ODROID-M1S can boot HAOS directly from an SD card, as it has higher priority tha
HAOS can be installed directly to the eMMC using a special boot image, to do that:
1. Download [`ODROID-M1S_EMMC2UMS.img`][1]
2. Use balenaEtcher or another tool to flash the UMS utility onto an SD card.
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.

View File

@@ -1,11 +1,9 @@
# Kernel Version
Default Kernel tree: 6.1
| Board | Version |
|-------|---------|
| Open Virtual Appliance | 6.6.44 |
| Open Virtual Appliance | 6.6.54 |
| Raspberry Pi | 6.6.31 |
| Raspberry Pi 0-W | 6.6.31 |
| Raspberry Pi 2 | 6.6.31 |
@@ -13,14 +11,14 @@ Default Kernel tree: 6.1
| Raspberry Pi 4 | 6.6.31 |
| Raspberry Pi 5 | 6.6.31 |
| Home Assistant Yellow | 6.6.31 |
| Home Assistant Green | 6.6.44 |
| Tinker Board | 6.6.44 |
| ODROID-C2 | 6.6.44 |
| ODROID-C4 | 6.6.44 |
| ODROID-M1 | 6.6.44 |
| ODROID-M1S | 6.6.44 |
| ODROID-N2 | 6.6.44 |
| ODROID-XU4 | 6.6.44 |
| Generic aarch64 | 6.6.44 |
| Generic x86-64 | 6.6.44 |
| Khadas VIM3 | 6.6.44 |
| Home Assistant Green | 6.6.54 |
| Tinker Board | 6.6.54 |
| ODROID-C2 | 6.6.54 |
| ODROID-C4 | 6.6.54 |
| ODROID-M1 | 6.6.54 |
| ODROID-M1S | 6.6.54 |
| ODROID-N2 | 6.6.54 |
| ODROID-XU4 | 6.6.54 |
| Generic aarch64 | 6.6.54 |
| Generic x86-64 | 6.6.54 |
| Khadas VIM3 | 6.6.54 |

View File

@@ -4,6 +4,8 @@ Home Assistant Operating System (formerly HassOS) is a Linux based operating sys
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.
[![Home Assistant - A project from the Open Home Foundation](https://www.openhomefoundation.org/badges/home-assistant.png)](https://www.openhomefoundation.org/)
## Features
- Lightweight and memory-efficient

View File

@@ -1 +1 @@
console=tty0
console=ttyS2,1500000n8 console=tty0

View File

@@ -0,0 +1,52 @@
From d3fb1ec2364b20025d71e2263514a71208cfb61e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jan=20=C4=8Cerm=C3=A1k?= <sairon@sairon.cz>
Date: Tue, 13 Aug 2024 17:51:29 +0200
Subject: [PATCH] arch: arm64: dts: green: Improve LED representation
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Fix color and use labels/node names according to the LEDs functionality.
Signed-off-by: Jan Čermák <sairon@sairon.cz>
Co-authored-by: Stefan Agner <stefan@agner.ch>
---
arch/arm/dts/rk3566-ha-green.dts | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/arch/arm/dts/rk3566-ha-green.dts b/arch/arm/dts/rk3566-ha-green.dts
index 68d836911e..c3adc59904 100644
--- a/arch/arm/dts/rk3566-ha-green.dts
+++ b/arch/arm/dts/rk3566-ha-green.dts
@@ -48,16 +48,18 @@
leds {
compatible = "gpio-leds";
- led_power: led-0 {
+ led_power: led-power {
+ label = "power";
gpios = <&gpio0 RK_PB6 GPIO_ACTIVE_HIGH>;
function = LED_FUNCTION_POWER;
- color = <LED_COLOR_ID_RED>;
+ color = <LED_COLOR_ID_WHITE>;
default-state = "keep";
linux,default-trigger = "default-on";
pinctrl-names = "default";
pinctrl-0 = <&led_power_pin>;
};
- led_act: led-1 {
+ led_act: led-activity {
+ label = "activity";
gpios = <&gpio0 RK_PB7 GPIO_ACTIVE_HIGH>;
function = LED_FUNCTION_ACTIVITY;
color = <LED_COLOR_ID_GREEN>;
@@ -65,7 +67,8 @@
pinctrl-names = "default";
pinctrl-0 = <&led_act_pin>;
};
- led_user: led-2 {
+ led_user: led-user {
+ label = "user";
gpios = <&gpio0 RK_PC5 GPIO_ACTIVE_HIGH>;
function = LED_FUNCTION_HEARTBEAT;
color = <LED_COLOR_ID_YELLOW>;

View File

@@ -27,6 +27,36 @@ test -n "${MACHINE_ID}" || setenv BOOT_CONDITION "systemd.condition-first-boot=t
# HassOS bootargs
setenv bootargs_hassos "zram.enabled=1 zram.num_devices=3 rootwait systemd.machine_id=${MACHINE_ID} fsck.repair=yes ${BOOT_CONDITION}"
i2c dev 0
setenv check_btn_pressed ' \
i2c read 0x20 0xf0.1 1 ${loadaddr}; \
setexpr PWRON_STS *${loadaddr} \\\& 0x80; \
test ${PWRON_STS} -eq 0x0;'
# Check if button is held for device wipe
setenv counter 0
while test ${counter} -lt 2; do
if run check_btn_pressed; then
echo "Reset button pressed for ${counter} seconds"
setexpr counter ${counter} + 1
if test ${counter} -eq 2; then
led user on
echo "Waiting for button to be released"
while run check_btn_pressed; do
sleep 0.5
done
echo "Proceeding with device wipe"
setenv bootargs_hassos "${bootargs_hassos} haos.wipe=1"
else
sleep 1
fi
else
# U-Boot has no break statement :')
setenv counter 2
fi
done
# HassOS system A/B
setenv bootargs_a "root=PARTUUID=8d3d53e3-6d49-4c38-8349-aff6859e82fd ro"
setenv bootargs_b "root=PARTUUID=a3ec664e-32ce-4665-95ea-7ae90ce9aa20 ro"

View File

@@ -0,0 +1,3 @@
CONFIG_LED=y
CONFIG_LED_GPIO=y
CONFIG_CMD_LED=y

View File

@@ -77,9 +77,9 @@ menuentry "Slot B (OK=$B_OK TRY=$B_TRY)" {
}
menuentry "Slot A (rescue shell)" {
linux (${boothd},gpt2)/bzImage root=PARTUUID=8d3d53e3-6d49-4c38-8349-aff6859e82fd $default_cmdline $cmdline rauc.slot=A systemd.unit=recovery.target
linux (${boothd},gpt2)/bzImage root=PARTUUID=8d3d53e3-6d49-4c38-8349-aff6859e82fd $default_cmdline $cmdline rauc.slot=A systemd.unit=recovery.target debug
}
menuentry "Slot B (rescue shell)" {
linux (${boothd},gpt4)/bzImage root=PARTUUID=a3ec664e-32ce-4665-95ea-7ae90ce9aa20 $default_cmdline $cmdline rauc.slot=B systemd.unit=recovery.target
linux (${boothd},gpt4)/bzImage root=PARTUUID=a3ec664e-32ce-4665-95ea-7ae90ce9aa20 $default_cmdline $cmdline rauc.slot=B systemd.unit=recovery.target debug
}

View File

@@ -23,21 +23,29 @@ test -n "${MACHINE_ID}" || setenv BOOT_CONDITION "systemd.condition-first-boot=t
# HassOS bootargs
setenv bootargs_hassos "zram.enabled=1 zram.num_devices=3 rootwait systemd.machine_id=${MACHINE_ID} cgroup_enable=memory fsck.repair=yes ${BOOT_CONDITION}"
setenv confirm_reset_handled ' \
led usr on; \
echo "Waiting for red button to be released";
while gpio input GPIO27; do sleep 0.5; done;'
# Red Button pressed?
if gpio input GPIO27; then
sleep 1
# ... and Blue Button Pressed?
if gpio input GPIO26; then
echo "Boot wipe has been pressed, deleting boot files to trigger USB boot..."
run confirm_reset_handled
fatrm ${devtype} ${devnum}:1 /start4.elf
reset
fi
# Red still pressed?
if gpio input GPIO27; then
echo "Device wipe button has been pressed, setting wipe flag..."
run confirm_reset_handled
setenv bootargs_hassos "${bootargs_hassos} haos.wipe=1"
fi
elif gpio input GPIO26; then
led usr on
ums 0 ${devtype} ${devnum}
fi

View File

@@ -1 +1,5 @@
CONFIG_CMD_USB_MASS_STORAGE=y
CONFIG_LED=y
CONFIG_LED_GPIO=y
CONFIG_CMD_LED=y

View File

@@ -16,7 +16,7 @@ BR2_ROOTFS_POST_IMAGE_SCRIPT="$(BR2_EXTERNAL_HASSOS_PATH)/scripts/post-image.sh"
BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_EXTERNAL_HASSOS_PATH)/board/arm-uefi/generic-aarch64 $(BR2_EXTERNAL_HASSOS_PATH)/board/arm-uefi/generic-aarch64/hassos-hook.sh"
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_VERSION=y
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.6.44"
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.6.54"
BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y
BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.6.y/hassos.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.6.y/docker.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.6.y/device-support.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.6.y/device-support-wireless.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.6.y/device-support-wireless-pci.config $(BR2_EXTERNAL_HASSOS_PATH)/board/arm-uefi/generic-aarch64/kernel.config"
BR2_LINUX_KERNEL_LZ4=y

View File

@@ -16,7 +16,7 @@ BR2_ROOTFS_POST_IMAGE_SCRIPT="$(BR2_EXTERNAL_HASSOS_PATH)/scripts/post-image.sh"
BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_EXTERNAL_HASSOS_PATH)/board/pc/generic-x86-64 $(BR2_EXTERNAL_HASSOS_PATH)/board/pc/generic-x86-64/hassos-hook.sh"
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_VERSION=y
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.6.44"
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.6.54"
BR2_LINUX_KERNEL_DEFCONFIG="x86_64"
BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.6.y/hassos.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.6.y/docker.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.6.y/device-support.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.6.y/device-support-wireless.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.6.y/device-support-wireless-pci.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.6.y/device-support-pci.config $(BR2_EXTERNAL_HASSOS_PATH)/board/pc/generic-x86-64/kernel.config"
BR2_LINUX_KERNEL_LZ4=y

View File

@@ -16,7 +16,7 @@ BR2_ROOTFS_POST_IMAGE_SCRIPT="$(BR2_EXTERNAL_HASSOS_PATH)/scripts/post-image.sh"
BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_EXTERNAL_HASSOS_PATH)/board/nabucasa/green $(BR2_EXTERNAL_HASSOS_PATH)/board/nabucasa/green/hassos-hook.sh"
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_VERSION=y
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.6.44"
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.6.54"
BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.6.y/kernel-arm64-rockchip.config"
BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.6.y/hassos.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.6.y/docker.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.6.y/device-support.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.6.y/device-support-wireless.config $(BR2_EXTERNAL_HASSOS_PATH)/board/nabucasa/green/kernel.config"
@@ -143,7 +143,7 @@ BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y
BR2_TARGET_UBOOT_CUSTOM_VERSION=y
BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2024.01"
BR2_TARGET_UBOOT_BOARD_DEFCONFIG="green"
BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/bootloader/uboot.config"
BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/bootloader/uboot.config $(BR2_EXTERNAL_HASSOS_PATH)/board/nabucasa/green/uboot.config"
BR2_TARGET_UBOOT_NEEDS_PYLIBFDT=y
BR2_TARGET_UBOOT_NEEDS_PYELFTOOLS=y
BR2_TARGET_UBOOT_NEEDS_ATF_BL31=y

View File

@@ -16,7 +16,7 @@ BR2_ROOTFS_POST_IMAGE_SCRIPT="$(BR2_EXTERNAL_HASSOS_PATH)/scripts/post-image.sh"
BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_EXTERNAL_HASSOS_PATH)/board/khadas/vim3 $(BR2_EXTERNAL_HASSOS_PATH)/board/khadas/vim3/hassos-hook.sh"
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_VERSION=y
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.6.44"
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.6.54"
BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_HASSOS_PATH)/board/khadas/kernel-vim.config"
BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.6.y/hassos.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.6.y/docker.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.6.y/device-support.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.6.y/device-support-wireless.config"

View File

@@ -16,7 +16,7 @@ BR2_ROOTFS_POST_IMAGE_SCRIPT="$(BR2_EXTERNAL_HASSOS_PATH)/scripts/post-image.sh"
BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_EXTERNAL_HASSOS_PATH)/board/hardkernel/odroid-c2 $(BR2_EXTERNAL_HASSOS_PATH)/board/hardkernel/odroid-c2/hassos-hook.sh"
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_VERSION=y
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.6.44"
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.6.54"
BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_HASSOS_PATH)/board/hardkernel/kernel-amlogic.config"
BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.6.y/hassos.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.6.y/docker.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.6.y/device-support.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.6.y/device-support-wireless.config"

View File

@@ -16,7 +16,7 @@ BR2_ROOTFS_POST_IMAGE_SCRIPT="$(BR2_EXTERNAL_HASSOS_PATH)/scripts/post-image.sh"
BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_EXTERNAL_HASSOS_PATH)/board/hardkernel/odroid-c4 $(BR2_EXTERNAL_HASSOS_PATH)/board/hardkernel/odroid-c4/hassos-hook.sh"
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_VERSION=y
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.6.44"
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.6.54"
BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_HASSOS_PATH)/board/hardkernel/kernel-amlogic.config"
BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.6.y/hassos.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.6.y/docker.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.6.y/device-support.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.6.y/device-support-wireless.config"

View File

@@ -16,7 +16,7 @@ BR2_ROOTFS_POST_IMAGE_SCRIPT="$(BR2_EXTERNAL_HASSOS_PATH)/scripts/post-image.sh"
BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_EXTERNAL_HASSOS_PATH)/board/hardkernel/odroid-m1 $(BR2_EXTERNAL_HASSOS_PATH)/board/hardkernel/odroid-m1/hassos-hook.sh"
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_VERSION=y
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.6.44"
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.6.54"
BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.6.y/kernel-arm64-rockchip.config"
BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.6.y/hassos.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.6.y/docker.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.6.y/device-support.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.6.y/device-support-wireless.config $(BR2_EXTERNAL_HASSOS_PATH)/board/hardkernel/odroid-m1/kernel.config"

View File

@@ -16,7 +16,7 @@ BR2_ROOTFS_POST_IMAGE_SCRIPT="$(BR2_EXTERNAL_HASSOS_PATH)/scripts/post-image.sh"
BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_EXTERNAL_HASSOS_PATH)/board/hardkernel/odroid-m1s $(BR2_EXTERNAL_HASSOS_PATH)/board/hardkernel/odroid-m1s/hassos-hook.sh"
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_VERSION=y
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.6.44"
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.6.54"
BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.6.y/kernel-arm64-rockchip.config"
BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.6.y/hassos.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.6.y/docker.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.6.y/device-support.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.6.y/device-support-wireless.config $(BR2_EXTERNAL_HASSOS_PATH)/board/hardkernel/odroid-m1s/kernel.config"

View File

@@ -16,7 +16,7 @@ BR2_ROOTFS_POST_IMAGE_SCRIPT="$(BR2_EXTERNAL_HASSOS_PATH)/scripts/post-image.sh"
BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_EXTERNAL_HASSOS_PATH)/board/hardkernel/odroid-n2 $(BR2_EXTERNAL_HASSOS_PATH)/board/hardkernel/odroid-n2/hassos-hook.sh"
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_VERSION=y
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.6.44"
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.6.54"
BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_HASSOS_PATH)/board/hardkernel/kernel-amlogic.config"
BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.6.y/hassos.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.6.y/docker.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.6.y/device-support.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.6.y/device-support-wireless.config $(BR2_EXTERNAL_HASSOS_PATH)/board/hardkernel/odroid-n2/kernel.config"

View File

@@ -17,7 +17,7 @@ BR2_ROOTFS_POST_IMAGE_SCRIPT="$(BR2_EXTERNAL_HASSOS_PATH)/scripts/post-image.sh"
BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_EXTERNAL_HASSOS_PATH)/board/hardkernel/odroid-xu4 $(BR2_EXTERNAL_HASSOS_PATH)/board/hardkernel/odroid-xu4/hassos-hook.sh"
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_VERSION=y
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.6.44"
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.6.54"
BR2_LINUX_KERNEL_DEFCONFIG="exynos"
BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.6.y/hassos.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.6.y/docker.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.6.y/device-support.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.6.y/device-support-wireless.config $(BR2_EXTERNAL_HASSOS_PATH)/board/hardkernel/odroid-xu4/kernel.config"
BR2_LINUX_KERNEL_LZ4=y

View File

@@ -16,7 +16,7 @@ BR2_ROOTFS_POST_IMAGE_SCRIPT="$(BR2_EXTERNAL_HASSOS_PATH)/scripts/post-image.sh"
BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_EXTERNAL_HASSOS_PATH)/board/pc/ova $(BR2_EXTERNAL_HASSOS_PATH)/board/pc/ova/hassos-hook.sh"
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_VERSION=y
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.6.44"
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.6.54"
BR2_LINUX_KERNEL_DEFCONFIG="x86_64"
BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.6.y/hassos.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.6.y/docker.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.6.y/device-support.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.6.y/device-support-pci.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.6.y/device-support-wireless.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.6.y/device-support-wireless-pci.config $(BR2_EXTERNAL_HASSOS_PATH)/board/pc/ova/kernel.config"
BR2_LINUX_KERNEL_LZ4=y

View File

@@ -18,7 +18,7 @@ BR2_ROOTFS_POST_IMAGE_SCRIPT="$(BR2_EXTERNAL_HASSOS_PATH)/scripts/post-image.sh"
BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_EXTERNAL_HASSOS_PATH)/board/asus/tinker $(BR2_EXTERNAL_HASSOS_PATH)/board/asus/hassos-hook.sh"
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_VERSION=y
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.6.44"
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.6.54"
BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_HASSOS_PATH)/board/asus/tinker/kernel.config"
BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.6.y/hassos.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.6.y/docker.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.6.y/device-support.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.6.y/device-support-wireless.config"

View File

@@ -43,7 +43,8 @@ CONFIG_SQUASHFS=y
CONFIG_SQUASHFS_XATTR=y
CONFIG_SQUASHFS_LZ4=y
CONFIG_BTRFS_FS=m
CONFIG_NTFS3_FS=m
CONFIG_EXFAT_FS=m
CONFIG_MD=y
CONFIG_BLK_DEV_DM=y
CONFIG_BLK_DEV_LOOP=y

View File

@@ -1,5 +1,5 @@
VERSION_MAJOR="13"
VERSION_MINOR="0"
VERSION_MINOR="2"
VERSION_SUFFIX=""
HASSOS_NAME="Home Assistant OS"

View File

@@ -22,7 +22,7 @@ container=$(docker run --privileged -e DOCKER_TLS_CERTDIR="" \
-v "${build_dir}/data/":/data \
-v "${build_dir}/data/docker/":/var/lib/docker \
-v "${build_dir}":/build \
-d docker:26.0-dind --storage-driver overlay2)
-d docker:27.2-dind --storage-driver overlay2)
docker exec "${container}" sh /build/dind-import-containers.sh

View File

@@ -1,7 +1,7 @@
From c18ab299696dbb2fc092242e271068534ce9159c Mon Sep 17 00:00:00 2001
From 6c0a2197bad3c339a638ea59b1eb36b5e449f7b8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jan=20=C4=8Cerm=C3=A1k?= <sairon@sairon.cz>
Date: Tue, 30 Jul 2024 18:27:24 +0200
Subject: [PATCH 1/1] loader/efi/linux: use legacy loader for broken Intel NM10
Subject: [PATCH] loader/efi/linux: use legacy loader for broken Intel NM10
platforms
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
@@ -23,13 +23,28 @@ that can not use the legacy loader, causing any unexpected failures.
[1] https://lists.gnu.org/archive/html/grub-devel/2024-05/msg00117.html
[2] https://lists.gnu.org/archive/html/grub-devel/2024-07/msg00009.html
----
Also AMD GX-212JC in HP t520 seems to be affected as reported in [3].
[3] https://github.com/home-assistant/operating-system/issues/3557
----
Added CPU ID for Macbook Air's Intel i5 CPU reported in [4]. This will
likely target also other i5-based systems that are not affected by the
EFI bug but it should cause no harm, as the legacy loader was used in
pre-2.12 GRUB anyway.
[4] https://github.com/home-assistant/operating-system/issues/3305#issuecomment-2360633688
Signed-off-by: Jan Čermák <sairon@sairon.cz>
---
grub-core/loader/efi/linux.c | 65 +++++++++++++++++++++++++++++++++++-
1 file changed, 64 insertions(+), 1 deletion(-)
grub-core/loader/efi/linux.c | 67 +++++++++++++++++++++++++++++++++++-
1 file changed, 66 insertions(+), 1 deletion(-)
diff --git a/grub-core/loader/efi/linux.c b/grub-core/loader/efi/linux.c
index bfbd95aee..f4fc6d25c 100644
index bfbd95a..98ac99c 100644
--- a/grub-core/loader/efi/linux.c
+++ b/grub-core/loader/efi/linux.c
@@ -24,6 +24,7 @@
@@ -40,7 +55,7 @@ index bfbd95aee..f4fc6d25c 100644
#include <grub/types.h>
#include <grub/efi/efi.h>
#include <grub/efi/fdtload.h>
@@ -452,6 +453,67 @@ grub_cmd_initrd (grub_command_t cmd __attribute__ ((unused)),
@@ -452,6 +453,69 @@ grub_cmd_initrd (grub_command_t cmd __attribute__ ((unused)),
return grub_errno;
}
@@ -89,8 +104,10 @@ index bfbd95aee..f4fc6d25c 100644
+ * negatives) or partial CPU identification (which might lead to
+ * false positives instead).
+ */
+ return (processor_id == 0xbfebfbff61060300 // D2xxx/N2xxx
+ || processor_id == 0xbfebfbff000106ca); // D525
+ return (processor_id == 0xbfebfbff00030661 // D2xxx/N2xxx
+ || processor_id == 0xbfebfbff000106ca // D525
+ || processor_id == 0x00730f01178bfbff // AMD GX-212JC (HP t520)
+ || processor_id == 0xbfebfbff000206a7); // Intel i5-2xxx (Macbook Air A1370)
+ }
+ else
+ {
@@ -108,7 +125,7 @@ index bfbd95aee..f4fc6d25c 100644
static grub_err_t
grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)),
int argc, char *argv[])
@@ -490,7 +552,8 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)),
@@ -490,7 +554,8 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)),
kernel_size = grub_file_size (file);

View File

@@ -0,0 +1,41 @@
From 13cf1bb9c5fa91762184c3b0dddea1328c2746bc Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jan=20=C4=8Cerm=C3=A1k?= <sairon@sairon.cz>
Date: Wed, 11 Sep 2024 17:25:00 +0200
Subject: [PATCH] systemd-timesyncd: delay start after network-online.target
As explained in [1], it's desired for the systemd-timesyncd to run after
the network is deemed online, otherwise the connectivity (at least on
HAOS with NetworkManager) is not operational when the NTP sync is
attempted and it fails, delaying the boot and leading to other problems.
Because it's not possible to remove dependencies of existing units using
drop-ins, patch the service template file for systemd-timesyncd unit
instead, avoiding the need for complete unit file override as in [2].
[1] https://github.com/home-assistant/operating-system/pull/2068
[2] https://github.com/home-assistant/operating-system/pull/2082
---
units/systemd-timesyncd.service.in | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/units/systemd-timesyncd.service.in b/units/systemd-timesyncd.service.in
index c606461..5870744 100644
--- a/units/systemd-timesyncd.service.in
+++ b/units/systemd-timesyncd.service.in
@@ -13,8 +13,8 @@ Documentation=man:systemd-timesyncd.service(8)
ConditionCapability=CAP_SYS_TIME
ConditionVirtualization=!container
DefaultDependencies=no
-After=systemd-sysusers.service
-Before=time-set.target sysinit.target shutdown.target
+After=systemd-sysusers.service network-online.target
+Before=time-set.target shutdown.target
Conflicts=shutdown.target
Wants=time-set.target
@@ -56,5 +56,5 @@ User=systemd-timesync
{{SERVICE_WATCHDOG}}
[Install]
-WantedBy=sysinit.target
+WantedBy=time-sync.target
Alias=dbus-org.freedesktop.timesync1.service

View File

@@ -0,0 +1,59 @@
From f42a5b49e95a8deed0b8e6f1bea6679af7e908e4 Mon Sep 17 00:00:00 2001
From: Lennart Poettering <lennart@poettering.net>
Date: Fri, 19 Apr 2024 13:25:55 +0200
Subject: [PATCH] detect-virt: detect hyperv-enlightened qemu as qemu, not as
hyperv
CPUID reporting hyperv should be taken with a grain of salt, and we
should prefer other mechanisms then.
Fixes: #28001
---
src/basic/virt.c | 20 ++++++++++++++++----
1 file changed, 16 insertions(+), 4 deletions(-)
diff --git a/src/basic/virt.c b/src/basic/virt.c
index 88357a9..89abb53 100644
--- a/src/basic/virt.c
+++ b/src/basic/virt.c
@@ -446,7 +446,7 @@ static Virtualization detect_vm_zvm(void) {
/* Returns a short identifier for the various VM implementations */
Virtualization detect_vm(void) {
static thread_local Virtualization cached_found = _VIRTUALIZATION_INVALID;
- bool other = false;
+ bool other = false, hyperv = false;
int xen_dom0 = 0;
Virtualization v, dmi;
@@ -503,7 +503,12 @@ Virtualization detect_vm(void) {
v = detect_vm_cpuid();
if (v < 0)
return v;
- if (v == VIRTUALIZATION_VM_OTHER)
+ if (v == VIRTUALIZATION_MICROSOFT)
+ /* QEMU sets the CPUID string to hyperv's, in case it provides hyperv enlightenments. Let's
+ * hence not return Microsoft here but just use the other mechanisms first to make a better
+ * decision. */
+ hyperv = true;
+ else if (v == VIRTUALIZATION_VM_OTHER)
other = true;
else if (v != VIRTUALIZATION_NONE)
goto finish;
@@ -544,8 +549,15 @@ Virtualization detect_vm(void) {
return v;
finish:
- if (v == VIRTUALIZATION_NONE && other)
- v = VIRTUALIZATION_VM_OTHER;
+ /* None of the checks above gave us a clear answer, hence let's now use fallback logic: if hyperv
+ * enlightenments are available but the VMM wasn't recognized as anything yet, it's probably
+ * Microsoft. */
+ if (v == VIRTUALIZATION_NONE) {
+ if (hyperv)
+ v = VIRTUALIZATION_MICROSOFT;
+ else if (other)
+ v = VIRTUALIZATION_VM_OTHER;
+ }
cached_found = v;
log_debug("Found VM virtualization %s", virtualization_to_string(v));

View File

@@ -1,60 +0,0 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
# systemd is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2.1 of the License, or
# (at your option) any later version.
[Unit]
Description=Network Time Synchronization
Documentation=man:systemd-timesyncd.service(8)
ConditionCapability=CAP_SYS_TIME
ConditionVirtualization=!container
DefaultDependencies=no
After=systemd-sysusers.service
Before=time-set.target shutdown.target
Conflicts=shutdown.target
Wants=time-set.target
[Service]
AmbientCapabilities=CAP_SYS_TIME
BusName=org.freedesktop.timesync1
CapabilityBoundingSet=CAP_SYS_TIME
# Turn off DNSSEC validation for hostname look-ups, since those need the
# correct time to work, but we likely won't acquire that without NTP. Let's
# break this chicken-and-egg cycle here.
Environment=SYSTEMD_NSS_RESOLVE_VALIDATE=0
ExecStart=!!/usr/lib/systemd/systemd-timesyncd
LockPersonality=yes
MemoryDenyWriteExecute=yes
NoNewPrivileges=yes
PrivateDevices=yes
PrivateTmp=yes
ProtectProc=invisible
ProtectControlGroups=yes
ProtectHome=yes
ProtectHostname=yes
ProtectKernelLogs=yes
ProtectKernelModules=yes
ProtectKernelTunables=yes
ProtectSystem=strict
Restart=always
RestartSec=0
RestrictAddressFamilies=AF_UNIX AF_INET AF_INET6
RestrictNamespaces=yes
RestrictRealtime=yes
RestrictSUIDSGID=yes
RuntimeDirectory=systemd/timesync
StateDirectory=systemd/timesync
SystemCallArchitectures=native
SystemCallErrorNumber=EPERM
SystemCallFilter=@system-service @clock
Type=notify
User=systemd-timesync
WatchdogSec=3min
[Install]
WantedBy=time-sync.target
Alias=dbus-org.freedesktop.timesync1.service

View File

@@ -1,4 +1,3 @@
labgrid==23.0.6
pytest==7.2.2
labgrid==24.0.1
pytest-dependency==0.6.0
pytest-timeout==2.3.1

View File

@@ -71,3 +71,8 @@ def test_supervisor_logs(shell):
def test_systemctl_status(shell):
output = shell.run_check("systemctl --no-pager -l status -a || true")
_LOGGER.info("%s", "\n".join(output))
@pytest.mark.dependency(depends=["test_init"])
def test_systemctl_check_no_failed(shell):
output = shell.run_check("systemctl --no-pager -l list-units --state=failed")
assert "0 loaded units listed." in output, f"Some units failed:\n{"\n".join(output)}"