Nixpkgs: Roccat Ryos Keyboard not Working During Early Boot

Created on 2 Apr 2017  路  15Comments  路  Source: NixOS/nixpkgs

Issue description

When trying to enter the decryption key during early boot, my USB keyboard (Roccat Ryos MK Pro) is not working. Hence I am unable to enter the decryption key. Using a Logitech K120 Keyboard works fine, so this issue seems to be hardware related.

Steps to reproduce

  1. Boot NixOS install image (EFI).
  2. Partition drive

    • EFI EF00 (200MiB)

    • crypt container 8E00 *

  3. Create LUKS Container
  4. Open LUKS Container
  5. Setup LVM

    • swap 4G

    • root *

  6. Format disks
  7. Mount on /mnt
  8. nixos-generate-config --root /mnt
  9. Edit config (add section for boot.initrd.luks.devices)
  10. nixos-install
  11. Reboot.
  12. Try to enter key with Roccat keyboard --> not working
  13. Try to enter key with Logitech K120 --> working fine and booting
  14. Both keyboards work in login screen.

Technical details

  • System: 17.03.873.0c041520c3 (Gorilla)
  • Nix version: nix-env (Nix) 1.11.8
  • Nixpkgs version: "17.03.873.0c041520c3"
kernel nixos

Most helpful comment

I imagine it would be nice to have a reverse mapping DB, similar to command-not-found :-)

All 15 comments

I suspect it needs some specific kernel module.

Indeed. Manually adding hid_roccat_ryos to boot.initrd.availableKernelModules does the trick for me. However I feel like this should not be something I have to do manually.

Is this something a beginner can contribute? Or should I close this issue?

You can try to extend the code in https://github.com/NixOS/nixpkgs/blob/master/nixos/modules/installer/tools/nixos-generate-config.pl to make nixos-generate-config add it to hardware-configuration.nix.

That's exactly what I was just writing :-)

Adding modules to the defaults just to support specific (less common) vendors would seem a bit strange to me personally.

If you are fine with that I'll give it a shot. However it'll probably take me some time.

I've been wondering whether it's possible to have some generic code for detecting what modules+firmwares would be (possibly) loaded by the kernel if all were visible. The drivers surely should contain PCI ID lists or some other way to determine whether they should load...

Yes, they do:

$ modinfo result/lib/modules/4.10.8/kernel/drivers/hid/hid-roccat-ryos.ko.xz ... alias: hid:b0003g*v00001E7Dp00003232 alias: hid:b0003g*v00001E7Dp000031CE alias: hid:b0003g*v00001E7Dp00003138

I haven't looked up the specific format, but b0003 probably stands for USB and the v00001E7D and p00003232 stand for the USB ids.

The Source Is The Documentation(tm): https://github.com/torvalds/linux/blob/master/scripts/mod/file2alias.c

v and p are vendor-id and product-id, respectively

I imagine it would be nice to have a reverse mapping DB, similar to command-not-found :-)

Any news on this issue?

Thank you for your contributions.

This has been automatically marked as stale because it has had no activity for 180 days.

If this is still important to you, we ask that you leave a comment below. Your comment can be as simple as "still important to me". This lets people see that at least one person still cares about this. Someone will have to do this at most twice a year if there is no other activity.

Here are suggestions that might help resolve this more quickly:

  1. Search for maintainers and people that previously touched the related code and @ mention them in a comment.
  2. Ask on the NixOS Discourse.
  3. Ask on the #nixos channel on irc.freenode.net.

Still important to me.

Darn, now I'm tempted reinstall.

Not from my side, I'm no longer using NixOS :/

Was this page helpful?
0 / 5 - 0 ratings

Related issues

tomberek picture tomberek  路  3Comments

retrry picture retrry  路  3Comments

ob7 picture ob7  路  3Comments

rzetterberg picture rzetterberg  路  3Comments

copumpkin picture copumpkin  路  3Comments