PCI attach not working, credentials forgotten: trying to get wifi password remembered

I am having an awful time trying to get the template for sys-net to remember my network connection to wifi.

Steps taken:

  • made a default-dvm-wifi template (clone of default-dvm) for sys-net
made connection to wifi in new template (expand for detailed steps)
  • changed template to HVM, network → none
  • in dom0, finally got the network device to attach to default-dvm-wifi via qvm-pci
  • Close sys-net and friends.
  • start template and start nm-applet. Get error message about NetworkManager being an unknown version, but ignored it. Had to start by sudo NetworkManager
  • connected to my wifi.
  • closed by sudo shutdown -h now
  • changed back to PVH
  • set sys-net to use new template
  • restarted sys-net and friends (started an AppVM…)
  • sys-net nm does not remember.

I restarted the machine. I tried again, changed template to HVM, net → none, detached the networking device from sys-net, but then qvm-pci didn’t co-operate:

[jt@dom0 Desktop]$ qvm-pci attach default-dvm-wifi sys-net:dom0:02_00.0 --persistent
qvm-pci: error: backend vm 'sys-net' doesn't expose device 'dom0:02_00.0'
[jt@dom0 Desktop]$ qvm-pci attach default-dvm-wifi dom0:02_00.0 --persistent
Got empty response from qubesd. See journalctl in dom0 for details.

I don’t actually know how to look at journalctl, and I don’t think I’d understand it if I did.

I changed my approach. I’ve now followed the technique described here, i.e.

  • set up login to wifi in the usual disposable sys-net.
  • find connection file: /rw/config/NM-system-connections/my-wifi.nmconnection
  • copy that file to the default-dvm-wifi, which is successful.
  • (Permissions of the file are: -rw-r--r--)

I have then shutdown the template, re-launched sys-net, and still no password memory.

What am I missing?

Did you copy the file to /rw/config/NM-system-connections/my-wifi.nmconnection in disposable template?
Do you see this file in sys-net /etc/NetworkManager/system-connections/my-wifi.nmconnection?
Are you connecting to hidden WiFi network?

Yes

Yes. Just double checked, its definitely there.

No.

Seems the connection file my-wifi.nmconnection is being inherited in sys-net, i.e. its there, its just not being used.

When I connect through the sys-net applet it creates a similar file of the form my-wifi-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.nmconnection where xxx... seems to be the uuid value.

Looking at the contents, the 2 files differ in

  • uuid
  • inherited file has permissions -rw-r--r--. 1 user user; sys-net’s applet file has -rw-------. 1 root root

Have to be honest I struggle with understanding exactly what that code is doing - I am not good with scripting. Where do you even enter that?

However, I took a guess that it means, “make a very simple connection file with just the basics”. So I made:

[wifi]
ssid=my-wifi

[wifi-security]
key-mgmt=wpa-psk
psk=*secret password*

and chmod 600.

And that still doesn’t work. The file is ignored and nm-applet makes a new one, asking for the password.

So, where do I enter that code?

Check the difference between the my-wifi.nmconnection and my-wifi-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.nmconnection files content.

Its now working.

I didn’t adjust the content, I reverted back to the original file (generated when I had default-dvm-wifi hooked up the pci networking device).

The only additional thing I did was adjust the permissions with chmod 600. Seems to have made all the difference.

I don’t understand why the default-dvm-wifi file didn’t include a uuid in its contents and filename (but sys-net did) and I don’t understand why it had different permissions. But at this stage, I don’t care.

Thanks for the pointers, @apparatus, I was quite lost.