Installing Home Assistant on a RPi 4b with SSD boot

You should not see a green monitor. A healthy RPi shows (within seconds after power-on) a black background and a colored raspberry in the upper left corner.
Have you attached your monitor with a micro-HDMI cable or adapter?
Does the LED on the Pi blink green? If not, your Pi is not starting correctly.

Why did you do that? That tool is only needed if your EEPROM is corrupted. This is not part of the guide. Have you removed the SD card with the recovery software or is your screen turning green because this software is still loaded?
Check the guide again. I think you took a wrong turn somewhere during the first steps.

Ok now I completely understand what the mistake I did. Thank you for writing this, It really opened my eyes.

now coming to the issue why I faced what I faced.

RPi 4 has a boot EEPROM (which RPi 3 did not!). You have to update that EEPROM to the latest firmware (2020-09-03) which enables USB boot. To update the EEPROM you have to temporarily install Raspberry OS. I used an SD card for this. The procedure is described in the Raspberry Pi docs but the following list of steps should get you flying.

Here it was referred as there is a procedure to follow from docs, so I went a head and read that docs. Which is why I am saying the green screen etc ( it mentioned on that docs).

May the one who created can reword these things. On the other hand, may be I am only one who faced this issue and the wording might be right.

but now finally I am able to setup everything. Thank you again!

I have followed the steps and installed hassio and able to see the GUI as well. But I do not have any monitor or keyboard.

how to setup ssh to login and I want to verify the version to start with.

I have done some research and found a way to ssh with an add-on called , Terminal & SSH. Please let me know if this is a good method or any other method is recommended?

Thank you reading.

Is see your problem. I have reworded that paragraph. Sorry for the ambiguity!

I actually answered that question in my OP:

You can use “Terminal & SSH” too, but Frencks tool goes far beyond that, even if you only use the SSH server part. But I guess we are going off-topic here.

1 Like

This is good advice and I recommend more people follow it.

Using the Pi imager would make this guide a lot simpler too. There is no need for ssh or keyboard.

  1. Use Pi Imager to create eeprom recovery SD card
  2. Boot Pi4 with SD and wait for blinking green light
  3. Remove SD card
  4. Attach HassOS SSD to USB and bootloader will use USB-MSD boot
7 Likes

5.x 64b development build is capable booting from USB3 using an SSD. It is confirmed by using a few SSD’s and a SATA to USB3 adapter cable.

However, when using a NVMe SSD and a NVMe SSD Enclosure, it fails to boot from USB3 ports. It boots successfully from USB2 ports.

I am using the following:

It looks like UASP is not supported by the development build so far.
I have tried to set the quirks in the CONFIG folder by editing the cmdline.txt file, but it doesn’t work.

The same NVMe set boots normally from USB3 at Raspbian.
Confirmed at Pi4 2G, and Pi4 8G.

Hopefully it will be fixed at the next releases.

1 Like

I wanted to report I was able to get this SSD for $56 USD on Amazon Prime day and it’s working fantastic with my RPi 4 w/ 8 gig.

RAVPower Portable External SSD Pro, 512GB Hard Drive with 540MB/S Data Transfer, NAND Flash, USB 3.1 Gen 2 Interface, ATA Lock, Mini USB C Solid State Drive

I have been using one of these for some time on a Pi3, and more recently on a 4gb Pi4, running HA Supervised as a backup to my production machine.

This page has a list that is useful for known working drives and enclosures and info on using quirks. I have purchased this one and can confirm it works well with a WD Green SSD.

I am not a big fan of bloating the comments on this guide with personal reports of working / non-working peripherals. The guide already contains a link to a good article, containing just these lists. If you want to add to that: Please take the liberty to edit the guide itself and add a list that contains goes and no-goes (guides are wikis and you can edit them!). If you pour it all into the comments, we will end up with hundreds of postings that users have to read through to get a final image.

2 Likes

Hi guys,
yes this is really a much simpler way to do it. I was not aware of it.
I am tempted to add it to the article. But then again it would be possible that the boot order of the Pi is not set to SSD boot. And I guess raspi-config is the only way to set it. So we are back to Raspberry OS for a really complete guide. Or are we?

You can see the defaults on https://www.raspberrypi.org/documentation/hardware/raspberrypi/bcm2711_bootloader_config.md

I have tried this numerous times and it works. Flash via SD, remove SD, attach USB and it boots up.

Specifically:

  • The default boot order is 0xf41 which means continuously try SD then USB mass storage.

As long as you remove the SD card, it will boot from USB.

