unseen
Contributor
- Joined
- Aug 25, 2017
- Messages
- 103
I use a "PowerWalker under another name" UPS on my TrueNAS 13 system. I have had this unit for ages and it works just fine - the only thing I have had to do is replace the battery once as it wore out over the course of about six or seven years. The electronics are well built and are still working perfectly. The UPS has a USB connection which implements a simple serial interface which is handled in NUT via the blazer_usb driver. When you connect the UPS, it reports itself as: "ugen0.5: <INNO TECH USB to Serial> at usbus0", with ugen0.5 varying according to the USB port number used. It should be noted that this type of UPS will not work if you plug it in to a USB3 port - it must be USB 1.1 or USB 2.
Anyway, since upgrading to TrueNAS 13, an old problem has returned. The problem is that everything works fine at first, but sooner or later (normally after a few days), the blazer_usb driver will die with the following message:
blazer_usb 1417 - - Permissions problem: Input/output error
The problem is caused by the UPS occasionally returning a bad status to the blazer_usb driver. This is caused by firmware bugs in the UPS and as it's old and not supported by the manufacturer with firmware updates, there's no way to fix the firmware. The error message is also misleading as there is no permissions problem involved.
In previous versions of freenas/truenas, I was able to make some simple changes to the blazer_usb driver which made it simply ignore the error instead of shutting down the driver. When the driver tries to talk to the UPS the next time, it gets a valid response again and everything continues to work. In FreeBSD 13.1, the blazer_usb driver has been updated and the problem has come back. I have just compiled a new version of blazer_usb with my old fix re-implemented for the 2.8.0 version of NUT which is included with FreeBSD 13.1 and am currently testing the fix.
If my UPS is still running without the driver crashing out in a week from now, I'd say that my fix also works on the latest version. In that case, I'll update this post with the details of the fix for those who are also having the same problem and who want to compile their own replacement blazer_usb driver. I'll also be able to provide the fixed driver as a binary file for anyone who is prepared to trust some stranger from the Internet. ;)
Anyway, since upgrading to TrueNAS 13, an old problem has returned. The problem is that everything works fine at first, but sooner or later (normally after a few days), the blazer_usb driver will die with the following message:
blazer_usb 1417 - - Permissions problem: Input/output error
The problem is caused by the UPS occasionally returning a bad status to the blazer_usb driver. This is caused by firmware bugs in the UPS and as it's old and not supported by the manufacturer with firmware updates, there's no way to fix the firmware. The error message is also misleading as there is no permissions problem involved.
In previous versions of freenas/truenas, I was able to make some simple changes to the blazer_usb driver which made it simply ignore the error instead of shutting down the driver. When the driver tries to talk to the UPS the next time, it gets a valid response again and everything continues to work. In FreeBSD 13.1, the blazer_usb driver has been updated and the problem has come back. I have just compiled a new version of blazer_usb with my old fix re-implemented for the 2.8.0 version of NUT which is included with FreeBSD 13.1 and am currently testing the fix.
If my UPS is still running without the driver crashing out in a week from now, I'd say that my fix also works on the latest version. In that case, I'll update this post with the details of the fix for those who are also having the same problem and who want to compile their own replacement blazer_usb driver. I'll also be able to provide the fixed driver as a binary file for anyone who is prepared to trust some stranger from the Internet. ;)
Last edited: