はじめに
周知の通り、ARM64プラットフォームのコンピューターでOSを動作させると、多くの互換性の問題に直面します。マイクロソフトの長年の努力により、ARMアーキテクチャのWindowsはますます使いやすくなり、x86_64アプリケーションのエミュレーションもスムーズで、性能の損失も比較的少なく、バッテリー駆動時間も長くなりました。例えば、Surface Pro XはARMプログラムのみを実行する場合、画面表示で驚異の6〜7時間のバッテリー駆動が可能ですが、バッテリー容量が約20%大きいSurface Pro 9 Intel版は、省電力モードをオフにすると3.5時間程度しか持ちません。さらに、Pro XはPro 9より丸3年早く発売されたにもかかわらず、日常使用では性能面でまったく劣らず、高負荷時にはPro 9のファンが全開で回りシステムがカクつく一方、Pro Xの方が2020年発売の2世代目として、かえって安定した性能を発揮します。このように、ARMチップ上でPC用OSを動かすことは、ポータブルデバイスにとってますます可能性を広げています。
しかし、現在市販されているLinuxディストリビューションのうち、Snapdragonチップ、特に8cx第1世代と第2世代に正式対応しているものはひとつもありません。私も最初はディストリビューションから試そうと思いましたが、7〜8個のディストリビューションを起動しようとして、すべて失敗しました。調べられる限りの資料(英語や中国語、その他の言語も含む)を調べましたが、Surfaceや他の8cxデバイス向けのインストールチュートリアルを書いた人は誰もいませんでした。これが私の実践に大きな課題をもたらしました。
では、ARM版Windowsがこれほど優れているのに、なぜわざわざLinuxを動かそうとするのでしょうか?
それは、あの評判の悪い微信(WeChat)がARM64版Windowsを提供していないからです。先ほど述べたバッテリー駆動時間は、実行するすべてのソフトウェアがARM64に対応していることが前提です。x86-64のソフトウェアがいくつか同時に動くと、バッテリー駆動時間は約4時間に戻り、1〜2時間短くなります。それでは割に合いません。そこで、このマシンにLinuxをインストールすることにしました。
困難な道のり
理由
まず、ARMデバイスでOSを動かすこと自体は難しくありません。BIOSが通常のPCと同じくらいシンプルで、チップが対応し、OSのカーネルがそのマシンの主要なドライバーに対応していれば、基本的にARM64 PCは動作します。一般的なLinuxカーネルには、一般的なオープンソースドライバーのほとんどが統合されているため、通常のPCにLinuxをインストールする際、ドライバーをインストールするという面倒なプロセスは不要で、一時起動してインストーラーを起動し、プログレスバーが完了するのを待つだけで、すぐに使えるようになります。
しかし、これはSurfaceです。
そもそもSurfaceは通常のPCとは異なり、タッチスクリーン、キーボード、スピーカーなどは、市販の一般的なプラグアンドプレイ製品ではなく、これらのドライバーを入手するのは困難です。さらに、Snapdragon 8cx2チップ自体がほとんどすべてのLinuxディストリビューションと互換性がなく、しかもこのPCのチップはオリジナルの8cx2ではなく、マイクロソフトが改造したMicrosoft SQ2という名前のものです。そのため、私たちは熟練者による対応を待つしかありません。
過程
1日目、私は何も知らずにディストリビューションから始めようとしました。Ubuntu、Debian、CentOS、deepinと試しました。その中で、Debian 13の非フリー版がシステムインストール画面まで起動しましたが、USB、Surfaceのキーボード、タッチスクリーンが使えませんでした。汎用カーネルだけではSurfaceのようなハードウェアに正常にインストールできないことを理解し始めました。
2日目、私はlinux-surfaceプロジェクトに頼ることにしました。
しかし、このプロジェクトには誤解を招く点がありました。ホームページのデバイスサポート一覧にSurface Pro Xのサポートが明記されておらず(サポート対象はすべてx86チップのマシンと記載)、そのため当初はこのプロジェクトを考慮せず、Snapdragon 8cxチップで起動できるLinuxシステムを探していました。プロジェクトのホームページに戻ると、下の方にひっそりとaarch64-arch-mkimgというプロジェクトがありました。これは起動可能なイメージ(ArchLinuxARM、当初検討しましたが公式対応はありません)で、ライブ環境で起動できるUSBブートイメージのようなものです。驚いたことに、これをUSBに書き込むと、表示は正常、USBも正常、SurfaceのキーボードとWiFiも正常に動作しました。
このイメージがあれば、直接ハードディスクにLinuxをインストールすることはできなくても、必要なカーネルプログラムは手に入ります。
私はAIの指示に従って、ディスクパーティション分割とインストールの手順を一歩ずつ進めようと考えました。しかし、画面に表示されるアリのように小さな文字が非常に見づらく、午前中ずっと操作した後、視力が良くなった気がしました……しかし成功せず、システムはLinuxに正常に起動しませんでした。
しかし、私は誤った決断をしました。起動に成功したDebianを研究しようとしたのです。詳細は省きますが、また数時間を無駄にしました……
途方に暮れていたとき、ふと思いつきました。WiFiに正常に接続できるなら、エージェントを使ってsshでPCに接続し、AIに操作させればいいのではないかと。
早速、Mimo Codeを使ってSurfaceに接続し、作業を始めました(実はssh接続も重労働で、失敗するたびにライブ環境への再起動、WiFi接続、root切り替え、ssh有効化が必要で、目と頭と指の拷問でした)。7〜8回の再起動とエラーを繰り返し、午後1時から4時まで作業しました。
しかし、私はただのバカだと気づきました。
ログインが面倒だったので、ずっとXiaomiの無料の基本モデルを使っていました。こんなことは小さなモデルでもできると思っていました。しかし、転機は午後4時から5時、AI利用のピーク時で、無料モデルは非常に遅く、思い切ってmimoにログインして、もう一度やり直してもらいました。最後にAIに指示を送ったとき、成功しました。システムがLinuxコマンドラインインターフェースに起動したのです!まだ素の状態ですが、これは大きな一歩でした。
信じられないかもしれませんが、一発撮りのビデオも保存してあります。Proモデルに切り替えた最初の試行で成功しました。この2日間、私は一体何をしていたのでしょうか?まさに自分自身を苦しめていただけではないですか?!
3日目、素の状態に装飾を施し始めました。これは本当に面倒で、AIの助けがなければ1〜2週間はかかったでしょう。難点は、まずドライバーが不完全でWiFiに接続できず、sshも直接できないこと、そして最も奇妙なことに、アカウントとパスワードがないことでした。まずログイン問題を解決し(こんな小さなこともAIで解決できます)、次に難関、まだネットワークに接続できません。有線LANを挿してもダメでした。そこで、USBブートに使ったUSBメモリをフォーマットし、AIに、以前ダウンロードした有用なカーネルを含むイメージを基にスクリプトを作成させ、ネットワークツールをインストールし、opensshをインストールしてIPアドレスを自動表示させるようにしました。このステップにも忍耐が必要で、エラーに直面する必要があります。後で要点をまとめて公開します。
次のステップは、またsshに接続することでした。時間はまた午後になりました。しかし、少なくとも難点はすべて解決しました。手を解放して、MimoCodeにGNOME(好みでKDEも選べますが、私はNyarcherを適用したかったのです。ArchLinuxをNyarchのように二次元テイストにするパッチです)、微信とQQのLinux ARM64版などの一般的なソフトウェアをインストールしてもらいました(もちろん、この時点でWiFiとBluetoothがドライバーを失うことがあるので、対処が必要かもしれません)。そして、この3日間で最もリラックスした時間が訪れました:お茶を飲むことです。違います、それはあなたたちの話で、私は学科一の動画を勉強しなければならず、PCはそのまま放置でした(ああ、高考が終わって1ヶ月経ちましたが、毎日仕事をしているようで、まったく休暇を取っていません!)。
これで、SurfaceへのLinuxインストールは完了です。
写真や詳しいチュートリアルは下集で!