Hi!
I am making a tiny core extension for Network UPS Tools (NUT) with support for usbhid-ups driver (connecting to ups over usb).
(
www.networkupstools.org)
I have compiled it for tiny core, but I have some permission problems.
I have installed it from source and configured it to run as user=ups and group=nut (./configure --with-user=ups --with-group=nut)
I have also made this user on the tiny core machine.
If I try to start, it won't work:
root@Dalen:/usr/local/ups/bin/upsdrvctl start eaton
I get this error message:
Network UPS Tools - UPS driver controller 2.6.4
Network UPS Tools - Generic HID driver 0.37 (2.6.4)
USB communication driver 0.31
No matching HID UPS found
Driver failed to start (exit status=1)If I run the driver itself as user=ups I get this error
root@Dalen:/home/tc# /usr/local/ups/bin/usbhid-ups -u ups -DD -a eaton
Network UPS Tools - Generic HID driver 0.37 (2.6.4)
USB communication driver 0.31
   0.000000	debug level is '2'
   0.001697	upsdrv_initups...
   0.119706	Checking device (1D6B/0002) (001/001)
   0.120568	Failed to open device, skipping. (Permission denied)
   0.121018	Checking device (18A5/0302) (001/002)
   0.121344	Failed to open device, skipping. (Permission denied)
   0.121647	Checking device (1D6B/0001) (002/001)
   0.122122	Failed to open device, skipping. (Permission denied)
   0.122582	Checking device (1D6B/0001) (003/001)
   0.122956	Failed to open device, skipping. (Permission denied)
   0.123201	Checking device (1D6B/0001) (004/001)
   0.123456	Failed to open device, skipping. (Permission denied)
   0.123697	Checking device (1D6B/0001) (005/001)
   0.123953	Failed to open device, skipping. (Permission denied)
   0.124193	Checking device (0463/FFFF) (005/002)
   0.124447	Failed to open device, skipping. (Permission denied)
   0.124685	No appropriate HID device found
   0.124815	No matching HID UPS found
