logo

クロームを通じてLinuxにリモートアクセスする方法と黒い画面の問題の解決方法 📂プログラミング

クロームを通じてLinuxにリモートアクセスする方法と黒い画面の問題の解決方法

概要

Linuxの場合、Chromeリモートデスクトップへの接続がWindowsほど簡単ではない。黒い画面とカーソルだけが表示され、使用できないという問題があるため、これを解決する方法を見てみよう。簡単な作業ではないが、初心者でも見て従うことができるようにできるだけ簡単に書いた。

ガイド

接続を試みるクライアントclient側をオリジンorigin、接続を許可するサーバserver側をリモートremoteと呼ぶ。

1. リモートデスクトップアプリのインストール

リモートで作業する。

https://dl.google.com/linux/direct/chrome-remote-desktop_current_amd64.deb

リモート側で上記リンクをクリックして chrome-remote-desktop_current_amd64.deb ファイルをダウンロードしてパッケージをインストールする1。最近では、LinuxでもDebianファイルマネージャを通じてダブルクリックで簡単にインストールできる。

alt text

2. SSHを通じたリモートデスクトップの設定

オリジンで作業する。

alt text

リモートデスクトップページで上記のような g.co/crd/headless ページまたは https://remotedesktop.google.com/headless リンクに遷移するように案内される。オリジンでアクセスしてみると、次のように案内が表示される。

alt text

承認/次へなどのボタンをクリックしていくと、上記のように長く複雑なコマンドが提供されるページに到達する。赤い四角で示されたボタンを押してコマンドをクリップボードにコピーする。

alt text

sshを通じてリモートに接続した後、コピーしたコマンドをペーストすると6桁以上のPIN(パスワード)を設定するように案内される。sshでの接続方法がわからない場合はCLIによるSSHサーバ接続の方法ポストを参考にする。

alt text

最後にリモート側でパスワードを入力すると、次のようにホストが正常に開始されたというメッセージが表示される。

3. スクリプトの修正 2

リモートで作業する。ここからが本格的に難しい。

3-1. アプリの停止

alt text

sudo cp /opt/google/chrome-remote-desktop/chrome-remote-desktop /opt/google/chrome-remote-desktop/chrome-remote-desktop.orig
/opt/google/chrome-remote-desktop/chrome-remote-desktop --stop

リモート側でリモートデスクトップページを確認すると、「このデバイス」にあったインストール案内の代わりにリモートデバイスが追加された。スクリプトを編集する前に、まず上記のコマンドを実行してスクリプトをバックアップし、実行中のChromeリモートを停止しよう。


3-2. ディスプレイ番号

echo $DISPLAY
sudo gedit /opt/google/chrome-remote-desktop/chrome-remote-desktop

alt text

ディスプレイ番号を確認し(おそらく0であろう)、geditを使ってスクリプトファイルを開こう。

alt text

FIRST_X_DISPLAY_NUMBER を確認したディスプレイ番号に変更する。デフォルト値は20であろう。


3-3. get_unused_display_number の修正

alt text

while os.path.exists(X_LOCK_FILE_TEMPLATE % display):
    display += 1

get_unused_display_number 関数を見つけ、上記の while 文をコメントアウトする。


3-4. launch_session の修正

alt text

    display = self.get_unused_display_number()       
    self.child_env["DISPLAY"] = ":%d" % display

launch_session 関数を見つけ、self._setup_gnubby() から self.launch_x_session() または self.launch_desktop_session() までをコメントアウトする。そして上記のコードをコメントの直下に挿入する。

4. 接続の確認

/opt/google/chrome-remote-desktop/chrome-remote-desktop --start

再度Chromeリモートのスタートアプリを実行する。

alt text

オリジンからLinuxリモートに正常に接続できることを確認する。

環境

  • Linux Mint 21.2 Cinamon v5.8.4
  • NAVER Whale v3.26.244.21