그래픽 드라이버가 있는 PC를 거실로 옮기고, TV에 연결해서 사용했다. 사용할 때는 좋은데, 원격으로 터미널로 접속하여 gazebo를 실행하기 어려웠다.
172.30.1.71
- 저사양 PC로 인터넷 겨우 됨.
172.30.1.9
- 내부 nvidia 그래픽 카드 설치로 무거운 PC
- 소음 발열 심함.
- docker로 172.17.0.1로 gazebo를 실행.
목표는 172.30.1.71 pc로 ssh 터미널로 172.30.1.9에 접속한 뒤 docker로 실행중인 gazebo를 172.30.1.71 화면으로 띄우기다.
172.30.1.9에서 sshd_config를 다음과 같이 설정한다.
$cat /etc/ssh/sshd_config ... #AllowAgentForwarding yes #AllowTcpForwarding yes #GatewayPorts no X11Forwarding yes X11DisplayOffset 10 X11UseLocalhost yes ...
X11UseLocalhost no로 설정하면 xauth add 명령어가 실행되지 않는다.
172.30.1.71에서 ssh로 172.30.1.9로 접속한다.
$ cat ~/.ssh/config Host rygen3600 Hostname 172.30.1.9 ForwardX11 yes
docker container를 다음 옵션으로 실행한다.
nvidia-docker run -it -v /run/user/1000:/run/user/1000 -v /dev:/dev -v /tmp/.X11-unix:/tmp/.X11-unix:ro \ -v /home/now0930/ros2/test:/home/ros2_test --name foxy\ --privileged --ipc=host --shm-size=512m --net=host -e DISPLAY=$DISPLAY \ -e XDG_RUNTIME_DIR=/run/user/1000 --runtime=nvidia \ osrf/ros:foxy-desktop-custom
docker container에 접속하여 gazebo를 실행하면
x11 connection rejected because of wrong authentication.
에러가 뜬다. docker 외부 계정의 ~/.Xauthority 파일을 docker container root에 복사하면 gazebo가 실행된다.
빈 화면인데 22 프레임이 나온다.