Hey all, I discovered two issues with the QK101 on Linux, figured out the fixes, and I thought I would come back to explain the fixes for any other Linux users such as myself who might be looking for a solution to the same problem if they purchase this board in the future.
As a reference point, please note that I am on the stable branch of Debian GNU/Linux 12 (bookworm) x86_64.
I encountered two issues. The first was that when going to VIA to configure the board (the QK101 SPECIFICALLY uses the version of VIA found at https://cfg.qwertykeys.com/ at the time of writing), even after pairing the HID, VIA would not do anything and would not detect the board. To fix this I made two changes. First I swapped to the cable that came with the board. Second, instead of using a Chromium based browser, I found I had to use Chromium ITSELF.
I had done some other stuff I can't fully recall regarding permissions of the hidraw devices under /dev/
as well, but I think you only have to touch these if the device doesn't show up as a choice when choosing a device when authorizing it in VIA. If one thinks they need to change permissions on these, note that the keyboard has multiple hidraw devices mounted, and they can be determined by opening via and chrome://device-log/ in different tabs and then trying to authenticate. Using the device log you should be able to see which hidraw devices you should be working with.
The second issue was that even though I could remap keys, change some colors etc, I could not perform firmware updates, or make custom animations for the screen/LED matrix - trying to save would just state "Save failed" on VIA.
The problem here is related to the permissions of the serial device as it is represented in the OS.
To determine which interface it is on one's system, they can run the command sudo watch -n 2 "ls /dev/ | grep tty | column"
and unplug/replug the keyboard as needed to determine which tty represents the keyboard. In my case I found it to be ttyACM0
. Once this is determined, you can quit out of the watch command with ctrl + C.
If the user runs cat /dev/ttyACM0
and receives a permission denied error, it will verify that the user account does not have access to the serial interface of the device, and this is why VIA is unable to write certain data back to the board.
The best fix here is to simply add your user to the dialout
group, which will have the effect of giving the user account access to the serial ports. This is achievable with the command sudo usermod -aG dialout USERNAME
where USERNAME is your username.
Some information on the internet states that you only have to log out and back in after this to have the group addition take effect, but in my case I discovered that I had to restart the system entirely. To verify if you are in the group, you can just run the groups
command by itself.
Once this is done, you can go back into via to test adding an LED Matrix animation or some sort - for me it worked at this point.
Thanks!