Chrome remote desktop in Ubuntu

Chrome remote desktop in Ubuntu

Tags
Remote-desktop
Created time
2024. 05. 01.
Category
Ubuntu

Intro

구버전 다운로드

Chrome remote desktop은 Windows에서는 설치 후 바로 사용 가능하지만, Ubuntu에서는 추가 설정이 필요하다.
순서대로 따라하면 오류 없이 Ubuntu에서 Chrome remote desktop 사용이 가능하다.

설치 및 추가 설정 중 문제가 생겼을 경우

  1. Chrome remote desktop을 삭제한다.
sudo apt remove chrome-remote-desktop sudo apt update
  1. 각종 설정 파일들을 삭제하거나, 확인해둔다. 문제 생겼다고 바로 삭제할 필요 없음.
~/.config/chrome-remote-desktop # 폴더 내의 파일들 /opt/google/chrome-remote-desktop/chrome-remote-desktop # nano, gedit으로 열 수 있는 파일 /usr/share/xsessions/ubuntu.desktop # 우분투면 ubuntu.desktop, 다른 환경이면 [환경이름].desktop ~/.chrome-remote-desktop-session # session을 지정하기 위해서 필요한 파일
  1. 컴퓨터를 켰는데 검은화면이 나오고, 원격 모니터에만 화면이 뜨는 경우
원격 화면을 들어갔는데, session을 선택하는 화면이 나오면 잘못된 것이다. 여기서 특정 session을 선택할 경우, chrome remote desktop을 삭제 후 재설치 하는 것이 완전한 설치에 도움이 된다. 삭제하고 싶지 않으면 systemctl을 이용하여 삭제해도 된다.
systemctl stop chrome-remote-deskop
이 화면이 뜨면 실패한 것이다. (아닐수도 있지만, 정상적으로 설정했다면 이 화면이 뜨지 않고 바로 원격 화면이 뜬다.)
이 화면이 뜨면 실패한 것이다. (아닐수도 있지만, 정상적으로 설정했다면 이 화면이 뜨지 않고 바로 원격 화면이 뜬다.)
  1. 3번과 비슷하게 검은 화면이 뜨는 경우
설치 및 설정이 올바르게 진행되지 않았으므로 재설치를 진행한다.
  1. 다른 설정들을 따라하다가 ubuntu-desktop이 아는 다른 session을 설치해버린 경우
xubuntu-desktop 같은 것을 설치하면 desktop session interface가 바뀌어버린다. 큰 문제는 없는데 원격 설정에 걸림돌이 되므로 바로 제거해준다.
sudo apt remove xubuntu-desktop # 예를 들어 xubuntu-desktop과 같은 session interface sudo apt update

1. Install Chrome remote desktop

notion image
다운로드 버튼을 누르고 설치한다.
  1. Desktop 이름을 입력
  1. PIN 번호 6자리 설정
이 후에 실행하지 않고 바로 아래 설정으로 넘어간다.

위의 화면이 뜨지 않을 경우(headless)

g.co/crd/headless 페이지로 이동하여 SSH를 통해 설치해야 한다는 문구만 뜨고, 원격 액세스 설정이 뜨지 않을 경우가 있다. SSH를 통해 설정 탭으로 이동 후 지침을 따른다.
해당 지침은 환경 설정을 해주는 작업으로, 설치 - SSH를 통한 환경설정 - 맞춤 세션 - config 파일 수정 순서로 진행해야한다. 따라서 일단 설치를 하고(deb 파일로), 위 페이지로 이동 후 설정을 해주자. 설정 후에는 바로 키지 않고, 아래의 config 파일 수정 절차를 따른다.
DISPLAY= /opt/google/chrome-remote-desktop/start-host --code="[code]" --name=$(hostname)
위와 같은 코드를 입력하여 설정을 완료하라고 한다.

가상 데스크톱 맞춤 세션

우분투에서는 화면을 표시하기 위해서 여러 가지 세션 표시 방식을 사용하는데, 보통 일반 사용자들이 원하는 것은 나의 데스크톱 화면이 그대로 뜨는 것을 원한다. 그 외에 원격 접속용 간소화된 세션을 띄우려고 하거나, 특수한 세션을 사용하고자 하면 다른 방법을 사용하면 되고, 여기서는 데스크톱 화면 그대로 띄우는 방법에 대해 서술한다.
구글에서 리눅스 환경에서의 설정 방법을 다음과 같이 설명하고 있다. 이해하기 쉽게 설명을 추가하였다.

  1. /usr/share/xsessions/에서 원하는 데스크톱 환경에 맞는 .desktop 파일을 찾습니다. 파일에서 Exec=으로 시작하며 세션을 시작하는 데 필요한 명령어가 있는 행을 찾습니다. Exec=[이부분을 복사해놓기]
