top page > PC unix > here

FreeBSD/i386 8.2 on Endeavor NP25S


概要

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

  1. USB メモリーを用いた install 法.
  2. X Window System X.Org 7.5 と intel, vesa driver について.
  3. sound, ACPI, network などについて.

目次

1. まえがき
2. install
3. X Window System
4. その他
5. 参考資料
6. 余談 (Linux)

1. まえがき

Endeavor NP25S (EPSON) は CPU として intel ATOM D525 を採用した超小型の desk top PC です. メール等,高性能の CPU を必要としないことを省電力で実現したくて購入しました.

ATOM D525 は dual core と HT (Hyper-Threading) により,FreeBSD からは 4 CPU であると認識されます.

CPU: Intel(R) Atom(TM) CPU D525   @ 1.80GHz (1802.69-MHz 686-class CPU)
(中略)
FreeBSD/SMP: Multiprocessor System Detected: 4 CPUs
FreeBSD/SMP: 1 package(s) x 2 core(s) x 2 HTT threads

ファンレスではありませんが,騒音レベルはカタログ値が 20 dB であり,とても静かです.

OS ですが,出荷時の HDD には Windows が pre install されています. その状態から FreeBSD との dual boot にすることも可能なようなのですが [1],先ず動作を確認したかったので,HDD を換装しました.[2] 筐体の蓋はネジをはずすだけで容易に開くという構造にはなっておらず,さらにツメで固定されています. 従って作業は困難であり,何度も開け閉めするような使い方は避けた方が良いでしょう.

[1] AT 互換機においては,過去に Windows との dual boot など意識したことがなく,それに関連する情報は読み飛ばしていました. それゆえ,「出来る」であろうことは分かっているのですが,「具体的にどうするのか」は調べないと分かりません.

[2] HDD を換装すると,故障時などにおそらくメーカーの保証対象からはずれると思うので,ご注意下さい.

2. install

install media として USB メモリーを用いました. 先ず,以下の例のように memstick.img のファイルを download します.

% fetch ftp://ftp.nagaokaut.ac.jp/pub/FreeBSD/ISO-IMAGES-i386/8.2/FreeBSD-8.2-RELEASE-i386-memstick.img

このファイルの大きさは 1 GB 近くあり,download には随分と時間がかかりました.

次にこれを USB メモリーに書き込みます. 以下の例では,それが OS から /dev/da1 として認識されているものとします. mount は必要ありません. また,この USB メモリーは FAT でフォーマットされていたものでしたが,新たにフォーマットし直す必要もありませんでした.

# dd if=FreeBSD-8.2-RELEASE-i386-memstick.img of=/dev/da1 bs=10240

これを NP25S の USB slot に挿して電源を入れれば,ここから installer が立ち上がります. 以後は FDD や CD-ROM で boot させる通常の install と同じ手順です.

準備に要する時間は長いですが,install の作業は非常に高速で快適です. 試行錯誤して何度も install する場合や複数の PC がある場合にはお勧めの方法です.

なお,ports は 2011.5.29 日付のものを導入しました. (当時としては最新でしたが,これを書いている現時点ではもう 2011.6.28 日付のものが出ています.)

3. X Window System

環境は X.Org 7.5, X Server 1.7.7 です.

intel ATOM D525 は GPU を内蔵しています. (その呼称は "Intel GMA 3150" とか "Pineview" などです.)

OS の log によれば,次のように認識されています. (これは console 画面のみかもしれません.)

agp0: <Intel Pineview SVGA controller> on vgapci0
agp0: detected 8188k stolen memory
agp0: aperture size is 256M

また,X の log によれば,次のように認識されています.

(--) PCI:*(0:0:2:0) 8086:a001:1b0a:0123 Intel Corporation N10 Family Integrated Graphics Controller rev 2

これを動かすために,先ず boot/loader.conf に次の内容を追加します. (drm がないなら,graphics/libdrm を導入します.)

drm_load="YES"

OS が boot する際の dmesgdrm 関連の出力はないのですが,X を起動すると次のように出力されます.

drm0: <Intel Pineview> on vgapci0
info: [drm] MSI enabled 1 message(s)
vgapci0: child drm0 requested pci_enable_busmaster
info: [drm] AGP at 0xd0000000 256MB
info: [drm] Initialized i915 1.6.0 20080730

3.1  driver intel 2.7.1

先ず x11-drivers/xf86-video-intel から導入される xf86-video-intel 2.7.1 を試します.

(II) intel(0): Integrated Graphics Chipset: Intel(R) IGD
(--) intel(0): Chipset: "IGD"

このように認識されます. しかし,log の終りの方に

(II) intel(0): [DRI] installation complete
Setting master
(WW) intel(0): drmDropMaster failed: Unknown error: -1

と出てきて画面は console のまま動作が固まるか,あるいは同期が取れなくなります. すなわち動作しません.

3.2  driver intel 2.9.1

次に x11-drivers/xf86-video-intel29 から導入される xf86-video-intel 2.9.1 を試します. module のファイル名は 2.7.1 と同じです. (すなわち,xorg.conf は変更しないで良いということです.)

log には以下ようなエラーが出力されます.

(EE) intel(0): [drm] Failed to detect GEM.  Kernel 2.6.28 required.   ← 後半は Linix 向けの話?
(EE) intel(0): Failed to become DRM master.
(中略)
(EE) intel(0): Failed to initialize kernel memory manager

FreeBSD 8.2 は GEM には未対応なので,これは正しい反応なのですが,

(II) intel(0): Integrated Graphics Chipset: Intel(R) Pineview G
(--) intel(0): Chipset: "Pineview G"

このように認識されて,ありがたいことに GEM なしでも無事に動作します.

ただし,firefox の画面のスクロールや,複数の重なった Window の上下の切り換えなどは妙に反応が鈍いです. (Linux ではそういうことはないので,GEM が使えないことが原因なのでしょう.) 一方,mplayer ならば vesa driver よりもずっと良いです. そのような長短所を併せ持つという状態です.

3.3  driver intel 2.13.0

ports にはありませんが,最新版の driver をソースから作成してみました.[1]

xf86-video-intel-2.13.0.tar.bz2
libdrm-2.4.26.tar.bz2

を入手して,各々を以下の ports の distfilesMakefile を修正して make install します. (xf86-video-intel-2.13.0make にも稼働にも libdrm として 2.4.22 以上を要求するので,現状の 2.4.12 から更新する必要があります.)

/usr/ports/graphics/libdrm              ← こちらを先に導入すること.
/usr/ports/x11-drivers/xf86-video-intel

これらを用いて X を起動すると,log の終りの方に

(EE) intel(0): No kernel modesetting driver detected.    ← KMS がないということ?
(EE) Screen(s) found, but none have a usable configuration.

と出てきます. 画面は console のままで,ありがたいことにちゃんと shell の prompt の状態に戻ります.

まだ FreeBSD に GEM や KMS を移植している段階なので,この driver は動作しません.[2][3][4][5]

[1] これらの version は意識的に選んだわけではなく,作業をした時点で最新であったに過ぎません.
  ここで問題にしている KMS 等を使うのは intel driver 2.10.0 以降なので,その代表と解釈して下さい.

[2] GEM, KMS は DRM, DRI と一緒に語られることが多いです. 私にもわけがわかりませんが,こんな略語のようです.
  DRM : Direct Rendering Management
  DRI : Direct Rendering Infrastructure
  GEM : Graphics Execution Manager
  KMS : Kernel Mode-Setting

[3] Linux ならば KMS に対応済なので,2.10.0 以上の driver が動いています.

[4] 最近 (2011.12.28),KMS を試験的に実装した FreeBSD 10-CURRENT にて最新の intel driver を動かした情報が公開されています.
  また,FreeBSD 9.1 からは標準で KMS が備わっており,新しい intel driver が動いています.

[5] 最新の indel driver には "Pineview-G" に加えて "Pineview-D in Atom D400/D500" もあります.
  可能ならば,FreeBSD でも最新の driver を利用できるように,KMS や GEM を使わない Option を加えて欲しいものです.

3.4  driver vesa

xf86-video-vesa動作します. 動作はそれなりに軽快で我慢をしているという状態ではありません.

目的別に intel driver 2.9.1 と動作を比較してみるのが良いでしょう.

4. その他

sound は hda driver にて利用することができます.

hdac0: <Intel 82801G High Definition Audio Controller>
pcm0: <HDA Realtek ALC662 PCM #0 Analog> at cad 0 nid 1 on hdac0

/boot/loader.conf に以下のように記述しました.

sound_load="YES"
snd_hda_load="YES"

内蔵スピーカーはないので,ヘッドフォンや外部スピーカーが必要です. 出力先は一つで,前面と背面の出力端子 (緑色) の両方から出力されます.

% cat /dev/sndstat
FreeBSD Audio Driver (newpcm: 32bit 2009061500/i386)
Installed devices:
pcm0: <Realtek ALC662 (Analog 2.0+HP/2.0)> (play/rec) default

