Mac Linux

Mac mini (2012) にUbuntu18.04をインストールしてみた

今年のアップデートにより、ついに旧型となってしまったMac mini(2012年モデル)。私の自宅にも箱に収められたままひっそりと眠るMac miniがありました。

約6年前のモデルと言うことで、最近のマシンから見ればスペック的に見劣りするPCになってしまいましたが、Linux機として運用するならまだまだ輝けるはず!

ということで、今回はMac miniをUbuntu専用マシンとして復活させてみたので、その備忘録です。

用意するもの

用意するものは以下の通りです。インストールDVDは事前にUbuntuのイメージをダウンロードして焼いておきましょう。インストール中は有線機器しか使えないので、純正のキーボードやトラックパッドとは別に、マウスやキーボードを用意する必要があります。

  • Ubuntu18.04のインストールDVD
  • 外付けDVDドライブ
  • 有線マウス
  • 有線キーボード
  • 有線LAN環境

Ubuntuのインストール

Ubuntuのインストール自体は簡単です。インストールDVDを入れた外付けドライブを繋いだ状態で、キーボードの「c」を押したまま再起動します。

しばらくするとUbuntuの画面が現れるので、あとは指示に従ってインストールしていきましょう。Ubuntu専用機として生まれ変わらせるので、MacOSは消してクリーンインストールを選択します。私は余計なパッケージを入れたくなかったので、インストールの種類は最小インストールとしました。(ここはお好みで大丈夫です)

インストール後のセットアップ

ここからは追加のセットアップです。今回はリモート接続で操作できるようにしたいので、それに必要な作業を中心に進めます。

内蔵無線LANの有効化

インストール直後では内蔵無線LANが使えません。そこで、以下のコマンドでドライバをインストールします。再起動後、無線LANが使えるようになるので、ここから先は有線LANが不要になります。

# ドライバのインストール
$ sudo apt install firmware-b43-installer

# 再起動
$ sudo reboot

SSHサーバーのインストール

コンソールからのリモート接続の手段として、SSH接続を受け付けられるようにします。以下のコマンド1つで完了です。

$ sudo apt install openssh-server

XRDPのインストールと設定

SSH接続以外にも、GUIのリモートデスクトップでアクセスした方が便利な場合もあります。そこで、RDPのインストールと設定を行います。まずは以下のコマンドでxrdpをインストールします。

$ sudo apt install xrdp

インストール直後では証明書へのアクセス権まわりでエラーが出るので、xrdpから証明書にアクセスできるようにします。

$ sudo adduser xrdp ssl-cert

続いて、表示周りの設定です。まずはカーソルの描画に関する設定として、xrdpの設定ファイルを書き換えます。

$ sudo sed -e 's/^new_cursors=true/new_cursors=false/g' -i /etc/xrdp/xrdp.ini
$ sudo systemctl restart xrdp

次に、必要な環境変数を設定しておくために、~/.xsessionrcというファイルを作成しておきます。

$ D=/usr/share/ubuntu:/usr/local/share:/usr/share:/var/lib/snapd/desktop
$ cat <<EOF > ~/.xsessionrc
export GNOME_SHELL_SESSION_MODE=ubuntu
export XDG_CURRENT_DESKTOP=ubuntu:GNOME
export XDG_DATA_DIRS=${D}
export XDG_CONFIG_DIRS=/etc/xdg/xdg-ubuntu:/etc/xdg
EOF

最後に、リモートアクセス時のカラープロファイル周りの認証確認を回避するために、policykitの設定ファイルを作成しておきます。

$ sudo vi /etc/polkit-1/localauthority/50-local.d/45-allow-colord.pkla

ファイルの中身は以下の通りに記述しておきます。

[Allow Colord all Users]
Identity=unix-user:*
Action=org.freedesktop.color-manager.create-device;org.freedesktop.color-manager.create-profile;org.freedesktop.color-manager.delete-device;org.freedesktop.color-manager.delete-profile;org.freedesktop.color-manager.modify-device;org.freedesktop.color-manager.modify-profile
ResultAny=no
ResultInactive=no
ResultActive=yes

ファイルが作成できたら、polkitを再起動させておきましょう。

$ sudo systemctl restart polkit

以上で設定は完了です。あとはWindowsのリモートデスクトップからIPアドレスを指定して接続できればOKです。

おまけの作業

リモート接続によるGUI操作もできるようになりましたが、表示された画面にはDockがありません。その上、謎のthinclient_drivesというドライブがマウントされています(´・ω・)

Dockはやはり表示したいところです。謎のドライブについては実害はないですが、気になるので対策しておきます。

Dockを復活させる

Dockを復活させるには、GNOMEのカスタマイズツールであるgnome-tweak-toolをインストールします。

