Skip to content

Troubleshooting

Tasos Sahanidis edited this page May 26, 2025 · 30 revisions

General

Please ensure your keyboard firmware is up to date. If you've just bought the keyboard, connect it to a Windows computer first and update the firmware from Corsair's official utility.

Before reporting an issue, connect your keyboard to a Windows computer and see if the problem still occurs. If it does, contact Corsair. Additionally, please check the Corsair user forums to see if your issue has been reported by other users. If so, try their solutions first.

Common issues:

  • Problem: ckb says "No devices connected" or "Driver inactive"
    • Solution: Try rebooting the computer and/or reinstalling ckb. Try removing the keyboard and plugging it back in. If the error doesn't go away, try the following:
  • Problem: Keyboard doesn't work in BIOS, doesn't work at boot
    • Solution: Some BIOSes have trouble communicating with the keyboard. They may prevent the keyboard from working correctly in the operating system as well. First, try booting the OS without the keyboard attached, and plug the keyboard in after logging in. If the keyboard works after the computer is running but does not work at boot, you may need to use the keyboard's BIOS mode option.
    • BIOS mode can be activated using the poll rate switch at the back of the keyboard. Slide it all the way to the position marked "BIOS". You should see the scroll lock light blinking to indicate that it is on. (Note: Unfortunately, this has its own problems - see Known Issues. You may need to activate BIOS mode when booting the computer and deactivate it after logging in).
  • Problem: Keyboard isn't detected when plugged in, even if driver is already running
    • Solution: Try moving to a different USB port. Be sure to follow Corsair's USB connection requirements. Note that the keyboard does not work with some USB3 controllers - if you have problems with USB3 ports, try USB2 instead. If you have any USB hubs on hand, try those as well. You may also have success sliding the poll switch back and forth a few times.

Generate a Report

In the ckb-next application, go to the Settings tab of the user interface and click the Generate Report button. generate a report via GUI Alternatively, run

ckb-next-dev-detect

Enabling support for experimental devices

NOTE: This guide assumes your system uses systemd. If you do not know what this means, you can proceed as most major Linux distributions use it.

Testing experimental devices temporarily

Before making any changes, it is important to test the level of support for the experimental devices. Although unlikely, your device can misbehave, or even become completely non functional while ckb-next-daemon is running due to incomplete experimental support.

To test it temporarily, stop the ckb-next-daemon service by running in a terminal:

sudo systemctl stop ckb-next-daemon

and then start ckb-next-daemon manually with experimental support enabled:

sudo ckb-next-daemon --enable-experimental

You can now test the functionality of the device.

NOTE: If the above command returns sudo: ckb-next-daemon: command not found, then it's possible your Linux distribution has placed the daemon somewhere else. You can run systemctl cat ckb-next-daemon and then look at the ExecStart= line to get the path. For example, it may show ExecStart=/usr/libexec/ckb-next-daemon. In this case, you will need to run sudo /usr/libexec/ckb-next-daemon --enable-experimental.

If the level of support provided is satisfactory for daily use, these changes can be applied permanently, as shown in the next section.

Otherwise, you can press Ctrl + C to stop ckb-next-daemon and then re-start it using systemd:

sudo systemctl start ckb-next-daemon

Your devices should now function as before.

If your experimentally supported device is a keyboard and it stopped functioning while experimental support was enabled, you will need to plug in a different keyboard to stop ckb-next-daemon in order to regain control. It might be possible to press X on the terminal that ckb-next-daemon is running using the mouse to avoid a reboot. A device unplug/replug will also be necessary afterwards.

Enabling experimental support on boot

If everything went well and you wish to enable experimental support for every boot, in a terminal run:

sudo EDITOR=nano systemctl edit ckb-next-daemon

In there, paste the following at the beginning of the file:

[Service]
ExecStart=
ExecStart=/usr/bin/ckb-next-daemon --enable-experimental

WARNING: The path might not always be /usr/bin/ckb-next-daemon. When running the sudo systemctl edit ckb-next-daemon command, there should be an ExecStart= line in blue near the bottom. You can simply copy the path from that one and use it instead of /usr/bin/ckb-next-daemon in the pasted text.

Finally, to save the changes and close the text editor, press Ctrl + X, then Y and lastly Enter.

Then, restart the daemon:

sudo systemctl restart ckb-next-daemon

Disabling experimental support on boot

To revert the changes, simply run

sudo systemctl revert ckb-next-daemon
sudo systemctl restart ckb-next-daemon

Crash on Wayland with NVIDIA GPUs

There are a few things to try if you are experiencing crashes on Wayland with NVIDIA GPUs.

Try running with the following commands:

XDG_SESSION_TYPE=x11 ckb-next
__NV_DISABLE_EXPLICIT_SYNC=1 ckb-next
QT_QPA_PLATFORM=xcb ckb-next

Try install from source, and if that doesn't work try building against Qt6

This issue provides further reading

To persist these changes, you can edit the desktop files. First for the application in the system menu/dash:

