Harukaのnote

Linuxやプログラミング,写真,旅行等の記録帳

OpenSUSE Leap 15.5 で chrome remote desktop 2024年版

以前もOpenSUSE用のchrome remote desktopの記事を書きましたが、最近はその方法でうまく起動できなくなっていたので、最新版(2024年2月)を自分用のメモとして残しておきます。 過去記事は以下です。

OpenSUSE で chrome-remote-desktop host を自動起動 - Harukaのnote

目次

事前に必要なソフトウェアの準備

以下のソフトウェアは必要なので、インストールしておきます。

Google Chrome

Google Chromeの公式サイトより、rpm版をインストールします。

alien

.debパッケージ(Ubnutu/Debian用)を.rpmパッケージに変換するためのソフトウェアです。 以下のOpenSUSEのsoftwareページからバイナリパッケージを直接取得するを選択し、15.5用のバイナリパッケージをインストールします。 このとき、「依存関係に問題があります」と表示されますが、リポジトリを追加しないバイナリインストールのときは大抵言われますので、「無視」で大丈夫です。 https://software.opensuse.org/download/package?package=alien&project=system%3Apackagemanager:embed:cixdpyinfote

その他依存するソフトウェア

以下のパッケージも必要ですが、デフォルトのリポジトリに含まれているのでzypper installで一括インストールします。

sudo zypper install xorg-x11-server-Xvfb cairo libdrm-tools gtk3 libpango-1_0-0 pkexec xdpyinfo xdg-utils python3-pyxdg lightdm

Display Managerの変更

デスクトップにGnomeを使っている場合、Gnome標準のgdmchrome remote desktopと相性が悪いので、変更する必要があります。 今回は、先程インストールしたlightdmに切り替えます。yast経由で簡単に変更できます。

使用したいdmの番号を入力してEnterキーを押します。

sudo update-alternatives --config default-displaymanager


  選択肢    パス                                優先度  状態
------------------------------------------------------------
  0            /usr/lib/X11/displaymanagers/gdm       25        自動モード
  1            /usr/lib/X11/displaymanagers/console   5         手動モード
  2            /usr/lib/X11/displaymanagers/gdm       25        手動モード
* 3            /usr/lib/X11/displaymanagers/lightdm   15        手動モード
  4            /usr/lib/X11/displaymanagers/xdm       10        手動モード

現在の選択 [*] を保持するには <Enter>、さもなければ選択肢の番号のキーを押してください: 3

pam権限の変更

chrome remote のpam権限を変更します。

sudo vim /etc/pam.d/chrome-remote-desktop 

以下のように変更します。

# Copyright (c) 2012 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

#@include common-auth
#@include common-account
#@include common-password
#session [success=ok ignore=ignore module_unknown=ignore default=bad] pam_selinux.so close
#session required pam_limits.so
#@include common-session
#session [success=ok ignore=ignore module_unknown=ignore default=bad] pam_selinux.so open
#session required pam_env.so readenv=1
#session required pam_env.so readenv=1 user_readenv=1 envfile=/etc/default/locale

# 以下を追加
auth required pam_permit.so
account required pam_permit.so
password required pam_permit.so
session required pam_permit.so
session optional pam_umask.so

ここで、pam権限とdmの変更を反映させるために一度、再起動します。

chrome remote desktopのインストール

chrome remote dektopのサイトから、「リモート アクセスの設定」を押して.debのパッケージを取得します。 remotedesktop.google.com

rpmに変換

alienを使って.rpmに変換します。

sudo alien -r --scripts ./chrome-remote-desktop_current_amd64.deb

インストール

rpmコマンドを使ってインストールします。 120.0.6099.24-2の部分はバージョンなので、都度変化します。

sudo rpm -ivh --replacefiles ./chrome-remote-desktop-120.0.6099.24-2.x86_64.rpm 

設定ファイルの準備

ホームに設定ファイルを作成します。

vim ~/.chrome-remote-desktop-session

以下のように設定します。これはgnomeの例で、cinnamonを使う場合はexec /usr/bin/cinnamon-sessionのように変更します。

export $(dbus-launch)
exec /usr/bin/gnome-session

画面解像度を指定したい場合、以下のようなファイルを作成します。

mkdir ~/.config/chrome-remote-desktop

vim ~/.config/chrome-remote-desktop/Size

以下のように書くことで任意の解像度に設定できます。

1920x1080

Groupの追加

groupにchrome-remote-desktopを追加し、そこに自分を追加します。

sudo groupadd chrome-remote-desktop
sudo usermod -a -G chrome-remote-desktop $USER

chrome remote desktopの起動

以前はsystemctlで起動していましたが、今はhttps://remotedesktop.google.com/headlessより、起動コマンドを取得するようです。 「開始」→「次へ」→「承認」と進め、Debian Linux用のコマンドをコピーして、ターミナルより実行します。

DISPLAY= /opt/google/chrome-remote-desktop/start-host --code="XXXXXX" --redirect-url="https://remotedesktop.google.com/_/oauthredirect" --name=$(hostname)

--code="XXXXXX"の部分が時間により変化するので、失敗したときは再度サイトにアクセスして発行します。

確認

https://remotedesktop.google.com/accessからマシンがオンラインとなっていることが確認できたら成功です。

エラーが発生する場合

大抵は依存するソフトウェアが足りていない状況です。 以下のコマンドでログを確認して、足りないソフトウェアを追加します。

sudo journalctl | grep chrome-remote-desktop