HAOS Hardware acceleration on Intel Core Ultra 7 155H Help

Hello, I’m hoping someone can help me get hardware acceleration working in HAOS running on an ASUS NUC14RVHU7 NUC. HAOS runs fine, but it seems like either the kernel or firmware doesn’t yet support the chip. I’ve tried the pre release version 14.0.rc2 and the latest 13.2 images.

My investigations with the Frigate devs (Frigate HWAccel Help) culminated in advice to abandon HAOS and use Debian/linux and Docker/virtualbox, but I had a bit of a nightmare trying to get either to run nicely and it’s not something I’m knowledgable about and I do love the convenience and simplicity of HAOS, so I’d like to try and get it to work if possible.

Trying to enable vaapi in Frigate resulted in ERROR : Unable to poll vainfo: b"error: XDG_RUNTIME_DIR is invalid or not set in the environment.\nerror: can't connect to X server!\nerror: failed to initialize display\n"

Trying qsv for >10th Gen Intel processors resulted in ERROR : [AVHWDeviceContext @ 0x55d77a47b680] No VA display found for device -hwaccel_output_format. 2024-11-23 18:16:07.540421443 [2024-11-23 18:16:07] ffmpeg.FrontPath.detect ERROR : Device creation failed: -22. 2024-11-23 18:16:07.540460040 [2024-11-23 18:16:07] ffmpeg.FrontPath.detect ERROR : Failed to set value '-hwaccel_output_format' for option 'qsv_device': Invalid argument 2024-11-23 18:16:07.540500334

I was advised to try an HDMI dummy plug. I did and it still didn’t work. Same errors.

If I booted the NUC to Linux Mint 22, I could run ls /dev/dri to see:

mint@mint:~$ ls /dev/dri by-path  card1  renderD128

Installing and running vainfo (still in Mint):

vainfo libva info: VA-API version 1.20.0 libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so libva info: Found init function __vaDriverInit_1_20 libva info: va_openDriver() returns 0 vainfo: VA-API version: 1.20 (libva 2.12.0) vainfo: Driver version: Intel iHD driver for Intel(R) Gen Graphics - 24.1.0 () vainfo: Supported profile and entrypoints VAProfileNone                   :	VAEntrypointVideoProc VAProfileMPEG2Simple            :	VAEntrypointVLD VAProfileMPEG2Main              :	VAEntrypointVLD VAProfileH264Main               :	VAEntrypointVLD VAProfileH264Main               :	VAEntrypointEncSlice VAProfileH264High               :	VAEntrypointVLD VAProfileH264High               :	VAEntrypointEncSlice VAProfileJPEGBaseline           :	VAEntrypointVLD VAProfileJPEGBaseline           :	VAEntrypointEncPicture VAProfileH264ConstrainedBaseline:	VAEntrypointVLD VAProfileH264ConstrainedBaseline:	VAEntrypointEncSlice VAProfileVP8Version0_3          :	VAEntrypointVLD VAProfileHEVCMain               :	VAEntrypointVLD VAProfileHEVCMain               :	VAEntrypointEncSlice VAProfileHEVCMain10             :	VAEntrypointVLD VAProfileHEVCMain10             :	VAEntrypointEncSlice VAProfileVP9Profile0            :	VAEntrypointVLD VAProfileVP9Profile0            :	VAEntrypointEncSlice VAProfileVP9Profile1            :	VAEntrypointVLD VAProfileVP9Profile1            :	VAEntrypointEncSlice VAProfileVP9Profile2            :	VAEntrypointVLD VAProfileVP9Profile2            :	VAEntrypointEncSlice VAProfileVP9Profile3            :	VAEntrypointVLD VAProfileVP9Profile3            :	VAEntrypointEncSlice VAProfileHEVCMain12             :	VAEntrypointVLD VAProfileHEVCMain422_10         :	VAEntrypointVLD VAProfileHEVCMain422_12         :	VAEntrypointVLD VAProfileHEVCMain444            :	VAEntrypointVLD VAProfileHEVCMain444            :	VAEntrypointEncSlice VAProfileHEVCMain444_10         :	VAEntrypointVLD VAProfileHEVCMain444_10         :	VAEntrypointEncSlice VAProfileHEVCMain444_12         :	VAEntrypointVLD VAProfileHEVCSccMain            :	VAEntrypointVLD VAProfileHEVCSccMain            :	VAEntrypointEncSlice VAProfileHEVCSccMain10          :	VAEntrypointVLD VAProfileHEVCSccMain10          :	VAEntrypointEncSlice VAProfileHEVCSccMain444         :	VAEntrypointVLD VAProfileHEVCSccMain444         :	VAEntrypointEncSlice VAProfileAV1Profile0            :	VAEntrypointVLD VAProfileAV1Profile0            :	VAEntrypointEncSlice VAProfileHEVCSccMain444_10      :	VAEntrypointVLD VAProfileHEVCSccMain444_10      :	VAEntrypointEncSlice 

Thanks

HAOS does not support the GPU and it is also not that good in the NUCs.
A coral stick is a better and supported choice.

Thanks for your help. I’m already using one, I think it’s used for object detection/recognition within Frigate, but despite that my system’s working overly hard to process/decode live video and also running embeddings for AI semantic search, as there’s no hardware acceleration detected.

Is it possible to add boot options for nomodeset or otherwise add intel drivers/firmware into the HAOS boot? From what I’ve learnt so far those are my options. Linux Mint is the only distro I’ve tried so far with support out of the box.

HAOS is pretty locked down, so the devs and the community knows how to support it.
You could use a supervised installation instead, but that requires a lot of knowledge about running Debian, because there are a lot of strict requirements associated with HA supervised.
I would probably go for a Proxmox installation and then split HAOS out into one VM and Frigate and waht else into another.
Proxmox should make it possible to passthrough both USB and GPU.

1 Like

I too in the same boat - no HW accel on NUC14 Intel U7-155h

I wonder when GPU drivers will be added to home assistant

Don’t expect the Intel AI cores or the Intel GPU to be available any time soon.
They are so far behind in the field and all developers bet on AMD and nVidia, so the chance of Intel catching up is also slim.

AI is not just enabling the GPU, there need to be drivers developed for it and the AI algorithms need to be made for those specific drivers.