데스크톱 환경(GUI)으로 Raspberry Pi 3에 원격 접속하는 방법에 대해 소개합니다.


터미널 프로그램을 사용하여 Raspberry Pi에 SSH 접속을 해서도 원하는 웬만한 작업을 다 할 수 있지만 가끔 키보드,마우스,모니터등을 라즈베리파이에 붙이게 될 때가 있습니다.

바로 X 윈도우 때문인데 생각보다 쉽게 번거로 왔던 것들을 줄일 방법이 있더군요.

VNC를 이용하면  간단하게 해결이 됩니다.





1. VNC 서버 프로그램 설치 및 접속하는 방법


2. 한글 입력을 위해서 UIM 설치


3. 관련 포스팅

   3.1. Raspberry Pi 3 사용하는 방법(raspbian 라이팅, ssh 설정 및 접속방법, raspi-config 설정방법)

   3.2. Raspberry Pi 3 무선랜(WiFi) 설정 방법



최종 작성 2018. 1. 1



1. VNC 서버 프로그램 설치 및 접속하는 방법


1. 라즈베리파이 보드에 SSH 접속하여 x11vnc 패키지를 설치합니다.

sudo raspi-config 명령을 실행하여 VNC를 활성화하거나 vncserver 명령을 실행하는 방법도 있지만 현재는 x11vnc 패키지를 설치하는 게 더 성능이 좋습니다.


$ sudo apt-get install x11vnc xinetd




2. /boot/config.txt 파일을 편집기로 열어서


$ sudo nano /boot/config.txt




아래처럼 붉은색 처리된 줄의 맨 앞에 있던 #을 제거해주고 저장합니다.

Raspberry Pi로 VNC 접속시 큰 해상도 화면을 보기위해 필요한 작업입니다.


# uncomment to force a console size. By default it will be display's size minus
# overscan.
framebuffer_width=1280
framebuffer_height=720




3.  바뀐 설정을 적용시키기 위해 라즈베리파이를 재부팅합니다.


$ sudo reboot




4. 다음 명령으로 클라이언트가 접속시 필요한 패스워드를 정해줍니다.

두번 패스워드를 입력해주고 y를 입력하면 /home/pi/.vnc/passwd 파일에 패스워드가 암호화되어 저장됩니다.





5. VNC Server 프로그램인 x11vnc를 실행시킵니다.


$ x11vnc -display :0 -auth ~/.Xauthority -usepw




아래 처럼 메시지들을 출력 후,  다시 터미널로 돌아가지 않고 x11vnc 프로그램은 대기모드에 들어갑니다.


메시지가 많이 보이는데 아래처럼 보이고 나서  붉은색 글씨 부분을 찾습니다.

raspberrypi:뒤에 있는 숫자를 기억해둡니다.  

x11vnc를 중복해서 실행하게 되면 번호가 증가하는데 초기값은 0입니다.



6. VNC 서버에 접속하기 위해서는 VNC 클라이언트 프로그램 또는 VNC 뷰어라고 불리는 프로그램을 PC 혹은 스마트폰에 설치해야 합니다.


VNC 프로그램 간에는 호환이 되기 때문에 어떤 VNC 클라이언트 프로그램을 쓰던 상관이 없습니다.  

저는 RealVNC의 VNC Viewer를 다운로드 받아 사용했습니다.  

RealVNC는 https://www.realvnc.com/download/viewer/ 에서 다운로드 가능합니다.



사용 중인 64비트 윈도우가 자동감지 되었는지 Windows 탭이 바로 보이고 콤보박스에 EXE x64가 선택되어 있습니다.

파란색 버튼 DOWNLOAD VNC VIEWER을 클릭하면 다운로드가 시작됩니다.





다운로드 받은 파일을 실행시키면 설치 없이 바로 VNC Viewer 프로그램이 실행됩니다.






체크 박스를 클릭하여 라이센스에 동의하고 OK버튼을 클릭합니다.





GOT IT을 클릭합니다.





7. 상단에 있는 입력란에 라즈베리파이의 아이피 주소를 적어주고 엔터를 누릅니다.

확인한 숫자가 0인 경우에는 아이피 주소만 적어도 됩니다.





Continue를 클릭합니다.





앞에서 정해주었던 패스워드를 입력하고 OK를 클릭합니다.

체크박스를 클릭하면 다음 접속시 패스워드를 다시 안물어 보게 됩니다.





연결 성공하면 X윈도우 데스크탑 환경이 보입니다.





8. VNC 창을 닫으면 실행시켰던 x11vnc도 종료됩니다.




x11vnc를 다시 실행한 후, 한번 접속했던 IP는 더블클릭만으로도 접속이 가능해집니다.



 


2. 한글 입력을 위해서 UIM 설치


1. 픽셀 데스크탑 환경(X 윈도우)에서 Ctrl + Alt + T를 입력하여 터미널을 실행하고 uim과 벼루 패키지,한글 폰트를 설치해줍니다.


$ sudo apt-get install uim uim-byeoru fonts-unfonts-core




2. 설치가 완료되면 왼쪽 상단에 보이는 라즈베리 아이콘을 클릭하여 메뉴를 보이게 합니다.





아래 화면처럼 Preferences > Input Method 선택합니다.





현재 입력기 설정을 보여줍니다. OK 버튼을 클릭합니다.


 



입력기를 바꿔야 하므로 Yes버튼을 클릭합니다.





uim을 선택하고 OK 버튼을 클릭합니다.





설정이 uim으로 변경되었습니다. OK를 클릭합니다.





3. 이제 변경한 입력기 설정을 적용시키려면 재부팅 해야 합니다.

메뉴에서 Shutdown을 선택하고  Shutdown Options 창에서 Reboot를  클릭합니다.





4. 터미널에서 x11vnc를 다시 실행하고


$ x11vnc -display :0 -auth ~/.Xauthority -usepw



VNC Viewer에서 Raspberry Pi에 다시 접속합니다.




5.  오른쪽 상단에 새로 추가된 아이콘이 보입니다.  

아이콘 위에서 마우스 오른쪽 버튼을 누른 후, 보이는 메뉴에서 Preference를 선택합니다.  





해당 아이콘이 변경되어 아래화면의 빨간 사각형 부분처럼 다르게 보일 수 도 있지만 위와 동일하게 마우스 오른쪽 버튼을 누른 후, 보이는 메뉴에서 Preference를 선택합니다.





6. Specify default IM을 체크해주고  그 바로 아래 보이는 Default input methodByeoru로 변경합니다.

OK버튼을 클릭해주면 창이 닫히면서 바뀐 설정이 적용됩니다.




빨간색 사각형을 클릭하고 Byeoru를 선택합니다.





7.   Alt + Ctrl + T를 눌러서 터미널을 실행합니다. 초기에는 영어가 입력가능한 상태입니다.


이 상태에서 Shift + Space 를 누르면 한글 입력 모드가 되고 다시 Shift + Space를 누르면 영어 입력 모드가 됩니다.





8. 터미널의 글씨를 크기를 키우려면 터미널 메뉴에서 Edit > Preferences를 선택합니다.

폰트 및 폰트 크기를 변경하기 위해서 Terminal Font 항목을 클릭합니다.





9. 원하는 폰트와 크기를 선택하고  OK를 클릭합니다.





10.  Terminal Font 항목이 선택한 폰트와 크기로 변경됩니다. OK 버튼을 클릭하면 적용됩니다.





11. 터미널 상의 글씨가 보기좋게 커졌지만 창의 크기는 그대로입니다.

마우스로 창의 크기를 조정해줘야 합니다. 이후 변경된 크기로 계속 실행됩니다.





12. VNC 서버를 종료하기 위해서는 x11vnc를 실행시켰던 터미널 프로그램에서 Ctrl + C를 입력하면 됩니다.



또는 VNC 뷰어를 종료하면 x11vnc도 같이  종료됩니다.



3. 관련 포스팅

3.1. Raspberry Pi 3 사용하는 방법(raspbian 라이팅, ssh 설정 및 접속방법, raspi-config 설정방법)

