Raspberry Pi: Remote Control Raspberry Pi via VNC

Goal: Use VNC to control your Raspberry Pi from another computer, so you can use your Raspberry Pi without a screen!

Difficulty: Easy

Required Hardware:

  • Network-Enabled Raspberry Pi w/ power supply and micro SD card
  • Monitor and keyboard (Optional)
  • Network-Enabled computer, smartphone or tablet

Required Software:

Step 01: Connect to a shell on the Raspberry Pi

Option 01: Directly using raspi-config

  1. Connect monitor and keyboard to your Raspberry Pi
  2. Make sure your Raspberry Pi is powered on and wait for it to boot
  3. Open a terminal window

Option 02: Remotely via SSH

  1. Connect to your Raspberry Pi via SSH following this guide - Raspberry Pi: Remote Control Raspberry Pi via SSH

Step 02: Install & Enable VNC

  1. If you like having minimal installations:
    • Enter sudo apt-get install --no-install-recommends realvnc-vnc-server
      Otherwise, just skip this and the raspi-confi next will install it for you if needed.
  2. Enter sudo raspi-config
  3. Select Interfacing Options and navigate to VNC
  4. Choose Yes, Ok and Finish

Step 03: Connect to your Raspberry Pi using VNC

  1. Connect your Raspberry Pi to your local network using an Ethernet cable or Wi-Fi
  2. Find out the IP address of your Raspberry Pi following this guide - Raspberry Pi: Find Raspberry Pi's IP Address
  3. Download RealVNC Viewer from the device you want to control your Raspberry Pi with via https://www.realvnc.com/en/connect/download/viewer/
  4. Connect your device to the same Network as Raspberry Pi
  5. Launch RealVNC Viewer and enter your Raspberry Pi’s IP address from the previous step
  6. When asked enter the username and password

Note: the default Rasbian username is pi and the default password is raspberry and for MODEP image the default username is modep and the default password is blokaslabs

Is it normal that after connecting I just get a black screen? Seems like VNC is not running…

Also is it normal that enabling VNC from the raspi-control application installs loads of apparently unrelated packages like Cups and Imagemagik?

to be more specific, enabling VNC installs of this:libcupsmime1 libpaper1 ssl-cert bc cups-daemon fonts-droid-fallback liblqr-1-0 libopenjp2-7 imagemagick-6-common libmagickcore-6.q16-3 libmagickwand-6.q16-3 libsane-common poppler-data acl libgusb2 libcolorhug2 libieee1284-3 libsane colord-data colord libcupscgi1 libcupsimage2 libcupsppdc1 libcupsfilters1 libpoppler64 libqpdf17 poppler-utils cups-filters-core-drivers cups-core-drivers libijs-0.35 libjbig2dec0 libgs9-common libgs9 ghostscript cups-common cups-server-common cups-client cups-ppdc libfontembed1 imagemagick-6.q16 imagemagick cups-filters cups cups-browsed fonts-noto-mono gsfonts libdjvulibre-text libdjvulibre21 libfile-copy-recursive-perl libgutenprint2 libilmbase12 libjxr0 libjxr-tools libopenexr22 libwmf0.2-7 libmagickcore-6.q16-3-extra libnetpbm10 libpaper-utils libpng12-0 libsane-extras-common libsane-extras libyaml-0-2 netpbm printer-driver-gutenprint qpdf realvnc-vnc-server update-inetd sane-utils liblouis-data liblouis12 liblouisutdml-data liblouisutdml7 liblouisutdml-bin


Yes, when raspi-config enables VNC, it installs it if you don’t have it. Alas, it installs it in a way that pulls in “recommended” packages - which you almost never want.

However most of them are just extra apps and won’t take any resources other than disk if you’re not running them. So don’t fret it.

cups is an exception: It seems inevitable that some package requires it - and it runs in the background, though not really enough to matter.

thanks a lot! Still, it wasn’t working, so I’ll have to figure out what went wrong. I get some errors about locales not being present, no idea why.