USB keyboard not working with DietPi_OdroidC4-ARMv8-Trixie.img.xz on odroid c4

Creating a bug report/issue

I have searched the existing open and closed issues

Required Information

  • DietPi version | 10.5.2
  • Distro version | trixie
  • Kernel version | Linux odroid2 6.18.34-current-meson64 #1 SMP PREEMPT Mon Jun 1 15:51:08 UTC 2026 aarch64 GNU/Linux
  • architecture | arm64
  • SBC model | Odroid C4 (aarch64)
  • Power supply used | 12V 2A vendor power supply
  • SD card used | eMMC 16GB

Additional Information (if applicable)

N/A

Steps to reproduce

I burned the DietPi_OdroidC4-ARMv8-Trixie.img.xz to a 16GB eMMC that worked fine with the hardkernel supplied image. I then boot with the following hardware connected:

  • HDMI monitor
  • usb keyboard and mouse (via usb hub, but it fails when attached to the on-board USB ports as well)
  • hardwired ethernet
  • wifi dongle (Edimax Technology Co., Ltd EW-7811Un 802.11n Wireless Adapter [Realtek RTL8188CUS])

I see the getty message on tty1 on the console screen, but the keyboard does not work. This happens with the usb keyboard on hub or direct connect on the odroid.
When I ssh into the system via hardwired ethernet, I run lsusb which shows the keyboard. I can unplug/replug and see the keyboard/sub change in dmesg output.

Using dietpi-config, I added xfce and started the greeter and enabled autologin. Then rebooted.
I get the graphical desktop and the mouse works fine on the hub. Still no keyboard.
When I boot with a hardkernel image, the keyboard works fine. I have this keyboard issue with armbian images as well.

  1. …

Expected behaviour

I should be able to log in using the USB keyboard.

  • …

Actual behaviour

Keyboard does not result in keystrokes sent to tty1.

  • …

Extra details

  • …

When you connect it, do you get messages from dmesg, that it was recognized by the system?
You can also share the output of lsusb

What do you mean by “get messages from dmesg”? I don’t think I saw anything on the tty1 monitor. If I run dmesg after plugging in the usb hub, I see:

[12334.541310] usb 1-1.2: new full-speed USB device number 7 using xhci-hcd
[12334.678538] usb 1-1.2: New USB device found, idVendor=058f, idProduct=9254, bcdDevice= 3.12
[12334.678568] usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[12334.678579] usb 1-1.2: Product: Generic USB Hub
[12334.678588] usb 1-1.2: Manufacturer: ALCOR
[12334.742123] hub 1-1.2:1.0: USB hub found
[12334.742407] hub 1-1.2:1.0: 4 ports detected
[12335.025317] usb 1-1.2.3: new low-speed USB device number 8 using xhci-hcd
[12335.117183] usb 1-1.2.3: New USB device found, idVendor=04f2, idProduct=1126, bcdDevice= 2.00
[12335.117211] usb 1-1.2.3: New USB device strings: Mfr=0, Product=2, SerialNumber=0
[12335.117222] usb 1-1.2.3: Product: USB Optical Mouse
[12335.158112] input: USB Optical Mouse as /devices/platform/soc/ffe09000.usb/ff500000.usb/xhci-hcd.1.auto/usb1/1-1/1-1.2/1-1.2.3/1-1.2.3:1.0/0003:04F2:1126.0004/input/input2
[12335.158681] hid-generic 0003:04F2:1126.0004: input,hidraw0: USB HID v1.11 Mouse [USB Optical Mouse] on usb-xhci-hcd.1.auto-1.2.3/input0
[12335.229282] usb 1-1.2.4: new low-speed USB device number 9 using xhci-hcd
[12335.324716] usb 1-1.2.4: New USB device found, idVendor=04f2, idProduct=1125, bcdDevice= 0.70
[12335.324741] usb 1-1.2.4: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[12335.324749] usb 1-1.2.4: Product: Asus Keyboard
[12335.324757] usb 1-1.2.4: Manufacturer: CHICONY

This is what I meant by “I can unplug/replug and see the keyboard/sub change in dmesg output.” in my original message. (sub should have been usb)

(A) lsusb output (using the usb hub for mouse and keyboard) is:

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 2109:2817 VIA Labs, Inc. USB2.0 Hub
Bus 001 Device 003: ID 7392:7811 Edimax Technology Co., Ltd EW-7811Un 802.11n Wireless Adapter [Realtek RTL8188CUS]
Bus 001 Device 007: ID 058f:9254 Alcor Micro Corp. Hub
Bus 001 Device 008: ID 04f2:1126 Chicony Electronics Co., Ltd USB Optical Mouse
Bus 001 Device 009: ID 04f2:1125 Chicony Electronics Co., Ltd Asus Keyboard
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 002 Device 002: ID 2109:0817 VIA Labs, Inc. USB3.0 Hub

(B) If I plug the keyboard into an on board usb port lsusb and dmesg show:

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 2109:2817 VIA Labs, Inc. USB2.0 Hub
Bus 001 Device 003: ID 7392:7811 Edimax Technology Co., Ltd EW-7811Un 802.11n Wireless Adapter [Realtek RTL8188CUS]
Bus 001 Device 010: ID 058f:9254 Alcor Micro Corp. Hub
Bus 001 Device 011: ID 04f2:1126 Chicony Electronics Co., Ltd USB Optical Mouse
Bus 001 Device 013: ID 04f2:1125 Chicony Electronics Co., Ltd Asus Keyboard
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 002 Device 002: ID 2109:0817 VIA Labs, Inc. USB3.0 Hub

[12858.464846] usb 1-1.2.4: USB disconnect, device number 12
[12865.223641] usb 1-1.4: new low-speed USB device number 13 using xhci-hcd
[12865.366180] usb 1-1.4: New USB device found, idVendor=04f2, idProduct=1125, bcdDevice= 0.70
[12865.366209] usb 1-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[12865.366220] usb 1-1.4: Product: Asus Keyboard
[12865.366230] usb 1-1.4: Manufacturer: CHICONY

