Zwave USB isn't detected on Home Assistant Operating System Generic x86-64 Installation

I had a functioning Raspberry Pi HA install that worked for several years. Had some issues with the hardware and made a backup and transferred it to an old Gigabyte Brix I had in storage. Everything works better except for Z-Wave.

This is the installation steps I used for my Brix. Generic x86-64 - Home Assistant

Z-Wave appears that it is failing because the USB Z-Wave isn’t being picked up. It appears that I need to pass-through USB to the VM?

I can verify that other USB devices also do not appear correctly when plugged in. Only keyboards seem to work.

Please assist me with understanding how to get to the ‘host’ of the machine. The SSH Add-On appears to only go into the VM. If I have all this terminology correct.

1 Like

Here is the results of my HA info in the SSH connection.

[core-ssh ~]$ ha info

arch: amd64

channel: stable

docker: 25.0.5

features:

  • reboot

  • shutdown

  • services

  • network

  • hostname

  • timedate

  • os_agent

  • haos

  • resolved

  • journal

  • disk

  • mount

hassos: “12.3”

homeassistant: 2024.6.2

hostname: homeassistant

logging: info

machine: generic-x86-64

operating_system: Home Assistant OS 12.3

state: running

supervisor: 2024.06.0

supported: true

supported_arch:

  • amd64

  • i386

timezone: America/Chicago

assuming Virtualbox?
To get the z wave stick to recognize you have to plug it in. Then in Virtual box settings, USB, click the plus and add the stick. Then remove the stick from the machine and shut down the virtual machine. While the VM is off, plug in the stick and start the VM. The stick should be recognized.

The generic-x86-64 should be running directly on your machine in other words, its not running as a VM, right? If correct, then with HAOS running, unplug and then replug the Z-Stick, next go in to your ssh addon do the following: dmesg | less and scroll to the bottom (hit G) and see if there are any USB events detected for the Z-Stick.

It is not in virtual box. I use the instructions on the page about installing on generic x86 hardware.

There are some messages about Ducker in the log files so I just assumed it was running in a doctor container of some sort. I don’t know exactly how that architecture set up.

I took these steps and I saw nothing about USB in the messages. I. took the USB stick and put it in my linux home server and did the same thing so 8 know exactly what I’m looking for. It worked on the other machine that is running Ubuntu.

What am I missing? That’s why I thought the Home Assistant operating system was running in a docker container
or something like that.

That’s not good.

Is the keyboard plugged into a USB port? If not, then it sorta/kinda sounds like the USB Controller hardware is not working. If yes, then maybe plug the ZStick into that same port the keyboard uses and see if there are any usb events in dmesg.

BTW, just to double-check, the install Guide link you pointed to …
In that guide there are actually 3 different types of HA installations:

  1. Write HAOS onto your x86-64 hardware
  2. Install Home Assistant Container
  3. Install Home Assistant Core

You did #1 right? For #1, what you have is HAOS (a type of linux for embedded systems) running as the OS directly on the CPU (aka bare metal), and most other things are Docker containers, including HA and the other AddOns, running on top of HAOS. The HA container (as does I think all other AddOns) has access to USB devices without any user intervention, so there is no “pass-thru” configuration needed.

Yes I did number 1. I wrote it directly to my SSD from my desktop, then installed the SSD into my gigabyte brix. There are 3 USB ports on the brix, and I tried all of them. Keyboard works in all of them. The USB wave dongle works in my Mac and on Ubuntu Linux. It’s something about it not getting loaded by HAOS.
What version of Linux is it based on? Maybe I can troubleshoot it from that perspective.

Correct. HA OS is a minimal linux OS built with buildroot with the sole task to manage a bunch of docker containers.It should detect your Z-Wave dongle.

As far as I know, HAOS uses the standard linux kernel (usually from kernel.org), and uses Buildroot to build the image based on the target platform (in this case x86_64). Here is the current linux kernel versions that HAOS uses. From what I have seen, how/if motherboard devices get supported is dependent on how/if the standard linux kernel supports such a device, and by devices, here I mean PCIe and USB controllers as PCIe devices and from there whether/what driver to load for the USB device being plugged in.

Since the keyboard works, it means the PCIe/USB-Controller hardware are working and the kernel is loading a serial driver for the keyboard, so all that’s good. But this is in contrast to the Z-Stick being plugged in and there are no USB events at all, which indicates to me that this is likely a hardware issue nevertheless. The only things that come to mind would be a faulty USB cable (if you are using one with the ZStick), or that the USB ZStick device is pulling more much power than the USB port can supply so the USB controller doesn’t see it getting plugged in.

I’d like to ‘bump’ this thread, as I had exactly the same issue. To preface this, I’m a system administrator, I’m familiar with Linux, and like Benjamin, I have a working Pi4 setup, but would like to use an older but working laptop with a decent SSD as my Home Assistant platform.

When I do an install using the Ubuntu live boot method described in the Installation on bare metal X86 page, the install all appears to work well, and I can back up my config to the new install, but it just will never see the Z-wave USB stick. I own a Zooz ZST39 LR, if that makes a difference.

Here’s the testing I’ve done:
I have two USB A ports, one on each side of the laptop. The both appear to work with the Zigbee dongle. I’ve tried both. When I use the Pi, I have a short USB hub that I use to distance the thing a few inches. The Zigbee dongle and UPS-USB cable both are seen via the hub, but the ZST39 fails to show up in dmesg.

Is it possible that the X64 Linux kernel doesn’t have all the Z-wave dongles complied in?

I don’t really have any suggestions other than above. In the working case, dmesg would show the stick showing up along with information it got from reading the USB device’s ID prom, and from there it would figure out which driver to assign to it for the kernel to use. If its not showing up in dmesg, it would indicate that there is still something electronically not working