ThinkPad X61s 15th Anniversary Edition に FreeBSD を入れる

2007.12.04. に購入ボタンを押して 2007.12.30. にペリカンが運んできた Lenovo の ThinkPad に、FreeBSD な環境を構築した記録です。

目次

総論

  • メモリが潤沢なのは単純に嬉しい。
  • 母艦に DHCP/TFTP/NFS サーバを組み、ネットワークインストールがお勧め。
  • サイズは小さいはずなんだけど、ベゼルがスリムなので画面の狭さは感じない。
  • 画面の発色は伝統の青っぽさ。クールでよい。
  • 画面左端・右端が暗いような気がするけど気にしない。
  • HDD は ad4 、有線 LAN は em で認識される。カニじゃなくて良かった。
  • Xorg 7.3 は 6.3-PRERELEASE 現在、とりあえず vesa で動く。intel でも動いた。
  • サウンドは hda で鳴る。いかにも安っぽい音がする。
  • SD スロットは見えない。残念。
  • キーボード照明 (LED) は健在。小さなアイコンが刻印されていて可愛い。
  • キーボードは…。期待が大きかっただけに、残念な感触。
  • バックスラキーが小さい。無理して突っ込んだ感。
  • その割に Windows キーなんかありやがる。使わないよ。
  • そもそもキーボードが反ったり凹んだりしているのが安っぽくて哀しい。
  • 一方、トラックポイントは柔らかくて扱いやすい。ドリフト現象もないようだ。

ハードウェア的な設定

最終的な主要スペックは以下の通り。

CPU : Intel(R) Core(TM)2 Duo CPU L7500 1.60GHz
RAM : 2048M
HDD : 250G (とっとと換装)
NIC : Intel(R) PRO/1000 (em0)
K/B : 英語キーボード♪

起動時、F1 キー で BIOS 画面へ。F12 キーで起動デバイス選択へ。 このあたりは変わっていない。

LCD の輝度調節は 15 段階。 FreeBSD 起動後は Fn + HOME や Fn + End を打鍵しても即反映しないが、 vesa で X を動かす時には覚えているらしい。 フルパワーだと眩しすぎるので、min から Fn + HOME を 10 回押して 10 段階めに設定する。

パームレスト手前側に無線LAN のスイッチがあるので、 緑色が見えない側にしておく(無線は使わないので無効にしておく)。

バッテリは微妙な状態で納品されたので、いったんフル充電しておく。

BIOS 設定

手打ちで写したメモ。

BIOS setting

BIOS Version                 1.10  (7NET29WW)
BIOS Date (Year-Month-Day)   2007-10-22
Embedded Controller Version  1.02
System-unit serial number    7666BH5LVB6431
System board serial number   1ZDXF7C36JW
CPU Type                     Intel(R) Core(TM)2 Duo CPU     L7500
CPU Speed                    1.60GHz
Installed memory             2048MB
UUID                         1f89f7e0-ae29-11dc-bd07-c745849557e2
MAC Address (Internal LAN)   00 16 D3 C6 7F 74

BIOS 設定
Config - Network
Wake On LAN                           Enabled
Flash Over LAN                        Eanbled
Ethernet LAN Option ROM               Enabled
Hard drive Direct Memory Access(DMA)  Enabled
Wireless LAN Radio Freqency           On

Config - Srial port
Serial port                           Disabled

Config - Parallel port
Parallel port                         Enabled
  Mode                                Bi-directional
  Base I/O Address                    3BC
  Interrupt                           IRQ 7

Config - PCI
INTA PCI IRQ                          11
INTB PCI IRQ                          11
INTC PCI IRQ                          11
INTD PCI IRQ                          11
INTE PCI IRQ                          11
INTF PCI IRQ                          11
INTG PCI IRQ                          11
INTH PCI IRQ                          11

Config - USB
USB BIOS Support                      Enabled
Always On USB                         Disabled

Config - Keyboard/Mause
TrackPoint                            Enabled
Fn Key Lock                           Disabled
ThinkPad NumLock                      Independent

