Help us understand the problem. What is going on with this article?

Mac book AirにFreeBSDを導入

More than 3 years have passed since last update.

導入の目的

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

OSのインストール

macOSのインストール

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

[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の例が以下の通り。

[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にした。

# pkg install enlightenment
# pkg install ibus-skk

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

.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を導入する。

# pkg install chromium

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

dev.hdac.0.polling=1

LibreOfficeの導入

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

# pkg install ja-libreoffice

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

まとめ

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

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

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした