# Graphics device not properly supported by driver

**URL:** <https://forums.balena.io/t/graphics-device-not-properly-supported-by-driver/365375>\
**Category:** balenaOS\
**Tags:** docker\
**Created:** [November 8, 2022, 11:01am UTC](https://forums.balena.io/t/graphics-device-not-properly-supported-by-driver/365375 "2022-11-08T11:01:46Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![JosjaG](https://avatars.discourse-cdn.com/v4/letter/j/b19c9b/32.png) [@JosjaG](https://forums.balena.io/u/JosjaG)\
**Post date:** [November 8, 2022, 11:01am UTC](https://forums.balena.io/t/graphics-device-not-properly-supported-by-driver/365375/1 "2022-11-08T11:01:46Z")

</div>

Hi support,

I’m attempting to use my display via docker in Balena on an Intel Alder Lake and I’m experiencing issues accessing the graphics device. `dmesg` shows the following:  
`Your graphics device 4680 is not properly supported by the driver in this kernel version. To force driver probe anyway, use i915.force_probe=4680 module parameter or CONFIG_DRM_I915_FORCE_PROBE=4680 configuration option`

I’ve tried adding `i915.force_probe=4680` to the `config.json` and setting `CONFIG_DRM_I915_FORCE_PROBE=4680` in the device setting but neither seems to have any effect.

Do you have any ideas on how to fix this?  
Kind regards,  
Josja

---

<div class="post-metadata">

**Author:** ![hraftery](https://sea2.discourse-cdn.com/balena/user_avatar/forums.balena.io/hraftery/32/8021_2.png) [@hraftery](https://forums.balena.io/u/hraftery)\
**Post date:** [November 8, 2022, 12:05pm UTC](https://forums.balena.io/t/graphics-device-not-properly-supported-by-driver/365375/2 "2022-11-08T12:05:35Z")

</div>

I’m not sure about the “not properly supported” part, but in the meantime I can help with the suggested workarounds. `CONFIG_DRM_I915_FORCE_PROBE` is a Linux kernel configuration item, so you’re probably only going to make use of that if you’re compiling your own kernel. The `i915.force_probe=4680` however looks like a command line argument to the kernel. You can add them by editing the appropriate file. Depending on your setup, this will probably be `/mnt/boot/cmdline.txt`, or if that doesn’t exist, `/mnt/boot/grub/grub.cfg`, or if that doesn’t exist, `/mnt/boot/EFI/BOOT/grub.cfg`.

---

<div class="post-metadata">

**Author:** ![cees.koolen](https://sea2.discourse-cdn.com/balena/user_avatar/forums.balena.io/cees.koolen/32/7009_2.png) [@cees.koolen](https://forums.balena.io/u/cees.koolen)\
**Post date:** [November 24, 2022, 8:34am UTC](https://forums.balena.io/t/graphics-device-not-properly-supported-by-driver/365375/5 "2022-11-24T08:34:44Z")

</div>

@hraftery according to this post: [Setting kernel parameters in BalenaOS using /mnt/boot/EFI/BOOT/grub\_extraenv](https://forums.balena.io/t/setting-kernel-parameters-in-balenaos-using-mnt-boot-efi-boot-grub-extraenv/194947) changes to that file area not persistent over OS updates. Do you have any thoughts about that? Or is there any progress on making changes like that available from the dashboard?

---

<div class="post-metadata">

**Author:** ![alexgg](https://avatars.discourse-cdn.com/v4/letter/a/7ab992/32.png) [@alexgg](https://forums.balena.io/u/alexgg)\
**Post date:** [November 29, 2022, 12:08pm UTC](https://forums.balena.io/t/graphics-device-not-properly-supported-by-driver/365375/6 "2022-11-29T12:08:01Z")

</div>

Hi, as you mention balenaOS does not currently support customization kernel command line arguments. The recommended approach is for the user application to unload the graphics driver and reload it with the appropriate parameters before launching the graphical application.

The process would look something like:

- stop plymouth with Dbus before graphics driver is used
- possibly disable virtual console echo 0 \> /sys/class/vtconsole/vtcon0/bind
- rmmod {driver} / modprobe -r {driver}
- modprobe {driver} … (new settings)

Check out the following forum post for a similar example [blacklist drivers in host OS - #25 by jgordon](https://forums.balena.io/t/blacklist-drivers-in-host-os/163437/25).

---

<div class="post-metadata">

**Author:** ![Alina](https://avatars.discourse-cdn.com/v4/letter/a/f14d63/32.png) [@Alina](https://forums.balena.io/u/Alina)\
**Post date:** [March 27, 2023, 7:12am UTC](https://forums.balena.io/t/graphics-device-not-properly-supported-by-driver/365375/9 "2023-03-27T07:12:17Z")

</div>

You need to update the graphics driver. And after that is not working, reinstall it and install it again. And also use a driver updater to update all drivers from time to time.

---

<div class="post-metadata">

**Author:** ![cees.koolen](https://sea2.discourse-cdn.com/balena/user_avatar/forums.balena.io/cees.koolen/32/7009_2.png) [@cees.koolen](https://forums.balena.io/u/cees.koolen)\
**Post date:** [October 17, 2023, 6:07am UTC](https://forums.balena.io/t/graphics-device-not-properly-supported-by-driver/365375/10 "2023-10-17T06:07:34Z")

</div>

For someone landing on this thread trying to re-load the `i915` driver on Balena: there is an additional dependency that is not present for the `nouveau` driver referred to above. The `snd_hda_intel` kernel module also depends on the `i915` module. So to be able to reload the driver I used the following script:

```auto
    ## Disable all display elements that could prevent removal of i915 module
    # Stop plymouth service used for splash screen display
    dbus-send --system --dest=org.freedesktop.systemd1 --type=method_call /org/freedesktop/systemd1 org.freedesktop.systemd1.Manager.StartUnit string:"plymouth-quit.service" string:"replace"
    # Disable virtual console
    for vtcon in /sys/class/vtconsole/*; do
        echo 0 > ${vtcon}/bind
    done

    # Wait some time for plymouth and virtual console to stop
    echo "Waiting to stop display services.."
    sleep 2

    # Remove the snd_hda_intel kernel module first since it depends on the i915 module
    rmmod snd_hda_intel

    # Remove the i915 kernel module
    rmmod i915

    # Reload the i915 kernel module with the proper parameters
    modprobe i915 <set the required parameters here>

    # Reload the snd_hda_intel module
    modprobe snd_hda_intel

```

---

<div class="post-metadata">

**Author:** ![lukasknk](https://avatars.discourse-cdn.com/v4/letter/l/ecc23a/32.png) [@lukasknk](https://forums.balena.io/u/lukasknk)\
**Post date:** [February 22, 2024, 2:27pm UTC](https://forums.balena.io/t/graphics-device-not-properly-supported-by-driver/365375/11 "2024-02-22T14:27:27Z")

</div>

hey,

do you mind explaining how i can add this script to my docker container? or do you have a github repo showcasing that?

any help is appreciated! Thanks!

---

<div class="post-metadata">

**Author:** ![cees.koolen](https://sea2.discourse-cdn.com/balena/user_avatar/forums.balena.io/cees.koolen/32/7009_2.png) [@cees.koolen](https://forums.balena.io/u/cees.koolen)\
**Post date:** [February 26, 2024, 5:42am UTC](https://forums.balena.io/t/graphics-device-not-properly-supported-by-driver/365375/12 "2024-02-26T05:42:49Z")

</div>

What you can do is put the content above in a `start.sh` script. At the end of that script you add

```auto
exec [path and name of your application]

```

Such that at the end of the script your application is started. By using exec it will replace the shell that is executing the script, making sure that all signals sent to the container are received by your application and not by the shell.

Then you can add this script to your Dockerfile where at the end of the docker file you point to `start.sh` as the command to start instead of your application:

```auto
FROM some_image
COPY --chmod=755 start.sh /etc/start.sh

# Do here whatever you need to get your application into the container.

CMD ["/etc/start.sh"]

```

---

<div class="post-metadata">

**Author:** ![Csabacamel](https://avatars.discourse-cdn.com/v4/letter/c/90ced4/32.png) [@Csabacamel](https://forums.balena.io/u/Csabacamel)\
**Post date:** [May 9, 2024, 5:33pm UTC](https://forums.balena.io/t/graphics-device-not-properly-supported-by-driver/365375/13 "2024-05-09T17:33:40Z")

</div>

Thank you for the guidance! I managed to set `i915.force_probe=4680` and now it recognizes all the resolutions. However, I’m trying to connect two monitors, and only one appears in xrandr. Interestingly, during boot, the splash screen appears on both monitors. Any advice on how to get both monitors to work properly would be greatly appreciated.
