2005-05-18
_ Mac OS X と pkgsrc
起動時に /Volumes/NetBSD を mount するように設定する。
起動時の処理を「 起動項目 」というらしい。起動項目は /Library/StartupItems/ 以下に書く。
kahori:/Volumes/NetBSD/pkgsrc/bootstrap root# mkdir -p /Library/StartupItems/pkgsrcimg kahori:/Volumes/NetBSD/pkgsrc/bootstrap root# cd /Library/StartupItems/pkgsrcimg kahori:/Library/StartupItems rin$ ls -l total 0 drwxr-xr-x 4 root wheel 136 18 May 13:35 pkgsrcimg
ディレクトリ以下には最低限 pkgsrcimg と StartupParameters.plist が必要。
pkgsrcimg はディレクトリ /Library/StartupItems/pkgsrcimg と同じ名前にする。
StartupParameters.plist は決め打ちの名前らしい。
kahori:/Library/StartupItems rin$ cd pkgsrcimg/ kahori:/Library/StartupItems/pkgsrcimg rin$ ls -l total 16 -rw-r--r-- 1 root wheel 110 18 May 13:35 StartupParameters.plist -rwxr-xr-x 1 root wheel 144 18 May 13:34 pkgsrcimg
設定のスクリプト。
kahori:/Library/StartupItems/pkgsrcimg rin$ cat pkgsrcimg #!/bin/sh . /etc/rc.common /usr/bin/hdiutil mount /usr/img/NetBSD.dmg
/etc/rc.common は不要なので削除してもよい。SystemStarter が /Library/StartupItems を起動するときに start stop restart を引数にして起動するので引数を処理するときにうれしい関数が書いてある。BSD でいう /etc/rc.subr ( だっけ )と同じ役割。ここでは引数は処理しないので /etc/rc.common は無くてもいい。
属性リスト。
Provides や Requires は BSD の rcorder の設定と意味は同じ。
「 Requires = ("Disks"); 」が重要。これが無くてずいぶん悩んだ。Disks はローカルファイルシステムを mount してくれる。「 Requires = ("Disks"); 」を書かないと Disks の前に pkgsrcimg が実行されてしまう。Disks 実行前に /Volumes/NetBSD を mount しても Disks 実行後に /Volumes/NetBSD が unmount されてしまうようだ。
kahori:/Library/StartupItems/pkgsrcimg rin$ cat StartupParameters.plist { Description = "NetBSD pkgsrc image"; Provides = ("pkgsrc"); Requires = ("Disks"); }
以上のように書いておいて起動すると mount はこうなる。
kahori:/Library/StartupItems/pkgsrcimg rin$ mount /dev/disk0s3 on / (local, journaled) devfs on /dev (local) fdesc on /dev (union) <volfs> on /.vol automount -nsl [296] on /Network (automounted) automount -fstab [316] on /automount/Servers (automounted) automount -static [316] on /automount/static (automounted) /dev/disk1s2 on /Volumes/NetBSD (asynchronous, local, nodev, nosuid)
参考
- Porting UNIX/Linux Applications to Mac OS X: Boot Sequence
- System Startup Programming Topics: Creating a Startup Item
- NetBSD Initialization and Services Control rcorder と rc スクリプトの役割
- rcorder - NetBSD Manual Pages
- A Daemon-Writer's Guide To NetBSD's Rc.d System
- SystemStarter起動項目(StartupItem)バンドル作成HOWTO
_ 今日のロマサガ
グレートピット探索の続き。
せっかくだからヲレはアディリスと戦うぜ。
負けたぜ。
大人しくお使いを頼まれるぜ。
スカーブ山のタイニィフェザーから疾風の靴をもらってこい と。
あれ。
お使いがループした。
寄り道してアサシンギルド攻略。
途中で休憩するためにタルミッタに戻って宿で寝たら別のイベントが発生した。
クリアしたらマラル湖の水竜行きイベントが発生。
アサシンギルド再開。
ザコ敵が強いってば。
連携が決まらないとかなりしんどい。
ボスを倒したあとに出てきたのはミニオンか。
バファル帝国兵のクラスにすると連携を決めやすそうだけど、はてさて。
_ イカリソース
( google ニュース )
詐欺がどうのこうのというアレ。
よく読んでないというかさっぱり読んでないので全然知らないのだけど。
読売新聞の記事を眺めていたら
イカリソース
という文字列があった。
「 イカ 」「 リソース 」で形態素解析してしまって頭の中が「 イカの資源? なんだって? 」となってしまった。
そんな眠れない夜。