G'day Jim. Did you receive the following? I tried running "./drivers/nutdrv_qx -a ups1 -d1 -DDDDDD -x subdriver=hunnox" after building directly after
./configure --with-all --with-cgi --with-usb=libusb-1.0 --with-modbus=no --with-gpio=no --with-snmp=no The output is the the attachment. Doesn't look good. (I added the three =no bits to configure options because I couldn't find the relevant dependencies.) Cheers, Stephen On 19/12/25 18:46, Jim Klimov wrote: > Thanks, > > So on one hand that part does not look too promising: > > Dec 19 18:04:56 mustang nut-driver@ups1[916173]: 0.028122#011[D5] > send_to_all: SETINFO driver.state "reconnect.updateinfo" > Dec 19 18:04:56 mustang nut-driver@ups1[916173]: 0.028125#011[D3] send: Q1 > Dec 19 18:04:56 mustang nut-driver@ups1[916173]: 0.029292#011[D3] read: > Input/Output Error (-1) > Dec 19 18:04:56 mustang nut-driver@ups1[916173]: 0.029308#011[D5] > send_to_all: SETINFO driver.state "reconnect.trying" > > but on another, NUT v2.8.2.1 along with `nut_libusb_open get iProduct failed, > retrying` indicates that maybe this is a device with botched retrieval of > language-specific strings, so we get part of that reply and the rest is seen > by USB layer as garbage when asking for Q1. Maybe. At least, the part about > iProduct, iVendor, possibly iSerial was solved about a year ago - so trying a > newer NUT version can help. > > Can you please check if you can build the current master branch per > https://github.com/networkupstools/nut/wiki/Building-NUT-for-in%E2%80%90place-upgrades-or-non%E2%80%90disruptive-tests > and run the driver from the resulting build workspace, if that would fare > better? If yes, you can go on about installing that build over the packaged > version; if no, not much of a change for the existing system (except added > build dependency prerequisite packages). > > Specifically, I think these PRs can apply to the situation: > * https://github.com/networkupstools/nut/pull/2604 and maybe > https://github.com/networkupstools/nut/pull/2571 (both went into 2.8.3) > * https://github.com/networkupstools/nut/pull/3211 (recently on master, fixes > a string truncation issue possible after #2604 above) > > Hope this helps, > Jim Klimov > >
0.000000 [D5] send_to_all: SETINFO driver.state "init.starting" Network UPS Tools 2.8.4.983-983+ge439012cd (development iteration after 2.8.4) - Generic Q* USB/Serial driver 0.48 USB communication driver (libusb 1.0) 0.51 0.000135 [D1] upsdrv_makevartable... 0.000160 [D5] send_to_all: SETINFO driver.version.usb "libusb-1.0.28 (API: 0x0100010A)" 0.000167 [D1] Using USB implementation: libusb-1.0.28 (API: 0x0100010A) 0.000331 [D5] do_upsconf_args: confupsname=(null), var=maxretry, val=3 0.000337 [D5] do_upsconf_args: call do_global_args() 0.000339 [D3] do_global_args: var='maxretry' val='3' 0.000398 [D5] do_upsconf_args: confupsname=ups1, var=driver, val=nutdrv_qx 0.000402 [D5] do_upsconf_args: call main_arg() 0.000404 [D3] main_arg: var='driver' val='nutdrv_qx' 0.000409 [D5] do_upsconf_args: not a main_arg() 0.000412 [D5] do_upsconf_args: this is a 'driver' setting, may we proceed? 0.000415 [D6] testval_reloadable: var=driver, oldval=nutdrv_qx, newval=nutdrv_qx, reloadable=0, reload_flag=0 0.000418 [D6] testval_reloadable: verdict for (re)loading var=driver value: -1 0.000420 [D5] do_upsconf_args: 'driver' setting already applied with this value 0.000423 [D5] do_upsconf_args: confupsname=ups1, var=port, val=auto 0.000425 [D5] do_upsconf_args: call main_arg() 0.000427 [D3] main_arg: var='port' val='auto' 0.000430 [D6] testinfo_reloadable: var=port, infoname=driver.parameter.port, newval=auto, reloadable=0, reload_flag=0 0.000432 [D6] testinfo_reloadable: verdict for (re)loading var=port value: 1 0.000436 [D5] send_to_all: SETINFO driver.parameter.port "auto" 0.000439 [D5] do_upsconf_args: confupsname=ups1, var=vendorid, val=0001 0.000441 [D5] do_upsconf_args: call main_arg() 0.000481 [D3] main_arg: var='vendorid' val='0001' 0.000483 [D5] do_upsconf_args: not a main_arg() 0.000485 [D5] do_upsconf_args: process as value 0.000487 [D6] testvar_reloadable: searching for var=vendorid, vartype=2, reload_flag=0 0.000491 [D6] testvar_reloadable: found var=vendorid, val='(null)' => '0001', vartype=2 => 2, found=0, reloadable=0, reload_flag=0 0.000495 [D6] testvar_reloadable: verdict for (re)loading var=vendorid value: 1 0.000502 [D5] send_to_all: SETINFO driver.parameter.vendorid "0001" 0.000505 [D5] do_upsconf_args: confupsname=ups1, var=productid, val=0000 0.000507 [D5] do_upsconf_args: call main_arg() 0.000509 [D3] main_arg: var='productid' val='0000' 0.000512 [D5] do_upsconf_args: not a main_arg() 0.000513 [D5] do_upsconf_args: process as value 0.000516 [D6] testvar_reloadable: searching for var=productid, vartype=2, reload_flag=0 0.000519 [D6] testvar_reloadable: found var=productid, val='(null)' => '0000', vartype=2 => 2, found=0, reloadable=0, reload_flag=0 0.000522 [D6] testvar_reloadable: verdict for (re)loading var=productid value: 1 0.000525 [D5] send_to_all: SETINFO driver.parameter.productid "0000" 0.000528 [D5] do_upsconf_args: confupsname=ups1, var=protocol, val=hunnox 0.000530 [D5] do_upsconf_args: call main_arg() 0.000532 [D3] main_arg: var='protocol' val='hunnox' 0.000534 [D5] do_upsconf_args: not a main_arg() 0.000536 [D5] do_upsconf_args: process as value 0.000538 [D6] testvar_reloadable: searching for var=protocol, vartype=2, reload_flag=0 0.000541 [D6] testvar_reloadable: found var=protocol, val='(null)' => 'hunnox', vartype=2 => 2, found=0, reloadable=0, reload_flag=0 0.000544 [D6] testvar_reloadable: verdict for (re)loading var=protocol value: 1 0.000547 [D5] send_to_all: SETINFO driver.parameter.protocol "hunnox" 0.000549 [D5] do_upsconf_args: confupsname=ups1, var=novendor, val=(null) 0.000551 [D5] do_upsconf_args: call main_arg() 0.000553 [D3] main_arg: var='novendor' val='<null>' 0.000555 [D5] do_upsconf_args: not a main_arg() 0.000557 [D5] do_upsconf_args: process as flag 0.000559 [D6] testvar_reloadable: searching for var=novendor, vartype=1, reload_flag=0 0.000563 [D6] testvar_reloadable: found var=novendor, val='(null)' => '(null)', vartype=1 => 1, found=0, reloadable=0, reload_flag=0 0.000574 [D6] testvar_reloadable: verdict for (re)loading var=novendor value: 1 0.000577 [D5] send_to_all: SETINFO driver.flag.novendor "enabled" 0.000581 [D5] do_upsconf_args: confupsname=ups1, var=noscanlangid, val=(null) 0.000583 [D5] do_upsconf_args: call main_arg() 0.000585 [D3] main_arg: var='noscanlangid' val='<null>' 0.000587 [D5] do_upsconf_args: not a main_arg() 0.000589 [D5] do_upsconf_args: process as flag 0.000591 [D6] testvar_reloadable: searching for var=noscanlangid, vartype=1, reload_flag=0 0.000594 [D6] testvar_reloadable: found var=noscanlangid, val='(null)' => '(null)', vartype=1 => 1, found=0, reloadable=0, reload_flag=0 0.000597 [D6] testvar_reloadable: verdict for (re)loading var=noscanlangid value: 1 0.000599 [D5] send_to_all: SETINFO driver.flag.noscanlangid "enabled" 0.000603 [D5] do_upsconf_args: confupsname=ups1, var=desc, val=My local UPS 0.000605 [D5] do_upsconf_args: call main_arg() 0.000607 [D3] main_arg: var='desc' val='My local UPS' 0.000617 [D3] main_arg: var='subdriver' val='hunnox' 0.000621 [D5] send_to_all: SETINFO driver.parameter.subdriver "hunnox" 0.000623 [D1] Network UPS Tools version 2.8.4.983-983+ge439012cd (development iteration after 2.8.4), 64-bit build for x86_64, built with gcc (GCC) 14.3.1 20250617 (Red Hat 14.3.1-2) and configured with flags: --with-all --with-cgi --with-usb=libusb-1.0 --with-modbus=no --with-gpio=no --with-snmp=no 0.000630 [D1] debug level is '6' 0.000634 [D5] send_to_all: SETINFO driver.debug "6" 0.000637 [D5] send_to_all: SETFLAGS driver.debug RW NUMBER 0.001736 [D1] Succeeded to become_user(nut): now UID=57 GID=57 0.001784 Can't chdir to /var/state/ups (but we do not require that to dump data): No such file or directory 0.001788 [D1] Signalling UPS [ups1]: driver.exit (quietly, no fuss if no driver is running or responding) 0.001796 Can't open /var/state/ups/nutdrv_qx-ups1: No such file or directory 0.001799 [D1] Request for other driver to exit returned code -1 0.001802 [D1] Socket dialog with the other driver instance (may be absent) failed: No such file or directory 0.001823 [D5] send_to_all: SETINFO device.type "ups" 0.001829 [D5] send_to_all: SETINFO driver.state "init.device" 0.001832 [D1] upsdrv_initups... 0.008179 [D2] Checking device 1 of 8 (1D6B/0003) 0.008231 [D1] Failed to open device (1D6B/0003), skipping: Access denied (insufficient permissions) 0.008240 [D2] Checking device 2 of 8 (17EF/6190) 0.008253 [D1] Failed to open device (17EF/6190), skipping: Access denied (insufficient permissions) 0.008257 [D2] Checking device 3 of 8 (17EF/608D) 0.008267 [D1] Failed to open device (17EF/608D), skipping: Access denied (insufficient permissions) 0.008271 [D2] Checking device 4 of 8 (0001/0000) 0.009711 [D1] nut_usb_get_string: Broken language identifier, assuming en_US 0.010990 [D6] nut_usb_get_string: from nut_usb_get_string_descriptor() got 16 useful bytes 0.011014 [D6] ...into buffer, presumably in simple UTF-16LE encoding: (16 bytes) => 10 03 0.011022 [D6] 4d 00 45 00 43 00 30 00 30 00 30 00 33 00 0.011027 [D6] nut_usb_get_string: converted into 7 data bytes as: [MEC0003] 0.011033 [D6] ...should be in 8-bit encoding: (7 bytes) => 4d 45 43 30 30 30 33 0.011039 [D2] - VendorID: 0001 0.011043 [D2] - ProductID: 0000 0.011047 [D2] - Manufacturer: unknown 0.011051 [D2] - Product: MEC0003 0.011056 [D2] - Serial Number: unknown 0.011060 [D2] - Bus: 003 0.011064 [D2] - Bus Port: 006 0.011068 [D2] - Device: 006 0.011072 [D2] - Device release number: 0100 0.011076 [D2] Trying to match device 0.011081 [D3] match_function_regex: matching a device... 0.011138 [D2] Device matches 0.011143 [D2] Reading configuration descriptor 1 of 1 0.011157 [D3] libusb_kernel_driver_active() returned 0: Success 0.011193 [D2] Claimed interface 0 successfully 0.011201 [D3] nut_libusb_set_altinterface: skipped libusb_set_interface_alt_setting(udev, 0, 0) 0.011217 [D5] send_to_all: SETINFO ups.vendorid "0001" 0.011237 [D5] send_to_all: SETINFO ups.productid "0000" 0.011245 [D2] Skipping protocol Voltronic 0.12 0.011250 [D2] Skipping protocol Voltronic-Axpert 0.01 0.011255 [D2] Skipping protocol Voltronic-QS 0.10 0.011259 [D2] Skipping protocol Voltronic-QS-Hex 0.11 0.011265 [D2] Skipping protocol Mustek 0.08 0.011269 [D2] Skipping protocol Megatec/old 0.08 0.011273 [D2] Skipping protocol BestUPS 0.08 0.011278 [D2] Skipping protocol Mecer 0.09 0.011282 [D2] Skipping protocol Megatec 0.09 0.011286 [D2] Skipping protocol Zinto 0.07 0.011290 [D2] Skipping protocol Masterguard 0.05 0.011298 [D3] send: Q1 0.011304 [D4] command index: 0x03 0.011308 [D3] asking for: 00 0.026383 [D3] read: Input/Output Error (-1) 0.026436 [D5] send_to_all: SETINFO driver.state "reconnect.trying" 0.026721 [D4] qx_process: failed to preprocess answer [input.voltage] 0.034120 [D2] Checking device 1 of 8 (1D6B/0003) 0.034168 [D1] Failed to open device (1D6B/0003), skipping: Access denied (insufficient permissions) 0.034175 [D2] Checking device 2 of 8 (17EF/6190) 0.034186 [D1] Failed to open device (17EF/6190), skipping: Access denied (insufficient permissions) 0.034190 [D2] Checking device 3 of 8 (17EF/608D) 0.034198 [D1] Failed to open device (17EF/608D), skipping: Access denied (insufficient permissions) 0.034202 [D2] Checking device 4 of 8 (0001/0000) 0.035446 [D1] nut_usb_get_string: Broken language identifier, assuming en_US 0.036741 [D6] nut_usb_get_string: from nut_usb_get_string_descriptor() got 16 useful bytes 0.036835 [D6] ...into buffer, presumably in simple UTF-16LE encoding: (16 bytes) => 10 03 0.036843 [D6] 4d 00 45 00 43 00 30 00 30 00 30 00 33 00 0.036848 [D6] nut_usb_get_string: converted into 7 data bytes as: [MEC0003] 0.036854 [D6] ...should be in 8-bit encoding: (7 bytes) => 4d 45 43 30 30 30 33 0.036860 [D2] - VendorID: 0001 0.036864 [D2] - ProductID: 0000 0.036868 [D2] - Manufacturer: unknown 0.036871 [D2] - Product: MEC0003 0.036874 [D2] - Serial Number: unknown 0.036878 [D2] - Bus: 003 0.036881 [D2] - Bus Port: 006 0.036885 [D2] - Device: 006 0.036888 [D2] - Device release number: 0100 0.036892 [D2] Trying to match device 0.036896 [D3] match_function_exact: matching a device... 0.036901 [D3] match_function_regex: matching a device... 0.036917 [D2] Device matches 0.036922 [D2] Reading configuration descriptor 1 of 1 0.036935 [D3] libusb_kernel_driver_active() returned 0: Success 0.036983 [D2] Claimed interface 0 successfully 0.036992 [D3] nut_libusb_set_altinterface: skipped libusb_set_interface_alt_setting(udev, 0, 0) 0.037009 [D5] send_to_all: SETINFO driver.state "reconnect.updateinfo" 0.037016 [D3] send: Q1 0.037021 [D4] command index: 0x03 0.037024 [D3] asking for: 0D 0.039654 [D3] read: Input/Output Error (-1) 0.039676 [D5] send_to_all: SETINFO driver.state "reconnect.trying" 0.039900 [D4] qx_process: failed to preprocess answer [input.voltage] 0.045788 [D2] Checking device 1 of 8 (1D6B/0003) 0.045836 [D1] Failed to open device (1D6B/0003), skipping: Access denied (insufficient permissions) 0.045844 [D2] Checking device 2 of 8 (17EF/6190) 0.045852 [D1] Failed to open device (17EF/6190), skipping: Access denied (insufficient permissions) 0.045856 [D2] Checking device 3 of 8 (17EF/608D) 0.045861 [D1] Failed to open device (17EF/608D), skipping: Access denied (insufficient permissions) 0.045864 [D2] Checking device 4 of 8 (0001/0000) 0.047067 [D1] nut_usb_get_string: Broken language identifier, assuming en_US 0.048286 [D6] nut_usb_get_string: from nut_usb_get_string_descriptor() got 16 useful bytes 0.048293 [D6] ...into buffer, presumably in simple UTF-16LE encoding: (16 bytes) => 10 03 0.048298 [D6] 4d 00 45 00 43 00 30 00 30 00 30 00 33 00 0.048302 [D6] nut_usb_get_string: converted into 7 data bytes as: [MEC0003] 0.048306 [D6] ...should be in 8-bit encoding: (7 bytes) => 4d 45 43 30 30 30 33 0.048322 [D2] - VendorID: 0001 0.048325 [D2] - ProductID: 0000 0.048328 [D2] - Manufacturer: unknown 0.048331 [D2] - Product: MEC0003 0.048333 [D2] - Serial Number: unknown 0.048335 [D2] - Bus: 003 0.048338 [D2] - Bus Port: 006 0.048341 [D2] - Device: 006 0.048343 [D2] - Device release number: 0100 0.048346 [D2] Trying to match device 0.048349 [D3] match_function_exact: matching a device... 0.048352 [D3] match_function_regex: matching a device... 0.048362 [D2] Device matches 0.048365 [D2] Reading configuration descriptor 1 of 1 0.048372 [D3] libusb_kernel_driver_active() returned 0: Success 0.048397 [D2] Claimed interface 0 successfully 0.048403 [D3] nut_libusb_set_altinterface: skipped libusb_set_interface_alt_setting(udev, 0, 0) 0.048413 [D5] send_to_all: SETINFO driver.state "reconnect.updateinfo" 0.048417 [D3] send: Q1 0.048420 [D4] command index: 0x03 0.049580 [D3] read: Input/Output Error (-1) 0.049587 [D5] send_to_all: SETINFO driver.state "reconnect.trying" 0.049711 [D4] qx_process: failed to preprocess answer [input.voltage] 0.049718 [D2] Skipping protocol Ablerex 0.02 0.049722 [D2] Skipping protocol INNOVART31 0.02 0.049725 [D2] Skipping protocol INNOVART33 0.01 0.049728 [D2] Skipping protocol INNOVATAE 0.01 0.049732 [D2] Skipping protocol Q2 0.01 0.049735 [D2] Skipping protocol Q6 0.01 0.049738 [D2] Skipping protocol Gtec 0.01 0.049741 [D2] Skipping protocol Q1 0.08 0.049744 Device not supported! 0.049747 Device not supported! 0.049759 [D5] send_to_all: SETINFO driver.state "cleanup.exit"
_______________________________________________ Nut-upsuser mailing list [email protected] https://alioth-lists.debian.net/cgi-bin/mailman/listinfo/nut-upsuser