Config - Display
Boot Display Device                   Analog(VGA)
Brightness                            Normal

Config - Power
Timer Wake with Battery Operation     Disabled
Interl(R) SpeedStep technology        Enabled
  Mode for AC                         Automatic
  Mode for Battery                    Battery Optimized
Adaptive Thermal Management           
  Scheme for AC                       Maximize Performance
  Scheme for Battery                  Balanced
CDROM Speed                           Normal
CPU Power Management                  Automatic
PCI Bus Power Management              Automatic

Config - Alarm
Power Control Beep                    Enabled   → Disabled
Low Battery Alarm                     Enabled   → Disabled
Password beep                         Disabled

Config - Memory
Extended Memory Test                  Disabled

Config - Serial ATA (SATA)
SATA Controller Mode Option:          AHCI

Config - CPU
Core Multi-Processing                 Enabled
Intel(R) Virtualization Technology    Disabled

Config - Intel(R) AMT
Intel(R) AMT Control                  Disabled

Security - Password
Using Passphrase                      Eanabled
Supervisor Password                   Disabled
Lock BIOS Settings                    Disabled
Set Minimum length                    Disabled
BIOS password at unattended boot      Enabled
Power-On Password                     Disabled → Enabled
Hard Disk1 Password                   Disabled → User
Password Reset Service                Enabled  → Disabled

Security - Fingerprint
Predesktop Authentication             Enabled
Reader Priority                       External
Security Mode                         Normal
Erase Internal Fingerprint Data       [Enter]

Security - Security Chip
Security Chip                         Inactive

Security - BIOS Update Option
Flash BIOS Updating by End-Users      Enabled

Security - Memory Protection
Execution Prevention                  Enabled

Security - I/O Port Access
Ethernet LAN                          Enabled
Wireless LAN                          Enabled
Wireless WAN                          Enabled
Bluetooth                             Enabled
Modem                                 Enabled
USB Port                              Enabled
IEEE 1394                             Enabled
Serial Port                           Enabled
Parallel Port                         Enabled
CardBus Slot                          Enabled
Ultrabay (HDD/Optical)                Enabled
SD Card Slot                          Enabled
Microphone                            Enabled

Startup
Boot Mode                             Quick
Option Keys Display                   Enabled
Boot Device List F12 Option           Enabled

Startup - Boot
Boot priority order:
1:  USB FDD
2:  ATAPI CD0
3:  USB CD
4:  ATA HDD0: Hitachi HTS542525K9SA00-(S1)
5:  PCI LAN:  IBA GE Slot 00C8 v1245
6:  -USB HDD
7:  ATA HDD1
8:
Excluded from boot order:
 :  ATA HDD2
 :  ATAPI CD1

Startup - Network
Boot priority order:
1:  PCI LAN:  IBA GE Slot 00C8 v1245
2:  USB FDD
3:  ATAPI CD0
4:  USB CD
5:  ATA HDD0: Hitachi HTS542525K9SA00-(S1)
6:  -USB HDD
7:  ATA HDD1
8:
Excluded from boot order:
 :  ATA HDD2
 :  ATAPI CD1

インストール作業ログ

まず、プレインストールの Vista だが、基本的には興味ない。 興味はないけど消してしまうと後で再度手に入れるのが面倒そうなので、 HITACHI HTS542525K9SA00 / SATA 2.5" 250GB 5400rpm を購入し、差し替えた。 回転数は落ちているが、容量は増えているので、おあいこ、ということで(何が

インストール方法については、試行錯誤の末、結局 6.3-RC1 を network install した。

前提

   サーバ (自宅機) : 192.168.0.13
クライアント(X61s) : 192.168.0.14

サーバ機に wide-dhcp を投入し、dhcpd.conf にて、pxeboot を行わせるよう設定。

  host hogehoge {
    hardware ethernet 00:16:d3:cc:dd:ee;   ★BIOS 画面で調べられる
    fixed-address 192.168.0.14;
    option vendor-class-identifier "PXEClient";
    option vendor-encapsulated-options 01:04:00:00:00:00;
    filename "pxeboot";
    option root-path "192.168.0.13:/tftpboot";
  }

