Add support for Odroid M1

Hello, I had same problems with DNS as described here. I have Odroid M1 with Debian 11 and HA supervised installed. I can see with tcpdump that DNS requests and replies go through eth0 interface but on hassio interface (hassio_dns container is running on this iface) I see only DNS requests, but no response. So when I read here that when it works when you used Debian 10 and that upgrade to 11 - I tried to change iptables used by system from nft to legacy (nft are default in 11) and DNS works! Hope that helps. Petr

From what I have seen, Odroid M1 support is coming in the next OS release.

I think so too, via Add ODROID-M1 support by agners · Pull Request #2387 · home-assistant/operating-system · GitHub
Not sure though when the next release is going to be?

/edit: likely soon, HA OS v10 will have it, currently at RC3.

Now at rc4, Im kind of torn between the N1 in future and VM now… Im running HA core in unraid docker for ages, but the latest upgrade broke a lot of stuff for me like shelly integration stop working completely, and some older plugins like full screen tables for my Android terminal… so was thinking to move to HAOS proper and reconfigure everything again …

Home Assistant OS 10.0

New board support: Hardkernel ODROID-M1 (only SD and EMMC boot)

2 Likes

I would love to hear if anyone has experience of running HAOS10 on the M1!

I’m looking to move my installation of HAOS from a ‘hobby VM’ on my unraid server to it’s own dedicated appliance and the M1 looks ideal! I nearly pulled the trigger on buying a board last night but have decided and wait to hear of other people’s experiences.

(Although my wife had begrudingly tolerated the introduction of HA in to our house, i know i’d be flailed if all the automations for lights, plugs/blinds etc suddenly stopped working :slight_smile: )

I’m not going back. I’m still running my previous setup, before the support was official, so I installed Debian 10 and went from there. I have drives arriving soon for a second M1 I’ve acquired (for other reasons), which will now become my new HASS using the supported install method :slight_smile:

That is to say - even if the supported method fails or doesn’t work. Just running HA “unsupported” is a treat in itself.

If you do get around to it - I hope the supported setup is easy, alternatively, remember that the Odroid comes with a network boot option that boots from the internet. So Debian 10 & 11 are readily available from there :slight_smile:

Also just realized NVMe boot is not supported by HAOS… That’s a bummer. I’m going to see if I can’t make it work and possibly experience what it is that means it’s unsupported…

2 Likes

Oh look. My disks arrived.

I tried a really straightforward approach where I copied out the .img file from HASS to a usb device, and used the onboard petitboot to dd’ the image to the NVMe. No dice.

1 Like

Migration from Raspberry Pi4 4GB to Odroid M1 8GB ist done. :grinning:
Home Assistant OS on eMMC, Data on NVME M.2 SSD (1TB WD Blue :grinning:)
The highest effort was to update the boot loader.

I had trouble to restore the Studio Code Server Addon. SCS was not restored as well all other Addon’s below in the list. Partially restore of SCS was also not successful. I had to install the Addon manually. For all other Addon’s I was able to restore it from the Backup.
But now everything works fine. Less ennergy cunsumption than the Pi4, only 4W.
Prozessor Temperatur 42°C.
Overall i would say everythink is working a little bit smoother.

1 Like

I did same but for both nvme and sd device. After restart (before nvme status led is on and after power led is on) quickly eject sd card. For some reason it’s start booting from nvme (like from mmc?. boot.scr written to work only with mmc/sd only, as I understand)
Video example: https://youtube.com/shorts/dL1r5bQM9l0?feature=share

I can see I didn’t post what I found out. It’s my impression that HassOS is built on a bootloader called “uboot”, which seemingly doesn’t support NVMe. But I’m not sure why they would use this loader, if the loader we’re using (petitboot?) already supports all the things.

Put another way. If we use the Debian XX provided by Odroid, we can install HA Supervised on that and be all good on NVMe. I’m hoping we eventually get a HassOS image that does that… :slight_smile:

I got a reply from the HA moderator:

HAOS uses a special boot flow to fallback to the previously installed OS in case of errors (A/B scheme). This requires our own boot loader U-Boot to be started directly.

Ubuntu does not have such recovery mechanism, and I assume they provide boot scripts which Petitboot starting from the on-board SPI ROM can read directly from the NVMe.

We’ve considered that option, but it would mean a departure from our boot scheme for that particular platform, which we rather prefer not to do…

Did you restore the backup during the onboarding of the new HA OS on the odroid or did you first install an empty HA OS and ran the backup/restore function from within the settings of HA installation?

