Hi, i recently moved my hassio installation from RPI3 to the new Gemini Lake NUC.
I love how much faster and stable everything is. It really was an upgrad well worth it. Especially since i now have a lot more stuff running on my hassio NUC and everything so far works very fast and flawless…
HOWEVER… as a non linux pro the journey was…for lack of a better word: tedious.
So in order to maybe help some other newbies like me along the way or to avoid the same mistaked i decided to share the whole story:
I had some small requirements for my new system:
Hassio @Docker (i like the hass.io way of using plugins and backups)
Plex Server @Docker (including intel Quicksync HW acceleration)
Wifi & BT working natively as i have them onboard in my NUC
Chapter 1: - Choice of OS
I first went with UBUNTU… install via USB Stick was very easy. Everything seemed to work out of the Box. Wifi & BT was detected. Installed hassio… then the problems began. After restoring the Backup i got a lot of errors and my duckdns was not able to connect to the internet anymore. I simply got no response back. I tried a lot of different solutions but finally gave up.
I then setup DEBIAN… hearing it also being a great choice for an underlying OS.
Debian installed easily as well, i was able to install hassio, restore my backup and surprise…even the duckdns plugin worked… BUT… neither WiFi nor BT was detected… Turns out… the kernel was too old for my Wifi Card…
Sooo… i treid updating the Linux Kernel manually. This took about 4-5h and in the end i still did not have the support for my wifi and BT… i also needed to manually inject the correct intel drivers. I then after maybe 2 days finally managed to get wifi working… but bluetooth still was not working.
That was the point when i decided to give Ubuntu one last try… so back to scratch again and i installed Ubuntu again. (This time it worked out, but more on that in Chapter 2)
Chapter 2: - Installation of hassio
As mentioned i did install Ubuntu again. In order to install hassio and all the other programs i wanted i decided to use docker. So my first step was finding out how docker works.
I basically followed this documentation and installed docker-ce:
After that was out of the way i was first playing around with some of the hello-world examples and then was trying to install hassio on that docker.
The commands i used for that are:
sudo apt-get install apparmor-utils apt-transport-https avahi-daemon ca-certificates curl dbus jq network-manager socat software-properties-common
sudo su
curl -sL https://raw.githubusercontent.com/home-assistant/hassio-build/master/install/hassio_install | bash -s
With this, my HASSIO was working fine HOWEVER still i had the issue with duckdns.
Turns out, Ubuntu is nowadays running a DNSMASQ standard out of the box on Port53. This was clashing with hassio and the urls could not be resolved. In order to stop ubuntu from using it i followed this guide:
In order to get it working however i also had to disable ubuntu from using systemd-resolve:
Disable the systemd-resolved service and stop it:
sudo systemctl disable systemd-resolved.service sudo service systemd-resolved stop
Put the following line in the [main] section of your /etc/NetworkManager/NetworkManager.conf:
dns=default
Delete the symlink /etc/resolv.confrm /etc/resolv.conf
Restart network-manager
sudo service network-manager restart
With that, i finally had a working hassio on my NUC. No more issues so far apart from the SSH Plugin not working and having to install the secondary one from the community plugins… but this seems to be a well known issue.
Chapter 3: PLEX
I wanted to use the PLEX Plugin for hassio, but this has some big limiations:
- I was not able to link the files on my HDD to a folder that plex hassio plugin can read
- HW accelerated en/decoding was not implemented
So i decided to install a customer plex docker. In order to achieve this, the best way seemed to be a docker-compose.
So first i installed docker-compose following this guide:
Then in order to install plex and to get the updates (and im not sure if this is even required, but i did it nonetheless)
echo deb https://downloads.plex.tv/repo/deb public main | sudo tee /etc/apt/sources.list.d/plexmediaserver.list
curl https://downloads.plex.tv/plex-keys/PlexSign.key | sudo apt-key add -
After that, sudo apt-get update
and the Plex Media Server repo is enabled on the OS.
My docker compose.yaml for plex looks like the following:
version: '2' services: plex: image: plexinc/pms-docker:plexpass container_name: plex restart: unless-stopped volumes: - /media/htpc/plex/config:/config - /media/htpc:/media:ro - /media/htpc/plex/deb:/deb - /media/htpc/plex/transcode:/transcode network_mode: host environment: - PLEX_CLAIM=INSERTYOURCLAIMCODEHERE - PUID=${PUID} - PGID=${PGID} - TZ=${TZ} devices: - /dev/dri:/dev/dri
In order to get updates to the latest plexsever automatically at restart you have to add this piece of code into your yaml:
image: plexinc/pms-docker:plexpass
Chapter 4: HDD Issues
On primeday i was able to get my hands on some good external HDDs. I formated them with EXFAT as it was my believe that this is a linux file format…
But Ubuntu was not able to read any of my files… so i first had to install a EXFAT Driver:
sudo apt-get install exfat-fuse exfat-utils
Next problem was that only one my external HDDs was going to sleep. The other one was constantly running. HDParm was giving me errors for my 2nd drive and i was not able to set it to sleep manually… after several hours i finally found a good solution. An external program that monitors the uptime and is able to automatically bring the stubborn HDD to sleep:
HD-IDLE.
I have this setup now running for about 3 weeks and have not had any problems.
Everything seems to be very stable and is so much faster and responsive than on the raspberry. Restart takes only seconds instead of minutes and even my FFMPEG Cameras are working without any stutter or CPU stress.
I can only recommend going the NUC road if your still on the fence and hope that my “Guide” or collection of guides can help you get there faster and without a headache like me^^