サーバ機で インストールメディアを mdconfig 経由で /cdrom 等に mount する。
マウントポイントを nfs で export する。

% grep cdrom /etc/exports
/cdrom

サーバ機の /tftpboot/ 以下に、インストールメディアから boot/ を配置する。

% ls /tftpboot
boot/

サーバ機側の inetd.conf を修正し、tftp を通すようにする。

% grep '^tftp' /etc/inetd.conf
tftp dgram udp wait root /usr/libexec/tftpd tftpd -l -s /tftpboot/boot

以上の仕込みでクライアントをネットワークブートすれば、
インストーラが起動してくるはず。

Boot Manager はひとまず Standard を選択。

%uname -rms
FreeBSD 6.3-RC1 i386

%df
Filesystem  1K-blocks    Used     Avail Capacity  Mounted on
/dev/ad4s1a   3045006   39080   2762326     1%    /
devfs               1       1         0   100%    /dev
/dev/ad4s1e 190811742      56 175546748     0%    /opt
/dev/ad4s1d  40622796 1221006  36151968     3%    /usr

いきなり ad4 なところが笑える。SATA とは、そういうものか。

sysctl で温度が見える。 どこの温度かな。

hw.acpi.thermal.tz0.temperature: 43.0C

まずは make update したい。 /etc/make.conf に SUP 関係の行だけ書いて、supfile を用意する。 sup ファイルを /usr/local/etc/ に置いているのは個人的趣味。 というかお行儀としてどこに置くのが主流なのか、知らないだけである。

# cat /etc/make.conf
SUP_UPDATE=     yes
SUPFILE=        /usr/local/etc/supfile-src
PORTSSUPFILE=   /usr/local/etc/supfile-ports
DOCSUPFILE=     /usr/local/etc/supfile-doc
# cd /usr/src
# make update
# make buildworld    … 約 50 分
# make buildkernel   … 約 15 分
# make installkernel
# make installworld
# shutdown -r now
# mergemaster

自宅のバックアップ機から、データを戻す。 rsync よりも、最初はとりあえず ssh と tar で飛ばす。 まずは $HOME 、続いて distfiles を回収する。

だいたい今まで入れてたものを入れるんだし、 distfiles がローカルに溜れば、ports のインストールもサクサク進む。

net/rsync
ports-mgmt/portupgrade
shells/zsh
japanese/kon2-14dot
security/sudo
japanese/nvi-euc-jp  (with 野良パッチ)
sysutils/screen

kon2 は、特にパッチ等当てずとも、ちゃんと表示された。 これらを投入している間に、 workspace や cvsroot などの他のデータも回復させる。 X は最初から Xorg 7 である。ふむふむ。

x11/xorg
japanese/kterm
japanese/cannadic
japanese/kinput2-canna
mail/ssmtp
mail/fetchmail
dns/dnsmasq
japanese/w3m
java/diablo-jdk15
audio/moc

キーマップファイルはバックアップがなかったので us.unix をベースに ちまちま修正を行って、作成。us.thinkpad.kbd というファイル名にした。

サウンドは hda がヒットした。loader.conf 的には

beastie_disable="YES"
snd_hda_load="YES"

こんな感じ。以下、主なその他投入物件。

x11-wm/windowmaker
japanese/mplusfonts
x11-clocks/pclock
xdkcal (野良ビルド)
wmzcalock (野良ビルド)
sysutils/wmbattery
net/wmnet
astro/wmmoonclock
mail/wmbiff
x11/wmdrawer
benchmarks/xengine   … 27800 くらい。VESA なのに、速いな。
security/ssh_askpass_gtk2
games/gtkballs
audio/mpg123
devel/apache-ant
java/junit
java/jad
graphics/ImageMagick
# chmod 775 /usr/local/share/java/apache-ant/lib

ここいらで ram ディスクを作成。とは言っても /etc/fstab に書いておくだけ。