cp /usr/share/applications/ckb-next.desktop ~/.local/share/applications/
nano ~/.local/share/applications/ckb-next.desktop

and add env VARIABLE=VALUE before the ckb-next command, right after Exec=.

Example:

# Exec=/usr/bin/ckb-next
Exec=env __NV_DISABLE_EXPLICIT_SYNC=1 /usr/bin/ckb-next

Then, if you have autostart enabled in ckb-next's settings, first copy the autostart file and edit the copy in the same way as before:

cp ~/.config/autostart/ckb-next.autostart.desktop ~/.config/autostart/ckb-next.custom.desktop
nano ~/.config/autostart/ckb-next.custom.desktop

Then, make sure to disable autostart from ckb-next's settings.

USBHID Quirks

If you have problems connecting the device to your system (device doesn't respond and/or you experience long boot times when using the keyboard), try adding these quirks to your kernel's cmdline.

Usbhid quirks consist of colon-separated VID (vendor ID), PID (product ID) and flags. In order to get yours, open a terminal and execute:

lsusb | grep 1b1c | awk '{ split($6, a, ":"); print "0x" a[1] ":0x" a[2] ":0x20000408"}' | tr '\n' ',' | sed -e 's/,$/\n/;s/^0x/usbhid.quirks=0x/'

For example: usbhid.quirks=0x1b1c:0x1b20:0x20000408

For instructions on adding cmdline parameters in Ubuntu, see this.

On Pop!_OS you can run sudo kernelstub -a usbhid.quirks=0x1b1c:0x1b20:0x20000408.

If it still doesn't work, try replacing 0x20000408 with 0x4. Note that this will cause the kernel driver to ignore the device(s) completely, so you need to ensure ckb-daemon is running at boot or else you'll have no input. This will not work if you are using full-disk encryption.

USBCore Quirks

For kernel versions 4.17 and higher, you can also add the following usbcore quirks to the cmdline to work around issues such as devices not being recognised.

To generate the appropriate ones, execute:

lsusb | grep 1b1c | awk '{ split($6, a, ":"); print a[1] ":" a[2] ":gn"}' | tr '\n' ',' | sed -e 's/,$/\n/;s/^/usbcore.quirks=/'

For example: usbcore.quirks=1b1c:1b2e:gn

GLib critical errors and lock up at colour chooser

Qt5 attempts to set a theme to blend in with your window system, but the theming engine contains bugs that can cause GLib critical errors when trying to open the ckb-next colour selector such as this:

GLib-GObject-CRITICAL **: g_type_add_interface_static: assertion 'G_TYPE_IS_INSTANTIATABLE (instance_type)' failed

These can be fixed by doing the following:

  • Install qt5ct
    • Fedora 26+: dnf install qt5ct qt5-qtstyleplugins
    • Ubuntu 16.10+: sudo apt-get install qt5ct qt5-style-plugins
      • 16.04 users should install this PPA before running the above: sudo add-apt-repository ppa:mati75/qt5ct; sudo apt-get update
  • echo "export QT_QPA_PLATFORMTHEME=qt5ct" >> ~/.profile
  • Log out and log in again.
  • Run qt5ct, select gtk2 from the Style dropdown menu, and click OK.
  • Restart ckb-next.

Misbehaving tray icon

If the tray icon doesn't appear correctly, run sudo apt-get install libappindicator-dev. Then reinstall ckb-next. (Only for source installations)

Could not find or load the Qt platform plugin "xcb"

You can run QT_DEBUG_PLUGINS=1 ckb-next to get more details on why the plugin failed to load.

On Ubuntu it has been reported that running sudo apt install --reinstall libxcb-xinerama0 fixed this issue, however there can be many other causes for this error message.

Missing libGL.so

If during installation the following error appears, there is some issue with the graphics driver.

The imported target "Qt5::Gui" references the file "/usr/lib/x86_64-linux-gnu/libGL.so" but this file does not exist.

The following has been reported to correct this on Debian with the nvidia drivers installed using the nvidia installer. Please keep in mind that if the cause is not the same, it might make the situation worse.

sudo rm /usr/lib/x86_64-linux-gnu/libGL.so ;; sudo ln -s /usr/lib/x86_64-linux-gnu/libGL.so.1 /usr/lib/x86_64-linux-gnu/libGL.so

Crashes in SDL applications on a Raspberry Pi

If you are getting errors similar to

Assertion failure at RPI_ShowCursor (/home/pi/workspace/sdl/src/video/raspberry/SDL_rpimouse.c:171), triggered 1 time

then make sure all your devices have the latest firmware. Such a crash has been reported with Parsec and a Glaive RGB. Updating the firmware resolved it.

Reporting issues

If you have a problem that you can't solve (and it isn't mentioned in the Known Issues section below), you can report it on the GitHub issue tracker. Before opening a new issue, please check to see if someone else has reported your problem already - if so, feel free to leave a comment there.

Clone this wiki locally