PowerEdge用にOMSAパッケージを作成

以前にも書いたけど。
Dell PowerEdge1650 にDebian(Sarge)を入れる - 学生サーバ管理者メモ

http://www.uta.fi/~pauli.borodulin/dellomsa/omsa44.html


サーバが増えてくるとその都度コンパイルしてるわけにもいかない。
ので、パッケージを作成することにする。
初のパッケージ作成がカーネルモジュールとは・・・。


参考はDebian New Maintainers' Guideこの辺。


バージョン等は

  • pe1650
  • PERC 3/DC、Di
  • Debian Sarge (インストールはlinux26)

まずは上のサイトから必要なパッケージを作業ディレクトリ(ここでは/tmp/dell)にダウンロードしておく。

  1. mkdir /tmp/dell
  2. cd /tmp/dell
  3. wget 〜〜/dellomsa_4.4-1.deb
  4. apt-get install setserial libstdc++2.10-glibc2.2
  5. dpkg -i dellomsa_4.4-1.deb
  6. wget 〜〜/omsa-driver-4.4-v2.tar.gz
  7. tar xvzf omsa-driver-4.4-v2.tar.gz
  8. apt-get install kernel-headers-2.6.8-3-686
  9. apt-get install kernel-source-2.6.8
  10. apt-get install kernel-package libncurses-dev
  11. cd /usr/src
  12. tar xvjf kernel-source-2.6.8.tar.bz2
  13. cd kernel-source-2.6.8
  14. cp /boot/config-2.6.8-3-686 kernel-source-2.6.8/.config
  15. vi kernel-source-2.6.8/.config
    1. CONFIG_REGPARM=y に修正
  16. make-kpkg --append-to-version "-3-686-omsa" --revision=2.6.8-16omsa kernel_image --initrd
  17. cd /tmp/dell/omsa-driver-4.4-v2
  18. ./builddriver.sh /usr/src/kernel-source-2.6.8


kernel_imageを作るのは時間がかかるので最後でもいい。しかしbuilddriver.shを実行する前にカーネルソースのヘッダファイルは生成しておかなければならない。


./builddriver.sh は一般ユーザで実行するとモジュールがインストールされなくてちょうどいい(後でパッケージで入れるので)。エラー無く終了するようならパッケージを作成する。

  1. apt-get install dh-make fakeroot
  2. cd /tmp/dell/
  3. mkdir deb
  4. cp omsa-driver-4.4-v2.tar.gz deb
  5. cd deb
  6. tar xvzf omsa-driver-4.4-v2.tar.gz
  7. cd omsa-driver-4.4-v2
  8. dh_make -e maintainer@mail.address -f ../omsa-driver-4.4-v2.tar.gz
    1. k を選択
  9. cd debian
  10. control, copyright, changelog の編集
    1. 上記URLを参照
    2. 自分のみが使うのであれば適当に
  11. rm cron.d.ex dirs emacsen-* init.d.ex menu.ex
  12. cd ..
  13. 新しいMakefileを作成
    1. デフォルトのMakefileは標準のコマンドを受け付けないので新たに作成する
    2. 元のMakefileは(たぶん)要らない
  14. debian/rulesを編集
  15. dpkg-buildpackage -rfakeroot
  16. dpkg -i ../omsa-driver_4.4-v2-1_i386.deb
  17. dpkg -i /usr/src/kernel-image-2.6.8-3-686-omsa_2.6.8-16omsa_i386.deb
  18. 再起動して新しいカーネルで立ち上げる
  19. apt-get install modconf
  20. modconf
    1. extraのモジュールを全て読み込む
    2. # または、/etc/modules に dcdbas dcdesm dcdipm dcdtvmを追加する
  21. /etc/init.d/dellomsa-daemons start
  22. 再起動してomsaデーモンが自動起動するかを確認


Makefileの例

all:
        ./builddriver.sh /usr/src/kernel-source-2.6.8
install:

clean:
        rm -rf build driver/* buildtmp.*


rulesの例

        # Add here commands to install the package into debian/omsa-driver.
        $(MAKE) install DESTDIR=$(CURDIR)/debian/omsa-driver
        mkdir -p $(CURDIR)/debian/omsa-driver/lib/modules/2.6.8-3-686-omsa/extra
        cp build/*.ko $(CURDIR)/debian/omsa-driver/lib/modules/2.6.8-3-686-omsa/extra/


ビルドのときにバージョンをDebianのポリシーに従わせてくれって警告が出たり公開できるようなパッケージの作り方ではないけれど、取り急ぐならこれで一応使えるようになる。


PowerEdge1650を使ってるので1850等で動くのかは分からないし、何か不具合があるかもしれない。
それは分かり次第メモっていく方向で。



使い方はhttp://support2.jp.dell.com/docs/software/svradmin/この辺。

  • . /opt/dell/srvadmin/config.sh
  • omreport storage controller
  • omreport storage controller controller=0

とかやる。