Linux

2008年1月 8日 (火)

raid & initrd

年末から年始に書けて(だけではないが… (*1))、主に RAID-1 設定を行うことを最終目的として initrd 関係を調べていた。

まだ、最善の解決策は見つけられていないのだけど、ある程度分かったことをまとめておく。


◆1 mkinitrd


gentoo に採用されているものをベースにコンパイルする方針んでした。
gentoo のパッチは、機能的な部分とは関係ないようなので、特に当てる必要は無いようだった。

ただそれだけでは、/sbin/mkinitrd が動作しなかった。
しかしこの問題はごく単純なところの問題でした。
/sbin/mkinitrd は、実はシェルスクリプトであり、何と awk (gawk) の場所が Plamo のものとは異なると言うことのが原因であり、しかも awk の呼び出し方が(フルパスだったり gawk だったり awk 立ったりと)バラバラで統一されていないと言う状態で、フルパスのものが引っかかっていたと言う単純な問題だったので AWK でシェル変数を定義して実際のパスを格納してから呼び出し方を統一することで動作した。


◆2 initrd の中身と Fedora core 6 / Debian GNU/Linux 4.0r1


それで出来た initrd 中身を
http://blog.miraclelinux.com/uraura/2006/06/initrd_b3c8.html
の様にしてバラしてみて中身を見てみたのだけど思った以上に単純で(たぶん、mkinitrd が正しく作れていないだろうから)操作しないだろうと判断して、ちょっと棚上げしていました。
# Debian GNU/Linux (serge) のものを見ていたので…そちらはもっと複雑だった。

ためしに Debian をいれてそちら initrd を確認してみましたが、やはり複雑だったが構造的に作成した mkinitrd から作ったものとはまったく異なることになる様だった。
結果として Debian のものを参考に作成したパッケージの mkinitrd の「デキ」を判断することは、困難と分かったので、Fedora のインストールして比較することを考えました。

なお、mkinitrd のバージョン的には、Fedora Core 4 が一番近いのだか、バージョン以前にカーネルとかのバランスが悪くなると思われるので、もう少し新しい方が望ましいと思えた。
結構前のものなので手元にあった一番新しい Ferdora Core 6 (*2,*3)を試しました。

Ferdora Core 6 のインストールは、基本パーティションのみになるようなので既にパーティションを設定済みだったので一時はあきらめかけたが、シリアルATAの追加したハードディスクは未使用の基本パーティションが空いていたのでそちらにインストールした。
---
その後、fdisk -lu でセクタ単位容量を確認して同じ容量で確保した拡張パーティションに fedora の物をまとめて移動しましたが…。


話はそれましたが Fedora の initrd は、作成したパッケージの mkinitrd で作ったものとあまり変わりないようで、パッケージとしては問題ないのかもと思えるようになりました。


initrd の中身を検証しながら見て行くには、以下の URL を参考にしてください。


http://blog.miraclelinux.com/uraura/2006/06/initrd_b3c8.html


以前の Linux/TOWNS の initrd は、Slackware のもので minix や Plamo/TOWNS では ext2 をループバックデバイスで使っていたので、形式は色々あるかと思います。

最近のものは、cpio と gzip を併用しているようで、以下のようにして initrd 作成して中身を確認できるかと思います。

# mkinitrd --with=raid1 --with=md-mod -f /boot/initrd-2.6.23.9-plamoSMP 2.6.23.9-plamoSMP
# mkdir initrd-2.6.23.9-plamoSMP.new
# gzip -cd /boot/initrd-2.6.23.9-plamoSMP | ( cd initrd-2.6.23.9-plamoSMP.new ; cpio -c -i )
1984 blocks

◆3 mkinitrd で作られた (Fedora系の) initrd が単純な訳


initrd の中の /bin などが単純なのは、どうやら nash に sh の機能の他に mount/umount などのシステムコマンドを組込みコマンドとして実装しているようで、そのため /bin, /sbin の代わりになるようです。

つまり、initrd を展開して得られるファイルの中で init の中身にあるシステムコマンドは、nash の組込みコマンドのようでした。

raid1 の設定する前と設定をした後に作成した initrd では、raid を構成するコマンドが追加されることが分かります。
以下は、raid 関係が組み込まれていないものと組み込まれている initrd の起動スクリプトと差です。

root@athlon:/home/digit# diff -u {initrd-2.6.23.9-plamoSMP.dir,initrd-2.6.23.9-plamoSMP.new}/init
--- initrd-2.6.23.9-plamoSMP.dir/init   2007-12-25 18:11:31.000000000 +0900
+++ initrd-2.6.23.9-plamoSMP.new/init   2008-01-06 23:34:26.000000000 +0900
@@ -5,6 +5,14 @@
echo Mounted /proc filesystem
echo Mounting sysfs
mount -t sysfs none /sys
+echo "Loading md-mod.ko module"
+insmod /lib/md-mod.ko
+echo "Loading raid1.ko module"
+insmod /lib/raid1.ko
+raidautorun /dev/md0
+raidautorun /dev/md1
+raidautorun /dev/md2
+raidautorun /dev/md3
echo Creating block devices
mkdevices /dev
echo Creating root device

RAID モジュールの組み込みと raidautorun が追加されています。

なお、この initrd を使用して起動するとモジュールの組み込みは行われるものの /dev/md0〜md3 までは使用できる状態ではありませんでした。

なお、ソフトウェアレイドの /dev/md* の状態を確認するには、/proc/mdstat で調べることが出来ます。

構成されていないとき。

$ cat /proc/mdstat 
Personalities : [raid1]
unused devices: <none&bt;

ソフトウェアRAIDが、RAID1で片肺で構成されている不完全なとき。

$ cat /proc/mdstat 
Personalities : [raid1]
md1 : active raid1 sda2[1]
      15631168 blocks [2/1] [_U]
      
md2 : active raid1 sda3[1]
      31254336 blocks [2/1] [_U]
      
md3 : active raid1 sda5[1]
      3911680 blocks [2/1] [_U]
      
md0 : active raid1 sda1[1]
      987840 blocks [2/1] [_U]
      
unused devices: <none&bt;

◆4 raid1 をモジュール化するときとカーネルに組み込むときの差


