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