Rpi 4 installation

You should work with identifiers, not just mount points. Otherwise every restart is a gamble, if something else comes first for /dev/sdx, it won’t boot.

Better use the PARTUUID. Like root=PARTUUID=54bacdxxx rootfstype=ext4 rw ...

Hey, that sounds interesting. So could you do a write-up of what you did?

Yes as long as you don’t have any other USB drives plugged in when rebooting it shouldn’t matter but I have done it now just to make sure it works every time.

Download Manjaro I got the XFCE edition as it is the fastest DE’s available and the most stable but it should be the same with the minimal if you don’t want a desktop OS.

Etch manjaro to SD card.

I Used MiniTool Partition Wizard Free to copy the root partition from SD card to the unpartitioned SSD.

Edit the cmdline.txt on the boot partition on the SD card to boot the SSD.

root=/dev/sda1 rootfstype=ext4 rw ...

Optional, as my monitor is old so I had to add this to config.txt on the SD card so it will use the native resolution as it was off the screen.




Place SD card and SSD on the Rpi4 boot it and go through the setup.

Once it is up and running get the PARTUUID for SSD.

sudo blkid

Edit boot cmdline.txt.

sudo nano /boot/cmdline.txt

root=PARTUUID=SSDUUID rootfstype=ext4 rw ...

Save it and reboot to make sure it works.

Update Manjaro.
I had to update the package mirror list with Manjaro-ARM-xfce-rpi4-19.12.1 https://forum.manjaro.org/t/transition-to-new-mirror-structure/123858

sudo pacman -U https://ftp-osl.osuosl.org/pub/manjaro-arm/repo/stable/core/aarch64/pacman-mirrorlist-20200217-1-any.pkg.tar.xz

Update the Kernel.
sudo pacman -Syu linux-rpi4-mainline

Check kernel updated
cat /proc/version

Install any other programs you need/want if using Manjaro XFCE.

Install dependencies.



Set up docker.

sudo systemctl start docker
sudo systemctl enable docker

Check docker.

sudo docker version

Reboot again.
Make sure docker is running.

sudo docker version

Install Hassio

sudo curl -sL "https://raw.githubusercontent.com/home-assistant/hassio-installer/master/hassio_install.sh" | bash -s -- -m raspberrypi4-64

I can’t get hassio also ,can somebody help me

sudo -i
apt-get update
apt-get install -y software-properties-common apparmor-utils apt-transport-https avahi-daemon ca-certificates curl dbus jq network-manager socat
systemctl disable ModemManager
curl -fsSL get.docker.com | sh

apt-get update

wget https://download.docker.com/linux/raspbian/gpg

[email protected]:~# apt-key add gpg

echo "deb https://download.docker.com/linux/raspbian stretch stable " | tee -a /etc/apt/sources.list.d/docker.list

apt-get update

apt-get -y install docker-ce

dpkg: error processing package aufs-dkms (–configure):
installed aufs-dkms package post-installation script subprocess returned error exit status 10
Errors were encountered while processing:
E: Sub-process /usr/bin/dpkg returned an error code (1)

ystemctl start docker && systemctl enable docker

curl -sL “https://raw.githubusercontent.com/home-assistant/hassio-installer/master/hassio_install.sh” >> hassio_install.sh
sudo bash hassio_install.sh -m raspberrypi4

[email protected]:~# sudo bash hassio_install.sh -m raspberrypi4
ModemManager.service enabled
[Warning] ModemManager service is enabled. This might cause issue when using serial devices.
[Info] Install supervisor Docker container
[Info] Install supervisor startup scripts
Created symlink /etc/systemd/system/multi-user.target.wants/hassio-supervisor.service → /etc/systemd/system/hassio-supervisor.service.
[Info] Install AppArmor scripts
Created symlink /etc/systemd/system/multi-user.target.wants/hassio-apparmor.service → /etc/systemd/system/hassio-apparmor.service.
[Info] Run Hass.io

[email protected]:~# docker ps
2d1ee939c70c homeassistant/raspberrypi4-homeassistant:landingpage “/run.sh” 10 seconds ago Up 8 seconds homeassistant
92def09042fe homeassistant/armv7-hassio-dns:1 “coredns -conf /conf…” 19 seconds ago Up 17 seconds hassio_dns
fc7d97c080a2 homeassistant/armv7-hassio-supervisor “/bin/entry.sh pytho…” 33 seconds ago Up 31 seconds hassio_supervisor

[email protected]:~# docker attach --sig-proxy=false 2d1ee939c70c

[email protected]:~# docker logs fc7d97c080a2
20-03-01 01:01:51 INFO (MainThread) [main] Initialize Hass.io setup
20-03-01 01:01:51 INFO (MainThread) [hassio.docker.network] Can’t find Hass.io network, create new network
20-03-01 01:01:52 INFO (MainThread) [hassio.bootstrap] Create Home Assistant configuration folder /data/homeassistant
20-03-01 01:01:52 INFO (MainThread) [hassio.bootstrap] Create Hass.io SSL/TLS folder /data/ssl
20-03-01 01:01:52 INFO (MainThread) [hassio.bootstrap] Create Hass.io Add-on data folder /data/addons/data
20-03-01 01:01:52 INFO (MainThread) [hassio.bootstrap] Create Hass.io Add-on local repository folder /data/addons/local
20-03-01 01:01:52 INFO (MainThread) [hassio.bootstrap] Create Hass.io Add-on git repositories folder /data/addons/git
20-03-01 01:01:52 INFO (MainThread) [hassio.bootstrap] Create Hass.io temp folder /data/tmp
20-03-01 01:01:52 INFO (MainThread) [hassio.bootstrap] Create Hass.io backup folder /data/backup
20-03-01 01:01:52 INFO (MainThread) [hassio.bootstrap] Create Hass.io share folder /data/share
20-03-01 01:01:52 INFO (MainThread) [hassio.bootstrap] Create Hass.io DNS folder /data/dns
20-03-01 01:01:52 INFO (SyncWorker_0) [hassio.docker.supervisor] Attach to Supervisor homeassistant/armv7-hassio-supervisor with version 201
20-03-01 01:01:52 INFO (SyncWorker_0) [hassio.docker.supervisor] Connect Supervisor to Hass.io Network
20-03-01 01:01:53 INFO (MainThread) [main] Setup HassIO
20-03-01 01:01:53 INFO (MainThread) [hassio.utils.gdbus] Connect to dbus: org.freedesktop.systemd1 - /org/freedesktop/systemd1
20-03-01 01:01:53 INFO (MainThread) [hassio.utils.gdbus] Connect to dbus: org.freedesktop.hostname1 - /org/freedesktop/hostname1
20-03-01 01:01:53 WARNING (MainThread) [hassio.dbus.rauc] Host has no rauc support. OTA updates have been disabled.
20-03-01 01:01:53 INFO (MainThread) [hassio.utils.gdbus] Connect to dbus: org.freedesktop.NetworkManager - /org/freedesktop/NetworkManager/DnsManager
20-03-01 01:01:53 INFO (MainThread) [hassio.host.info] Update local host information
20-03-01 01:01:53 INFO (MainThread) [hassio.utils.gdbus] Call org.freedesktop.DBus.Properties.GetAll on /org/freedesktop/hostname1
20-03-01 01:01:53 INFO (MainThread) [hassio.host.services] Update service information
20-03-01 01:01:53 INFO (MainThread) [hassio.utils.gdbus] Call org.freedesktop.systemd1.Manager.ListUnits on /org/freedesktop/systemd1
20-03-01 01:01:54 INFO (MainThread) [hassio.host.network] Update local network DNS information
20-03-01 01:01:54 INFO (MainThread) [hassio.utils.gdbus] Call org.freedesktop.DBus.Properties.GetAll on /org/freedesktop/NetworkManager/DnsManager
20-03-01 01:01:54 INFO (MainThread) [hassio.host.apparmor] Load AppArmor Profiles: {‘hassio-supervisor’}
20-03-01 01:01:54 INFO (MainThread) [hassio.host.services] Reload local service hassio-apparmor.service
20-03-01 01:01:54 INFO (MainThread) [hassio.utils.gdbus] Call org.freedesktop.systemd1.Manager.ReloadOrRestartUnit on /org/freedesktop/systemd1
20-03-01 01:01:54 INFO (MainThread) [hassio.dns] No CoreDNS plugin Docker image homeassistant/armv7-hassio-dns found.
20-03-01 01:01:54 INFO (MainThread) [hassio.dns] Setup CoreDNS plugin
20-03-01 01:01:54 INFO (MainThread) [hassio.updater] Fetch update data from https://version.home-assistant.io/stable.json
20-03-01 01:01:54 INFO (SyncWorker_0) [hassio.docker.interface] Pull image homeassistant/armv7-hassio-dns tag 1.
20-03-01 01:02:02 INFO (MainThread) [hassio.dns] CoreDNS plugin now installed
20-03-01 01:02:02 INFO (MainThread) [ha

Someone is working on an automated solution for all this soon, in the meantime I’ve documented the manual steps here: https://github.com/home-assistant/operating-system/issues/164#issuecomment-602145682

I note that there is still no Raspberry Pi 4 option for direct boot to SSD, and it doesn’t look imminent either. You have to use an SD+SSD configuration.

1 Like

I have got HassOS working on a SSD on Rpi4 but using the SD card to point to the SSD.

I etched the img to the SD card and SSD but just did the first boot/install on the SD card to get it working once done used linux to expand the sda8 on the SSD using gparted and then copy the hassos-data folders using the cmd line.

Then added

root=/dev/sda rootfstype=ext4 rw

to the cmdline.txt on the SD card once done loaded it into the rpi4 and booted it and it worked but had a few errors in the log and on reboot the supervisor was blank so I run the core rebuild cmd as I got it hooked up to a monitor and keyboard and it was back and have installed 6 addons and rebooted it a lot and it seems to be good so far but not sure if an update will break it as I changed the cmdline.txt and broke the supervisor again but the rebuild cmd fixed it.

1 Like

…to quote myself… :wink:

I’m not sure, that the installation or better writing of the whole image to ssd is a good way. In theory, it should be the same, regardless if you write it on the SSD versus using rsync after the first boot to clone that exact partition.

I for one always use the rsyncmethod, as it never gave me a problem, where the image writing was mostly with errors afterwards.

Yes as I am just testing it I did change it to use the PARTUUID and is all good and as I am new to Linux and it commands only started towards the end of last year when I got this rpi4 I still got a lot to learn.

Thanks for this great guide, works like a charm!
I did spend three hours afterwards trying to get my RaspBee to work with deConz, for anyone attempting, these steps did the job for me: (taken from https://hub.docker.com/r/marthoc/deconz/)

Configuring Raspbian for RaspBee

Raspbian defaults Bluetooth to /dev/ttyAMA0 and configures a login shell over serial (tty). You must disable the tty login shell and enable the serial port hardware, and swap Bluetooth to /dev/S0, to allow RaspBee to work properly under Docker.

To disable the login shell over serial and enable the serial port hardware:

  1. sudo raspi-config
  2. Select Interfacing Options
  3. Select Serial
  4. “Would you like a login shell to be accessible over serial?” Select No
  5. “Would you like the serial port hardware to be enabled?” Select Yes
  6. Exit raspi-config and reboot

In addition I added this line to my config.txt (below the two lines suggested in the deConz setup instructions)

1 Like

Hi Geoff

After getting told that what I did with ubuntu was wrong, I’ve attempted your procedure with manjaro xcfe instead.
I can’t get it working, the kernel still says:

Linux version 4.19.97-1-MANJARO-ARM ([email protected]) (gcc version 9.2.0 (GCC)) #1 SMP PREEMPT Fri Jan 24 19:39:39 UTC 2020

I did follow the link on where to get an updated mirrorlist, and found the latest mirror list, and installed it, and when I do the kernel update it says it’s 5.11, but I still see some 404 errors when I try to do updates and stuff, and the docker doesn’t work.

Any ideas?

I am not using Manjaro anymore I am using xUbuntu Server 18.04.4 from here https://github.com/TheRemote/Ubuntu-Server-raspi4-unofficial as it is a lot more stable.

1 Like

Ok, so back to what I originally did, the only exception is the cmdline.txt is available on 18.04, and not on 19.10, so I can point directly to sda2, just about the only change from my original setup :slight_smile:

i followed Rpi 4 installation

everything went smooth until
Install hassio

1.Save hassio installer to file: $ curl -sL “https://raw.githubusercontent.com/home-assistant/hassio-installer/master/hassio_install.sh” >> hassio_install.sh

2.Run install script: `$ sudo bash hassio_install.sh -m raspberrypi4’
or you can do raspberrypi4-64 if you are feeling adventures.

The second part 2.
when typing in sudo bash hassio_install.sh -m raspberrypi4
i get an error
hassio_install.sh: line 1: 404:: command not found

anyone help pls?

Hi @skank @skynet01 , I’m not up on this linux malarky, but from what I can tell by examining the hassio_install.sh file on the SSD, it contains a ‘404: Not Found’ which points me in the direction that the previous command didn’t work correctly as the URL points to a now dead link.

Shame really, I got this far too :frowning:

@skank @skynet01

Got it!, use this line

curl -sL "https://raw.githubusercontent.com/home-assistant/supervised-installer/master/installer.sh" >> hassio_install.sh

thx working

Good find, I updated the guide

I want to thank you for these instructions. I have my USB SSD working and installed docker and HA. Would you please help me with this? My logs:

20-04-25 14:11:11 INFO (MainThread) [supervisor.utils.gdbus] Call org.freedesktop.DBus.Properties.GetAll on /org/freedesktop/NetworkManager/DnsManager
20-04-25 14:11:26 WARNING (MainThread) [supervisor.tasks] Watchdog found a problem with Home Assistant Docker!
20-04-25 14:11:26 INFO (SyncWorker_13) [supervisor.docker.interface] Start homeassistant/raspberrypi4-64-homeassistant
20-04-25 14:11:31 ERROR (MainThread) [supervisor.homeassistant] Home Assistant has crashed!
20-04-25 14:11:31 ERROR (MainThread) [supervisor.tasks] Watchdog Home Assistant reanimation fails!

[email protected]:~ $ sudo docker logs homeassistant
standard_init_linux.go:211: exec user process caused “exec format error”
standard_init_linux.go:211: exec user process caused “exec format error”
standard_init_linux.go:211: exec user process caused “exec format error”

Thanks in advance

I am getting the following when I try this:

Info] Run Hass.io
[Info] Install cli 'ha'
[Info] Install supervisor Docker container
[Info] Install supervisor startup scripts
[Info] Install AppArmor scripts
[Info] Run Hass.io
[Info] Install cli 'ha'
[Info] Install supervisor Docker container
[Info] Install supervisor startup scripts
[Info] Install AppArmor scripts
[Info] Run Hass.io
[Info] Install cli 'ha'
hassio_install.sh: line 956: 404:: command not found

Any guidance would be appreciated