はじめに
周知のとおり、ARM64プラットフォームのコンピューターでコンピューターシステムを動かすと、互換性の問題にかなり直面します。マイクロソフトの長年の努力により、ARMアーキテクチャのWindowsはどんどん使いやすくなり、x86_64アプリケーションのエミュレーション実行も快適になり、性能低下も少なく、より長いバッテリー駆動時間を得られるようになりました。たとえばSurface Pro Xは、ARMプログラムだけを動かしている場合、画面点灯状態で驚異の6〜7時間もバッテリーが持ちます。一方、バッテリー容量が約20%大きいSurface Pro 9 Intel版は、省電力モードをオフにした場合、わずか3.5時間かそれ以下しか持ちません。しかもPro XはPro 9より丸3年も前に発売されたにもかかわらず、日常使用での体感性能はほぼ遜色なく、高負荷時にはPro 9のファンが唸りを上げてシステムがもたつき、性能の出方という点では2020年発売のSurface Pro X第2世代にすら及ばないと感じるほどです。つまり、ポータブルデバイスにおいてARMチップ上でコンピューターOSを動かすことの可能性は、ますます大きくなっているのです。
しかし、現在市販されているすべてのLinuxディストリビューションの中で、Snapdragonチップに適合しているものは一つもありません。特に8cx第1世代と第2世代はそうです。私も最初はディストリビューションから手をつけようとしましたが、7〜8種類のディストリビューションを起動してみた結果、すべて失敗しました。ほぼすべての資料(中国語・英語、そしてさらに多くの言語の資料を含む)を調べましたが、Surfaceやその他の8cxデバイス向けのインストールチュートリアルを書いた人は誰もいませんでした。これは私の実践にとって大きな挑戦となりました。
では、Windowsが動くARMノートがそんなに良いなら、なぜ私はわざわざLinuxを動かそうとしたのでしょうか?
ここで、不評を買っているWeChatの話をしなければなりません。WeChatはARM64版Windowsを提供していません。先ほど触れたバッテリー駆動時間は、実行するソフトウェアがすべてARM64に対応していることが前提です。x86-64のソフトウェアがいくつか同時に動くだけで、駆動時間は4時間前後に戻り、1〜2時間短くなってしまいます。やはり割に合いません。そこで、このマシンにLinuxをインストールすることにしたのです。
苦難の道のり
理由
まず、ARMデバイスでOSを動かすこと自体は難しくありません。BIOSが普通のパソコンと同じくらいシンプルで、チップが適合し、OSのカーネルがこのマシンの重要なドライバーに適合していれば、基本的にあなたのARM64パソコンは動きます。一般的なLinuxカーネルは、よくあるオープンソースドライバーのほとんどを統合しているため、普通のパソコンにLinuxをインストールするときは、面倒なドライバーインストールが不要なことが多いことに気づくでしょう。一時起動に入り、インストールをクリックし、インストーラーのプログレスバーが最後まで進むのを待てば、パソコンはすぐに使えるようになります。 しかし、これはSurfaceなのです。 Surface自体が普通のパソコンと違うことはさておき、タッチスクリーン、キーボード、スピーカーなど、どれも市販でよく見かけるプラグアンドプレイ製品ではなく、これらのドライバーを手に入れるのは非常に困難です。Snapdragon 8cx2というチップだけでも、ほぼすべてのLinuxディストリビューションと互換性がありません。しかもこのパソコンのチップは素の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。最初は検討しましたが、公式には適合していません)で、いわばlive環境のUSB起動イメージを起動できるだけのものです。驚いたことに、これをUSBに書き込むと、表示は正常、USBも正常、SurfaceのキーボードやWi-Fiまで正常に適合していました。 このイメージがあれば、たとえこれを使って直接ハードディスクにLinuxをインストールできなくても、少なくとも必要なカーネルプログラムを手に入れることができます。
私の考えは、AIのinstructionに一歩ずつ従って、ディスクパーティション作成とインストールのプロセスを完了させることでした。しかし、アリのように小さな文字が画面に表示され、見ていてとても辛かったです。午前中いっぱい操作した後、視力がかなり良くなった気がしました……しかし成功せず、システムは正常にLinuxへブートしませんでした。 しかし、私は間違った決断をしました。起動して画面まで到達できたDebianを研究することにしたのです。詳細は省きますが、また数時間を無駄にしました…… 途方に暮れていたその時、突然あることを思いつきました。Wi-Fiに正常に接続できるなら、なぜagentを使ってsshで自分のパソコンに接続し、AIに操作させないのか? 善は急げと、パソコンでMimo Codeを使ってSurfaceに接続し、作業を始めました(実はssh接続も体力仕事で、失敗するたびにlive環境への再起動、Wi-Fi接続、rootへの切り替え、sshの起動が必要で、毎回目と頭と指への拷問でした)。立て続けに7〜8回の再起動とエラーを繰り返し、午後1時から4時まで作業しました。
しかし、私は自分がただの馬鹿だと気づきました。 ログインが面倒だったので、ずっとXiaomiの無料ベーシックモデルを使っていました。こんなことは適当な小さいモデルでできると思っていたのです。しかし転機となったのは、午後4〜5時はちょうどAI利用のピーク時間帯で、無料モデルのラグが非常にひどく、いっそMimoにログインして、もう一度やらせることにしました。最後にAIに指示を入力したとき、成功したのです。システムはLinuxのコマンドライン画面まで正常に起動しました!まだスケルトン状態ですが、これは大きな一歩です。 本当ですよ、私は一部始終を記録した動画も保存しています。Proモデルに切り替えた直後、最初の一回で成功したのです。この2日間、私はいったい何をしていたのでしょうか?ただ自分を苦しめていただけではないですか?!
3日目、スケルトン状態の家の内装工事を始めました。内装は本当に面倒な作業で、AIの助けがなければまる1〜2週間かかっていたでしょう。難しい点は以下のとおりです。まず、このシステムはドライバーが不完全で、Wi-Fiに接続できず、直接sshすることもできません。最も奇妙なのは、アカウントとパスワードすらなかったことです。そこでまずログイン問題を解決し(この程度の小さなことはAIでも解決できます)、その後、難題がやってきました。まだネットワークに接続できないのです。有線を挿しても無駄でした。このとき、以前USB起動に使ったUSBをフォーマットし、AIに、以前ダウンロードした有用なカーネルを含むイメージに基づいてスクリプトを書かせ、ネットワーク接続ツールをインストールさせ、opensshをインストールさせ、IPアドレスを自動表示させる必要があります。このステップにも忍耐が必要です。エラーと正面から向き合わなければなりません。後で要点をまとめて公開します。
次のステップは、再びssh接続です。時間はまた午後になりました。しかし、少なくともこれで難題はすべて解決しました。引き続き手を解放し、MimoCodeにGNOME(好みに応じてKDEを選んでも構いませんが、私はNyarcherを適用したかったのです。ArchLinuxをNyarchのように二次元の雰囲気で満たすパッチです)、WeChatとQQのLinux ARM64版などのよく使うソフトウェアをインストールさせました。(もちろん、実はこのときWi-FiとBluetoothのドライバーが時々落ちることがあり、解決が必要かもしれません)そして、この3日間で最もくつろげる時間がやってきました:お茶を飲むこと。いや、それはあなたたちですね。私はまだ学科1の動画を勉強しなければならず、パソコンはここに放置されました。(ああ、大学入試が終わってからもう1ヶ月経った気がしますが、毎日仕事をしているようで、まったく休みを取っていません!)
これで、SurfaceへのLinuxインストールは終了です。 画像付きの詳細なチュートリアルなどは次回にしましょう!