md		/ram	mfs	rw,nosuid,nodev,-s262144

メモリは (今までに比べれば) たくさんあるので、 ram ディスクのサイズもそのうち増やそう。

引き続き、アプリケーションを投入していく。

sysutils/wmmon (cvsweb から古い ports を持ってきて強引に)
www/opera (shared で)
net/tightvnc
graphics/enfle
misc/acron
sysutils/cdrtools-cjk
shells/fd
x11-wm/ctwm
japanese/mh
x11/mlterm
security/stunnel
mail/popfile
java/jdk14
japanese/namazu2
graphics/zphoto
www/firefox
www/firefox-i18n

wmmon は、意外なことに、make しただけで普通に使えた。 2007.09 頃の 6.2-STABLE では使えなくって、 無理矢理変な修正をかけて強引に動かした記憶があるので、 手間が減って嬉しい。

fetchmail でメイルをフェッチする際、mda に mail.local を使うが、 こいつはデフォルトでは 555 なので、一般ユーザでキックできない。 基本的に自分ひとりしか使わないマシンなので、4755 にしてしまう。

# chmod 4755 /usr/libexec/mail.local

agp_i810 に対して FreeBSD-users-jp 91227のパッチを適用、 ついでに Oracle XE 用の kernel オプションも追加して kernel を作りなおし。 無事 agp0 が発見されるようになった。 でも xengine は 18700 くらいになった。vesa のほうが速いのか!?

並行して Oracle XE 環境を復活。自分のメモが役に立つというのは嬉しいものだ。orz

気を取り直して、引き続き ports を投入していく。

devel/darcs
japanese/gqmpeg
audio/aumix
devel/global
gmp3te (野良ビルド)
gtkipmsg (野良ビルド)
net/cvsup-mirror
graphics/gimp
japanese/samba (SYSLOG/UTMP/AUDIT/SMBSH)

cvsup のミラーデータをチョロチョロと回復開始。 samba の設定ファイルはバックアップから戻し。

# mkdir -p /var/log/samba
# smbpasswd -a oresama

引き続き ports を投入していく。

mail/procmail
converters/mpack
graphics/gimageview
textproc/gtkdiff
japanese/ochusha

うぉ、xmms を入れようと思ったら既に入っている。びっくり。 指が勝手に入れたのか、何かの依存で入ったのか…

引き続き ports を投入していく。

multimedia/mmsclient
audio/gogo
x11-clocks/glclock
misc/pinfo
graphics/graphviz (TK/XPM/ICONV/NLS)
japanese/ebview-gtk2
audio/mp3info
japanese/zipcodes
graphics/gcolor2

OOo は つくばの hiromi さんのところから Xorg 6.9 用にビルドされた パッケージを pkg_add -f で投入。libstdc++.so.6 が無いと言われる。 gcc 4.2 以降が要るのか。長そうだ。晩だな。

gcc 4.3 を入れてみたが、動かないっぽい。 Good-Day 版をダウンロードしてみる。 こちらも -f 無しだと、いろいろ無いってことで。

pkg_add: could not find package python24-2.4.4_1 !
pkg_add: could not find package openssl-0.9.8e_1 !
pkg_add: could not find package icu-3.6 !
pkg_add: could not find package ja-ipa-ttfonts-1.0.20060520.p1,2 !
pkg_add: could not find package glitz-0.5.6_1 !
pkg_add: could not find package cdrtools-2.01_6 !
pkg_add: could not find package libglade2-2.6.2 !
pkg_add: could not find package avahi-0.6.21 !

強引に入れてみたが、やはり動かない。正確には、新規ドキュメントを作ることは できるのだけれど、既存のドキュメントを開くことができない。 軽くあきらめて、引き続き ports を投入していく。

multimedia/mplayer
  (OCFLAGS/SIMD/X11/GUI/VIDIX/SKINS/FREETYPE/LIBUNGIF/DTS/SPEEX/WIN32/XVID)
java/jdk16
java/eclipse-devel
net/xrdesktop
games/actx
games/macopix
games/sudoku
www/linux-flashplugin7
www/linuxpluginwrapper
devel/mercurial

