Hello everyone, I’ve successfully installed Qubes 4.1 on my Framework Laptop and publish this post from a disposable qube. I should warn that this guide is subject to further revision and that Qubes 4.1 is prerelease software and as such does not have the same security and stability guarantees as official stable releases.
The Qubes-20210731-kernel-latest-x86_64.iso was sourced from this Qubes community post and verified as described in How to verify the cryptographic hash values of Qubes ISO. It should be noted that the iso isn’t signed by any release key or any key signed by the Qubes Master Signing Key but instead by fepitre-bot.
The hash of the installation media and later the installed Qubes OS must be added to the BIOS to satisfy secure boot. The media installs and boots Qubes successfully though the fan does spin up and the laptop becomes warm as the templates are installed and configured.
It should be noted that by default the sys-net qube is set to use the 5.12.14-1.fc32.qubes kernel. I have not been able to get the AX210 wifi card working under this kernel and as such the kernel for sys-net should be changed to 5.10.54-1.fc32.qubes in Qubes Manager. Shut down all qubes that depend on this as a netvm and then restart sys-net. The wifi card can be cajoled to work via renaming or removing /lib/firmware/iwlwifi-ty-a0-gf-a0.pnvm.xz and reinserting the iwlwifi and iwlmvm kernel modules.
Open a terminal in sys-net
Navigate to firmware directory
cd /lib/firmware/
Rename problematic pnvm file so it doesn’t load
sudo mv iwlwifi-ty-a0-gf-a0.pnvm.xz renamed.iwlwifi-ty-a0-gf-a0.pnvm.xz
Remove iwlwifi and iwlmvm kernel modules
sudo modprobe -r iwlmvm && sudo modprobe -r iwlwifi
Reinsert those kernel modules
sudo modprobe iwlwifi && sudo modprobe iwlmvm
The NetworkManager applet in the Application tray should refresh and show wifi networks you can connect to. The first attempt to connect to a network will fail and display disconnected and remove the list of networks. To resolve this reinsert the kernel modules as above and the applet will refresh and successfully connect.
Refresh NetworkManager
Remove the kernel modules again.
sudo modprobe -r iwlmvm && sudo modprobe -r iwlwifi
Reinsert them again.
sudo modprobe iwlwifi && sudo modprobe iwlmvm
Some final notes as sys-net is either configured by the user at install as an AppVM or as a DisposableVM these fixes will not persist past reboot of sys-net or Qubes itself. In order to more permanently address this issue the commands to rename the iwlwifi-ty-a0-gf-a0.pnvm.xz should be executed in the Fedora-34 TemplateVM and then shutdown.
Open a terminal in dom0
Run gnome terminal in fedora-34 TemplateVM
qvm-run -a fedora-34 gnome-terminal
Enter all following commands in the TemplateVM terminal
cd /lib/firmware/
sudo mv iwlwifi-ty-a0-gf-a0.pnvm.xz renamed.iwlwifi-ty-a0-gf-a0.pnvm.xz
sudo poweroff
My own experience is with a dispVM version of sys-net and as such I have to reinsert the kernel modules and connect to wifi manually every boot.
Commands that were helpful for information gathering/troubleshooting
See messages about wifi firmware and how it loads
sudo dmesg | grep iwlwifi
See messages about NetworkManager and why connections fail
sudo journalctl -u NetworkManager
Restart NetworkManager
sudo systemctl restart NetworkManager
Edit 1
In order to fix screen tearing I added a configuration file as described in this community post and the Qubes Gui Configuration doc. I also reformatted some of the earlier instructions to clarify why and what commands should be entered into terminals.
Open a terminal in dom0
Navigate to directory where the file will be written
cd /etc/X11/xorg.conf.d/
Write the file
sudo nano 20-intel.conf
Type what’s below into the file
Section “Device”
Identifier “Intel Graphics”
Driver “intel”
Option “TearFree” “true”
EndSection