FreeBSD 10.1-RELEASEとKDE4をインストールしてみただけ

  • 17
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

0. なにこれ

ノートPCのOSが吹き飛んだので、変わったもの使ってみたいしFreeBSDを入れてみた記録。はじめてだし後から記憶を頼りに書いてるので間違いとかあるだろうから、この記事をあんまり信用しちゃいけませんよ。

1. FreeBSDのISOイメージ

The FreeBSD Projectからダウンロード。ダウンロードページはDownload FreeBSD。今回は10.1-RELEASE amd64を使用。

2. FreeBSDのインストール

画像はないのでテキストだけ。

  1. CD/DVDから起動。BIOSの設定でCDからの起動の優先順位が低かったら、HDDよりも優先するように設定しないといけないかも。
  2. Install | Shell | Live CDからInstallを選択。
  3. キーボードのキー配置を選択。だいたいJapanese 106だと思う。
  4. ホスト名の入力。とりあえずlocalhostで。
  5. インストールするコンポーネントの選択。デフォルトのままで。
  6. ディスク領域の割り当て。Auto (UFS) | Manual | Shell | Auto (ZFS)から選択。私はAuto (ZFS)を選びました。ディスク全部割り当てるんだし、難しいこと考えたくないので。
  7. インストールしていいかの確認。そのままインストール。ちょっと時間がかかる。
  8. rootアカウントのパスワードを設定。忘れないように。
    1. IPv4ネットワークの設定をする。Yes
  9. DHCPを使うかどうかの選択。DHCP有効になってるならそれで任せてしまえるけど、うちはDHCP無効になってるので、IPアドレス、ネットマスク、ルータのアドレスを手動で設定。
  10. 次はIPv6の設定。ここは飛ばしちゃったので知らない……
  11. DNSの設定。DHCP有効なら入ってるらしいし、手動で設定してるならどう入力したらいいかわかってるんじゃないかと思う。
  12. タイムゾーンの設定。UTCを使うならYesでいいんだけど、JST使いたいのでNoAsia - Japan
  13. 有効にするサービスの設定。とりあえず触らないでそのまま。
  14. ここからユーザの追加。入力するものは入力して、初期値のままでいいものはそのまま。以下は私の。
    Username ログインID
    Full name ユーザのフルネーム
    Uid システム任せ。空欄のまま
    Login group システム任せ。空欄のまま
    Invite user into other groups? suでスーパーユーザになって作業することがあるのでwheel operator
    Login class システム任せ。空欄のまま。
    Shell ログインシェル。sh, csh, tcsh, nologinから選べます。初期値はsh。空欄のまま。
    Home directory システム任せ。空欄のまま。
    Home directory permissions これもシステム任せ。空欄のまま。
    Use password-based authentication? パスワードでの認証使うので空欄のまま。
    Use an empty password? 空のパスワードは使いたくないので空欄のまま。
    Use a random password? これも空欄のまま。
    Enter password パスワードの入力。
    Enter password again 確認のためもう一度入力。
    Lock out the account after creation? 空欄のまま。
  15. 入力内容が表示されるので、間違いがなければyes
  16. まだユーザを追加するならyes。終わったらnoで終了。
  17. ここまでで一通りの設定は終わり。変更があればここで修正。問題なければExitを選択でインストールを終了。
  18. 新しいシェルで変更が必要ならYes、特になければNo
  19. Rebootを選択して再起動。CD/DVDを取り出すのを忘れないように。

3. 休憩しよう

ここまででFreeBSDのインストールはおしまい。まだ設定とかすることはあるけど、いったん休憩したらどうですか?
シャットダウンするにはwheelグループのユーザでsuするか、rootでログインしてshutdown -p now

4. FreeBSDいくらか設定

# ~というのはrootログインか、suでのスーパーユーザになった状態での入力、$ ~は一般ユーザでの入力。

sendmail無効化

デスクトップ環境として使うので、sendmailを使うこともないだろうし無効にする。# ee /etc/rc.confでエディタを開いて、以下を追記。

/etc/rc.conf
sendmail_enable="NO"
sendmail_submit_enable="NO"
sendmail_outbound_enable="NO"
sendmail_msp_queue_enable="NO"

Esc-C-C-Enterで保存、Esc-A-Enterで終了。

portsで使うFTPサーバ

遠くのサーバを使ってると時間がかかってしょうがないので、一覧から近いサーバを選ぶ。

/etc/make.conf
MASTER_SITE_OVERRIDE=ftp://ftp.jp.freebsd.org/pub/FreeBSD/ports/distfiles/${DIST_SUBDIR}/

共有メモリ

デフォルトの共有メモリはだいぶ少なめに設定されているので、最近の計算機なら増やしておいたほうがパフォーマンスがよくなるそうで。

/etc/sysctl.conf
kern.ipc.shmmax=1073741824
kern.ipc.shmall=262144

目安としてはkern.ipc.shmmaxにバイト単位での搭載メモリの半分[^1]、kern.ipc.shmallkern.ipc.shmmaxの1/4096。搭載メモリは# grep memory /var/run/dmesg.bootで確認できる。

FreeBSDのアップデート

CDのバージョンから更新されているかもなので、アップデートしておく。
# freebsd-update fetch
# freebsd-update install

ports collectionの更新

ソースコードからアプリケーションをインストールするためのファイル群。
# portsnap fetch
# portsnap extract

pkgのインストール

コンパイル済みバイナリpackagesの管理ツール。
# pkg bootstrap
Do you want to fetch and install it now? (y/N)と聞かれるのでy

portmasterのインストール

# pkg install ports-mgmt/portmaster
portmasterを有効にするのにいったんログアウト。

psearchのインストール

# pkg install ports-mgmt/psearch

5. KDE4のインストール

まず必要なものをインストール

KDE4本体とか、それ以外にも日本語が入力できないとつらみなので……

X11

# pkg install x11/xorg

日本語フォント

# pkg install ja-font-std

日本語入力環境

# pkg install ja-ibus-anthy

KDE4と日本語モジュール

# pkg install x11/kde4 japanese/kde4-l10n

ここまで終わったら# shutdown -r nowでいったん再起動。

設定作業

Xのデバイス設定ファイル

# Xorg -configure
このコマンドを実行した後画面が真っ暗になったら# shutdown -r nowで再起動。ファイル自体は作られているはず。
# cp ~/xorg.conf.new /etc/X11/xorg.conf
Section "Module"に以下を追記。

/etc/X11/xorg.conf
Load "freetype"

Section "Files"に以下を追記。

/etc/X11/xorg.conf
FontPath "/usr/local/lib/X11/fonts/bitstream-vera/"

Xに必要なdaemon

Xに必要なdaemonが自動で起動するように/etc/rc.confに追記。

/etc/rc.conf
dbus_enable="YES"
hald_enable="YES"
polkitd_enable="YES"

日本語キーボード配列にする

# cp /usr/local/share/hal/fdi/policy/10osvendor/10-x11-input.fdi /usr/local/etc/hal/fdi/policy/

以下を追記。

/usr/local/etc/hal/fdi/policy/10-x11-input.fdi
<match key="info.capabilities" contains="input.keyboard">
    <!-- ここから -->
    <merge key="input.x11_options.XkbRules" type="string">xorg</merge>
    <merge key="input.x11_options.XkbLayout" type="string">jp</merge>
    <merge key="input.x11_options.XkbModel" type="string">jp106</merge>
    <!-- ここまで -->
</match>

確認は
# lshal --show /org/freedesktop/Hal/devices/atkbd_0

ユーザ権限

そのままだと一般ユーザでは電源を切れないので、/usr/local/etc/PolicyKit/PolicyKit.confを編集。セキュリティ的にアレだけど、サーバとして外部に公開するわけじゃないので気にしないことにした。

/usr/local/etc/PolicyKit/PolicyKit.conf
<match user="root">
  <return result="yes"/>
</match>

となっている部分を

/usr/local/etc/PolicyKit/PolicyKit.conf
<match user="root|{追加するユーザID}">
  <return result="yes"/>
</match>

とりあえずここまでのを試す

# startx
Xが起動してウィンドウが出ればとりあえずここまではok。

デスクトップ環境の起動設定

/etc/fstabにタブ区切りで以下を追記。

/etc/fstab
proc    /proc   procfs  rw      0       0

/etc/rc.confに以下を追記。

/etc/rc.conf
local_startup="${local_startup} /usr/local/kde4/etc/rc.d"
kdm4_enable="YES"

各ユーザごとに~/.xprofileを作成。内容は以下。

~/.xprofile
#!/bin/sh
export LANG=ja_JP.UTF-8
export XIM=ibus
export GTK_IM_MODULE=ibus
export QT_IM_MODULE=xim
export XMODIFIERS=@im=ibus
export XIM_PROGRAM="ibus-daemon"
export XIM_ARGS="-r --daemonize --xim"

一人ログインするだけで、システムで同時に開けるファイル数の制限に近い数に達するので、初期値から増やしておく。/etc/sysctl.confに以下を追記。

/etc/sysctl.conf
kern.maxfiles=65536

6. 他の設定

sshd

有効にする

最初から有効になっているはず。
$ ps -ax | grep sshd
有効になっていればこんな感じに表示される。
685 - Is 0:00.00 /usr/bin/sshd

無効になっているなら以下で起動できる。
# service sshd start

/etc/rc.confに追記しておくとsshdを自動で開始してくれる。

