CentOS 5.5 で yum install nut できないんですけお…

東京電力からの供給電力が保証されなくなりつつある今日この頃、皆さん如何お過ごしでしょうか。 なんか時代・テクノロジが発展した 2010年 とは思えないぐらいなんじゃそりゃ!?とか思っちゃう事態になっておりますのぅー

でまぁ、自鯖構えてるおいらとしては、電力供給レベルの電プチはなるべく避けたい…ということで、UPSを導入しました。 SoundHouseUPS1200LX という製品。

ぐぐると、Linux 上でも NUT (network ups tools) を導入すれば複数マシンで ups の状態を共有できるようですし、電源容量も結構でかいですし、何より発注した時に在庫があったので(ぉ この子を即採用。おいらが注文してから2日ぐらいで届きました :-]

で、UPSセッティングしてから3週間後ぐらいに この NUT をインストールしようと試みたのですが…超苦労したわ… ('A`)

ってことで、俺的導入メモまとめを public 空間に置いといてみゆ。


事の始まり

NUT をインストールします。

# yum install nut
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * addons: www.ftp.ne.jp
 * base: www.ftp.ne.jp
 * extras: www.ftp.ne.jp
 * updates: www.ftp.ne.jp
Setting up Install Process
No package nut available.
Nothing to do


なん…だと…?


私とほぼ同じ時期に CentOS 5.5 でも導入実績がある にも関わらず、なぜにパッケージが見つからんのコレー!? orz


仕方ないので手動でどうにかする事に…

結論を書くと

NUT 2.2.2 を自前 make -> install して導入しました。

何故 2.2.2 かというと、現時点での最新版 2.6.0 ではドライバ周りの問題で動かない感じだったので導入を断念(後術)。 ぐぐった結果、2.2.2 を落としてこいよハゲ という記述が見つかったので、2.2.2 にしました。

導入した結果、とりあえずは動いてくれたのでまぁいいかなぁっと…(ぉ


最新版ダメじゃねーの!?

いやまぁ、よくわかってないんですけれども(ぉ // ホントは動くかもしれない


ググってみたら CentOS 5.5 でテスト済みの 現時点での最新版 2.6.0 の rpm が置いてあったのでこの子達を導入してみたんです…が、動かなかったのです。

ups.confdrivermegatec_usb を指定するようなのですが、このドライバが無いようでデーモンの起動に失敗してしまうのです。

最新版になってドライバの指定が異なったのだろうかーと思って見るも、どれを指定して良いかさっぱり分から無い! OEM のようなので、元の型番っぽい物が分かれば良かったのですが……ある程度探して見るもやっぱり分からず。ぐぬぬ


ある程度当てずっぽうでドライバ指定してみたのですけれども、動いてくれず…。 んまぁ後に色々試している際に 書式に typo が見つかったので実は動いていたのかもしれません が… (subdriver が usbdriver だったり vendorid が venderid だったり…何してるん俺 orz)


色々試した弊害です & 知識不足でした

2.2.2 を手動で導入する事にしたわけですが……最初はやっぱりこの子も動いてくれなかったのです。

ups.conf を書いて upsdrvctl start してデーモンを開始…しようにも動いてくれず。 何故か「error -1: error sending control message: Operation not permitted」と言われしまいました。

INSTALL に書いてある通り

 5. Create the state path directory for the driver(s) and server to use
    for storing UPS status data and other auxiliary files, and make it
    owned by the user you created.

        mkdir -p /var/state/ups
        chmod 0770 /var/state/ups
        chown root:nut /var/state/ups

                                                                                                                                                    • -
6. Set ownership data and permissions on your serial or USB ports that go to your UPS hardware. Be sure to limit access to just the user you created earlier. These examples assume the second serial port (ttyS1) on a typical Slackware system. On FreeBSD, that would be cuaa1. Serial ports vary greatly, so yours may be called something else. chmod 0660 /dev/ttyS1 chown root:nut /dev/ttyS1 The setup for USB ports is slightly more complicated. Device files

というパーミッション設定は行ったにもかかわらず、パーミッションが無い… configure で user / group を指定し && passwd / group に適切に追加したにもかかわらず「無い」と言われてしまう…何故だ、何故だメガトロン!!


…と悩んだんですが、2.6.0 の rpm を導入テストしている際に次のコマンドを実行していたのでした

UDEV RULES installation instructions for USB UPSes

ln -s /lib/udev/rules.d/62-nut-usbups.rules /etc/udev/rules.d/62-nut-usbups.rules
udevcontrol reload_rules
udevtrigger
/etc/init.d/ups restart

http://geekery.blog.com/category/linux/nut-ups-rpms/

usbのデバイスを云々してるところまでは分かるのですが、具体的に何が起きてるのかさっぱり(ぉ ^^;

とりあえず、シンボリックリンクを削除して udevcontrol reload_rulesudevtrigger した後に upsdrvctl start したところ、よーやくそれっぽい反応が返ってきたのでありました。


うん、4時間ぐらい必死扱いちゃったよ HAHAHA!! orz




という事がありましたとさ、めでたしめでたし……





魔女さやか「ぐぇー」



参考 - UPS1200LX の lsusb -v

誰からのアドバイスを頂ける事を勝手に期待してみる(ぇー

Bus 002 Device 002: ID 0001:0000 Fry's Electronics
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               1.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0         8
  idVendor           0x0001 Fry's Electronics
  idProduct          0x0000
  bcdDevice            1.00
  iManufacturer           1 MEC
  iProduct                2 MEC0002
  iSerial                 0
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           34
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0x80
    MaxPower              100mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      0 No Subclass
      bInterfaceProtocol      0 None
      iInterface              0
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.00
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength     624
         Report Descriptors:
           ** UNAVAILABLE **
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0008  1x 8 bytes
        bInterval              10