root@Dalen:/home/tc# If I run as root the the driver connect works and connect to the ups.
I asked on the mailing list for Network UPS tools and I learned that access rights is addressed on Linux through udev. I was told that running 
$ udevadm trigger --subsystem-match=usb --action=change and unplug/replug usb cable should solve the problem, but with no luck.
I have also tried running 
udevadm control --reload-rules with no luck.
For just to check that the program is working and its a permission problem I tried this:
chmod 0777 directly on usb bus that the ups is connected to the root@Dalen:/usr/local/ups/bin/upsdrvctl start eaton will start and I can start the upsd deamon and everything is working
Does anyone have any ideas whats wrong? Is it possible that something is wrong with the udev rule or maybe the rule is not loaded?
the udev rule is placed in:
root@Dalen:/etc/udev/rules.d# ls -la
total 60
drwxr-xr-x    2 root     root           360 Jul 18 02:06 .
drwxr-xr-x    3 root     root            60 Jul 18 02:06 ..
-rw-r--r--    1 root     root           764 Aug 10  2011 42-qemu-usb.rules
-rw-r--r--    1 root     root           277 Aug 10  2011 50-firmware.rules
-rw-r--r--    1 root     root          3816 Oct  8  2011 50-udev-default.rules
lrwxrwxrwx    1 root     root            52 Jul 28 08:06 52-nut-usbups.rules -> /tmp/tcloop/nut/etc/udev/rules.d/52-nut-usbups.rules
-rw-r--r--    1 root     root           167 Aug 10  2011 55-tc.rules
-rw-r--r--    1 root     root           104 Oct  8  2011 56-lsusb.rules
-rw-r--r--    1 root     root           308 Aug 10  2011 60-cdrom_id.rules
-rw-r--r--    1 root     root          1060 Aug 10  2011 60-pcmcia.rules
-rw-r--r--    1 root     root           616 Aug 10  2011 60-persistent-alsa.rules
-rw-r--r--    1 root     root          2400 Aug 10  2011 60-persistent-input.rules
-rw-r--r--    1 root     root           947 Aug 10  2011 60-persistent-serial.rules
-rw-r--r--    1 root     root          2669 Aug 10  2011 60-persistent-storage.rules
-rw-r--r--    1 root     root           239 Aug 10  2011 75-cd-dvd.rules
-rw-r--r--    1 root     root           657 Aug 10  2011 80-drivers.rules
-rw-r--r--    1 root     root           155 Aug 10  2011 95-udev-late.rules
-rw-r--r--    1 root     root           294 Mar  4  2010 98-tc.rules
root@Dalen:/etc/udev/rules.d# and looks like this:
# This file is generated and installed by the Network UPS Tools package.
ACTION!="add|change", GOTO="nut-usbups_rules_end"
SUBSYSTEM=="usb_device", GOTO="nut-usbups_rules_real"
SUBSYSTEM=="usb", GOTO="nut-usbups_rules_real"
SUBSYSTEM!="usb", GOTO="nut-usbups_rules_end"
LABEL="nut-usbups_rules_real"
#  Krauler UP-M500VA  - blazer_usb
ATTR{idVendor}=="0001", ATTR{idProduct}=="0000", MODE="664", GROUP="nut"
# Hewlett Packard
#  e.g. ?  - usbhid-ups
ATTR{idVendor}=="03f0", ATTR{idProduct}=="0001", MODE="664", GROUP="nut"
#  T500  - bcmxcp_usb
ATTR{idVendor}=="03f0", ATTR{idProduct}=="1f01", MODE="664", GROUP="nut"
#  T750  - bcmxcp_usb
ATTR{idVendor}=="03f0", ATTR{idProduct}=="1f02", MODE="664", GROUP="nut"
#  HP T750 INTL  - usbhid-ups
ATTR{idVendor}=="03f0", ATTR{idProduct}=="1f06", MODE="664", GROUP="nut"
#  HP T1000 INTL  - usbhid-ups
ATTR{idVendor}=="03f0", ATTR{idProduct}=="1f08", MODE="664", GROUP="nut"
#  HP T1500 INTL  - usbhid-ups
ATTR{idVendor}=="03f0", ATTR{idProduct}=="1f09", MODE="664", GROUP="nut"
#  HP R/T 2200 INTL (like SMART2200RMXL2U)  - usbhid-ups
ATTR{idVendor}=="03f0", ATTR{idProduct}=="1f0a", MODE="664", GROUP="nut"
#  HP R1500 G2 and G3 INTL  - usbhid-ups
ATTR{idVendor}=="03f0", ATTR{idProduct}=="1fe0", MODE="664", GROUP="nut"
#  HP T750 G2  - usbhid-ups
ATTR{idVendor}=="03f0", ATTR{idProduct}=="1fe1", MODE="664", GROUP="nut"
#  e.g. ?  - usbhid-ups
ATTR{idVendor}=="03f0", ATTR{idProduct}=="1fe2", MODE="664", GROUP="nut"
#  HP T1500 G3  - usbhid-ups
ATTR{idVendor}=="03f0", ATTR{idProduct}=="1fe3", MODE="664", GROUP="nut"
#  R/T3000  - usbhid-ups
ATTR{idVendor}=="03f0", ATTR{idProduct}=="1fe5", MODE="664", GROUP="nut"
#  R/T3000  - usbhid-ups
ATTR{idVendor}=="03f0", ATTR{idProduct}=="1fe6", MODE="664", GROUP="nut"
#  various models  - usbhid-ups
ATTR{idVendor}=="03f0", ATTR{idProduct}=="1fe7", MODE="664", GROUP="nut"
#  various models  - usbhid-ups
ATTR{idVendor}=="03f0", ATTR{idProduct}=="1fe8", MODE="664", GROUP="nut"
# Eaton
#  various models  - usbhid-ups
ATTR{idVendor}=="0463", ATTR{idProduct}=="0001", MODE="664", GROUP="nut"
#  various models  - usbhid-ups
ATTR{idVendor}=="0463", ATTR{idProduct}=="ffff", MODE="664", GROUP="nut"
# Dell
#  various models  - usbhid-ups
ATTR{idVendor}=="047c", ATTR{idProduct}=="ffff", MODE="664", GROUP="nut"
# Belkin
#  F6H375-USB  - usbhid-ups
ATTR{idVendor}=="050d", ATTR{idProduct}=="0375", MODE="664", GROUP="nut"
#  F6C550-AVR  - usbhid-ups
ATTR{idVendor}=="050d", ATTR{idProduct}=="0551", MODE="664", GROUP="nut"
#  F6C1250-TW-RK  - usbhid-ups
ATTR{idVendor}=="050d", ATTR{idProduct}=="0750", MODE="664", GROUP="nut"
#  F6C1500-TW-RK  - usbhid-ups
ATTR{idVendor}=="050d", ATTR{idProduct}=="0751", MODE="664", GROUP="nut"
#  F6C900-UNV  - usbhid-ups
ATTR{idVendor}=="050d", ATTR{idProduct}=="0900", MODE="664", GROUP="nut"
#  F6C100-UNV  - usbhid-ups
ATTR{idVendor}=="050d", ATTR{idProduct}=="0910", MODE="664", GROUP="nut"
#  F6C120-UNV  - usbhid-ups
ATTR{idVendor}=="050d", ATTR{idProduct}=="0912", MODE="664", GROUP="nut"
#  F6C800-UNV  - usbhid-ups
ATTR{idVendor}=="050d", ATTR{idProduct}=="0980", MODE="664", GROUP="nut"
#  F6C1100-UNV, F6C1200-UNV  - usbhid-ups
ATTR{idVendor}=="050d", ATTR{idProduct}=="1100", MODE="664", GROUP="nut"
# APC
#  various models  - usbhid-ups
ATTR{idVendor}=="051d", ATTR{idProduct}=="0002", MODE="664", GROUP="nut"
#  various 5G models  - usbhid-ups
ATTR{idVendor}=="051d", ATTR{idProduct}=="0003", MODE="664", GROUP="nut"
# Powerware
#  various models  - bcmxcp_usb
ATTR{idVendor}=="0592", ATTR{idProduct}=="0002", MODE="664", GROUP="nut"
#  PW 9140  - usbhid-ups
ATTR{idVendor}=="0592", ATTR{idProduct}=="0004", MODE="664", GROUP="nut"
#  Agiler UPS  - blazer_usb
ATTR{idVendor}=="05b8", ATTR{idProduct}=="0000", MODE="664", GROUP="nut"
#  Belkin F6C1200-UNV  - blazer_usb
ATTR{idVendor}=="0665", ATTR{idProduct}=="5161", MODE="664", GROUP="nut"
# Phoenixtec Power Co., Ltd
#  various models  - bcmxcp_usb
ATTR{idVendor}=="06da", ATTR{idProduct}=="0002", MODE="664", GROUP="nut"
#  Mustek Powermust  - blazer_usb
ATTR{idVendor}=="06da", ATTR{idProduct}=="0003", MODE="664", GROUP="nut"
#  Phoenixtec Innova 3/1 T  - blazer_usb
ATTR{idVendor}=="06da", ATTR{idProduct}=="0004", MODE="664", GROUP="nut"
#  Phoenixtec Innova RT  - blazer_usb
ATTR{idVendor}=="06da", ATTR{idProduct}=="0005", MODE="664", GROUP="nut"
#  Phoenixtec Innova T  - blazer_usb
ATTR{idVendor}=="06da", ATTR{idProduct}=="0201", MODE="664", GROUP="nut"
#  various models  - usbhid-ups
ATTR{idVendor}=="06da", ATTR{idProduct}=="ffff", MODE="664", GROUP="nut"
# iDowell
#  iDowell  - usbhid-ups
ATTR{idVendor}=="075d", ATTR{idProduct}=="0300", MODE="664", GROUP="nut"
# Cyber Power Systems
#  900AVR/BC900D, CP1200AVR/BC1200D  - usbhid-ups
ATTR{idVendor}=="0764", ATTR{idProduct}=="0005", MODE="664", GROUP="nut"
#  Dynex DX-800U?  - usbhid-ups
ATTR{idVendor}=="0764", ATTR{idProduct}=="0501", MODE="664", GROUP="nut"
#  OR2200LCDRM2U, OR700LCDRM1U, PR6000LCDRTXL5U  - usbhid-ups
ATTR{idVendor}=="0764", ATTR{idProduct}=="0601", MODE="664", GROUP="nut"
#  Sweex 1000VA  - richcomm_usb
ATTR{idVendor}=="0925", ATTR{idProduct}=="1234", MODE="664", GROUP="nut"
# TrippLite
#  e.g. OMNIVS1000, SMART550USB, ...  - tripplite_usb
ATTR{idVendor}=="09ae", ATTR{idProduct}=="0001", MODE="664", GROUP="nut"
#  e.g. TrippLite AVR550U  - usbhid-ups
ATTR{idVendor}=="09ae", ATTR{idProduct}=="1003", MODE="664", GROUP="nut"
#  e.g. TrippLite AVR750U  - usbhid-ups
ATTR{idVendor}=="09ae", ATTR{idProduct}=="1007", MODE="664", GROUP="nut"
#  e.g. TrippLite ECO550UPS  - usbhid-ups
ATTR{idVendor}=="09ae", ATTR{idProduct}=="1008", MODE="664", GROUP="nut"
#  e.g. TrippLite ECO550UPS  - usbhid-ups
ATTR{idVendor}=="09ae", ATTR{idProduct}=="1009", MODE="664", GROUP="nut"
#  e.g. TrippLite ECO550UPS  - usbhid-ups
ATTR{idVendor}=="09ae", ATTR{idProduct}=="1010", MODE="664", GROUP="nut"
#  e.g. TrippLite OMNI1000LCD  - usbhid-ups
ATTR{idVendor}=="09ae", ATTR{idProduct}=="2005", MODE="664", GROUP="nut"
#  e.g. TrippLite OMNI900LCD  - usbhid-ups
ATTR{idVendor}=="09ae", ATTR{idProduct}=="2007", MODE="664", GROUP="nut"
#  e.g. ?  - usbhid-ups
ATTR{idVendor}=="09ae", ATTR{idProduct}=="2008", MODE="664", GROUP="nut"
#  e.g. TrippLite Smart1000LCD  - usbhid-ups
ATTR{idVendor}=="09ae", ATTR{idProduct}=="2009", MODE="664", GROUP="nut"
#  e.g. ?  - usbhid-ups
ATTR{idVendor}=="09ae", ATTR{idProduct}=="2010", MODE="664", GROUP="nut"
#  e.g. ?  - usbhid-ups
ATTR{idVendor}=="09ae", ATTR{idProduct}=="2011", MODE="664", GROUP="nut"
#  e.g. ?  - usbhid-ups
ATTR{idVendor}=="09ae", ATTR{idProduct}=="2012", MODE="664", GROUP="nut"
#  e.g. ?  - usbhid-ups
ATTR{idVendor}=="09ae", ATTR{idProduct}=="2013", MODE="664", GROUP="nut"
#  e.g. ?  - usbhid-ups
ATTR{idVendor}=="09ae", ATTR{idProduct}=="2014", MODE="664", GROUP="nut"
#  e.g. ?  - usbhid-ups
ATTR{idVendor}=="09ae", ATTR{idProduct}=="3008", MODE="664", GROUP="nut"
#  e.g. ?  - usbhid-ups
ATTR{idVendor}=="09ae", ATTR{idProduct}=="3009", MODE="664", GROUP="nut"
#  e.g. ?  - usbhid-ups
ATTR{idVendor}=="09ae", ATTR{idProduct}=="3010", MODE="664", GROUP="nut"
#  e.g. ?  - usbhid-ups
ATTR{idVendor}=="09ae", ATTR{idProduct}=="3011", MODE="664", GROUP="nut"
#  e.g. TrippLite smart2200RMXL2U  - usbhid-ups
ATTR{idVendor}=="09ae", ATTR{idProduct}=="3012", MODE="664", GROUP="nut"
#  e.g. ?  - usbhid-ups
ATTR{idVendor}=="09ae", ATTR{idProduct}=="3013", MODE="664", GROUP="nut"
#  e.g. ?  - usbhid-ups
ATTR{idVendor}=="09ae", ATTR{idProduct}=="3014", MODE="664", GROUP="nut"
#  e.g. ?  - usbhid-ups
ATTR{idVendor}=="09ae", ATTR{idProduct}=="3015", MODE="664", GROUP="nut"
#  e.g. TrippLite SmartOnline SU1500RTXL2UA (older unit?)  - usbhid-ups
ATTR{idVendor}=="09ae", ATTR{idProduct}=="4001", MODE="664", GROUP="nut"
#  e.g. TrippLite SmartOnline SU6000RT4U?  - usbhid-ups
ATTR{idVendor}=="09ae", ATTR{idProduct}=="4002", MODE="664", GROUP="nut"
#  e.g. TrippLite SmartOnline SU1500RTXL2ua  - usbhid-ups
ATTR{idVendor}=="09ae", ATTR{idProduct}=="4003", MODE="664", GROUP="nut"
#  e.g. TrippLite SmartOnline SU1000XLA  - usbhid-ups
ATTR{idVendor}=="09ae", ATTR{idProduct}=="4004", MODE="664", GROUP="nut"
#  e.g. ?  - usbhid-ups
ATTR{idVendor}=="09ae", ATTR{idProduct}=="4005", MODE="664", GROUP="nut"
#  e.g. ?  - usbhid-ups
ATTR{idVendor}=="09ae", ATTR{idProduct}=="4006", MODE="664", GROUP="nut"
#  e.g. ?  - usbhid-ups
ATTR{idVendor}=="09ae", ATTR{idProduct}=="4007", MODE="664", GROUP="nut"
#  e.g. ?  - usbhid-ups
ATTR{idVendor}=="09ae", ATTR{idProduct}=="4008", MODE="664", GROUP="nut"
# PowerCOM
#  PowerCOM BNT-xxxAP  - usbhid-ups
ATTR{idVendor}=="0d9f", ATTR{idProduct}=="0004", MODE="664", GROUP="nut"
#  PowerCOM IMP - IMPERIAL Series  - usbhid-ups
ATTR{idVendor}=="0d9f", ATTR{idProduct}=="00a2", MODE="664", GROUP="nut"
#  PowerCOM SKP - Smart KING Pro (all Smart series)  - usbhid-ups
ATTR{idVendor}=="0d9f", ATTR{idProduct}=="00a3", MODE="664", GROUP="nut"
#  PowerCOM WOW  - usbhid-ups
ATTR{idVendor}=="0d9f", ATTR{idProduct}=="00a4", MODE="664", GROUP="nut"
#  PowerCOM VGD - Vanguard  - usbhid-ups
ATTR{idVendor}=="0d9f", ATTR{idProduct}=="00a5", MODE="664", GROUP="nut"
#  PowerCOM BNT - Black Knight Pro  - usbhid-ups
ATTR{idVendor}=="0d9f", ATTR{idProduct}=="00a6", MODE="664", GROUP="nut"
#  Unitek Alpha 1200Sx  - blazer_usb
ATTR{idVendor}=="0f03", ATTR{idProduct}=="0001", MODE="664", GROUP="nut"
# Liebert
#  Liebert PowerSure PSA UPS  - usbhid-ups
ATTR{idVendor}=="10af", ATTR{idProduct}=="0001", MODE="664", GROUP="nut"
#  GE EP series  - blazer_usb
ATTR{idVendor}=="14f0", ATTR{idProduct}=="00c9", MODE="664", GROUP="nut"
#  Ablerex 625L USB  - blazer_usb
ATTR{idVendor}=="ffff", ATTR{idProduct}=="0000", MODE="664", GROUP="nut"
LABEL="nut-usbups_rules_end"
Regards,
rabtux