fedora 安装apc smart750 UPS

一:概述#

我的家庭服务器是intel第一代NUC,渣渣配置,DE3815TYKHE 

配置上挺惨的,尤其是处理器,采用了Bay Trail-I嵌入式系列的最低端型号Atom E3815,单核心单线程,主频1.46GHz,核心显卡HD Graphics 400MHz,内存支持单通道DDR3L-1066,热设计功耗5W,好处是完全不用风扇。

其他配置还有单条SO-DIMM内存插槽(最大容量8GB)、4GB eMMC闪存、2.5寸SATA硬盘位、半长式mini PCI-E扩展插槽、千兆以太网卡,接口方面提供USB 3.0、USB 2.0×2、VGA、HDMI等等,12-19V DC供电。

配了4G内存和一块淘汰的160G笔记本硬盘。凑活玩吧,反正已经赚回投资了。

安装的操作系统是fedora,由于各种异常断电…………问题,每年系统崩溃好几次。狠心配了个UPS  apc smart750 。带有USB和串口管理功能。

配置需求大概是:停电后过多久,UPS关机,来电后过多久,UPS再打开输出。毕竟中国这电路虽然覆盖很广,停电很少,但是供电质量不行啊。

看,输入231.8V

二:试用#

在windows上安装apc的管理软件,并接好USB线缆,就可以设置了。

断电后转由电池供电60秒,即开始关机程序,为系统留下90秒时间进行关机,电力恢复延时60秒后再对UPS插座供电。

 

设计的是挺好,但是这个关机是真关机啊,还要有操作系统的反馈吧,不接USB通讯线,就不能关闭UPS。还得折腾fedora和UPS连接控制。

三:apcupsd#

apc也提供了linux版本的管理软件。也不知道是什么样的,看着应该也和windows差不多吧,可我的fedora是纯命令行的,估计没啥用。

dnf search apc   还真找到了第三方的apc UPS管理软件:http://www.apcupsd.org/

dnf install apcupsd 安装吧。

1.检查设备连接#

官方命令:

cat /proc/bus/usb/devices

fedora实际:

没这个文件

不纠结了,反正不耽误用。

 

 2.启动测试#

systemctl start apcupsd  

apcaccess

断开USB电缆

apcaccess

两次apcaccess的结果应该不一样,正常能看到UPS的型号信息如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
[root@localhost proc]# apcaccess
APC      : 001,020,0520
DATE     : 2020-04-24 08:01:56 +0800
HOSTNAME : localhost.localdomain
VERSION  : 3.14.14 (31 May 2016) redhat
UPSNAME  : localhost.localdomain
CABLE    : USB Cable
DRIVER   : USB UPS Driver
UPSMODE  : Stand Alone
STARTTIME: 2020-04-24 07:24:16 +0800
STATUS   : COMMLOST
MBATTCHG : 5 Percent
MINTIMEL : 3 Minutes
MAXTIME  : 0 Seconds
LASTXFER : No transfers since turnon
NUMXFERS : 0
TONBATT  : 0 Seconds
CUMONBATT: 0 Seconds
XOFFBATT : N/A
SELFTEST : NO
STATFLAG : 0x05000108
END APC  : 2020-04-24 08:03:08 +0800
 
[root@localhost proc]# apcaccess
APC      : 001,043,1029
DATE     : 2020-04-24 08:03:50 +0800
HOSTNAME : localhost.localdomain
VERSION  : 3.14.14 (31 May 2016) redhat
UPSNAME  : localhost.localdomain
CABLE    : USB Cable
DRIVER   : USB UPS Driver
UPSMODE  : Stand Alone
STARTTIME: 2020-04-24 07:24:16 +0800
MODEL    : Smart-UPS 750
STATUS   : ONLINE
LINEV    : 0.0 Volts
LOADPCT  : 0.0 Percent
BCHARGE  : 100.0 Percent
TIMELEFT : 270.0 Minutes
MBATTCHG : 5 Percent
MINTIMEL : 3 Minutes
MAXTIME  : 0 Seconds
OUTPUTV  : 0.0 Volts
SENSE    : High
DWAKE    : -1 Seconds
DSHUTD   : 90 Seconds
LOTRANS  : 196.0 Volts
HITRANS  : 253.0 Volts
RETPCT   : 15.0 Percent
ITEMP    : -273.1 C
ALARMDEL : No alarm
BATTV    : 0.0 Volts
LINEFREQ : 0.0 Hz
LASTXFER : No transfers since turnon
NUMXFERS : 0
TONBATT  : 0 Seconds
CUMONBATT: 0 Seconds
XOFFBATT : N/A
SELFTEST : NO
STESTI   : 14 days
STATFLAG : 0x05000008
MANDATE  : 1980-00-00
SERIALNO : US1407107018
BATTDATE : 2014-02-13
NOMOUTV  : 220 Volts
NOMBATTV : 24.0 Volts
FIRMWARE : 651.19.I USB FW:7.4
END APC  : 2020-04-24 08:04:09 +0800

  

systemctl enable apcupsd 

把服务加入启动项。

3.配置EEPROM#

配置UPS存储EEPROM数据
Configuration Directives Used to Set the UPS EEPROM
These directives have no effect on the operation of apcupsd but are reserved for use by apctest when bulk programming the values of the UPS EEPROM configuration variables in a Smart-UPS model.

上次更换电池时间
BATTDATE [ mm/dd/yy | dd/mm/yy ]
Last battery replacement date. Maximum of 8 characters.

这个放在EEPROM中进行存储,省的你的记录不见。

 

配置方法是

停止apcupsd服务

systemctl stop apcupsd

运行配置程序

apctest

根据提示输入4

4

[root@nuc ~]# systemctl stop apcupsd
[root@nuc ~]# apctest


2020-04-24 04:16:06 apctest 3.14.14 (31 May 2016) redhat
Checking configuration ...
sharenet.type = Network & ShareUPS Disabled
cable.type = USB Cable
mode.type = USB UPS Driver
Setting up the port ...
Doing prep_device() ...

You are using a USB cable type, so I'm entering USB test mode
Hello, this is the apcupsd Cable Test program.
This part of apctest is for testing USB UPSes.

Getting UPS capabilities...SUCCESS

Please select the function you want to perform.

1) Test kill UPS power
2) Perform self-test
3) Read last self-test result
4) View/Change battery date
5) View manufacturing date
6) View/Change alarm behavior
7) View/Change sensitivity
8) View/Change low transfer voltage
9) View/Change high transfer voltage
10) Perform battery calibration
11) Test alarm
12) View/Change self-test interval
Q) Quit

Select function number: 4

Current battery date: 01/31/2020
Enter new battery date (MM/DD/YYYY), blank to quit:

重新输入日期

还有6,关闭警告音,conf配置了没什么用,在eeprom里面配置吧。

 

然后推出,重启apcupsd服务

4.配置运行参数#

具体是配置/etc/apcpusd/apcpusd.conf文件

  

我配置的关键项为:

# UPSNAME xxx
# Use this to give your UPS a name in log files and such. This
# is particulary useful if you have multiple UPSes. This does not
# set the EEPROM. It should be 8 characters or less.
UPSNAME UPS

 

# UPSCABLE <cable>
# Defines the type of cable connecting the UPS to your computer.
#
# Possible generic choices for <cable> are:
# simple, smart, ether, usb
#
# Or a specific cable model number may be used:
# 940-0119A, 940-0127A, 940-0128A, 940-0020B,
# 940-0020C, 940-0023A, 940-0024B, 940-0024C,
# 940-1524C, 940-0024G, 940-0095A, 940-0095B,
# 940-0095C, 940-0625A, M-04-02-2000
#
UPSCABLE usb

 

# To get apcupsd to work, in addition to defining the cable
# above, you must also define a UPSTYPE, which corresponds to
# the type of UPS you have (see the Description for more details).
# You must also specify a DEVICE, sometimes referred to as a port.
# For USB UPSes, please leave the DEVICE directive blank. For
# other UPS types, you must specify an appropriate port or address.
#
# UPSTYPE DEVICE Description
# apcsmart /dev/tty** Newer serial character device, appropriate for
# SmartUPS models using a serial cable (not USB).
#
# usb <BLANK> Most new UPSes are USB. A blank DEVICE
# setting enables autodetection, which is
# the best choice for most installations.
#
# net hostname:port Network link to a master apcupsd through apcupsd's
# Network Information Server. This is used if the
# UPS powering your computer is connected to a
# different computer for monitoring.
#
# snmp hostname:port:vendor:community
# SNMP network link to an SNMP-enabled UPS device.
# Hostname is the ip address or hostname of the UPS
# on the network. Vendor can be can be "APC" or
# "APC_NOTRAP". "APC_NOTRAP" will disable SNMP trap
# catching; you usually want "APC". Port is usually
# 161. Community is usually "private".
#
# netsnmp hostname:port:vendor:community
# OBSOLETE
# Same as SNMP above but requires use of the
# net-snmp library. Unless you have a specific need
# for this old driver, you should use 'snmp' instead.
#
# dumb /dev/tty** Old serial character device for use with
# simple-signaling UPSes.
#
# pcnet ipaddr:username:passphrase:port
# PowerChute Network Shutdown protocol which can be
# used as an alternative to SNMP with the AP9617
# family of smart slot cards. ipaddr is the IP
# address of the UPS management card. username and
# passphrase are the credentials for which the card
# has been configured. port is the port number on
# which to listen for messages from the UPS, normally
# 3052. If this parameter is empty or missing, the
# default of 3052 will be used.
#
# modbus /dev/tty** Serial device for use with newest SmartUPS models
# supporting the MODBUS protocol.
# modbus <BLANK> Leave the DEVICE setting blank for MODBUS over USB
# or set to the serial number of the UPS to ensure
# that apcupsd binds to that particular unit
# (helpful if you have more than one USB UPS).
#
UPSTYPE usb
DEVICE

 

# If during a power failure, the remaining battery percentage
# (as reported by the UPS) is below or equal to BATTERYLEVEL,
# apcupsd will initiate a system shutdown.
BATTERYLEVEL 5

# If during a power failure, the remaining runtime in minutes
# (as calculated internally by the UPS) is below or equal to MINUTES,
# apcupsd, will initiate a system shutdown.
MINUTES 3

# If during a power failure, the UPS has run on batteries for TIMEOUT
# many seconds or longer, apcupsd will initiate a system shutdown.
# A value of 0 disables this timer.
#
# Note, if you have a Smart UPS, you will most likely want to disable
# this timer by setting it to zero. That way, you UPS will continue
# on batteries until either the % charge remaing drops to or below BATTERYLEVEL,
# or the remaining battery runtime drops to or below MINUTES. Of course,
# if you are testing, setting this to 60 causes a quick system shutdown
# if you pull the power plug.
# If you have an older dumb UPS, you will want to set this to less than
# the time you know you can run on batteries.
TIMEOUT 30

 


# UPS delay after power return (seconds)
# WAKEUP 000 060 180 300 (default = 0)
WAKEUP 60

 

 

# UPS Grace period after request to power off (seconds)
# SLEEP 020 180 300 600 (default = 20)
SLEEP 180

# Battery charge needed to restore power
# RETURNCHARGE 00 15 50 90 (default = 15)
RETURNCHARGE 50

# Alarm delay
# 0 = zero delay after pwr fail, T = power fail + 30 sec, L = low battery, N = never
# BEEPSTATE 0 T L N (default = 0)
BEEPSTATE L

 

# Low battery warning delay in minutes
# LOWBATT 02 05 07 10 (default = 02)
LOWBATT 10

 

 

UPSNAME UPS   (ups的名字)

 UPSCABLE usb  (USB电缆形式,默认)

UPSTYPE usb      (UPS连接类型,默认)

DEVICE                  (保持为空,会自动扫描)

BATTERYLEVEL 5   (停止输出的最小电池容量百分比)

MINUTES 3               (根据预估时间,最小剩余电池供电时间,单位分钟

TIMEOUT 30             (开始电池供电多少秒开始启动关闭程序)

WAKEUP 60             (输入供电恢复后延时多少秒开始输出对设备供电。)

SLEEP 180           (请求关机后的UPS宽限期(秒))

RETURNCHARGE 50  (恢复输出供电的最小电池百分比)

BEEPSTATE L  (警告音设置:0 供电故障 ;T 供电故障30秒后;L 电池电量低;N 从来不响)

LOWBATT 10  (计算剩余供电时间小于多少分钟报警电池电量低)

作者:上官飞鸿

出处:https://www.cnblogs.com/jackadam/p/12768283.html

版权:本作品采用「知识共享-署名-非商业性-禁止演绎(CC-BY-NC-ND)」许可协议进行许可。

posted @   上官飞鸿  阅读(898)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
more_horiz
keyboard_arrow_up light_mode palette
选择主题
menu
点击右上角即可分享
微信分享提示