Running Home Assistant or other OS on a Vero 2?

Hi,
I have tried to google this topic and searching this forum without finding an answer, so I´m posting it and hopefully someone can answer it.

I have a few Vero 2 laying around the house, currently unused as we have moved on to streaming services instead. Now I´m about to start to install the Home Assistant software (https://www.home-assistant.io/) and I have been thinking about using the Vero 2 to run that software.

Anybody had any experience of running any build of Home Assistant on a out of the box Vero 2?
If not, can I for example install ODroid OS or any other Linux OS on the Vero 2? So the hardware can be reused?

Regards // Henrik

Works but may make your vero stutter if you plan to use it again.

Ok, don’t plan to use it anymore. Just thinks that I can reuse the hardware instead of buying a PI for the Home Assistant purpose. But which OS is the Vero 2 running? A Linux dist of some kind?

The user could just reinstall OSMC or remove the application if they wish to use it for media again.

OSMC, based on Debian.

Thanks for the reply, but Docker was not supported on the osmc build of Debian.
So last question, then I´ll scrap this idea and go for a PI4 instead. Can Debian Bullseye be installed on the Vero 2 hardware?

Regards // Henrik

I’d be surprised if that’s the case.

Docker is supported on OSMC.
You may just need to use an older version.

Moving on with more testing.

Reinstalled the OSMC with the latest image (running on Debian 10 buster)
Disabled Open VPN client
Following instructions here: Install Docker Engine on Debian | Docker Documentation
Getting some errors regarding “storage-driver” failures
running “sudo dockerd --debug” which gives this:

INFO[2022-09-02T16:16:28.581801016+02:00] Starting up
DEBU[2022-09-02T16:16:28.584182781+02:00] Listener created for HTTP on unix (/var/run/docker.sock)
DEBU[2022-09-02T16:16:28.586791524+02:00] Golang’s threads limit set to 11340
DEBU[2022-09-02T16:16:28.588591346+02:00] metrics API listening on /var/run/docker/metrics.sock
INFO[2022-09-02T16:16:28.589395267+02:00] parsed scheme: “unix” module=grpc
INFO[2022-09-02T16:16:28.589560250+02:00] scheme “unix” not registered, fallback to default scheme module=grpc
INFO[2022-09-02T16:16:28.589820225+02:00] ccResolverWrapper: sending update to cc: {[{unix:///run/containerd/containerd.sock 0 }] } module=grpc
INFO[2022-09-02T16:16:28.589972210+02:00] ClientConn switching balancer to “pick_first” module=grpc
INFO[2022-09-02T16:16:28.597096506+02:00] parsed scheme: “unix” module=grpc
INFO[2022-09-02T16:16:28.597442472+02:00] scheme “unix” not registered, fallback to default scheme module=grpc
INFO[2022-09-02T16:16:28.597807436+02:00] ccResolverWrapper: sending update to cc: {[{unix:///run/containerd/containerd.sock 0 }] } module=grpc
INFO[2022-09-02T16:16:28.597980419+02:00] ClientConn switching balancer to “pick_first” module=grpc
DEBU[2022-09-02T16:16:28.602134009+02:00] Using default logging driver json-file
DEBU[2022-09-02T16:16:28.602577965+02:00] processing event stream module=libcontainerd namespace=plugins.moby
DEBU[2022-09-02T16:16:28.602656957+02:00] [graphdriver] priority list: [btrfs zfs overlay2 fuse-overlayfs aufs overlay devicemapper vfs]
DEBU[2022-09-02T16:16:28.609809251+02:00] kernel dm driver version is 4.24.0 storage-driver=devicemapper
DEBU[2022-09-02T16:16:28.610326200+02:00] Generated prefix: docker-254:0-13456 storage-driver=devicemapper
DEBU[2022-09-02T16:16:28.610484185+02:00] Checking for existence of the pool docker-254:0-13456-pool storage-driver=devicemapper
DEBU[2022-09-02T16:16:28.611633071+02:00] Pool doesn’t exist. Creating it. storage-driver=devicemapper
ERRO[2022-09-02T16:16:28.641661107+02:00] [graphdriver] prior storage driver devicemapper failed: devicemapper: Error running deviceCreate (CreatePool) dm_task_run failed
DEBU[2022-09-02T16:16:28.642780996+02:00] Cleaning up old mountid : start.
failed to start daemon: error initializing graphdriver: devicemapper: Error running deviceCreate (CreatePool) dm_task_run failed

Trying to read up on storage-drivers here Docker storage drivers | Docker Documentation and have tried alot of options, but getting different errors depending on different storage-drivers used.

How do I check which storage-driver Vero 2 supports ?

Regards // Henrik

From memory, you will want to use overlayfs

This is the list of drivers that can be used from dockerd:
“btrfs zfs overlay2 fuse-overlayfs aufs overlay devicemapper vfs”

trying sudo dockerd --debug --storage-driver=overlay2 which gives

INFO[2022-09-03T09:50:20.129242768+02:00] Starting up
DEBU[2022-09-03T09:50:20.131648532+02:00] Listener created for HTTP on unix (/var/run/docker.sock)
DEBU[2022-09-03T09:50:20.133769325+02:00] Golang’s threads limit set to 11340
INFO[2022-09-03T09:50:20.135311174+02:00] parsed scheme: “unix” module=grpc
INFO[2022-09-03T09:50:20.135495156+02:00] scheme “unix” not registered, fallback to default scheme module=grpc
DEBU[2022-09-03T09:50:20.135316174+02:00] metrics API listening on /var/run/docker/metrics.sock
INFO[2022-09-03T09:50:20.135724134+02:00] ccResolverWrapper: sending update to cc: {[{unix:///run/containerd/containerd.sock 0 }] } module=grpc
INFO[2022-09-03T09:50:20.136264081+02:00] ClientConn switching balancer to “pick_first” module=grpc
INFO[2022-09-03T09:50:20.143019420+02:00] parsed scheme: “unix” module=grpc
INFO[2022-09-03T09:50:20.143198403+02:00] scheme “unix” not registered, fallback to default scheme module=grpc
INFO[2022-09-03T09:50:20.143401383+02:00] ccResolverWrapper: sending update to cc: {[{unix:///run/containerd/containerd.sock 0 }] } module=grpc
INFO[2022-09-03T09:50:20.143537369+02:00] ClientConn switching balancer to “pick_first” module=grpc
DEBU[2022-09-03T09:50:20.148177915+02:00] Using default logging driver json-file
DEBU[2022-09-03T09:50:20.148395894+02:00] [graphdriver] trying provided driver: overlay2
DEBU[2022-09-03T09:50:20.148730861+02:00] processing event stream module=libcontainerd namespace=plugins.moby
ERRO[2022-09-03T09:50:20.159330824+02:00] failed to mount overlay: no such device storage-driver=overlay2
DEBU[2022-09-03T09:50:20.160272732+02:00] Cleaning up old mountid : start.
failed to start daemon: error initializing graphdriver: driver not supported

Trying fuse-overyafs instead:
sudo dockerd --debug --storage-driver=fuse-overlayfs

gives:
INFO[2022-09-03T09:51:52.825335342+02:00] Starting up
DEBU[2022-09-03T09:51:52.827440131+02:00] Listener created for HTTP on unix (/var/run/docker.sock)
DEBU[2022-09-03T09:51:52.829502924+02:00] Golang’s threads limit set to 11340
INFO[2022-09-03T09:51:52.830949778+02:00] parsed scheme: “unix” module=grpc
INFO[2022-09-03T09:51:52.831138759+02:00] scheme “unix” not registered, fallback to default scheme module=grpc
DEBU[2022-09-03T09:51:52.831195753+02:00] metrics API listening on /var/run/docker/metrics.sock
INFO[2022-09-03T09:51:52.831426730+02:00] ccResolverWrapper: sending update to cc: {[{unix:///run/containerd/containerd.sock 0 }] } module=grpc
INFO[2022-09-03T09:51:52.831856687+02:00] ClientConn switching balancer to “pick_first” module=grpc
INFO[2022-09-03T09:51:52.838260044+02:00] parsed scheme: “unix” module=grpc
INFO[2022-09-03T09:51:52.838404029+02:00] scheme “unix” not registered, fallback to default scheme module=grpc
INFO[2022-09-03T09:51:52.838537016+02:00] ccResolverWrapper: sending update to cc: {[{unix:///run/containerd/containerd.sock 0 }] } module=grpc
INFO[2022-09-03T09:51:52.838619008+02:00] ClientConn switching balancer to “pick_first” module=grpc
DEBU[2022-09-03T09:51:52.843119556+02:00] Using default logging driver json-file
DEBU[2022-09-03T09:51:52.843413526+02:00] [graphdriver] trying provided driver: fuse-overlayfs
DEBU[2022-09-03T09:51:52.843420525+02:00] processing event stream module=libcontainerd namespace=plugins.moby
DEBU[2022-09-03T09:51:52.845029364+02:00] Cleaning up old mountid : start.
failed to start daemon: error initializing graphdriver: driver not supported

Kind of lost here

// Henrik

So fuse-overlayfs worked but your issue is graphdriver

I ran the config-checker script at

output:

warning: /proc/config.gz does not exist, searching other paths for kernel config …
info: reading kernel config from /boot/config-3.10.105-13-osmc …

Generally Necessary:

  • cgroup hierarchy: nonexistent??
    (see GitHub - tianon/cgroupfs-mount: Simple (outdated) scripts to mount the cgroupfs (v1) hierarchy, especially structured for Debian packaging)
  • CONFIG_NAMESPACES: enabled
  • CONFIG_NET_NS: enabled
  • CONFIG_PID_NS: enabled
  • CONFIG_IPC_NS: enabled
  • CONFIG_UTS_NS: enabled
  • CONFIG_CGROUPS: enabled
  • CONFIG_CGROUP_CPUACCT: missing
  • CONFIG_CGROUP_DEVICE: missing
  • CONFIG_CGROUP_FREEZER: missing
  • CONFIG_CGROUP_SCHED: missing
  • CONFIG_CPUSETS: missing
  • CONFIG_MEMCG: missing
  • CONFIG_KEYS: enabled
  • CONFIG_VETH: missing
  • CONFIG_BRIDGE: enabled (as module)
  • CONFIG_BRIDGE_NETFILTER: missing
  • CONFIG_IP_NF_FILTER: enabled (as module)
  • CONFIG_IP_NF_TARGET_MASQUERADE: enabled (as module)
  • CONFIG_NETFILTER_XT_MATCH_ADDRTYPE: missing
  • CONFIG_NETFILTER_XT_MATCH_CONNTRACK: missing
  • CONFIG_NETFILTER_XT_MATCH_IPVS: missing
  • CONFIG_NETFILTER_XT_MARK: missing
  • CONFIG_IP_NF_NAT: missing
  • CONFIG_NF_NAT: enabled (as module)
  • CONFIG_POSIX_MQUEUE: enabled
  • CONFIG_DEVPTS_MULTIPLE_INSTANCES: missing
  • CONFIG_NF_NAT_IPV4: enabled (as module)
  • CONFIG_NF_NAT_NEEDED: enabled

Optional Features:

  • CONFIG_USER_NS: enabled
  • CONFIG_SECCOMP: enabled
  • CONFIG_SECCOMP_FILTER: enabled
  • CONFIG_CGROUP_PIDS: missing
  • CONFIG_MEMCG_SWAP: missing
  • CONFIG_MEMCG_SWAP_ENABLED: missing
  • CONFIG_MEMCG_KMEM: missing
  • CONFIG_RESOURCE_COUNTERS: missing
  • CONFIG_IOSCHED_CFQ: missing
  • CONFIG_CFQ_GROUP_IOSCHED: missing
  • CONFIG_BLK_CGROUP: missing
  • CONFIG_BLK_DEV_THROTTLING: missing
  • CONFIG_CGROUP_PERF: missing
  • CONFIG_CGROUP_HUGETLB: missing
  • CONFIG_NET_CLS_CGROUP: missing
  • CONFIG_NETPRIO_CGROUP: missing
  • CONFIG_CFS_BANDWIDTH: missing
  • CONFIG_FAIR_GROUP_SCHED: missing
  • CONFIG_RT_GROUP_SCHED: missing
  • CONFIG_IP_NF_TARGET_REDIRECT: missing
  • CONFIG_IP_VS: missing
  • CONFIG_IP_VS_NFCT: missing
  • CONFIG_IP_VS_PROTO_TCP: missing
  • CONFIG_IP_VS_PROTO_UDP: missing
  • CONFIG_IP_VS_RR: missing
  • CONFIG_SECURITY_SELINUX: missing
  • CONFIG_SECURITY_APPARMOR: missing
  • CONFIG_EXT3_FS: missing
  • CONFIG_EXT3_FS_XATTR: missing
  • CONFIG_EXT3_FS_POSIX_ACL: missing
  • CONFIG_EXT3_FS_SECURITY: missing
    (enable these ext3 configs if you are using ext3 as backing filesystem)
  • CONFIG_EXT4_FS: enabled
  • CONFIG_EXT4_FS_POSIX_ACL: enabled
  • CONFIG_EXT4_FS_SECURITY: enabled
  • Network Drivers:
    • “overlay”:
      • CONFIG_VXLAN: missing
      • CONFIG_BRIDGE_VLAN_FILTERING: missing
        Optional (for encrypted networks):
        • CONFIG_CRYPTO: enabled
        • CONFIG_CRYPTO_AEAD: missing
        • CONFIG_CRYPTO_GCM: missing
        • CONFIG_CRYPTO_SEQIV: missing
        • CONFIG_CRYPTO_GHASH: missing
        • CONFIG_XFRM: missing
        • CONFIG_XFRM_USER: missing
        • CONFIG_XFRM_ALGO: missing
        • CONFIG_INET_ESP: missing
        • CONFIG_INET_XFRM_MODE_TRANSPORT: missing
    • “ipvlan”:
      • CONFIG_IPVLAN: missing
    • “macvlan”:
      • CONFIG_MACVLAN: missing
      • CONFIG_DUMMY: missing
    • “ftp,tftp client in container”:
      • CONFIG_NF_NAT_FTP: enabled (as module)
      • CONFIG_NF_CONNTRACK_FTP: enabled (as module)
      • CONFIG_NF_NAT_TFTP: missing
      • CONFIG_NF_CONNTRACK_TFTP: missing
  • Storage Drivers:
    • “aufs”:
      • CONFIG_AUFS_FS: missing
    • “btrfs”:
      • CONFIG_BTRFS_FS: missing
      • CONFIG_BTRFS_FS_POSIX_ACL: missing
    • “devicemapper”:
      • CONFIG_BLK_DEV_DM: enabled
      • CONFIG_DM_THIN_PROVISIONING: missing
    • “overlay”:
      • CONFIG_OVERLAY_FS: missing
    • “zfs”:
      • /dev/zfs: missing
      • zfs command: missing
      • zpool command: missing

Limits:

  • /proc/sys/kernel/keys/root_maxkeys:

Hi, I’m giving up on this track. Basically because it seems that overlayFS (overlay2 and overlay) is not supported on the Linux kernal (3.10) that osmc is running on the Vero 2. So off to find a PI3 instead.

Thanks for quick replies

I know we have overlayfs running on 3.10 before but looks like a lot of other config options may be missing.

An older version of Docker should work for sure.