MacBookPro でも動作すると思います。(The followings work on other MacBookPro.)
自分の環境では、以下は動作しませんでした。(WiFi on MacBookAir does not work on my machine.)
- WiFi : USB の外付け WiFi アダプタで代用 (I use USB WiFi Adapter instead of WiFi on MacBookAir.)
- https://gist.github.com/gbrow004/096f845c8fe8d03ef9009fbb87b781a4
- keyboard,touchpad driver https://github.com/roadrunner2/macbook12-spi-driver/tree/mbp15
- T2 Driver https://github.com/MCMrARM/mbp2018-bridge-drv/
- トラックパッドを快適に使うためにカーネルパッチを当てる (kernel patch for track pad and others) https://github.com/aunali1/linux-mbp-arch
- 各世代の MacBookAir/Pro で動作するものリスト (list of things work on every MacBookAir/Pro) https://github.com/Dunedan/mbp-2016-linux
- USB メモリ (USB stick)
- USB キーボード (USB keyboard)
- USB マウス (USB mouse)
- USB WiFi アダプタ、Ethernet アダプタ (USB WiFi adapter or USB Ethernet adapter)
macOS を起動し、Utilities -> Disk Utilities からパーティションを作成。(boot macOS, launch Utilities -> Disk Utilities and create partitions.)
- MacintoshHD 50G
- Linux exfat 200G
(exfat にしたのは特に理由はありません。exfat is not for anything.)
Ubuntu 20.04 Desktop を使用。USB メモリの作成手順については、Ubuntu サイトの上部の Download タブを開き、TUTORIALS の Create a bootable USB stick on ...を参照。(see Ubuntu site "Create a bootable USB stick on".)
macOS を再起動し、 Cmd+R をおしながら起動する。(Boot MacBookAir with Cmd+R.)
macOS Utilities が表示されたら、上部メニューバーの Utilities -> Startup Security Utility を起動し、以下を設定する。(When macOS Utilities is diplayed, launch Utilitis -> Startup Security Utility and set the followings.)
- Secure Boot : No Security
- Allowed Boot Media : Allow booting from external or removable media
Utilities -> Terminal を起動し、以下を設定する (Launch Utilities -> Terminal and set followings.)
csrutil disable
Option キーを押しながら起動する。(Boot MacBookAir with Option.) USB メモリっぽい EFI Boot が 2 つ表示される(2 つ表示されない場合は、電源を長押しして再起動する)ため、右側を選択する。(There are two EFI Boots, select right one. If there is only one EFI Boot, you need reboot.)
Grub メニューでは Ubuntu
を選択する。(Select Ubuntu
on Grub.)
Ubuntu のインストーラが立ち上がるが、新たに接続した USB キーボードとマウスしか反応しないため、これを使用する。(Ubuntu Installer was launched, it needs USB Mouse and Keyboard.)
Ubuntu の Desktop が表示されるが、Try Ubuntu
を選択する。(Ubuntu Desktop was launched, and select "Try Ubuntu".)
左下のメニューから、Terminal を起動し、Bootloader なしのオプションを追加して Ubuntu のインストーラを起動する。(Launch Terminal from left side menu, and launch Ubuntu Installer with no Bootloader option.)
sudo ubiquity -b
インストール先の選択で、Something else を選択する。(Select "Something else" for installation destination.)
/dev/nvme0n1p3
が分割したパーティションに当たるため、これを、Format Ext4、Mount Path / に設定する。(Set /dev/nvme0n1p3
to Format: Ext4 and Mount Path: / .)
Boot Loader のインストール先は /dev/nvme0n1p3
を選択する。(Select /dev/nvme0n1p3
as Boot Loader installation destination.)
その他のインストールの設定はお任せ。(No need other settings.)
再び USB メモリでTry Ubuntu
で Ubuntu を起動し、Terminal を起動する。(Boot Ubuntu with USB stick and Try Ubuntu
, and launch terminal.)
以下のコマンドで、パーティション nvme0n1p1 、nvme0n1p2 、nvme0n1p3 があることを確認する。(Check partitions with the following command)
lsblk
ここではパーティションは以下としている (I uses partitions as the following purpose)
- nvme0n1p1 : EFI
- nvme0n1p2 : macOS
- nvme0n1p3 : Ubuntu
ここで EFI と Ubuntu のパーティションをマウントして、grub-install を行う。
この時 --force
を付ける必要があった。(Mount partitions of EFI and Ubuntu, do grub-install. It needs --force
option.)
sudo -s
mount /dev/nvme0n1p3 /mnt
mount /dev/nvme0n1p1 /mnt/boot/efi
for i in /dev /dev/pts /proc /sys /run; do sudo mount -B $i /mnt$i; done
sudo chroot /mnt
grub-install --force /dev/nvme0n1
update-grub
PC を再起動する。このとき、Option キーを押しながら起動し、EFI Boot
を選ぶ。すると、Ubuntu が起動するようになる。この Ubuntu ではキーボードとトラックパッドがまだ使うことができないため、USB のキーボード、マウスを利用する。(Reboot MacBookAir with Option and select EFI Boot
. Ubuntu will launch. But TrackPad and Keyboard on MacBookAir does not work, you need use USB mouse and keyboard.)
また、私の場合には WiFi が使えるようにならなかったため、USB の WiFi アダプタを使用する。(It also needs USB WiFi Adapter.)
今動いているカーネルのバージョンを確認する。(Check kernel version.)
uname -r
bce というモジュールをビルド、インストールする。(Build module bce and install.)
git clone https://github.com/MCMrARM/mbp2018-bridge-drv.git
cd mbp2018-bridge-drv
make
sudo cp bce.ko /usr/lib/modules/5.4.0-37-generic/kernel/drivers/pci/bce.ko
起動時にモジュールを読み込むようにする。(Load the module at boot time.)
# vi /etc/modules
bce
ここのドライバをインストールする。(Install following driver.)
sudo apt install dkms
git clone --branch mbp15 https://github.com/roadrunner2/macbook12-spi-driver.git /usr/src/apple-ibridge-0.1
sudo dkms install -m apple-ibridge -v 0.1
再起動する。上の 2 つのモジュールが正しく読み込まれればキーボードとトラックパッドが動作する。ただしトラックパッドはクリックができるだけで、2 本指タップや 2 本指スクロールができないため、以下のカーネルパッチを当てる必要がある。(Reboot again. If is success loading two modules, keyboard and trackpad will work. But trackpad is not able to scroll with two fingers, it need following kernel patch.)
https://github.com/aunali1/linux-mbp-arch
自分の環境では、全てのパッチを当てると動作しなかったため、以下のパッチのみを適用している。(When I used all patches, MacBookAir did not boot. So I uses the followings.)
3002-applesmc-make-io-port-base-addr-dynamic.patch
3003-applesmc-switch-to-acpi_device-from-platform.patch
3004-applesmc-key-interface-wrappers.patch
3005-applesmc-basic-mmio-interface-implementation.patch
3006-applesmc-fan-support-on-T2-Macs.patch
4001-touchpad.patch
4002-keyboard-backlight.patch
パッチと、Linux Kernel を入手する。(Get patches and Linux Kernel code.)
git clone https://github.com/aunali1/linux-mbp-arch
git clone https://github.com/torvalds/linux
cd linux
git checkout v5.6
トラックパッドは USB デバイスとして認識する。(Tackpad is recognized as USB Device.) マシンによって、ProductID が異なるので、dmesg でそれを確認する。ここでは、 0x0280 であることが確認できる。(Its ProductID is different on each machine, so check it with dmesg. Here, it can be confirmed it is 0x0280. )
# dmesg
[ 2.546351] usb 5-5: New USB device found, idVendor=05ac, idProduct=0280, bcdDevice= 9.20
[ 2.546353] usb 5-5: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 2.546355] usb 5-5: Product: Apple Internal Keyboard / Trackpad
[ 2.546356] usb 5-5: Manufacturer: Apple Inc.
[ 2.546357] usb 5-5: SerialNumber: FM7020402GHN1QWAH+CML
これをパッチ中の適当なデバイスのものを上書きする。このリストにあるマシンならば変更は不要。自分は USB_DEVICE_ID_APPLE_WELLSPRING10_T2_A
に上書きした。
本来なら PR にすべきところなのだが、patch の作り方を心得ていなくて出せていない。(Update available device. If it available on list, its not need the change. I updated device id of USB_DEVICE_ID_APPLE_WELLSPRING10_T2_A
.)
# vi linux-mbp-arch/4001-touchpad.patch
#define USB_DEVICE_ID_APPLE_WELLSPRING9_ISO 0x0273
#define USB_DEVICE_ID_APPLE_WELLSPRING9_JIS 0x0274
+#define USB_DEVICE_ID_APPLE_WELLSPRING10_T2_A 0x0280
+#define USB_DEVICE_ID_APPLE_WELLSPRING10_T2_B 0x027b
+#define USB_DEVICE_ID_APPLE_WELLSPRING10_T2_C 0x027c
パッチを適用する。(Apply patches.)
patch -p1 --verbose < 3002-applesmc-make-io-port-base-addr-dynamic.patch
patch -p1 --verbose < 3003-applesmc-switch-to-acpi_device-from-platform.patch
patch -p1 --verbose < 3004-applesmc-key-interface-wrappers.patch
patch -p1 --verbose < 3005-applesmc-basic-mmio-interface-implementation.patch
patch -p1 --verbose < 3006-applesmc-fan-support-on-T2-Macs.patch
patch -p1 --verbose < 4001-touchpad.patch
patch -p1 --verbose < 4002-keyboard-backlight.patch
ビルドする設定が設定できるが、特に標準のままで OK。(Select default for kernel build settings.)
make menuconfig
カーネルをビルドする。-j16
は 16 並列のビルドを行うことを示すので、CPU のスレッド数を設定する。自分の場合は別マシンでビルドを行っていた(MacBookAir だと貧弱)。(Build kernel. -j16
means build 16 parallels build, so set the number of CPU threads. On my case, I use other machine, because of MacBookAir is not strong.)
make-kpkg -j 16 --rootcmd fakeroot --initrd --append_to_version=-mbp20 kernel_image kernel_headers
ビルドが終わると、Debian パッケージができるのでインストールする。(After builds, install the debian package.)
sudo apt install ./linux-headers-5.6.0-mbp20+_5.6.0-mbp20+-10.00.Custom_amd64.deb ./linux-image-5.6.0-mbp20+_5.6.0-mbp20+-10.00.Custom_amd64.deb
次の起動でこのカーネルが起動するように Grub を設定し、再起動する。(Set Grub for booting the kernel, and reboot.)
sudo grub-reboot 2
sudo reboot
Ubuntu 起動後、目的のカーネルで起動しているかどうかを確認する。(After booting Ubuntu, check the target kernel is used.)
uname -r
bce を再ビルドしてインストールする。再ビルドインストールの方法は上と同じ。(Rebuild bce in the same way.)
spi ドライバが正しく起動しないことがあったため、再インストールする。(When spi driver does not work, reinstall it.)
sudo dkms uninstall -m apple-ibridge -v 0.1
sudo dkms install -m apple-ibridge -v 0.1
再起動する。(Reboot.)
sudo grub-reboot 2
sudo reboot
正しくトラックパッドのパッチがあたっている場合、bcm5974 というトラックパッドが認識する。(When trackpad patch success, trackpad was recognized bcm5974.)
# xinput list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ bcm5974 id=12 [slave pointer (2)]
大丈夫そうならば、Grub で起動するカーネルをビルドしたものに変更する。grub-customizer を使うと直感的に変更できるので便利。(Set default boot kernel.grub-customize is suitable.)
sudo apt install grub-customizer
sduo grub-customizer
# FunctionキーをFunctionキーとして使う(Using Function Keys as Function Key(not as Media Keys).)
echo 2 | sudo tee /sys/module/hid_apple/parameters/fnmode
# CmdキーをAlt、OptionキーをSuperに割り当てる(Assign Cmd Key to Alt and Option Key to Super.)
echo 1 | sudo tee /sys/module/hid_apple/parameters/swap_opt_cmd
# 2本指タップでの右クリックを有効にする(Enable two finger tap as right click.)
xinput set-prop 'bcm5974' 'libinput Tapping Enabled' 1
# ダブルタップドラッグを無効化する(Disable double tap dragging.)
xinput set-prop 'bcm5974' 'libinput Tapping Drag Enabled' 0
can you translate this to english please?