I use the hub because I am swapping the mouse/keyboard between 2 different computers.

Also I think I did a hub unplug between (A) and (B). That explains the shift in usb mouse from device number 008 to 010.

-- rouilj

In this case it might be related to kernel and/or overlays. Means we would need support for @MichaIng

I was able to boot and use: ubuntu-24.04-6.6-mate-odroid-c4-hc4-20260512.img.xz from ODROID Images without issue. So at least one 6.x kernel works with this keyboard.

I have to admit I am not sure what an overlay does. If the kernel sees the device as a USB keyboard it should just work right. Don’t all USB keyboard speak the same protocol?

Interesting, since USB input devices do not require any specific drivers or device tree entries, and generally the device is detected.

  • Do you have another USB keyboard to test whether it affects only this particular one?
  • Does the same happen on all 4 USB ports?
  • Does the USB hub have a dedicated PSU?

At least on my Odroid N2+, which shares the same kernel, my Logitech wireless keyboard with their nano USB dongle works on all 4 USB ports.

Hello:

Interesting, since USB input devices do not require any specific drivers or device tree entries, and generally the device is detected.

That matches my expectations.

  • Do you have another USB keyboard to test whether it affects only this particular one?

I do, but it is another asus keyboard and exhibit the same issue. I’ll have to see if I can find a usb keyboard from another manufacturer for testing.

  • Does the same happen on all 4 USB ports?

I’ve tested 3 of the ports and plugging the keyboard into any of them recognized the keyboard, but no keystrokes are passed. I am typing into
a terminal window and get no output. I can disable the graphical autologin and return to text only getty on tty1 if that would help.

I don’t know if I have virtual terminals available on the hdmi output. It looks like tty1 is the only one available and I didn’t see a getty for other virtual terminals. Note I have disabled the serial/uart ttySX and ttyASM0 gettys.

  • Does the USB hub have a dedicated PSU?

It does not but the mouse works fine through it. Also I have tested
by plugging the keyboard into the USB ports on the SBC. So even without a hub, the keybord is recognized but doesn’t sent characters/keycodes.

Other ideas?

Ok found a different keyboard. Plugged it into the same port as the non-working keyboard and it works as expected. This is the dmesg/lsusb output for the new working keyboard:

[  232.650888] usb 1-1.4: new low-speed USB device number 7 using xhci-hcd
[  232.794998] usb 1-1.4: New USB device found, idVendor=0e6a, idProduct=6001, bcdDevice= 0.07
[  232.795026] usb 1-1.4: New USB device strings: Mfr=0, Product=1, SerialNumber=0
[  232.795037] usb 1-1.4: Product: HID Keyboard Device
[  232.892541] input: HID Keyboard Device as /devices/platform/soc/ffe09000.usb/ff500000.usb/xhci-hcd.1.auto/usb1/1-1/1-1.4/1-1.4:1.0/0003:0E6A:6001.0004/input/input5
[  232.971433] hid-generic 0003:0E6A:6001.0004: input,hidraw0: USB HID v1.10 Keyboard [HID Keyboard Device] on usb-xhci-hcd.1.auto-1.4/input0
[  232.978865] input: HID Keyboard Device Consumer Control as /devices/platform/soc/ffe09000.usb/ff500000.usb/xhci-hcd.1.auto/usb1/1-1/1-1.4/1-1.4:1.1/0003:0E6A:6001.0005/input/input6
[  233.035378] input: HID Keyboard Device System Control as /devices/platform/soc/ffe09000.usb/ff500000.usb/xhci-hcd.1.auto/usb1/1-1/1-1.4/1-1.4:1.1/0003:0E6A:6001.0005/input/input7
[  233.035780] hid-generic 0003:0E6A:6001.0005: input,hidraw1: USB HID v1.10 Device [HID Keyboard Device] on usb-xhci-hcd.1.auto-1.4/input1

dietpi@odroid2:~$ lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 2109:2817 VIA Labs, Inc. USB2.0 Hub
Bus 001 Device 003: ID 7392:7811 Edimax Technology Co., Ltd EW-7811Un 802.11n Wireless Adapter [Realtek RTL8188CUS]
Bus 001 Device 005: ID 04f2:1126 Chicony Electronics Co., Ltd USB Optical Mouse
Bus 001 Device 007: ID 0e6a:6001 Megawin Technology Co., Ltd GEMBIRD Flexible keyboard KB-109F-B-DE
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 002 Device 002: ID 2109:0817 VIA Labs, Inc. USB3.0 Hub

Anything useful here?

Compared to the other output, this keyboard is explicitly detected as input device, loading the hid-generic driver. The same is the case for the mouse, but not for the ASUS keyboard.

See how it is detected differently as well:

[12335.324749] usb 1-1.2.4: Product: Asus Keyboard

vs

[  232.795037] usb 1-1.4: Product: HID Keyboard Device

One through the hub and one directly? Anyway, the functional keyboard is detected as generic HID keyboard device, hence the driver jumps in. The other is detected as “Asus Keyboard”, which is probably not recognized as keyboard device to pull in the generic (or any available) driver by mainline Linux.

Would be interesting whether this keyboard works on a x86_64 system with DietPi or Debian.

If it works with the Hardkernel Debian image, it would be good to check which kernel modules are loaded an available, when the ASUS keyboard is attached:

lsmod
grep -E 'CONFIG_(INPUT|KEYBOARD|HID)' /boot/config-*

E.g. CONFIG_HID_ASUS is not enabled in our case, though this seems to be for a small set of embedded notebook keyboards and touchpads: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/drivers/hid/Kconfig#n187

I have a bootable stick with LMDE - linux mint debian edition 7 on it.
Hopefully that will work. If you need me to find a live debian and boot from it I can give that a shot as well.

The keyboard works fine (via the usb hub) with LMDE it.

TL;DR CONFIG_HID_ASUS is set to m or y on working systems

With the lmde x86 box, lsmod and your grep command
produce this (voluminous) output:

Module                  Size  Used by
ccm                    20480  6
exfat                 106496  0
snd_seq_dummy          12288  0
snd_hrtimer            12288  1
snd_seq               110592  7 snd_seq_dummy
qrtr                   57344  2
rfcomm                102400  18
cmac                   12288  3
algif_hash             12288  1
algif_skcipher         12288  1
af_alg                 36864  6 algif_hash,algif_skcipher
bnep                   36864  2
iwlmvm                647168  0
snd_hda_codec_hdmi     98304  1
mac80211             1449984  1 iwlmvm
snd_hda_codec_realtek   217088  1
snd_hda_codec_generic   114688  1 snd_hda_codec_realtek
snd_hda_scodec_component    20480  1 snd_hda_codec_realtek
snd_hda_intel          61440  1
snd_usb_audio         503808  1
libarc4                12288  1 mac80211
snd_intel_dspcfg       40960  1 snd_hda_intel
snd_intel_sdw_acpi     16384  1 snd_intel_dspcfg
uvcvideo              155648  0
snd_hda_codec         217088  4 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec_realtek
btusb                  81920  0
videobuf2_vmalloc      20480  1 uvcvideo
snd_usbmidi_lib        53248  1 snd_usb_audio
uvc                    12288  1 uvcvideo
intel_rapl_msr         20480  0
snd_hda_core          143360  5 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec,snd_hda_codec_realtek
snd_rawmidi            53248  1 snd_usbmidi_lib
videobuf2_memops       16384  1 videobuf2_vmalloc
videobuf2_v4l2         36864  1 uvcvideo
btrtl                  32768  1 btusb
snd_hwdep              20480  2 snd_usb_audio,snd_hda_codec
snd_seq_device         16384  2 snd_seq,snd_rawmidi
intel_rapl_common      53248  1 intel_rapl_msr
videodev              368640  2 videobuf2_v4l2,uvcvideo
snd_pcm               188416  5 snd_hda_codec_hdmi,snd_hda_intel,snd_usb_audio,snd_hda_codec,snd_hda_core
btintel                69632  1 btusb
btbcm                  24576  1 btusb
snd_timer              53248  3 snd_seq,snd_hrtimer,snd_pcm
btmtk                  32768  1 btusb
videobuf2_common       81920  4 videobuf2_vmalloc,videobuf2_v4l2,uvcvideo,videobuf2_memops
iwlwifi               581632  1 iwlmvm
x86_pkg_temp_thermal    16384  0
mc                     94208  5 videodev,snd_usb_audio,videobuf2_v4l2,uvcvideo,videobuf2_common
bluetooth            1081344  44 btrtl,btmtk,btintel,btbcm,bnep,btusb,rfcomm
snd                   151552  19 snd_hda_codec_generic,snd_seq,snd_seq_device,snd_hda_codec_hdmi,snd_hwdep,snd_hda_intel,snd_usb_audio,snd_usbmidi_lib,snd_hda_codec,snd_hda_codec_realtek,snd_timer,snd_pcm,snd_rawmidi
intel_powerclamp       16384  0
joydev                 24576  0
soundcore              16384  1 snd
coretemp               16384  0
crc16                  12288  1 bluetooth
rapl                   20480  0
cfg80211             1392640  3 iwlmvm,iwlwifi,mac80211
intel_cstate           20480  0
mei_pxp                16384  0
mei_hdcp               28672  0
intel_uncore          258048  0
pcspkr                 12288  0
at24                   28672  0
mei_me                 57344  2
mei                   188416  5 mei_hdcp,mei_pxp,mei_me
binfmt_misc            28672  1
sg                     45056  0
evdev                  28672  16
msr                    12288  0
ecryptfs              147456  0
parport_pc             40960  0
ppdev                  24576  0
lp                     20480  0
parport                81920  3 parport_pc,lp,ppdev
efi_pstore             12288  0
configfs               69632  1
nfnetlink              20480  1
ip_tables              28672  0
x_tables               53248  1 ip_tables
autofs4                57344  2
squashfs               86016  1
loop                   40960  2
overlay               217088  1
isofs                  57344  1
cdrom                  81920  1 isofs
dm_mod                221184  6
raid10                 77824  0
raid456               200704  0
async_raid6_recov      20480  1 raid456
async_memcpy           16384  2 raid456,async_raid6_recov
async_pq               16384  2 raid456,async_raid6_recov
async_xor              16384  3 async_pq,raid456,async_raid6_recov
async_tx               16384  5 async_pq,async_memcpy,async_xor,raid456,async_raid6_recov
xor                    20480  1 async_xor
raid6_pq              122880  3 async_pq,raid456,async_raid6_recov
libcrc32c              12288  1 raid456
crc32c_generic         12288  0
raid1                  61440  0
raid0                  28672  0
md_mod                229376  4 raid1,raid10,raid0,raid456
hid_asus               40960  0
asus_wmi               98304  1 hid_asus
sparse_keymap          12288  1 asus_wmi
platform_profile       12288  1 asus_wmi
rfkill                 40960  9 iwlmvm,asus_wmi,bluetooth,cfg80211
battery                28672  1 asus_wmi
hid_generic            12288  0
usbhid                 77824  1 hid_asus
hid                   262144  3 usbhid,hid_generic,hid_asus
i915                 4386816  21
uas                    32768  0
usb_storage            94208  3 uas
drm_buddy              24576  1 i915
i2c_algo_bit           16384  1 i915
drm_display_helper    274432  1 i915
sd_mod                 81920  2
crct10dif_pclmul       12288  1
cec                    69632  2 drm_display_helper,i915
crc32_pclmul           12288  0
rc_core                73728  1 cec
crc32c_intel           16384  1
ahci                   49152  0
ghash_clmulni_intel    16384  0
ttm                   106496  1 i915
sha512_ssse3           53248  0
libahci                61440  1 ahci
xhci_pci               24576  0
xhci_hcd              364544  1 xhci_pci
drm_kms_helper        253952  2 drm_display_helper,i915
iTCO_wdt               16384  0
ehci_pci               16384  0
sha256_ssse3           32768  0
libata                462848  2 libahci,ahci
intel_pmc_bxt          16384  1 iTCO_wdt
ehci_hcd              110592  1 ehci_pci
sha1_ssse3             32768  0
iTCO_vendor_support    12288  1 iTCO_wdt
scsi_mod              327680  5 sd_mod,usb_storage,uas,libata,sg
usbcore               409600  12 xhci_hcd,ehci_pci,snd_usb_audio,usbhid,snd_usbmidi_lib,btmtk,usb_storage,uvcvideo,ehci_hcd,btusb,xhci_pci,uas
watchdog               49152  1 iTCO_wdt
e1000e                368640  0
aesni_intel           122880  8
drm                   774144  18 drm_kms_helper,drm_display_helper,drm_buddy,i915,ttm
gf128mul               16384  1 aesni_intel
crypto_simd            16384  1 aesni_intel
i2c_i801               36864  0
i2c_smbus              16384  1 i2c_i801
scsi_common            16384  6 scsi_mod,sd_mod,usb_storage,uas,libata,sg
cryptd                 28672  3 crypto_simd,ghash_clmulni_intel
lpc_ich                28672  0
usb_common             16384  4 xhci_hcd,usbcore,uvcvideo,ehci_hcd
fan                    24576  0
video                  81920  2 asus_wmi,i915
wmi                    28672  2 video,asus_wmi
button                 24576  0

