Add support for Odroid M1

I am also using M1 with SSD disk. It is best for HA. I have installed supervised HA on Debian 10 on this ODROID M1 :slight_smile:

Hi, could you explain how you did that in a step by step guide please?

Used @EddyBurnett description and got it to work.
Even taking my piā€™s backup and putting that back on the ODROID M1 installation works as a charm.

THANKS!

I ended up disabling and removing my conbee2 stick (using zigbee) and moving all those connected devices to my lama zigbee2mqtt stick as the deconz conbee2 stick is not supported and gives to much errors.

After several days ā€˜playingā€™ I can state that I have much less warnings in the log file that I had using the raspberry pi with HA.
I did not notice any remark about not supported OS/supervisor or whatsoever.
In the end Iā€™m glad that I still have access to the OS with this docker setup.

hi to everyone. are there someone of you who succeed in installing HA on ODROID m1 who are using frigate addon? how does it work? is it compatible with google coral? or does it work well even with its AI accellerator (I think itā€™s called NPU). sorry if the questions are a little bit dumb, Iā€™m not very experienced and Iā€™m thinking to substitute the RPI4 with the new board. thanks for any hint.

Bought mine Odroid M1 8GB today. Totally not aware of that it canā€™t run (yet) with the Odroid images available. Please could you look/make a Odroid M1 image for the HA?

Thanks!

2 Likes

Well dear friends I tried to follow the step by step guide from @EddyBurnett description and apart from the problem I had with the installation of Ubuntu 22.04 which did not even start, the board seemed to be going in a loop, I apparently succeeded in installing Homeassistant on the M1 with Ubuntu 20.04 and apparently with no errors ā€¦ but just to make some tests I tried to install some addons and although the procedures seemed always to complete the addons did not start and they did not even show up in the addon page (which stated that I did not have any addon installed). So whether I did some mistake ore something is still missing in the procedure, maybe some connections with the docker images, but Iā€™m not experienced enough to track those problems down. Any advise?

Many thanks

After a clean install on Odroid M1 Debian 11 following Eddy Burnettā€™s guide i get these errors in the log. Also im unable to use http://homeassistant.local:8123 i can only access through localip:8123
Also pinging google.com works from outside docker, but not from inside a container. Donā€™t know if this is related but i guess it could be the root of all evil :laughing:
Anybody knows how to solve this?

Hello,
Iā€™m stuck with the same issue for 1 month: cannot ping external domain from the homeassistant docker image (ping with the IP works).
I try a lot of things around docker DNS declaration, Apparmorā€¦without success
Same config: Odroid M1 Debian 11 following Eddy Burnettā€™s guide
If somebody found the solution, please share it :slight_smile:

I have also the same issue that reaching external services, but it seems to be a DNS problem.
@lolo31370 @thisischris can you try to go into any docker image and try this:

ping google.com
ping 8.8.8.8

the first one should fail, but the second one should succeed?
If yes, thereā€™s a DNS issue. I have no idea on how DNS works in the HA/Docker environment, so somebody else must investiage this.

For me it looks like this:

root@hass /h/user# docker exec -it homeassistant /bin/sh
/config # ping google.com
ping: bad address 'google.com'
/config # ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8): 56 data bytes
64 bytes from 8.8.8.8: seq=0 ttl=119 time=1.942 ms
64 bytes from 8.8.8.8: seq=1 ttl=119 time=1.755 ms
64 bytes from 8.8.8.8: seq=2 ttl=119 time=1.800 ms
^C
--- 8.8.8.8 ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 1.755/1.832/1.942 ms

Yes, same behavior in the docker environment: Itā€™s a DNS issue but I didnā€™t find any solutionā€¦

Me neighter, same problem still

Hi there I would like to add my experience concerning the subject in spite of by far not being an expert. In my humble opinion all the addressed problems point to the fact that in spite of the M1 being a very nice piece of hardware the software offered by hardkernel at the moment is by far not ripe to handle it properly, putting random variables in the process of installing HA supervised that in the end make it fail.

