

I haven’t made a bridge to a VM before today, or made a bridge with Network Manager. That being said, I was able to persuade Network Manger to get a bridge working, and there are a few things I can note:
-
When you setup the bridge, the host network interface should become a slave to the bridge. This means that the physical network interface should not have an IP Address, and your bridge should now be where you configure the host’s IP address.
- After you start the VM, you should be able to run
ip link | grep 'master br0'
on the host, and it should display 2 interfaces which are slaves to br0. One for the physical ethernet interface, one for the VM (vnet). And it should only list your ethernet interface when the VM is off.
- After you start the VM, you should be able to run
-
The RedHat tutorial does not show the bridge and the host having different IP addresses, the RedHat tutorial shows the bridge and the guest having different IP addresses. Actually, no, the RedHat tutorial shows the libvirt NAT bridge, not even the bridge that the tutorial describes creating… If you set the IP address of virbr0, I don’t know what happens.
-
If your VM’s network adapter is connected to the host’s bridge, then you should be able to log into your VM and set a static IP address.
I had a lot of problems getting Network Manager to actually use my ethernet interface as a slave for the bridge. Here’s what worked for me, though:
nmcli con show
nmcli con down 'Wired Connection 1'
nmcli con modify 'Wired Connection 1' connection.autoconnect no
nmcli con add type bridge con-name br0 ifname br0
nmcli connection add type bridge-slave ifname enp7s0 master br0
nmcli con modify br0 connection.autoconnect yes
nmcli con modify bridge-slave-enp7s0 connection.autoconnect yes
nmcli con modify br0 ipv4.method manual ipv4.addresses 172.16.0.231/24 bridge.stp no
sudo systemctl restart NetworkManager.service
nmcli con show
ip addr
- Instead of enp7s0, you’d use enp1s0 I guess.
- Above, I manually set my bridge IP address to a static address because my ethernet interface is wired directly to another computer, so no DHCP for me. If you have DHCP on your ethernet network, you probably don’t need to set “ipv4.method” or “ipv4.addresses”.
- I set “bridge.stp” to “no” because my network doesn’t have any redundant paths, and the stp process seems to take like 25 seconds before I can use the bridge network.
After that, I can go into “Virtual Machine Manger”, set my VM’s NIC’s Network Source to “Bridge device…”, Device name to"br0", boot my VM, login to my VM, configure my VM’s ip address. And then I can connect to the VM’s IP address from the physical ethernet network.
I’m not familiar with Radeon PowerPlay, so I don’t know if there is a proper way to solve this, but you should be able to make a systemd system service to run the
upp
command on boot.To do so, I think you can use the following:
[Unit] Description=Run my_user_script After=suspend.target hibernate.target hybrid-sleep.target suspend-then-hibernate.target [Service] Type=oneshot ExecStart=upp -p /sys/class/drm/card1/device/pp_table set --write smc_pptable/SocketPowerLimitAc/0=312 smc_pptable/SocketPowerLimitDc/0=293 smc_pptable/TdcLimit/0=300 smc_pptable/FreqTableSocclk/1=1350 smc_pptable/FreqTableFclk/1=2000 smc_pptable/FclkBoostFreq=2000 [Install] WantedBy=suspend.target hibernate.target hybrid-sleep.target suspend-then-hibernate.target
To configure this service:
.service
file in/etc/systemd/service
. (e.g./etc/systemd/system/my_update_pp.service
)sudo systemctl daemon-reload
to tell systemd to re-read the service filessudo systemctl restart my_update_pp.service
to manually run the servicesudo systemctl enable my_update_pp.service
to tell systemd to run your service automatically on boot/wake (WantedBy
tells systemd when it should include the unit/service,After
,Wants
,Requires
, andBefore
help systemd decide the order to run all the units/services)Notes
After
and setWantedBy
to justWantedBy=multi-user.target
, but if you also need to runupp
after sleep or hibernate, then you probably need something more complex. I copied theAfter
andWantedBy
from a stackexchange answer, but I haven’t tried using those targets before. You might have to addmulti-user.target
to theWantedBy
list.upp
after sleep/hibernate. Running on boot might be sufficient.chmod
if you runupp
as sudo/root. Systemd system services run as root by default.References: