FreeBSD 4.3R を VAIO Z505F で使う時のめも

2001年9月6日更新

VAIO PCG-Z505F に入れていた FreeBSD 3.2-RELEASE + PAO3 を 4.3-RELEASE に入れ換えました。いい感じです。さよなら 3 系列。さよなら PAO。以下は備忘録。(内容の信憑性に関する責任は負いません。)

インストール前

●VAIO Z505 のモデムは FreeBSD や Linux では使えない

VAIO Z505F の内蔵モデムは "Rockwell HCF 56K Speakerphone PCI Modem" というもので、Windows 環境でしか動作しないゴリゴリのソフトウェアモデムです。従って FreeBSD や Linux では使うことができません。素直に PC card モデムを買いましょう。

ちなみに、無印の 505 シリーズや C1 シリーズのモデムはハードウェアモデムなので FreeBSD でも使えるらしいという情報もあります。ほんとかどうかは知らん。

●NeoMagic 256AV サウンドは FreeBSD 4.x から使えるようになったらしい

VAIO Z505F のサウンドシステムは NeoMagic 256AV(AC97) というもの(ビデオチップとサウンドチップが一体になっている?)で、FreeBSD 4.2R あたりから使えるようになりました。ドライバ名は pcm0 (a.k.a. "newpcm" driver) です。

ちなみに Linux では、このサウンドチップは kernel 2.2.13 以降で正式にサポートされています。

インストール時の注意

●メモリースティック専用スロット

VAIO Z505F には PC card スロットの上部に「メモリースティック専用スロット」というスロットがあります。何もせずに FreeBSD をインストールしようとすると、インストーラのカーネルはこのスロットを IDE HDD などと同じ "adなんとか" というデバイスとして認識しようとします。しかし、スロットにメモリースティックのメディアが入っていないためか、ここでインストールメニューがフリーズしてしまいます。

対策として、インストール前に BIOS 設定(電源投入後、"SONY" のロゴが出ている間に F2 キーを押すと BIOS 設定メニューが出る)でメモリースティック用スロットを "disable" にしておく必要があります。

もしかしたら、メモリースティックを買ってきて実際にスロットに挿入しといてやれば普通の IDE ストレージデバイスとして mount して使えるかもしれん。が、試していないので不明。チャレンジャー求む。

…と、今までは書いていたのですが、 4.3R からメモリースティックが使えるようになったそうです。いまだにメディアを持っていないので試してませんが。
参照:VAIO (PCG-C1VJ) でFreeBSD

のみならず、なんと VAIO C1 であの「目玉カメラ」も動くらしい。素晴らしい。

●PC card 接続 CD-ROM ドライブからのインストール

はできませんでした。ドライブは I/O DATA の CDP-AX24TP ってやつなんですが。(インストール完了後はちゃんと使えるようになります。)インターフェイスカードは CBIDE-IIA。ということで素直にフロッピーディスクからインストール。ソニーの純正 CD-ROM ドライブならできるかも。

●内蔵ネットワークインターフェイス

インストールを開始する時、Windows から「再起動」したり FreeBSD から「shutdown -r now」したりしてインストーラを起動すると、内蔵 LAN インターフェイスである fxp0 を検出した直後に

fxp0: SCB timeout

というメッセージが出続けて先へ進めなくなることがあります。なので、インストーラを起動する時は必ず電源を一度落としてから cold boot でやること。

インストール後の設定

●PC card コントローラ

4.2R 以降から PC card コントローラのデフォルト設定が変更されました。これに伴って Z505F の PC card コントローラ (Ricoh RL5C475 PCI-CardBus Bridge) の初期化がうまくできなくなってしまっています。デフォルトの状態のままではカードの挿抜時に固まってしまうので、

irq pcic0 11

という行を /boot/kernel.conf に追加する必要があります。

●PPP

PC card modem を挿すとシリアルデバイスとして sio4 が割り当てられます。従って、/etc/ppp/ppp.conf では "set device cuaa4" と指定する必要があります。が、インストール直後の設定ではシリアルデバイスは /dev/cuaa3 までしか存在しません。ので、以下の手順でデバイスファイルを作ります。

-------------------
% su
# cd /dev
# sh MAKEDEV cuaa4
-------------------

あるいはカーネルを再構築して sio2,sio3 をなくしてしまえば、PC card modem に sio2 が割り当てられるようになります。

●カーネル再構築でサウンドを使う

