さて、ここしばらく FreeBSD 5.3-RELEASE を IBM ThinkPad X24 (関係ない…いや、関係あるけど、レノボになってしまったらどうしよう…) に入れて、環境設定を行っていました。 完璧とはとうてい言えないものの、そこそこ使える環境とはなったので、 ちょっとノウハウをまとめておきましょう。
X.Org 6.7.0 は一応動きますが、xorgcfg で謎の動作がありました。 何をしたのか忘れましたが、現在はちゃんと動いています。 FreeBSD 4.10+XFree86 4.4.0 では正常動作していた DRI はなぜか動作しません。
デスクトップ環境としては現在、Gnome 2.8.0 を入れています。
サウンドは /boot/loader.conf に以下の行を追加するだけで動作します。
snd_ich_load="YES"
内蔵モデムは Lucent Winmodem 互換のため、 ports/comms/ltmdm をインストールすれば動作します。 一応、/etc/rc.conf には次のように追加します。
ltmdm_enable="YES"
これは通常の fxp ドライバで fxp0 と認識されます。
ACPI はさしあたって S3 (サスペンド) が動きます。 S4 (ハイバネ) は s4bios が 0 ですので動きません。 acpiconf -s 3 で S3 にすると、 バックライトが点灯したままサスペンドしてしまいます。 一応、蓋を閉じればバックライトは消えている感じですが…。
acpi_video の DPMS パッチを当てれば、 acpiconf -s 3 でも消えるようになります (ただし、 どうせ 5.3 では動かない DRI や AGP サポートを有効化していると、 この DPMS パッチが動きません)。
ということで、カーネルの config ファイルから以下の行をコメントアウトしました。
device agp # support several AGP chipsets
DPMS パッチを動かすために、さらに以下の設定を行っています。 まずは /boot/loader.conf に次の行を入れています。
acpi_video_load="YES"
さらに /etc/sysctl.conf に以下の行を追加しています。
hw.acpi.reset_video=0 hw.syscons.sc_no_suspend_vtswitch=1 hw.pci.do_powerstate=1 hw.acpi.lid_switch_state=S3
わりと安定して動いています。 APM の時にたまにあった、 サスペンドから復帰後にパニックという現象は減ったように思いますが、 一方でサスペンドから復帰後に X やコンソールの画面が乱れる現象がたまに生じます。 正常再起動は効くので、パニックよりはましです。
Buffalo の WLI-CB-AG24 が、 Windows の NDIS ドライバを利用するためのラッパーである ndis ドライバで動作します。 ndis の使い方は man ndis を参照してください。
# cd # fetch http://www2.melcoinc.co.jp/pub/lan/wdrv_600.exe wdrv_600.exe 100% of 11 MB 845 kBps 00m00s # lha x wdrv_600.exe ...(略)... # cd wdrv_600/cbg54/ # ndiscvt -s bcmwl5.sys -i netcbg54.inf -o ndis_driver_data.h # cp ndis_driver_data.h /usr/src/sys/modules/if_ndis/ # cd /usr/src/sys/modules/if_ndis/ # make ...(略)... # make install install -o root -g wheel -m 555 if_ndis.ko /boot/kernel kldxref /boot/kernel
これを起動時に読み込ませるために、 以下の設定を /boot/loader.conf に追加しました。
if_ndis_load="YES"
/etc/rc.conf には以下のように記述します。
removable_interfaces="ndis0" ifconfig_ndis0="DHCP"
WEP などのオプションを指定する際には、 以下のように /etc/start_if.ndis0 に記述します。 11a と 11b/g は SSID の設定で自動認識されます。
ifconfig ndis0 up ssid XXXXXXXX wepkey XXXXXXXXXXXXX wepmode on
この場合の ifconfig はこんな感じ。
% ifconfig ndis0 ndis0: flags=8843mtu 1500 inet6 fe80::20d:bXX:XXXX:XXXX%ndis0 prefixlen 64 scopeid 0x5 inet 192.168.X.X netmask 0xffffff00 broadcast 192.168.X.255 ether 00:0d:0b:XX:XX:XX media: IEEE 802.11 Wireless Ethernet autoselect status: associated ssid XXXXXXXXX 1:XXXXXXXXXX channel 34 authmode OPEN powersavemode OFF powersavesleep 100 rtsthreshold 2312 protmode CTS wepmode MIXED weptxkey 1 wepkey 1:104-bit
この状況では、たくさん通信を ndis0 経由で行うと、 "no buffer space available" のエラーが ping などからも返されるようになって、 通信ができなくなる場合があります (カードを抜いて挿し直せば再び動くのですが…)。 どうもこれは mbuf を膨大に増やしておくと軽減されるようなので、 今はこういうひどい記述を /boot/loader.conf に入れています。
kern.ipc.nmbclusters="102400"
/etc/sysctl.conf には次の行を追加しています。
kern.ipc.maxsockbuf=3840000
だいたいこんな感じですかね?
vmware2 は既に FreeBSD 5.X ではサポートモジュールが KSE 未対応のためにコンパイル不能です。 したがって vmware3 になるわけですが、なぜかフルスクリーンが動かないので、 800x600 程度の解像度で我慢です。 でもマウスカーソルの in/out が vmware2 よりスムーズなので、 あまり負担にはなりません。 Autofit にすればそこそこ使えます。
あと、vmware port の FreeBSD 関係ドキュメントにも書いてありますが、 /etc/sysctl.conf に次の行を書き加えないと正常に起動できません。
kern.ipc.shm_allow_removed=1
samba を使ったままいろいろ動き回る人間としては、 vmware のネットワークはブリッジよりも host-only の方が便利だったりします。 なので、古典的な host-only で vmnet1 を使い、 /etc/rc.conf と /etc/pf.conf で pf を使って NAT 設定を行います。 まずは /etc/rc.conf の追加分。
gateway_enable="YES" pf_enable="YES"
あとは /etc/pf.conf の設定です。ここで ext_if の処理を自動化できると、 さらにいいんだけどね…(有線・無線切り替え)。 今後さらに pf の使い方を調べて解決法を探ります。 pf は設定がとても簡単でしかも高機能なのが嬉しい。
ext_if="fxp0" #ext_if="ndis0" nat on $ext_if inet from !(ext_if) to any -> ($ext_if)
まあこのままでも、/etc/pf.conf の ext_if のコメントを調整して、 次のように実行すれば切り替わるから別にいいんだけど。
# vi /etc/pf.conf ...(編集)... # /etc/rc.d/pf restart No ALTQ support in kernel ALTQ related functions disabled Disabling pf. No ALTQ support in kernel ALTQ related functions disabled pf disabled Enabling pf. No ALTQ support in kernel ALTQ related functions disabled No ALTQ support in kernel ALTQ related functions disabled No ALTQ support in kernel ALTQ related functions disabled pf enabled
まあ、今のところこんな感じで落ち着いた環境となりつつあります。 一応日常作業上はあまり問題はありません (ACPI サスペンド時に USB が死ぬという噂は聞きますが、 私はほとんどラップトップでは USB を使わないので…)。
またノウハウが分かってくれば後日…という感じかな?