darcs と mercurial と、両方入れてみた。どっちがより便利だろう?

ローカルに apache が立っていないと不便なので、立てる。野良。

% tar xvf httpd-2.2.6.tar.bz2
% cd httpd-2.2.6/
% ./configure --prefix=/usr/local/apache \
  --enable-mods-shared=most --enable-proxy --with-expat=builtin
% make
% su - 
# make install

php も入れたいが、php で PostgreSQL も使いたいので、 PostgreSQL を先に入れる。これは Ports で。 8.3 は Broken だったので、8.2 で。

# cd /usr/ports/database/postgresql82-server
# make install clean
# su - pgsql
$ initdb
The files belonging to this database system will be owned by user "pgsql".
This user must also own the server process.

The database cluster will be initialized with locale C.

creating directory /usr/local/pgsql/data ... ok
creating subdirectories ... ok
selecting default max_connections ... 100
selecting default shared_buffers/max_fsm_pages ... 32MB/204800
creating configuration files ... ok
creating template1 database in /usr/local/pgsql/data/base/1 ... ok
initializing pg_authid ... ok
initializing dependencies ... ok
creating system views ... ok
loading system objects' descriptions ... ok
creating conversions ... ok
setting privileges on built-in objects ... ok
creating information schema ... ok
vacuuming database template1 ... ok
copying template1 to template0 ... ok
copying template1 to postgres ... ok

WARNING: enabling "trust" authentication for local connections
You can change this by editing pg_hba.conf or using the -A option the
next time you run initdb.

Success. You can now start the database server using:

    postgres -D /usr/local/pgsql/data
or
    pg_ctl -D /usr/local/pgsql/data -l logfile start
$ exit
# vi /etc/rc.conf
postgresql_enable="YES"
# /usr/local/etc/rc.d/postgresql start

php は野良で。

% tar xvf php-5.2.5.tar.bz2
% cd php-5.2.5/
% ./configure --with-apxs2=/usr/local/apache/bin/apxs \
  --with-pgsql --without-mysql --enable-ftp \
  --enable-mbstring --enable-mbregex --with-zlib-dir=/usr
% make
% su - 
# make install

辞書がないと不便なので、復活させる。

japanese/ebnetd
japanese/epwutil

英辞郎のデータは 英辞郎II のものを使用。 自宅機の CD ドライブに突っ込んだものを NFS export して使用。 今回は測定してみた。

# cd /usr/ports/japanese/eijiro-fpw
# date; make DICT_PATH=/var/tmp/eijiro/eijiro81 SRCFILE=eijiro81.txt; date
Sun Jan  6 02:29:00 JST 2008
Sun Jan  6 03:11:06 JST 2008

# cd /usr/ports/japanese/waeijiro-fpw
# date; make DICT_PATH=/var/tmp/eijiro/eijiro81 SRCFILE=waeiji81.txt; date
Sun Jan  6 03:16:07 JST 2008
Sun Jan  6 03:44:27 JST 2008

早いなぁ。って、仕掛けて寝てたけどさ。 あわせて、2002 年ごろの /usr/local/share/dict/ のデータも復旧。

引き続き、ports を入れていく。もう must ではないものばかりか。

net-im/pidgin
astro/stellarium
ndtpc (野良)

ndtpc は ebnetd.conf を書いて eb view および vi からの動作を確認。

メイルの全文検索用に namazu のインデクスを作成。

# chmod 775 /usr/local/var/namazu/index/
% $HOME/bin/mknamazumh

引き続き、ちまちまとアプリケーション投入。

japanese/acroread
misc/lv
japanese/qkc

さて、ここいらで、OpenOffice.org をビルドしてみる。

■/etc/make.conf
.if ${.CURDIR} == "/usr/ports/editors/openoffice.org-2"
WITHOUT_MOZILLA=yes
WITHOUT_GNOMEVFS=yes
LOCALIZED_LANG=ja
LANG_PKGNAME=ja
.endif