サウンドは GENERIC カーネルのままでは使えないので、使うためにはカーネルを再構築する必要があります。newpcm ドライバ用の設定は /usr/src/sys/i386/conf/LINT に含まれているので、これを参考に GENERIC カーネルの config file を編集して再構築に使います。この機会に使わないデバイスの設定なども削除しておくとぐー。config file の変更箇所は以下の通り。

-------------------------------------------------------------------
% diff GENERIC Z505
21,22c21,22
< cpu		I386_CPU
< cpu		I486_CPU
---
> #cpu		I386_CPU
> #cpu		I486_CPU
25c25,26
< ident		GENERIC
---
> #ident		GENERIC
> ident		Z505
69c70
< device		fd1	at fdc0 drive 1
---
> #device		fd1	at fdc0 drive 1
110,112c111,113
< device		asr		# DPT SmartRAID V, VI and Adaptec SCSI RAID
< device		dpt		# DPT Smartcache - See LINT for options!
< device		mly		# Mylex AcceleRAID/eXtremeRAID
---
> #device		asr		# DPT SmartRAID V, VI and Adaptec SCSI RAID
> #device		dpt		# DPT Smartcache - See LINT for options!
> #device		mly		# Mylex AcceleRAID/eXtremeRAID
115,119c116,120
< device		aac		# Adaptec FSA RAID, Dell PERC2/PERC3
< device		ida		# Compaq Smart RAID
< device		amr		# AMI MegaRAID
< device		mlx		# Mylex DAC960 family
< device		twe		# 3ware Escalade
---
> #device		aac		# Adaptec FSA RAID, Dell PERC2/PERC3
> #device		ida		# Compaq Smart RAID
> #device		amr		# AMI MegaRAID
> #device		mlx		# Mylex DAC960 family
> #device		twe		# 3ware Escalade
155,156c156,157
< device		sio2	at isa? disable port IO_COM3 irq 5
< device		sio3	at isa? disable port IO_COM4 irq 9
---
> #device		sio2	at isa? disable port IO_COM3 irq 5
> #device		sio3	at isa? disable port IO_COM4 irq 9
168c169
< device		de		# DEC/Intel DC21x4x (``Tulip'')
---
> #device		de		# DEC/Intel DC21x4x (``Tulip'')
170,172c171,173
< device		tx		# SMC 9432TX (83c170 ``EPIC'')
< device		vx		# 3Com 3c590, 3c595 (``Vortex'')
< device		wx		# Intel Gigabit Ethernet Card (``Wiseman'')
---
> #device		tx		# SMC 9432TX (83c170 ``EPIC'')
> #device		vx		# 3Com 3c590, 3c595 (``Vortex'')
> #device		wx		# Intel Gigabit Ethernet Card (``Wiseman'')
176,186c177,187
< device		miibus		# MII bus support
< device		dc		# DEC/Intel 21143 and various workalikes
< device		pcn		# AMD Am79C79x PCI 10/100 NICs
< device		rl		# RealTek 8129/8139
< device		sf		# Adaptec AIC-6915 (``Starfire'')
< device		sis		# Silicon Integrated Systems SiS 900/SiS 7016
< device		ste		# Sundance ST201 (D-Link DFE-550TX)
< device		tl		# Texas Instruments ThunderLAN
< device		vr		# VIA Rhine, Rhine II
< device		wb		# Winbond W89C840F
< device		xl		# 3Com 3c90x (``Boomerang'', ``Cyclone'')
---
> #device		miibus		# MII bus support
> #device		dc		# DEC/Intel 21143 and various workalikes
> #device		pcn		# AMD Am79C79x PCI 10/100 NICs
> #device		rl		# RealTek 8129/8139
> #device		sf		# Adaptec AIC-6915 (``Starfire'')
> #device		sis		# Silicon Integrated Systems SiS 900/SiS 7016
> #device		ste		# Sundance ST201 (D-Link DFE-550TX)
> #device		tl		# Texas Instruments ThunderLAN
> #device		vr		# VIA Rhine, Rhine II
> #device		wb		# Winbond W89C840F
> #device		xl		# 3Com 3c90x (``Boomerang'', ``Cyclone'')
189,192c190,193
< device		ed0	at isa? port 0x280 irq 10 iomem 0xd8000
< device		ex
< device		ep
< device		fe0	at isa? port 0x300
---
> #device		ed0	at isa? port 0x280 irq 10 iomem 0xd8000
> #device		ex
> #device		ep
> #device		fe0	at isa? port 0x300
196c197
< device		awi
---
> #device		awi
200c201
< device		wi
---
> #device		wi
206c207
< device		an
---
> #device		an
236,237c237,238
< device		ulpt		# Printer
< device		umass		# Disks/Mass storage - Requires scbus and da
---
> #device		ulpt		# Printer
> #device		umass		# Disks/Mass storage - Requires scbus and da
239c240
< device		uscanner	# Scanners
---
> #device		uscanner	# Scanners
241,243c242,263
< device		aue		# ADMtek USB ethernet
< device		cue		# CATC USB ethernet
< device		kue		# Kawasaki LSI USB ethernet
---
> #device		aue		# ADMtek USB ethernet
> #device		cue		# CATC USB ethernet
> #device		kue		# Kawasaki LSI USB ethernet
> 
> # The newpcm driver (use INSTEAD of snd0 and all VOXWARE drivers!).
> # Note that motherboard sound devices may require options PNPBIOS.
> #
> # Supported cards include:
> # Creative SoundBlaster ISA PnP/non-PnP
> # Supports ESS and Avance ISA chips as well.
> # Gravis UltraSound ISA PnP/non-PnP
> # Crystal Semiconductor CS461x/428x PCI
> # Neomagic 256AV (ac97)
> # Most of the more common ISA/PnP sb/mss/ess compatable cards.
> 
> # For non-pnp sound cards with no bridge drivers only:
> device		pcm0 at isa? irq 10 drq 1 flags 0x0
> #
> # For PnP/PCI sound cards
> device		pcm
-------------------------------------------------------------------