notion image
Exec= 뒷 내용이 그림과 다르다면, 그림에 나와 있는 값 그대로 사용해도 된다.
env GNOME_SHELL_SESSION_MODE=ubuntu gnome-session —session=ubuntu
Exec= 뒷 내용이 그림과 다르다면, 그림에 나와 있는 값 그대로 사용해도 된다. env GNOME_SHELL_SESSION_MODE=ubuntu gnome-session —session=ubuntu
  • 예를 들어 Cinnamon에는 cinnamon.desktop이라는 이름의 파일이 있습니다. 일부 버전에서 파일에 gnome-session --session=cinnamon과 같은 명령어가 포함되어 있을 수 있습니다.
  1. 홈 디렉터리에 exec /etc/X11/Xsession '<YOUR_EXEC_COMMAND>' 콘텐츠가 포함된 .chrome-remote-desktop-session 파일을 만듭니다. 이 세션 파일은 원래 없는 파일이고, 이 단계에서 생성되는 파일이다. 그러므로 내용이 비어있으며, exec로 시작하는 저 줄 한줄만 적고 저장하면 된다.
  1. <YOUR_EXEC_COMMAND>를 .desktop 파일 끝부분의 명령어로 대체합니다. 아까 복사해두었던 내용을 여기에 붙여넣기 한다.
      • Cinnamon 예시에서 올바른 명령어는 다음과 같습니다. exec /etc/X11/Xsession 'gnome-session --session=cinnamon'
  1. $HOME/.chrome-remote-desktop-session 파일을 저장합니다. 다음에 Chrome 원격 데스크톱 호스트를 다시 시작하면 변경된 것을 확인할 수 있습니다. 서비스를 시작하지 말고, 아래 설정들을 더 해야한다.
  1. 가상 데스크톱 세션이 생성되고 Chrome 원격 데스크톱이 시작되면 .chrome-remote-desktop-session이 시작됩니다.

.chrome-remote-desktop-session까지 만들어서 저장했다면 다음 과정으로 넘어간다.

2. config 폴더 생성

mkdir ~/.config/chrome-remote-desktop
만약 위의 설치 과정에서 원격 엑세스 설정이 나오지 않으면 config 폴더를 생성해준다. 그러면 설정창이 뜬다.
이후 이름 설정 → PIN 번호 설정을 해주면 된다.

3. disable chrome hardware acceleration

Chrome - 설정 - 시스템 - 가능한 경우 하드웨어 가속 사용 - 해제

4. usermod 및 디스플레이 설정

# username은 user@desktop과 같이 terminal 상에 나오는 @ 앞 user 이름이다. sudo usermod -a -G chrome-remote-desktop <username>
아래의 과정을 하나하나 따라간다.
# chrome remote desktop 종료 /opt/google/chrome-remote-desktop/chrome-remote-desktop --stop # 만약을 대비하여 백업본, 재설치해도 되므로 굳이 안해도 된다. sudo cp /opt/google/chrome-remote-desktop/chrome-remote-desktop /opt/google/chrome-remote-desktop/chrome-remote-desktop.orig # 디스플레이 넘버 확인, 보통 :1 이렇게 나온다. 1이라는 뜻. 이 값을 나중에 사용한다. echo $DISPLAY # 설정파일을 수정하기 위해 들어간다. sudo gedit /opt/google/chrome-remote-desktop/chrome-remote-desktop
### FIRST_X_DISPLAY_NUMBER = 1로 수정. 또는 위에서 얻은 디스플레이 넘버를 여기에 기입한다. ### DEBIAN_XSESSION_PATH = "/etc/X11/Xsession" X_LOCK_FILE_TEMPLATE = "/tmp/.X%d-lock" FIRST_X_DISPLAY_NUMBER = 1 # Amount of time to wait between relaunching processes. SHORT_BACKOFF_TIME = 5 LONG_BACKOFF_TIME = 60
### 다음과 같이 주석처리 하고, 밑의 두줄을 다음과 같이 추가한다. ### # display = self.get_unused_display_number() # self.child_env["DISPLAY"] = ":%d" % display def launch_session(self, server_args, backoff_time): """Launches process required for session and records the backoff time for inhibitors so that process restarts are not attempted again until that time has passed.""" logging.info("Setting up and launching session") self._init_child_env() self.setup_audio() self._setup_gnubby() # self._launch_server(server_args) # if not self._launch_pre_session(): # If there was no pre-session script, launch the session immediately. # self.launch_desktop_session() display = self.get_unused_display_number() self.child_env["DISPLAY"] = ":%d" % display self.server_inhibitor.record_started(MINIMUM_PROCESS_LIFETIME, backoff_time) self.session_inhibitor.record_started(MINIMUM_PROCESS_LIFETIME, backoff_time)
여기까지 했으면 save를 눌러 저장한다.
# chrome remote desktop 실행 /opt/google/chrome-remote-desktop/chrome-remote-desktop --start

설정 완료

이제 실행해보면 크롬 원격이 아마도 잘 실행될 것이다.
만약 검은화면이 나온다면 당황하지 않고 위 과정을 처음부터 다시하면 된다.
특히 가상 데스크톱 맞춤 세션 설정이 중요하다. 설치 후 바로 실행하지 않고, 설치 → 실행 하지 않고 서비스 종료 후 세션 설정config 파일 수정서비스 실행원격 기기에서 접속 시도의 과정을 따르자.

[extra] ubuntu update 막아놓기

sudo apt update & upgrade를 할 경우 chrome-remote-desktop이 재설치되면서 위의 과정을 다시해야한다. 자주 할 필요는 없다고 생각하며, 필요할 때마다 대규모 업데이트때 수동으로 해주는 것이 좋다. 따라서 평상시에는 업데이트를 잠가놔야 된다.
sudo apt-mark hold chrome-remote-desktop # 크롬 원격 데스크톱 업데이트 중지하기 sudo apt-mark showhold # 어떤 패키지가 업데이트 잠금이 되어있는지 확인