Hi list,
Apologies if this isn’t an appropriate place for such a question, but I have a question about how to configure NixOS to use the AMDGPU-PRO driver.
Specifically, I’m trying to use the OpenCL part, with a Radeon Vega FE graphics card. (I would actually prefer to use the open-source driver if possible, but my understanding is that support for this doesn’t exist yet for this card, and won’t until linux 4.17. However, I’m having a lot of trouble understanding the structure of the open-source driver’s various pieces – I think the names they chose for everything make it super hard to Google for – and if anyone has any advice there I’d be really grateful)
By grepping around the package repo, I’ve found that AMDGPU-PRO has a package:
nixpkgs/pkgs/os-specific/linux/amdgpu-pro/default.nix
and a module:
/etc/nixos/pkgs_me_2/nixpkgs/nixos/modules/hardware/video/amdgpu-pro.nix
The module code implies to me (I’m definitely not fluent in nixlang!) that if I add “amdgpu-pro” to my config.services.xserver.drivers list, that this will enable the module and trigger everything.
However, I’ve tried this, and I’m not sure it’s working correctly. Upon reboot, both commands dmesg -T | grep amd and lsmod | grep amd are empty. Running modprobe manually does move things forward:
# modprobe amdgpu
# lsmod | grep amd
amdgpu 2097152 0
amdttm 90112 1 amdgpu
amdkcl 20480 1 amdgpu
drm_kms_helper 122880 2 amdgpu,i915
drm 286720 6 amdttm,amdgpu,amdkcl,i915,drm_kms_helper
agpgart 36864 3 amdttm,intel_gtt,drm
i2c_algo_bit 16384 2 amdgpu,i915
i2c_core 53248 5 i2c_algo_bit,amdgpu,i915,drm_kms_helper,drm
after which I get:
# dmesg -T | grep amd
[Mon Feb 12 10:07:49 2018] amdkcl: loading out-of-tree module taints kernel.
[Mon Feb 12 10:07:49 2018] [drm] amdgpu kernel modesetting enabled.
So, I thought that possibly, this could be it (other than the annoyance of having to manually modprobe). But, I also get:
# clinfo
clinfo: clinfo: no version information available (required by clinfo)
clinfo: clinfo: no version information available (required by clinfo)
clinfo: clinfo: no version information available (required by clinfo)
clinfo: clinfo: no version information available (required by clinfo)
clinfo: clinfo: no version information available (required by clinfo)
clinfo: clinfo: no version information available (required by clinfo)
clinfo: clinfo: no version information available (required by clinfo)
clinfo: clinfo: no version information available (required by clinfo)
clinfo: clinfo: no version information available (required by clinfo)
clinfo: symbol lookup error: clinfo: undefined symbol:
# opencl-info
ERROR: clGetPlatformIDs(-1001)
So, I’m stuck! Possibly it’s actually working already, but clinfo/opencl-info aren’t good tests...
If this is an actual bug, let me know and I’ll move this into the issue tracker. I am rather assuming it’s a PEBKAC issue though… any and all help very much appreciated!
Best regards,
Matthew Robbetts