top page > PC unix > here

FreeBSD/amd64 8.4 on Endeavor NP25S


概要

Endeavor NP25S (EPSON) に FreeBSD/amd64 8.4 を install しました. ここでは主に以下の点に注目して,その記録を提示します.

  1. install の概要.
  2. Wnn 7 を 64 bit OS に対応させる.
  3. X Window System X.Org 7.5 と intel, vesa driver について.

目次

1. まえがき
2. install
3. firefox
4. Wnn7
5. X Window System

1. まえがき

Endeavor NP25S (EPSON) の CPU である intel ATOM D525 は EM64T (Extended Memory 64-bit Technology) に対応しているので,64 bit OS である FreeBSD/amd64 が使えます. ただ,binary の状態で販売されている Wnn7 がその環境で使えないようでしたので,これまでは FreeBSD/i386 を使って来ました. 最近,amd64 の環境にて Wnn7 を使えるようにするための手順が公開されているのを見つけたので,試してみることにしました.

FreeBSD 9 系と新しい X Window System に関しては,そのうち (4) として報告する予定です. 現時点で未着手なので,時期については何も言えませんが.

2. install

先ず回り道をしてしまった話からです. 以前,FreeBSD 9.1 を install しかけて dual boot 等でつかえて挫折しました. 今回,その HDD に FreeBSD/amd64 8.4 を install しようとしたのですが,最後の Commit の段階で

Unable to find device node for /dev/ad0s1b in /dev

と言われて失敗します.

この原因は,HDD の使い方が FreeBSD 8 までの sysinstall と FreeBSD 9 からの bsdinstall とで違うことでした.[1] 前者は HDD を MBR (Master Boot Record) に,後者は GPT (GUID Partition Table) に初期化します.[2] それに加えて,sysinstall では GPT で初期化された HDD を GPT として認識することも MBR として初期化することもできない (らしい) ので,エラーから抜け出せません.

そこで Ubuntu Linux 10.10 の Live CD を起動し,「端末」を立ち上げて次のようにしました.[3]

$ sudo fdisk -l
(ここで,この HDD が GPT で初期化されていることが表示される.)

$ sudo dd if=/dev/zero of=/dev/sda bs=512   ← fdisk で表示された目的の HDD のデバイス名にする.

$ sudo fdisk -l
(dd がうまく行けば,先に表示された GPT 云々が表示されなくなる.)

320GB の HDD に対して dd が終わるのに 4 時間近くかかりました.[4][5]

[1] このエラーは,install の際に fdiskdisklabel においてメニューにない w (write) を実行しても生じます. エラー・メッセージで検索をすると,その情報と GPT 関連の情報の両方が見つかるので,区別が必要です.

[2] GUID : Globally Unique Identifier のこと.

[3] 比較的新しい Ubuntu の Live CD には「端末」がないので要注意です.

[4] GPT に関連する部分を狙い撃ちすることができれば,あっと言う間に終わると思います.
   それと,GPT から MBR に変換する方法はいくつもありますので,手持ちの環境の中から楽なものを選べば良いでしょう.

[5] この HDD は元々 NP25S に内蔵されていたもので,AFD (Advanced Format Drive) です. partition や slice は「切れの良いところ」にしたつもりなのですが,FreeBSD/amd64 8.4 から使うと,もたつき感があります. (今まで使っていた非 AFD の HDD + FreeBSD/i386 8.2 との比較で.)
→ HDD 本体には "AFD" と書かれておりましたが,本来の用語としては AFT (Advanced Format Technology) のようです. 先述の「もたつき感」も気のせいではないようです. 検索したら FreeBSD における対策が見つかったので試してみますが,install をやり直すことになるのでキツいです.

install の手順は (当然ながら) i386 と同じです. ただし Distribution において amd64 特有の選択肢 lib32 があります. これは Wnn7 にとって必要なので導入しました. これは /usr/lib32/ に展開されます.

FreeBSD の boot log の一部を提示します.