My first try was successful: I installed debian 10 from hardkernel and upgraded to debian 11 because apparently this is the HA requirement, then followed the path GitHub - home-assistant/supervised-installer: Installer for a generic Linux system and magically everything worked, even frigate. Then I had the idea to install a mopidy server alongside HA failing miserably because, I discovered then, HA takes over the use of the audio services (Pulseaudio ALSA or whatever for a reason unknown to me) rendering it impossible to handle a mopidy server. At that point having messed up quite a lot I made the mistake to start over again since it had been apparently so easy and straightforward, well since then I never succeeded again not with debian neither with ubuntu (which apparently is not among the permitted OS) and ended up having the problems described here so far.

Now the strange behaviors I noted during my endless trying hours:

  • while in DHCP the host IP jumps from one value to another in spite of having the mac address fixed on the router

  • some indication on how to set kernel parameters (apparmor, cgroup) appears not to be working always (odroid-m1:software:boot_sequence [ODROID Wiki]) on Debian I had to edit /etc/default/grub and put there those parameters

  • same problem in forcing to boot from a specific kernel at the beginning worked while now it doesnā€™t seem to work any more (sudo flash-kernel --force 4.19.219-odroid-arm64 \ reboot)

Now specifically addressing the DNS problem which obviously affects the capability of any docker requiring outside connections, I think it may have something to do with the first issue, in the end may be that during installation some values donā€™t coincide with the values after completion creating the confusion we experience ā€¦ only a thought.

So long

For your first point reg. DHCP and static reservations, it turns out there may be an extra identifier in the petitboot (or something early in the boot) that informs the DHCP server to disregard the MAC and use this new identifier instead. See discussion.

As for Debian 11, I had so many issues with networking. It worked fine in Debian 10, I installed that initially as I followed some guide (which I canā€™t find anymore) - it worked, I upgrade to Debian 11 due to me reading docs again, then it all failed miserably. I finally reinstalled Debian 10 again and am now running.

My network issues seem to be an iptables issue, where packets are lost between two rules. I could not pinpoint or fix my issue, so I ended up downgrading. The downgrade left me with the same set of iptables rules, but these workedā€¦ :man_shrugging: . See discussion.

@LordMike thank you for your reply, Iā€™ll look into your suggestion regarding the IP problem, but ā€¦ the good news: I have been able to replicate my first success and now it is all running well under debian 11! The point is as previously mentioned that the Hardkernel SW must have some bugs so after having installed HA supervised on Debian 10 (with the relative experiments concerning apparmor and cgroup) I performed the upgrade to debian 11 but modifying only the file /etc/apt/sources.list leaving alone /etc/apt/sources.list/ppa_linuxfactory_or_kr.list which, I presume, is responsible to upgrade the kernel and relative software. In this way I run Debian 11 with the old kernel and no other presumably bugged software (which by the way could be responsible for messing up with iptables). Now everything works fine but with all these ā€œglitching surfacesā€ I donā€™t know if I can trust the Odroid M1 to replace my old RPI4.

So long

Oooh - thatā€™s a good thought. Iā€™m happy with the M1, itā€™s fast, sleek, has a blue casing, and supports NVMe drives ā€¦ So Iā€™ll keep using it - although probably on Debian 10. Iā€™m not ready to adventure out in this again :smiley:

Hopefully the M1 will be fully supported sometime, by HASS, and then I can probably reinstall or upgrade at that time.

1 Like

@backtrack So if I understand correctly it could be worth a try to install debian 10, then HA, and after that upgrading to Debian 11 leaving alone the aforementioned file, then i might magically get rid of the dns problems? Letā€™s try! Could you elaborate on: ā€˜I performed the upgrade to debian 11 but modifying only the file /etc/apt/sources.list leaving alone /etc/apt/sources.list/ppa_linuxfactory_or_kr.listā€™
Iā€™m quite the newbie to Linux, what commands to run the update and leaving alone the file? Thanks in advance!

