I’d run the failing commands under ktruss, one should be able to see the path it tries to open.
---- On Sat, Sep 19, 2026 at 7:40 AM P Gman <[email protected]> wrote: > Hello > > I'm using NetBSD 11.0 > > cat /proc/cpuinfo (partial; showing cpu 0 only) > > processor : 0 > vendor_id : AuthenticAMD > cpu family : 23 > model : 17 > model name : AMD Ryzen 5 PRO 2400G with Radeon Vega Graphics > > cpuctl list: > > Num HwId Unbound LWPs Interrupts Last change #Intr > ---- ---- ------------ ---------- ------------------------ ----- > 0 0 online intr Fri Sep 18 08:01:29 2026 13 > 1 1 online intr Fri Sep 18 08:01:29 2026 1 > 2 2 online intr Fri Sep 18 08:01:29 2026 1 > 3 3 online intr Fri Sep 18 08:01:29 2026 1 > 4 4 online intr Fri Sep 18 08:01:29 2026 1 > 5 5 online intr Fri Sep 18 08:01:29 2026 1 > 6 6 online intr Fri Sep 18 08:01:29 2026 1 > 7 7 online intr Fri Sep 18 08:01:29 2026 1 > > The microcode was downloaded from the kernel.org git; url provided by > cpuctl(8) > > The firmware was copied before attempting ucode update to: > > /libdata/firmware/x86/amd/microcode_amd_fam17h.bin > > Here's the command description under cpuctl(8) > > ucode [cpu] [file] > This applies the microcode patch to CPUs. Unless -v was > given, > errors indicating that the microcode already exists on the > CPU > in question are ignored. If cpu is not specified or -1, all > CPUs are updated. (AMD CPU updates need to update all CPUs > at > once.) If cpu is -2, the current CPUs are updated. The > default filename is used if no filename is specified. The > file > pathname containing the ucode updates are searched relative > to > the default firmware path found in sysctl(7) > hw.firmware.path. > The identify command prints the installed version on the > specified CPUs. On success the identify command shows > different ucode versions before and after this command. > > Some problems will only be reported in the kernel message > buffer, so check dmesg(8) in case of errors. > > As mentioned, the file pathname is searched relative to hw.firmware.path: > > hw.firmware.path = > > /libdata/firmware:/usr/libdata/firmware:/usr/pkg/libdata/firmware:/usr/pkg/libdata > > Also, notice that all cpus must be handled together. I'm guessing > that's where the -1 option comes into play. > > So, I tried the following forms: > > > doas cpuctl ucode -1 /x86/amd/microcode_amd_fam17h.bin > > doas cpuctl ucode -1 /libdata/firmware/x86/amd/microcode_amd_fam17h.bin > > doas cpuctl ucode -1 microcode_amd_fam17h.bin > > doas cpuctl ucode -1 > > Each form returns "cpuctl: -1: No such file or directory" > > And, just in case the problem is cpu -1, I tried it with cpu 0, and it > returned: > > > doas cpuctl ucode 0 /x86/amd/microcode_amd_fam17h.bin > > cpuctl: ucode updates on AMD can only be done on all CPUs at once > cpuctl: unsupported > > I'm hoping it's something extremely obvious, but maybe I'm too tired > at the moment to see it. >
