概要
Endeavor NP25S (EPSON) に FreeBSD/amd64 9.3 を install しました. ここでは主に以下の点に注目して,その記録を提示します.
- bsdinstall と AFT HDD について.
- X Window System X.Org 7.7 と intel, vesa driver について.
- vt (new console driver) について.
概要
Endeavor NP25S (EPSON) に FreeBSD/amd64 9.3 を install しました. ここでは主に以下の点に注目して,その記録を提示します.
目次
vt
driverやっと FreeBSD 9 系の試用を始めました. 過去に何度か始めようとして,忙しくて断念したのですが,そろそろ何とかしないと追い付けなくなるという思いもありました. 常用する環境はまだ 8.4 で,こちらはあくまで試用ですが,気付いたところを書き足していきたいと思います.
install media としては USB メモリーを用いました.
ports は 2014.11.28 付のものを導入しました.
この節で示したいことは,bsdinstall は HDD を解析して sector size を自動的に設定してくれないという「観察結果」です.
bsdinstall の "Partitioning" は "Manual" を選択し,handbook の「伝統的なファイルシステムのパーティションを作成する。」を参考に以下のようにしました.
% gpart show => 34 625142381 ada0 GPT (298G) 34 6 - free - (3.0k) 40 1024 1 freebsd-boot (512k) 開始セクタは 40 です.FreeBSD 8.3 + sysinstall だと 63 です. 1064 4194304 2 freebsd-ufs (2.0G) ここは / です. 4195368 8388608 3 freebsd-swap (4.0G) 12583976 8388608 4 freebsd-ufs (4.0G) ここは /var です. 20972584 2097152 5 freebsd-ufs (1.0G) ここは /tmp です. 23069736 601882624 6 freebsd-ufs (287G) ここは /usr です. 624952360 190055 - free - (92M)
% df Filesystem 1K-blocks Used Avail Capacity Mounted on /dev/ada0p2 2031132 854756 1013888 46% / devfs 1 1 0 100% /dev /dev/ada0p4 4053308 430176 3298868 12% /var /dev/ada0p5 1015324 16680 917420 2% /tmp /dev/ada0p6 291481048 61809800 206352768 23% /usr % swapinfo Device 1K-blocks Used Avail Capacity /dev/ada0p3 4194304 0 4194304 0%
ところで,handbook には HDD に関して "AFT" と明示した情報はありません. 以下のように記述があるだけです.
セクタを適切に配置することで、 最良のパフォーマンスを得ることができます。 また、パーティションサイズを 4K バイトの偶数倍にすると、 512 バイトまたは 4K バイトのセクタでドライブが配置しやすくなります。
この「4K バイトのセクタ」は AFT の HDD を指しているはずです.
ところが実際に使ってみると,FreeBSD 8.4 の頃と同様に,動作に引っ掛かり感があります. すなわちセクタの配置の問題だけではないようです.
# diskinfo -v /dev/ad0
/dev/ad0
512 # sectorsize
320072933376 # mediasize in bytes (298G)
625142448 # mediasize in sectors
0 # stripesize
0 # stripeoffset
620181 # Cylinders according to firmware.
16 # Heads according to firmware.
63 # Sectors according to firmware.
WD-WX31A41C2016 # Disk ident.
このように,sector size が 4096 = 4K になっておりません.
調べてみると,手動で Partitioning をする場合には newfs -S 4096 のようにして sector size を指定する方法があるのですが,bsdinstall を使う限りは HDD を解析して sector size を自動的に指定してくれているわけではなさそうです.
"Manual" でなく "Guided" を用いても同じことでした.
(ただまあ,現時点では動作の引っ掛かり感の原因を sector size と決めつける根拠はないのですが.)
手動の Partitioning に関しては多くの資料があるのですが,handbook にはない非公式の使い方であること,動作の試験を行なうための HDD や時間がなかったことから,今回は bsdinstall に全面的に依存した方法を採りました.
(この件に関しては,試験を行なう時間がとれたら試行錯誤 (右往左往) の結果を別途提示しようと思います.)
ただ,ここで悶々とするのであれば,非 AFT の HDD を入手した方が合理的かもしれません.
FreeBSD 9.1 以降は WITH_NEW_XORG が default であり,X Server は 1.12 が導入されます.[1][2] /etc/make.conf の関連部分は次のように設定します.
#WITH_NEW_XORG=yes 不要です. WITH_KMS=yes 設定してしまいましたが,不要かもしれません.
逆に,古い方の X Server 1.7 を使いたければ次のように設定します.
WITHOUT_NEW_XORG=yes
/boot/loader.conf は次のように設定します.
# for firefox + HTML5 sem_load="YES" あくまで firefox のためです. # not feel on GENERIC, need not on VT 後述しますが,これらは不要です. #hw.vga.textmode=0 #kern.vty=vt
% kldstat
Id Refs Address Size Name
1 23 0xffffffff80200000 161d858 kernel
2 1 0xffffffff8181e000 abb8 sem.ko
3 1 0xffffffff81a12000 6b82e i915kms.ko これ以下は,X を起動すると自動的に load されます.
4 1 0xffffffff81a7e000 1b17 iicbb.ko
5 4 0xffffffff81a80000 1d3b iicbus.ko
6 1 0xffffffff81a82000 1caf iic.ko
7 1 0xffffffff81a84000 46fc8 drm2.ko
intel ATOM D525 は GPU を内蔵しています. (その呼称は "Intel GMA 3150" とか "Pineview" などです.)
OS の log によれば,次のように認識されています. (これは console 画面のみかもしれません.)
agp0: <Intel Pineview SVGA controller> on vgapci0 agp0: aperture size is 256M, detected 8188k stolen memory vgapci0: Boot video device vgapci1: <VGA-compatible display> mem 0xfe980000-0xfe9fffff at device 2.1 on pci0
また,X の log によれば,次のように認識されています.
(--) PCI:*(0:0:2:0) 8086:a001:1b0a:0123 rev 2, Mem @ 0xfeb80000/524288, 0xd0000000/268435456, 0xfea00000/1048576, I/O @ 0x0000dc00/8, BIOS @ 0x????????/65536
xf86-video-intel (2.21.15) も xf86-video-vesa (2.3.3) も動作します.
[1] 2015.4.12 時点の ports では X Server は 1.14.7 以外の選択肢はありません.
WITHOUT_NEW_XORG も WITH_KMS も設定不要です.
また,xf86-video-intel も 2.21.15 一択になっています.
(distinfo に 2.7.1 が残っているのは消し忘れか?)
この X Server から,フォントの置き場が /usr/local/share/fonts/ に変わっているので,xorg.conf の修正が必要です.
(自前の fonts.alias があるなら,新たな置き場へ cp する必要があります.)
[2] 2015.12.10 時点の ports では X Server は 1.17.4 以外の選択肢はありません.
/var/db/ports/x11-servers_xorg-server/options に「HAL を使う」の設定を残したまま make してしまったので,dbus は使っておりません.
この点は,そのうちやり直します.
intel driver を使った場合,X を終了して console に戻ると画面が真っ黒になります. この問題に関して,
https://wiki.freebsd.org/Graphics/WITH_NEW_XORG
の "VT switch" には次のように書かれています.
[1] 単に KMS を使っていないだけなのかも.
FreeBSD 9.3 の GENERIC kernel には vt は含まれておりません. /usr/src/sys/amd64/conf/VT は,GENERIC を雛型として sc, vga を消し,vt, vt_vga を加えています.
include GENERIC ident VT nodevice sc nodevice vga device vt device vt_vga
これを用いて kernel を再構築します.
# cd /usr/src/sys/amd64/conf
# config VT
# cd ../compile/VT
# (make cleandepend && make depend) >& log.dep
# make >& log.make
# make install >& log.inst
# reboot または shutdown
新たな kernel に対しては,/boot/loader.conf に以下の記述は不要です. 逆に,sc にすることもできません.
kern.vty=vt
GENERIC kernel を起動した場合,dmesg の出力の sc driver に関連する部分は以下のようになっています.
sc0: <System console> at flags 0x100 on isa0 sc0: VGA <16 virtual consoles, flags=0x300> vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
一方,VT kernel においては,vt driver に関連する出力がありません.
vt driver の環境で X から console に戻ると,console が高解像度になっています.
フォントは,日本語フォントも含めて設定できるらしいので,そのうち挑戦してみます.
現在の ports においては,firefox は version 33.0 です.[1][2] これを make すると,gcc 4.8 以上が既に導入されていればそれを使い,いなければ gcc 4.8 が導入されます.
私は gcc 5 を導入していたのですが,これを用いた場合にはエラーが生じて make できませんでした. そこでさらに gcc 4.8 を導入し,無事に make ができました. ちなみに,これは gcc 5 と conflict しませんし,これらが共存している場合には firefox の make には gcc 4.8 の方が使われるので,gcc 5 を消す必要はありません.
HTML5 を表示する場合には,/boot/loader.conf に以下のように設定しておかないと core dump します.
sem_load="YES"
起動した直後に以下のようなメッセージが必ず出ますが,動作には影響ありません.
(process:1256): GLib-CRITICAL **: g_slice_set_config: assertion `sys_page_size == 0' failed
また,起動した terminal に大量のメッセージが出るので,うんざりです. 終了した後でも,忘れた頃にメッセージを出したり core を吐いたりします.
[1] 2015.4.14 現在の ports においては,firefox は version 37.0 です. make は gcc 4.8 で問題なくできます. (より新しい gcc は試しておりません.) 上述の動作の問題は直っておりません.
[2] 2015.12.10 現在の ports においては,firefox は version 42.0 です.