Fun #Linux fact today I learned the hard way: If you completely fill the device storage, the system will not boot anymore :/

#justlinuxthings
Using the RK Royal Kludge keyboard configuration webapp on Linux PC

Okay today I managed to accidentally trigger “locked” function keys on my rather new M70 RK Royal Kludge. There is a modifier hotkey for this that I didn’t know of before (FN + LEFT CTRL) and I was lost for a hot minute how to turn it off again. Ah well, we’re still getting to know each other.

Anyway, I know from a previous attempt that RKGaming offers a webapp to configure the keyboard (especially it’s macro keys) on https://drive.rkgaming.com/. This works to this date only in Google Chrome (Webserial in Firefox is coming though). Here we can click a button and connect to the wireless receiver and… nothing. Ah yes, we’re on Linux PC and random browsers shall not write to our hardware devices. This is in principle a good idea and I did encounter this before with my Viture XR glasses so I had an idea where to start poking.

First things first: Confirming my theory I checked the browser console and sure enough it was not allowed to open the device:

[HID] Selected device: 2.4G Wireless Receiver vid=0x3554 pid=0xfa09 index-JWjn01Gh.js:1 NotAllowedError: Failed to open the device.

There is also this special chrome://device-log/ address in Chrome that has some more details:

HIDEvent[12:08:56] Failed to open '/dev/hidraw10': FILE_ERROR_ACCESS_DENIED HIDEvent[12:08:56] Access denied opening device read-write, trying read-only.

With this information we do have the Vendor ID (0x3554) the Product ID (0xfa09) and the subsystem (hidraw) in question. This is btw the dmesg output for the connected device, confirming what we know already:

new full-speed USB device number 17 using xhci_hcd New USB device found, idVendor=3554, idProduct=fa09, bcdDevice= 1.02 New USB device strings: Mfr=1, Product=2, SerialNumber=0 Product: 2.4G Wireless Receiver Manufacturer: CX

And a quick check on /dev/hidraw10 confirms that we simply to not have permission to read or write to this hidraw device, since it belongs to root.

crw-rw----. 1 root root 241, 9 8. Jun 12:05 /dev/hidraw10

Now a quick and dirty fix for the current session would be to simply change the ownership of that device but I really want this to stick around after the next reboot so I created the udev rule file /usr/lib/udev/rules.d/72-rk-royal-kludge.rules:

# Udev processes rules in alphabetical/numerical order. The actual # application of the uaccess tag happens in systemd's built-in # 73-seat-late.rules so make sure this is run *before* by saving # this as e.g. 72-rk-royal-kludge.rules # uaccess tag means that logind assigns the permissions to users # dynamically via ACLs according to which session is currently active SUBSYSTEM=="usb", ACTION=="add", ATTRS{idVendor}=="3554", ATTRS{idProduct}=="fa09", MODE="0660", TAG+="uaccess" SUBSYSTEM=="hidraw", KERNEL=="hidraw*", ATTRS{idVendor}=="3554", ATTRS{idProduct}=="fa09", MODE="0660", TAG+="uaccess"

Changes in such files have to be reloaded with e.g. udevadm control --reload. After that… nothing happens. This is because the device exists already so it’s time to unplug that receiver briefly. Now udev kicks in and creates the device files with the new rules applied. There is now a slight difference:

crw-rw----+ 1 root root 241, 10 8. Jun 12:34 /dev/hidraw10

The “+” indicates additional ACL rules. If you did not know about ACLs before: Oh boy, you’re in for a ride. Anyway, I confirmed that I now have access to this by checking the ACLs with e.g. getfacl /dev/hidraw10

# file: dev/hidraw10 # owner: root # group: root user::rw- user:beko:rw- group::rw- mask::rw- other::---

And presto. My user beko has read-write access. Another visit to https://drive.rkgaming.com/ yields a far better result:

[HID] Selected device: 2.4G Wireless Receiver vid=0x3554 pid=0xfa09 index-JWjn01Gh.js:2388 Device [2.4G Wireless Receiver] is open