上記のように raid をモジュール化して構成する場合、(特に現在の Plamo の場合は、かなり面倒な)課題がついて来ることになるかと思いますが、raid1 の機能をカーネルに直接組み込むと実はあっさり使えるようになります。

このことは実は最初の時点で確認していたのですが、「モジュールにするとインストーラなどで(raid1 or raid5 などの)構成を調整しやすい」のでいいのではないかと思ってモジュール化して initrd 起動を試していました。でも、Debian では結構作りこんで対応しているようなので Fedora のものを調べ様としたことになります。

話は少し戻りまして先ほどの「initrd では、RAID(/dev/md*)が再構成されない」ことの調査です。

まず、nash で raidautorun の動作を確認します。(Red Hat と表示されていますが、Plamo Linux で確認しています。)

RAID1 が再構成されない raid1 をモジュール化されている 2.6.23.9 カーネルを使用した場合

# echo 'raidautorun /dev/md0' | nash
(running in test mode).
Red Hat nash version 4.2.0.3 starting
raidautorun: RAID_AUTORUN failed: 19

RAID1 が自動的に再構成された raid1 を直接組み込んだ 2.6.23.9 カーネルを使用した場合

# echo 'raidautorun /dev/md0' | nash
(running in test mode).
Red Hat nash version 4.2.0.3 starting

上記のようにモジュール化した場合のみエラーを返します。
理由ですが nash のソースには、ioctl(fd, RAID_AUTORUN, 0) を呼び出しているのみです。

と言うことは、ioctl() で RAID_AUTORUN を処理しているカーネル側のコードを見る必要があるので、探してみると以下のようになっています。

$ find /usr/src/linux-2.6.23.9 -type f -print | xargs grep -n 'RAID_AUTORUN'
《中略》
/usr/src/linux-2.6.23.9/drivers/md/md.c-4397-           case PRINT_RAID_DEBUG:
/usr/src/linux-2.6.23.9/drivers/md/md.c-4398-                   err = 0;
/usr/src/linux-2.6.23.9/drivers/md/md.c-4399-                   md_print_devices();
/usr/src/linux-2.6.23.9/drivers/md/md.c-4400-                   goto done;
/usr/src/linux-2.6.23.9/drivers/md/md.c-4401-
/usr/src/linux-2.6.23.9/drivers/md/md.c-4402-#ifndef MODULE
/usr/src/linux-2.6.23.9/drivers/md/md.c:4403:           case RAID_AUTORUN:
/usr/src/linux-2.6.23.9/drivers/md/md.c-4404-                   err = 0;
/usr/src/linux-2.6.23.9/drivers/md/md.c-4405-                   autostart_arrays(arg);
/usr/src/linux-2.6.23.9/drivers/md/md.c-4406-                   goto done;
/usr/src/linux-2.6.23.9/drivers/md/md.c-4407-#endif
/usr/src/linux-2.6.23.9/drivers/md/md.c-4408-           default:;
/usr/src/linux-2.6.23.9/drivers/md/md.c-4409-   }

どうやら、一般的にはモジュール化されたときは、RAID_AUTORUN の ioctl() は無効化されているようです。
# Debian GNU/Linux 環境でも同様です。

Fedora Core 6 の環境は、raid1 をモジュール化しても raidautorun が機能するようです。

[root@athlon digit]# /sbin/lsmod | grep raid
raid1                  27073  4
[root@athlon digit]# echo 'raidautorun /dev/md0' | /mnt/sbin/nash
(running in test mode).
Red Hat nash version 4.2.0.3 starting

と言うことは、Fedora Core ではモジュール化しても RAID_AUTORUN の ioctl() が有効となるようになっていると思われます。


*1 実際のところ、2007年04月14日ぐらいからなのでかなり前から…。
*2 最新の Fedora 8 より比較しやすそうに思えたので…。
*3 実は、DVD のイメージをダウンロードして書き込みが可能なマシンと空き容量が無かった。

| | コメント (0) | トラックバック (0)

2007年12月19日 (水)

IPv6

CSI ネットワークマスター 虎の穴 市民公開講座〜携帯とネットワークの美味しい関係〜」で聞いた話ですが、CSI では「IPv6 Rally!」(http://www.supercsi.jp/ipv6rally/about.html) って言うのをやっていて CSI 提供の経路を OpenVPN 経由で IPv6 接続できるようにして IPv6 のサイトを探すと言う企画をやっているそうで、それなら Linux でも出来るのではと思って、自宅の環境を見直していました。

ちなみに、会場でもらった情報では Linux でも問題なさそうに思うのですが、「IPv6 Rally!」サイトでは、WindowsXP って条件がついているようなのが気になりますが、どちらにせよ家の環境を見直すべき時期なので調整を行っております。

…で、とりあえず現在までの状況をまとめます。

(1) OpenVPN の ビルドスクリプト(PlamoBuild-openvpn.sh.sh) を作成
(2) Linux カーネル 2.6.23.9 で IPv6 関係を有効化してコンパイルする。(ip6table関係も)
(3) ipv6 を有効にした net-tools-1.60 を作成する。

Plamo-4.21 の tcpip パッケージの net-tools-1.60 は ipv6 が無効のようなので gentoo のものを参考にして ipv6 を有効にした net-tools-1.60 を作成するビルドスクリプト(PlamoBuild-net-tools.sh) を作りました。
これからパッケージを作成します。
# ifconfig などの昔からのツールでも IPv6 を有効にして使いたいので…。
# なお、以前の Plamo-4.02 のときは usagi-tool ベースの net-tools-1.60 を使っていました。

元の実行ファイルを別名にして残しておく場合は、以下のようにして上書きする実行ファイルを調べて名前を置き換えるといいと思います。

# tar tzf net-tools-1.60-i386-P1.tgz | while read target ; do 
if [ -x "/${target}" -a ! -d "/${target}" ] ; then mv "/${target}" "/${target}.ipv4" ; fi ; done

実際の動作結果は、以下のようになります。当り前ですが、ipv6アドレスが表示されるだけです。

# 物理アドレスやIPアドレスの一部は、ダミーの文字列になっています。

root@athlon:/home/digit/packages-merge/net-tools# ifconfig
eth1      Link encap:Ethernet  HWaddr 00:vv:ww:xx:yy:zz 
          inet addr:192.168.xxx.yyy  Bcast:192.168.xxx.255  Mask:255.255.255.0
          inet6 addr: fe80::www:xxxx:yyyy:zzzz/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:11138 errors:0 dropped:0 overruns:0 frame:0
          TX packets:9727 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:1240128 (1.1 Mb)  TX bytes:1436574 (1.3 Mb)
          Interrupt:19 Base address:0x6000

eth2      Link encap:Ethernet  HWaddr 00:vv:tt:ss:rr:qq 
          inet addr:192.168.xx.yyy  Bcast:192.168.xx.255  Mask:255.255.255.0
          inet6 addr: fe80::www:vvvv:tttt:ssss/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:13 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 b)  TX bytes:1590 (1.5 Kb)
          Interrupt:20 Base address:0xd400

