Mac book AirにFreeBSDを導入

# 導入の目的

仕事で外部へ出掛ける際に、メモとペンだけでは不便を感じた。プライベートで使用するMacBookProはあるが、これを仕事に流用するのはコンプライアンスに違反する。そこで何かないかと秋葉原で物色したところ、ソフマップで古いMacBookAirを見付けた。OSなしであるが、US配列のキーボード。これを購入してFreeBSDマシンに仕立てる事にした。

# OSのインストール

## macOSのインストール

FreeBSDだけでも良いのだが、macOSも導入する方針にした。手持ちのMacからApp storeを起動してSierraのアップデートプログラムをダウンロード。その後にUSBにSierraのブートイメージを書き込む。USBは/Volumes/UNTITLEDにマウント、デバイスは/dev/disk3の例だと以下の通りとなる。

``` tcsh
[suwanai:~/Downloads] esu% sudo /Applications/Install\ macOS\ Sierra.app/Contents/Resources/createinstallmedia --volume /Volumes/UNTITLED --applicationpath /Applications/Install\ macOS\ Sierra.app --nointeraction
Erasing Disk: 0%... 10%... 20%... 30%...100%...
Copying installer files to disk...
Copy complete.
Making disk bootable...
Copying boot files...
Copy complete.
Done.
[suwanai:~/Downloads] esu% diskutil umountDisk /dev/disk3
Unmount of all volumes on disk3 was successful
```

作成したUSBをMacBookAirに差し込んでoptionキーを押下しながら起動する。インストールメディアを選んで手順に則りインストールを完了させる。

## FreeBSD領域の確保

macOSを起動してディスクユーティリティーアプリを起動する。このアプリはmacOSの使用領域を縮小して、ディスクを他の用途に開放する事ができる。128GのSSD領域の後半64GをFreeBSD用に確保した。

## FreeBSDのインストール

FreeBSDのイメージファイルをダウンロードし、USBに書き込む。デバイスが/dev/disk3の例が以下の通り。

``` tcsh
[suwanai:~/Downloads] esu% diskutil umountDisk /dev/disk3
Unmount of all volumes on disk3 was successful
[suwanai:~/Downloads] esu% sudo dd if=FreeBSD-11.0-RELEASE-amd64-memstick.img of=/dev/disk3
Password:
1433746+0 records in
1433746+0 records out
734077952 bytes transferred in 1287.028758 secs (570366 bytes/sec)
```

後はmacOSと同じくoption押下の起動でFreeBSDのインストールUSBを選び、手順に則りインストールを完了させる。ちなみに内蔵WiFiは使用できないので、代替にUSB WiFiを用意しておくとよい。

## ブートローダの導入(optional)

ブートローダがなくともoptionキー押下で電源を入れればFreeBSD領域の起動は可能なのだが、面倒なのも確かなのでrEFIndを導入した。手順は省略する。

# 環境構築

業務に利用できる環境を作る。最新のFreeBSDは、ほぼpkgだけで完了できる。

## Xorgの導入

GUIなしでは辛いのでXorgを最初に導入する。ただしサーバにvesaやnvidiaを指定すると起動しない。scfbを指定すると起動する。

``` 
Section	 "Device"
	Identifier	"Card0"
	Driver		"scfb"
	BusID		"PCI:2:0:0"
EndSection
```

個人的な事情でcaps lockをctrlとしたいので、以下の記述をxorg.confに追加する。

``` 
Section	 "InputClass"
	Identifier	"Keyboard Setting"
	MachIsKeyboard		"yes"
	Option		"XkbOptions"	"ctrl:nocaps"
EndSection
```

## WindowManagerとUIMの導入

次にWindowManagerとUIMを導入する。昔から愛用するenlightenmentとSKKにした。

``` csh
# pkg install enlightenment
# pkg install ibus-skk
```

.xinitrcに以下を記述してxinitにて起動する。

``` sh:.xinitrc
#! /bin/sh
export LC_ALL=ja_JP.UTF-8
export LANGUAGE=ja_JP.UTF-8
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"
$XIM_PROGRAM $XIM_ARGS
exec /usr/local/bin/enlightenment_start
```

日本語入力のトリガはcommand+スペースとなる。

## ブラウザの導入

ブラウザがあればメールも利用できるので、chromiumを導入する。

``` csh
# pkg install chromium
```

~~HTML5が利用できるのでYoutubeやニコニコを試したが、動作がうまくいかない。出先で見るサイトではないので問題とはならないが。~~原因が判明したので追記。サウンドデバイスが正しく動作する設定ではないので、音を出力する段階で不具合になる。コンソールを見ると、割り込み動作でエラーとある。以下の設定を/etc/sysctl.confに追記しておくとサウンドが正常に動作するため、Youtubeやニコニコも見ることができる。

``` csh
dev.hdac.0.polling=1
```

## LibreOfficeの導入

仕事用なのでMS Office代替ソフトは必須となるので導入する。

``` csh
# pkg install ja-libreoffice
```

出先で書類を確認するのに困らない程度に互換性はあるが、レイアウトが正しくない場合がある。緊急用とすれば十分である。

# まとめ

古いPCを再生するのにFreeBSDを利用した。「仕事で使用するにはソフト不足」が一昔前の認識だが、今は代替ソフトもありそれほど苦にならない。Webサービスが増えた現在では、ブラウザが動けばOSは何でも良いのだ。macOSだと多少の重さを感じるロートル品も、FreeBSDだと快適に利用できる。またマイナーなOS故に、他の社員が外出に持ち出す等の利用シーンがないのも良い。

御精讀ありがたうございました。