2016年以降のMacには、T2セキュリティチップがあり、簡単にLinuxを実行できなくなりました。
キーボード、トラックパッド、オーディオ、タッチバー、Wifiがそのまま動作しなかった、しかし、ドライバーやLinuxカーネルとパッチをインストールすれば、動作するようになっています。
自分の検証環境では、キーボード、トラックパッド、オーディオ動作したですが、タッチバー動作しませんでした。
- タッチバーのファンクションキー:外付けキーボードのファンクションキーで代用
検証環境
- MacBookPro: MacBookPro 15,4(2019) 13.3インチ Model(A2159)
資料
- marcosfad/mbp-ubuntu:https://github.com/marcosfad/mbp-ubuntu
- 各世代動作リスト:https://github.com/Dunedan/mbp-2016-linux
準備必要な物
- USB メモリ
- USB キーボード
- USB マウス
- USB Ethernetアダプタ、LANケーブル
インストール途中でMacのキーボードとマウスが動作しないので、USBののキーボードとマウスを使用します。
パーティションの分割
macOS を起動し、Utilities -> Disk Utilities からパーティションを作成します。
macOSとUbuntuOSでデュアルブート場合、UbuntuをインストールするパーティションをmacOSのパーティションから分割して用意します。
- MacintoshHD 100G
- Linux 150G (フォーマットは何でもいい、Ubuntuインストール時にフォーマットできます)
自分の環境では、mac OSパーティションを削除して、Ubuntu OSのみ運用したいので、ここでパーティション分割しなくてもよいです。(Ubuntuインストール画面でパーティション作成できます)
注意:mac OSパーティションを削除したい場合、事前にデータをバックアップしてください。
MacBookのT2セキュリティ設定変更
T2セキュリティが有効した場合、Apple認証していないUbuntu USB ディスクから起動できないので、T2セキュリティ設定を変更します。
macOS を再起動し、 Cmd+R をおしながら起動します。
macOS Utilities が表示されたら、上部メニューバーの Utilities -> Startup Security Utility を起動し、以下を設定します。
- Secure Boot : No Security
- Allowed Boot Media : Allow booting from external or removable media
Utilities -> Terminal を起動し、以下を実行します。
csrutil disable
UbuntuインストールUSBの作成
- Ubuntu20.04のダウンロード
Ubuntu公式サイトからUbuntu Desktop 20.04.3 LTS(ubuntu-20.04.3-desktop-amd64.iso)をダウンロードします。
- 起動用USB作成ツール(balenaEtcher)でisoファイルを書き出します。
USBメモリから起動
- Option キーを押しながら起動する。
- USB メモリっぽい EFI Boot が 2 つ表示される、右側を選択します。
-
Grub メニューでは Ubuntu を選択します。
Ubuntu のインストーラが立ち上がるが、新たに接続した USB キーボードとマウスしか反応しないため、USB キーボードとマウスを使用します。 -
Ubuntu の Desktop が表示されるが、「Ubuntuをインストール」を選択します。
インストール先のパーティション設定
-
インストールの種類
「それ以外」を選択します。自分でパーティションを削除や作成を行うため、これを選択します。 -
パーティションの削除と作成
自分の環境では、mac OSパーティションを削除して、Ubuntu OSのみ運用したいので、ここでMacOSのパーティションを全部削除します。 -
[-]より既存のmac OSパーティション(/dev/nvme0n1p1、/dev/nvme0n1p2)を削除
注意:【すべてデータが削除されますので、自己責任で実行してください。】 -
[+]より500Mのefiパーティション(/dev/nvme0n1p1)を新規作成
このあと、rEFInd Boot ManagerをこのESPパーティションにインストールします。
- Ubuntu20.04本体インストールパーティション(/dev/nvme0n1p2)を新規作成
残りの全部空き領域をext4フォーマットしてマウントポイント:「/」で設定します。
- ブートローダのインストール先をUbuntu20.04本体パーティション(/dev/nvme0n1p2)で選択します。
- その他のインストールの設定はお任せ。
rEFInd Boot Managerのインストール
これでインストールしたUbuntuがMac起動時に起動しないので、rEFInd Boot Managerをインストールをします。
-
Option キーを押しながら起動する。
-
USB メモリっぽい EFI Boot が 2 つ表示される、右側を選択します。
-
Grub メニューでは Ubuntu を選択します。
-
Try Ubuntuを選択します。
-
rEFIndをダウンロード
rEFInd公式サイトから「A binary zip file」よりrefind-bin-0.13.2.zipをダウンロードします。 -
rEFIndのインストール
解凍したzipのrefind-installを実行します。
インストールしたrefindをBOOTへリネームします。
$ sudo -s
# ./refind-install
# cd /boot/efi/EFI
# mv BOOT BOOT_bak (元のBOOTをバックアップ)
# mv refind BOOT
# reboot
これでMac起動時にrEFInd Boot Managerが起動され、起動対象Ubuntu(boot\vmlinuz-5.11.0-27-generic)を選択して起動します。
キーボードとトラックパッドのドライバーをインストール
キーボード、トラックパッド、オーディオ、タッチバーのドライバーをDKMSのモジュールとしてインストールします。
- DKMSのインストール
sudo apt-get install dkms
- BCE (Buffer Copy Engine) モジュールのインストール
キーボード、オーディオのドライバーをインストールします。
sudo git clone https://github.com/t2linux/apple-bce-drv /usr/src/apple-bce-0.2
cd /usr/src/apple-bce-0.2
sudo vi dkms.conf
下記dkms.conf内容を入力します。
PACKAGE_NAME="apple-bce"
PACKAGE_VERSION="0.2"
MAKE[0]="make KVERSION=$kernelver"
CLEAN="make clean"
BUILT_MODULE_NAME[0]="apple-bce"
DEST_MODULE_LOCATION[0]="/kernel/drivers/misc"
AUTOINSTALL="yes"
sudo dkms install -m apple-bce -v 0.2
- apple-ibridgeモジュールのインストール
Touchbar and Ambient Light sensorのドライバーをインストールします。
sudo git clone https://github.com/t2linux/apple-ib-drv /usr/src/apple-ibridge-0.1
sudo dkms install -m apple-ibridge -v 0.1
- Linuxカーネルにモジュールのロード
sudo modprobe apple_bce
sudo modprobe apple_ib_tb
sudo modprobe apple_ib_als
これで、キーボード、トラックパッド、オーディオが動作できます。
- PC起動時モジュールロードの設定
sudo -s
echo apple-bce >> /etc/modules-load.d/t2.conf
- タッチバーモードの設定
sudo vi /etc/modprobe.d/apple-tb.conf
下記apple-tb.conf内容を入力します。
options apple-ib-tb fnmode=2
0: Only show F1-F12
1: Show media and brightness controls, use the fn key to switch to F1-12
2: Show F1-F12, use the fn key to switch to media and brightness controls
3: Only show media and brightness controls
4: Only show the escape key
トラックパッドはクリックができるだけで、2 本指タップや 2 本指スクロールができないため、以下のカーネルパッチをインストール必要があります。
Linux Kernelとパッチのコンパイル&インストール
Kernel にパッチを当てて、トラックパッドを快適(2 本指タップや 2 本指スクロール)に使います。
https://wiki.t2linux.org/guides/kernel/
linux-mbp-archKernelとパッチをインストールします。(Linuxカーネルコンパイル時間がかかる)
sudo apt-get install build-essential libncurses-dev libssl-dev flex bison libelf-dev dwarves
pkgdir=/
git clone https://github.com/aunali1/linux-mbp-arch
cd linux-mbp-arch
source PKGBUILD
wget https://www.kernel.org/pub/linux/kernel/v${pkgver//.*}.x/linux-${pkgver}.tar.xz
tar -xf $_srcname.tar.xz
prepare
make all -jX # change "X" to the number of cpu threads you have.
cd ..
_package # use sudo if installing directly
cd ..
_package-headers # use sudo if installing directly