/etc/rc.conf
sshd_enable="YES"

設定ファイルの編集

/etc/ssh/sshd_configを編集する。

/etc/ssh/sshd_config
# デフォルトのPort 22から変更
Port *****
# SSH2プロトコルを使う
Protocol 2
# rootでのログインを許可しない
PermitRootLogin no
# 公開鍵認証
PubkeyAuthentication yes
# パスワード認証を使わない
PasswordAuthentication no
PermitEmptyPasswords no
ChallengeResponseAuthentication no
# DNS逆引きしない
UseDNS no

鍵の生成

-tでアルゴリズム、-bで鍵長を指定する。-tのアルゴリズムによっては鍵長に制限があるので注意。また、あまりに短い鍵はセキュリティ上の問題になる。

Algorithm Key Length
rsa 最小は768bit。デフォルト値は2048bit。
dsa 1024bitのみ。弱い?
ecdsa 256, 384, 521bitのいずれか。他の値は受け付けない。
ed25519 指定しても無視される。

Tera Termで接続するならどれでも大丈夫。現行のPuTTYならRSAで。

例として521bitのECDSA鍵なら以下の通り。必要ならパスフレーズも指定する。
$ ssh-keygen -t ecdsa -b 521

sshdは~/.ssh/authorized_keysを参照するので、公開鍵を追記する。追記したら公開鍵は削除。
$ cd ~/.ssh/
$ cat id_ecdsa.pub >> authorized_keys
$ rm id_ecdsa.pub

authorized_keysのパーミッションは0600にしておく。
$ chmod 0600 authorized_keys

USBフラッシュメモリを使う

mountでいちいちマウントするのも面倒なので、挿したら自動でマウントさせる。どうせサーバとして外部に公開するものでもないので。
cf. https://cooltrainer.org/a-freebsd-desktop-howto/

/etc/sysctl.conf
vfs.usermount=1

上のユーザ権限の項で全部許可してしまってるなら、このPolicyKit.confの編集はいらないはず。

/usr/local/etc/PolicyKit/PolicyKit.conf
<config version="0.1">
    <!-- ここから -->
    <match action="org.freedesktop.hal.storage.mount-removable">
        <match user="{ユーザ名}">
            <return result="yes"/>
        </match>
    </match>

    <match action="org.freedesktop.hal.storage.mount-fixed">
        <match user="ユーザ名">
            <return result="yes"/>
        </match>
    </match>
    <!-- ここまで -->
</config>

/etc/devfs.confはタブ区切り。

/etc/devfs.conf
# Allow all users to access optical media
perm    /dev/acd0       0666
perm    /dev/acd1       0666
perm    /dev/cd0        0666
perm    /dev/cd1        0666

# Allow all USB Devices to be mounted
perm    /dev/da0        0666
perm    /dev/da1        0666
perm    /dev/da2        0666
perm    /dev/da3        0666
perm    /dev/da4        0666
perm    /dev/da5        0666

# Misc other devices
perm    /dev/pass0      0666
perm    /dev/xpt0       0666
perm    /dev/uscanner0  0666
perm    /dev/video0     0666
perm    /dev/tuner0     0666
perm    /dev/dvb/adapter0/demux0    0666
perm    /dev/dvb/adapter0/dvr       0666
perm    /dev/dvb/adapter0/frontend0 0666

add[SP]path[SP]'ad[0-9]*'[TAB]mode[SP]666

/etc/devfs.rules
[devfsrules_common=7]
add path 'ad[0-9]\*'        mode 666
add path 'ada[0-9]\*'   mode 666
add path 'da[0-9]\*'        mode 666
add path 'acd[0-9]\*'   mode 666
add path 'cd[0-9]\*'        mode 666
add path 'mmcsd[0-9]\*' mode 666
add path 'pass[0-9]\*'  mode 666
add path 'xpt[0-9]\*'   mode 666
add path 'ugen[0-9]\*'  mode 666
add path 'usbctl'       mode 666
add path 'usb/\*'       mode 666
add path 'lpt[0-9]\*'   mode 666
add path 'ulpt[0-9]\*'  mode 666
add path 'unlpt[0-9]\*' mode 666
add path 'fd[0-9]\*'        mode 666
add path 'uscan[0-9]\*' mode 666
add path 'video[0-9]\*' mode 666
add path 'tuner[0-9]\*'  mode 666
add path 'dvb/\*'       mode 666
add path 'cx88*' mode 0660
add path 'cx23885*' mode 0660 # CX23885-family stream configuration device
add path 'iicdev*' mode 0660
add path 'uvisor[0-9]*' mode 0660
/etc/rc.conf
devfs_system_ruleset="devfsrules_common"

Chromium

以下の追記が必要。ないと起動しない。

/etc/sysctl.conf
kern.ipc.shm_allow_removed=1