# grep output
CONFIG_INPUT=y
CONFIG_INPUT_LEDS=y
CONFIG_INPUT_FF_MEMLESS=m
CONFIG_INPUT_SPARSEKMAP=m
CONFIG_INPUT_MATRIXKMAP=m
CONFIG_INPUT_VIVALDIFMAP=y
CONFIG_INPUT_MOUSEDEV=y
CONFIG_INPUT_MOUSEDEV_PSAUX=y
CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
CONFIG_INPUT_JOYDEV=m
CONFIG_INPUT_EVDEV=m
# CONFIG_INPUT_EVBUG is not set
CONFIG_INPUT_KEYBOARD=y
# CONFIG_KEYBOARD_ADC is not set
CONFIG_KEYBOARD_ADP5588=m
# CONFIG_KEYBOARD_ADP5589 is not set
CONFIG_KEYBOARD_APPLESPI=m
CONFIG_KEYBOARD_ATKBD=y
# CONFIG_KEYBOARD_QT1050 is not set
# CONFIG_KEYBOARD_QT1070 is not set
CONFIG_KEYBOARD_QT2160=m
# CONFIG_KEYBOARD_DLINK_DIR685 is not set
CONFIG_KEYBOARD_LKKBD=m
CONFIG_KEYBOARD_GPIO=m
CONFIG_KEYBOARD_GPIO_POLLED=m
# CONFIG_KEYBOARD_TCA6416 is not set
# CONFIG_KEYBOARD_TCA8418 is not set
# CONFIG_KEYBOARD_MATRIX is not set
CONFIG_KEYBOARD_LM8323=m
# CONFIG_KEYBOARD_LM8333 is not set
CONFIG_KEYBOARD_MAX7359=m
# CONFIG_KEYBOARD_MPR121 is not set
CONFIG_KEYBOARD_NEWTON=m
CONFIG_KEYBOARD_OPENCORES=m
# CONFIG_KEYBOARD_PINEPHONE is not set
# CONFIG_KEYBOARD_SAMSUNG is not set
CONFIG_KEYBOARD_STOWAWAY=m
CONFIG_KEYBOARD_SUNKBD=m
# CONFIG_KEYBOARD_TM2_TOUCHKEY is not set
CONFIG_KEYBOARD_XTKBD=m
CONFIG_KEYBOARD_CROS_EC=m
# CONFIG_KEYBOARD_CYPRESS_SF is not set
CONFIG_INPUT_MOUSE=y
CONFIG_INPUT_JOYSTICK=y
CONFIG_INPUT_TABLET=y
CONFIG_INPUT_TOUCHSCREEN=y
CONFIG_INPUT_MISC=y
# CONFIG_INPUT_AD714X is not set
# CONFIG_INPUT_BMA150 is not set
# CONFIG_INPUT_E3X0_BUTTON is not set
CONFIG_INPUT_PCSPKR=m
# CONFIG_INPUT_MMA8450 is not set
CONFIG_INPUT_APANEL=m
# CONFIG_INPUT_GPIO_BEEPER is not set
# CONFIG_INPUT_GPIO_DECODER is not set
# CONFIG_INPUT_GPIO_VIBRA is not set
CONFIG_INPUT_ATLAS_BTNS=m
CONFIG_INPUT_ATI_REMOTE2=m
CONFIG_INPUT_KEYSPAN_REMOTE=m
# CONFIG_INPUT_KXTJ9 is not set
CONFIG_INPUT_POWERMATE=m
CONFIG_INPUT_YEALINK=m
CONFIG_INPUT_CM109=m
# CONFIG_INPUT_REGULATOR_HAPTIC is not set
CONFIG_INPUT_AXP20X_PEK=m
CONFIG_INPUT_UINPUT=m
# CONFIG_INPUT_PCF8574 is not set
# CONFIG_INPUT_PWM_BEEPER is not set
# CONFIG_INPUT_PWM_VIBRA is not set
# CONFIG_INPUT_GPIO_ROTARY_ENCODER is not set
# CONFIG_INPUT_DA7280_HAPTICS is not set
# CONFIG_INPUT_ADXL34X is not set
# CONFIG_INPUT_IMS_PCU is not set
# CONFIG_INPUT_IQS269A is not set
# CONFIG_INPUT_IQS626A is not set
# CONFIG_INPUT_IQS7222 is not set
# CONFIG_INPUT_CMA3000 is not set
CONFIG_INPUT_XEN_KBDDEV_FRONTEND=y
CONFIG_INPUT_IDEAPAD_SLIDEBAR=m
CONFIG_INPUT_SOC_BUTTON_ARRAY=m
# CONFIG_INPUT_DRV260X_HAPTICS is not set
# CONFIG_INPUT_DRV2665_HAPTICS is not set
# CONFIG_INPUT_DRV2667_HAPTICS is not set
CONFIG_HID_SUPPORT=y
CONFIG_HID=m
CONFIG_HID_BATTERY_STRENGTH=y
CONFIG_HIDRAW=y
CONFIG_HID_GENERIC=m
CONFIG_HID_A4TECH=m
CONFIG_HID_ACCUTOUCH=m
CONFIG_HID_ACRUX=m
CONFIG_HID_ACRUX_FF=y
CONFIG_HID_APPLE=m
CONFIG_HID_APPLEIR=m
CONFIG_HID_ASUS=m
CONFIG_HID_AUREAL=m
CONFIG_HID_BELKIN=m
CONFIG_HID_BETOP_FF=m
CONFIG_HID_BIGBEN_FF=m
CONFIG_HID_CHERRY=m
CONFIG_HID_CHICONY=m
CONFIG_HID_CORSAIR=m
CONFIG_HID_COUGAR=m
CONFIG_HID_MACALLY=m
CONFIG_HID_PRODIKEYS=m
CONFIG_HID_CMEDIA=m
CONFIG_HID_CP2112=m
CONFIG_HID_CREATIVE_SB0540=m
CONFIG_HID_CYPRESS=m
CONFIG_HID_DRAGONRISE=m
CONFIG_HID_EMS_FF=m
CONFIG_HID_ELAN=m
CONFIG_HID_ELECOM=m
CONFIG_HID_ELO=m
# CONFIG_HID_EVISION is not set
CONFIG_HID_EZKEY=m
CONFIG_HID_FT260=m
CONFIG_HID_GEMBIRD=m
CONFIG_HID_GFRM=m
CONFIG_HID_GLORIOUS=m
CONFIG_HID_HOLTEK=m
CONFIG_HID_VIVALDI_COMMON=m
# CONFIG_HID_GOODIX_SPI is not set
CONFIG_HID_GOOGLE_HAMMER=m
# CONFIG_HID_GOOGLE_STADIA_FF is not set
CONFIG_HID_VIVALDI=m
CONFIG_HID_GT683R=m
CONFIG_HID_KEYTOUCH=m
CONFIG_HID_KYE=m
CONFIG_HID_UCLOGIC=m
CONFIG_HID_WALTOP=m
CONFIG_HID_VIEWSONIC=m
# CONFIG_HID_VRC2 is not set
# CONFIG_HID_XIAOMI is not set
CONFIG_HID_GYRATION=m
CONFIG_HID_ICADE=m
CONFIG_HID_ITE=m
CONFIG_HID_JABRA=m
CONFIG_HID_TWINHAN=m
CONFIG_HID_KENSINGTON=m
CONFIG_HID_LCPOWER=m
CONFIG_HID_LED=m
CONFIG_HID_LENOVO=m
# CONFIG_HID_LETSKETCH is not set
CONFIG_HID_LOGITECH=m
CONFIG_HID_LOGITECH_DJ=m
CONFIG_HID_LOGITECH_HIDPP=m
CONFIG_HID_MAGICMOUSE=m
CONFIG_HID_MALTRON=m
CONFIG_HID_MAYFLASH=m
# CONFIG_HID_MEGAWORLD_FF is not set
CONFIG_HID_REDRAGON=m
CONFIG_HID_MICROSOFT=m
CONFIG_HID_MONTEREY=m
CONFIG_HID_MULTITOUCH=m
CONFIG_HID_NINTENDO=m
CONFIG_HID_NTI=m
CONFIG_HID_NTRIG=m
# CONFIG_HID_NVIDIA_SHIELD is not set
CONFIG_HID_ORTEK=m
CONFIG_HID_PANTHERLORD=m
CONFIG_HID_PENMOUNT=m
CONFIG_HID_PETALYNX=m
CONFIG_HID_PICOLCD=m
CONFIG_HID_PICOLCD_FB=y
CONFIG_HID_PICOLCD_BACKLIGHT=y
CONFIG_HID_PICOLCD_LEDS=y
CONFIG_HID_PICOLCD_CIR=y
CONFIG_HID_PLANTRONICS=m
CONFIG_HID_PLAYSTATION=m
# CONFIG_HID_PXRC is not set
# CONFIG_HID_RAZER is not set
CONFIG_HID_PRIMAX=m
CONFIG_HID_RETRODE=m
CONFIG_HID_ROCCAT=m
CONFIG_HID_SAITEK=m
CONFIG_HID_SAMSUNG=m
CONFIG_HID_SEMITEK=m
# CONFIG_HID_SIGMAMICRO is not set
CONFIG_HID_SONY=m
CONFIG_HID_SPEEDLINK=m
CONFIG_HID_STEAM=m
CONFIG_HID_STEELSERIES=m
CONFIG_HID_SUNPLUS=m
CONFIG_HID_RMI=m
CONFIG_HID_GREENASIA=m
CONFIG_HID_HYPERV_MOUSE=m
CONFIG_HID_SMARTJOYPLUS=m
CONFIG_HID_TIVO=m
CONFIG_HID_TOPSEED=m
# CONFIG_HID_TOPRE is not set
CONFIG_HID_THINGM=m
CONFIG_HID_THRUSTMASTER=m
CONFIG_HID_UDRAW_PS3=m
CONFIG_HID_U2FZERO=m
# CONFIG_HID_UNIVERSAL_PIDFF is not set
CONFIG_HID_WACOM=m
CONFIG_HID_WIIMOTE=m
# CONFIG_HID_WINWING is not set
CONFIG_HID_XINMO=m
CONFIG_HID_ZEROPLUS=m
CONFIG_HID_ZYDACRON=m
CONFIG_HID_SENSOR_HUB=m
CONFIG_HID_SENSOR_CUSTOM_SENSOR=m
CONFIG_HID_ALPS=m
# CONFIG_HID_MCP2200 is not set
CONFIG_HID_MCP2221=m
# CONFIG_HID_BPF is not set
CONFIG_HID_PID=y
CONFIG_HID_SENSOR_ACCEL_3D=m
CONFIG_HID_SENSOR_IIO_COMMON=m
CONFIG_HID_SENSOR_IIO_TRIGGER=m
CONFIG_HID_SENSOR_GYRO_3D=m
# CONFIG_HID_SENSOR_HUMIDITY is not set
CONFIG_HID_SENSOR_ALS=m
CONFIG_HID_SENSOR_PROX=m
CONFIG_HID_SENSOR_MAGNETOMETER_3D=m
CONFIG_HID_SENSOR_INCLINOMETER_3D=m
CONFIG_HID_SENSOR_DEVICE_ROTATION=m
# CONFIG_HID_SENSOR_CUSTOM_INTEL_HINGE is not set
CONFIG_HID_SENSOR_PRESS=m
CONFIG_HID_SENSOR_TEMP=m

