FreeBSD 12.1-RELEASEを性懲りもなくインストールしました (第二話 レノボ ThinkPad編)

本日は2020年5月27日。

先週末にPrimeのGalleriaにインストールしたFreeBSDがあまりにビューティフルで調子がいい(自画自賛)ので、調子に乗ってLenovoのThinkPad R61にもFreeBSD 12.1-RELEASE+MATEデスクトップをインストールしてしまいました。

手元にあるThinkPad R61は、日本語キーボード。 15.4インチ液晶の1,680×1,050ピクセル。 CPUはIntel Core 2 Duo。
2007年に発売。
13年前のハードウェアですか…。 我ながら困った趣味です。(笑)

外観はこんなもの。

結論を書くと、FreeBSD 11.0-RELEASEに比べると、よりXorgが安定している印象。
HDな.mp4ビデオファイルの再生もへっちゃらです。
おそらくXのIntel用のビデオドライバがうまく当たって、ドライバ自体も近年進化しているのではないかと思います。 今までは、先日廃棄処分となったToshiba Satellite E45tなどでは特に諸般の事情でVESAやscfbと言った汎用的なビデオドライバで無理やり動かしていました。 Xが起動するだけで感動出来るのですが、使い続けているとどうも動画の再生などがもっさりしていて、飽きるんでしょうね。 やっぱりUbuntuって偉大だと痛感します。
でも、色々と勉強して試しながらインストールするFreeBSDも好きです。 セットアップすると愛着もひとしおです。 今回のFreeBSD 12.1インストール騒ぎでは、X上で動画ファイルの再生もチラつかずに比較的ヌルヌルと動いています。 長生きはするものです。

後々のため、今回のFreeBSD 12.1インストール祭りの諸々の設定ファイルをここに記録しておきます。

FreeBSDのバージョンは
FreeBSD 12.1-RELEASE

Xorgのバージョンは
Xorg 7.7_3

MATEのバージョンは
MATE 1.22.2

Xorg serverのバージョンは
xorg-server 1.20.8_1,1

以下は、システムハードウェア情報。

/var/run/dmesg.boot の中身抜粋。

# grep ^CPU /var/run/dmesg.boot
CPU: Intel(R) Core(TM)2 Duo CPU     T7100  @ 1.80GHz (1795.55-MHz K8-class CPU)
CPU0: local APIC error 0x40
CPU1: local APIC error 0x40
#

解説:
CPUはIntel Core 2 Duo T7100 1.80GHz。

# grep -w "memory" /var/run/dmesg.boot
real memory  = 4294967296 (4096 MB)
avail memory = 4089446400 (3900 MB)
agp0: aperture size is 256M, detected 7676k stolen memory
# 

解説:
RAMは4GB積んでいます。
(2015年頃に追加しました。)

# egrep 'da[0-9]|cd[0-9]' /var/run/dmesg.boot
ada0 at ahcich0 bus 0 scbus1 target 0 lun 0
ada0: <Hitachi HTS541616J9SA00 SB4OC70P> ATA-7 SATA 1.x device
ada0: Serial Number SB2404SJD2NX9E
ada0: 150.000MB/s transfers (SATA 1.x, UDMA5, PIO 8192bytes)
ada0: Command Queueing enabled
ada0: 152627MB (312581808 512 byte sectors)
cd0 at ata0 bus 0 scbus0 target 0 lun 0
cd0: <HL-DT-ST DVD-ROM GDR-T10N 1.02> Removable CD-ROM SCSI device
cd0: 33.300MB/s transfers (UDMA2, ATAPI 12bytes, PIO 65534bytes)
cd0: Attempt to query device size failed: NOT READY, Medium not present
Trying to mount root from ufs:/dev/ada0s1a [rw]...
# 

解説:
内蔵HDDはHitachiの150GBクラス。
光学ドライブは、DVD-ROMとCD-ROM。 光学ディスクは焼けません。

# pciconf -lv | grep -A 4 vga
vgapci0@pci0:0:2:0:	class=0x030000 card=0x20b517aa chip=0x2a028086 rev=0x0c hdr=0x00
    vendor     = 'Intel Corporation'
    device     = 'Mobile GM965/GL960 Integrated Graphics Controller (primary)'
    class      = display
    subclass   = VGA
vgapci1@pci0:0:2:1:	class=0x038000 card=0x20b517aa chip=0x2a038086 rev=0x0c hdr=0x00
    vendor     = 'Intel Corporation'
    device     = 'Mobile GM965/GL960 Integrated Graphics Controller (secondary)'
    class      = display
uhci0@pci0:0:26:0:	class=0x0c0300 card=0x20aa17aa chip=0x28348086 rev=0x03 hdr=0x00
#

解説:
ビデオはIntel Mobile GM965/GL960の様です。 チップセット統合型。

/etc/sysctl.conf の中身

# $FreeBSD: releng/12.1/sbin/sysctl/sysctl.conf 337624 2018-08-11 13:28:03Z brd $
#
#  This file is read when going to multi-user and its contents piped thru
#  ``sysctl'' to adjust kernel values.  ``man 5 sysctl.conf'' for details.
#
#
# Uncomment this to prevent users from seeing information about processes that
# are being run under another UID.
#security.bsd.see_other_uids=0
kern.ipc.shmmax=2147483648
kern.ipc.shmall=524288
#
#
kern.maxfiles=65536
vfs.usermount=1
#
kern.evdev.rcpt_mask=12

解説:
最後の行は超重要です。
これを書かないと、Xを起動した後キーボードもタッチパッドも言うことを聞いてくれません。
但し、タッチパッド付き無線キーボード(USB経由)を使うとバイパス出来ます。

/boot/loader.conf の中身

kern.vty=vt
snd_driver_load="YES"

解説:
snd_driver_load=”YES”を記述しないと、音が出ません。

/etc/make.conf の中身

MASTER_SITE_OVERRIDE=http://distcache.FreeBSD.org/ports-distfiles/${DIST_SUBDIR}/
DEFAULT_VERSIONS+=ssl=openssl

解説:
趣味と遊びのFreeBSDなので、portsもsslもあまり使わないのですが一応お約束です。

/etc/rc.conf の中身

clear_tmp_enable="YES"
sendmail_enable="NONE"
hostname="ThinkPad-R61-FreeBSD"
keymap="jp.capsctrl.kbd"
ifconfig_bge0="DHCP"
sshd_enable="YES"
ntpdate_enable="YES"
ntpd_enable="YES"
ntpd_program="/usr/sbin/ntpd"
ntpdate_program="/usr/sbin/ntpdate"
ntpdate_flags="-b ntp1.jst.mfeed.ad.jp"
# Set dumpdev to "AUTO" to enable crash dumps, "NO" to disable
dumpdev="AUTO"
#### for Xorg launch ###
hald_enable="YES"
dbus_enable="YES"
polkit_enable="YES"
avahi_daemon_enable="YES"
avahi_dnsconfd_enable="YES"

解説:
ntpdとntpdateまわりは割と自分で記述しました。
今回は、このマシンのリアルタイムクロックは、UTCとしました。 一応職業がフリーランスの翻訳者なので、いつか日本ではないどこかで暮らすこともあるかもしれません。 ハードウェアの時計は、UTCに設定が安全でしょう。
手間ですが、slimなどグラフィカルなログインマネージャはFreeBSDでは使用しません。 startxと入力するのがどの程度の手間ですか、というのもあるのですが、FreeBSDの場合いつでもXが起動するという保証がないから、あまりシステムコンソールを飛ばすべきではないと思うのです。 心構えとしては、「コンソールとシェルとviがあればなんとかなる!」という状態でいたいものです。

/usr/local/etc/PolicyKit/PolicyKit.conf の中身

<?xml version="1.0" encoding="UTF-8"?> <!-- -*- XML -*- -->

<!DOCTYPE pkconfig PUBLIC "-//freedesktop//DTD PolicyKit Configuration 1.0//EN"
"http://hal.freedesktop.org/releases/PolicyKit/1.0/config.dtd">

<!-- See the manual page PolicyKit.conf(5) for file format -->

<config version="0.1">
    <match user="root|hinotori">
	<return result="yes"/>
    </match>
    <define_admin_auth group="wheel"/>
</config>

解説:

<match user=”root|hinotori”>

の”root|の後の部分に一般ユーザの名前を入れます。 たぶん、これをやらないと電源を切るときに毎度rootになるはめになると思います。
別に遊びだからそれでもいいのですが…。

/usr/local/etc/X11/xorg.conf.d/driver-intel.conf の中身

ファイルがない。(xorg.conf.dディレクトリが空。)
今回は、システムがうまくやってくれました。 但し、自分でビデオドライバxf86-video-intelを手動でpkgでインストールする必要はありました。 まあ不親切と言えば不親切ですが、道楽のOS遊びですから。

/usr/local/etc/X11/xorg.conf.d/input.conf の中身

ファイルがない。(xorg.conf.dディレクトリが空。)
今回は、システムがうまくやってくれました。 但し、/etc/sysctl.conf に
kern.evdev.rcpt_mask=12
と記述しないと、タッチパッドは認識されません。 キーボードのキー配列問題は、~/.xinitrcで力技で指定しないとうまくいかないと思います。
検証する気力もないですけれど。(動けば正義です。)

 

~/.xinitrc の中身

#!/bin/sh
# Set Locale
export	LC_ALL=ja_JP.UTF-8
export	LANGUAGE=ja_JP.UTF-8
export	LANG=ja_JP.UTF-8
#
# Set keyboard layout (override xorg conf)
#
setxkbmap jp -model jp106 -option ctrl:nocaps
#
#
# Set input method
export	GTK_IM_MODULE=uim
export	QT_IM_MODULE=uim
export	XMODIFIERS=@im=uim
export	XIM=uim
#
# Execute uim/mozc as daemon
/usr/local/bin/mozc start
uim-xim &
#
#
# Execute MATE
exec mate-session

解説:
ロケールを設定して、キーボードのキー配列を力技で設定して、日本語入力をuim-mozcに設定して、最後にMATEを起動しています。

/etc/fstab の中身

# Device	Mountpoint	FStype	Options	Dump	Pass#
/dev/ada0s1a	/		ufs	rw	1	1
/dev/ada0s1b	none		swap	sw	0	0
proc	/proc	procfs	rw	0	0

最後のprocfsの行を記述しないと、MATEが動かないかもしれません。
試す気もしませんが。

screenfetchの結果。

$ screenfetch
                                      hinotori@ThinkPad-R61-FreeBSD
   ```                        `       OS: FreeBSD 
  ` `.....---.......--.```   -/       Kernel: amd64 FreeBSD 12.1-RELEASE-p5
  +o   .--`         /y:`      +.      Uptime: 1h 58m
   yo`:.            :o      `+-       Packages: 782
    y/               -/`   -o/        Shell: fish 3.1.0
   .-                  ::/sy+:.       Resolution: 1280x800
   /                     `--  /       DE: MATE 1.22.3
  `:                          :`      WM: Metacity (Marco)
  `:                          :`      WM Theme: Flat-Remix-GTK-Blue-Solid
   /                          /       GTK Theme: Flat-Remix-GTK-Blue-Solid [GTK2/3]
   .-                        -.       Icon Theme: breeze
    --                      -.        Font: Migu 1C 13
     `:`                  `:`         Disk: 20G / 140G (16%)
       .--             `--.           CPU: Intel Core2 Duo T7100 @ 1.80GHz
          .---.....----.              GPU: Mobile GM965/GL960 Integrated Graphics Controller (primary)
                                      RAM: 1851MiB / 4096MiB
$ 

解説:
ここ数年、フォントはMigu 1Cです。 読みやすくて好きです。
このマシンでは、シェルはfishを試すことにしました。

ここでスクリーンショット。

FreeBSD 12.1-RELEASE MATE Desktop  Screenshot

例によって商売の翻訳業とはあまり関係がないブログのエントリーでした。 でも、フリーランスの在宅の翻訳業も、FreeBSDのインストールも、手抜きをしないで自分の手と頭を使って取り組んでいると自然とスキルが向上していくものです。 石の上にも三年、と言うじゃないですか。

本当ですよ。

私はエンジニアにはなれないでしょうが、でもいつかはIT系の(翻訳の)仕事も出来る日が来るかもしれない、と思っています。