A couple of days ago we decided to give Qubes OS a go and see what it could do for a regular user. The installation was easy as it uses the same installer as Fedora, so we just created a live USB and formatted a laptop that had built in Wi-Fi.
To our surprise, we could not figure out how to change the network settings and activate an internet connection! Going to the NetworkManager (nm), even with root, would show us all fields as disabled when trying to create any new connection!
Some time passed before we realized that the NetworkManager of XFCE4 was not the way to go. After inspecting the Virtual Machines on the Qubes VM Manager, we saw that the sys-net VM was the only one that had in its hardware settings to access the Ethernet and Wi-Fi modules. So we got the hint, we needed to modify sys-net in order to connect the entire OS with its VMs to the network.
To modify the settings of the sys-net VM we needed access to the Settings Application, which was not available in the application menu. So the first thing we did, was to use the sys-net: Add more shortcuts... option under the group ServiceVM: sys-net to enable the Settings application shortcut.
In the [Dom0] Settings: sys-net window, we went to the Applications tab, on the left list we scrolled down to find the Settings option.
After selecting the Settings option, we clicked on the > button to move the Settings option to the right list.
Then we clicked on the OK button to apply the changes.
Going back to the application menu and the group ServiceVM: sys-net we could see the new option for sys-net: Settings.
Clicking on the sys-net: Settings showed us the usual settings manager for Gnome.
From there on, our job was easy, we just clicked on the Network option that gave us the window to modify all network settings. Then we selected the Wi-Fi network that we wanted to connect to, which worked without a hitch!
Finally, we had to test if the configuration was working as expected. From the application menu, under the group Domain: personal, we selected the option personal: Firefox to start the Firefox application on the personal VM.
Once Firefox started we could see that internet connection was active and everything was working as expected!
Make the file : /etc/network/interfaces look something like this (make changes only to br0, add it if not there and to the device that you want to bridge with, we used eth1):
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
iface lo inet loopback
# The primary network interface
iface eth0 inet dhcp
iface eth1 inet dhcp
# Building a bridge to be used by the Virtual Machines
iface br0 inet static
Then issue: sudo /etc/init.d/networking restart
If you get:
* Running /etc/init.d/networking restart is deprecated because it may not enable again some interfaces
* Reconfiguring network interfaces... RTNETLINK answers: File exists
ssh start/running, process 11489
Waiting for br0 to get ready (MAXWAIT is 20 seconds).
RTNETLINK answers: File exists
Failed to bring up br0. [ OK ]
Try bringing down the device to be bridged (eth1) like this: sudo ifdown eth1 and then issuesudo /etc/init.d/networking restartagain. After that enable it the device again again like this: sudo ifup eth1
If this doesn’t worked try restarting the machine, worked for us.
When properly configured ifconfig should result to something similar as this: