<div dir="auto"><div dir="auto">> <span style="background-color:rgb(250,248,255);font-size:12.8px">Error: UPS [ups1] is for driver 'nutdrv_qx', but I'm</span></div><span style="font-size:12.8px;background-color:rgb(250,248,255)">'nutdrv_atcl_usb'!</span><br style="font-size:12.8px;background-color:rgb(250,248,255)"><br>As it says on the tin - you did not change `driver=...` in ups.conf and did not specify a config on command line?</div><div dir="auto"><br></div><div dir="auto">One more resort - try asking the vendor for which protocol this UPS (date of purchase, model sticker, serial number etc.) talks, and if it differs from earlier sold devices by that name?</div><div dir="auto"><br></div><div dir="auto">Does it work with software from the vendor (and which SW name is that)? There's always a chance of defective chip too, maybe ask in warranty shops (and also if they know of differing devices sold under same name)...</div><div dir="auto"><br></div><div dir="auto">Jim<br><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sat, Dec 27, 2025, 03:36 Stephen Davies <<a href="mailto:sdavies@sdc.com.au" rel="noreferrer noreferrer" target="_blank">sdavies@sdc.com.au</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Curiouser and curiouser!<br>
I changed the driver line in ups.conf to nutdrv_atcl_usb but still get <br>
the below:<br>
<br>
./drivers/nutdrv_atcl_usb -a ups1 -d1 -DDDDDD<br>
    0.000000    [D5] send_to_all: SETINFO driver.state "init.starting"<br>
Network UPS Tools 2.8.4.983-983+ge439012cd (development iteration after <br>
2.8.4) - 'ATCL FOR UPS' USB driver 1.22<br>
Warning: This is an experimental driver.<br>
Some features may not function correctly.<br>
<br>
    0.000246    [D5] do_upsconf_args: confupsname=(null), var=maxretry, val=3<br>
    0.000263    [D5] do_upsconf_args: call do_global_args()<br>
    0.000268    [D3] do_global_args: var='maxretry' val='3'<br>
    0.000389    [D5] do_upsconf_args: confupsname=ups1, var=driver, <br>
val=nutdrv_qx<br>
    0.000397    [D5] do_upsconf_args: call main_arg()<br>
    0.000407    [D3] main_arg: var='driver' val='nutdrv_qx'<br>
    0.000412    [D5] do_upsconf_args: not a main_arg()<br>
    0.000416    [D5] do_upsconf_args: this is a 'driver' setting, may we <br>
proceed?<br>
    0.000424    [D6] testval_reloadable: var=driver, <br>
oldval=nutdrv_atcl_usb, newval=nutdrv_qx, reloadable=0, reload_flag=0<br>
    0.000429    [D1] testval_reloadable: setting 'driver' exists and <br>
differs: new value 'nutdrv_qx' vs. 'nutdrv_atcl_usb'<br>
    0.000434    [D6] testval_reloadable: verdict for (re)loading var=driver <br>
value: 1<br>
    0.000439    [D3] do_upsconf_args: collected 1 bad hits and 0 good hits <br>
for 'nutdrv_qx' in 'nutdrv_atcl_usb'<br>
    0.000447    Error: UPS [ups1] is for driver 'nutdrv_qx', but I'm <br>
'nutdrv_atcl_usb'!<br>
<br>
    0.000466    [D5] send_to_all: SETINFO driver.state "cleanup.exit"<br>
<br>
Then:<br>
<br>
usbhid-ups -s test -x port=auto -x productid=0000 -x vendorid=0001 <br>
-DDDDDD -d1<br>
    0.000004    [D5] send_to_all: SETINFO driver.state "init.starting"<br>
Network UPS Tools - Generic HID driver 0.54 (2.8.2.1)<br>
USB communication driver (libusb 1.0) 0.48<br>
    0.000093    [D1] upsdrv_makevartable...<br>
    0.000127    [D5] send_to_all: SETINFO driver.version.usb "libusb-1.0.28 <br>
(API: 0x100010a)"<br>
    0.000140    [D1] Using USB implementation: libusb-1.0.28 (API: 0x100010a)<br>
    0.000151    [D3] main_arg: var='port' val='auto'<br>
    0.000163    [D6] testinfo_reloadable: var=port, <br>
infoname=driver.parameter.<wbr>port, newval=auto, reloadable=0, reload_flag=0<br>
    0.000171    [D6] testinfo_reloadable: verdict for (re)loading var=port <br>
