New guest tools ISO for Linux and FreeBSD. Can you help with the tests?
Thanks for your answer
If Ipfire is based on LFS, I suppose there's no RPM nor DEB package management. In this case you can use the .tgz tarball and install it manually, and make sure to install enable the
xe-linux-distributionservice (using the provided initscript or the systemd unit). But maybe there's a way to install a RPM or a DEB package through some compatibility tool, in which case you may try them.
That's true. There is only a package management pakfire for the addons. I will look at the tgz if i can install it.
Ipfire is using SysVinit script. I'm not very familiar with that and if someone can help me with that.
You may also have to tweak the
xe-linux-distributionfile to make it recognize your distro. If it has a
/etc/os-releasefile, then future versions of
xe-linux-distribution, not released yet, will recognize it automatically.
I can provide this file /etc/os-release
NAME="IPFire" VERSION="2.27" ID=ipfire VERSION_ID=2 PRETTY_NAME="IPFire 2.27 (x86_64) - core160" ANSI_COLOR="0:31"
hope it helps
Ideally, it would be nice to work towards pushing the tools directly in the distro, so that you could install them from their repositories when needed. We can provide some help if a packager gets it touch with us or if you want to try to contribute them yourself.
The IPFire is a german project so it's not easy for me to communicate with the team. I can make tests and even provide a remote access to a VM test through XO if need.
I've tried to modify the xe-linux-distribution file but i definitly don't have the skills to modify it. I don't understand the sed commands to identify
Can someone help me with that?
thanks in advance
@pierre-briec You may try this version of the script: https://raw.githubusercontent.com/xenserver/xe-guest-utilities/master/mk/xe-linux-distribution
Now, the OS seems to be detected
Here is the content of /var/cache/xe-linux-distribution
[root@ipfire-test ~]# cat /var/cache/xe-linux-distribution os_distro="ipfire" os_majorver="2" os_minorver="unknown" os_uname="5.10.55-ipfire" os_name="IPFire 2.27 (x86_64) - core160" [root@ipfire-test ~]#
I still don't know why xcp-center doesn't detect the agent management and if it would work as expected
I also change the xe-linux-distribution in /etc/init.d because the function action is not available in ipfire. I don't know what is the best way.
Is there anything to change?
I think XCP-ng Center doesn't consider that the agent is working correctly if it doesn't report the IP address to the host.
So i've made a mistake? the VM has an IPv4 address in local network but no gateway yet
I can't say whether there's an issue with the way you run the agent (
xe-daemon) or in the agent itself. Maybe the way it collects the IP addresses is not compatible with how ipfire handles networking.
yes, they are renaming the network interfaces (like red0, green0, blue0) and perhaps it's the problem.
So the agent should work as expected in PVHVM ? My previous VM it was only in PV.
thanks for your answer
Yes, the agent runs well in HVM VMs. Actually there are almost no reasons why you should use a PV VM nowadays.
As Xcp-center reports that agent is not installed, i was afraid that it wouldn't work as expected.
I don't want to have low performances on that VM which will be the internet gateway.
stormi Vates 🪐 XCP-ng Team 🚀
Actually, on any recent enough Linux system (ie not many years old) , the PV drivers are directly included in the kernel. Unless, maybe, a very specific distro decides that they don't want Xen support in their kernel.
So the tools you install on the VMs are merely an agent to make the VM more cooperative with the hypervisor, but they don't affect performance.
The situation is different on Windows systems where you need to install PV drivers to achieve better performance.
I had a look at getting the xe-guest-utilities working on Ipfire v2 now (core 173, the latest version).
Using a new /usr/sbin/xe-linux-distribution script, like suggested here, allows it to detect the ipfire.
I then manually copied the binaries and scripts from the linux tar file, into the folders in Ipfire, since the install script did not seem to handle Ipfire properly.
When starting the daemon using /etc/init.d/xe-linux-distribution, the next problem was that the "action" function does not exist in the /etc/init.d/functions file in Ipfire.
So I just edited the script, replacing the "else" with an "fi" in the if testing where the functions file is sources, so that the locally defined action method is used.
Then the agent started fine.
Then I also saw the issue of the IP address not being reported.
In my setup, there are two reasons for this. One is that Ipfire uses "red0", "green0", "blue0" etc as interface names, which the xe-guest-utilities will not consider.
The other reason is that I do PCI passthrough of 3 network cards to the Ipfire, and hence does not use the "vif" interface/network that XCP-ng makes available to the Ipfire. Althought the "green0" is really on the same network as the "vif" in my setup.
This was using the 7.30 tar file from the XCP ISO, I think.
I then cloned the 7.33 / master version of xe-guest-utilities from github, and used that thereafter.
I manually changed and built the xe-guest-utilities, adding "red", "green", "blue" to the list of interface prefixes that got considered, but it did not help.
I suspect the reason is that these interfaces does not have a /sys/class/net/eth0/device/nodename entry, which contains a reference to the "vif" that XCP-ng knows about, as I understand it.
/sys/class/net/eth0/device/nodename exists, but the eth0 is not assigned any IP address, since it is not used by IPfire.
While there is no /sys/class/net/green0/device/nodename entry.
I am not sure who is "creating" this "nodename" entry, but I suspect is it Xen.
And I suspect it is missing, since the green0 interface has no relationsship with the dom0 really.
But then I also got more questions around what is actually meant to be displayed of "network" info in the XOA web UI. Is it only the network between dom0 and domU ? Or ideally all networks defined on domU ? (i.e. red0 and blue0 and orange0 ) ?
And I also think I spotted a bug on the "Stats" page of XOA, since under "Disk throughput", it seems like always "xvda" and "xvdd" is displayed, even if the host only has one disk, "xvda". But that I should report as a bug, if I do not find it as already reported / known.
While playing with this, I also noticed that the management agent version was not properly displayed, i.e. not at all. And this seems to be caused by the the version constants not being replaced while building the daemon.
I am not a go build expert, so I'll investigate it a bit more. But it seems like I'm not the only one with that issue, because the same problem seems to exist with the xe-guest-utilities that are part of Alpine Linux 3.17 distribution.
I do not think that there are that many running Ipfire on XCP-ng/Xen. I've been briefly involved in some pull requests against Ipfire, so I might look at making one for getting the xe-guest-utilities into Ipfire itself, but since the use is not high, I have a doubt it makes much sense.
Thanks for a great tool in XCP-ng, I enjoy using it in my home setup.