USB-Serial ケーブルを利用した UPS 制御
USB-Serial ケーブル
- メーカ:ELECOM
- 型番:UC-SGT
- http://www2.elecom.co.jp/cable/usb/uc-s/gt/
FreeBSD 8.0 に接続
本体正面側の USB ポートに UC-SGT を接続すると、次のメッセージが表示された。
ugen3.2:at usbus3 uplcom0: on usbus3
USB-Serial ケーブルを使用するには、uplcom と ucom ドライバが必要。
# man 4 uplcom uplcom -- USB support for Prolific PL-2303/2303X/2303HX serial adapters driver # man 4 ucom ucom -- USB tty support
上記 man から、/boot/loader.conf に次を記述。
uplcom_load="YES" ucom_load="YES"
デバイスは次のとおり
# cd /dev # ls -l | grep cua crw-rw---- 1 uucp dialer 0, 89 Feb 3 22:22 cuaU0 crw-rw---- 1 uucp dialer 0, 89 Feb 3 22:22 cuaU0.init crw-rw---- 1 uucp dialer 0, 89 Feb 3 22:22 cuaU0.lock
UPS 制御
APC 社製 Smart-UPS 1500 を用意。
USB-Serial ケーブルを使って UPS の制御を試みる。
ports のインストール
# portinstall sysutils/apcupsd
次の画面が表示された。
[X] IPV6 Build with IPv6 support [X] MFD_REWRITES Build with 64-bit Interface Counters [X] PERL Install additional perl modules [X] PERL_EMBEDDED Build embedded perl [ ] TKMIB Install graphical MIB browser [X] DUMMY Enable dummy values as placeholders [ ] DMALLOC Enable dmalloc debug memory allocator
FreeBSD 8.0-RELEASE-p2 amd64 版なので、たぶん 64-bit 関係が必要だろうと推測し、赤×をチェックして OK とする。
さらにコンパイルが進むと次のオプション選択画面が表示される。
Options for apcupsd 3.14.5_1 [X] APCSMART_DRV Compile APC SmartUPS serial driver [X] APCDUMB_DRV Compile dumb UPS driver [ ] CLIENT_ONLY Only NIS client (no network server or drivers) [X] CGI Compile with CGI programms to show status [X] PCNET_DRV Compile PowerChute Network Shutdown driver [X] USB Compile with USB Support driver [X] SNMP_DRV Compile with SNMP driver [X] TCP_WRAPPERS Compile with TCP_WRAPPERS support [ ] TEST_DRV Compile TEST driver [ ] GAPCMON Build GTK GUI front-end
将来的に CGI で状態表示をさせたいので、赤×をチェックして OK とする。
設定ファイル編集
コンパイル、インストールが完了したので、念のため rehash する。
# rehash
続いて apcupsd の設定ファイルを編集する。
# cd /usr/local/etc/apcupsd/ # cp apcupsd.conf apcupsd.conf.orig # vi apcupsd.conf
設定項目は次のとおり。
UPSNAME S-UPS1500 ※任意 UPSCABLE smart UPSTYPE apcsmart DEVICE /dev/ttyU0 ※USB-Serial に対応? LOCKFILE /var/spool/lock SCRIPTDIR /usr/local/etc/apcupsd PWRFAILDIR /var/run NOLOGINDIR /var/run ONBATTERYDELAY 6 BATTERYLEVEL 5 MINUTES 5 TIMEOUT 30 ANNOY 300 ANNOYDELAY 60 NOLOGON disable KILLDELAY 90 NETSERVER on NISIP 0.0.0.0 NISPORT 3551 EVENTSFILE /var/log/apcupsd.events EVENTSFILEMAX 10 UPSCLASS standalone UPSMODE disable STATTIME 0 STATFILE /var/log/apcupsd.status LOGSTATS off DATATIME 0
rc.conf を編集
# vi /etc/rc.conf apcupsd_enable="YES" apcupsd_program="/usr/local/sbin/apcupsd"
ステータスを確認 (1)
# /usr/local/etc/rc.d/apcupsd.sh status apcupsd is running as pid nnnnn.
ステータスを確認 (2)
# apcaccess status APC : 001,051,1229 DATE : Wed Feb 03 23:32:31 JST 2010 HOSTNAME : foo.bar.com RELEASE : 3.14.5 VERSION : 3.14.5 (10 January 2009) freebsd UPSNAME : S-UPS1500 CABLE : Custom Cable Smart MODEL : Smart-UPS 1500 UPSMODE : Stand Alone STARTTIME: Wed Feb 03 23:29:09 JST 2010 STATUS : ONLINE LINEV : 102.9 Volts LOADPCT : 0.0 Percent Load Capacity BCHARGE : 100.0 Percent TIMELEFT : 335.0 Minutes MBATTCHG : 5 Percent MINTIMEL : 5 Minutes MAXTIME : 30 Seconds MAXLINEV : 103.6 Volts MINLINEV : 102.2 Volts OUTPUTV : 102.9 Volts SENSE : High DWAKE : 000 Seconds DSHUTD : 090 Seconds DLOWBATT : 02 Minutes LOTRANS : 092.0 Volts HITRANS : 108.0 Volts RETPCT : 000.0 Percent ITEMP : 23.4 C Internal ALARMDEL : 5 seconds BATTV : 27.7 Volts LINEFREQ : 50.0 Hz LASTXFER : Automatic or explicit self test NUMXFERS : 0 TONBATT : 0 seconds CUMONBATT: 0 seconds XOFFBATT : N/A SELFTEST : OK STESTI : 336 STATFLAG : 0x07000008 Status Flag REG1 : 0x00 Register 1 REG2 : 0x00 Register 2 REG3 : 0x00 Register 3 MANDATE : 09/19/09 SERIALNO : ASxxxxxxxxxx BATDATE : 09/19/09 NOMOUTV : 100 Volts NOMBATTV : 24.0 Volts EXTBATTS : 0 FIRMWARE : 601.18.A APCMODEL : FWA END APC : Wed Feb 03 23:32:46 JST 2010