$ sudo apt install gnome-tweak-tool

インストール後、Extensionの設定でUbuntu Dockを有効化すればOKです。

thinclient_drivesを見えなくする

続いてthinclient_drivesですが、これはxrdpにより自動的に作られるものだそうです。今回は隠しフォルダとして作成することで、表から見えなくすることにします。それには、xrdpの設定ファイルを書き換えます。

$ sudo vi /etc/xrdp/sesman.ini

このうち、FuseMountName=thinclient_drivesの1行をFuseMountName=.thinclient_drivesに書き換えて保存すればOKです。

以上の設定を終えた結果が以下の通り。ちゃんとDockも見えるようになりました(・∀・)

ということで、無事にMac miniをLinux機として復活させることができました。もちろん、Appleのサポート対象外の作業なので、試す際にはあくまでも自己責任でお願いします。

もし、自宅で古いMac miniを持て余している方で、手軽なLinux機が欲しい方は試してみてはいかがでしょうか?

ではでは

広告の表示がブロックされています。
広告の表示がブロックされています。

関連記事

C++ 自作物

2020/8/14

言語処理系をつくろう(第7回):比較演算子を実装する

自作の言語処理系開発日記の第7回です。前回までで変数の実装が終わったので、ここからはいよいよ制御構文を実装…と思ったのですが、制御のためには比較演算子を実装する必要がありました。 ということで、今回は比較演算子を実装していきます。基本的には四則演算と変わりないのであまり難しくはありません。 目次1 比較演算子の仕様2 実装してみる2.1 トークナイザ2.2 構文解析器2.3 コード生成器2.4 実行系(仮想マシン) 比較演算子の仕様 比較演算子を実装する前に、その仕様について少し考えておきます。 比較演算 ...

この記事を読む

C++ 自作物

2020/8/14

言語処理系をつくろう(第6回):変数を実装する

自作の言語処理系開発日記、第6回です。 これまでは四則演算など、電卓レベルの機能実装に取り組んでいましたが、いよいよ変数を扱えるようにしていきたいと思います。これでかなりプログラミング言語っぽくなるかも(・∀・) 今回は新しい仕組みを入れたりと、割と修正がごちゃごちゃしてしまったので、うまくまとめきれていません。ごめんなさい…。 目次1 変数の実装について2 実装してみる2.1 トークナイザ2.2 構文解析器2.3 コード生成器2.4 実行系(仮想マシン) 変数の実装について これまでは即値しか扱っていな ...

この記事を読む

C++ 自作物

2020/8/14

言語処理系をつくろう(第5回):連続した式の実行

自作の言語処理系開発日記の第5回です。 前回までで括弧を含んだ四則演算ができるようになりましたが、このままでは単なる電卓止まりです。ということで、今回は複数の式を連続して実行できる仕組みを実装していきたいと思います。 目次1 生成規則を考える2 実装してみる2.1 構文解析器2.2 コード生成 生成規則を考える これまでは入力全体を1つの式として解釈していましたが、今回は式の区切りを定義して複数の式として解釈できるようにします。 C言語だと「;」や「,」が区切り文字として使われますが、開発中の言語(roo ...

この記事を読む

C++ 自作物

2020/8/14

言語処理系をつくろう(第4回):括弧付き計算と単項演算子

自作の言語処理系開発日記の第4回です。前回までで乗除算を実装できたので、この調子でもう少し複雑な計算に対応したいと思います。今回はそれぞれの実装が少ないので、一気に2つのステップを進めます。 目次1 括弧を含む計算1.1 生成規則をいじる2 単項演算子(+と-)2.1 生成規則をいじる 括弧を含む計算 これまでの実装では、乗除算は必ず加減算に先立って実行されます。しかし、それでは不十分なので、括弧を含む計算(例:(1+2)*3)を実行できるようにします。 生成規則をいじる 今回も構文解析器の生成規則を修正 ...

この記事を読む

C++ 自作物

2020/8/14

言語処理系をつくろう(第3回):乗除算を実装する

自作の言語処理系開発日記の第3回です。前回は加減算を実装したので、今回は乗除算の実装にチャレンジしていきます。 目次1 実装してみる1.1 構文解析器 実装してみる 今回の実装において、トークナイザ・コード生成器・実行系(仮想マシン)については加減算のときと変わりません。単純に各種定義を追加して、それを扱えるようにしてあげるだけです。 一方、構文解析器についてはちょっとややこしいので、そこだけ解説します。 構文解析器 加減算では演算の優先順位がなかったので、単純に左結合(=左から順に計算していく)で処理し ...

この記事を読む

-Mac, Linux

© 2020 Corgi Lab. ~備忘録のための技術ブログ~