おがさわらなるひこのオープンソースとかプログラミングとか印刷技術とか

おがさわらなるひこ @naru0ga が技術系で興味を持ったりなんだりしたことをたまーに書くブログです。最近はてなダイアリー放置しすぎて記事書くたびにはてな記法忘れるのではてなブログに移行しました。

クリエイティブ・コモンズ・ライセンス
特に断りがない場合は、本ブログの筆者によるコンテンツは クリエイティブ・コモンズ 表示 - 継承 4.0 国際 ライセンスの下に提供されています。

東京 OpenSolaris 勉強会 for びぎなーず 2010.02

行って参りました。今回もびぎなーず
毎回「無印じゃないの?」と聞かれるんですが、だからぼくはこっちなの!

講師の瀧さん、satokazさん、会場ご提供&種々フォローいただいた Sun の皆様、遊んでいただいたみなさまに感謝感激。


関係ないですが勉強会の直前に Oracle と Sun の合併契約が成立したということで、http://www.sun.com に行くとそのまま http://www.oracle.com に飛ぶという事実に涙した人も多いと聞きます。
んで上述のリンクも今まで Sun のイメージカラーの青文字基調だったのが、いきなりまっかっかになっていてビビりました。CSSって便利だなぁ。
でも、どんな事情があったのか? 分かりませんが、今見たら黒基調になってますね。

今回の勉強会の進行について

えーさて、前述のページをごらんになっていただけば分かるとおり、今回のびぎなーずのテーマは

  • Linuxからの移行 by 瀧@Justplayer az 日本openSolaris UG 会長さん
  • いろんなデバイスをつないでみよう by satokaz さん

という感じだったのですが、瀧さんのテーマのなかに「Linux でデバイスが見つからなかった場合はこうだけど、openSolaris だとこうだよ」というのがあって、それが satokaz さんの内容と被るので、瀧さんの説明のなかに satokaz さんのプレゼンを挟み込む、という構成で行われました。

openSolaris Bible 勉強会の案内

openSolaris Bible という非常に素晴らしい本があるそうです。つかあります。

OpenSolaris Bible

OpenSolaris Bible

オイラはこの本の Adobe eBook 版を買ったんですが(値段もそうだけど、重いし)、eBook って他のフォーマットにガンとして移行できないのね。Kindle で読みたいのに。しくしく……。

んで、この翻訳プロジェクトがスタートした? する? わけですが、それの査読を兼ねて、次回 or 次々回、時期はまだ調整中ですが、からもう一本勉強会のトラックを走らせるとのことで、Michael Sullivan さんから説明がありました。

  • 講義は英語で、テキストは英語と日本語両方。
  • 上述のように査読も兼ねているから是非参加してほしい。
  • テキストは完全な初心者向けの入門から始まり高度なアドミニストレーションまでカバーしているので、いろいろなレベルの人に楽しんでいただけると思う。
  • Q&Aは原則英語だが、多分日本語も英語もしゃべれる人が会場に一人はいるだろうから心配しなくても大丈夫。
  • 日本在住の日本人以外の openSolaris コミュニティの方々と触れ合うよい機会だと信じる。
  • 詳しくは ug-tsug@opensolaris.org で議論されているので興味がある人は購読して欲しい。

このトラックが始まったらこっち中心に参加しようかなーと今は考えてます。

Linux 使いのための openSolaris 講座(その1) by 瀧さん

  • 本日は後々のSEO(笑)を考えてブログエントリを資料にしました。
    • それ以外にも今までいろいろ試行錯誤してきたことは ブログにまとめてあるので参照してほしい。
  • GUIGNOMEが載っているだけなのであまり差はないが、CLISolaris独特の文化があるのでLinuxとちょっと違う。今日は主にそちらの話。
openSolaris ってなんじゃらほい
デバイスを認識させてみよう
  • デバイスが認識しないときの調べ方でLinuxopenSolarisの違いをNICを題材にして紹介。
    • 最初に HCL を確認するのは当たり前ということでよろしく。
  • NICの場合、ifconfigに出るための条件がLinuxopenSolarisで違うのでifconfigで出ない! といって慌てないように注意。詳しくは資料参照。
  • デバイスの探し方については後の satokaz さんセッションで紹介します。
  • openSolarisの場合amd64の場合32/64の両方のドライバをインストールしておくことが必要。
  • Solarisのいいところはmanが割とたよりになること。/etc/driver_aliases (このファイルの意味づけは省略) のドライバ名で man するとちゃんと出てくる。
  • フリーのNICドライバとして有名 (Sun 謹製のドライバよりも速く、対応デバイスが豊富) な村山さんドライバを openSolaris で make すると他の Solaris なら含まれている一部ヘッダが openSolaris には入っていないことがありハマるので、問題ないのであればついてるバイナリを make install する方が正解。
その他細かな違い
  • openSolaris の32/64カーネル選択はGRUBにSUNが手を入れて行っている。それはバックポートされていないので他のLinuxを後から入れてしまうと動かない。GRUB2だとどうだろう。ハマったらCD boot してinstallgrubをしなおす。
  • SolarisLinux と異なり /proc の下には本当のプロセスの情報しかない。だからそれ以外の情報は専用のコマンドがある。
    • man 2 -s sysinfo するといいよ!
  • Solaris では BIOS で認識できるディスクと EFI 形式のディスクがある。伝統的に前者は Physical Partition しかサポートしてない (devでやっとLogical Partitionがサポートされた)。zpoolでディスクをまるごとアタッチすると EFI 形式になるので注意。

