Konstantin 'Kastus' Shchuka
2006-Nov-25 05:50 UTC
[Nut-upsdev] patch for old APC Smart-UPS 600
Hi there,
I am using an old (really old) APC Smart-UPS 600. It worked fine
under apcupsd but when I tried NUT it did not work.
The error I was getting was:
sudo /lib/nut/apcsmart -DDD /dev/ttyS1
Network UPS Tools (version 2.0.4) - APC Smart protocol driver
Driver version 1.99.8, command table version 2.0
debug level is '3'
Attempting firmware lookup
Firmware: [D4]
Not found in table - trying normal method
APC - Attempting to find command set
APC - Parsing out command set
Unable to split APC version string
Bailing out
I tried running commands manually from minicom, and indeed, the UPS
was returning D6, D5, or D4 in response to "b" command. I still do not
understand the inconsistency, but I have observed these 3 strings at least.
I came up with the following patch to apcsmart.h:
--- nut-2.0.4.orig/drivers/apcsmart.h
+++ nut-2.0.4/drivers/apcsmart.h
@@ -254,6 +254,10 @@
/* APC600 */
{ "6QD",
"79ABCDEFGKLMNOPQRSUVWXYZcefgjklmnopqrsuxz", 0 },
{ "6TI",
"79ABCDEFGKLMNOPQRSUVWXYZcefgjklmnopqrsuxz", 0 },
+ /* Smart-UPS 600 */
+ { "D6", "789ABCEFGKLMNOPQRSUVWXYZ", 0 },
+ { "D5", "789ABCEFGKLMNOPQRSUVWXYZ", 0 },
+ { "D4", "789ABCEFGKLMNOPQRSUVWXYZ", 0 },
/* CS 350 */
{ "5.4.D", "\1ABPQRSUYbdfgjmnx9", 0 },
I understand that it is a clumsy way to make it work but it was the easiest
for me.
I am not sure how many more old Smart-UPS 600 are still in use and if it's
worth including into NUT.
Thanks,
--
Kastus Shchuka
Konstantin 'Kastus' Shchuka wrote: [...]> I came up with the following patch to apcsmart.h: > > --- nut-2.0.4.orig/drivers/apcsmart.h > +++ nut-2.0.4/drivers/apcsmart.h > @@ -254,6 +254,10 @@ > /* APC600 */ > { "6QD", "79ABCDEFGKLMNOPQRSUVWXYZcefgjklmnopqrsuxz", 0 }, > { "6TI", "79ABCDEFGKLMNOPQRSUVWXYZcefgjklmnopqrsuxz", 0 }, > + /* Smart-UPS 600 */ > + { "D6", "789ABCEFGKLMNOPQRSUVWXYZ", 0 }, > + { "D5", "789ABCEFGKLMNOPQRSUVWXYZ", 0 }, > + { "D4", "789ABCEFGKLMNOPQRSUVWXYZ", 0 }, > /* CS 350 */ > { "5.4.D", "\1ABPQRSUYbdfgjmnx9", 0 }, > > I understand that it is a clumsy way to make it work but it was the easiest > for me.No, this is how the compatibility detecting is supposed to work. I applied this patch to the trunk (and Testing). The only thing I modified, is the insertion point.> I am not sure how many more old Smart-UPS 600 are still in use and if it's > worth including into NUT.At least one I suppose. Since this is not likely going to break anything, I think it is worth adding. Regards, Arjen
Konstantin 'Kastus' Shchuka
2008-Nov-28 03:16 UTC
[Nut-upsdev] patch for old APC Smart-UPS 600
I am sorry to return to this old issue again.
I discovered that my venerable SU-600 sometimes responds with other D codes
than I added to compat_tab already. I had to add 3 more codes there to
make it recognized properly by NUT.
Here is the diff:
--- nut-2.2.1.orig/drivers/apcsmart.h 2007-12-17 07:13:09.000000000 -0800
+++ nut-2.2.1/drivers/apcsmart.h 2008-11-27 18:56:36.292018933 -0800
@@ -258,6 +258,9 @@
/* CS 350 */
{ "5.4.D", "\1ABPQRSUYbdfgjmnx9", 0 },
/* Smart-UPS 600 */
+ { "D9", "789ABCEFGKLMNOPQRSUVWXYZ", 0 },
+ { "D8", "789ABCEFGKLMNOPQRSUVWXYZ", 0 },
+ { "D7", "789ABCEFGKLMNOPQRSUVWXYZ", 0 },
{ "D6", "789ABCEFGKLMNOPQRSUVWXYZ", 0 },
{ "D5", "789ABCEFGKLMNOPQRSUVWXYZ", 0 },
{ "D4", "789ABCEFGKLMNOPQRSUVWXYZ", 0 },
Thanks,
-Kastus
On Fri, Nov 24, 2006 at 08:43:09PM -0800, Konstantin 'Kastus' Shchuka
wrote:> Hi there,
>
> I am using an old (really old) APC Smart-UPS 600. It worked fine
> under apcupsd but when I tried NUT it did not work.
>
> The error I was getting was:
>
> sudo /lib/nut/apcsmart -DDD /dev/ttyS1
> Network UPS Tools (version 2.0.4) - APC Smart protocol driver
> Driver version 1.99.8, command table version 2.0
> debug level is '3'
> Attempting firmware lookup
> Firmware: [D4]
> Not found in table - trying normal method
> APC - Attempting to find command set
> APC - Parsing out command set
> Unable to split APC version string
> Bailing out
>
> I tried running commands manually from minicom, and indeed, the UPS
> was returning D6, D5, or D4 in response to "b" command. I still
do not
> understand the inconsistency, but I have observed these 3 strings at least.
>
> I came up with the following patch to apcsmart.h:
>
> --- nut-2.0.4.orig/drivers/apcsmart.h
> +++ nut-2.0.4/drivers/apcsmart.h
> @@ -254,6 +254,10 @@
> /* APC600 */
> { "6QD",
"79ABCDEFGKLMNOPQRSUVWXYZcefgjklmnopqrsuxz", 0 },
> { "6TI",
"79ABCDEFGKLMNOPQRSUVWXYZcefgjklmnopqrsuxz", 0 },
> + /* Smart-UPS 600 */
> + { "D6", "789ABCEFGKLMNOPQRSUVWXYZ", 0
},
> + { "D5", "789ABCEFGKLMNOPQRSUVWXYZ", 0
},
> + { "D4", "789ABCEFGKLMNOPQRSUVWXYZ", 0
},
> /* CS 350 */
> { "5.4.D", "\1ABPQRSUYbdfgjmnx9", 0 },
>
> I understand that it is a clumsy way to make it work but it was the easiest
> for me.
>
> I am not sure how many more old Smart-UPS 600 are still in use and if
it's
> worth including into NUT.
>
> Thanks,
> --
> Kastus Shchuka