[qubes-users] [HCL] ASRock B550 Phantom Gaming 4/ac

Hello,
I’m posting HCL report for my computer with this ASRock B550 Phantom Gaming 4/ac and Ryzen 7 5800X. I’ve few comments:

  • You need to configure the MoBo, most notably to enable the IOMMU.
  • The installer 4.0.4 boot shows blank screen after “Xen is relinquishing VGA console” or something similar. (I had a very small time to read it.) In the nutshell, the solution was UEFI Troubleshooting | Qubes OS , but the Qubes 4.0.4 installer seems to have immutable filesystem, so I’ve adjusted the iso file by sed. Note that there are two occurrences of both strings, I have no idea why.

Suspend to RAM: Does not resume, no idea why. I have suspected it to be related to smt=off (see https://www.pcgamer.com/amd-is-analyzing-usb-disconnect-issue-in-500-series-motherboards/ ), but it seems to behave the same even with smt=on. Using kernel 5.10 did not help.

Sound: The card does not seem to be recognized, so I can just use the DisplayPort sound output and no sound input :frowning: Also, the sound output is not very good (voices are relatively quiet), but there can be multiple components to blame.

USB:

LAN: not tested

Wi-Fi: works

TPM: The report shows no TPM. However, there is some TPM configuration in BIOS, and it is off by default. I could try to configure it and it might work.

Other issues: Cannot update the Fedora 32 template. I have found some other users with this issue in some other apps running on AMD CPU, but no solution. However, installing Fedora 33 helps. The error in Fedora 32:
$ sudo dnf update
Error: random_device: rdrand failed

Short reasoning why I decided for this MoBo: ECC support for a good price. ASrock’s quality is reportedly comparable to ASUS, and those vendors are the only two who have ECC support on a non-server board. Also, the I’ve seen rather compatible ASrock MoBos in the Qubes HCL.

Regards,
Vit Sestak ‘v6ak’

Qubes-HCL-ASRock-B550_Phantom_Gaming_4_ac-20210305-211229.yml (869 Bytes)

I’ve resolved the sound issue:

  1. I’ve experimented in a Debian qube with dequbesed pulseaudio (killall pulseaudio && sleep 1 && pulseaudio --exit-idle-time=-1). After running pacmd list-cards, I read the output and ran pacmd set-card-profile , which made it working.
  2. After whole Qubes reboot (in order to reappear the sound card in dom0), I started seeing the card in pavucontrol.

So, the probably last major issue to resolve is the lack of sleep. All attempts end with something like this:

Mar 05 20:22:23 dom0 kernel: PM: suspend entry (deep)
– Reboot –

So, this does not look like a GPU issue. It does not write any message after resume. (Well, even few messages before finishing suspend are missing, but they might be just not written to the log…)

Vít Šesták ‘v6ak’

Hi Vít,

thank you for your post. Your HCL report is now waiting as a pull request to be merged in by the website maintainer.

  add ASRock B550 Phantom Gaming 4/ac by Vít Šesták from 3/5/21 by SvenSemmler · Pull Request #49 · QubesOS/qubes-hcl · GitHub

/Sven

Well, I have to correct the claim about rdrand in Fedora 33: It does not resolve the issue. The issue is a bit random, but it still appears.

When searching, it looks like I was the only one with this issue on Qubes OS. OTOH, there is some indication that it is quite generic issue: 94087 – std::random_device often fails when used from multiple threads

Hi Vít,

just keep posting your findings to this thread, which is linked from your HCL report. So others looking at your report will then find this thread and see all the additional information you provide.

I hope you'll be able to figure it out!

Cheers,
/Sven

Very short advice: If you want to use Ryzen 5000 series and your BIOS version is P1.10 or lower, I suggest you to upgrade BIOS before installing Qubes OS and before configuring the BIOS.

Short story

After some research, I decided to update BIOS. While ASRock advertises this MoBo to be comptabile with Ryzen 5000 series (see ASRock > B550 Phantom Gaming 4/ac ), this seems to be a half-truth. According to their changelog at ASRock > B550 Phantom Gaming 4/ac , the BIOS 1.20 description contains “Support AMD Ryzen™ 5000 Series processors”. So, with versions 1.00 and 1.10, you are probably out of luck.

What the BIOS change resolved:

  • the rdrand issue with dnf
  • the USB issues with my trackball.

One-time issues with the new BIOS version:

  • When you flash the BIOS, it resets the settings, so you lose IOMMU etc. until you configure it again.
  • It has probably changed the PCI identifiers, which has caused weird freezes when starting a VM with a PCI device assigned. Fortunatelly, in my temporary setup, no VM with any PCI device was configured to start on boot. If this was not my case, I would probably end up with non-bootable system and hard debugging…

Not resolved: suspend/resume issues. Symptoms remain the same, including , regardless the smt configuration.

Changed: /proc/cpuinfo - at least added rdrand.

Long story about rdrand

(You probably don’t need to read this to make this MoBo working, but you might be interested for any other reason.)

I’ve googled for the rdrand issue. Aside from many irelevant results (AMD’s and Intel’s issues with bad randomness or Google treating “Xen” in phrase with “AMD” as typo), I’ve learnt something:

  1. The source that writes those errors is probably this: gcc/random.cc at master · gcc-mirror/gcc · GitHub

  2. Found the Intel’s documentation of the _rdrand32_step instruction (well, intristic function) Intel® Intrinsics Guide via core::arch::x86_64::_rdrand32_step - Rust . So, the instruction can sometimes just fail without any apparent reason, and libstdc++ tries 100 times until it fails.

  3. I’ve tried a code that tests _rdrand32_step (adjusted version of testing program from How a months-old AMD microcode bug destroyed my weekend [UPDATED] | Ars Technica ), see the attachment. It seems to always fail in both Dom0 and DomU.

  4. Interesting finding: qubes-dom0-update works well, even though it runs dnf. I’ve tried to adjust the command to find the minimal difference that causes the command to fail/succeed:

sudo dnf update --installroot / Error: random_device: rdrand failed sudo dnf update --installroot /var/lib/qubes/dom0-updates
Last metadata expiration check: 0:44:30 ago on Sat Mar 6 16:25:06 2021.
Dependencies resolved.
Nothing to do.
Complete!

  1. Since this seems to be related to a CPU instruction which seems to be affected by microcode/BIOS, I’ve decided to update the BIOS. Which seems to have been the way to go, see above.

Regards,

Vít Šesták ‘v6ak’

(Attachment test-rdrand.c is missing)

Vít Šesták:

Hello,
I'm posting HCL report for my computer with this ASRock B550 Phantom Gaming
4/ac and Ryzen 7 5800X. I've few comments:

Short reasoning why I decided for this MoBo: ECC support for a good price.

Interesting.

ASrock's quality is reportedly comparable to ASUS, and those vendors are
the only two who have ECC support on a non-server board. Also, the I've
seen rather compatible ASrock MoBos in the Qubes HCL.

ASUS's quality hasn't been that great from what I've seen (hardware design flaws in 2/2 of their mobos I've owned), but haven't heard bad things about ASrock. Thanks for the report, might be time for one of my systems to get an upgrade.

awokd:

Vít Šesták:

Hello,
I'm posting HCL report for my computer with this ASRock B550 Phantom Gaming
4/ac and Ryzen 7 5800X. I've few comments:

Short reasoning why I decided for this MoBo: ECC support for a good price.

Interesting.

Were you able to verify ECC function under Qubes? If so, how? Documentation I'm finding indicates there is no Xen level support for ECC, so it would be up to the BIOS to log any memory bit errors.