対象のOSはFreeBSD 4.2-RELEASEとします。
FreeBSD 4.3-RELEASEについての情報を付加しました。 とくに4.3-RELEASEから変更がないところにはそのままです。
FreeBSD 5-current (2001-11あたりのcurrent) の情報を付加しました。
しばらくしたら、5-current中心の内容にアップデートしたいですね。
C1VJ以外のC1系のCrusoeマシンなら結構使い回せるかもしれません。
まぁ、普通にインストールすればいいんですが、Windowsのパーティションを 残す場合にはfdisk画面でのディスクジオメトリをきちんとメモしておいたほうがよいでしょう。
インストールメディアはやっぱりPCカード経由のネットワークインストールが楽でしょうね。あとはMS-DOS領域からのインストールかな。
PCカードを認識させるにはIRQを11にしてI/Oアドレスを0xd4000にすればOKです。
/etc/rc.confにはこんな感じで設定すればOKです。
pccard_enable="YES" pccardd_flabs=" -i 11" pccard_mem="0xd4000"
インストールをPCカード経由で行う場合には、 インストーラに上の値を設定してやればうまくいきます。
FreeBSD4.3-Releaseで動いたカード。
C1VJに搭載されているグラフィックチップはATI Rage Mobility M1です。残念ながら、FreeBSD 4.2-ReleaseでインストールされるXFree86 3.3.6のMach64ドライバではうまく表示できません。
Takaya KinjoさんのWebページにXFree86 3.3.6をC1VJで使うためのパッチ (XF86_Mach64_C1VJ.diff) とXF86Configが公開されているので、このパッチを当ててXサーバを再コンパイルして、上書きコピーします。Xサーバのコンパイルは時間がかかるので、 コンパイル済バイナリを使う方が楽でしょう。
ダウンロード: XF86_Mach64コンパイル済バイナリ
このバイナリは4.3-RELEASEでも使えます。
ダウンロード: XF86Config
XFree86 4.0.3ではパッチ無しで動くみたいです。 これからはXFree86 4系ですかね。
5-currentなあなたはXFree86も4系を使いましょう。
portsからXFree86 4.1.0を入れればそれでオッケー。
XF86ConfigもWebに転がっているのを持ってくりゃいいです。
ちなみに、私も拾って来たやつをちょっとだけ変えて使ってます。
captureについては本家にports (ports/graphics/picturebook) が登場していますので、そちらを使ってください。この章は古い内容です (4.3-RELEASEまでは正常動作確認済)。
5-currentはportsからインストールしてそのまま使えました。
Andrew Tridgellさんが内蔵CCDカメラを使うためのソフトウェアを公開されています。ただし、Linux用なのでFreeBSDで動かすためにはメーリングリストbsd-nomadsに投稿された高橋さんの記事 ([bsd-nomads:14772]) に添付されているパッチを当てる必要があります。
また、このパッチを当ててもaviファイルがうまく作れないので、 このパッチ (picturebook_fbsd3.diff) をあてましょう。
パッチを当てたらmakeすればおしまい。 rootで適当なディレクトリにインストールしておきましょう。
まずxhostしてからrootで使ってみます。 最初は画面に表示して見るコマンドから。
% xhost + % su Password: # capture -s
静止画を取るには次のようにします。
# capture -o photo1.jpg
次に、動画を撮ってみましょう (次の例は5秒間のキャプチャを行っています)。
# capture -V 5 -o movie1.avi
キャプチャしたファイルを再生するにはxanim (/usr/ports/graphics/xanim) を使います。
pcmデバイスを追加したカーネルを作成します。
# cd /usr/src/sys/i386/conf # cp GENERIC C1VJ # vi C1VJ ... ``device pcm'' という行をファイルの最後に追加する # config C1VJ # cd ../../compile/C1VJ # make depend # make install
リブートしてデバイスが認識されているのを確認しましょう。 dmesgを打って確認するとこんな感じ。
pcm0: <Yamaha DS-1E (YMF754)> mem 0xfc108000-0xfc10ffff irq 9 at device 9.0 on pci0
次にサウンドデバイスを作成します。
# cd /dev # ./MAKEDEV snd0
あとは、xmmsとかmpg123でMP3ファイルでも再生してみましょう。
4.3-RELEASEからこの章で紹介しているパッチが既に吸収されています。 したがって、パッチを当てずにmountできます。 mountの方法はこの章で紹介している方法と同じです。
インストール直後からメモリスティックのスロットは USB接続で認識されるのであっさり使えると思っていたのですが、 daドライバ (/usr/src/sys/cam/scsi/scsi_da.c) に寺本さんの作成した パッチ をあてる必要があります。このパッチは5-current用ですが、 4.2-Releaseでも同じ箇所にMSC-U01用の情報を追加してやればうまく動きました 。
当然ですが、5-currentでは何もしないで認識します。
パッチ後のscsi_da.cscsi_da.c
パッチを当てたらカーネルの再構築を行いリブートしましょう。
再起動後、いよいよメモリスティックをマウントしてみましょう。
dmesgしてメモリスティックがどう認識されているかチェックします。
da0 at umass-sim0 bus 0 target 0 lun 0 da0: < Sony MSC-U01 1.00> Removable Direct Access SCSI-0 device da0: 20KB/s transfers da0: 15MB (31680 512 byte sectors: 2H 9S/T 80C)
ということで、da0で認識されているのがわかります。 デバイス名がわかればマウントは普通のmountの方法と同じです。
# camcontrol rescan 0 # mount -t msdos /dev/da0s1 /mnt
ACアダプタが使える状況ではたいして気にならないのですが、 外出先などバッテリ駆動時は少しでも長く動作させたいと思うのが人情です。
Windows環境ならばCrusoeのLongRunやACPIなどが利用できるので、 そこそこ電池は持つようです (あんまりWindowsで使わないので、 人から聞いた情報ですが)。
FreeBSD 4.2ではACPIは利用できませんし、C1VJはAPMも持っていないそうです。 ということで、かなり悲しくなってしまうのですが、 先の内蔵CCDカメラを使うためのcaptureプログラムに、 液晶ディスプレイのバックライト輝度を変更するプログラム (setbrightness.c) と、バッテリ状態を取得するプログラム (vaiobat.c) が含まれています。
5-currentでportsからcaptureをインストールした場合は、すでに二つのコマン ドはインストール済です。
上で紹介したとおりcapture.tgzを展開してからパッチを当てます。
パッチは次のとおりです。中身はほとんど同じだったりします。
実際の作業イメージは次のとおりです。
% tar xvzf capture.tgz % patch < setbrightness.diff % patch < vaiobat.diff % cd picturebook % gcc -o setbrightness setbrightness.c % gcc -o vaiobat vaiobat.c
vaiobatコマンドはそのまま実行すれば、電池の利用状況を報告してくれます。 vaiobatコマンドはrootでなければ実行できないので注意してください。 実行例を次に示します。
c1vj# ./vaiobat Battery 1800/1800 100.00% AC BAT1 B1RC 100 B1AB 1800 B1RT 0 B1VO 12517 B1DC 1800 B1LF 1800 B1DV 11100 B1DL 180 A1TP 12800 A1AT 1870 A1PT 19968 A1CT 23040 A2TP 0 A2AT 1792 A2PT 19968 A2CT 23040 c1vj#
setbrightnessコマンドは0から255の間でバックライトの明るさを指定できます。 0が一番暗く、255が一番明るい状態になります。
たとえば、一番暗くするためには次のように実行します。
c1vj# ./setbrightness 0 currently fffb c1vj#
一番明るくするためには次のように実行します。
c1vj# ./setbrightness 255 currently ff00 c1vj#
バックライトの輝度の設定は保存されないようです。 つまり、再起動するとリセットされてしまうので、 起動時にsetbrightnessを実行するように設定するか、 必要な時に手動で実行することになります。
この章は正確ではありませんし、信用しないでください。 もう少し詳細なデータをとったので、 そのデータに更新されるまではこのデータはとりあえず置いてあるものです (2001-05-14)。
setbrightnessコマンドとvaibatコマンドによってバックライトの輝度の変更と、 バッテリ情報の取得ができるようになりました。
そこで、輝度を最低にした場合と輝度を最高にした場合でバッテリの消費量が どの程度違うのか測定しました。
ACアダプタを接続し、バッテリがフル充電された状態でACアダプタを抜き、 10分経った時点でのバッテリ状態を調査した。
バックライトがバッテリに与える影響だけを見るため、 クライアントからの操作は一切行わない。
測定時には
が動作している状態である。また、いくつかのプロセス (kernel, cannaserver, moused, getty, pccardd, syslogなど) が動作している。
測定結果は次のとおり。
輝度0の場合
バッテリ残量 | 使用率 | |
---|---|---|
実験前 | 1800 | 0% |
10分後 | 1629 | 9.56% |
輝度255の場合
バッテリ残量 | 使用率 | |
---|---|---|
実験前 | 1800 | 0% |
10分後 | 1554 | 13.67% |
バッテリの使用量から測定条件下でのバッテリ駆動時間が算出できる。
輝度 | 駆動時間 |
0 | 105分 |
255 | 73分 |
したがって、バックライトの輝度を最低にすると、 30分以上長く駆動させることができる。
測定回数は一回だけなのでデータとしては信憑性に欠けるのですが、 バックライトの輝度を変えるだけでこれだけ大きな差 (30分違うのは大きい) になるとは意外でした。 バッテリ駆動時にはバックライトの設定を変更すべきかもしれません。
ただし、これはあくまでも測定を目的とした条件下での結果です。 実際の使用時にはさらに多くのプログラムが動作するので、 駆動時間はさらに少なくなるといえるでしょう。
服部さんがLongRunのドライバを公開されました (2001-4-7)。
http://home.att.ne.jp/delta/athlete/longrun/longrun.htmlその後は順調に、ソースツリーに統合されFreeBSD4.4および 5-currentでは何もしなくてもすぐにLongRunが使えます。
4.4-Release, 5-currentではhw.crusoeというMIBが追加されています。 sysctlコマンドでLongRunのステータスを見ることができます。
ためしにsysctl hw.crusoeを実行すると次のようになります。
# sysctl hw.crusoe hw.crusoe.longrun: 2 hw.crusoe.frequency: 400 hw.crusoe.voltage: 1400 hw.crusoe.percentage: 66
値を変更するにはsysctl -wを使って次のようにします。
# sysctl -w hw.crusoe.longrun=3
FreeBSD 4.3以前の人は用意されてportsを使いましょう。
sysctl版とioctl版がありますが、 ソースツリーにマージされたのがsysctl版なので、 そちらを使うほうがいいかもしれません。
bsd-nomadsメーリングリストを漁ると、 GUIでLongRunの状態を表示するなどの周辺ツールの話題が盛り上がりまくってます。
また、、C1VJではWindowsで設定したLongRunの設定情報がFreeBSD でも引き継がれているようです。
ただし、それはWindowsから再起動をかけたときだけで、 電源断の状態からWindowsを起動せずにFreeBSDを直接起動した場合には、 パフォーマンスモードで動作しているようです。
FreeBSD 4.Xでは残念ですが何も使えません。
5-currentではACPIサポートが進化を遂げています。 でも、C1VJではサスペンドもレジュームもできないみたいです。
しかし、蓋を閉じると液晶のバックライトが消えるようになりました!!
acpiconfでACPIの状態をいじれますが、 いきなり電源が切れたりするのであまりやらないほうが良いでしょう (今後に期待!)。
dmesgの結果 (古いので参考になりません)
$Lastupdate: Mon Mar 18 02:29:50 2002 $