ACPI も利用することができます.

# shutdown -p now

にて電源を off にすることができます. 諸々の power management の機能は,徐々に使いこなして行きたいところです.

network は re driver にて利用することができます.

re0: <RealTek 8168/8111 B/C/CP/D/DP/E PCIe Gigabit Ethernet>

CD/DVD-ROM drive は備わっておりません. 必要ならば USB の DVD-ROM drive が使えます. BRD-U8DM (I-O Data 製) を繋ぐと,log には以下のように出力されます. SCSI 扱いなので /dev/cd0 として認識されます.

ugen4.2: <I-O DATA DEVICE,INC.> at usbus4
umass0: <I-O DATA DEVICE,INC. Optical Storage Device, class 0/0, rev 2.00/0.06, addr 2> on usbus4
umass0:  8070i (ATAPI) over Bulk-Only; quirks = 0x0000
umass0:0:0:-1: Attached to scbus0

(probe0:umass-sim0:0:0:0): TEST UNIT READY. CDB: 0 0 0 0 0 0
(probe0:umass-sim0:0:0:0): CAM status: SCSI Status Error
(probe0:umass-sim0:0:0:0): SCSI status: Check Condition
(probe0:umass-sim0:0:0:0): SCSI sense: NOT READY asc:3a,1 (Medium not present - tray closed)
cd0 at umass-sim0 bus 0 scbus0 target 0 lun 0
cd0: <HL-DT-ST BD-RE  BH10NS38 EL00> Removable CD-ROM SCSI-0 device
cd0: 40.000MB/s transfers
cd0: Attempt to query device size failed: NOT READY, Medium not present - tray closed

動画を見るならば,例えば mplayer を利用することができます. intel driver ならば,root/su にて次のように使います.

# gmplayer -dvd-device /dev/cd0 -vo xv dvd://2

一方 vesa driver ならば,出力は xv でなく x11 にすることになります.

# gmplayer -dvd-device /dev/cd0 -vo x11 -cache 8192 -zoom dvd://2

vesa driver にて DVD を再生すると,MPEG2 720x480 程度の動画で以下のような表示が出ます. 音声が時々とぎれます. Option の -cache 8192 は,その対策として付加しています. (ファイルから再生した場合には,この問題は生じません.)

           ************************************************
           **** Your system is too SLOW to play this!  ****
           ************************************************

-vo にて指定する出力先が x11 の場合,画面の上下または左右に余白が作られて,表示部分のアスペクト比が適切でない場合があります. Option に -zoom を加えれば対策できますが,CPU への負担になります. -vo xv ならばこれは不要です.

また,DVD-ROM drive を備えた PC にて mencoder を用いて動画をファイルに移し,そのファイルを mplayer にて再生するという選択肢もあります. ファイルを再生する場合には,root/su になる必要はありません.

5. 参考資料

「ユーザーズマニュアル」は印刷物として製品に添付されておりませんが,エプソン から最新版を download することができます. (2011.9.4 時点では NP25S_C77666500.pdf です.)

これには「BIOS の設定」とか「機能仕様一覧」が記載されているので,FreeBSD しか使わない場合でも必要になります.

ちなみに,「ユーザーズマニュアル」は添付の Windows 7 においては「PC お役立ちナビ」にて見ることができるようです. これを目当てに DVD を mount しようとしたのですが,できませんでした. この点は調査中です.

ついでながら,2011.8.4 に「BIOS アップデートのお願い」という e-mail が届きました. 公式 HP にも記載されています.

6. 余談 (Linux)

USB メモリーに Ubuntu Linux 11.04 を install しました. xserver 1.10.1, intel driver 2.14.0 です.

install は HDD を抜いた状態で行なったので,grub に関して迷うことはありませんでした.[1] 起動ですが,HDD の FreeBSD と USB メモリーの Linux とは,HDD 側にある BootMgr によって選択することができます. すなわち,

F1 FreeBSD   ← FreeBSD
F5 Drive 1   ← Linux

この USB メモリーですが,一度 FreeBSD を install し,その際に BootMgr も入れております. ですから,工場出荷時の状態の USB メモリーにいきなり Linux を入れても上記のようになるかどうかは分かりません. この点は機会があれば新しい USB メモリーで試してみます.

[1] 実は,一度 HDD を付けた状態にて install しました. その際に grub を HDD の方に入れてしまって,FreeBSD が boot できなくなりました. FreeBSD の install CD-ROM から boot して BootMgr を書き込むことにより復旧できました.