Expected support for Home Assistant OS on the Raspberry Pi 5

Thanks for that Rolzzz. I used VNC to access the pi and imager and have imaged the SSD with HAOS. It still won’t boot. I have just imaged the SSD with a standard Pi5 64 bit OS and that works OK. WIll continue to try

Thanks Jan,

SO far I have tried booting from the SD card into the std Pi OS and then isntalling the 64 bit OS onto the SSD. Then Boot from SSD OK. Change /boot/config.txt to support pci3. Tried formatting the SD card for HAOS using pi imager and reboot and the system hangs. Tried the reverse. Booting from the SD card into the 64 bit Pi OS then installing HAOS on the SSD using the pi imager. Reboot to SSD and the system hangs. I am using a new 4Gb pi 5 and I am not sure there is much more I can do?

When we boot from SD card and can access the SSD, then that proves the correct settings in config.txt. Ypu can also have a look at the output of dmesg, to see if there are any errors in the logs.
When we flash an OS and remove the SD card, then the previous settings from config.txt do no longer apply, because config.txt was on the SD card. So we need to patch the config.txt on the SSD instead.
Any how, the SSD needs to be recognized as the system still should be able to access config.txt. If the disk is not accessible to load config.txt you might need to boot from SD card. You can also use the NMVE SDD as data disk, wen using Hass OS booted from SD card.

To access and update config.txt on the SSD from Raspberry PI OS on an SSD with the Home Assistant OS image installed, as root I you could try to mount the boot partition with:

~# mkdir boot
~# mount -t vfat /dev/nvme0n1p1 ~/boot
~# cd boot
~# ls

From here you can edit config.txt with your favorite editor.

It may be that your disk has a different name, though, but this worked for me.

p.s. You can install gparted to see the partions of your disk.

I think what is worrying me is that I can’t get either an SD or an SSD build to run. I have built loads of other Pi 3’s and this is my first Pi5. I have tried HAOS 11.5 and 12 on both the SD and the SSD. They all stop with the amber light on the Ethernet port and the green system led on. I have ordered an HDMI cable to see if that sheds any light. I can boot the Pi5 64 bit OS on both SD and SSD, but not HAOS.

best investment I made was the hdmi for the Pi… helped so much with seeing what the hell was going on when it was not working…

1 Like

Hello,
Any update? i don’t see anything new on the github post and i really love this project

3 Likes

I’ve been running a Pi5 with a Patriot P310 240GB using the Pimoroni NVME base for a week or so now - and it’s been stable. I restored from a 32bit Pi4 install and went through all OK - I flashed the NVME drive using Raspberry Pi Imager and the HA preview image. Seems very stable and upgraded to 12 last night also.

For those of you having problems booting from your nvme disk, please do not forget the numerous incompatibility problems the pi5 has with nvme’s.
I did experience this myself until I found the right brand.
It mainly has to do with the controller used.
For instance I tried a Transcend drive that initialy seemed to boot and work well but ultimately corrupted everything due to read errors. (visibles only in the hdmi console)

I’m finally using a Patriot P310 480GB disk on my Geekworm 1001 hat and this combination works perfectly.
It boots instantly and stay completely cold at anytime.
I initially chose the P310 for its extremely low consumption which is very important with the Pi5 and it appears to have been a very good match. Sure, this disk is old and not very performant but the performance is ultimately capped by the limited bandwidth of the Pi5 PCIe gen3 X1 interface so it’s completely useless to choose anything better than this P310 series anyway.

2 Likes

Is there more information anywhere on the most compatible NVME’s?

The drive compatibility section of NVMe Base for Raspberry Pi 5 - NVMe Base lists;
AData Legend 700
AData Legend 800
AData XPG SX8200 Pro
Axe Memory Generic Drive
Crucial P2 M.2
Crucial P3 M.2
Crucial P3 Plus M.2
Inland PCIe NVMe SSD
Kingston KC3000
Kioxia Exceria NVMe SSD
Kioxia Exceria G2 NVMe SSD
Lexar NM620
Lexar NM710
Netac NV2000 NVMe SSD
Netac NV3000 NVMe SSD
Origin Inception TLC830 Pro NVMe
Patriot P310
PNY CS1030
Sabrent Rocket 4.0
Sabrent Rocket Nano
Samsung 980
Samsung 980 Pro (500GB/1TB)
Team MP33
Western Digital Black SN750 SE (Phison Controller)

As all being tested working with that NVME hat.

Dear friends, I don’t know if this is the right place in the forum, sorry.

The beginnings of the pi 5 brought this problem, if i power off my rpi5 9 minuts and after i power on, i can see the following message in the log (near of the end of the log): contacted time server xxx.xxx.xxx.xxx in this moment the raspi5 time change from old time to the new time. I can see in the log a difference of 9 minuts (the time the raspberry was off).

Home assistant container starts before time server connection. This causes all home assistant automations to trigger with a 9 minute delay even though the time is correct in home assistant. On my previous raspberry pi 4 I did not have this problem, any ideas or solutions apart from delaying the start of home assistant? thanks in advance. a cordial greeting.

Fixed it! I found some errors with the SSD and had to remove it from the pi, connect to my Mac and initialise it. Then used Pi imager to flash the SSD and put it back in the Pi. As for the SD cards, I think I must have some bad ones.

2 Likes

My rpi5 runs fine with the nvme ssd, but I see some cma_alloc errors in dmesg that I cannot place:

[    0.514198] nvme nvme0: Shutdown timeout set to 8 seconds
[    0.516601] nvme nvme0: allocated 64 MiB host memory buffer.
[    0.519481] cma: cma_alloc: linux,cma: alloc failed, req-size: 2 pages, ret: -12
[    0.519494] cma: cma_alloc: linux,cma: alloc failed, req-size: 8 pages, ret: -12
[    0.519506] cma: cma_alloc: linux,cma: alloc failed, req-size: 2 pages, ret: -12
[    0.519513] cma: cma_alloc: linux,cma: alloc failed, req-size: 8 pages, ret: -12
[    0.519523] cma: cma_alloc: linux,cma: alloc failed, req-size: 2 pages, ret: -12
[    0.519530] cma: cma_alloc: linux,cma: alloc failed, req-size: 8 pages, ret: -12
[    0.519539] cma: cma_alloc: linux,cma: alloc failed, req-size: 2 pages, ret: -12
[    0.519546] cma: cma_alloc: linux,cma: alloc failed, req-size: 8 pages, ret: -12
[    0.519735] nvme nvme0: 4/0/0 default/read/poll queues
[    0.525784] nvme nvme0: Ignoring bogus Namespace Identifiers
[    0.531980]  nvme0n1: p1 p2 p3 p4 p5 p6 p7 p8
[    0.519735] nvme nvme0: 4/0/0 default/read/poll queues
[    0.525784] nvme nvme0: Ignoring bogus Namespace Identifiers
[    0.531980]  nvme0n1: p1 p2 p3 p4 p5 p6 p7 p8
[    0.619473] brcm-pcie 1000120000.pcie: link up, 5.0 GT/s PCIe x4 (!SSC)
[    0.619497] pci 0001:01:00.0: [1de4:0001] type 00 class 0x020000
[    0.619514] pci 0001:01:00.0: reg 0x10: [mem 0xffffc000-0xffffffff]
[    0.619524] pci 0001:01:00.0: reg 0x14: [mem 0xffc00000-0xffffffff]
[    0.619533] pci 0001:01:00.0: reg 0x18: [mem 0xffff0000-0xffffffff]
[    0.619605] pci 0001:01:00.0: supports D1
[    0.619609] pci 0001:01:00.0: PME# supported from D0 D1 D3hot D3cold
[    0.631479] pci_bus 0001:01: busn_res: [bus 01-ff] end is updated to 01
[    0.631491] pci 0001:00:00.0: BAR 8: assigned [mem 0x1f00000000-0x1f005fffff]
[    0.631497] pci 0001:01:00.0: BAR 1: assigned [mem 0x1f00000000-0x1f003fffff]
[    0.631504] pci 0001:01:00.0: BAR 2: assigned [mem 0x1f00400000-0x1f0040ffff]
[    0.631511] pci 0001:01:00.0: BAR 0: assigned [mem 0x1f00410000-0x1f00413fff]
[    0.631518] pci 0001:00:00.0: PCI bridge to [bus 01]
[    0.631522] pci 0001:00:00.0:   bridge window [mem 0x1f00000000-0x1f005fffff]
[    0.631528] pci 0001:00:00.0: Max Payload Size set to  256/ 512 (was  128), Max Read Rq  512
[    0.631539] pci 0001:01:00.0: Max Payload Size set to  256/ 256 (was  128), Max Read Rq  512
[    0.631598] pcieport 0001:00:00.0: enabling device (0000 -> 0002)
[    0.631631] pcieport 0001:00:00.0: PME: Signaling with IRQ 42
[    0.631684] pcieport 0001:00:00.0: AER: enabled with IRQ 42

With the updated config.txt I have no error (time out or Rollover errors), which I have without adjustments.

# Enable the PCIe External connector.
dtparam=pciex1
# This line is an alias for above (you can use either/or to enable the port).
dtparam=nvme
dtparam=pciex1_gen=3

Found a solution to get rid of the cma_alloc errors in dmesg. It seemed I needed to increase the CMA allocation.

I ended up with the following extra lines in config.txt:

dtparam=pciex1
dtparam=nvme
dtparam=pciex1_gen=3
dtoverlay=cma,cma-96

All the pci related errors are gone now.

1 Like

Thank you for sharing this. I have a very similar NVME SSD on order with the same Geekworm x1003 m.2 hat.

Good afternoon, for those who are interested, I have discovered a way how we can completely eliminate the error “PCIe Bus Error: severity=Corrected” in the raspberry pi 5 log without having to add “pcie_aspm=off” in cmdline.txt. So far in 70 boots I have achieved 100% success with my hardware. I’m doing more shutdowns and restarts before publishing the temporary solution that works for me. I will contact you soon if I achieve 100% success, I need to do more tests. Thank you. Kind regards

1 Like

Adding pcie_aspm=off did not solve everyting for me, I needed to do some more adjustments. I published an article abouw how I set up my Raspberry Pi 5 with NVMe SSD.

https://jbsoft.nl/site/home-assistant-on-raspberry-pi-5-with-nvme-pcie-ssd/

2 Likes

Dear friends,

Here they explain the procedure to eliminate pci:corrected errors, in my case it works, anyone who has errors can try it.

kind regards

I know this post was a while ago but wanted to thank you as i had a hard time trying to find where the config file was in HAOS. Do have a question though, where does the BOOT_ORDER=0xf461 part get set?