lo        Link encap:Local Loopback 
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:4584 errors:0 dropped:0 overruns:0 frame:0
          TX packets:4584 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:732144 (714.9 Kb)  TX bytes:732144 (714.9 Kb)

その後は、ping6 とか traceroute6 とかも準備するつもり。

| | コメント (0) | トラックバック (0)

2007年12月 8日 (土)

OSC2007 Fukuoka レポート 1.0


◆ 出発時


別の趣味の関係で 500系のぞみでの移動がいいなと思っていたが、それでは博多着が 9:55 となり、最初に参加予定の「jus研究会JAPAN TOUR 2007福岡大会」(10:00-10:45予定)に間に合わない(*1)と思われたので、その前のひかりレールスター(700系)を利用する方向で検討 していました。

しかし、朝起きたら地元駅からの一本前に連絡する電車が発車する時刻ぐらいだったので、すでに選択肢は無い状態で、「のぞみ501号(500系)」(W1編成)となりました。まぁ、LILO に向かうときに利用していた「のぞみ2号」(*2) に比べるとがらがらでした。

博多駅には、1〜2分位遅れていてたり信号に引っかかりましたが、走ったかいも合って 5 分以内の遅れですみました。ちなみに1号車の新幹線ホームからセミナー会場まで、6′52″でした。

W1

写真1は、行きに乗った W1 編成の流し撮り。
なぜ、W1 と言えるかについては、Wikipedia の「新幹線500系電車」のページでW1を検索すると分かります。


◆1 jus研究会JAPAN TOUR 2007 福岡大会 (10:00〜10:52ぐらいだったかな?)


講師:岡村耕二(九州大学)
司会:法林浩之(日本UNIXユーザ会)

内視鏡を使った治療とか手術などの医療技術の伝えるためにネットワークを使った動画のやりとりの話で、国際的なネットワークを構築しながら普及/運用/調整してきたとことでした。
当初、2ヶ国間から始まりアジア圏を中心(一部、欧米への接続あり)とした各国への普及と各国の参加スタッフとのコミュニケーションの問題を携帯電話技術を交えた話でした。
# 研究期間のネットワークとかがぽんぽん出てきて、UNIX Magzine を読んでいる気分になりました。

私は、携帯電話を持っていないのと海外へは言ったことがありません。そのためこのあたりの知識が致命的に低かったので分からない用語も多かったのですが、話の中でだいたい想像できたので楽しく聞くことが出来ました。
# 途中、シムって言葉が出てきて「SIMM」じゃなさそうだしとか思いましたので…。


◆ LDAPの使われ方入門 (11:00〜11:45)


担当:日本LDAPユーザ会
講師:堀田 倫英(県立長崎シーボルト大学 情報センター)

LDAP を基礎的なとこから応用まで結構深いところを交えながら説明されると言う離れ技を見せつけられたような気がします。
私自身、OpenLDAP を使っていたにもかかわらず、LDAPって言うもののを簡単に説明することが出来なません。それゆえ LDAP はそれ自身か関連する技術などに関してある程度の知識を持っていない人には伝えにくいものと認識しています。

認証のしかけは、UNIX として元もと存在していたものがあって(NIS とか NIS+ の試みがあって)より自由度の高く組み換えられる仕掛けとして PAM ができあがって来ているため設定が複雑(*3)になって来ているように思っています。

それをライブラリコール(mapページまで触れる丁寧さ)と各種設定ファイルおよび各種応用事例を交える話は、OpenLDAP を導入しようと言う方へのポインタ(*4)としての資料として最適化と思います。

しかも、日本LDAPユーザ会でプレゼン資料が公開予定だそうなので期待大です。


◆ ブース見学、昼食、Luky ブース番


◇ ブース見学

OSC では常連のブースと九州のオープンソース系のコミュニティで構成された展示スペースとなるのですが、盛況で会場が狭く感じました。
OSASK計画のブースで川合さんと TOWNS の話題で話し込みました。


◇ 昼食

会場のとなりでビフテキカレーと言うのを食べました。
朝寝坊の結果、朝は少ししか食べていなかったのですが、興奮していて食欲を意識していなかったのか特に問題ありませんでした。


Luky ブース番(写真2)

Osc2007fukuoka

展示物に着いて良くは分かっていなかったのですが、午後最初の研修は取っていなかったので、その時間は Luky(LUCO との)共同ブースに立ちました。良く分からなかったためいい加減なことを言っていたと思います。
申し訳ありません。


◆ ハラハラ、どきどき。地域におけるOSSコミュニティの立ち上げ (14:00〜14:40)


講師:倉原 浩志 他

すいません、講師の方は2名体制でのセミナーだったんですが、上記の方はOSCのページのっていらっしゃる方です。

いまのところ私が係わっているコミュニティの Luky, LUCK, LILO は、初期からある Linux Users Group (LUG) なのですが、活動自体の差はあるものの「初期からいるメンバーの考え方は似ているのでは?」と思っています。このタイプのコミュニティとは別のタイプのコ ミュニティなのだと言うことが、話を伺っていて分かりました。
つまり、私が知っているコミュニティと同じ様な部分が無いわけでもないが、大きな違いがある部分は香なり興味深く見させて頂きました。特にオー プンソースのプロジェクトとしての社会との係わりの大きい係わり方は、ちょっと私の知らない部分(同時に苦手な部分)だったので興味深く聞かせて頂きまし た。
なお、「大分県オープンソースソフトウェア研究会」へイベント好きの様でもあるみたいなので、来年の大分での OSC の予定についての発表がありました。どのようになるか興味深いところです。
参加予定に「OSASK」とか「Luky」(*5)と「LinuxKernelHackJapan」と言うのもありました。
# 私は、行けるかどうかと言うと、難しいような気がしますが…。


