Headless Setup with Ubuntu Mate

This is a step-by-step guide of how to test ODROID boards.
It assumes that you want to run headless, that is, access it via network connections without a keyboard or display.
This guide is based on Hardkernel's Ubuntu Mate environment.

You HAVE:

  • ODROID-XU4/HC1/HC2
  • SD card or eMMC (installed Ubuntu Mate)
  • Ethernet cable
  • Linux PC
  • A switching hub
  • DHCP network

You do NOT have:

  • USB keyboard
  • USB-UART Module Kit
  • HDMI cable/monitor

Connect the ODROID to a spare Ethernet port on your switching hub using an Ethernet cable.

Insert the SD card (or eMMC) into the ODROID-XU4.

Turn on the ODROID-XU4 and it will run the root file system resizing process automatically.
After resizing process, it will shutdown and the blue LED is off within 5~20 seconds.
Press power button again and the heartbeat blue LED keeps flashing.

By GUI

By console command

Ping scan to update ARP table:

brian@brian-desktop:~$ nmap -sn 192.168.100.0/24
Starting Nmap 7.01 ( https://nmap.org ) at 2016-05-17 15:09 KST
Nmap scan report for 192.168.100.1
Host is up (0.00066s latency).
Nmap scan report for 192.168.100.2
Host is up (0.000084s latency).
Nmap scan report for 192.168.100.3
Host is up (0.00046s latency).
Nmap scan report for 192.168.100.53
Host is up (0.00066s latency).
Nmap scan report for 192.168.100.68
Host is up (0.095s latency).
Nmap done: 256 IP addresses (5 hosts up) scanned in 2.43 seconds

Check the ODROID-XU4 IP address: (NOTE: “00:1e:06” is start MAC address for ODROID boards.)

brian@brian-desktop:~$ arp -a | grep 00:1e:06
? (192.168.100.53) at 00:1e:06:33:0d:45 [ether] on enp0s25

On your Linux PC, type “ssh odroid@xxx.xxx.xxx.xxx”, where “xxx.xxx.xxx.xxx” is the IP address you discovered in the previous step.

It will then prompt for your password.
Type in the default password: odroid

brian@brian-desktop:~$ ssh odroid@192.168.100.8
The authenticity of host '192.168.100.8 (192.168.100.8)' can't be established.
ECDSA key fingerprint is SHA256:BCqiwzdtSViFOSAbgNHw35avUvOTHikW+fx7N4v+Lv0.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.100.8' (ECDSA) to the list of known hosts.
odroid@192.168.100.8's password: 
Welcome to Ubuntu 16.04.4 LTS (GNU/Linux 4.14.28-124 armv7l)
 
 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage
 
0 packages can be updated.
0 updates are security updates.
 
Last login: Tue Mar 20 07:39:48 2018 from 192.168.100.2
odroid@odroid:~$ 
  • Make sure Ubuntu MATE installed before following this guide. An minimal image hasn't necessary dependencies including X11 to start VNC server.

Connect to the ODROID-XU4 using SSH.

brian@brian-desktop:~$ ssh odroid@192.168.100.8
The authenticity of host '192.168.100.8 (192.168.100.8)' can't be established.
ECDSA key fingerprint is SHA256:BCqiwzdtSViFOSAbgNHw35avUvOTHikW+fx7N4v+Lv0.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.100.8' (ECDSA) to the list of known hosts.
odroid@192.168.100.8's password: 
Welcome to Ubuntu 16.04.4 LTS (GNU/Linux 4.14.28-124 armv7l)
 
 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage
 
0 packages can be updated.
0 updates are security updates.
 
Last login: Tue Mar 20 07:39:48 2018 from 192.168.100.2
odroid@odroid:~$ 

Install VNC server using apt package management.

odroid@odroid:~$ sudo apt update
odroid@odroid:~$ sudo apt install x11vnc

Run VNC server.

odroid@odroid:~$ x11vnc -display :0 -auth guess

Connect to the ODROID-XU4 VNC server from your Linux PC.

  • If you don't have any VNC Viewer, enter below to install.
brian@brian-desktop:~$ sudo apt install tigervnc-viewer
# usage: vncviewer {ODROID_IP}
brian@brian-desktop:~$ vncviewer 192.168.100.8

Change resolution

You can change resolution by editing /etc/X11/xorg.conf file.

odroid@odroid:~$ sudo vi /etc/X11/xorg.conf

Append this to the end. See DefaultDepth and Virtual parts.

Section "Screen"
        Identifier      "Default Screen"
        Device          "Mali-Fbdev"
        DefaultDepth    24
        SubSection "Display"
                Virtual 1920 1080
        EndSubSection
EndSection

Start VNC server and connect.