デバイス接続について詳細 by satokaz さん

  • ブートに関連する重要なドライバは /kernel/drv の下に置かれる。ここに変なドライバを置くとパニックする。後から読み込むようなドライバは /usr/kernel/drv に置かれる。
  • さっきちょっと出た /etc/driver_aliases はドライバと VID (Vendor ID)/PID (Product ID) を紐付けする非常に重要なファイル。
  • カーネルモジュールの管理。modunload -i 0というコマンドを叩くと今アンロードしてよいモジュールをまとめてアンロードしてくれる。
  • 基本的にはドライバ関連の操作を手でやることはない。大抵スクリプトが付属してくるのでそれを使えばいい。逆に言えばそれを用意するのはデバイス開発者の責務。
  • Sun Device Detection Tools 超重要。Javaで動作し(マルチプラットフォーム)、Solarisのドライバがあるかどうか探してくれる。こないだ2.3が出た。
  • ドライバを探すには、VID/PIDでぐぐる->どんなデバイスか分かるー>デバイス名+Solaris+Driverとかでぐぐる->見つかるとハッピー!
    • 見つからなかったら泣きながら作れということですね、分かります。
  • Device Driver Tutorial。docs.sun.com で 819-3159 を探してみよう。非常にいい記事ですよ。あと satokaz さんのブログも見よう。
Q&A
  • Q:グラボを差し替えて起動しなくなっちゃったらどうする?
    • A:他のOSで見るか、GRUB メニューで e してシングルユーザモードで見てトラシューする。GRUB メニューでレスキューモードみたいなものがあればいい気がするが、今のところ対応する予定はない。
      • Ubuntu だとインストールメディアの方にレスキューモードがありますね。
  • Q:腐ったドライバを突っ込んじゃって起動しなくなったときの方法は?
    • A:カーネルオプションで特定のドライバをunloadできるはず。調べて報告する*1
  • C: Wired NIC は (村山さんドライバも含めれば) 結構サポートされている。Wirelessは NDIS 系はハマる可能性が高いので Intel が無難。Bluetooth はまだ開発中で HID しかサポートされてない*2nVidia の最新カードはまだ追いついてないが開発は進んでいる。
  • Q:プリンタどうよ?
    • A:まずデフォルトがCUPSじゃない。CUPSを入れたにしてもデータ変換のフィルタがLinux向けにしかポーティングされていないのでネイティブではサポートできない。詳しくは別途フォローの機会があれば*3

IPS についてもろもろ by 瀧さん

  • IPS とは openSolaris のパッケージングシステム。APT や yum に近い。
  • IPS では rpmdeb といったファイルが存在しない。構成ファイルの情報のメタデータがあって、それが個別にファイルを引っ張ってくる。
    • そのため apt-cacheみたいなことはできない(やりにくい)。
  • pkg searchを使うときにはパッケージ名で探すよりファイル名で探す方がおすすめ。さらに確認するには pkg info。
  • aptitude searchに似ているのはpkg list -s | grepするといいのだけど、pkg list -s は猛烈遅いので(キャッシュとかしてないらしい)ファイルに落としておくのおすすめ。
  • IPS には rpmdeb のような post scriptが存在しないけどこれは意図的なもの(だと思う)。勝手な情報を書くよりちゃんと自分で管理しなさいということではないか。
    • デーモン管理はSMFでやりますよ。pkg contents | grep manifest すると SMF 用の manifest が見つかるのでそれで SMF を起動すればおけ。
  • BE (Boot Environment) の話。pkg image-update すると今のブート環境を ZFS でクローニングして新しい BE ができる。
    • GRUB メニューに追加できるので update して起動しなくなったらいつでも戻れる。これは openSolaris のうれしいポイントの一つ。
  • pending (IPS レポジトリの一つで、ユーザーが contribute したけど Sun が公式認定していないもの) は歴史的理由で二つあるが、juicerが今後使われる。
    • そっちじゃない方のはdisconなので、今使ってるけどjuicerにも contribにもない奴はjuicerに移してだれかメンテナになれという話。
Q&A
  • Q:パッケージファイルがないとすると、野良ビルドをパッケージ化して依存関係の破損を防ぐみたいなことはどうやるの?
    • A:IPSサーバを自前で立てる手がある。Common Build Environment という「これだけあればビルドできます」なパッケージがあるので、ZONE を作って CBE を入れただけのクリーンルームを作り、そこでビルドしサーバにする。
      • Twitter で chonan さんから「sysv pkg 化するのがお手軽」とのコメントをいただきました。
  • Q:manifestについての設定はどうやるの?
    • A:今だとよい方法がない。manifestのおく場所は一意に決まっている。ファイルは手で触る必要がなく、サービスを削除すると勝手に削除される。
  • Q: SNMPパッケージについてはサービスは初期状態で入っていたがmanifestが別パッケージになっていた。そういうのは例外的?
    • A: 多分パッケージ管理の過渡期で分かれてしまったということ。今はmanifest を入れるように推奨されている。

これにておしまい。

びぎなーずはどうしてもセミナーっぽくプレゼンターの話を聞くだけになりがちなんですが、今回は質疑応答も活発でなかなかよかったと思います。
宴会も相変わらず楽しかったです。

さてと。
次回までに openSolaris 印刷事情、まとめることとかできるかなぁ……。

*1:Twitterで satokaz さんからコメントありました。こちらの記事だそうです。

*2:他のプロファイルは? と聞いたら「ビジネス的に意味があるならやるけどさ、あんの?」という態度っぽかったらしい。

*3:お察しのとおりこの答弁は私がしたものです。