●APM

shutdown -p で電源を切れるようにするため、APM を有効にします。GENERIC カーネルには既に apm ドライバが含まれていますが、そのままでは disable されているので、/boot/kernel.conf

enable apm

という行を追加して起動時に有効化するようにします。

●PC card スマートメディアアダプタ

スマートメディア用の PC card アダプタは以下のように ad8 として認識されます。("8" かよっ!(三村))

-----------------------------------------------------------------------------------------------
pccard: card inserted, slot 0
Jun 17 19:05:22 lavender pccardd[109]: Card "       "("    ") [0.0] [(null)] has function ID 4 
ata4 at port 0x240-0x24f irq 3 slot 0 on pccard0
ad8: 31MB <> [500/8/16] at ata4-master BIOSPIO
Jun 17 19:05:27 lavender pccardd[109]: ata4: GENERIC Flash ATA / ATA HDD inserted.
-----------------------------------------------------------------------------------------------

ここでも /dev/ad8 というデバイスファイルはないので sh MAKEDEV ad8 して作ります。これで

---------------------------------
% mount -t msdos /dev/ad8s1 /mnt
---------------------------------

のようにすれば、Windows パーティションと同様に MS-DOS ファイルシステムとしてマウントできます。これでデジカメ画像もばっちり取り込めるなり。アンマウントは

--------------------
% umount /dev/ad8s1
--------------------

で。"device busy" とか言われたら umount -f で強制解除。

●Windows スライスのマウント

Tips でもなんでもないが、毎回やり方を忘れるので書いとかんと。

まず、マウントポイントを作る。

--------------------
# cd /
# mkdir /win
# chown nakano /win
--------------------

一般ユーザの権限で書き込めるように owner を自分にしておく。FreeBSD Q and A には chmod 777 する例が書いてあるけど、どうせユーザは自分しかいないマシンなので 777 にまでする必要はない。で、マウント。

--------------------------------------------
# mount -t msdos /dev/ad0s1 /win
--------------------------------------------

起動時に自動マウントさせるべく、/etc/fstab を編集。

--------------------------------------------------------
# Device		Mountpoint	FStype	Options		Dump	Pass#
/dev/ad0s2b		none		swap	sw		0	0
/dev/ad0s2a		/		ufs	rw		1	1
/dev/ad0s2f		/usr		ufs	rw		2	2
/dev/ad0s2e		/var		ufs	rw		2	2
/dev/ad0s1		/win		msdos	rw		0	0
proc			/proc		procfs	rw		0	0
--------------------------------------------------------

●Mule 2.3 から Emacs 20 へ

Mule 2.3 はもう時代遅れらしいので、みーはーな私は Emacs 20 を使うことにしました。つっても基本的には package をせっせとインストールするだけ。