CONFIG_HID_ASUS=m which I assume means loadable kernel module. Also there are mutiple hits on hid_asus in lsmod.

I have a second odroid with ubuntu-24.04-6.6-mate-odroid-c4-hc4-20260512.img.xz on it (see prior post for url info) and I
ran: ls_usb -a; uname -a; lsmod; egrep …; and I see:

Distributor ID:	Ubuntu
Description:	Ubuntu 24.04.4 LTS
Release:	24.04
Codename:	noble

Linux odroid1 6.6.121-147 #1 SMP PREEMPT Mon Jan 26 15:01:31 
UTC 2026 aarch64 aarch64 aarch64 GNU/Linux

Module                  Size  Used by
overlay               143360  0
br_netfilter           32768  0
bridge                278528  1 br_netfilter
stp                    12288  1 bridge
llc                    16384  2 bridge,stp
qrtr                   28672  2
cfg80211              405504  0
rfkill                 28672  4 cfg80211
ip6t_REJECT            12288  1
nf_reject_ipv6         20480  1 ip6t_REJECT
xt_hl                  12288  22
ip6t_rt                16384  3
ipt_REJECT             12288  1
nf_reject_ipv4         12288  1 ipt_REJECT
xt_LOG                 16384  10
nf_log_syslog          16384  10
nft_limit              12288  13
xt_limit               12288  0
xt_addrtype            12288  4
xt_tcpudp              16384  60
xt_conntrack           12288  16
nf_conntrack          180224  1 xt_conntrack
nf_defrag_ipv6         24576  1 nf_conntrack
nf_defrag_ipv4         12288  1 nf_conntrack
nft_compat             16384  117
meson_vdec             77824  0
nf_tables             241664  630 nft_compat,nft_limit
libcrc32c              12288  2 nf_conntrack,nf_tables
videobuf2_dma_contig    20480  1 meson_vdec
v4l2_mem2mem           32768  1 meson_vdec
videobuf2_memops       16384  1 videobuf2_dma_contig
videobuf2_v4l2         28672  2 meson_vdec,v4l2_mem2mem
ir_nec_decoder         16384  0
videodev              249856  3 meson_vdec,videobuf2_v4l2,v4l2_mem2mem
rc_odroid              12288  0
videobuf2_common       49152  5 meson_vdec,videobuf2_dma_contig,videobuf2_v4l2,v4l2_mem2mem,videobuf2_memops
meson_ir               12288  0
aml_gpiomem            12288  0
sch_fq_codel           16384  2
fuse                  131072  5
dm_mod                131072  0
nfnetlink              20480  4 nft_compat,nf_tables
ip_tables              32768  0
x_tables               45056  11 xt_conntrack,nft_compat,xt_LOG,xt_tcpudp,xt_addrtype,ip6t_rt,ipt_REJECT,ip_tables,xt_limit,xt_hl,ip6t_REJECT
ipv6                  589824  53 bridge,br_netfilter,nf_reject_ipv6
spidev                 28672  0
rtc_meson_vrtc         16384  1