Now I can configure my keyboard on Linux PC via a gorram web application like any other cool kid in 2026. I say this because the app will probably have a half-life of 2 years and stop working soon enough again.

What a time to be alive.

#Linux #JustLinuxThings #udev #keyboard #RoyalKludge

This content is licensed under a Creative Commons Attribution 4.0 International license.

https://beko.famkos.net/2026/06/08/using-the-rk-royal-kludge-keyboard-configuration-webapp-on-linux-pc/ #JustLinuxThings #keyboard #linux #RoyalKludge #udev

I am happy to report that, on a 2011 Macbook Air (4,1) that I inherited, I upgraded it to a 500 GB SSD and have #debian 13 (Trixie) running on it.

I made a minor tweak to the boot parameters (thanks to another open-source enthusiast publishing their journey with the same laptop) to deal with the laptop freezing up while connected to wifi. #justlinuxthings

While its specs are modest (4 MB ram, dual core i5), thanks to the great array of open-source software tools, I have light-weight options available for email readers, RSS readers, browsers, and code editors. Writing and testing programs in Python or Nim is absolutely doable on this system.

I also like having a lower-spec machine which will help me be more mindful of memory and cpu-efficient programming patterns while I am writing software and games.

Trying #eww (here) is fun! You can fully customize anything and can create widgets from the ground up.

… but you need to fully customize anything and create widgets from the ground up.

#JustLinuxThings #ricing #LinuxDesktop #widgets #Linux

Eww - Widgets for everyone! - eww documentation

The only thing a Linux enjoyer hates more than Windows is other flavors of Linux.

#justlinuxthings #linux

My package manager: you need to update your Mother
Me: I'm sorry, *what*?
Me, rereading the message: Oh, #Mutter has an update

#justlinuxthings #gnome #foss

I cleaned up my packages and now the kernel creation spams tons of possibly missing firmware warnings.

==> WARNING: Possibly missing firmware for module: 'radeon' ==> WARNING: Possibly missing firmware for module: 'nouveau' ==> WARNING: Possibly missing firmware for module: 'i915' ==> WARNING: Possibly missing firmware for module: 'amdgpu' ==> WARNING: Possibly missing firmware for module: 'xe' ==> WARNING: Possibly missing firmware for module: 'ast' ==> WARNING: Possibly missing firmware for module: 'xhci_pci_renesas' ==> WARNING: Possibly missing firmware for module: 'bfa' ==> WARNING: Possibly missing firmware for module: 'aic94xx' ==> WARNING: Possibly missing firmware for module: 'cxgb3' ==> WARNING: Possibly missing firmware for module: 'cxgb4' ==> WARNING: Possibly missing firmware for module: 'qed' ==> WARNING: Possibly missing firmware for module: 'qla2xxx' ==> WARNING: Possibly missing firmware for module: 'isci' ==> WARNING: Possibly missing firmware for module: 'qla1280' ==> WARNING: Possibly missing firmware for module: 'advansys' ==> WARNING: Possibly missing firmware for module: 'wd719x' ==> WARNING: Possibly missing firmware for module: 'csiostor' ==> WARNING: Possibly missing firmware for module: 'ums_eneub6250' ==> WARNING: Possibly missing firmware for module: 'cs42l43'

None of the firmware is needed, my system operates as expected, and everything works … Oh well 🙄 … Time to create some dummy modules, I guess.

#ArchLinux #pacman #mkinitcpio #JustLinuxThings

did some troubleshooting on my smb issues and it turns out it might be a kde bug: https://bugs.kde.org/show_bug.cgi?id=494981

i say might because all of this goes over my head and i cant do shit anyways since im on an immutable distro.

#JustLinuxThings

494981 – Kerberos auth doesn't work since libsmbclient 4.21

so i ran a live environment on @viz suggestion and enabling hdr was possible.

unfortunately couldnt test video file playback since the wifi driver didnt work and the video player would crash everytime i tried playing a video from external storage.

#JustLinuxThings