■コマンド
# pkg_delete gcc-4.3.0_20071221
# cd /usr/ports/editors/openoffice.org-2
# make clean
# make
# make install

■実行
% OOO_FORCE_DESKTOP=gnome
% export OOO_FORCE_DESKTOP
% openoffice.org-2.3.1

上記にサラっと書いているが、OpenOffice がちゃんと動かない問題は OOO_FORCE_DESKTOP 環境変数の設定で回避できた。 hiromi さん版、Good-Day 版でも同様かもしれないが、 自前ビルド版が動いてしまったので追試をしていない。

旧マシンが発掘された(よかった…)ので、 ちまちまと移行。

  • PukiWiki のデータを移植。
  • cvsweb.cgi を復活。
  • ローカルトップページ、images を徐々に復旧。

あとは入れ忘れ系・入れてみようか系のアプリケーションを投入。

ftp/wget
converters/base64
net/fping
emulators/qemu (KQEMU,SDL,CDROM_DMA)
net/wireshark
textproc/hyperestraier
editors/vim
net/wakeonlan
audio/wavplay   … waveplay じゃないので注意 (笑)
net-mgmt/mbrowse
x11-servers/x2vnc
net/x11vnc
japanese/tgif (NLS,A4SIZE)

qemu-ifup は 旧ディスクから吸い上げて /etc へ配置。ちなみにこんな感じ:

#!/bin/sh
sudo ifconfig $1 inet 192.168.127.1 netmask 255.255.255.252

$HOME/bin/ を file * | grep ELF して野良ビルド物件を探し、再コンパイル。

■お別れしたもの
daemonclock
imgsize
kenjiro
rad
xcolsel

■動いたもの
jerm
akaneclock
file2
jadetect
nldetect
key2mouse
printtitle
xd

qemu-0.9.0.4 は Bad system call で死んでしまうので、 qemu-devel を試してみることに。

emulators/qemu-devel/ 

それでもやはり死んでしまう。 調べてみたところ、aio モジュールをロードすればよいとの解を得た。 わざわざ戻す気にもならなかったので、-devel のまま運航することにした。 昔使っていた ディスクイメージは、そのまま使えた。

その他のアプリケーションの投入。

astro/luna
www/tidy
japanese/another-htmllint
japanese/jpilot
palm/jfconv
japanese/today
math/gnuplot+
japanese/mutt
security/nmapfe
japanese/expect
games/oneko
devel/maven2
databases/rrdtool
deskutils/freemind
mail/sylpheed
audio/wmrecord
graphics/mesa-demos
x11-fm/xfe

jude は community 版を落してきて起動すればいいので、ports 版は見送って野良で入れた。


せっかくの高級塗装がきちんと味わえないので、 うざったい Intel Centrino のシールと、邪魔くさい Windows Vista BASIC のシールは ペリっと剥して裏面に貼った。

関連購入物件一覧

この ThinkPad 関連で購入したデバイス群は、以下の通り。

device        price   shop         maker    description
本体          219870  Lenovoサイト Lenovo   7666-BH5 ThinkPad X61s 15th Anni.Ed.
換装HDD        17980  池袋ドスパラ HITACHI  HTS542525K9SA00 SATA 2.5" 250GB HDD
HDD Case        1980  池袋ドスパラ 玄人志向 GW2.5SJ-SU2
ケース           680  池袋ビックP 不明     PKSPR11WBK
USB SD Reader   1571  浜田電機     ELECOM   MR-C11BK
拡張バッテリ    9980  若松通商     Lenovo   93P5030 拡張バッテリ 8 CELL
AC アダプタ     6090  若松通商     Lenovo   40Y7699 65W AC アダプタ
FD ドライブ      998  若松通商     Lenovo   05K9283 USB FD (中古)

互換電源アダプタは ツクモで 4200 円、Sofmap で 3980 円だったが、 若松で純正品を売っていたので、つい純正品にしてしまった。

このページでの記録は、以上。あとは「交際日記」で。

[Rev: --not under control--]
[EOF]