CONFIG_INPUT=y
CONFIG_INPUT_LEDS=y
CONFIG_INPUT_FF_MEMLESS=y
CONFIG_INPUT_POLLDEV=y
# CONFIG_INPUT_SPARSEKMAP is not set
# CONFIG_INPUT_MATRIXKMAP is not set
CONFIG_INPUT_MOUSEDEV=y
# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
CONFIG_INPUT_JOYDEV=y
CONFIG_INPUT_EVDEV=y
# CONFIG_INPUT_EVBUG is not set
CONFIG_INPUT_KEYBOARD=y
# CONFIG_KEYBOARD_ADC is not set
# CONFIG_KEYBOARD_ADP5588 is not set
# CONFIG_KEYBOARD_ADP5589 is not set
# CONFIG_KEYBOARD_ATKBD is not set
# CONFIG_KEYBOARD_QT1050 is not set
# CONFIG_KEYBOARD_QT1070 is not set
# CONFIG_KEYBOARD_QT2160 is not set
# CONFIG_KEYBOARD_CLPS711X is not set
# CONFIG_KEYBOARD_DLINK_DIR685 is not set
# CONFIG_KEYBOARD_LKKBD is not set
# CONFIG_KEYBOARD_EP93XX is not set
CONFIG_KEYBOARD_GPIO=y
CONFIG_KEYBOARD_GPIO_POLLED=y
# CONFIG_KEYBOARD_TCA6416 is not set
# CONFIG_KEYBOARD_TCA8418 is not set
# CONFIG_KEYBOARD_MATRIX is not set
# CONFIG_KEYBOARD_LM8323 is not set
# CONFIG_KEYBOARD_LM8333 is not set
# CONFIG_KEYBOARD_LPC32XX is not set
# CONFIG_KEYBOARD_MAX7359 is not set
# CONFIG_KEYBOARD_MCS is not set
# CONFIG_KEYBOARD_MPR121 is not set
# CONFIG_KEYBOARD_SNVS_PWRKEY is not set
# CONFIG_KEYBOARD_IMX is not set
# CONFIG_KEYBOARD_NEWTON is not set
# CONFIG_KEYBOARD_NOMADIK is not set
# CONFIG_KEYBOARD_TEGRA is not set
# CONFIG_KEYBOARD_OPENCORES is not set
# CONFIG_KEYBOARD_PINEPHONE is not set
# CONFIG_KEYBOARD_PXA27x is not set
# CONFIG_KEYBOARD_SAMSUNG is not set
# CONFIG_KEYBOARD_GOLDFISH_EVENTS is not set
# CONFIG_KEYBOARD_STOWAWAY is not set
# CONFIG_KEYBOARD_ST_KEYSCAN is not set
# CONFIG_KEYBOARD_SUNKBD is not set
# CONFIG_KEYBOARD_SH_KEYSC is not set
# CONFIG_KEYBOARD_OMAP4 is not set
# CONFIG_KEYBOARD_SPEAR is not set
# CONFIG_KEYBOARD_TM2_TOUCHKEY is not set
# CONFIG_KEYBOARD_XTKBD is not set
# CONFIG_KEYBOARD_CAP11XX is not set
# CONFIG_KEYBOARD_BCM is not set
# CONFIG_KEYBOARD_MT6779 is not set
# CONFIG_KEYBOARD_MTK_PMIC is not set
# CONFIG_KEYBOARD_CYPRESS_SF is not set
CONFIG_INPUT_MOUSE=y
CONFIG_INPUT_JOYSTICK=y
CONFIG_INPUT_TABLET=y
CONFIG_INPUT_TOUCHSCREEN=y
CONFIG_INPUT_MISC=y
CONFIG_INPUT_AD714X=m
CONFIG_INPUT_AD714X_I2C=m
CONFIG_INPUT_AD714X_SPI=m
CONFIG_INPUT_ARIEL_PWRBUTTON=m
CONFIG_INPUT_ATMEL_CAPTOUCH=m
CONFIG_INPUT_BBNSM_PWRKEY=m
CONFIG_INPUT_BMA150=m
CONFIG_INPUT_E3X0_BUTTON=m
CONFIG_INPUT_MMA8450=m
CONFIG_INPUT_GPIO_BEEPER=m
CONFIG_INPUT_GPIO_DECODER=m
CONFIG_INPUT_GPIO_VIBRA=m
CONFIG_INPUT_ATI_REMOTE2=m
CONFIG_INPUT_KEYSPAN_REMOTE=m
CONFIG_INPUT_KXTJ9=m
CONFIG_INPUT_POWERMATE=m
CONFIG_INPUT_YEALINK=m
CONFIG_INPUT_CM109=m
CONFIG_INPUT_REGULATOR_HAPTIC=m
CONFIG_INPUT_UINPUT=y
CONFIG_INPUT_PCF8574=m
CONFIG_INPUT_PWM_BEEPER=m
CONFIG_INPUT_PWM_VIBRA=m
CONFIG_INPUT_RK805_PWRKEY=y
CONFIG_INPUT_GPIO_ROTARY_ENCODER=m
CONFIG_INPUT_DA7280_HAPTICS=m
CONFIG_INPUT_ADXL34X=m
CONFIG_INPUT_ADXL34X_I2C=m
CONFIG_INPUT_ADXL34X_SPI=m
CONFIG_INPUT_IBM_PANEL=m
CONFIG_INPUT_IMS_PCU=m
CONFIG_INPUT_IQS269A=m
CONFIG_INPUT_IQS626A=m
CONFIG_INPUT_IQS7222=m
CONFIG_INPUT_CMA3000=m
CONFIG_INPUT_CMA3000_I2C=m
CONFIG_INPUT_DRV260X_HAPTICS=m
CONFIG_INPUT_DRV2665_HAPTICS=m
CONFIG_INPUT_DRV2667_HAPTICS=m
CONFIG_INPUT_HISI_POWERKEY=m
CONFIG_INPUT_SC27XX_VIBRA=m
CONFIG_INPUT_RT5120_PWRKEY=m
CONFIG_HID_SUPPORT=y
CONFIG_HID=y
# CONFIG_HID_BATTERY_STRENGTH is not set
CONFIG_HIDRAW=y
CONFIG_HID_GENERIC=y
CONFIG_HID_A4TECH=y
# CONFIG_HID_ACCUTOUCH is not set
# CONFIG_HID_ACRUX is not set
CONFIG_HID_APPLE=y
# CONFIG_HID_APPLEIR is not set
CONFIG_HID_ASUS=y
CONFIG_HID_AUREAL=y
# CONFIG_HID_BELKIN is not set
# CONFIG_HID_BETOP_FF is not set
CONFIG_HID_BIGBEN_FF=m
CONFIG_HID_CHERRY=y
CONFIG_HID_CHICONY=y
# CONFIG_HID_CORSAIR is not set
# CONFIG_HID_COUGAR is not set
# CONFIG_HID_MACALLY is not set
# CONFIG_HID_PRODIKEYS is not set
# CONFIG_HID_CMEDIA is not set
# CONFIG_HID_CP2112 is not set
# CONFIG_HID_CREATIVE_SB0540 is not set
CONFIG_HID_CYPRESS=y
CONFIG_HID_DRAGONRISE=m
# CONFIG_HID_EMS_FF is not set
# CONFIG_HID_ELAN is not set
# CONFIG_HID_ELECOM is not set
# CONFIG_HID_ELO is not set
# CONFIG_HID_EVISION is not set
CONFIG_HID_EZKEY=y
# CONFIG_HID_FT260 is not set
# CONFIG_HID_GEMBIRD is not set
# CONFIG_HID_GFRM is not set
# CONFIG_HID_GLORIOUS is not set
# CONFIG_HID_HOLTEK is not set
# CONFIG_HID_GOOGLE_STADIA_FF is not set
# CONFIG_HID_VIVALDI is not set
# CONFIG_HID_GT683R is not set
# CONFIG_HID_KEYTOUCH is not set
CONFIG_HID_KYE=y
# CONFIG_HID_UCLOGIC is not set
# CONFIG_HID_WALTOP is not set
# CONFIG_HID_VIEWSONIC is not set
# CONFIG_HID_VRC2 is not set
# CONFIG_HID_XIAOMI is not set
CONFIG_HID_GYRATION=y
# CONFIG_HID_ICADE is not set
# CONFIG_HID_ITE is not set
# CONFIG_HID_JABRA is not set
CONFIG_HID_TWINHAN=y
CONFIG_HID_KENSINGTON=y
# CONFIG_HID_LCPOWER is not set
# CONFIG_HID_LED is not set
CONFIG_HID_LENOVO=y
# CONFIG_HID_LETSKETCH is not set
CONFIG_HID_LOGITECH=y
CONFIG_HID_LOGITECH_DJ=y
CONFIG_HID_LOGITECH_HIDPP=y
# CONFIG_HID_MAGICMOUSE is not set
# CONFIG_HID_MALTRON is not set
# CONFIG_HID_MAYFLASH is not set
# CONFIG_HID_MEGAWORLD_FF is not set
# CONFIG_HID_REDRAGON is not set
CONFIG_HID_MICROSOFT=y
CONFIG_HID_MONTEREY=y
CONFIG_HID_MULTITOUCH=m
# CONFIG_HID_NINTENDO is not set
# CONFIG_HID_NTI is not set
# CONFIG_HID_NTRIG is not set
# CONFIG_HID_NVIDIA_SHIELD is not set
CONFIG_HID_ORTEK=y
CONFIG_HID_PANTHERLORD=y
CONFIG_HID_PENMOUNT=y
CONFIG_HID_PETALYNX=y
# CONFIG_HID_PICOLCD is not set
# CONFIG_HID_PLANTRONICS is not set
# CONFIG_HID_PXRC is not set
# CONFIG_HID_RAZER is not set
# CONFIG_HID_PRIMAX is not set
# CONFIG_HID_RETRODE is not set
# CONFIG_HID_ROCCAT is not set
# CONFIG_HID_SAITEK is not set
CONFIG_HID_SAMSUNG=y
# CONFIG_HID_SEMITEK is not set
# CONFIG_HID_SIGMAMICRO is not set
CONFIG_HID_SONY=y
# CONFIG_HID_SPEEDLINK is not set
CONFIG_HID_STEAM=m
# CONFIG_HID_STEELSERIES is not set
CONFIG_HID_SUNPLUS=y
CONFIG_HID_RMI=y
# CONFIG_HID_GREENASIA is not set
CONFIG_HID_SMARTJOYPLUS=m
CONFIG_HID_TIVO=y
CONFIG_HID_TOPSEED=y
# CONFIG_HID_TOPRE is not set
# CONFIG_HID_THINGM is not set
# CONFIG_HID_THRUSTMASTER is not set
# CONFIG_HID_UDRAW_PS3 is not set
# CONFIG_HID_U2FZERO is not set
# CONFIG_HID_WACOM is not set
CONFIG_HID_WIIMOTE=m
CONFIG_HID_XINMO=y
# CONFIG_HID_ZEROPLUS is not set
CONFIG_HID_ZYDACRON=y
# CONFIG_HID_SENSOR_HUB is not set
# CONFIG_HID_ALPS is not set
# CONFIG_HID_MCP2200 is not set
# CONFIG_HID_MCP2221 is not set
# CONFIG_HID_PID is not set