FreeBSD 8.4-RELEASE #0 r251259: Sun Jun  2 21:26:57 UTC 2013
    root@bake.isc.freebsd.org:/usr/obj/usr/src/sys/GENERIC amd64

gcc ではポインターのサイズが 8 byte (= 64 bit) になっており, 64 bit OS であることを実感できます. ちなみに long が 8 byte, long double が 16 byte になっております.

3. firefox

現在の ports においては,firefox は version 20.0 です. これを make しようとすると,依存関係ゆえに gcc4.6.3 (ports/lang/gcc) を導入します.[1] (compile だけでなく library もこれを使っているので,packages から導入しても同じことでしょう.)

より新しい gcc を使いたい場合,firefoxmake に先行して例えば ports/lang/gcc48 を導入しておけば,gcc 4.6.3 は導入されずにこちらが使われます. ただし,現時点では gcc 4.9 (ports/lang/gcc49) はそのようになっておりません. これを使いたいならば,ports/Mk/bsd.gcc.mk を次のように修正します.

--- bsd.gcc.mk.orig     2013-06-03 07:51:42.000000000 +0900
+++ bsd.gcc.mk  2013-06-22 17:01:13.000000000 +0900
@@ -42,7 +42,7 @@

 # All GCC versions supported by the ports framework.  Keep them in
 # ascending order and in sync with the table below.
-GCCVERSIONS=   030402 040200 040400 040600 040700 040800
+GCCVERSIONS=   030402 040200 040400 040600 040700 040800 040900

 # The first field if the OSVERSION in which it appeared in the base.
 # The second field is the OSVERSION in which it disappeared from the base.
@@ -53,6 +53,7 @@
 GCCVERSION_040600=          0       0 4.6
 GCCVERSION_040700=          0       0 4.7
 GCCVERSION_040800=          0       0 4.8
+GCCVERSION_040900=          0       0 4.9

 GCC_DEFAULT_VERSION=   4.6
 GCC_DEFAULT_V= ${GCC_DEFAULT_VERSION:S/.//}

ここでの話題である FreeBSD/amd64 には関係ないのですが,FreeBSD/i386 では gcc 4.6.3 よりも新しい gcc を使うと compile に失敗するので,上記の技は使えません. (見た目はさほど深刻なエラーではないので,c++ に熟知していれば firefox のソースを直すという選択も現実的かもしれません. 特に,新しい gcc を使いたい人にとっては.)
→ 2013.6.28 の ports の firefox は version 22.0 です. これは FreeBSD/i386 においても gcc 4.9 で make することができます.

[1] multimedia/mplayer も同様です. 気付いていないだけで,他にもありそうです.

4. Wnn7

FreeBSD/amd64 における Wnn7 の導入と利用に関しては,Wnn 7 をご参照ください.

5. X Window System

新しい ports においては,X Window System として従来のものと比較的新しいもののいずれかを選択することができます. ただ,FreeBSD 8 系は KMS に未対応なので,選択の余地無く前者を導入します.[1]

FreeBSD 8.2 においては,intel driver は ports/x11-drivers/xf86-video-intelxf86-video-intel29 の二つがありました. version は各々 2.7.1 と 2.9.1 です.

ところが FreeBSD 8.4 においては xf86-video-intel のみになりました. ここから X の旧新に応じて intel driver 2.7.1 または 2.17.0 が導入されます. (xorg-server-1.7.7 ならば前者,xorg-server-1.10.6 ならば後者です.) 2.7.1 は動作しません. (2.17.1 も,無理に導入しても動作しません.)

そこで以前の ports から xf86-video-intel29cp して intel driver 2.9.1 を導入しました. こちらは動作します.

xf86-video-vesa も正常に動作します.

[1] 新しい X においても,設定により KMS を使わないようにすることが可能かもしれません. そのうち追求してみます.

[2] それでも X の動作に影響はないようです. ただ,X が別の機能を使って対応しているのか,該当する部分を使うようなソフトを使用してしないので問題が顕在化しないだけなのかは分かりません.