@thisischris well thatā€™s what I did after spending a big amount of time only because I remembered to have succeeded ā€œby chanceā€ on the first try not remembering exactly what I did. Anyway apart from the path followed from anyone else (GitHub - home-assistant/supervised-installer: Installer for a generic Linux system ā€¦ etc) to install HA on debian 10 I followed this tutorial How to Upgrade from Debian 10 to Debian 11 to upgrade ā€¦ but ā€¦ in the folder /etc/apt you will find the file sources.list (which has to be modified as instructed in the tutorial) and also a directory called sources.list.d which contains HARDKERNEL specific depository (ppa_linuxfactory_or_kr.list) to upgrade the kernel and, possibly, some other code which in the end is probably the cause of the DNS resolution problem and possibly of even other things; well I did not modify this file. In this way the machine runs Debian 11 with the previous kernel, with no errors in the supervisor log. Good luck :slight_smile:

1 Like

Edit: tagging @lolo31370 and @hellow554 since they reported similar dns issues. Your dns problems are likely resolved by starting with a fresh Debian 10 install and (optionally) manually upgrading to 11 as described by backtrack above.

@backtrack thank you so much! I tried so many things over the past 3 months but couldnt find the solution to the dns problem. Never came to my mind to just downgrade to Debian 10. This fixed the dns problems and containers unable to connect to the outside world! Now for the last part, manually upgrading to Debian 11 using the aforementioned tutorial iā€™m stuck with 404 errors on the urlā€™s in the sources.list (sorry for dutch, Fout means Error and mislukt = failed :slight_smile: )
Errors after sudo apt update:
ā€œFout:15 Index of /debian bullseye-updates/main arm64 Packages
404 Not Found [IP: 2600:3c01:1::607e:6379 80]
Fout:6 Index of /debian bullseye/main arm64 Packages
404 Not Found [IP: 2600:3c01:1::607e:6379 80]
Fout:11 Index of /debian-security bullseye-security/updates/main arm64 Packages
404 Not Found [IP: 2600:3c01:1::607e:6379 80]
249 kB opgehaald in 4s (59,5 kB/s)
Pakketlijsten worden ingelezenā€¦ Klaar
E: Ophalen van http://mirrors.linode.com/debian/dists/bullseye/main/binary-arm64/Packages is mislukt 404 Not Found [IP: 2600:3c01:1::607e:6379 80]
E: Ophalen van http://mirrors.linode.com/debian-security/dists/bullseye-security/updates/main/binary-arm64/Packages is mislukt 404 Not Found [IP: 2600:3c01:1::607e:6379 80]
E: Ophalen van http://mirrors.linode.com/debian/dists/bullseye-updates/main/binary-arm64/Packages is mislukt 404 Not Found [IP: 2600:3c01:1::607e:6379 80]
E: Ophalen van sommige indexbestanden is mislukt. Deze zijn of genegeerd, of er zijn oudere versies van gebruikt.ā€

My sources.list (copy pasted from the tutorial you provided):

Not sure why it runs into the 404 errors. You got any idea?

@thisischris well first of all Iā€™m not very experienced as well to be able to understand why those IP are not reachable, but what I see that seems very unusual is that those seem to be IPv6 IP and not IPv4 (I may be wrong). But most important is that I think there has been a misunderstanding: I never told to downgrade from Debian 11 to Debian 10 I meant to start with a fresh Debian 10 install and then proceed as I described. Anyway the content of my /etc/apt/sources.list is as follows:

deb Index of /debian bullseye main
deb-src Index of /debian bullseye main

deb Index of /debian-security bullseye-security main
deb-src Index of /debian-security bullseye-security main

deb Index of /debian bullseye-updates main
deb-src Index of /debian bullseye-updates main

(I donā€™t know how to attach a screenshot and I see that the system translate the web addresses in blue so please to decipher just copy the link content and substitute it in the string)

I have nowhere mirrors.linode.com. Hopefully I will have been able to help you through.

So long

1 Like

A guide to a supervised install

This guide describes how I installed home assistant, on top of Debian 11 for the Odroid M1. I used steps described by others, and altered the sequence of steps to take, to get a supervised homeassistant install on the M1, that runs in ā€˜supportedā€™ mode.

I hope this helps you. all the best!

Step by step installation

installing Debian 10