◆ セキュアコーディングノススメ (15:00/15〜16:00)


講師:久保正樹(有限責任中間法人JPCERTコーディネーションセンター

最初(セミナーが始まる前)に「クイズ:実行されるのはどれ?」ってクイズから始まったのですが、"signed char" とかの整数を使った問題だったので思考したくなくなったので「nvi」立ち上げて gcc でコンパイルしてみたんですが、その後、「コンパイル禁止と言われました。」即座に「手遅れです。」と返しましたが…。
…ってところからセミナーに入ったのですが、C/C++の言語仕様とハードウェアの問題に係わる問題は、奥が深くて言語に十分になれていたも問題を全てとるのは非常に難しいと思っています。
正直、私はC言語は大好きですが、若手プログラマに奨めていい言語かどうか不安になっていましたし、不安になりました。

でも、どんな言語でも弱点は探されるだろうから言語の問題ではないでしょうけど…。
また、膳弱性を××しているサイトとか見せてもらいましたが、嫌になってきました…。

OSC 2007 Kansai で買った「C/C++セキュアコーディング」をちゃんと読まないと思いました。


◆ ブース見学、Luky ブース (16:00〜17:30)


最後のセミナーは、選択していなかったので主に Luky/LUCO ブースについてました。

出展者の方が体調を少しくずされていることもあり、早めに片付けられ始められましたが、最初の状態が分かっていないためお手伝いできず、申し訳ありませんでした。

Luky, LILO の知合い、となりのOSASKブースの川合さんとのお話していました。

# Luky ブースの模様は、柴田(ひ)食堂さんのBlogが詳しいかと思います。


◆ 懇親会 (18:00〜20:00)


ストラップにLUCKの名刺と会社のものの2つを引っかけて歓談していました。
堀田さんとは長崎のオープンソースの取り組みお話を聞いたり、発表された LDAP の話。
法林さんには、次の「jus研究会JAPAN TOUR 2007/CSI ネットワークマスター 虎の穴 市民公開講座」(広島大会)のこと Wikipedia のことを伺いました。
その際、「(法林さんの)プロレス好き」のこととはまだ書かれていないって話だったんですが、後日確認して(差を)みると話を伺ったときには既に追加されていたことが分かりました。
あと、LILOの加藤さんと話をしていたのですが、それは次の項目で。


◆ 解散後 (20:00〜21:16)


加藤さんとは、LILO のとことか関西や福岡県の全般のこと話していました。



◆ 帰還 (21:16〜23:00)


新幹線のぞみ500号(500系) W4 で広島へ在来線乗り換えで帰りました。(トラブル無し)


*1 目的地のビルは博多駅から歩いて5分と書いてありましたが、新幹線のホームからセミナー会場の4F-B会議室まで5分は不可能と考えました。
*2 今までは、「のぞみ2号」は 500系だったのですが、2007-12-02 位から N700系を使った運用に変わったはず。
*3 うまく調整された設定だなと思うところも多々あるが、歴史的な背景とか色々な実装がありまた自由度の高さゆえ難しく思います。(人心を惑わすアクティブディレクトリなんてものもありますし…)
*4 C言語のポインタみたいなものを指しているつもり。簡単に言ってリンク集に近いものかも。

| | コメント (0) | トラックバック (0)

2007年7月21日 (土)

OSC2007 Kansai レポート 0.5.4

現状は、書きかけのつもりです。(前回書きかけのままになってしまいました…)


0 ロードマップ


OSC2007 kansai (私が参加した2日目のみ) のレポートを全般をまとめて書きたいと思います。
来週のセキュリティもみじの都合もあるので 2007-07-28 までに、このレポートの 1.0 をリリースしたいです。
# どんなロードマップなんだか > 私。

…と当初思っていたのでしたが、ダメでした。


なお、現在のレポートとしては、こちらが がいいと思います。

「爆笑 LILO 10年史」を聞いたことで LILO に対する印象が少し変わったのですが、ここで感じたことも私なりにまとめてみたいと思います。


1 会場まで

2007-07-21 07:30 → 09:07 新幹線のぞみ2号(500系) W編成(W2) 1号車 1E 席
# 最後尾の席です。
# 先鋭的な形状のため座席数が2列×2 になっているため C 席は存在しません。

10年前に営業運転を開始した車両と言うのと JR 西日本の車両と言うのが LILO 10 年にふさわしいかな…。
調べてみると、これの試作車である WIN350 は、1992年できてテストを開始したみたいなので、Linux 誕生の時期に重なる感じです。

のぞみ2号 (W2) / 広島駅 のぞみ2号(W2:左)/のぞみ5号(右) / 京都駅 500系新幹線 - 廿日市市

左:広島駅にて、ホームには行ってきた、のぞみ2号 (W2) 右上の部分は、「W2」の表示を拡大したもの。

中央:京都駅にて、名古屋へ向けて発車した、のぞみ2号 (左の編成:W2)と下りの新幹線のぞみ5号(500系:W8?)

右:私の地元にて事前に撮影していた、500系新幹線の流し撮り。(300km/h 出ているかも…?)


2 会場着

LILO ブースに入って手伝いをした部分と各ブースをまわっていました。
OSASK の川合さんに TOWNSユーザ向けデモをしたもらいました。

JPCERT/CC のブースにて「C/C++セキュアコーディング」を購入。

# 会場での書籍販売は、唯一この本だけ打っていた様に思えた。


3 セミナー(前半)

セミナーに関しては、書かなきゃ行けないことがいっぱいあり過ぎるので、時間をかけて書きたいと思います。


3.1 爆笑 LILO 10年史 (前編)/(後編)

担当:LILO
司会:のがたじゅん

のがたじゅん氏

そのときの照明のみで撮影したため、GIMPのトーンカーブで色補正がかかっています。



セミナーの落し穴

正装であらわれた「のがた」さんを MC として、Linux , LILO の歴史を振り返るのが、この LILO 十年史なのでが、よくよく考えるとブートローダの LILO でなく LUG の LILO と言うことがセミナーの案内などに明確に書かれていたわけではないので LILO ML 以外の方をトラップにはめてしまったようでした。
# 何か見事にそのトラップのことを気がついていませんでした。


LILOの歴史

で、LILO の最初のミーティングが、 1997-07-21 だったそうで、ちょうど10年を迎えるアニバーサリーに OSC 2007 kansai を迎えることになったようです。

なお、この歴史の発端となる LUG 発足の案内の Linux-ML でのタイトルが Luky の発足への返信となっていました。


その LILO の歴史を年表のように紐解いて行くことになったのですが、最初であたりで縄文時代と表されたので、LILO 開始時点を弥生時代として欲しいと行ったのは、私です。
「稲作の確立とかで、集落と行った集団が形成されて行く段階だから」とこじつけることは出来ますが、LILO みたいなものを開きたいと思ったのは、Linus さん初来日で京都に来られたときに参加者の人達(参加したかったけど出来なかった方も含めてです)が感じていたことだと思うためだったりします。

その後、紐解いていく際に奈良(NAISTのことと思われる)が活躍した時期を「奈良時代」と命名するなど、「何か歴史はくり返すんだなー…。」と思わせる感じでした。
…で弥生時代あたりは、九州の「吉野ヶ里遺跡」の事から考えても、LUG の歴史は日本史的なところがあると言う偶然を楽しみながら進んで行きました。

# 一部、黒歴史もあったらしい…。


サブプロジェクト

LILO で行われている(行われていた?)サブプロジェクト(bike team (lilo-bk), Project LILO-doc, RealTeam, LILO Webmasters, ダンスチーム)などについて一通りの紹介があった。 バイクチームなどの部活動的なことやダンスチームの裏話、LILO の運用的な活動なども紹介された。
# なお、バイクチームと言う名前に聞き覚えがあると思ったら Luky のメーリングリストに「lilo バイクチーム来襲」って言うのがありました。


セミナー(LMS)

セミナー/オフラインミーティング関係の事も過去の経緯を含めて紹介がありました。新しい試みであるコードリーディングをどこで紹介するかと言うことも検討されました。
# 奈良時代の話は、このあたりであったはず。


メーリングリスト

LILO メーリングリスト (LILO ML)の案内ページを見ながら、紹介ページ自体の案内に過去の歴史が(obsolate として)刻まれている部分があり、それの見直しや、余り知られていなかった「モデレータ制度」の解説があった。
# あと「脱会方法」の注意と言うのもありました


まとめ

なお、良い話ばかり出たと言うわけではなく、今までの中には意見がぶつかってもめたことのあるとか、変な事も結構出てきましたが、 私も LILO に関わるまでは、LILO と言うと LMS で毎月セミナーをしようと言うような、まじめな方々の集まりなのかな…思って気が引けていた面もあったのですが、もっと親しみやすい方々なんだ言うことがあらためて理解できました。

LILO 2.0 を目指すと言う謎の目標も出てきましたが、今後も楽しみに出来る集まりかと思います。

また、活動する上で事ので TOSHIHISA さんの「無理をして負担になるようになってしまってはいけない」と言うのが、私の心情的に強く同意しました。


私は、LILO では極浅い(LILO史として)江戸時代(LILO Code Reading, LMS?)以降の参加者ですが、Luky, LUCK に関わって感じていたことを含めてまとめて書きたいと思います。

Luky への初参加は、「第2回 Linux Users 九州ミーティング」(LUKY2)です。
# Luky は、メジャーミーティングではバージョンナンバーのメジャーバージョンを更新する伝統があります。

LUCK では、「ねとわくであそぼ at 広島(バージョン李白)」で確か「李白」とつけるきっかけは、LUKY の様にバージョン管理した方がいいのでは? って私の意見から、コードネーム的なところに落ち着いたのだと思います。

個人的に感じたのは、LILO の特徴と言うよりも LUG としての LILO 特筆すべき点もあるが、他の LUG の様に同じ感覚で始まった集まりと言うことを感じました。LILO と LUKY の共通点も多く、LUCK の様な問題点も圧倒的に少ないながらも持っているのだと分かりました。
# ちなみに Luky での 2.0 は、私が初参加だったメジャーミーティングにあたるので、この部分は大きく違うかな…。


こぼればなし

だれでしょう?

また、何故か写真担当に…。でもデジカメ持っていないので必然的にフィルム撮影となるのですが、入っていたのがリバーサルの FUJICHROME PROVIA 400 X なので、リバーサルはラティチュードが狭いこと、プロジェクタの画像も撮れれば取り込みたいと言うことで(蛍光灯下にもかかわらず)フラッシュを使わず 撮ってみたので、カメラがちゃんと露出を合わせてくれていたも色はメチャクチャも…。
# 特にのがたさんの髪の毛のあたりとか…。

そのときの照明のみで撮影したため、やはり色の補正が必要でした。GIMPのトーンカーブで色補正がかかっています。
なお、シャッタースピードが長めになってしまったため被写体のアクションでブレてしまっている写真もありました。
# 予想通りだったのですが…。


4 昼食

何を食べたかは、まったく面白くない話なのでカットです。

  • はりぼて友の会」で TOWNS の話をしたら、TOWNS ユーザーの方がいらっしゃったので、TOWNSの話題とか作られている OS のこと自分とLinux/TOWNSのことも話し込んでしまいました。
  • もじら組」ではアンケートを記述しました。利用しているアドオンの質問があったのでノートPCを開いて確認しながら記述した。

5 セミナー(後半)


5.1 LinkStation/玄箱をハックしよう

講師:山下康成@京都府向日市


LinkStation/玄箱をハックしよう」の方ということで、使われている

5.2 Sambaの最新動向紹介


担当:日本Sambaユーザ会 / 講師:武田 保真


6 セミナー終了後


7 懇親会(7月21日(土) 19:00-21:00)


8 帰宅

2007-07-21 21:35 → 23:19  新幹線のぞみ73号(700系) C編成(C27) 1号車 1A 席
1A席には新大阪で移動しました。家電用コンセントがある車両でした。
# C編成は、JR東海の車両で C25 以降でコンセント付きになったそうです。
# JR西日本のものは、確か全て…。

| | コメント (0) | トラックバック (0)

2007年7月19日 (木)

OSC2007 Kansai / セキュリティもみじ

2007-07-20 〜 21 の OSC2007 Kansai は、2007-07-21 のみですが行こうと思っています。
2007-07-28 の 第10回 セキュリティもみじ セミナーは、とりあえず申し込みました。
# イベントが続きます。

http://www.ospn.jp/osc2007-Kansai/
http://d.hatena.ne.jp/sec-momiji/20070718

| | コメント (0) | トラックバック (0)

2007年5月26日 (土)

勉強会(?) #2 を開きます。(今日ですが…)

勉強会(?) #2 を開きます。(今日ですが…)

  • 開催日時:2007年05月26日
  • 日時:2007年 5月 26日 (土) 13:00〜16:30 JST ごろかな?
  • 場所:メディアフロント (マーサコージュ ビル 5F)
  • 上柳橋西詰交差点の南東側ビル。(入口は、西側にあります)
    広島駅より徒歩約10分。

  • 参加条件や費用は発生しません。自由参加です。
  • ノートPC持込(可と言うか推奨)
  • IEEE 802.3 (有線Ethernet) 環境あり。

  • 内容
    • /dev/* とミキサーデバイスの実装
    • 〜デバイスドライバの入口〜 (*1)
      他は、未定。


飛び入りは、参加可能…だと思います。


*1:2007年4月度 LILO Monthly Seminar で発表したもの

| | コメント (0) | トラックバック (0)

2007年5月 9日 (水)

LMS 2007-04 関連の日記をアップデート

資料公開の一時停止とその理由(記述ミス含む)、感想の追加を行っています。

4月28日 LMS 2007-04 (神戸)の感想。1.4.1末尾の ChangeLog あたりに詳細があります。

4月28日 資料の末尾にも補足説明を追加しています。

| | コメント (0) | トラックバック (0)

2007年5月 5日 (土)

doxygen パッケージ作成スクリプト

doxygen の話ですが、自分で使うためにビルドスクリプトを作っていたのですが、どうやって公開しようか悩んでいました。
他にも同様のビルドスクリプトはあるものの 私のページでまとめるのも面倒だと思っていたのですが、ここにファイルをアップできることに先日、気がついたのであげておきます。

右のリンクのdoxygen-1.5.1 作成用のビルドスクリプト「PlamoBuild.sh」をダウンロードから取得できます。
(md5:6a2275969339c13df1e7f985a15d3a7c/サイズ:15571)

root で、以下のようにすれば、(カレントディレクトリを作業ディレクトリとして)ソースをダウンロードしてきてコンパイルしパッケージ生成をします。

# ./PlamoBuild.sh --all

--all が無い場合は、ダウンロードされているものとして以後の作業を試みます。

興味があれば、試してしてみては?

なお、doxywizard も生成されますが適切な設定をしないと起動しない様で、

$ export LD_LIBRARY_PATH="/usr/lib/qt/lib"

としておく必要があるようです。

| | コメント (0) | トラックバック (0)

2007年4月28日 (土)

4月28日 LMS 2007-04 (神戸)の感想。1.4.1

当日は、6:45 位に家を出て、新幹線のぞみ2号(500系) W8/1号車 5C で会場へ向かいました。

500系のぞみに拘ったため 8:37 に新神戸につくこととなったので、新神戸から(軽い朝食をするため)三宮を経由して現地へ(9:15着)頃。

会場オープン前なので、ノートPCの電源確保とともに準備を手伝う。


(当初の)スケジュールは、以下のようになっていました。

(09:30 会場オープン)
09:45 受付開始
10:00 - 10:10 : まえせつ、会場の説明など
10:10 - 10:40 : 参加者全員の自己紹介・近況報告
10:40 - 10:50 : 休憩
10:50 - 11:50 : 久保「Armadillo-9 で作る、シャットダウン不要な組み込み型LinuxBoxの構築」
11:50 - 13:00 : お昼休み
13:00 - 13:30 : kiyoka「軽量ドキュメントフォーマットPredocの紹介」
13:30 - 13:40 : 休憩
13:40 - 14:40 : 秋葉「tun/tapを利用した高機能パケットモニタの製作」
14:40 - 14:50 : 休憩
14:50 - 15:50 : 丸市「/dev/* とミキサーデバイスの実装」(仮)
15:50 - 16:00 : 休憩
16:00 - 16:40 : フリーディスカッションなど
16:40 - 16:55 : 片付け、撤収
(16:55 終了)

上記のスケジュールのうち私のセミナーより前の部分をホワイトボードへ書き出す仕事をしました。


なお、進行に関してスケジュールとのずれは、ほとんどありませんでした。


「Armadillo-9 で作る、シャットダウン不要な組み込み型LinuxBoxの構築」

日頃、組み込み系をやっているわけではないので、この様な機械で Linux を使ったことは、あるわけではないので JTAG, MTD, jffs, jffs2と言うキーワードについては、分かっていなかったのでいい勉強になりました。mount での noatime, async オプションは使ったこともないし、機能自体を認識していませんでした。

Armadillo-9 VGAやUSBキーボードが使えると言うことから、組み込み系の練習用にも使えるような扱いやすさがあるのではないかと思いました。

なお、プロジェクタへ表示が出ずに苦労されていました。(VGAケーブルを接続して再起動すると映ったので良かったと思ったのですが、プロジェクタのトラブルは…)


お昼休み

前半は、ビデオのセッティングをされていたのでノートPCを繋いでみる何か画面がおかしい……表示範囲が 640x480 になっている。プロジェクタを操作してみたが調整できそうにない。(過去、他のプロジェクタでは表示できていたのだか…)

後半は、Wendy's と言う(広島には無いらしい)ハンバーガーチェーン店で昼食をとったが、始めて入ったところだったので、中途半端なものを注文して少なめの昼食になった。ただ、発表前の少し緊張している状態だった私にはあまり量に関して感じていないようで、空腹感が残ったわけではなかった…。


「軽量ドキュメントフォーマットPredocの紹介」

私の印象では Predoc の特徴は、

  • 文書の処理が単純でありインタプリタタイプの実装でかつ軽い。
  • Emacsで簡単に作成/表示できる。
  • diff で差分がとれる。
  • 他の文書フォーマットへの移行も簡単。
  • フォーマット自身はHTMLのサブセットなので表示は WWW ブラウザ出可。

となり、ファイルフォーマットの位置付け以外にも文書のプロトタイプを固めるためのプロット作成用のドキュメント形式と言えると思う。

私は、Emacs を使えないこととMS Word以外の文書フォーマットでは、ドキュメント自体の重さにあまり問題は感じたことはないです。

# Word の文書は、80ページ超位で支え切れなくなっていたようです…。

複数人で、バージョン管理システムで文書を優先的に記述していくには、差分がとれることのメリットも大きいかと思うので向いているかも知れません。

HTML の pre タグを多用するので、predoc と呼ぶのかドキュメントの完成前の推敲段階で使うのに適しているため「文書(document)の前(pre)」なのか聞いていなかったので良く分かりませんが、いい名前だと思います。


「tun/tapを利用した高機能パケットモニタの製作」

仮想のインターフェースを使用したパケットモニタを製作する話題。

ユーザーモードのプログラムでインターフェースの制御ができると言うことだと思うので自由なパケットがつくり出せて制御も可能と言うことになるのかと思います。

私は、tcpdump や wiresharke (や、その前身のethereal) を使っているのですが、wireshark は既存のプロトコルを分析する能力も高い様なのでどういう目的のときに使うのがいいのか導き出せていません。

システムコールについての解説もあったので、自分のパートでこのあたりをどう説明するか考え直していました。


/dev/* とミキサーデバイスの実装

〜デバイスドライバの入口〜

準備段階

プロジェクタに接続してみたが、640x480しかでないのは変わらなかった。xfplamoconfig で設定を調整してみたり、再起動してみたがダメだったので 640x480でプレゼンをすることにしました。

サブタイトル

「(仮)」していた部分を「〜デバイスドライバの入口〜」と変えた。一応説明したと思うが伝わったかどうかは不明。

ノートと緊張

プレゼン資料には、標準表示では触れていない項目で説明が必要と思われる部分をノートとして記述していた。そのためプレゼンの枚数分、印刷してそれを原稿として進めるつもりだった。
しかし実際には、緊張のためか並行実行できるタスクの(優先度を含む)問題かで冷静に対応できず、プロジェクタに出していた資料を進めるだけで精一杯で、(台本としての)原稿をめくることができていませんでした。
ラジオのDJやパーソナリティの方だとリスナーからのはがきやメールと進行台本を並行して進めれるんだろうけど…「私には無理なんだと…」としみじみ感じていました。

その他、セミナー会場内のLANからプレゼン資料をダウンロードできるようにしたのも余り説明できていなかった気がします。

解像度不足

会社やコードリーディングで、以前にプロジェクタに接続したときには起きなかったため、想定できていなかった問題である画面解像度が出ないため 640x480 でのプレゼンとなったのですが、コードに関する部分小さいところはつぶれて判読が難しくなっていました。

# なお、アンチエイリアスのおかげで意外と見栄えは良かったのです。

ただ、悪いことばかりではありませんでした。

それは、一部の録音関係の操作の説明の中で TOWNS で実装できないためいい加減にしていた部分をばっさりカットすることができました。(これは、時間通り進められた事にもつながります。)

後で調べると説明を切り上げた、SOUND_MIXER_READ_RECSRC の説明文が、前のページの「SOUND_MIXER_READ_RECMASK」であることが判明しました。
# 「何かつじつま合わないな…いいや飛ばしちゃえ」って思っていた訳です。(ひどい話ですね)

file_operations 構造体

この構造体は、デバイスドライバに対するファイル操作を実際のI/O操作に振り分けるための処理を登録するためのものですが、それを検索して一覧としてリストアップするための AWK スクリプトを紹介するつもりでしたが、解像度の問題でカットしました。そのAWKスクリプトのファイルは、「pickupFileOperations.awk.bz2」(必要ならをダウンロードしてください)で、

$ find /usr/src/linux/ -type f -name '*.[CcHh]' -print | xargs awk -f pickupFileOperations.awk

として使用します。

実際にこの構造体を「手元にあったいくつかパッチが当たってる 2.4.31」と「2.6.19.2」で、拾い集めて CSV 形式の表としてまとめたものも作っておきました。 (下記のリンクをたどって下さい。)

構造体のメンバーを列にし、構造体を縦にとっています。 機械抽出で拾えたものについてですが、2.4.31 で 約450個2.6.19.2 で 842個の構造体がありました。

なお添付のスクリプトだけでは、上記の CSV 形式にはなりませんが、こちらの方が扱いやすいかと思います。

質疑応答

私は、業務的にもデバイスドライバの開発はやっていないため質問された方の期待された回答を返すことはできませんでした。
すいません。→質問された方々。


家のTOWNS

今回、家を出る際に私の FM TOWNS II HB で Plamo/TOWNS-2.1 を立ち上げたままにしてデモとして見せること画策していました。前日にルータから内部サーバーに通してそちらを経由して TOWNS へ接続する予定でしたが、経由箇所の内部サーバー(Plamo-4.21) に iptables をごちゃごちゃ設定していた中に、内部以外の IP アドレスからの接続はログに残して弾くように設定していました。

このために、見事に弾かれていました。

# 経由する予定の内部サーバーは公開鍵だけを受け付けるように設定し直していたし、内部ネット ワークからの接続テストはやっていたんですけど…。

# 当日、IP reachable な環境を用意してくれるかなと「ある方に期待していて」期待どおりだったんだけど…。

「ひらメソッド初心者奮闘記」(野田さん)

ひらメソッドを用いて、PostgreSQL-8.1.4 を紐解くお話。ひらさんと知合いってな「ひらメソッド」のことも聞いていてコードを解析する順序などは、私自身も自然と行う方法とほぼ同じだったこともあり、改めて「ひらメソッド」を意識してコードを紐解くことは考えていなかった。

そのことが理由にしては行けないのですが、「Linux Kernel Hack Japan (LKH-jp)」でシステムコールなどの解説がされていることなどの情報が上がっていることを気がついていませんでした。この方は、http://testnoda.sakura.ne.jp/ で PostgreSQL-8.1.4 を読まれていました。(検索サイトで調べ事していてここにたどり着いたことがある気がします。)

後で気がついたが、『PostgreSQLのしくみ分科会』あたりと連携とれているのだろうか?
とれていればいいけど…。

案内文には、フリーディスカッションってなっていた部分ですが、1つのセミナーとしてもちゃんとしているものでした。私が申し込むタイミングがもっと遅かったら正式なセミナー扱いだったかも…。


フリーディスカッション

遠くから参加する講師の方がいたときの旅費の話(私もマッチ)、今後のイベントの話など。
# 私は、過去にジンギスカンを食べた記憶がありません。(覚えていないだけかも?)

片付け、撤収

机を元の配置に直して撤収。


こぼれ話

会場で、久保さんより(至近距離で私も映っていた)とんでもない(念のため、コネクタ直結ではありません)外部記憶をコピーさせてもらった。
ビールでの乾杯があったので、私でない気もしましたが、「乾杯だけで飲んでないはず…。」と言うことだったと思う。
# もちろん全員の顔が、とあるロゴに置き換わっていたりはしません。

久保さんから、Linus さん来日のときに TOWNS の /dev/mixer 出来ていたかって話をしたのですが、そのときは余り記憶に無かったのですが調べてみたところ確認できました。

結果は、『出来ていません』でした。このときに、『早く作っとけば良かった』と公開したような気もします。


二次会 (懇親会)

セミナー会場を後にして * な列をつくって懇親会会場(「金魚 hanare」)へ移動。

会場では、組み込み系の関係者に囲まれて、ハードよりだけど3層位の幅広いレイヤーの話をしていてた。当初、Armadillo-9 の講演をされた久保さんと勘違いされていたようだった。(久保さんは、残念ながら懇親会には参加されていません。)
私が、日頃するようなハードよりの話をより、1.5層位深い話になっていました。個人的にはセミナーで聞いたらいいような内容だと思ったけど、セミナー様の題材としてまとまっていないので、難しそうです。

広島でエルピーダメモリに知合いいない(はずだ)から、こんな話をする機会はまず無い。
<知合いに一人だけこのレベルの話ができる人がいますが、ASIC って言葉を聞くのもその友達以来 久しぶりです。電子工学科だったから、そういう方面へ進む可能性もあったのですけど…。

Debian の話をされている方もいらしゃったのですが、私は余り聞けていません。
# なお、Debian GNU/Linux は仕事で使っています。


三次会 (ドトール)

野田さんと近くなったので、解析の話で(私が勝手にかもしれないが)盛り上がる。前回の LMS でセミナーがあった、doxygen の成果のドキュメントを見せたり、関数コメント追加用の AWK スクリプトの話をした。
なお、私のは「こんなやり方もあるって」言う。紹介だけのつもり。基本的には自分流にのびのびやるべきだと思っています。

doxygen 形式のコメント無い私のソースを、doxygen 形式にするAWKスクリプトは、この右のリンク(「doxyInput」をダウンロード)ですが、コメント形式が違う人にはまったく役に立たないかと思います。

新幹線の時刻があったので、21:56 位に引き上げたのですが、22:00 で閉店だったらしい。

# なお会場は、SPT-DT-25C ではない。(こちらを知っている人の方が少ないか…。)


帰り

歩いて三宮から新神戸へ移動した。最初に急がなかったため、22:12 の新幹線には間に合いませんでした。22:16位にたどり着きました。

結果、のぞみ75号(700系)で終点の広島へ。広島で山陽本線下りの普通列車へ乗り換えました。


4月28日 おしまい

つづく


0:30 頃、家にたどり着きました。


ChangeLog

1.1 ネタ合わせ、日付変更

1.2 『PostgreSQLのしくみ分科会』の部分を追加。

1.3 久保さんからの個人的な質問への答え(こぼれ話へ追加)。

1.3.1 コマンドライン部分のスタイル調整

1.4 SOUND_MIXER_READ_RECSRCについての記述に間違いがあったこと。家のTOWNSへつながらない…件を追加。

1.4.1 追加文書内の誤字修正。

| | コメント (0) | トラックバック (0)

2007年4月27日 (金)

4月28日 資料

2007-04-28 (土) 2007年4月度 LILO Monthly Seminarの私の発表の資料です。


オリジナルのドキュメントは、実装を行った10年前のものです。

今回、発表に使うのは Impress の資料です。
印刷用の方は、アニメーションになって見えにくい部分を複数ページに分割したものです。印刷を試みていないので、以下の問題があるかも知れません。


Impress 用の資料を印刷するため(表示するためにも?)には、「ツール→オプション」のフォント設定の中の「置換テーブル」で適切なフォントの置き換えをする必要があります。

私の環境(Plamo-4.02)では、

  • 「Hg Gothic B」→「FS Gothic」
  • 「MS ゴシック」→「FS Gothic」

としていますが、Plamo 以外だと IPA のフォントに置き換えた方がいいでしょう。
この設定でも不十分かも知れません。

  • 「FS Gothic」
  • 「FS Mincho」

あたりも置き換える必要があると思います。

# 「FS Pgothic」, 「FS Pmincho」もかな?


カーネルパッチには、TOWNS用(私の以外も)ソースコード全体(と添付ドキュメント)が含まれているはずです。今回の資料を起こすときには、2.4系のパッチから一部を抜き出しました。


発表資料のリンクについて


誤字や記述に誤りがあったことと、これらの資料の修正版を LILO のサーバーで公開する予定となったため、とりあえず公開を停止します。
誤りについては、「4月28日 LMS 2007-04 (神戸)の感想。1.4」にまとめます。

| | コメント (0) | トラックバック (0)

より以前の記事一覧