I seem to struggle with the restore of the backup (but I come from an installation on debian OS with supervised install on odroid m1.

another question; how long did the restore take (and how big was the backup file in size?)

sorry to add to an ‘old’ thread.

I am also trying to use Odroid M1 to run Home Assistant supervised. I have a Samsung 512GB NVME in the M1 but I have no luck to boot up in Debian. I am getting conflicting information whether the lates Petiboot supports booting from NVME.

I also have trouble updating the Petitboot based on this and this articlea.

These are the steps I used (or intended to)

  1. etch the Debian bootable image to SSD

  2. boot up Petiboot

  3. exit to shell

  4. enter ‘ums /dev/nvme0n1’

  5. enter udhcpc

  6. enter netboot_default

  7. enter exit

  8. select Debian netbook installer from boot list

  9. install Home Assistant as per Installing Home Assistant Supervised using Debian 12

However, once I finished installing Debian 11 , M1 started with Petitboot and not Debian

Can anyone point me to the right direction as people on this forum has done this such as

I am only able to inatall Ubuntu 22.04 but not Debian 11, not sure why

Any help is appreciated

It’s my impression that you still cannot install HAOS on the NVMe.

I just updated my install from Debian 10 to 11 though, and it went ok. I installed Debian 11 on a different machine though (also an M1) as I’ve previously had issues. So I made it work there first, and then I migrated a backup.

My main issue was that after the supervised install had run, and HA was running - it did not have internet access at all. I figured out that Debian 11 apparently comes with nftables rather than iptables, but docker insists on the latter. Once I removed nftables, all worked out. I do not know why my Debian 10 did not have nftables - because Debian 10 apparently is the first OS where nftables is default. :man_shrugging:

I cannot even get M1 to boot on Debian (tried both v10 and v11, both would not boot), but Ubuntu 22.04 LTS can boot up from NVME alone. I cannot figure out what is the difference.

I also wonder whether the pre-installed hardware (using M1) is to config to boot using 16GB microSD card or emmc to boot and the NVME for data storage.

Can anyone show me how to change the data storage from the default boot (either microSD or emmc) to NVME. Sorry for such dumb question but I am not tech savvy enough to do that

As for moving the datastorage, there should be some option in the HASS settings page - possibly under Storage - for that.

As for booting, I’ve had best chances with the Hardkernel provided OS’s. When booting into petitboot, there is a commandline shell where you can type netboot_default. This adds the network boot options from Hardkernel, which in the original menu (exit from the shell) gives you Debian 10/11 and Ubuntu 20/22. These installs will be able to both install to and boot from the NVMe disk.

I have no experience with the MMC or MicroSD options.

EDIT: I just reread your other post and saw your process. I’d make it like this:

  • Install the NVMe disk into the M1
  • Remove other disks like MicroSD/SSD/MMC
  • Boot into petitboot
  • Enter the shell and run netboot_default
  • Exit the shell and pick the OS you want
  • Install the OS onto the disk (the only disk there is), wipe any existing volumes on the disk if prompted
    • Of course, if you have data you want to preserve - don’t do this
  • Reboot - it should open up petitboot again, but leave it be for ~10s - and then it should boot the OS
    • You can change the timeout in petitboot settings

Is Odroid M1 better for Home Assistant than pi4 ?
I am on pi3 and i need something better/faster and pi4 was my way to go.
But now I am not sure.
If I buy M1 is 16gb emmc ok for OS (I will move data to ssd) or maybe M1 can boot Home assistant from nvme ssd?

Hi Dark10

I’ve been using an M1 8gb with a 512gb nvme (is overkill but was a spare for a 5-6 months now and have been very happy with it. I can;t say i need the 8gb, as it rarely goes over 2gb ram usage with a lot of devices, logging plus addons. Runs at approx 3watts. I’ve used 15gb of storage BUT 3gb of that are backups i’ve yet to tidy. I’d be cautious about running with only 16gb of data storage due to risk of filling it if you have a busy system)

I actually wanted to buy a 2nd as part of building a HA box for a friend.
As the 4gb version is currently out of stick from the main odroid seller in the UK, i actually ended up buying one of these, an intel N3050 based system, $gram/64gb storage currently reduced to £100.

I’ve just setup it up and it the thing absolutely flies along. Id never considered an intel cpu based SBC before… It is much noticeably faster when rebooting and the in the GUI but whether it is actually faster when running automations (responding to inputs etcs) is very hard to tell… Idles at 4watts, which is much better than expected.

I’m tempted to swap but the ability to move my data to a separate nvme on the Odroid M1 really appeals (it just uses the sd card for booting).

cheers

1 Like
MACHINE=odroid-m1 dpkg --force-confdef --force-confold -i homeassistant-supervised.deb