ODROID
Year Four
Issue #38
Feb 2017
Magazine
Get moving
VU8-C
Take your ODROID-C0, C1 or C2 on the road with you
Setting up your Control your
ODROID-XU4 as a ODROID power
general-purpose usage with the
NAS SmartPower2
What we stand for.
We strive to symbolize the edge of technology,
future, youth, humanity, and engineering.
Address: Max-Pollin-Strae 1
85104 Pfrring Germany
odroid-vu8 - 16
buildroot - 19
homebridge - 20
linux gaming - 23
SMARTPOWER2 - 29
POWER CONSUMPTION - 29
MEET AN ODROIDIAN - 30
DUAL BOOT ODROID-C2
T
here are a couple of different methods available for set- need this later. You only need to do steps 1-3 once to get the
ting up the ODROID-C2 as a dual boot system, de- data. If you need to reflash Ubuntu, start from step 4.
pending on your technical expertise. Both techniques
will allow you to run any combination of operating systems, 4. Flash Android onto this card. Yep, just do it. I couldnt
such as Android and Ubuntu, OpenELEC and Lakka, or Ko- figure out any other way. Load it into your Odroid, and let it
dibuntu and Debian. If you want to use a boot menu to se- install. Open up Terminal Emulator, and punch in:
lect the operating system, or have a triple boot system, use the
automated method created by @loboris. To have full control $ vi storage/internal/boot.ini
over the switching scripts, or to do so programmatically, use
the manual method as described by @Molorius, which can be Change root=/dev/mmcblk0p2 to root=/dev/
adapted to have any number of operating systems available. mmcblk1p2. Save and quit.
Manual method 5. Put this card back in your computer. In Disks (or what-
First, create a bootable Android image on either an eMMC ever youre using), delete the cache and rootsystem partitions.
or SD card by downloading it from http://bit.ly/2be993R and You can put another partition here in their place, if you wish.
copying it to the media using Win32 Disk Imager or a simi- Delete the last partition as well. Make a new partition in its
lar method. Then, do the same with the Ubuntu image from place, the same size as the .img you made previously (see step
http://bit.ly/2b58GEe. 3). In Disks, I selected an option to Restore Partition Image
on the partition I just made. Choose the .img you made in step
1. Flash the Ubuntu image onto the emmc. Do not put 3. This should only replace the last partition, not everything
this card in your Odroid (just yet). We need to edit the file / on the card.
etc/fstab on this card, which requires root. On my computer, I
typed in terminal: 6. In the VFAT partition, rename boot.ini to boot.ini.an-
droid. Copy the files you saved during step 2 into this partition.
$ sudo gedit /media/username/rootfs/etc/fstab NEVER MOVE THE VFAT PARTITION. Yes, its weird
to have the giant space in front of it. But I couldnt figure out
Change LABEL=boot to LABEL=VFAT. Save and quit. any other way to do it. Even moving it, then putting it back,
still made it so Android wouldnt boot. Ubuntu loads no mat-
2. Save everything in the boot partition in a separate direc- ter where this is. If anyone finds another way, please let me
tory on your computer. know. It would be great to not have to flash Android each time.
3. For the next section, I used a program called Disks, which Flash the Android image to your sd card. Load it into your
comes with Ubuntu. All that were doing is creating a .img of Odroid. Open up Terminal Emulator, and punch in:
the rootfs partition. On Disks, I navigated to the rootfs parti-
tion, and select Create Partition Image. Save this somewhere $ su
on your computer. Write down how big the file is, you will $ mount -o rw,remount /
ODROID MAGAZINE 6
DUAL BOOT ODROID-C2
$ vi fstab.odroidc2 Run the file by typing this command in the Terminal app:
Add the following lines to the file, save and exit: $ sudo dd if=multiboot_install_[c2|xu4].img \
of=/dev/sdX bs=1MB oflag=direct
#!/bin/bash
mv /media/boot/boot.ini /media/boot/boot.ini.ubuntu Alternatively, you can install the image yourself by building
mv /media/boot/boot.ini.android /media/boot/boot.ini the installer image:
reboot
$ sudo ./prepare_selfinst <destination_
Make the script executable: card>|<destination_image_name> c2|xu4
$ sudo chmod 777 boot_android Once the image file is created, you can write the image to
SD card using the dd command as described above.
Run the file by typing the following command in a Ter- Next, copy your installation sources (Android update image
minal window. I suggest making a desktop launcher for this update.zip, the Linux .img file, and/or the OpenELEC .tar
command: file) to the first partition of your USB drive. Rename the Linux
installation image to linux.img, rename the OpenELEC in-
$ ./boot_android.sh stallation to oelec.tar, and rename the Android installation ar-
chive to update.tar.gz or update.zip. Connect your USB drive
On Android, type the following ommand into the Terminal app: to the ODROID, insert the SD card containing the installer
image, and power on the ODROID-C2. Select Install from
$ su the menu, then follow the instructions to select the desired
$ mount -o rw,remount / partition sizes and installation destination (SD card or eMMC
$ vi /bin/boot_ubuntu.sh module). After the installation has completed, remove the in-
staller SD card and boot the device from the main media.
Then, create the script:
Tips
#!/bin/sh You can select the desired Android resolution by manu-
mv /storage/internal/boot.ini /storage/internal/boot. ally editing the boot.ini.android file, since the Hardkernel
ini.android ODROID Utility does not work with this setup. There is also
mv /storage/internal/boot.ini.ubuntu /storage/inter- an option to describe the operating systems in the boot menu
nal/boot.ini by adding the following line to the boot.ini.* files:
reboot
#DESCRIPTION <description goes here>
Make it executable:
For comments, questions and suggestions, please visit the
$ chmod 777 /bin/boot_ubuntu.sh GitHub repository at http://bit.ly/2jtlVyX.
ODROID MAGAZINE 7
GENERAL PURPOSE NAS
I
purchased my ODROID-XU4 with the intent of convert- transcoding. Mainline kernel has the benefit of newer drivers
ing it into a NAS. However, I did not want to settle on and better support. However, it also comes with new issues:
a specialized NAS distro like OpenMediaVault because buggy HMP support, USB3 instabilities, and no sound over
I wanted my ODROID-XU4 to do much more than being HDMI, to name a few. This implies that you have to weigh the
a plain old NAS. For instance, I plan on transcoding TV pros and cons and make a decision according to your needs.
shows recorded from my TV to the H264 standard, using the In order to install the mainline kernel, you will need to
ODROID-XU4s hardware encoder (as described in http:// follow either the official instructions (Hardkernel is working
bit.ly/2jnv4Za), and also make use of the GPIO pins later on. on an official 4.9 kernel for ODROID-XU4 and most likely
One more issue I had with OpenMediaVault is that it runs on will release it as a deb package) or follow the general instruc-
top of Debian, and I wanted to keep using Ubuntu in order to tions at http://bit.ly/2jnv4Za. Remember to fully unplug your
benefit from newer packages. ODROID-XU4 from all power sources (power, HDMI, USB)
I would be losing much of the convenience of using a spe- otherwise you will miss your network when you first boot.
cialized distro and consequently have to discover alternate ways
of doing things in a simple and user-friendly way. This presents Webmin
an opportunity to gain new knowledge. Every NAS needs a nice web GUI. Unfortunately, Open-
MediaVaults GUI is not an option, and after searching for a
These are the steps we will long while for alternatives I settled on using Webmin. Web-
need to take: min has been around since 1997 and has solid support for gen-
Install the mainline kernel Ver. 4.9 (optional) eral server maintenance tasks. It has the advantage that even
Install Webmin (http://bit.ly/J5WtfI) for easier management inexperienced users can find their way around and with the
Mount the disks integrated help in order to set set up and manage all kinds of
Set up network shares (Samba/NFS) servers like Apache, MySQL, Mail, DNS, and more. It has
Install Owncloud solid support for RAID and LVM management, and also sup-
Secure and optimize the OS ports Samba and NFS file sharing. Unfortunately, it lacks sup-
port for newer services like Transmission or Owncloud, but I
These instructions presume that you have medium or higher can always configure them manually.
level system expertise.
To install it, follow the steps below:
Install the mainline kernel (4.9)
The ODROID-XU4 has the benefit of having pretty good $ echo deb http://download.webmin.com/download/re-
mainline kernel support, which I need specifically for video pository \
ODROID MAGAZINE 8
GENERAL PURPOSE NAS
select the newly downloaded theme. After a short wait and # add at the end your mountpoint
refresh later, you will be presented with the page shown next /media/yourdisk /etc/auto.yourdisk --timeout 20
column.
You can explore Webmins features by using the search tool In the command above, replace your disk with the path you
in the interface. Note that you can install third-party modules want to use. Next, edit this configuration file and add your
available from http://bit.ly/2jf6KLd. There is one thing you partitions and their mount parameters, using the command
should change as soon as possible: by default webmin has a blkid to find the correct UUID for the disk:
background process that monitors disk temperature, and for
me it caused my disks to wake up every 5 minutes. After a $ sudo blkid
ODROID MAGAZINE 9
GENERAL PURPOSE NAS
$ sudo vi /etc/auto.yourdisk
xfs-partition -fstype=xfs,dev,exec,suid,noatime
:UUID=9d2d675d-cb08-45b2-b222-c981a8d00c06
Install Owncloud
Owncloud is a personal cloud service that lets you share
files with people over the Internet. I am not going to go into
installation details, because they have been discussed in a pre-
vious Magazine article http://bit.ly/2kgVZpn, but there are
some things I would like to point out.
First of all, the installation is quite simple on Ubuntu 16.04.
I used the guide at http://do.co/2bzxhxG and was up and run-
ning in 10 minutes. If you have a DNS name (e.g. dynamic
DNS for your home) you should take the time to get a valid
Create NFS share SSL certificate from Lets Encrypt (http://bit.ly/1qmIXIY) us-
ing steps listed at http://do.co/2bQpv4M.
your own seedbox featured in Odroid Magazine http://bit. You basically need to install the following prerequisites be-
ly/2j3xpaK. You also can also experiment with Webmins in- fore installing OwnCloud:
terface and easily create shares and users with a few clicks. For
example, Figure 3 shows the Create NFS share dialog. Click- $ sudo apt-get install php \
ing on the form items shows a contextual help menu that ex- libapache2-mod-php php-mcrypt \
plains well, what that item does. This can help you with things php-mysql php-bz2 php-curl \
you might not be familiar with. php-gd php-imagick php-intl \
When creating Samba/NFS shares, take security into con- php-mbstring php-xml php-zip \
sideration from the start. Samba authenticates by userid and mysql-server apache2
password, but NFS authenticates users only by IP. If you know
which hosts in your network may have access to specific shares, Next you install the OwnCloud repository for Ubuntu and
specify it in the configuration. For example, an NFS share refresh the available packages:
might be exported to Everyone, but access can still be limited
with iptables or /etc/hosts.allow and /etc/hosts.deny (which are $ sudo curl https://download.owncloud.org/download/\
used by TCP Wrappers Webmin module). repositories/stable/Ubuntu_16.04/Release.key \
Used with its default configuration, Samba will give decent | sudo apt-key add -
ODROID MAGAZINE 10
GENERAL PURPOSE NAS
$ echo deb https://download.owncloud.org/download/\ To get started with GeoIP firewall rules, youll need to have
repositories/stable/Ubuntu_16.04/ / \ the kernel sources (or kernel headers) available. Next, you can
| sudo tee /etc/apt/sources.list.d/owncloud.list install the extra iptables modules with the following command:
$ sudo apt-get update
$ sudo apt-get install \
Finally, you can install OwnCloud: xtables-addons-dkms \
$ sudo apt-get install owncloud xtables-addons-common \
$ sudo systemctl reload apache2 xtables-addons-source
You will also need to create a database user for OwnCloud: The dkms package will fail to install cleanly because some of
the modules fail to compile against kernel 4.9. You can disable
$ sudo mysql -u root the failed modules and recompile the rest by setting the fol-
> CREATE DATABASE owncloud; lowing settings to n instead of m in the file /var/lib/dkms/
> GRANT ALL ON owncloud.* to owncloud@localhost xtables-addons/2.10/build/mconfig:
IDENTIFIED BY databasePassword;
> FLUSH PRIVILEGES; $ sudo vi /var/lib/dkms/xtables-addons/2.10/build/
> exit mconfig
build_ACCOUNT=n
After all this work, you can login through the web interface build_LOGMARK=n
at https://<odroid-ip>/owncloud and finish the installation. build_SYSRQ=n
Since the point of OwnCloud is to be accessible to the Inter- build_pknock=n
net, you should take some time to harden your installation, as build_psd=n
described at http://bit.ly/2jOTe1F. In my case, I want to run
the OwnCloud service on a different port (so that external us- Next you will need to manually compile the rest:
ers dont have access to my internal sites), to set iptables rules
to allow access only from my country (based on geo-ip data), $ cd /var/lib/dkms/xtables-addons/2.10/build/
and set up fail2ban to protect me against automated password $ sudo autoconf
guesses. $ sudo ./configure
In order to run the OwnCloud virtual host on a different $ sudo make
port you need to make a few adjustments to your apache con- $ sudo make install
fig:
Before using the geoip module, you will need to initialize
$ sudo cp /etc/apache2/sites-available/default-ssl. the geoip database (the prefix to country mapping). You may
conf \ need to repeat this step from time to time to benefit from the
/etc/apache2/sites-available/owncloud.conf latest data:
$ cd /etc/apache2/sites-available
$ sudo ln -s ../sites-available/owncloud.conf \ $ sudo apt-get install libtext-csv-xs-perl
020-owncloud.conf $ sudo mkdir /usr/share/xt_geoip
$ sudo /usr/lib/xtables-addons/xt_geoip_dl
Next, edit /etc/apache2/sites-available/owncloud.conf and $ sudo /usr/lib/xtables-addons/xt_geoip_build -D /
make the following changes: usr/share/xt_geoip /root/GeoIPCountryWhois.csv
Add Listen 8443 as the first row All that is left to do now is to create and test the iptables
Change the VirtualHost definition to use port 8443 instead of rules to allow only traffic that you want to reach your own-
443 (<VirtualHost _default_:8443>) cloud setup. An example rule looks like this:
Change DocumentRoot to point to your owncloud installation
DocumentRoot /var/www/owncloud $ sudo iptables -N geo-owncloud
$ sudo iptables -A INPUT -p tcp -m tcp --dport 8443
When done, you can restart the Apache daemon, and you -j geo-owncloud
should be able to access only your OwnCloud instance on $ sudo iptables -A geo-owncloud -s 192.168.1.0/24 -j
https://<odroid-ip>:8443/. ACCEPT
ODROID MAGAZINE 11
GENERAL PURPOSE NAS
$ sudo iptables -A geo-owncloud -m geoip ! --src-cc cgroups is a feature of modern kernels that allows alloca-
RO -j DROP tion of resources for various processes. In our case we will need
the cpuset cgroup to create a littlecores and a bigcores
Do not forget to save your rules and apply them at startup group. Each group will force processes to run on specific cores
(either with iptables-save or with webmin). More details about by setting the affinity. So, littlecores will have cpus 0-3 and
geoip can be found at http://bit.ly/2jnwUJD. bigcores 4-7. Fortunately, creating the cgroups is easy:
# mkdir -p /sys/fs/cgroup/cpuset/littlecores \
/sys/fs/cgroup/cpuset/bigcores
# echo 0-3 > /sys/fs/cgroup/cpuset/\
littlecores/cpuset.cpus
ODROID MAGAZINE 12
GENERAL PURPOSE NAS
you will not be using. In my case I have disabled the follow- simply set systemds affinity, and all of its children processes
ing services: ModemManager, NetworkManager-wait-online, will inherit it. The affinity can be controlled by the CPUAffin-
NetworkManager, accounts-daemon, alsa-restore, alsa-state, ity parameter in /etc/systemd/system.conf, but keep in mind
apport, apport-forward.socket, bluetooth, cups-browsed, cups. youll be wasting CPU cores.
path, cups.service, cups.socket, lightdm, lxc-net, lxc, lxcfs,
plymouth*, rsync, saned, speech-dispatcher and whoopsie. Disk longevity
You will need to edit the startup scripts for the services In order to prolong the life of your disk(s), you may want
you want and have them add their PID to the correct cgroup. to spin them down after a period of inactivity. If you are us-
Once the main process (and its children) are part of the correct ing SSDs, you can skip this section because it only applies to
cgroup, any new children will inherit the cgroup. My plan old mechanical disks. Disks may receive a stop command to
was to add things like MySQL, Apache, Samba, NFS and even spin down either from an internal controller, from the USB-
Webmin to the big group and things like SSH (and all my shell SATA bridge or directly from the operating system. However,
activity), cron, Munin, and Transmission to the little group. sometimes the controllers are not tuned correctly and a stop
This allows processes that are involved in the NAS functional- command never arrives. This causes the disk to keep spinning
ity to be snappy, while other tasks can happily run on the little which generates a lot of heat and can cause the drive to fail
cores. If you are also using the X11 GUI, you might want to sooner than normal.
add lightdm to the bigcores group as well. The normal way to handle this is to tell the disk to spin
There are two types of startup scripts - systemd native down after a period of inactivity, which can be done with hd-
scripts and legacy sys-v (/etc/init.d/). When editing a systemd parm:
script (for example nfs-mountd.service) you will need to add
something like this to the [Service] section: $ sudo apt-get install sdparm hdparm
ExecStartPost=-/bin/sh -c echo $MAINPID | tee -a / To manually set the disk to sleep after 10 minutes of inac-
sys/fs/cgroup/cpuset/bigcores/tasks tivity, you can run the following command:
When editing an older sys-v script, it is trickier. You will [1885221.800435] usb 4-1.3: Product: My Passport 0730
need to find the start function, extract the PID(s) of the newly [1885221.800436] usb 4-1.3: Manufacturer: Western
started process and add it to the tasks list. Below is an example Digital
for changing the apache startup script: [1885221.800437] usb 4-1.3: SerialNumber:
575844314141305636323937
pidof apache2 | tr \0| xargs -0 -n1 | sudo tee
-a /sys/fs/cgroup/cpuset/bigcores/tasks To set up the rule, create a file like this and reload udev:
Take care to restart each service after changing it and make $ sudo vi /etc/udev/rules.d/90-disk.rules
sure to check that the process PID is in the correct cpuset tasks ACTION==add, ENV{DEVNAME}==/dev/
file. Do a full system reboot and check again after restart. If sd?, SUBSYSTEM==block, ENV{ID_SERIAL_SHO
this sounds too complicated and you are using kernel 4.9, there RT}==575844314141305636323937, RUN+=/sbin/hdparm
is a way to cheat and run all the tasks on the big cores. You can -S 120 $env{DEVNAME}
ODROID MAGAZINE 13
GENERAL PURPOSE NAS
ODROID MAGAZINE 14
GENERAL PURPOSE NAS
rate is the fact that the interrupt handler on the ODROID runs To transfer files you can simply use the following command:
on CPU0 by default, which is a little core. You can get another
150+Mbps in network speed if you move the network cards in- $ scp bigfile odroid-big:/remote/path
terrupt handler to a big core. I have setup a service that moves
all USB interrupt handlers to the big cores. You can download Tune systemd timeouts
it and install it with the following commands: It can be irritating to wait around for systemd to finish
waiting for something that will never finish. You can tweak
$ sudo wget -O /etc/systemd/system/affinity.service \ systemds timeouts by modifying the global timeout settings in
https://raw.githubusercontent.com/mad-ady/\ /etc/systemd/system.conf:
odroid-ODROID-XU4-optimizations/master/affinity.ser-
vice DefaultTimeoutStartSec=20s
$ sudo systemctl enable affinity DefaultTimeoutStopSec=10s
$ sudo systemctl start affinity
Note that some services (like networking) set explicit time-
You can check that it worked by looking inside /proc/inter- outs and youll need to change those as well:
rupts and seeing values in the 6th column (corresponding to
the 4th CPU) for the USB bus. Also, iperf will report faster $ sudo vi /etc/systemd/system/network-online.target.
download speeds. There are other possible improvements you wants/\
can do, but in my use case I saw no difference in performance. networking.service
You can review and discuss them at http://bit.ly/2k6JOMF. TimeoutStartSec=30sec
ODROID MAGAZINE 15
ODROID-VU8
THE AMAZING
ODROID-VU8
A PORTABLE ALL-IN-ONE
ODROID TOUCHSCREEN TABLET
WITH 1024 x 768 resolution
edited by Rob Roy (@robroy)
T
he ODROID-VU8 is a new Hardware
8-inch multi-touch screen for components
the ODROID-C2 and C1+ that
is available for purchase at http://bit. A. Assembled 8inch TFT LCD + 10
ly/2k8bML5 for USD$90. It gives users points multi touch screen
the ability to create all-in-one, integrated B. Plastic bottom case
projects such as tablets, game consoles, C. Converter board
infotainment systems and embedded D. HDMI dual gender board
systems. Just plug a 5V/4A DC adapter E. 8 x 3.5mm screws Figure 3 - Ethernet port and USB host
into the LCD Shell and power up the C2 F. 2port jumper cable ports x 2
and C1+ and display with a single cord. G. Micro-to-Micro USB Cable
This high-quality wide viewing angle (approx. 8cm)
LCD touchscreen is specifically designed H. Micro-to-TypeA USB Cable
to work with both Android and Linux (approx. 20cm)
on the ODROID-C1+ and ODROID- I. 5V/4A Power supply
C2. More detailed information may be
found at http://bit.ly/2iY960M. Figure 2 - ODROID-VU8 kit
Specifications
8-inch TFT-LCD
Screen Resolution: 1024x768
pixels (4:3 ratio)
10 finger capacitive touch input
(USB ID 18D1:4E12)
Back-light brightness control Figure 4 - Vent hole and cutting line for
with ODROID GPIO PWM the 40pin GPIO port
Max Power consumption :
1.1A/5Volt (Only LCD and dis-
play controller)
Viewing angle : Left 75, Right
75, Up 75, Down 75 degree
Screen Dimensions : 189 x 149
x 29 mm
Viewable screen size : 162 x121.5
mm (active area) Figure 5 - 5V/4A PSU input
ODROID MAGAZINE 16
ODROID-VU8
Assembly
Take care while assembling the
ODROID-VU8.
Figure 6 - Plug the HDMI dual gender board Figure 10 - The HDMI signal is connected
to the converter board. It is easier to fit the
HDMI dual gender board with this angle
ODROID MAGAZINE 17
ODROID-VU8
Figure 18 - Install the eMMC Module Figure 22 - Open the 6pin connector. Figure 26 - Check the hooks and lock-
/ MicroSD card. It is not possible to The door must open 90 degrees ing holes on the bottom case before you
chnage the eMMC module or microSD
close the front piece
card after full assembly
Software
In Android, select ODROID-VU8
in the ODROID Utility while attached
to a normal HDMI monitor.
In Linux, open boot.ini with a text
editor and uncomment these lines:
setenv m 1024x768p60hz
setenv vout dvi # C2
Figure 25 - Check the 40pin and 6pin
Figure 21 - Lock the slot FPCBs connections setenv vout_mode dvi # C1/C0
ODROID MAGAZINE 18
BUILDROOT
Buildroot
Now Available for
ODROID-C0/C1/C1+
by @Brian.K
B
uildroot is a handy tool to make Jxvf gcc-linaro-arm-none-ea- +-- boot.ini [1]
the process of building Linux bi-4.9-2014.09_linux.tar.xz \ +-- boot.vfat
simpler and more efficient. The -C /opt/toolchains/ +-- meson8b_odroidc.dtb
tool is not only easy to use but, also $ export ARCH=arm +-- rootfs.ext2
supports a variety of advanced options $ export CROSS_COMPILE=arm-none- +-- rootfs.ext4
such as cross-compilation and building eabi- +-- rootfs.tar
in additional software with packages. $ export PATH=/opt/tool- +-- sdcard.img
Buildroot is heavily menu-driven, which chains/gcc-linaro-arm-none-ea- +-- bl1.bin.hardkernel
allows you to quickly get things setup bi-4.9-2014.09_linux/bin/:$PATH +-- sd_fusing.sh
and compiling with 15 minutes! This `-- u-boot.bin
guide will walk you through the simple Next, build the BuildRoot execut-
steps needed to use Buildroot for the able: The boot.ini file is the configuration
ODROID-C1+ and ODROID-C0. file used for the ODROID-C1+ / C0 u-
Before you can use images generated $ cd buildroot boot. Once the build process is finished,
by Buildroot on your ODROID-C1+ $ make odroidc1_defconfig you will have an image called sdcard.
and ODROID-C0, you have to prepare img in the output/images/ directory.
the SDCard or eMMC. First, down- After a successful build, you can edit Flash the bootable sdcard.img onto
load the ODROID-C1+ / C0 buildroot the build options using the following an SD card or eMMC using dd on
source code from GitHub: command: Linux/OSX, or the Win32 Disk Imager
on Windows:
$ git clone --depth 1\ $ make menuconfig
https://github.com/hardkernel/ $ sudo dd if=output/images/sd-
buildroot.git Finally, we will compile all the files card.img of=/dev/sdX conv=fsync
and build the rootfs image. Note that
Additionally, we are going to need you will need to have Internet access, After flashing, insert the SD card or
a cross-compiler so the compiled boot- since Buildroot will download any source eMMC into your ODROID, and power
loader and kernel can run on the code for additionally included packages: it up. Your new system should be ready
ODROID: to use. For comments, questions, and
$ make suggestions, please visit the original post
$ wget\ http://releases.linaro. at http://bit.ly/2jqGRsO.
org/archive/14.09/components/\ After building, you should have the
toolchain/binaries/gcc-linaro- following file tree:
arm-none-eabi-4.9-2014.09_linux.
tar.xz output/images/
$ sudo tar\ +-- Image
ODROID MAGAZINE 19
ANDROID GAMES HOMEBRIDGE
Sky Force
Reloaded HomeBridge
What do we love
on a shoot em up? HOME
bullet hell!
by Bruno Doiche
AUTOMATION
EASILY INTEGRATE YOUR HOMEs
S
ometimes we want all the ac-
tion we TECHNOLOGIES
can take by @korinel
at once. And for
times like this, the
Infinite Dreams
team has created
what I believe to be
the most polished
H
shoot em up to date for the Android
ome automation offers
platform. Sky Force Reloaded nears
a great way to add all
masterpiece status! If you like a chal-
lenging game, this one will certainly sorts of functionality
be promoted to your home page on to your home in ways both
your Android. You have been warned. big and small. Whether its
for turning on the lights, ad-
justing the thermostat, or lock-
https://play.google.com/store/
apps/details?id=pl.idreams.Sky- ing the doors, there are a host
ForceReloaded2016 of gadgets you can buy to control
this technology automatically or
from your smartphone
However, a lot of these gadgets need
their own apps or tools in order to run, tion came from http://bit.ly/2jZr2u3,
making things complicate if you own but some additional steps were necessary
a lot of different gadgets with different to get things running smoothly.
APIs. Thats where HomeBridge comes The stumbling block at first was in
in. This nifty NodeJS server helps unify installing the nodes, as the version avail-
your various home automation gadgets able on the arch64 repositories (since
through Apples HomeKit API, allowing our ODROID-C2 is 64-bit) was severe-
your ODROID to help keep things con- ly outdated. To do this, create a tempo-
nected between your iPhone and your rary directory in your ODROID, then
various smart lights, smart locks, and run the following commands to prepare
other IoT devices, including those that your system:
Apple normally wouldnt let you con-
nect to a HomeKit system. $ sudo apt update
I havent seen instructions specific $ sudo apt upgrade
to getting HomeBridge working on an $ sudo apt-get install libavahi-
ODROID-C2, so I thought Id research compat-libdnssd-dev g++ git make
This game has some amazing graph- them, since its a great platform for the
ics, and is a good reason for you to open source technology. It took a while, Next we build the most recent ver-
buy a USB joystick if you dont have but eventually managed to get a clean sion of Node.js. Please note that the ver-
one already! homebridge build. Most of the informa- sion number of Node.js may change, so
ODROID MAGAZINE 20
HOMEBRIDGE ANDROID GAMES
A
1nodesource1~xenial1.dsc /etc/systemd/system Instructions for
mong the best things to do
$ cd nodejs-6.9.4 creating the config.json and installing
when playing with your
$ dpkg-buildpackage -us -uc additional homebridge modules can be ODROID is
found at http://bit.ly/1QK07by. to not have to deal
The above step will take a long time, Next, place your config.json in / with an overly com-
so go have a few cups of tea while you var/lib/homebridge and ensure that plex game. There are
wait. Once it has completed, install the above files are readable by the user times when you are
Node.js: homebridge. Load and start the sys- just lazy enough not
tem service: to want to open that
$ cd .. # Here are your local drawer to get your
.deb packages $ sudo systemctl daemon-reload USB controller, but you still want
$ sudo mv *.deb /var/cache/apt/ $ sudo systemctl enable home- to play a fun game. So what do you
archives bridge
do? Enjoy Tap N Slash, a quick and
$ sudo apt-get install nodejs $ sudo systemctl start homebridge
fun little game that requires balanc-
ing quick thinking with your endless
$ sudo systemctl status home-
desire to slash monsters on dungeons.
Next lets Install HomeBridge and its bridge # Just a status check
You wont believe how quickly you
dependencies: will become hooked on this amazing
Now youre all set and ready to start game!
$ sudo npm install -g --unsafe- making plugins for your various home
perm homebridge hap-nodejs node- automation devices. If someone could
https://play.google.com/store/
gyp update one of the official repositories apps/details?id=com.invictus.
$ cd /usr/lib/node_modules/home- to include a more recent aarch64 ver- tapnslash
bridge/ sion of NodeJS, that would simplify the
$ sudo npm install --unsafe-perm process considerably. If youre using a
bignum 32-bit ODROID, such as the C1, then
$ cd /usr/lib/node_modules/hap- this process should be easier. For com-
nodejs/node_modules/mdns ments, questions and suggestions, please
$ sudo node-gyp BUILDTYPE=Release visit the original post on the ODROID
rebuild Forums at http://bit.ly/2iBbaIZ.
ODROID MAGAZINE 21
LINUX GAMING
Linux Gaming
PPSSPP speed
comparison
by Tobias Schaaf (@meveric)
C
urrently, its hard to compare Lazy texture caching: ON processing shader that I really like to use
gaming performance between Spline/Bezier curves quality: Me- on the PPSSPP emulator. I collected
all of the ODROID devices. dium some high resolution pictures of differ-
Games that make use of the boards ca- Texture coord speedhacks (speedup): ent resolutions with and without FXAA
pabilities, such as dynamic recompiling, ON for you as a comparison. These pictures
are very rare, especially when it comes to Lower resolution for effects (reduces were taken on an ODROID-XU3 and
the ODROID-C2. None of the games artifacts): Balanced show what games can look like in high-
for the PS1, N64, or NDS require dy- er resolution and with FXAA shader.
namic recompiling for optimization and In my experience, these settings, You can find the pictures at http://bit.
run really close to the hardware, and so combined with a 2xPSP resolution, ly/2jZjlDQ. The standard resolution of
work well on the ODROID-C2. How- normally work for most games. Origi- a PSP is 480272, so a 2xPSP resolution
ever, there is one exception: PPSSPP, the nally, I wanted to compare every ma- would be 960x544, and so on.
Playstation Portable emulator. It actu- jor ODROID board (C1, C2, U2/U3,
ally implements an ARM64 dynamic XU3/XU4) but since I started with the Tekken 6
recompiler which allows us to play PSP ODROID-C1, I soon found that due to For some reason, people really seem
games on the C2 as well. So I thought it the alpha issue on the C1, most games to like this game, although I really dont
would be time to do a new comparison werent even working at all, and the understand why. I find it rather dull and
and see how the C2 fits into the world of games that were working had graphical poorly programmed. While other fight-
emulation. Please note that this is only issues. Switching from 32bpp to 24bpp ing games can run at a stable 60 FPS,
a comparison on Linux and performance or even 16bpp didnt help either. 16bpp Tekken 6 is stuck at 10-15 FPS with lag-
under Android is very different from caused an error on start, and the emula- ging and skipping. Still, it is very popu-
these tests here. tor wouldnt even boot up, and 24bpp lar.
was showing everything distorted. I The game is programmed in a way
PPSSPP settings havent tried the PPSSPP Libretro cores that makes it difficult to emulate. Frame
PPSSPP has a lot of different op- on the C1 yet, because I wanted to com- rates are always low in this game, and, in
tions to optimize performance or looks pare the same emulator and settings over my opinion, the graphics and effects do
of games. I use a set of default options all boards. In the end, I gave up on the not justify that high demand on perfor-
here to compare the different devices ODROID-C1, and only compared all
Figure 1 - Tekken 6
and went from there to see what options the other boards with each other.
could be changed for improvement. I primarily compared performance
These default settings are as follows: results on different resolutions, to check
how high you can put the graphics be-
Frameskipping 3 fore the game does not play well any-
Auto Frameskip: ON more. You will also often see the term
Mipmapping: OFF FXAA in my results, which is a post
ODROID MAGAZINE 22
LINUX GAMING
mance needed to run this game properly. 3xPSP+FXAA: 15-20 FPS, mostly 18 on any system. Still, both the U2/U3
Lets see how this game holds up on the FPS which is surprisingly high and XU3/XU4 can handle the game
different platforms. very well, and it shouldnt be hard to find
These results were much better a setting where the game is enjoyable for
C2 than I expected. Considering that the you.
Generally the C2 wasnt really able ODROID-U3 hardware is from 2012
to handle this game well. Videos were with only a Mali 400MP2 GPU, the Hexyz Force
a little laggy and the gameplay was even game was running rather stable and fast, I rather like this game, not only be-
worse. and gameplay was actually fluent. cause I like RPG games in general, but
also because this game is awesome when
Video XU3/XU4 it comes to requirements. The game runs
2xPSP: 20-30 FPS, mostly between I was a little bit surprise by the re- in only 30 FPS rather than 60 FPS like
20-25, somewhat laggy sults of the XU3. If you only check the other games, which means you normally
2xPSP+FXAA: 17-23 FPS, numbers, the XU3 seems even worse can put more resources in better graph-
mostly around 20 FPS than the U3, although the gaming expe- ics. Videos and walking around are so
3xPSP: 18-25 FPS, mostly between rience was quite nice. For this game, I well implemented that you can increase
20-23 FPS, somewhat laggy experimented with disabling frameskip- the quality with nearly no performance
3xPSP+FXAA: 13-15 FPS, not as ping due to the higher performance of issue at all. Only in fights you may ex-
laggy as you might expect the XU3/XU4. This helped a lot with perience slow downs, but since fights are
movies which ran surprisingly well that only for a short period, you can prob-
In-Game way, but in-game, frameskipping was re- ably live with some lags during fights for
2xPSP: 1-14 FPS, laggy but playable quired anyway. overall better graphics quality. The pic-
2xPSP+FXAA: 09-11 FPS, very laggy tures at http://bit.ly/2jZjlDQ that dem-
3xPSP: 09-11 FPS, very laggy Video onstrate what FXAA and higher resolu-
3xPSP+FXAA: 08-09 FPS, very laggy 2xPSP: full speed without frameskip- tions can do, were taken from this game.
ping, otherwise 25-60 FPS It also shows nicely how game graphics
Once again, Tekken 6 proves to be a 2xPSP+FXAA: full speed without can be improved quite a bit over the
badly programmed game, which is too frameskipping, otherwise 25-60 FPS original graphics of the PSP.
hard on the system. 3xPSP: full speed without frameskip-
Still, it surprised me that the C2 per- ping, otherwise 25-60 FPS
formance was so bad compared to the 3xPSP+FXAA: 25-60 FPS with
performance on the U3, which is 3-4 frameskipping
years older.
In-Game
U2/U3 2xPSP: 15 FPS, constantly staying
Figure 2 - Hexyz Force
On the U3, I forgot to change the directly at 15 FPS with no lags
resolution for videos and only tested 2xPSP+FXAA: 16-22 FPS, slightly
2xPSP resolution for the introduction. blurry but still lag free C2
The ODROID-U3 was handling this 3xPSP: 15-20 FPS, still lag free, ex- Video
game surprisingly well, which I did not cept for character close-ups at the start 2xPSP: 25-30 FPS, but mostly full
expect. and end of fights speed
3xPSP+FXAA: 12-15 FPS, surpris- 2xPSP+FXAA: 18-30 FPS, mostly
Video ingly fluent with only minor lags around 23-25 FPS slightly laggy
2xPSP: 50-60 FPS, mostly 60 3xPSP: 23-30 FPS, mostly in the
I was surprised that even higher 20s or even full speed
In-Game 3xPSP+FXAA is working rather well. It 3xPSP+FXAA: 14-20 FPS, mostly
2xPSP: 25-30 FPS, mostly 30 FPS makes the game look very good, but for 16-17 FPS, a little laggy
2xPSP+FXAA: 20-30 FPS, depend- speed purposes, its probably best to stick
ing on the battlefield with 2xPSP. Walking around
3xPSP: 25-30 FPS, not as stable at 30 Generally, Tekken 6 has proven that 2xPSP: 28-30 FPS, mostly 30 FPS
FPS its a hard game to get working fluently 2xPSP+FXAA: 24-30 FPS, mostly 30
ODROID MAGAZINE 23
LINUX GAMING
FPS resolutions while walking around, which 9xPSP resolution was running at 30
3xPSP: 27-30 FPS, mostly 30 FPS looked great. 2xPSP+FXAA was work- FPS. 10xPSP was mostly at 30FPS but
3xPSP+FXAA: 16-18 FPS, does ing nicely, but the low resolution made could fall down to 22-24 FPS, which was
some skipping while walking the overall experience a little blurry. I laggy. Its quite amazing, if you think
found that setting frameskipping to 1x about it. 9xPSP is an internal render-
Fights instead of 3x will reduce the skipping ing of 4320x244, and its running fine
2xPSP: 15-30 FPS, mostly in the of graphics. Overall, any 30 FPS game on the XU3/XU4. Thats a really nicely
higher 20s should only be run with 1x Frameskip- optimized game!
2xPSP+FXAA: 13-23 FPS, slightly ping instead of 3x, or else you might ex-
laggy, often below but close to 20 perience skipping graphics. The game Walking around
3xPSP: 10-30 FPS, often in the lower probably runs best at 3xPSP on the U2/ 2xPSP: full speed
20s or below U3, at least in fights. You may want to 2xPSP+FXAA: full speed
3xPSP+FXAA: 8-17 FPS, mostly be- try 2xPSP+FXAA to see if you get both- 3xPSP: full speed
low 15 ered by the blurriness or not. Still, this 3xPSP+FXAA: full speed
game is overall a very good experience 4xPSP: full speed
I was really surprised to see the FPS on the U2/U3. 4xPSP+FXAA: full speed
this low on the C2. This game runs
rather well on other devices, and the C2 XU3/XU4 Similarly to videos, performance
should have a very strong GPU to easily I set Frameskipping to 1 for testing drops at 5xPSP+FXAA without FXAA,
handle the effects. Still, with the 2xPSP on the ODROID-XU3/XU4. and even 9xPSP is playable. Framer-
setting, you can play the game in full ates can drop when it needs to load new
speed, so there is hope. Video textures into memory. Once data is in
2xPSP: 26-30 FPS, mostly 30 FPS, memory, there are no lags at all.
U2/U3 seems slightly laggy
I forgot to switch graphics for vid- 2xPSP+FXAA: same as 2xPSP Fights
eos, but 2xPSP ran at full speed and I 3xPSP: same as 2xPSP 2xPSP: 30 FPS, but may drop to 15
expect similar results on 2xPSP+FXAA 3xPSP+FXAA: same as 2xPSP FPS (frameskip) but stays full speed (no
and 3xPSP. 4xPSP: same as 2xPSP lags)
4xPSP+FXAA: 28-30 FPS, even bet- 2xPSP+FXAA: 30 FPS, may drop to
Walking around ter than 2xPSP, which is unusual 18-19 at lowest, no lags
2xPSP: 30 FPS 3xPSP: same as 2xPSP
2xPSP+FXAA: 30 FPS, a little blurry I found that on the XU3/XU4, vid- 3xPSP+FXAA: same as 2xPSP+FXAA
3xPSP: 30 FPS eos being played under ffmpeg seem to 4xPSP: same as 2xPSP
3xPSP+FXAA: 23-24 FPS, looks be slightly laggy. This doesnt mean that 4xPSP+FXAA: same as 2xPSP, can
nice, but skips the hardware cant handle it, but rather fall to 15 FPS, but still no lags
4xPSP: 30 FPS that something is not working correctly.
4xPSP+FXAA: 15 FPS, lots of skip- For example, running a 1080p H264 Theres a lot of room for experimen-
ping movie in ffplay on the U3 works per- tation here. I improved Spline/Bezier
fectly fine The hardware is close to its curves quality, disabled lazy texture cach-
Fights limit, but in most cases, it can handle the ing, and disabled lower resolution for ef-
2xPSP: 25-30 FPS, can even drop movie perfectly fine. The same movie on fects. These kinds of adjustments made
down to 20 FPS at times the XU3/XU4, which has twice the per- the game looked stunning, but still ran
2xPSP+FXAA: 25-30 FPS, a little formance of the U3, the video seems to in full speed with frameskipping set to 1.
blurry skip here and there, but the CPU cores I really like the game for its performance
3xPSP: 25-30 FPS, may drop to 15 are only 30-50% in use. I can see similar as well as gameplay, and shows what op-
FPS when a lot is going on on the scene effects in games. Disabling frameskip- timization on games can do. The game
3xPSP+FXAA: 15-18 FPS it gets very ping may actually improve video quality, looks and plays like it was made for the
laggy here although it shouldnt be necessary. ODROID XU3/XU4. I suggest using
Just for the record, starting at 3xPSP+FXAA, and seeing where you
The game runs rather well on the 5xPSP+FXAA, it starts dropping frames want to go from there. This game also
U2/U3. I was even able to test 4xPSP and gets laggy. Without FXAA, even very nicely shows what FXAA can do for
ODROID MAGAZINE 24
LINUX GAMING
you, as seen in the comparison screen- prove speed without having visible skip- 3xPSP: Normal racing 17-19 FPS,
shots previously mentioned. ping issues. very laggy, 2x and 3x Nitro around 11
FPS
Asphalt Urban GT 2 C2 3xPSP+FXAA: Normal racing 13-15
For this game, I changed the default Menu FPS extremely laggy, 2x and 3x Nitro
settings: 2xPSP: 30/45 FPS, varies, music around 8-10 FPS
Disable Frameskipping laggy
Activate Disable slower effects 3xPSP: 30/45 FPS, same as 2xPSP Setting Frameskipping to 1 will im-
(speedup) prove speed, and 2xPSP+FXAA and
Disable Texture coord speedhack Car Select 3xPSP are playable that way. Any value
(speedup), which surprisingly makes it 2xPSP: 19-23 FPS, extremely laggy higher than 1 will make the game laggy
slower in this game 2xPSP+FXAA: 19-20 FPS, extremely again, since too much skipping makes
laggy the graphics jumpy. It is best to keep
This is a very interesting game, em- 3xPSP: 21-23 FPS, extremely laggy the game at 2xPSP. With Frameskipping
ulation-wise. I have used it for perfor- 3xPSP+FXAA: 14-15 FPS, extremely set to 1, the game is fully playable and
mance testing ever since I started using laggy enjoyable on the U2/U3.
PPSSPP. Its kind of hard to emulate,
and results varied between different ver- Racing XU3/XU4
sions a lot, from unplayable slow to full 2xPSP: 18-21 FPS, very laggy Menu
speed without issues. It still has some 2xPSP+FXAA: 16-18 FPS, very laggy 2xPSP: full speed
issues with the effects, but that makes 3xPSP: 15-18 FPS, very laggy 2xPSP+FXAA: full speed
it perfect as a benchmark for seeing the 3xPSP+FXAA: 11-14 FPS, extremely 3xPSP: full speed
progress of the PPSSPP project. laggy 3xPSP+FXAA: 45-49 FPS, slightly
The game has a very variable frame too slow
rate. It does not stay directly at 30 or 60 I havent found a configuration where 4xPSP: full speed
FPS, but jumps a lot. Even in the menu, this game was playing lag free. Even
you can see the FPS jump between 30 2xPSP with Frameskipping set to 1 does Car Select
and over 50 FPS, which means that the not give a lag free experience, even if its 2xPSP: 50% speed, but is full speed
game speed varies. In game, this hap- playable at about 85% speed most of the with frameskipping 1
pens as well, but normally at a smaller time. 2xPSP+FXAA: 50% speed, but is full
scale between 30-34 FPS, rather than speed with frameskipping 1
staying at 30 FPS. U2/U3 3xPSP: 50% speed, but is full speed
The game reacts very badly to Menu with frameskipping 1
frameskipping. It was actually the first 2xPSP: full speed 3xPSP+FXAA: 50% speed,
game where I had to turn off frameskip- 3xPSP: full speed frameskipping 1 is slightly below full
ping to increase game speed, and now I speed, and you hear some lagging
know that setting the frameskipping too Car Select 4xPSP: 50% speed, but is full speed
high causes skipping in the game itself, 2xPSP: 56 FPS, mostly fine with frameskipping 1
which then makes it seem like the game 2xPSP+FXAA: 49 FPS, music laggy 4xPSP+FXAA: 50% speed,
is lagging, although its supposed to run 3xPSP: 56 FPS, mostly fine frameskipping 1 wont help, and the
at full speed with frameskipping. Still, 3xPSP+FXAA: 28 FPS, music very speed is only around 67% which means
setting the Frameskipping to 1 can im- laggy its rather laggy, frameskipping 2 would
be full speed but also jumps a little
Figure 3 - Asphalt Urban GT 2 Racing
2xPSP: Normal racing full speed Racing
most of the time, 1x Nitro 1-2 FPS low- 2xPSP: full speed with frameskipping
er, 2x and 3x Nitro around 19/33 FPS, 1
speeder picture 10 FPS 2xPSP+FXAA: full speed with
2xPSP+FXAA: Normal racing 23-25 frameskipping 1
FPS, laggy, 2x and 3x Nitro around 17 3xPSP: full speed with frameskipping
FPS, speeder picture 10 FPS 1
ODROID MAGAZINE 25
LINUX GAMING
ODROID MAGAZINE 26
LINUX GAMING
would prefer it over Tekken anytime. performing a fly-by. depending on the resolution you choose,
I loved playing Soul Calibur on my 3xPSP+FXAA and Frameskipping set to
Dreamcast, and the PSP version is really The game runs very well on the 1 or 2 is probably the best choice.
good as well. U2/U3, and fights are really fun.
3xPSP+FXAA would work well on this In Game/Fights
C2 game if it had a few more FPS, but since 2xPSP: depending on the back-
Video its slightly laggy, setting it to 3xPSP or ground, even no Frameskipping runs
2xPSP: 18-24 FPS, laggy 2xPSP+FXAA should be the best option at 60 FPS, but it is best played with 1x
2xPSP+FXAA: 15-20 FPS on the U2/U3. Frameskipping which is full speed, even
3xPSP: 16-22 FPS if its just at 30 FPS
3xPSP+FXAA: 12-15 FPS XU3/XU4 2xPSP+FXAA: requires Frameskip-
For the XU3/XU4, I experimented ping, but with 1x Frameskipping its also
In Game/Fights with no Frameskipping in this game, but full speed
2xPSP: 13-20 FPS, mostly lagfree at it turned out, some scenes do require 3xPSP: with 1x Frameskipping it
2xPSP+FXAA: 13-16 FPS, slightly Frameskipping of 1x or 2x, but after that runs at full speed at 30 FPS
laggy the game worked perfectly fine. 3xPSP+FXAA: runs mostly fine on
3xPSP: 13-16 FPS, better than 1x Frameskipping, but may slow down
2xPSP+FXAA Videos for a certain move or final blow, using 2x
3xPSP+FXAA: 10-11 FPS, very laggy 2xPSP: 24-60 FPS, can be slightly frameskipping keeps the game between
laggy, disabling Frameskipping keeps 20-30 FPS with no lags or visible skip-
I was once again rather disappointed FPS at 60 pings.
by the C2 here. Normally, the game 2xPSP+FXAA: can drop to 55 FPS 4xPSP: runs fine with 1x Frameskip-
runs rather well on other platforms, and without Frameskipping, otherwise it be- ping
I would have expected more here. 2xPSP haves the same as 2xPSP 4xPSP+FXAA: runs perfectly fine
should have at least been in the higher 3xPSP: same as 2xPSP with 2x Frameskipping
20s or 30s, but thanks to the Frameskip- 3xPSP+FXAA: requires Frameskip-
ping setting, 2xPSP is mostly lag free. ping, 23-57 FPS, sometimes you can see I was actually surprised to see
the skipping 4xPSP+FXAA working that well, but
U2/U3 4xPSP: same as 2xPSP even 3xPSP+FXAA already looks gor-
Video 4xPSP+FXAA: 20-32 FPS with geous and runs without any issues.
2xPSP : 40-60 FPS, no visible Frameskipping, video stars getting a lit-
lags, mostly over 50 FPS tle laggy here GTA - China Town
2xPSP+FXAA: 35-50 FPS, can have Wars
some slight lags, mostly over 40 FPS, No Frameskipping works best here, This game is also rather hard to emu-
rarely close to 50 but since the game needs Frameskipping, late, but is fun to play, and although ev-
3xPSP: 38-60 FPS, no visible lags,
mostly over 50 FPS Figure 6 - GTA China Town Wars
3xPSP+FXAA: 28-30 FPS, I saw 26
FPS once, but most of the time its at
29 FPS
In Game/Fights
2xPSP: 44-60 FPS, no lags, mostly
above 50 or even at 60 FPS
2xPSP+FXAA: 36-45 FPS, no lags,
mostly around 40 FPS
3xPSP: 36-60 FPS, no lags, mostly
around 45-50 FPS, but also 60 FPS
sometimes
3xPSP+FXAA: 23-26 FPS, slight
skipping, especially when the camera is
ODROID MAGAZINE 27
LINUX GAMING
ery action you do is on the same field, 2xPSP: mostly full speed, except if
the performance of these action are quite you drive really fast cars
different. Walking through town, driv- 2xPSP+FXAA: same as 2xPSP
ing in a slow car, driving in a fast car 3xPSP: same as 2xPSP
(even driving slow in a fast car), and 3xPSP+FXAA: same as 2xPSP
fighting enemies with different weap- 4xPSP: same as 2xPSP
ons all react differently, so I will base my 4xPSP+FXAA: slightly laggy occa-
results on an overall average, although sionally, especially in high speed cars
driving in cars is generally whats stress-
ing the system the most. This game also run better than I ex-
pected. It is probably best played in
C2 3xPSP+FXAA or 3xPSP mode, since
In Game FXAA doesnt seem to improve the
ODROID 2xPSP: 9-15 FPS, depending on the
car you drive, it can drop even lower
graphics on this game anyway.
Conclusion
Magazine This was a really bad experience that
I did not expect. This game runs really
I was very disappointed with the
ODROID-C2 performance while run-
ODROID MAGAZINE 28
SMARTPOWER2 POWER CONSUMPTION
Smart ODROID-C2
Power2 Power
Your energy-saving
best friend Consumption
edited by Rob Roy (@robroy) A simple tweak that will
work wonders
edited by Rob Roy (@robroy)
T
he SmartPower2 is a WiFi-enabled power supply that
controls the voltage and switch on/off a connected de-
vice, available for purchase from the Hardkernel store
for USD$40 at http://bit.ly/2j3hhcv. You can also monitor the
load current and power consumption remotely on your smart-
phone, tablet or PC by navigating to the built-in web page
UI. The full guide, schematics, PCB layout file and detailed
information are available on the Hardkernel Wiki at http://bit.
I
ly/2jVXvOC.
f you own an ODROID-C2, you can reduce the power
consumption significantly by adjusting one of the jump-
ers. By default, the board ships with jumper J1 in the on
position, which allows the board to be powered via the OTG
port. However, if your ODROID-C2 is using the 5V DC plug
instead, this can be an unnecessary use of power. According to
measurements while allow the device to idle at a serial console,
the power usage is around 1.7W. After removing the jumper,
as shown in Figure 1, the usage drops to 1.2W, a savings of
0.5W. This modification will also reduce heat produced from
the board. For comments, questions and suggestions, please
visit the original post at http://bit.ly/2jSIlsl.
ODROID MAGAZINE 29
MEET AN ODROIDIAN
Meet an ODROIDian
Richard Bown (@richard-g8jvm)
edited by Rob Roy (@robroy)
ODROID MAGAZINE 30
MEET AN ODROIDIAN
Richards radio shack, where he spends much of his free time as well as collecting model railways (4mm GWR circa 1935).
What advice do you have for someone wanting to learn more about
my C1+ to a C2 running Ubuntu 16.04, which is a far more programming?
stable platform for supporting two IP cams and a USB camera Very simple: dont give up. We all have to start somewhere,
on motions, as well as being a faster platform for Kodi. and dont be put off by the occasional flames. Read a lot, and
dont be afraid of breaking something, which is challenging.
Which ODROID is your favorite and why?
I like the XU4, because its a more heavy-duty platform than
the C1 or C2.
ODROID MAGAZINE 31