8
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Nintendo SwitchでUbuntuとAndroidをデュアルブートする

Last updated at Posted at 2021-03-10

Nintendoが発売しているNvidia Tegra搭載のタブレットPC「NintendoSwitch」にUbuntuとAndroidをインストールして動かします。

Nintendo Switchとは

  • 花札やトランプ、百人一首などでおなじみの任天堂が発売しているタブレットPC。ゲーム機ではない。
  • CPU/GPUに謎のAI半導体メーカーNvidia製のTegra X1を搭載。
    • 要するにArm+CUDAが動く、Jetson Nanoと同じチップ
  • RAMは3.4GiB、ストレージは(基本的に)microSDを使う。

前提

  • 本記事はUbuntuに触れたことのある人を前提にします。未経験者はAndroidだけ使えればいいでしょうし。
  • この方法はNintendo公式のものではないです。未対策機なら壊れることはよっぽど無いだろうけどあくまで自己責任で。

必要なもの

  • Nintendo Switch本体 (未対策機)
    • 対策機かどうかは自分で調べて
    • 自分はアキバのWorldMobileで買った
  • microSD
    • 2つOS入れるなら128GBはあったほうがいい。どうせみんなAndroidゲームに容量使うし。
  • RCMジグ
    • Joy-conの特定のピンをショートさせる器具、治具。
  • Windows PC
    • Payload送信に使う
    • Macでもできるらしいけど未検証
  • PC→USB-Cの通信ケーブル

必要ないもの

  • Joy-Con
    • Nintendo Switchを普通に起動するとセットアップにJoy-Conの接続を求められるけど、電源ボタン12秒長押しで強制終了できる。

①準備

ー PCにTegraRCMをインストール

②RCMモードでhekate起動

  • hekate_ctcaerのZIPを落とし、bootloader/とbinをSD直下に入れる。
- Switchの右Joy-Conスロットにジグをセットし、音量+を押しながら電源ボタンを押して起動。 - この時点では画面は真っ黒。
  • SwitchとPCをUSBで繋いで、TegraRCMを起動。
    • 必要に応じてドライバーを入れる
    • ダウンロードしたhekateのbinファイルを開いて、Inject payloadを実行

③SDカードにパーテーションを設定

  • hekate内のToolsからPartition SD Cardを開く
  • スライダーで適当にLinuxとAndroidに容量を割り振る
    • このとき、FAT32の領域を十分に残す(16GBぐらいあったほうがいい)

④Android10のインストール

注意

先にAndroidを入れたほうがいい。 Ubuntuを入れたあとでAndroidを入れようとしたら、後述のteamwinのメニューにUbuntu環境をパーティションごと飛ばされたので。

  • Partition ManagerのSD UMSを起動する
    • Switchrootから icosa-tablet-YYYYMMDD-rel.zip を落として解凍しSDに入れる 
      解凍は1回だけ
    • おなじくextras/alarm-disable.zip extras/joycon-xbox.zipをダウンロードしSDに入れる
      • スリープ中にAndroidのアラームが作動するとバグるらしく、それを妨害するためのツール
      • Joy-ConがAndroidで使えるようになるらしい(未検証)
    • opengappsからARM64、10.0、PICOを選んでダウンロードしSDに入れる
      • このOSイメージにはGooglePlayが入っていないので。

安全な取り外し→USBを抜く
- 下のボタンからFlash Androidを実行

  • teamwinのメニューが出てくる
    • installを選択し、../external-sd/linege-hogehoge.zipを選択してインストール。
    • 戻って、alarm-disable joycon-xbox open-gapps-hogehogeをそれぞれイントール
    • 再起動
  • hekateのhomeからMore Configsを選択してAndroidを起動
    • いつも通りのセットアップを済ませる
  • 注意; 初期値で音量がMAXなので気をつけて
  • 注意; 5GHzのWi-Fiは不安定かもしれない

参考までにデレステを動かしてみたらこんな感じ
(お願いシンデレラ 5人 3Dリッチ MV)

⑤Ubuntuをインストール

  • Partition ManagerのSD UMSを起動する
    • Switchrootから switchroot-ubuntu-VERSION-YYYY-MM-DD.7z を落として解凍
    • bootloader/ switchroot/をSDのFAT32領域の直下に入れる
    • ②のhekate_ctcaer_VERSION_Nyx_VERSION/bootloader/bootloader/を上書きする
    • 安全な取り外し→USBを抜く
    • Flash Linuxを実行
  • hekateのhomeからMore Configsを選択してUbuntuを起動
- 個人的に推奨; 初期設定ではUnityのデスクトップが起動するので、ログイン画面の歯車⚙アイコンからUbuntuを選んで起動する - いつも通りのセットアップを済ませる - aptが死んでいるので修正する
sudo sed -E -i 's/turul.canonical/ports.ubuntu/g' /etc/apt/sources.list
  • 個人的に推奨; jetson-fan-ctlのインストール

    • これはなに?→Jetson用のファンコンソフト。デフォでファンコントロールされてはいるけど強すぎる気がしたので。
    • Gitを見ながらpip3でインストール
    sudo apt update
    sudo apt install python3-dev python3-pip python-dev python-pip git -y
    git clone https://github.com/Pyrestone/jetson-fan-ctl
    cd jetson-fan-ctl
    sudo ./install.sh
    
    
    • よしなにconfig.jsonを書き換える
    • ※自分の環境では動いてますが公式にサポートはされてなさそう
  • 注意; 初期値で画面の明るさがMAXなので気をつけて

追記

SwitchrootのAPTリポジトリ追加したほうが良さそう
https://newrepo.switchroot.org/

デュアルブート確認

  • hekateのhomeからMore Configsを選択したところでAndroidとUbuntuが並んでて両方起動できたらOK

参考

8
3
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?