value: 1<br>
    0.000180    [D5] send_to_all: SETINFO driver.parameter.port "auto"<br>
    0.000190    [D3] main_arg: var='productid' val='0000'<br>
    0.000200    [D5] send_to_all: SETINFO driver.parameter.productid "0000"<br>
    0.000206    [D3] main_arg: var='vendorid' val='0001'<br>
    0.000215    [D5] send_to_all: SETINFO driver.parameter.vendorid "0001"<br>
    0.000220    [D1] Network UPS Tools version 2.8.2.1 (release/snapshot of <br>
2.8.2.1) built with gcc (GCC) 14.2.1 20250110 (Red Hat 14.2.1-7) and <br>
configured with flags: --build=x86_64-redhat-linux-<wbr>gnu <br>
--host=x86_64-redhat-linux-gnu --program-prefix= <br>
--disable-dependency-tracking --prefix=/usr --exec-prefix=/usr <br>
--bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc <br>
--datadir=/usr/share --includedir=/usr/include --libdir=/usr/lib64 <br>
--libexecdir=/usr/libexec --localstatedir=/var --runstatedir=/run <br>
--sharedstatedir=/var/lib --mandir=/usr/share/man <br>
--infodir=/usr/share/info --with-all --without-modbus --without-gpio <br>
--without-powerman --with-libltdl --without-wrap --with-cgi <br>
--with-python=/usr/bin/python3 --with-python3=/usr/bin/<wbr>python3 <br>
--without-python2 --datadir=/usr/share/nut --with-user=nut <br>
--with-group=dialout --with-statepath=/run/nut --with-pidpath=/run/nut <br>
--with-altpidpath=/run/nut --sysconfdir=/etc/ups <br>
--with-cgipath=/var/www/nut-<wbr>cgi-bin --with-drvpath=/usr/sbin <br>
--with-systemdsystemunitdir=/<wbr>usr/lib/systemd/system <br>
--with-systemdshutdowndir=/<wbr>lib/systemd/system-shutdown <br>
--with-pkgconfig-dir=/usr/<wbr>lib64/pkgconfig --disable-static <br>
--with-udev-dir=/usr/lib/udev --libdir=/usr/lib64<br>
    0.000269    [D1] debug level is '6'<br>
    0.000277    [D5] send_to_all: SETINFO driver.debug "6"<br>
    0.000286    [D5] send_to_all: SETFLAGS driver.debug RW NUMBER<br>
    0.001493    [D1] Succeeded to become_user(nut): now UID=57 GID=57<br>
    0.001508    [D1] Signalling UPS [test]: driver.exit (quietly, no fuss <br>
if no driver is running or responding)<br>
    0.001526    Can't open /run/nut/usbhid-ups-test: No such file or directory<br>
    0.001531    [D1] Request for other driver to exit returned code -1<br>
    0.001535    [D1] Socket dialog with the other driver instance (may be <br>
absent) failed: No such file or directory<br>
    0.001541    [D5] send_to_all: SETINFO device.type "ups"<br>
    0.001546    [D5] send_to_all: SETINFO driver.state "init.device"<br>
    0.001549    [D1] upsdrv_initups (non-SHUT)...<br>
    0.001553    [D2] Initializing an USB-connected UPS with library <br>