The default options also include ENABLE_SELF_UPDATE=1 which means it can be kept up-to-date by HassOS in the future.

So I updated the EEPROM using the RPI OS method. Loaded up HASSIO 5.4 on to the SSD and plugged it into the USB 3 port and powered it on.

I ran some stuff then it gets stuck with repeating messages every 20secs
Timeout waiting for hardware cmd interrupt
SDHCI REGISTER DUMP and some stuff

Oh, but i think it managed to boot up cause i am able to access the onboarding screen from my web browser at http://homeassistant.local:8123/onboarding.html.

I’m using a SSK SD100 128GB i got off from (this is the link i bought from, but the item that came was totally different from the photo shown in the link) Taobao for $18.
I believe it’s using a JMicron chipset. but not sure what it is. Looking at other sellers with same drive of the one i received, they advertise it as a JMS583 chipset.

*sudo fdisk /dev/sda* & *lsusb* info
Bus 002 Device 003: ID 7825:a2a4

[   63.405079] usb 2-1: USB disconnect, device number 2
[   68.394984] usb 2-1: new SuperSpeed Gen 1 USB device number 3 using xhci_hcd
[   68.426281] usb 2-1: New USB device found, idVendor=7825, idProduct=a2a4, bcdDevice=15.07
[   68.426300] usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[   68.426317] usb 2-1: Product: SSK Storage
[   68.426334] usb 2-1: Manufacturer: JMicron
[   68.426349] usb 2-1: SerialNumber: DB98765432111F3


[ 3227.410257] usb 2-1: new SuperSpeed Gen 1 USB device number 7 using xhci_hcd
[ 3227.441547] usb 2-1: New USB device found, idVendor=7825, idProduct=a2a4, bcdDevice=15.07
[ 3227.441567] usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 3227.441584] usb 2-1: Product: SSK Storage
[ 3227.441600] usb 2-1: Manufacturer: JMicron
[ 3227.441616] usb 2-1: SerialNumber: DB98765432111F3
[ 3227.455673] scsi host0: uas
[ 3227.458558] scsi 0:0:0:0: Direct-Access     SSK                       1507 PQ: 0 ANSI: 6
[ 3227.461202] sd 0:0:0:0: Attached scsi generic sg0 type 0
[ 3228.171885] sd 0:0:0:0: [sda] 250069680 512-byte logical blocks: (128 GB/119 GiB)
[ 3228.171905] sd 0:0:0:0: [sda] 4096-byte physical blocks
[ 3228.172136] sd 0:0:0:0: [sda] Write Protect is off
[ 3228.172158] sd 0:0:0:0: [sda] Mode Sense: 53 00 00 08
[ 3228.172587] sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 3228.173304] sd 0:0:0:0: [sda] Optimal transfer size 33553920 bytes not a multiple of physical block size (4096 bytes)
[ 3228.214823]  sda: sda1
[ 3228.217835] sd 0:0:0:0: [sda] Attached SCSI disk

Now I’m wondering if it’s possible to clone my existing HASSIO i have already setup with devices on a 32gb SD card into the 128GB SSD and use that? ( i tried using a Mac to dd an image and etcher to write to the ssd but doesn’t boot)

[edit] I gave up trying to clone, used a snapshot to restore on the new ssd instead, though some of the addons did not work (mosquito was missing, zigbee2mqqt had some unable to write error, had to remove and reinstall).

Does anyone know why I would not be able to reach the HA web server after following this procedure? I can follow the bootup of the pi from the SSD on my screen, so that does not seem to be the problem. I do get an error

mmc0: Timeout waiting for hardware cmd interrupt

which seems to mean it keeps looking for an SD card. However, I do get the HA prompt and it appears to boot up from the SSD OK.

I had all of this working a couple months ago, but it the system became corrupted somehow, and now have to try a fresh install. This time the web server is not working.

I am having the same issue. Everything seems to boot up but I can’t get to the web interface. This is also my second install. I had things working initially, but had to re-image the SSD because I made a mistake with importing a snapshot.

Are you also using v5.4?

Yes, version 5.4 (64 bit) on a Raspberry Pi 4 (4GB).

I tried an old v5.2 (64bit) that worked before on the same pi, but have the same problem. It must be something with the RPi FW updates.

I am having no luck finding any documentation to fix this. HA changes so fast, that all the old solutions that I can find are obsolete. Is the webserver run by one of the docker containers? It doesn’t look like it, because none of them have port 8123 mapped.

I don’t have any idea where to even look for clues.