ODROID-C2 from scratch

OdroidC2 image from scratch

(1) Install the Image to your eMMC
(2) Configure the static ip address
(3) Server tweaks
(3.1) Bash (auto-) completion
(3.2) Create a new user and disable root
(3.3) Adjust your time and timezone
(3.4) ssh modifications
(3.5) optional: rename your server
(4) Update your server
(5) Performance tuning: boot.ini

updated: March 21st, 2018:
– added a new download-url in chapter 1

(1) Install the Image to your eMMC

First download Odroids ubuntu image from my public Nextcloud:

ubuntu64-16.04.3-minimal-odroid-c2-20171005.img.xz (214M)

Plug your eMMC to your Desktop and search for your eMMC via

sudo -s
fdisk -l

At my environment it is called “/dev/mmcblk0“. Extract the previously downloaded image:

unxz ubuntu64-16.04-minimal-odroid-c2-20160815.img.xz

Then prepare your eMMC for acting as your server, therefore clone the Ubuntu image to your eMMC:

dd if=ubuntu64-16.04-minimal-odroid-c2-20160815.img of=/dev/mmcblk0

Wait a few minutes until the prompt will be back again and the card was written for you.

Now unplug the eMMC module from your desktop and plug the card to your ODROID-C2. In addition also plug your keyboard, your monitor, your LAN and at least the power cable.  The ODROID-C2 will reboot automatically and finally the login prompt will appear on your plugged monitor. Login as user “root” using the password “odroid“.

user: root
password: odroid

We will look for the current IP address of the server to use ssh for all further installation steps:


The eth0 interface will be shown first. You can find the ip address in the second row, e.g.:

inet addr:

Optional: Configure the german keyboard layout

apt install language-pack-de
dpkg-reconfigure keyboard-configuration
locale-gen de_DE@euro
dpkg-reconfigure console-setup

For the upcomming installation steps using ssh (e.g. putty) please grant access to root. Therefore just modify the ssh configuration:

sudo vi /etc/ssh/sshd_config

Set ‘PermitRootLogin yes‘ temoprarily

PermitRootLogin yes

then save and quit (:wq!) the file and restart the ssh service:

sudo service ssh restart

Now you can unplug the monitor and the keyboard from your ODROID-C2 and switch back to your desktop-environment. Start your preferred ssh client (e.g. Terminal or Putty) and connect to your server:

ssh root@

Type in “yes” and confirm (enter) to continue and then type in the password “odroid“.

Congratulations, your server is ready to use.

(2) Configure the static ip address

Edit the network interface eth0:

cp /etc/network/interfaces.d/eth0 /etc/network/interfaces.d/eth0.bak
vi /etc/network/interfaces.d/eth0

and change the file to exemplarily:

auto eth0
iface eth0 inet static

Restart the network service

/etc/init.d/networking restart

or reboot your system


and login to your server using the new configured ip address:

ssh root@

Once again, type in “yes” and confirm (enter) to continue and then type in the password “odroid“.

From now, your server is reachable via its static ip address called e.g.:

(3) Server tweaks

(3.1) Bash (auto-) completion

To enable bash’s auto completion install bash-completion first:

apt install bash-completion

Then edit the bash

cp /etc/bash.bashrc  /etc/bash.bashrc.bak
vi /etc/bash.bashrc

and search for ” # enable bash completion in interactive shells”. Remove the leading ‘#’ in front of the following 7 rows:

# enable bash completion in interactive shells
if ! shopt -oq posix; then
if [ -f /usr/share/bash-completion/bash_completion ]; then
. /usr/share/bash-completion/bash_completion
elif [ -f /etc/bash_completion ]; then
. /etc/bash_completion

Save and quit the file and reboot.

shutdown -r now



(3.2) Create a new user and disable root

Reconnect to your server and create a new user called “next

adduser next

and set at least the password and Name.

Grant the new user sudo privileges by running:

usermod -a -G sudo next

Logout from root shell


and logon as user „next“ to your server again:

Disable root:

sudo passwd -d root

and confirm that action by typing new users (next) password.

(3.3) Adjust your time and timezone

The server is using UTC per default. Adjust your time-settings e.g. to Europe/Berlin by running:

sudo dpkg-reconfigure tzdata

and follow the wizard:

(3.4) ssh modifications

Please ensure root isn’t allowed to login using ssh anymore.

sudo ssh-keygen -q -f /etc/ssh/ssh_host_rsa_key -N '' -b 4096 -t rsa
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
sudo vi /etc/ssh/sshd_config

Set “ServerKeyBits” to 4096:

ServerKeyBits 4096

Set “PermitRootLogin” to no:

PermitRootLogin no

Then restart the ssh service to reload the ssh settings.

sudo service ssh restart

For sure, much more security parameters are to set. Find out my example here. It is up to you to harden your server.

(3.5) optional: rename your server

Change odroid64 to e.g. cloud

sudo cp /etc/hosts /etc/hosts.bak
sudo vi /etc/hosts localhost cloud
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

Then change /etc/hostname:

sudo cp /etc/hostname /etc/hostname.bak
sudo vi /etc/hostname

Replace odroid64 to cloud either:


Save and quit the file (:wq!) and reboot

sudo reboot

your server.

(4) Update your server

Finally update your server.

sudo apt update && sudo apt upgrade -y

Most probably your boot.ini will be changed. Confirm the upcoming message:

Run the update and upgrade command a second time and install the linux-image-c2

sudo apt install linux-image-c2 -y

and change from <Yes> to <No> in the upcoming dialogue:

Select <No> and wait until the installation completes.

Reboot your server:

sudo reboot

Yeah, done!

(5) Performance tuning: boot.ini

For performance reasons you should set

vi /media/boot/boot.ini


# Server Mode (aka. No Graphics)
# Setting nographics to 1 will disable all video subsystem
# This mode is ideal of server type usage. (Saves ~300Mb of RAM)
setenv nographics "1"

# Meson Timer
# 1 - Meson Timer
# 0 - Arch Timer
# Using meson_timer improves the video playback however it breaks KVM (virtualization).
# Using arch timer allows KVM/Virtualization to work however you'll experience poor video
setenv mesontimer "1"

That’s all for now – you want to install Nextcloud? Follow this Nextcloud installation guide

Carsten Rieger

6 Responses

  1. hounaida says:

    hi !! i need your help,i have ODROID C2 and i want to use ODROID VU7 so i try to modify the file boot.ini: uncomment: setenv m “1024x600p60hz” ,setenv vout “dvi”,setenv disable_vu7″false” ,all is ok when i connect LCD but the keyboard doesn’t exist !!!!!!(the curser exist ) have you any idea !!

  2. Rene says:

    Hi, super Anleitung.. No cursor on the console. You have one?