which has CONFIG_HID_ASUS=y.

I can’t use the stock hardkernel image with a 4.x (9??) kernel because
I want to run k3s on it and need cgroups v2 with the cpu component.
The stock 4.9 kernel won’t do cgroups 2 including the cpu component AFAICT.

All my attempts to upgrade the hardkernel image’s kernel to 6.x by manipulating /media/boot lead to a non-booting image.
Hence a replacement image with a working kernel.

I was hoping to use dietpi as it is smaller, has a modern kernel and provides some TUI config tools similar to what I find on my rasp pi.

Thanks, with CONFIG_HID_ASUS=m and the hid_asus loaded I think it is clear. I’ll patch our config and trigger a build. Hang on …

EDIT:

Looks like the job failed in Build Asset.

Yeah I fully implemented a new overlay auto-builder the last days, and did not test it for all kernel families yet. Might happen a few more times, since the overlays are now also all tested against one or more base device trees. Might reveal a few buggy ones.

The build is ready:

G_DEV_TEST_FIRMWARE 

Looks good. I assume this will be included in all future release versions?

Also you mentioned:

What are overlays? New/updated kernel modules not included in the upstream build?

Again thanks for the fast turnaround. Now to do the work I actually have to do.

– rouilj

Right. If it works, I’ll assure this module is added to all our kernel builds.

