セッティングのための事前調査 - M1 MacBook Air インストール覚書(1)

対象となるマシン

以下の MacBook を購入しました。US Keyboard にカスタマイズしたため、現在配送待ちです。

  • Apple MacBook Air (M1, 2020)
    • メモリ: 16GB
    • SSD: 1TB
    • キーボード: US(米国)

これまでの調査内容

MacTeX

MacTeX About Arm: Arm 対応済みとのこと。ほとんどのコマンドが Universal binary になっています。TeX Live Manager のタイミングは注意が必要そうです。実際にインストールする時にはよく確認してから実施しようと思います。

Homebrew

Apple SiliconにおけるHomebrewのベストプラクティス: Rosetta2 で Intel バイナリはインストールできるようです。M1 最適化されたパッケージもすでに存在するようですが、まだ一部のようです。まだ Arm の方は bottle 化はまだのようでソースからコンパイルする形になりそうです。Intel 版を /usr/local、Arm 版を /opt/homebrew にインストールすることで棲み分け可能らしいです。この記事ではターミナルをロゼッタで開いていますが、「arch -x86_64 コマンド」でもできそうなのでそちらで試してみる予定です。昔は動かないものを無理矢理パッチ当てしながらコンパイルしていたこともありますので、多少のことであれば対応できるかもしれません。

一番のハードルは gcc でしょうか。gcc 依存のパッケージが少なからず存在した記憶があるので、これが来るとパッケージの移行が進みそうです。なお、現在のM1 への対応状況一覧も紹介されています。

Matlab

Is MATLAB supported on Apple Silicon Macs?: 12月の 2020b は Rosetta2 での動作をサポート予定しているようです。Rosetta2 で動かないものは「Polyspace」と「Simulink Desktop Real-Time」の二つとのことです。現在、Apple silicon にネイティブ対応できるように開発中らしいです。2021a には流石に間に合うでしょうか。

Electron

Electron 11.0.0: 11/17 に Apple Silicon 対応の11.0 が出ました。今後、これでビルドし直した Slack、Visual Studio Code などがリリースされるものと思います。

Visual Studio Code

Download Visual Studio Code Insiders: ARM64 Experimental 版が配布されていました。Insider ではなく Experimental なので、かなりバギーとのこと。11/23 (日本時間11/24 9時前)に「update electron11」というブランチが master に取り入れられていました。明日のビルドでは Electron 11 ベースのものが動いているかもしれません。

関係するものを見つけたら追加していきます。

事前戦略

思いついたことを箇条書きで示しておきます。

デバイス関連

  • iPad Pro 12.9
    • 用途変更: メインでの持ち歩き → 教室での板書説明および研究室での採点業務
    • ネットワーク変更: SIM 接続 → 無線LAN接続 (研究室の無線 LAN、または学内無線 LAN)
    • SIM:手持ちのポケットWiFi に移すかも。
    • 利用アクセサリ: USB-C to HDMI、USB-C to VGA
  • iPhone 11
    • 用途変更: AppleWatch の親機 → 移動中のメイン端末
    • ネットワーク: Mineo スイッチオンで 200kbps → パケット放題を付けて500kbpsにしてテザリング
    • 学内でのネットワーク: 研究室の無線LAN、または学内無線LAN
  • Mac mini 2012
    • 用途変更: 研究室固定マシン → いよいよ Big Sur 非対応となったため引退
  • MacBook 12 2015
    • 用途変更: 教室等での実演・プレゼン機 → Intel の Big Sur 検証機 (かろうじて Big Sur 対応のまま残ったため)
    • 接続先: 研究室の無線 LAN
  • MacBook Pro 15inch 2019
    • 用途変更: メインマシン → 研究室固定マシン (Mac mini の代替)
    • 利用場所(変更なし): 現状のままノートスタンドの上で利用 (メインでなくなるが、クラムシェルモードだと熱が心配なため)
    • Windows運用(変更なし): VMware Fusion で継続
    • サーバとしての運用開始: Docker マシンとしての Linux 運用も検討、また研究室の Jenkins サーバの移行も検討 (メモリを 32GB 載せてるので有効活用)
    • Thunderbolt 3 Hub: Caldight TB3 Plus → 追加購入したTuneware の Almighty Dock TB3
    • 外部モニタ1: 27インチのモニタ(CG-275)をポートレートモードのまま利用継続。DisplayPort (フル or ミニ)とデュアルリンクの DVI しか接続できないため、USB-C to DisplayPort のアダプタを Tuneware の Thunderbolt 3 パススルー端子に接続して利用
    • 外部モニタ2: USB-C 接続している 42.5インチの LG の4K モニタは取り外し
    • ネットワーク1: 教職員ネットワークは Caldigit の RJ45 端子から Tuneware の RJ45 端子に移動
    • ネットワーク2: 共用ネットワークは Caldigit に接続していた USB-LAN アダプタを Tuneware の USB-A 端子に移動
    • ネットワーク3: 無線 LAN はこれまで通り研究室無線 LAN に接続
    • USB-3 Hub: これまでの 13port USB-A Hub は Tuneware の USB-A 端子に接続。Scansnap などの固定ハードウェアは全てここから接続
    • 電源: Caldigit の PD がなくなるので、HyperJuece の 100W PD を接続。iPad Pro も同時に接続
    • TimeMachine: USB-C HDD → Drobo 5N2 に移行 (持ち運びを考慮しなくなったため)
  • MacBook Air M1 2020
    • 利用用途: 基本持ち運び用として購入したが、あまりにパフォーマンスが高いようなのでメインマシンとして運用
    • Thunderbolt 3 Hub: MacBook Pro で使っていた Caldigit TB3 Plus を移行
    • 外部モニタ: 42.5インチの LG の 4K モニタを Caldigit の Thunderbolt 3 端子から接続
    • ネットワーク1: 教職員ネットワークは Caldigit の RJ45 端子に接続
    • ネットワーク2: 研究室の無線 LAN、または学内無線 LAN
    • ネットワーク3: 学外では iPhone のテザリングもしくはポケット WiFi に接続
    • 外部モニタ: Thunderbolt 3 のパススルーポートがあるので、上述の LG の 4K モニタに接続。
    • 電源: Caldigit の PD から供給
    • TimeMachine: MacBook Pro で使っていた USB-C HDD を流用 (移動が多いマシンは TimeMachine バックアップが壊れることが多いため)

設定関連

  • Intel 版で使っている dotfiles の bootstrap.sh は全く使えないので、個別にインストール
  • 後日落ち着いたら、uname -m をチェックして bootstrap.sh にて、インストールするものを切り替える仕組みを作成
  • Homebrew は Intel 版を /usr/local に M1 版を /opt/homebrew にインストール
  • PATH は /opt/homebrew/bin ? を先に検索、その後に /usr/local/bin を検索するようにして、M1 版を優先して実行するように設定
  • 記事ではパス名まで記述するとあるが面倒なので、/opt/homebrew/bin/brew はそのままとし、/usr/local/bin/brew は /usr/local/bin/brew_x86 からシンボリックリンクを作成。
  • Microsoft Office はとりあえず Rosetta2 でインストールした後に、インサイダー版で Universal のものをインストール。
  • GUI のソフトウェアは、brew-cask でインストール
  • App Store のソフトウェアは、mas でインストール
  • 設定ファイルの同期はこれまで通り mackup により iCloud Drive で共有
  • 設定ファイルを共有するため、config.fish や .zshrc では uname -m により処理を切り替えられるよう記述

次の記事: 既存環境の環境変更 - M1 MacBook Air インストール覚書(2) - hkob’s blog

hkob.hatenablog.com