ML110 G6 で BMC と Ubuntu Server を試す
最近仕事で BMC (Board Management Controller: サーバのリモート管理を可能にする追加ハードウェア) のついた PC サーバに Ubuntu Server 12.04 LTS をセットアップする機会がありました。
BMC も Ubuntu Server も初めてでいろいろと興味深かったので、自宅でもしばらく電源の入ってなかった HP ML110 G6 に Ubuntu Server をインストールしていじってみることにしました。
まず ML110 G6 に Ubuntu Server 12.04 LTS (64bit 版) をインストールします。これはテキストベースの Debian Installer とほぼいっしょで、デバイスの認識などでも特にひっかかるところはありませんでした。いつものように tasksel を一切実行しないミニマルパッケージ構成でスタートです。
次は ML110 G6 の BMC (Lights-Out 100) を試してみようということで BIOS で BMC のネットワーク設定を行い、Web ブラウザで BMC に接続して設定を確認し、他のホストから ipmitool
で SOL (Serial over LAN) を試してみたのですが、これがどうもうまくいきません。 BIOS の出す文字は出てくるのですが入力が一切できないのです。
わからんので ML110 G6 サポートページ を見たところ BIOS も BMC ファームウェアも古いことがわかったので、これを更新することにしました。
ありがたいことに Linux で実行できるファームウェア更新プログラムとして CP016013.scexe (BIOS) と CP017117.scexe (BMC) というものが提供されています。 SCEXE (Smart Component Executable) とかいう名前がついているみたいですが、やってることは単なるシェルアーカイブファイルといっしょです。
BIOS 更新はマニュアル通りに実行してすんなりできました (勝手に /var/cpq
というディレクトリを作るのに腹が立ちましたが)。
yaegashi@ml110:~$ sudo bash CP016013.scexe
ところが BMC 更新のほうは途中でこけてうまくいきません。
yaegashi@ml110:~$ sudo bash CP017117.scexe ./hpsetup: 2: .: lo100.sh: not found
途方にくれつつぐぐってみたところ こちらのブログ で SCEXE には --unpack
オプションがあるということを知り、まずはこれで中身を取り出しました。
yaegashi@ml110:~$ bash CP017117.scexe --unpack=hoge yaegashi@ml110:~$ cd hoge
自動実行される hpsetup
は #!/bin/sh
のスクリプトですが bashism があるようだったので bash で実行してみます。
yaegashi@ml110:~/hoge$ sudo bash hpsetup Parameters are: HP Lights Out 100 Offline Firmware Update Engine Copyright (c) 2009 - Hewlett Packard ----------------------------------------------- Running with Parsing ./lo100.sh: line 16: ./lo100flash: No such file or directory Found IPMI - checking results cp: cannot stat `CP017117_disc.xml': No such file or directory Package 4.23 - currently at 4.21 Firmware binary payload is LdrImage.bin Firmware package is version 4.23 Not forced - checking version -Update needed Flashing firmware ./lo100.sh: line 158: ./lo100flash: No such file or directory
こんどは lo100flash
が実行できなくてこけました。 No such file or directory と出ていますがこのファイルは存在します。 file
で調べてみると 32bit ELF の実行形式であることがわかります。
yaegashi@ml110:~/hoge$ file lo100flash lo100flash: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.4, not stripped
ELF を実行しようとしてこうなるのは 32bit のライブラリがシステムにないせいだなとピンときたので、いつもの癖で ia32-libs パッケージをインストールしようとしたところ、250 くらいのパッケージをインストールされそうになり慌てて ^C
で止めました。
yaegashi@ml110:~/hoge$ sudo apt-get install ia32-libs Reading package lists... Done Building dependency tree Reading state information... Done The following extra packages will be installed: bluez bluez-alsa:i386 dconf-gsettings-backend dconf-service esound-common glib-networking:i386 glib-networking-common glib-networking-services gsettings-desktop-schemas gstreamer0.10-plugins-base:i386 ... 0 upgraded, 249 newly installed, 0 to remove and 0 not upgraded. Need to get 70.0 MB of archives. After this operation, 227 MB of additional disk space will be used. Do you want to continue [Y/n]? ^C
そういえば Ubuntu は 1 年前から multiarch 化してたんだったなあ、ということで必要そうな 32bit のライブラリパッケージを個別にインストールします。
yaegashi@ml110:~/hoge$ sudo apt-get install libc6:i386 libstdc++6:i386 yaegashi@ml110:~/hoge$ ldd lo100flash linux-gate.so.1 => (0xf76f1000) libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xf76e3000) libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xf76c8000) libstdc++.so.6 => /usr/lib/i386-linux-gnu/libstdc++.so.6 (0xf75e2000) libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xf75b6000) libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xf7598000) libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf73f3000) /lib/ld-linux.so.2 (0xf76f2000)
ここまでやってようやくエラーなく実行できるようになりました。
yaegashi@ml110:~/hoge$ sudo bash ./hpsetup Parameters are: HP Lights Out 100 Offline Firmware Update Engine Copyright (c) 2009 - Hewlett Packard ----------------------------------------------- Running with Parsing Found IPMI - checking results Package 4.23 - currently at 4.21 Firmware binary payload is LdrImage.bin Firmware package is version 4.23 Not forced - checking version -Update needed Flashing firmware HP Proliant Lights-Out 100 Flash Utility v1.2-00 Copyright (c) 2003, 2010 Hewlett-Packard Development Company, L.P. [01:11:29] Validating Input File Run-time Image. Validating Input File Image................... [01:11:29] Run-time Image Checksum Validated [01:11:29] Run-time Image Size (Bytes to Flash): 2071280 [01:11:29] Current BMC FW Revision: 4.21 *WARNING: FLASH PROCESS MAY TAKE A FEW MINUTES TO COMPLETE. *WARNING: DO NOT CYCLE POWER OR IN ANY WAY INTERRUPT THE FLASH PROCESS. Erasing Sectors............................................................... Writing Sectors............................................. Performing BMC Warm Reset... Restoring BMC Sensors... [01:14:12] Flash Process Complete. [01:14:12] Current BMC FW Revision: 4.23 [01:14:12] Total elapsed time 164.00 sec(s)
更新中は筺体ファンが例の轟音をたてて回転しっぱなしになります。深夜にやらなければよかった。
ファームウェア更新を終えて再起動したところ、SOL でも入力を受け付けるようになり、BIOS セットアップにも正常にアクセスできるようになりました。
Lights-Out 100 のマニュアル を読むと、いろいろ便利な使い方が書いてあります。
- Lights-Out 100 への TELNET セッション中は次のキーシーケンスでシリアルポートに接続できる。
ipmitool sol
と同一ですが手軽です。- 接続:
ESC
Q
- 切断:
ESC
(
- 接続:
- シリアルポートは複数同時に接続できるが、キー入力を受け付けるのは最初に接続したセッションだけ。思えば最初うまくいかなかったのは単にこれが原因な気がしてきました。
- ファンクションキーを入力するには次のキーシーケンスを入力します。
- F1:
ESC
1
- F2:
ESC
2
- …
- F10:
ESC
0
(起動中に入力すれば BIOS Setup に入れる) - F11:
ESC
!
- F12:
ESC
@
- F1:
2012/06/30 18:28:00 JST