libusb-1.0.28 (API: 0x100010a) (NUT subdriver name='USB communication <br>
driver (libusb 1.0)' ver='0.48')<br>
    0.006084    [D2] Checking device 1 of 8 (1D6B/0003)<br>
    0.006104    [D1] Failed to open device (1D6B/0003), skipping: Access <br>
denied (insufficient permissions)<br>
    0.006108    [D2] Checking device 2 of 8 (17EF/6190)<br>
    0.006114    [D1] Failed to open device (17EF/6190), skipping: Access <br>
denied (insufficient permissions)<br>
    0.006116    [D2] Checking device 3 of 8 (17EF/608D)<br>
    0.006121    [D1] Failed to open device (17EF/608D), skipping: Access <br>
denied (insufficient permissions)<br>
    0.006124    [D2] Checking device 4 of 8 (0001/0000)<br>
    0.007337    [D1] nut_libusb_open get iProduct failed, retrying...<br>
    0.008513    [D1] nut_libusb_open get iProduct failed, retrying...<br>
    0.009670    [D1] nut_libusb_open get iProduct failed, retrying...<br>
    0.009675    [D2] - VendorID: 0001<br>
    0.009678    [D2] - ProductID: 0000<br>
    0.009681    [D2] - Manufacturer: unknown<br>
    0.009683    [D2] - Product: unknown<br>
    0.009685    [D2] - Serial Number: unknown<br>
    0.009688    [D2] - Bus: 003<br>
    0.009690    [D2] - Bus Port: 006<br>
    0.009693    [D2] - Device: 008<br>
    0.009695    [D2] - Device release number: 0100<br>
    0.009697    [D2] Trying to match device<br>
    0.009702    [D2] match_function_subdriver (non-SHUT mode): matching a <br>
device...<br>
    0.009708    [D2] match_function_subdriver (non-SHUT mode): failed to <br>
match a subdriver to vendor and/or product ID<br>
    0.009711    [D2] Device does not match - skipping<br>
    0.009723    [D2] Checking device 5 of 8 (0BDA/4853)<br>
    0.009738    [D1] Failed to open device (0BDA/4853), skipping: Access <br>
denied (insufficient permissions)<br>
    0.009742    [D2] Checking device 6 of 8 (1D6B/0002)<br>
    0.009747    [D1] Failed to open device (1D6B/0002), skipping: Access <br>
denied (insufficient permissions)<br>
    0.009750    [D2] Checking device 7 of 8 (1D6B/0003)<br>
    0.009756    [D1] Failed to open device (1D6B/0003), skipping: Access <br>
denied (insufficient permissions)<br>
    0.009759    [D2] Checking device 8 of 8 (1D6B/0002)<br>
    0.009764    [D1] Failed to open device (1D6B/0002), skipping: Access <br>
denied (insufficient permissions)<br>
    0.009768    [D2] libusb1: No appropriate HID device found<br>
    0.009779    libusb1: Could not open any HID devices: insufficient <br>
permissions on everything<br>
    0.009785    No matching HID UPS found<br>
    0.009798    [D5] send_to_all: SETINFO driver.state "cleanup.exit"<br>
<br>
On 26/12/25 21:46, Jim Klimov wrote:<br>
> Thanks, yes (now :-} )<br>
> <br>
> So at least the string language index issue is solved, it sees the <br>
> common "MEC0003" name.<br>
> <br>
> In the log I see you also setting "subdriver=hunnox" which is not listed <br>
> in the HCL comments:<br>
> <br>
> $ git grep -i digitech<br>
> data/<a href="http://driver.list.in" rel="noreferrer noreferrer noreferrer noreferrer" target="_blank">driver.list.in</a> <<a href="http://driver.list.in" rel="noreferrer noreferrer noreferrer noreferrer" target="_blank">http://driver.list.in</a>>:"<wbr>DigiTECH"  "ups"   "2"     <br>
> "Computer 650VA"        "USB"   "nutdrv_qx port=auto vendorid=0001 <br>
> productid=0000 protocol=hunnox langid_fix=0x0409 novendor noscanlangid" <br>
>       # <a href="https://github.com/networkupstools/nut/pull/638" rel="noreferrer noreferrer noreferrer noreferrer" target="_blank">https://github.com/<wbr>networkupstools/nut/pull/638</a> <https:// <br>
> <a href="http://github.com/networkupstools/nut/pull/638" rel="noreferrer noreferrer noreferrer noreferrer" target="_blank">github.com/networkupstools/<wbr>nut/pull/638</a>> caveats at <a href="https://github.com/" rel="noreferrer noreferrer noreferrer noreferrer" target="_blank">https://github.com/</a> <br>
> networkupstools/nut/issues/674 <<a href="https://github.com/networkupstools/nut/" rel="noreferrer noreferrer noreferrer noreferrer" target="_blank">https://github.com/<wbr>networkupstools/nut/</a> <br>
> issues/674> (may need longer pollinterval)<br>
> <br>
> Parameter names are a bit messed up historically, "subdriver" in <br>
> nutdrv_qx refers to USB connection nuances (vs. serial which has no such <br>
> concept), and "protocol" is the actual variant of some dialect derived <br>
> from a Megatec Q<x> protocol.<br>
> It may be that the USB subdriver for hunnox is in fact not what digitech <br>
> wants, and that's why connection setup fails?<br>
> <br>
> One other idea is to make a shell loop trying all protocols and <br>
> subdrivers until something returns a reasonable response. You can see <br>
> the values to loop over in help message of the driver.<br>
> <br>
> Finally, there is a chance that they released a device not talking <br>
> Megatec but something else. You can try `nutdrv_atcl_usb` (at least it <br>
> also fits the no-name 0000:0001 IDs), or `usbhid-ups -s test  -x <br>
> port=auto -x productid=0000 -x vendorid=0001 -DDDDDD -d1`<br>
> <br>
> The I/O error message seems to come out of the blue, so NUT just has it <br>
> with little context... You can also try your chances with LIBUSB_DEBUG, <br>
> see <a href="https://github.com/networkupstools/nut/wiki/Changing-NUT-daemon-" rel="noreferrer noreferrer noreferrer noreferrer" target="_blank">https://github.com/<wbr>networkupstools/nut/wiki/<wbr>Changing-NUT-daemon-</a> <br>
> debug-verbosity#nut-v283-and-<wbr>newer <<a href="https://github.com/networkupstools/" rel="noreferrer noreferrer noreferrer noreferrer" target="_blank">https://github.com/<wbr>networkupstools/</a> <br>
> nut/wiki/Changing-NUT-daemon-<wbr>debug-verbosity#nut-v283-and-<wbr>newer> for <br>
> details.<br>
> <br>
> Hope this helps,<br>
> Jim Klimov<br>
> <br>
<br>
</blockquote></div></div>