To get this to work you need to first install debian 10 first unfortunately, since the M1 default debian 11 installation is not stable enough yet in my experience; the default debian 11 having DNS issues that prevented proper operation of HomeAssistant.

configure eth0 in de boot options
exit petitboot and enter on the command line:

udhcpc
netboot_default
exit

You should now see preselectable installation options.
Select the Debian 10 option and check the log (press l)
Await the boot process of Debian 10 installer.
Install ubuntu server with ssh server. And continue with the following:

Add the user to the sudo group:

su -
usermod -aG sudo <your username>
exit

log out and log in again to make sure you have sudo privileges

sudo apt update && sudo apt upgrade

installing home assistant supervised

sudo -i
Step 1: Install the following dependencies with this command:
apt-get install \
apparmor \
jq \
wget \
curl \
udisks2 \
libglib2.0-bin \
network-manager \
dbus \
lsb-release \
systemd-journal-remote -y

Remove modem manager

sudo systemctl disable ModemManager
sudo apt-get purge modemmanager

Install AppArmor:

sudo apt update && sudo apt -y install apparmor

Add AppArmor and cgroup as Linux kernel boot parameter (else HA wil give a warning about it):
Add the following kernel parameters to the /etc/default/grub file:
systemd.unified_cgroup_hierarchy=false apparmor=1 security=apparmor
And commit the changes to the boot

sudo update-grub

Reboot and find out if AppArmor is enabled (returns Y if true):

cat /sys/module/apparmor/parameters/enabled
Step 2: Install Docker-CE with the following command:
sudo -i
curl -fsSL get.docker.com | sh
Step 2b: Upgrade to Debian 11

To completely update the system issue the following command as root or with the ā€˜sudoā€˜ utility:

sudo apt update
sudo apt upgrade
sudo apt full-upgrade
sudo apt --purge autoremove

Once updates finish, you need to reboot the system to apply the kernel and other updates:

sudo systemctl reboot

Now it is time to do is prepare the system to look at the new repositories for ā€˜Bullseyeā€˜. Assuming a standard /etc/apt/sources.list file.

First, make sure to backup sources.list file and then do changes as shown.

sudo cp -v /etc/apt/sources.list /root/
sudo nano /etc/apt/sources.list

image

The next step now is to refresh the list of packages available for installation.

sudo apt update

Once the utilities have updated the list of packages, it is time to start the upgrade from Debian 10 to Debian 11 process.

sudo apt full-upgrade

As with the fresh Debian 11 install, it is suggested that the user let the system run the upgrade and periodically check in on it as this process will take some time. When it finishes, simply reboot the machine and enjoy Debian 11 in all of its wonder!.

sudo systemctl reboot

After reboot, make sure to verify the upgrade.

uname -r
lsb_release -a

Continue installing supervised home assistant

sudo -i

Step 3: Install the OS-Agent:

Download the latest Debian package from OS Agent GitHub release page at:

https://github.com/home-assistant/os-agent/releases/latest

wget <url>/os-agent_x.x.x_linux_aarch64.deb

(in my case:)

wget https://github.com/home-assistant/os-agent/releases/download/1.4.1/os-agent_1.4.1_linux_aarch64.deb

Next, install (or update) the downloaded Debian package using:

sudo dpkg -i os-agent_x.x.x_linux_aarch64.deb

Note: Replace the deb file in the above example with the file you have downloaded from the releases page.

You can test if the installation was successful by running:

gdbus introspect --system --dest io.hass.os --object-path /io/hass/os

This should not return an error. If you get an object introspection with interface etc. OS Agent is working as expected.

You might need to install libglib2.0-bin to get the gdbus command.

Step 4: Install the Home Assistant Supervised Debian Package:

Execute step 4 (install homeassistant-supervised.deb) of the HA github tutorial and select ODROID N2 and reboot after that (give it some time before the reboot).
After the reboot just wait for it and then access HA via the url. (Port 8123)

wget https://github.com/home-assistant/supervised-installer/releases/latest/download/homeassistant-supervised.deb
dpkg -i homeassistant-supervised.deb
9 Likes