<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
</head>
<body>
<p>Dear nut team<br>
<br>
I just bought a new Eaton 5P650IR UPS and for testing purposes I
had set it up by using the nut software successfully directly on a
Raspberry Pi OS bare metal installation an a physical Raspberry Pi
4B (8GB).<br>
Additionally, for further testing, I have set up the UPS by using
the nut software successfully on a virtual x86 x64 Debian VM which
was running on a VMware ESXi 7.0U1c (Build 17325551) host.<br>
Finally, for my target system, I wanted to install the UPS by
using the nut software on a virtual ARM aarch64 Ubuntu 20.04.1 LTS
Server VM which is running on a VMware ESXi on ARM Fling (Build
17230755) Raspberry Pi 4B host.<br>
Unfortunately this did not work so I tried to jump to a virtual
ARM aarch64 CentOS Stream system but the behavior was exactly the
same on both systems.<br>
<br>
For the according VM the UPS its USB connection was passed through
from the ESXi host directly to the VM.<br>
<br>
To make you understand how I configured both systems I have listed
all configuration steps for both systems, the Ubuntu server system
and the CentOS Stream system, step-by-step.<br>
<br>
</p>
<p><br>
</p>
<p><br>
<font color="#0000ff">*** <b>CentOS Stream</b> (server without
GUI installation) ***</font><br>
Logged in with root user and did the following steps,
step-by-step:<br>
<br>
<i>$ nano /etc/selinux/config</i> ( --> Here I have set the
variable <i>SELINUX</i> to <i>disabled</i> )<br>
<i>$ yum update</i><i><br>
</i><i><i>$</i> reboot now</i><br>
<i><i>$ </i>uname -a</i> (Which gives the following oputput: <i>Linux
centos 4.18.0-259.el8.aarch64 #1 SMP Mon Dec 21 21:11:57 UTC
2020 aarch64 aarch64 aarch64 GNU/Linux </i>)<br>
<i><i>$ </i>yum install epel-release</i><i><br>
</i><i><i>$ </i>yum install nut nut-client</i><i><br>
</i><i><i>$ </i>cp /lib/udev/rules.d/62-nut-usbups.rules
/etc/udev/rules.d/</i><i><br>
</i><i><i>$ </i>udevadm control --reload-rules && udevadm
trigger</i><i><br>
</i><i><i>$ </i>mkdir /var/run/nut</i><i><br>
</i><i><i>$ </i>chown root:nut /var/run/nut</i><i><br>
</i><i><i>$ </i>chmod 770 /var/run/nut</i><br>
<br>
Now I have configured the nut config files like this (left all
settings on default and only added content):<br>
<br>
/etc/ups/nut.conf:<br>
<i>MODE=standalone</i><br>
<br>
/etc/ups/ups.conf:<br>
<i>pollinterval = 10</i><i><br>
</i><i>[ups]</i><i><br>
</i><i> driver = usbhid-ups</i><i><br>
</i><i> port = auto</i><i><br>
</i><i> desc = "Eaton 5P650IR"</i><i><br>
</i><i> serial = G114L21147</i><i><br>
</i><i> vendorid = 0463</i><i><br>
</i><i> productid = ffff</i><br>
<br>
/etc/ups/upsd.conf:<br>
<i>LISTEN localhost 3493</i><br>
<br>
/etc/ups/upsd.users:<br>
<i>[upsmon]</i><i><br>
</i><i> password = 1234</i><i><br>
</i><i> upsmon master</i><br>
<br>
/etc/ups/upsmon.conf:<br>
<i>MONITOR ups@localhost 1 monuser 1234 master</i><br>
<br>
Finally I executed the following commands:<br>
<br>
<i><i>$ </i>systemctl enable nut-monitor.service</i><i><br>
</i><i><i>$ </i>systemctl enable nut-server.service</i><i><br>
</i><i><i><i>$ </i></i>systemctl start nut-monitor.service</i><i><br>
</i><i><i><i>$ </i></i>systemctl start nut-server.service</i><i><br>
</i><i><i><i>$ </i></i>reboot now</i><br>
</p>
<p>Now when executing the following command:<br>
<i><i><i>$ </i></i>lsusb</i><br>
It gives back the following output:<br>
</p>
<p><i>Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub</i><i><br>
</i><i>Bus 002 Device 005: ID 0463:ffff MGE UPS Systems UPS</i><i><br>
</i><i>Bus 002 Device 004: ID 0e0f:0006 VMware, Inc. Virtual
Keyboard</i><i><br>
</i><i>Bus 002 Device 003: ID 0e0f:0002 VMware, Inc. Virtual USB
Hub</i><i><br>
</i><i>Bus 002 Device 002: ID 0e0f:0003 VMware, Inc. Virtual Mouse</i><i><br>
</i><i>Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root
hub</i><br>
</p>
<p>When executing the following command:<br>
<i><i><i>$ </i></i>nut-scanner</i><br>
It gives back the following output:<br>
</p>
<p><i>Neon library not found. XML search disabled.</i><i><br>
</i><i>Scanning USB bus.</i><i><br>
</i><i>No start IP, skipping SNMP</i><i><br>
</i><i>No start IP, skipping NUT bus (old connect method)</i><i><br>
</i><i>Scanning NUT bus (avahi method).</i><i><br>
</i><i>Scanning IPMI bus.</i><i><br>
</i><i>Failed to create client: Daemon not running</i><i><br>
</i><i>[nutdev1]</i><i><br>
</i><i> driver = "usbhid-ups"</i><i><br>
</i><i> port = "auto"</i><i><br>
</i><i> vendorid = "0463"</i><i><br>
</i><i> productid = "FFFF"</i><i><br>
</i><i> bus = "002"</i><br>
</p>
<p>So this indicates the UPS is definitely being recognized.<br>
<br>
Now whenever the following command is being executed:<br>
<i><i><i>$ </i></i>systemctl status nut-server</i><br>
It gives back the following error(s):<br>
<br>
<i>● nut-server.service - Network UPS Tools - power devices
information server</i><i><br>
</i><i> Loaded: loaded
(/usr/lib/systemd/system/nut-server.service; enabled; vendor
preset: disabled)</i><i><br>
</i><i> Active: active (running) since Tue 2021-01-12 17:04:44
CET; 29s ago</i><i><br>
</i><i> Main PID: 1285 (upsd)</i><i><br>
</i><i> Tasks: 1 (limit: 2428)</i><i><br>
</i><i> Memory: 6.5M</i><i><br>
</i><i> CGroup: /system.slice/nut-server.service</i><i><br>
</i><i> └─1285 /usr/sbin/upsd -F</i><i><br>
</i><i><br>
</i><i>Jan 12 17:04:44 centos systemd[1]: Started Network UPS
Tools - power devices information server.</i><i><br>
</i><i>Jan 12 17:04:44 centos upsd[1285]: fopen
/var/run/nut/upsd.pid: No such file or directory</i><i><br>
</i><i>Jan 12 17:04:45 centos upsd[1285]: listening on localhost
port 3493</i><i><br>
</i><i>Jan 12 17:04:45 centos upsd[1285]: listening on localhost
port 3493</i><br>
<br>
So the nut service is stuck somewhere and somehow but I was not
able to figure out why.<br>
<br>
When executing the following command:<br>
<i><i><i>$ </i></i>/usr/sbin/usbhid-ups -DDD -a ups</i><br>
It gives back the following output:<i><br>
</i><i>Network UPS Tools - Generic HID driver 0.41 (2.7.4)</i><i><br>
</i><i>USB communication driver 0.33</i><i><br>
</i><i> 0.000000 debug level is '3'</i><i><br>
</i><i> 0.003838 upsdrv_initups...</i><i><br>
</i><i> 0.012539 Checking device (1D6B/0002) (001/001)</i><i><br>
</i><i> 0.012625 Failed to open device, skipping.
(Permission denied)</i><i><br>
</i><i> 0.012644 Checking device (0463/FFFF) (002/005)</i><i><br>
</i><i> 0.413580 - VendorID: 0463</i><i><br>
</i><i> 0.413631 - ProductID: ffff</i><i><br>
</i><i> 0.413641 - Manufacturer: EATON</i><i><br>
</i><i> 0.413656 - Product: Eaton 5P</i><i><br>
</i><i> 0.413669 - Serial Number: G114L21147</i><i><br>
</i><i> 0.413678 - Bus: 002</i><i><br>
</i><i> 0.413687 - Device release number: 0202</i><i><br>
</i><i> 0.413695 Trying to match device</i><i><br>
</i><i> 0.413778 Device matches</i><i><br>
</i><i> 0.413808 failed to claim USB device: Device or
resource busy</i><i><br>
</i><i> 0.414396 detached kernel driver from USB device...</i><i><br>
</i><i> 0.414475 nut_usb_set_altinterface: skipped
usb_set_altinterface(udev, 0)</i><i><br>
</i><i> 0.464720 HID descriptor, method 1: (9 bytes) =>
09 21 10 01 21 01 22 55 08</i><i><br>
</i><i> 0.464771 HID descriptor length (method 1) 2133</i><i><br>
</i><i> 0.464786 HID descriptor, method 2: (9 bytes) =>
09 21 10 01 21 01 22 25 04</i><i><br>
</i><i> 0.464806 HID descriptor length (method 2) 1061</i><i><br>
</i><i> 0.464816 Eaton device v2.02. Using full report
descriptor</i><i><br>
</i><i> 0.464825 Warning: two different HID descriptors
retrieved (Reportlen = 2133 vs. 1061)</i><i><br>
</i><i> 0.464834 HID descriptor length 2133</i><i><br>
</i><i> 2.511296 Unable to get Report descriptor:
Input/output error</i><i><br>
</i><i> 2.511464 Checking device (0E0F/0006) (002/004)</i><i><br>
</i><i> 2.511524 Failed to open device, skipping.
(Permission denied)</i><i><br>
</i><i> 2.511538 Checking device (0E0F/0002) (002/003)</i><i><br>
</i><i> 2.511560 Failed to open device, skipping.
(Permission denied)</i><i><br>
</i><i> 2.511573 Checking device (0E0F/0003) (002/002)</i><i><br>
</i><i> 2.511594 Failed to open device, skipping.
(Permission denied)</i><i><br>
</i><i> 2.511662 Checking device (1D6B/0001) (002/001)</i><i><br>
</i><i> 2.511687 Failed to open device, skipping.
(Permission denied)</i><i><br>
</i><i> 2.511698 No appropriate HID device found</i><i><br>
</i><i> 2.511709 No matching HID UPS found</i><br>
<br>
For virtual machine settings in VMware ESXi I have also tried
between virtual USB2.0 and virtual USB3.1 controller and for both
controllers I have tried to switch the UPS USB-connection from the
Raspberry Pi's physical USB2.0 and USB3.1 ports but all
combinations ended with the same behavior.<br>
<br>
What I have also tried is to add the following line:<br>
<i>ExecStartPre=/bin/sleep 15</i><br>
on top of the the <i>[Service]</i> section inside the following
file:<br>
<i>/etc/systemd/system/multi-user.target.wants/nut-server.service</i><br>
and did a system reboot but that also did not help.<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<font color="#0000ff">*** Ubuntu Server (minimal installation with
just OpenSSH server installed) ***</font><br>
Logged in with default user and did the following steps,
step-by-step:<br>
<i><i><i>$ </i></i>sudo apt-get update && sudo apt-get
dist-upgrade</i><br>
<i><i><i>$ </i></i>sudo reboot now</i><br>
<i><i><i>$ </i></i>uname -a</i> (Which gives the following
oputput: <i>Linux ubuntuserver 5.4.0-60-generic #67-Ubuntu SMP
Tue Jan 5 18:24:57 UTC 2021 aarch64 aarch64 aarch64 GNU/Linux </i>)<br>
<i><i><i>$ </i></i>sudo apt-get install nut</i><br>
<i><i><i>$ </i></i>sudo cp /lib/udev/rules.d/62-nut-usbups.rules
/etc/udev/rules.d/</i><br>
<br>
Now I have configured the nut config files like this (left all
settings on default but only added content):<br>
<br>
/etc/nut/nut.conf:<br>
<i>MODE=standalone</i><br>
<br>
/etc/nut/ups.conf:<br>
<i>pollinterval = 10</i><i><br>
</i><i>[ups]</i><i><br>
</i><i> driver = usbhid-ups</i><i><br>
</i><i> port = auto</i><i><br>
</i><i> desc = "Eaton 5P650IR"</i><i><br>
</i><i> serial = G114L21147</i><i><br>
</i><i> vendorid = 0463</i><i><br>
</i><i> productid = ffff</i><br>
<br>
/etc/nut/upsd.conf:<br>
<i>LISTEN localhost 3493</i><br>
<br>
/etc/nut/upsd.users:<br>
<i>[upsmon]</i><i><br>
</i><i> password = 1234</i><i><br>
</i><i> upsmon master</i><br>
<br>
/etc/nut/upsmon.conf:<br>
<i>MONITOR ups@localhost 1 monuser 1234 master</i><br>
<br>
Finally I executed the following commands:<br>
<br>
<i><i><i>$ </i></i>sudo systemctl enable nut-monitor.service</i><i><br>
</i><i><i><i>$ </i></i>sudo systemctl enable nut-server.service</i><i><br>
</i><i><i><i>$ </i></i>sudo systemctl start nut-monitor.service</i><i><br>
</i><i><i><i>$ </i></i>sudo systemctl start nut-server.service</i><i><br>
</i><i><i><i>$ </i></i>reboot now</i><br>
<br>
Now when executing the following command:<br>
<i><i><i>$ </i></i>lsusb</i><br>
It gives back the following output:<br>
<br>
<i>Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub</i><i><br>
</i><i>Bus 002 Device 005: ID 0463:ffff MGE UPS Systems UPS</i><i><br>
</i><i>Bus 002 Device 004: ID 0e0f:0006 VMware, Inc. Virtual
Keyboard</i><i><br>
</i><i>Bus 002 Device 003: ID 0e0f:0002 VMware, Inc. Virtual USB
Hub</i><i><br>
</i><i>Bus 002 Device 002: ID 0e0f:0003 VMware, Inc. Virtual Mouse</i><i><br>
</i><i>Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root
hub</i><br>
<br>
<br>
When executing the following command:<br>
<i><i><i>$ </i></i>nut-scanner</i><br>
It gives back the following output:<br>
<br>
<i>SNMP library not found. SNMP search disabled.</i><i><br>
</i><i>Neon library not found. XML search disabled.</i><i><br>
</i><i>IPMI library not found. IPMI search disabled.</i><i><br>
</i><i>Scanning USB bus.</i><i><br>
</i><i>No start IP, skipping NUT bus (old connect method)</i><i><br>
</i><i>[nutdev1]</i><i><br>
</i><i> driver = "usbhid-ups"</i><i><br>
</i><i> port = "auto"</i><i><br>
</i><i> vendorid = "0463"</i><i><br>
</i><i> productid = "FFFF"</i><i><br>
</i><i> bus = "002"</i><br>
<br>
So this indicates the UPS is definitely being recognized.<br>
<br>
Now whenever the following command is being executed:<br>
<i><i><i>$ </i></i>sudo systemctl status nut-server</i><br>
It gives back the following error(s):<br>
<br>
<i>[sudo] password for supervisor:</i><i><br>
</i><i>● nut-server.service - Network UPS Tools - power devices
information server</i><i><br>
</i><i> Loaded: loaded
(/lib/systemd/system/nut-server.service; enabled; vendor preset:
enabled)</i><i><br>
</i><i> Active: active (running) since Tue 2021-01-12 15:55:01
UTC; 2min 17s ago</i><i><br>
</i><i> Process: 930 ExecStartPre=/bin/sleep 15 (code=exited,
status=0/SUCCESS)</i><i><br>
</i><i> Process: 943 ExecStart=/sbin/upsd (code=exited,
status=0/SUCCESS)</i><i><br>
</i><i> Main PID: 946 (upsd)</i><i><br>
</i><i> Tasks: 1 (limit: 2233)</i><i><br>
</i><i> Memory: 2.0M</i><i><br>
</i><i> CGroup: /system.slice/nut-server.service</i><i><br>
</i><i> └─946 /lib/nut/upsd</i><i><br>
</i><i><br>
</i><i>Jan 12 15:54:47 ubuntuserver systemd[1]: Starting Network
UPS Tools - power devices information server...</i><i><br>
</i><i>Jan 12 15:55:01 ubuntuserver upsd[943]: fopen
/run/nut/upsd.pid: No such file or directory</i><i><br>
</i><i>Jan 12 15:55:01 ubuntuserver upsd[943]: listening on
localhost port 3493</i><i><br>
</i><i>Jan 12 15:55:01 ubuntuserver upsd[943]: listening on
localhost port 3493</i><i><br>
</i><i>Jan 12 15:55:01 ubuntuserver upsd[943]: Can't connect to
UPS [ups] (usbhid-ups-ups): No such file or directory</i><i><br>
</i><i>Jan 12 15:55:01 ubuntuserver upsd[943]: Can't connect to
UPS [ups] (usbhid-ups-ups): No such file or directory</i><i><br>
</i><i>Jan 12 15:55:01 ubuntuserver upsd[946]: Startup successful</i><i><br>
</i><i>Jan 12 15:55:01 ubuntuserver systemd[1]: Started Network
UPS Tools - power devices information server.</i><br>
<br>
So the nut service is stuck somewhere and somehow but I was not
able to figure out why.<br>
<br>
When executing the following command as root user:<br>
<i><i><i>$ </i></i>/lib/nut/usbhid-ups -DDD -a ups</i><br>
It gives back the following output:<br>
<br>
<i>Network UPS Tools - Generic HID driver 0.41 (2.7.4)</i><i><br>
</i><i>USB communication driver 0.33</i><i><br>
</i><i> 0.000000 debug level is '3'</i><i><br>
</i><i> 0.002398 upsdrv_initups...</i><i><br>
</i><i> 0.049019 Checking device (0463/FFFF) (002/005)</i><i><br>
</i><i> 0.236934 - VendorID: 0463</i><i><br>
</i><i> 0.236994 - ProductID: ffff</i><i><br>
</i><i> 0.237005 - Manufacturer: unknown</i><i><br>
</i><i> 0.237035 - Product: Eaton 5P</i><i><br>
</i><i> 0.237045 - Serial Number: G114L21147</i><i><br>
</i><i> 0.237054 - Bus: 002</i><i><br>
</i><i> 0.237063 - Device release number: 0202</i><i><br>
</i><i> 0.237072 Trying to match device</i><i><br>
</i><i> 0.237351 Device matches</i><i><br>
</i><i> 0.237500 nut_usb_set_altinterface: skipped
usb_set_altinterface(udev, 0)</i><i><br>
</i><i> 0.286503 HID descriptor, method 1: (9 bytes) =>
09 21 10 01 21 01 22 55 08</i><i><br>
</i><i> 0.286557 HID descriptor length (method 1) 2133</i><i><br>
</i><i> 0.286574 HID descriptor, method 2: (9 bytes) =>
09 21 10 01 21 01 22 25 04</i><i><br>
</i><i> 0.286602 HID descriptor length (method 2) 1061</i><i><br>
</i><i> 0.286612 Eaton device v2.02. Using full report
descriptor</i><i><br>
</i><i> 0.286622 Warning: two different HID descriptors
retrieved (Reportlen = 2133 vs. 1061)</i><i><br>
</i><i> 0.286632 HID descriptor length 2133</i><i><br>
</i><i> 2.335596 Unable to get Report descriptor: Invalid or
incomplete multibyte or wide character</i><i><br>
</i><i> 2.335701 Checking device (0E0F/0006) (002/004)</i><i><br>
</i><i> 2.335783 - VendorID: 0e0f</i><i><br>
</i><i> 2.335827 - ProductID: 0006</i><i><br>
</i><i> 2.335837 - Manufacturer: unknown</i><i><br>
</i><i> 2.335846 - Product: unknown</i><i><br>
</i><i> 2.335855 - Serial Number: unknown</i><i><br>
</i><i> 2.335864 - Bus: 002</i><i><br>
</i><i> 2.335873 - Device release number: 0100</i><i><br>
</i><i> 2.335882 Trying to match device</i><i><br>
</i><i> 2.335905 Device does not match - skipping</i><i><br>
</i><i> 2.335929 Checking device (0E0F/0002) (002/003)</i><i><br>
</i><i> 2.335995 - VendorID: 0e0f</i><i><br>
</i><i> 2.336011 - ProductID: 0002</i><i><br>
</i><i> 2.336020 - Manufacturer: unknown</i><i><br>
</i><i> 2.336030 - Product: unknown</i><i><br>
</i><i> 2.336039 - Serial Number: unknown</i><i><br>
</i><i> 2.336048 - Bus: 002</i><i><br>
</i><i> 2.336057 - Device release number: 0100</i><i><br>
</i><i> 2.336066 Trying to match device</i><i><br>
</i><i> 2.336082 Device does not match - skipping</i><i><br>
</i><i> 2.336110 Checking device (0E0F/0003) (002/002)</i><i><br>
</i><i> 2.336171 - VendorID: 0e0f</i><i><br>
</i><i> 2.336190 - ProductID: 0003</i><i><br>
</i><i> 2.336199 - Manufacturer: unknown</i><i><br>
</i><i> 2.336209 - Product: unknown</i><i><br>
</i><i> 2.336218 - Serial Number: unknown</i><i><br>
</i><i> 2.336226 - Bus: 002</i><i><br>
</i><i> 2.336235 - Device release number: 0102</i><i><br>
</i><i> 2.336244 Trying to match device</i><i><br>
</i><i> 2.336258 Device does not match - skipping</i><i><br>
</i><i> 2.336283 Checking device (1D6B/0001) (002/001)</i><i><br>
</i><i> 2.336461 - VendorID: 1d6b</i><i><br>
</i><i> 2.336500 - ProductID: 0001</i><i><br>
</i><i> 2.336510 - Manufacturer: unknown</i><i><br>
</i><i> 2.336519 - Product: unknown</i><i><br>
</i><i> 2.336528 - Serial Number: unknown</i><i><br>
</i><i> 2.336537 - Bus: 002</i><i><br>
</i><i> 2.336546 - Device release number: 0504</i><i><br>
</i><i> 2.336555 Trying to match device</i><i><br>
</i><i> 2.336570 Device does not match - skipping</i><i><br>
</i><i> 2.336599 Checking device (1D6B/0002) (001/001)</i><i><br>
</i><i> 2.337068 - VendorID: 1d6b</i><i><br>
</i><i> 2.337108 - ProductID: 0002</i><i><br>
</i><i> 2.337117 - Manufacturer: unknown</i><i><br>
</i><i> 2.337126 - Product: unknown</i><i><br>
</i><i> 2.337135 - Serial Number: unknown</i><i><br>
</i><i> 2.337143 - Bus: 001</i><i><br>
</i><i> 2.337152 - Device release number: 0504</i><i><br>
</i><i> 2.337161 Trying to match device</i><i><br>
</i><i> 2.337176 Device does not match - skipping</i><i><br>
</i><i> 2.337198 No appropriate HID device found</i><i><br>
</i><i> 2.337211 No matching HID UPS found</i><br>
<br>
For virtual machine settings in VMware ESXi I have also tried
between virtual USB2.0 and virtual USB3.1 controller and for both
controllers I have tried to switch the UPS USB-connection from the
Raspberry Pi's physical USB2.0 and USB3.1 ports but all
combinations ended with the same behavior.<br>
<br>
What I have also tried is to add the following line:<br>
<i>ExecStartPre=/bin/sleep 15</i><br>
on top of the the<i> [Service]</i> section inside the following
file:<br>
<i>/etc/systemd/system/multi-user.target.wants/nut-server.service</i><br>
and did a system reboot but that also did not help.</p>
<p><br>
</p>
<p>I hope you can understand everything in this e-mail as you should
and everything is being formatted well. If not please let me know
so I can maybe send you the informations by using an other method.</p>
<p>Of yourse -if you need more informations- I can send you all the
log files you will ask for.<br>
</p>
<p>Thank you many times for oyur help in advance.</p>
<p>Tecbill<br>
</p>
</body>
</html>