WSL에서 카메라 사용에 제약이 있어, 이참에 VM을 사용해보고자 VM을 설치했다. VM 설치는 관련 글을 보고 쉽게 하였으나, SSH 통신으로 VM 사용 시 GUI 사용에 문제가 있었다.
본 포스트에서는 VScode의 remote-ssh을 통해 Ubuntu VM에서 OpenCV GUI 애플리케이션과 USB 카메라를 사용하기 위한 설정을 다룬다. (카메라 상세는 다음 포스트에서) 단, 문제를 해결한 후 사후적으로 정리한 내용이기 때문에 생략된 내용이 있을 수 있음을 먼저 알린다.
1. Cygwin 설치 및 xauth 설정
Cygwin을 설치하는 과정에서, xauth를 설정한다. (나머지는 디폴트)
Cygwin Installation
Cygwin Get that Linux feeling - on Windows Installing and Updating Cygwin Packages Installing and Updating Cygwin for 64-bit versions of Windows Run setup-x86_64.exe any time you want to update or install a Cygwin package for 64-bit windows. The signature
www.cygwin.com
설치 후 C:\cygwin64\bin을 PATH에 추가하여, Windows의 OpenSSH 클라이언트가 xauth를 올바르게 찾을 수 있도록 한다.
2. VcXsrv 설치
VcXsrv를 Windows에 설치하고, XLaunch로 "Display Number: 0"과 "Disable access control" 옵션을 선택하여 실행한다.
3. SSH 구성 파일 설정
~/.ssh/config 파일에 다음 설정을 추가하여, X11 Forwarding과 RemoteForward를 활성화한다. (VScode의 remote-ssh에서 설정되어 있어야 한다. 즉, VM의 ssh 설정이 미리 완료된 상태)
Host 127.0.0.1
HostName 127.0.0.1
User zerogod
Port 2222
IdentityFile C:\Users\origami0352\.ssh\id_rsa
IdentitiesOnly yes
ForwardX11 yes
ForwardX11Trusted yes
XAuthLocation C:/cygwin64/bin/xauth.exe
RemoteForward 6000 127.0.0.1:6000 // 역포워딩
4. VM에서 X11 Forwarding 허용 설정
/etc/ssh/sshd_config에 다음 내용이 주석처리되어 있는 것을 해제한다. 만약 없다면 추가해준다.
sudo nano /etc/ssh/sshd_config
X11Forwarding yes
X11DisplayOffset 10
X11UseLocalhost yes
설정 완료 후 Ctrl + X -> Y -> Enter
sudo systemctl restart sshd
설정 완료 후 위 명령어로 재실행한다.
5. VM 내 환경변수 자동 설정
~/.bashrc에 다음 내용을 추가하여, SSH 접속 시 자동으로 필요한 환경 변수들이 설정되도록 한다.
sudo nano ~/.bashrc
if [ -n "$SSH_CONNECTION" ]; then
export DISPLAY=${DISPLAY:-localhost:0.0}
export GDK_BACKEND=x11
export LIBGL_ALWAYS_SOFTWARE=1
fi
설정 완료 후 Ctrl + X -> Y -> Enter
6. Window 실행 시 자동으로 VcXsrv 실행
매번 VcXsrv를 실행하기기는 번거로우므로, 윈도우 실행 시 자동으로 실행하도록 설정한다.
우선 VcXsrv가 설치된 폴더(default: C:\Program Files\VcXsrv\)에서 vcxsrv.exe 파일을 찾는다. 파일을 우클릭 해 단축키(바로 가기)를 생성한다.
단축키 생성을 클릭하면 Windows can't create a shortcut here. Do you want the shortcut to be placed on the desktop instead? 라는 메시지가 뜨는데, yes를 클릭하여 단축키를 desktop에 생성한다. 그리고 descktop으로 이동해, 단축키 파일 VcXsrv.lnk를 %APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup에 붙여넣기 한다.
옮긴 단축키 파일을 우클릭하고 속성에서, 대상 필드에 다음과 같이 입력한다.
"C:\Program Files\VcXsrv\vcxsrv.exe" :0 -multiwindow -clipboard -wgl -ac
확인을 눌러 저장하면 Windows가 시작될 때 해당 단축키가 자동으로 실행되어 VcXsrv가 함께 실행된다.
이로써 VScode 혹은 터미널에서 VM으로 ssh 연결 시 GUI 사용이 자동으로 설정된다.
'Linux' 카테고리의 다른 글
| [Linux] PyTorch 모델을 C++ 포팅으로 사용하기 - ONNX Runtime 설치 (0) | 2025.02.11 |
|---|---|
| [VMware][OpenCV] Ubuntu 카메라 사용 설정 (1) | 2025.02.05 |
| [PyTorch] WSL에서 CUDA, cuDNN, PyTorch 설치 및 사용 (0) | 2025.01.27 |
| [OpenCV] Linux 환경에서 OpenCV 설치 및 사용 (0) | 2025.01.27 |
| [Linux] Linux Terminal on Window - WSL (0) | 2025.01.12 |