Good stuff. I was on a similar version. 5.something. Once I got into the UI I had to do 3 or 4 consecutive OS updates to get to current. I thought I had kept it fairly well updated … apparently not!
Good morning. Same issue on rpi 4. No custom docker or os, everything is stock home assistant.
However I don’t have a normal shell on console to do apt-update. How do I break out? I logged in with ‘root’ and no pw.
Right so it’s not just debian. Supervisor has deep dependencies on the Host OS so even small differences far under the hood cause problems for it. This is why the ADR is very clear on this:
Supported Operating System, System dependencies and versions
- …
- Debian Linux Debian 11 aka Bullseye (no derivatives)
The only supported host OS for a supervised install is vanilla Debian. Not armbian, not ubuntu, not Linux Mint (as I saw earlier), Debian only. You’re welcome to run others as it is your system. But there will be no testing done on other OS’s prior to release and issues are only accepted if reproduced on a supported system.
This highlights the continued need to disable auto updates for Supervisor. It should notify for an update, and then allow to SKIP just like HA core and all other addons.
I understand that the developers are worried about users disabling updates, then somehow forgetting, and then complaining when something breaks. But having an unsolicited supervisor update break the system is much, much worse.
Many of us require stable systems that don’t update anything. Only security patches after a changelog review. And many of us run Home Assistant completely offline with no cloud integrations. It would be nice if Supervisor would allow this and not throw errors every time it can’t get to github or try to babysit passwords with HIBP.
An offline Home Assistant should be stable and not need updates every few weeks for changes that aren’t even relevant. I want to review every update for security patches and/or relevant integrations/functions,… and skip if they aren’t relevant.
If something breaks eventually, I will remember that I’m not on the latest version and won’t complain to the community until updating everything.
It’s not that simple. The problem is supervisor manages all the other addons and core. Lets say for example a new config option was added and then an addon updated to use it. Or one of supervisor’s APIs was modified and then the CLI was updated to accomodate that change (since that happens every time). Or an addon (since they communicate directly with supervisor).
It’s being considered but the way it would work is supervisor would have to freeze the entire system while it was out of date. No updates could be installed for any components until supervisor was updated first to ensure that update works correctly.
That would still give control over when supervisor updates so it’s still a worthwhile change. But managing its updates like any other component in the system (skipping updates, rolling back to prior versions, leaving it out of date while updating other things, etc.) is very unlikely to happen.
That’s fair. Supervisor is above all other addons, so I get that it should get updated as a prerequisite for updating subordinate components/addons. Should be as simple as greying out the addon update options with a warning that Supervisor is not up-to-date.
It is just important that a stable system can be frozen completely to remain stable.
I get update notifications every few weeks for HA core and updates for addons get updates often too.
When I check the changelogs, usually there is no reason to update. It becomes a game of “update for the sake of keeping up with other updates”.
I don’t likely need any “new config option”. If my Home Assistant is working as is, it becomes more likely that an update will break something, than offer any benefit.
Can the HA team point to the exact debian 11 arm distro download they support along with the accepted arm hardware platforms?
Based on the comment I don’t believe there is any straight arm based Debian 11 that will run HA. In this thread it’s pointed out that you need to modify kernel parameters changing cgroup v2 (The default) to cgroup v1 in order for HA to work on any install of Debian 11. Thus a change is required. I run what I view as straight debian, as no debian packages are modified to make it work, on the odroid N2+. It does required a kernel build and kernel parameter configuration. In addition I have to set the interrupts for mmc, usb and eth0 to insure the interrupts for each of these hardware components are handled on one processor. This is inline with what Debian 11 would call a Debian 11 install. While armbian does a few more hardware specific modifications they utilize the standard Debian arm packages.
The best platform for a standalone HA controller install is the odroid N2+. I know a lot of people run on the raspberry Pi 4, but it’s under powered compared to the odroid N2+.
I previously posted these instruction for loading what I view to be a valid debian 11 build for the odroid N2+. Supervisor also reports it as supported. With a couple of configuration tweaks you can also build a raspberry Pi4 based system.
I would really love it if the HA team point to the exact debian 11 arm distro download they support along with the accepted arm hardware platforms?
Thanks for all the great work.
Do you use the odroid N2+ for anything else but HA?
I do have a few scripts that I run on it to enable HA control/integration of other function such as my cellular backup, GPIO integration of wired door/window contact sensors and Cat feeder integration. It’s a straight Debian 11 build so you could run whatever you like on it.
This highlight people need to run supported installation methods; as set out by the requirements and keep their systems up to date. This didn’t show up in tests either, probably because everyone who did tests (and the beta channel) did have their systems in check.
If you want that level of control over your system, we suggest using a different installation method. For example, use the Home Assistant Container method instead.
-frenck
I guess the official response is still, “user’s fault for not adhering to the fine print (architecture/adr/0014-home-assistant-supervised.md at 73be016a4c933adc649a7b257da1aa2f1a070744 · home-assistant/architecture · GitHub)”.
“This method is considered advanced and should only be used if one is an expert in managing a Linux operating system, Docker and networking.”
I mean I haven’t tried it on an odroid myself but Debian has a whole guide for arm64 no?
Just as an aside, all of this is also unsupported in a supervised install. Well actually technically some of them aren’t but the way you’re describing it is.
From the published requirements for a supported supervised install:
- The operating system is dedicated to running Home Assistant Supervised.
- All system dependencies are installed according to the manual.
- No additional software, outside of the Home Assistant ecosystem, is installed.
- Docker needs to be correctly configured to use overlayfs2 storage, journald as the logging driver, and cgroup v1.
- NetworkManager is installed and enabled in systemd.
You’re describing how to do tasks that requires changing things and installing additional software on the host outside of Supervisor. That breaks the one I bolded. Supervisor may not have an actual check for the specific thing you’re doing yet because it hasn’t broken anything yet. But your system is unsupported according to the ADR.
Of course not everything you’re describing has to be unsupported:
There’s a bunch of HACS integrations for GPIO integration. If you install and use one of those then that is supported. But if you muck around in the host OS to get this working then its not
The Let’s Encrypt add-on in the official addon repo supports generating wildcard certificates if you can prove ownership by either HTTP or DNS challenge (with more challenge options seemingly added regularly). If you use that then it is supported. If you install certbot and setup a cron job on the host then its not.
As with before nothing stops you from doing these things. If its all working for you and you prefer it that way then by all means go for it. I just want to note that there seems to be a misunderstanding about what constitutes a supported supervised install. It’s really not “HAOS but with Host Access!” Host access for anything other then keeping the dependencies of HA up to date most likely puts your system in unsupported territory.
That’s why if you want to run additional software on the system alongside HA I would suggest using a VM approach rather then a supervised install personally. Put HAOS in a VM and let it operate in its box. Then do what you want in other VMs or on the host OS outside it.
The ADR also says,
In case any abnormality is detected that prevents Home Assistant from functioning, the Home Assistant Supervisor will report this to the user and block updates to prevent installations from breaking.
So Supervisor still fails in it’s checks.
It’s true. It’s rather difficult to check for every possible piece of additional software that could be installed. Checks have been added for things that have broken supervisor. Checks have not been added for things that has yet to break it.
A lot of this stuff operates in a sort of gray area. Take installing certbot on the host OS as a simple example. Technically that makes the system unsupported. But as supervisor exists nothing breaks. So it has no real impact here. The checks all pass, any issue submitted by that user would say supported and its unlikely to come up because its not the cause of the issue. So its irrelevant.
Unless someday certbot starts depending on a version of a package that Supervisor also depends on and requires a different version of it. Now suddenly that is a problem, systems break and issues are reported. And it will either fail a check or a check will be added once the root cause is determined.
Is this a likely scenario? Probably not. You could probably have certbot installed for all time and no one would be wiser about it. But its also why its safer to simply put HA in its own box and let it manage its own dependencies without worrying about conflicts
It is solved in 2022.07.0, it does a check for the missing CgroupVersion. Bugs happen…
You could easily roll back your Supervisor with docker tag
command, if you have access your OS, or your HA Core container through the SSH addon.
You got to love it when a stable repo has later versions than the edge one.
I mean I haven’t tried it on an odroid myself but Debian has a whole guide for arm64 no?
If Debian 11 worked out of the box on arm boards in general there would be no reason for armbian. But arm board (arm64) still are not x86. I got multiple Debian 11 distros, even one straight from the vendor forum, to load and run a couple of days, . They all crashed at some point. The distro I pointed out is the only distro I know of that works on the odroid N2+.
The next question will be, that the new release of Supervisor, which will require mandatory Docker 20.10.0 as minimum, will it stop updating due to a Docker version of 19.X?
I understand frenck’s point. I just think that even advanced/expert users could use a little leeway here. Not auto-updating in the middle of night, allowing to skip an update if there is a breaking change, give users a window of time to ensure the system is in a proper state.
My system was only down for a few hours while I searched the forums, but this is entirely avoidable with some basic considerations that have been requested for years. If devs could meet us half way, we can better meet those requirements.
In the previous release I had notifications of both core and supervisor having an update available. I’m wondering if maybe they’ve changed things so that supervisor doesn’t auto update any more? The auto update is bad when you use HA for our home security system. Nothing worse than being out of town only to have HA die on you because of auto install.
Supervisor fails after auto-update to 2022.07.0 many times… now it event cant start on 2022.06.2.
I dont know whats wrong Docker updated to latest version.
[21:05:37] INFO: Setup udev backend inside container
[21:05:37] INFO: Update udev information
cont-init: info: /etc/cont-init.d/udev.sh exited 0
s6-rc: info: service legacy-cont-init successfully started
s6-rc: info: service legacy-services: starting
services-up: info: copying legacy longrun supervisor (no readiness notification)
services-up: info: copying legacy longrun watchdog (no readiness notification)
s6-rc: info: service legacy-services successfully started
[21:05:37] INFO: Starting local supervisor watchdog...
22-07-07 21:05:39 INFO (MainThread) [supervisor.bootstrap] Use the old homeassistant repository for machine extraction
22-07-07 21:05:39 INFO (MainThread) [__main__] Initializing Supervisor setup
22-07-07 21:05:39 INFO (MainThread) [supervisor.bootstrap] Initializing Supervisor Sentry
22-07-07 23:05:39 WARNING (MainThread) [supervisor.bootstrap] Missing SUPERVISOR_MACHINE environment variable. Fallback to deprecated extraction!
22-07-07 23:05:39 INFO (MainThread) [supervisor.bootstrap] Seting up coresys for machine: qemux86-64
22-07-07 23:05:39 INFO (SyncWorker_0) [supervisor.docker.supervisor] Attaching to Supervisor homeassistant/amd64-hassio-supervisor with version 2022.06.2
22-07-07 23:05:39 INFO (MainThread) [supervisor.resolution.evaluate] Starting system evaluation with state CoreState.INITIALIZE
22-07-07 23:05:39 INFO (MainThread) [supervisor.resolution.evaluate] System evaluation complete
22-07-07 23:05:39 INFO (MainThread) [__main__] Setting up Supervisor
22-07-07 23:05:39 INFO (MainThread) [supervisor.api] Starting API on 172.30.32.2
22-07-07 23:05:39 INFO (MainThread) [supervisor.hardware.monitor] Started Supervisor hardware monitor
22-07-07 23:05:39 INFO (MainThread) [supervisor.dbus.manager] Load dbus interface io.hass.os
22-07-07 23:05:39 WARNING (MainThread) [supervisor.dbus.manager] Can't load dbus interface io.hass.os: The name io.hass.os was not provided by any .service files
22-07-07 23:05:39 INFO (MainThread) [supervisor.dbus.manager] Load dbus interface org.freedesktop.systemd1
22-07-07 23:05:39 INFO (MainThread) [supervisor.dbus.manager] Load dbus interface org.freedesktop.login1
22-07-07 23:05:39 INFO (MainThread) [supervisor.dbus.manager] Load dbus interface org.freedesktop.hostname1
22-07-07 23:05:40 INFO (MainThread) [supervisor.dbus.manager] Load dbus interface org.freedesktop.timedate1
22-07-07 23:05:40 INFO (MainThread) [supervisor.dbus.manager] Load dbus interface org.freedesktop.NetworkManager
22-07-07 23:05:40 INFO (MainThread) [supervisor.dbus.manager] Load dbus interface de.pengutronix.rauc
22-07-07 23:05:40 WARNING (MainThread) [supervisor.dbus.manager] Can't load dbus interface de.pengutronix.rauc: The name de.pengutronix.rauc was not provided by any .service files
22-07-07 23:05:40 INFO (MainThread) [supervisor.dbus.manager] Load dbus interface org.freedesktop.resolve1
22-07-07 23:05:40 INFO (MainThread) [supervisor.host.info] Updating local host information
22-07-07 23:05:40 INFO (MainThread) [supervisor.host.services] Updating service information
22-07-07 23:05:40 INFO (MainThread) [supervisor.host.sound] Updating PulseAudio information
22-07-07 23:05:40 INFO (MainThread) [supervisor.host.manager] Host information reload completed
22-07-07 23:05:40 INFO (MainThread) [supervisor.host.network] Updating local network information
22-07-07 23:05:40 WARNING (MainThread) [supervisor.host.network] Requested to update interface enp3s0 which does not exist or is disabled.
22-07-07 23:05:40 INFO (MainThread) [supervisor.host.apparmor] Loading AppArmor Profiles: {'hassio-supervisor'}
22-07-07 23:05:40 WARNING (MainThread) [supervisor.host.apparmor] AppArmor is not enabled on host
22-07-07 23:05:40 INFO (SyncWorker_0) [supervisor.docker.interface] Attaching to ghcr.io/home-assistant/amd64-hassio-cli with version 2022.06.0
22-07-07 23:05:40 INFO (MainThread) [supervisor.plugins.cli] Starting CLI plugin
22-07-07 23:05:40 INFO (SyncWorker_0) [supervisor.docker.interface] Cleaning hassio_cli application
s6-rc: info: service legacy-services: stopping
[21:05:41] INFO: Watchdog restart after closing
s6-svwait: fatal: supervisor died
s6-rc: info: service legacy-services successfully stopped
s6-rc: info: service legacy-cont-init: stopping
[21:05:41] INFO: Supervisor restart after closing
s6-rc: info: service legacy-cont-init successfully stopped
s6-rc: info: service fix-attrs: stopping
s6-rc: info: service fix-attrs successfully stopped
s6-rc: info: service s6rc-oneshot-runner: stopping
s6-rc: info: service s6rc-oneshot-runner successfully stopped