ただ、Emacs 20 はそのままでは日本語入力に FreeWnn を使えないので、Wnn を使いたい場合には以下のいずれかの方法を選ぶ必要があります。

手法としては後者の方が美しいのですが、私の場合はこれに加えて omelet でキーボード入力を親指シフト化したいというわがままな条件があったため、前者の方法をとりました。(omelet は tamago 4 にまだ対応していない。)

というわけで package から ja-emcws-20.7 を入れる。依存関係で当然 emacs-20.7 とかも入れる。omelet-2.0 もコンパイルして入れる。終了。(かなり手抜き)

参考サイト:
GNU Emacs + Gnus + Mew の環境を作ろう Emacs 20 の定番サイトらしい
Mule-2.3 から Emacs-20 への移行について .emacs.el の書き方

●Rmail file を Mew 形式に変換する方法

Rmail を使ってる人なんてもう絶滅しつつあるのかもしれませんが…。一応備忘録として。

RMAIL ファイルを Mew 形式に変換する時、nkf の -m0(MIME decode しない)オプションを忘れないこと。nkf はデフォルトで勝手に MIME decode しやがるお節介仕様になっているので、MIME encode された日本語ヘッダを含むメイルを nkf -j すると、日本語ヘッダが生 JIS にされてしまう。これを Mew で inc すると当然化ける。ということで、正しい変換の仕方は下記の通り。

  1. RMAIL を system mailbox format(mail spool にたまっている時の形式)に戻す。
    % mule -batch -f batch-unrmail RMAIL
  2. 漢字コードを ISO-2022-JP に変換する。
    % nkf -j -m0 RMAIL.mail > RMAIL.mail.j
  3. Mew 形式でメイルを inbox に取り込む。
    % imget --src=local:/home/oresama/RMAIL.mail.j

●VFlib 対応 dvipsk のインストール

LaTeX や xdvi のインストールは package 入れるだけであまり引っかかる箇所はなし。

わしがはまったのは、VFlib 版の dvipsk (ja-dvipsk-vflib-5.78a.tgz) を入れて実際に .dvi を ps に変換しようとすると、kpathsea がフォントを探しに行ったまま見つからなくて止まってしまう、という症状。これは VFlib 版の dvipsk/dvi2ps で必要な virtual font の設定ツール (ja-vftool-1.2) が入っていないのが原因だった(dvipsk-vflib の依存パッケージにしておくべきだと思うが…)。vftool を入れてから、/usr/local/share/texmf/web2c/texmf.cnf

------------------------------------------------------------------------------
VFFONTS = .:$TEXMF/fonts//vf//
TFMFONTS = .:{$TEXMF/fonts:$VARTEXFONTS}//tfm//
------------------------------------------------------------------------------

という記述を

------------------------------------------------------------------------------
VFFONTS = .:/usr/local/share/fonts/vf-a2bk:$TEXMF/fonts//vf//
TFMFONTS = .:/usr/local/share/fonts/vf-a2bk:{$TEXMF/fonts:$VARTEXFONTS}//tfm//
------------------------------------------------------------------------------

に直し、ついでに /usr/local/share/texmf/dvips/base/psfonts.map

-------------------------
min     microsoft-mincho
goth    microsoft-gothic
-------------------------

という行を追加して解決。

●PostScript ファイルを印刷すると印刷位置がずれちゃうYO! を直す

margins.ps とか名前を付けたファイルを用意して、中に

-----------------------------------------------
<< /PageOffset [-22.0 -36.0] >> setpagedevice
-----------------------------------------------

と書く。[-22.0 -36.0] が印刷位置をずらしたい量。この例では左に 22.0pt、上に 36.0pt ずれる (1pt = 1/72 inch)。で、印刷したい PS file がプリンタに送られる前にまず margins.ps を処理させるようにする。毎回 cat margins.ps hoge.ps | lpr とかやってもいいけど超超超めんどくさいので、gs の設定用 PS file が置いてあるディレクトリ(わしの場合は /usr/local/share/ghostscript/5.50vflib/)に margins.ps を置いておき、gs のフィルタスクリプトに

---------------------------------------------------------------------------------
#!/bin/sh
/usr/local/bin/gs -q -dNOPAUSE -sDEVICE=bj10v -sOutputFile=- margins.ps - quit.ps
---------------------------------------------------------------------------------

のように書いておけばOK。


戻る


Nakano Taro (taro@hauN.org)