Device tree overlays allow to enable/disable/configure onboard features of SBCs. In most cases this is about GPIO features, like UART, I2C, SPI, 1-wire, PWM interfaces etc. But also, e.g. on the Odroid N2, there is an overlay to enable access to the SPI flash storage, to flash/update the bootloader for booting from USB (and potentially SATA and NVMe). Since it shares the same bus with the eMMC module, the latter needs to have its bus width = max bandwidth reduced. For this reason it is not enabled by default, but behind an overlay. Luckily, for the Odroid HC4 with its SATA ports, this is not the case/needed.

@rouilj
Just to be sure: that kernel build really made the ASUS functional?

Correct. The keyboard worked after running G_DEV_TEST_FIRMWARE and a reboot.

To confirm I just:

  1. reburned the original DietPi_OdroidC4-ARMv8-Trixie.img.xz to my eMMC
  2. verified the keyboard didn’t work on tty1
  3. logged in as root via ssh
  4. ran through setup (disabling the uart)
  5. ran G_DEV_TEST_FIRMWARE
  6. rebooted
  7. verified the keyboard works on tty1

So everything looks like it works.

Thanks.

Good, the driver will be available in any of our kernel builds from now on: config: enable ASUS keyboard driver · MichaIng/build@2a2062d · GitHub