마이크로 SD 카드에 라즈비안(RASPBIAN) 이미지 파일을 라이팅(writing)하고  SSH 접속을 위해 필요한 작업과 사용하기 전에 꼭 해줘야 하는 설정을 다룹니다.

http://webnautes.tistory.com/899


3.2. Raspberry Pi 3 무선랜(WiFi) 설정 방법

Raspberry Pi 3부터 내장된  무선랜(WiFi)를 사용하기 위해  필요한  설정 방법에 대해서 다룹니다.

http://webnautes.tistory.com/903



  1. 지나가던객 2015.03.02 00:22 신고

    어떠한 입력기를 사용하더라도 VNC를 사용할때는 한글이 깨졌었는데 덕분에 도움 됫습니다.

  2. 금동일 2016.08.23 12:24 신고

    vnc viewer 이용시 the connection was refused by the host computer 이란 문구가 뜨는데 이건 어떤 문제인가요?
    ssh 설치가 제대로 되지 않앗다는 말인가요?

    • 명지대 2017.04.29 05:22 신고

      sudo raspi-config에서 인터페이스 설정으로 들어가시면 vnc 허용할 수 있어요. 저는 이 방법으로 문제해결했네요

  3. 뚜뚜뚜 2016.09.18 21:55 신고

    꼭 같은 네트워크상에 있어야하나요?
    같은 와이파이를 잡고있어야하나요?

  4. ABCD 2017.01.12 13:25 신고

    X11vnc 실행시 오류가 뜨는데 어떻게 해결하나요?
    일부 오류만 첨부하였습니다.

    12/01/2017 04:23:47 x11vnc version: 0.9.13 lastmod: 2011-08-10 pid: 976
    12/01/2017 04:23:47 XOpenDisplay("") failed.
    12/01/2017 04:23:47 Trying again with XAUTHLOCALHOSTNAME=localhost ...
    12/01/2017 04:23:47
    12/01/2017 04:23:47 *** XOpenDisplay failed. No -display or DISPLAY.
    12/01/2017 04:23:47 *** Trying ":0" in 4 seconds. Press Ctrl-C to abort.
    12/01/2017 04:23:47 *** 1 2 3 4
    12/01/2017 04:23:51 XOpenDisplay(":0") failed.
    12/01/2017 04:23:51 Trying again with XAUTHLOCALHOSTNAME=localhost ...
    12/01/2017 04:23:51 XOpenDisplay(":0") failed.
    12/01/2017 04:23:51 Trying again with unset XAUTHLOCALHOSTNAME ..

    • webnautes webnautes 2017.04.29 08:43 신고

      아직 최근 라즈비안으로 확인 못해봤지만 ..

      혹시 에러가 난후 기다리면 다음과 같은 메시지들 보이지 않나요?
      첨에 에러나다가 이후 아래 메시지가 보였던거 같은데..

      The VNC desktop is: raspberrypi:0
      PORT=5900

      ******************************************************************************
      Have you tried the x11vnc '-ncache' VNC client-side pixel caching feature yet?

      The scheme stores pixel data offscreen on the VNC viewer side for faster
      retrieval. It should work with any VNC viewer. Try it by running:

      x11vnc -ncache 10 ...

      One can also add -ncache_cr for smooth 'copyrect' window motion.
      More info: http://www.karlrunge.com/x11vnc/faq.html#faq-client-caching

    • webnautes webnautes 2017.05.20 20:50 신고

      x11vnc 실행 방법이 변경되어 포스팅을 새로 작성했습니다.

  5. jedijaja 2017.09.22 10:23 신고

    내용 잘 보았습니다.

    그런데 자동 실행을 하려고 rc.local 파일에 위의 x11vnc -display :0 -auth ~/.Xauthority -usepw 그대로 써 주었는데 자동 실행이 안되네요. 데스크탑 환경으로 바로 들어가서 그런 것 같기도 하고 ..

    부팅시 자동 실행 하려면 어떻게 해야 할까요 ?

  6. 허리디스크 2017.11.10 23:00 신고

    2017.11, 도움 많이 되었습니다. 감사합니다 :)

  7. 제로윈코딩 2017.11.27 11:55 신고

    감사합니다!!!! 좋은 자료에요.

  8. 슈렉 2017.12.21 16:34 신고

    패스워드 설정까지 마무리 하고,
    x11vnc -display :0 -auth ~/.Xauthority -usepw 실행하면,
    아래와 같이 에러가 발생합니다.

    21/12/2017 16:32:47 -usepw: found /root/.vnc/passwd
    21/12/2017 16:32:47 x11vnc version: 0.9.13 lastmod: 2011-08-10 pid: 586
    21/12/2017 16:32:47 XOpenDisplay(":0") failed.
    21/12/2017 16:32:47 Trying again with XAUTHLOCALHOSTNAME=localhost ...

    21/12/2017 16:32:47 ***************************************
    21/12/2017 16:32:47 *** XOpenDisplay failed (:0)

    *** x11vnc was unable to open the X DISPLAY: ":0", it cannot continue.
    *** There may be "Xlib:" error messages above with details about the failure.
    <일부만 발췌>

    다른 사전 설정이 필요할까요?

    • webnautes webnautes 2017.12.22 14:26 신고

      x11vnc -display :0 -auth /var/gdm/:0.Xauth 라고 입력해보세요..

      방법을 찾을 출처는 아래 링크입니다.
      http://www.karlrunge.com/x11vnc/faq.html#faq-xperms

  9. 섬아이 2018.02.03 22:01 신고

    올려주신 글 대로 셋업 잘 끝냈습니다. ^^
    감사합니다.
    그리고 댓글 중에 명지대님도 감사합니다.

  10. 섬아이 2018.02.03 22:20 신고

    sudo raspi-config 설정에서 VNC 허용하고, username 에 pi 입력, 패스워드 입력하면, VNC viewer에서 자동으로 접속되네요.

    • webnautes webnautes 2018.02.03 22:25 신고

      답변 감사합니다. 그렇게하면 라즈베리파이에 디폴트로 설치되는 vnc 패키지를 사용하게됩니다.. 저는 x11vnc를 따로 설치한거구요.. 테스트해보고 자기한테 맞는걸 사용하는게 맞는듯합니다..

  11. Marigold 2018.03.27 03:45 신고

    라즈베리파이에서 ifconfig로 ip주소를 찾아서 넣었고요
    username이랑 password를 입력하는 부분에서 계속 잘 안되어서....
    username이랑 password를 제가 변경했는데 변경한 것을 넣어도 둘중하나가 잘못되었다며 오류메시지만 뜹니다

    username이랑 password를 초기화하거나 변경된 값을 확인할 수 있는 방법이 없을까요?

  12. 이쿠 2018.03.28 16:29 신고

    28/03/2018 16:22:37 -usepw: found /home/pi/.vnc/passwd
    28/03/2018 16:22:37 x11vnc version: 0.9.13 lastmod: 2011-08-10 pid: 606
    28/03/2018 16:22:38 XOpenDisplay(":0") failed.
    28/03/2018 16:22:38 Trying again with XAUTHLOCALHOSTNAME=localhost ...

    28/03/2018 16:22:38 ***************************************
    28/03/2018 16:22:38 *** XOpenDisplay failed (:0)

    *** x11vnc was unable to open the X DISPLAY: ":0", it cannot continue.
    *** There may be "Xlib:" error messages above with details about the failure.

    Some tips and guidelines:

    ** An X server (the one you wish to view) must be running before x11vnc is
    started: x11vnc does not start the X server. (however, see the -create
    option if that is what you really want).

    ** You must use -display <disp>, -OR- set and export your $DISPLAY
    environment variable to refer to the display of the desired X server.
    - Usually the display is simply ":0" (in fact x11vnc uses this if you forget
    to specify it), but in some multi-user situations it could be ":1", ":2",
    or even ":137". Ask your administrator or a guru if you are having
    difficulty determining what your X DISPLAY is. ...등등등

    x11vnc -display :0 -auth ~/.Xauthority -usepw

    x11vnc -display :0 -auth /var/gdm/:0.Xauth
    이두개의 명령어를 쳐봐도 안되는데 혹시 이유를 알 수 있을까요..?

    • webnautes webnautes 2018.03.28 17:18 신고

      혹시 hdmi로 라즈베리파이에 모니터를 연결했나요??

      이 경우 아래처럼 해야 한다는 군요.

      출처는...
      https://jp.raspberrypi.org/forums/viewtopic.php?f=28&t=9380&start=25

      steps:
      install and set password
      - sudo apt-get install x11vnc
      - x11vnc -storepasswd

      create autostart entry

      - cd .config
      - mkdir autostart
      - cd autostart
      - nano x11vnc.desktop
      - paste following text:

      [Desktop Entry]
      Encoding=UTF-8
      Type=Application
      Name=X11VNC
      Comment=
      Exec=x11vnc -forever -usepw -display :0 -ultrafilexfer
      StartupNotify=false
      Terminal=false
      Hidden=false

      - save and exit (Ctrl-X, Y, <Enter>)

      This start x11vnc when lxde starts.

    • 이쿠 2018.03.28 17:26 신고

      아뇨그냥 랜선으로 pc에 연결했습니다.
      x11vnc -display :0 -auth /var/gdm/:0.Xauth
      을 치면###############################################################
      #@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#
      #@ @#
      #@ ** WARNING ** WARNING ** WARNING ** WARNING ** @#
      #@ @#
      #@ YOU ARE RUNNING X11VNC WITHOUT A PASSWORD!! @#
      #@ @#
      #@ This means anyone with network access to this computer @#
      #@ may be able to view and control your desktop. @#
      #@ @#
      #@ >>> If you did not mean to do this Press CTRL-C now!! <<< @#
      #@ @#
      #@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#
      #@ @#
      #@ You can create an x11vnc password file by running: @#
      #@ @#
      #@ x11vnc -storepasswd password /path/to/passfile @#
      #@ or x11vnc -storepasswd /path/to/passfile @#
      #@ or x11vnc -storepasswd @#
      #@ @#
      #@ (the last one will use ~/.vnc/passwd) @#
      #@ @#
      #@ and then starting x11vnc via: @#
      #@ @#
      #@ x11vnc -rfbauth /path/to/passfile @#
      #@ @#
      #@ an existing ~/.vnc/passwd file from another VNC @#
      #@ application will work fine too. @# 등등이 뜨네요.. 비밀번호도 설정해줬는데..

    • webnautes webnautes 2018.03.28 17:43 신고

      배포판 문제 일수도 있어서요..

      혹시 RASPBIAN STRETCH LITE 하고
      RASPBIAN STRETCH WITH DESKTOP 중에 어떤 것을 사용하셨나요?

      https://www.raspberrypi.org/downloads/raspbian/

    • 이쿠 2018.03.28 17:45 신고

      LITE로 깔았습니다!!@

    • webnautes webnautes 2018.03.28 17:58 신고

      그렇다면 /boot/config.txt 파일을 열어서 다음 한줄을 추가하고 재부팅해보세요..

      hdmi_force_hotplug=1

      그리고 x11vnc 실행할 때 추가로 다음 옵션을 더 적어야 한다고 하네요.

      -repeat


      출처는
      http://forum.tinycorelinux.net/index.php?topic=20557.0

    • 이쿠 2018.03.29 20:47 신고

      정말죄송합니다.. /boot/config.txt
      파일맨밑에 hdmi_force_hotplug=1추가해서 재부팅하고 x11vnc -display :0 -auth ~/.Xauthority -usepw -repeat 명령어를 쳐봐도 안되는군요.. 위에 댓글에 있는 해결방법들도 다 해보았습니다. 다시 새로깔아야할까요..

    • webnautes webnautes 2018.03.29 23:08 신고

      DESKTOP 버전으로 재설치하는게 좋을듯합니다.

+ Recent posts

티스토리 툴바