FreeBSD

Panasonic CF-J10T に入れる

インストール

用意するもの

本体はビックカメラ新宿西口店、メモリは秋葉原で購入。 合わせても 10 万円しない‥‥安いよなぁ。 CF-R3E は 20 万以上したから、7 年で値段は半分、性能は‥‥ 4 倍くらいかな?

まず、FreeBSD をインストールするための空き領域を作る。

Windows のセットアップをひととおりして、リカバリディスクを作ってから、管理ツール→ディスクの管理で C: ドライブを縮める。

30GB くらいまでは小さくできると表示されたけど、Windows の必要量がわからないので、とりあえず Windows に 120GB、空きが 100GB になるように分けてみた。

さて FreeBSD のインストーラを起動してみよう。 せっかくメモリが 8GB あるので、i386 でなく amd64 にする。

FreeBSD-8.2-RELEASE-amd64-memstick.img を持ってきて dd(1) で USB メモリに書きこむ。 ファイルサイズが 1GB くらいあるので、今回は手持ちの 4GB のものを使った。

J10 に挿してブート‥‥ あれ? ハードディスクが優先されてしまう。

BIOS の設定は‥‥ USB フロッピーはハードディスクよりも優先になってるけど、 USB 光学ドライブ、LAN、USB ハードディスクは下になってる。 USB メモリってのは無さそう。 そのかわり、「デバイスを指定してブート」ってのがある。 Realtek PXE と内蔵のハードディスク、そして USB メモリが見えてる。 これを使えばいいんだな。

ようやくインストーラが起動。

内蔵のハードディスクは、最近多い ad4 になってる。 fdisk スライスはすでに 3 つが使用済み。

取扱説明書によると、1 つめはリカバリ用の領域、2 つめは Windows の修復用の領域、3 つめが Windows の C: ドライブということらしい。 4 つめが空き領域になっているので、ここに入れるしかない。

/ と swap に 2GB くらいずつあてておいて、あとは全部 /usr かな。

デバイスの認識

有線 LAN は re(4)、無線 LAN は iwn(4) であっさり認識した。

いっぽう、SD カードスロットは sdhci(4) は認識するけどカードを刺しても反応しないので使えないみたい。

acpi_panasonic(4) もうまく動いてないなぁ‥‥

X を使えるようにする

まず VESA ドライバを試す

とりあえず、手っ取り早く動きそうな xf86-video-vesa を試す。

諸々 ports からインストールして xorg.conf 作って xinit(1) してみると‥‥ 動くことは動くけど、1024x768 の画面が横いっぱいに引き伸ばされて表示される。 Modes に "1366x768" とか書いてみても無視される。 BIOS のVESA モードテーブルに 1366x768 が入っていないのが原因みたい。

915resolution を quick hack して使ってみたけど、書き変わってくれない。

ダメ元でパナソニックのサポートに BIOS の修正をお願いしてみたが、「やりません」と想定通りの残念なお返事。

どうやっても VESA ドライバでは 1366x768 の表示は無理のようだ。

xf86-video-intel

[2012-06-13 追記] ここに書かれていることは購入当時 (2011-12) の情報です。 現在は OS 側のパッチが HEAD と RELENG_9 に取り込まれ、ports tree もそれに対応するように変更されましたので、/etc/make.conf に WITH_NEW_XORG=yes を追加して X を作りなおすだけで良くなっています。

現在の FreeBSD の ports に入っている intel ドライバは、カーネル側のサポートが追いついてなくて古いまま(2.7 または 2.9)になっているらしく、J10T の内蔵ビデオ (SandyBrigde) は認識されない。

で、linux の人たちはどうしているのか調べると、Intel がドライバを出していて、SandyBridge も動いているらしい。 単に xf86-video-intel の新しいバージョンという感じではなく、linux カーネルとセットでの配布のように見えるなぁ‥‥

どうやら、FreeBSD は KMS とかいうののサポートが入っていないので新しいドライバが動かない、ということらしい。

"FreeBSD KMS" あたりで検索すると‥‥あった! 作業してる人がいる!

要約すると、

ということらしい(※斜め読みなので誤解しているかもしれません)

で、使うためには、

みたいな手順が必要になるようだ。

やってみたこと:

でやっと 1366x768 の表示ができた。 (2 週間もかかった‥‥‥)

とりあえず大きな不具合は無さそう。

1366x768が表示された様子
1366x768 で X が動いた

ディスクまわり

X を動かすために 10-CURRENT の世界に来てしまったので、9.x 以降のいろんな変更や新機能もいっしょに付いてきた。

デバイス名

8.x までは ad だったのが、9 以降は CAM の配下になって ada になるらしい。 番号も若い順に 0 から振り直されるみたい。

インストールしたときは ad4s4 だったディスクが、10-CURRENT では ada0s4 に変わった。

SU+J

8.2-RELEASE からインストールしたので、どのパーティションも SU+J になっていない。 こんな便利な新機能を使わない手はないのでセットする。

シングルユーザーモードでブートして

# tunefs -n enable -j enable /dev/ada0s4a
# tunefs -j enable /dev/ada0s4d

という感じ。


問題点

acpi_panasonic(4) が正しく動かない

sysctl(8) で書き込んでも変わらないので、そもそもうまく扱えてない感じ。

ただ、/etc/devd/ にこんなファイルを置くと音量は変わるので、キーイベントは取れてるみたい。

[2012-01-05 追記] acpi_video(4) を読み込むとバックライトの明るさを変えられることが判った。 詳しくは液晶バックライトについてを参照。

内蔵スピーカーから音が出ない

まったく音が出ない。 ヘッドホンをつなぐとそっちからは聞こえるから、必要なときはヘッドホンをつなぐことにした。

コンソールでビープ音が鳴らない

コンソールで ^G とか叩いても何の音も出ない。 ヘッドホンでも聞こえない。

xbiff(1) やらのためには出てくれるほうがいいんだけどなぁ‥‥

X サーバが encodings.dir を見つけてくれない

これは Intel GPU の件とは関係無いような気もする。

X server がなぜか /usr/local/lib/X11/fonts/encocdings/encodings.dir を見てくれず、/usr/local/share/fonts/X11/encodings/encodings.dir (存在しない)を見に行ってしまう。 このせいで、一部のアプリケーションで fontset まわりがコケる。

とりあえず symlink でごまかした。

X を終了するとバックライトが消えてしまい、何も見えなくなる

X が動いていれば普段は問題ないので、放置。