Visual Studio Code on XU4 Ubuntu 18.04

When I was a student around 25 years ago, I had to spend over $200 to buy a Microsoft Visual Studio C++ software package.
At that time, I used Windows 3.1 on a blazing fast Intel 80286 8Mhz 16bit processor with 1MB RAM to build a small commercial software as a part-time job.

Today, we can run the Visual Studio on the XU4 Ubuntu Linux.
Visual Studio Code is a source code editor developed by Microsoft for Windows, Linux and macOS.
It includes support for debugging, embedded Git control, syntax highlighting, intelligent code completion, snippets, and code refactoring.
It is also customizable, so users can change the editor’s theme, keyboard shortcuts, and preferences.
It is free and open-source, although the official download is under a proprietary license.

From the VS Code GitHub : https://github.com/Microsoft/vscode/wiki/How-to-Contribute#prerequisites
You need following items.
– Git
– Node.JS, >= 8.9.1, < 9.0.0
– Yarn >= 1.5.0
– Python, >=  2.7 (version 3 is not supported)
– npm
– libx11-dev and libxkbfile-dev for native-keymap
– libsecret-1-dev for keytar

Let’s install the required packages.

sudo apt install git nodejs libx11-dev libxkbfile-dev libsecret-1-dev npm 

And check the versions of key components.

odroid@odroid:~$ yarn --version
0.32
odroid@odroid:~$ python --version
Python 2.7.15rc1
odroid@odroid:~$ nodejs --version
v8.10.0
odroid@odroid:~$ npm --version
3.5.2

“yarn” command in “cmdtest” package was too old which was compatible with npm.
So you have to install “yarn” package manually.

curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt
sudo apt update
sudo apt install yarn

And I had the latest “yarn” version.

odroid@odroid:~$ yarn --version
1.7.0

Let’s download Visual Studio Code source from MS Github and build it.

git clone --depth 1 https://github.com/microsoft/vscode
cd vscode
./scripts/npm.sh install --arch=armhf

Then, run your instance with ./scripts/code.sh from that same folder.
You must force to reinstal libgconf2 manually to fix a runtime error.

sudo apt -y install libgconf2-4

The first launching took quite a long time. Be patient.
The performance of source code editor was very good and look-and-feel was very similar to the original Visual Studio.
It’s time to learn how to configure the gcc and gdb command in the integrated development environment.

PUBG on ODROID-XU4 and how to play with keyboard/mouse

PlayerUnknown’s Battlegrounds is a multiplayer online battle royale game developed and published by PUBG Corporation, a subsidiary of publisher Bluehole. The last person or team left alive wins the match.

Thanks to Unreal Engine 4, mobile version was released for Android devices on February 9, 2018.

This guide shows the configuration for Android OS on ODROID-XU4. In detail, it includes how to control with keyboard and mouse. Everything to be the kings of the stage and eat the chicken.

Let’s check the hardware compatibility with PUBG on Android.

The company responsible for PUBG MOBILE has made a smart move using Unreal Engine 4 (UE4) for all versions of their games, they can apply the same content to all our platforms and continue with the same play experience on any devices.
The minimum requirements of the games are imposed by the UE4. This type of games can only be compiled with a profile that supports these features;
– Have a GPU with OpenGL support ES 3.1 or higher
– System with at least 2 GB of RAM
– Android 5.1.1
– Minimum free storage 2 GB
– Requires mouse or pointer emulator to select menus
ODROID-XU4 Android 7.1 (LineageOS port) meets the requirements. GPU on ODROID-XU4 supports OpenGL-ES 3.1, 2GB of RAM is stacked on the CPU, storage is expandable and USB ports are good enough for mouse.
Once you successfully install the Android 7.1 Nougat LineageOS-14.1, you can easily install the PUBG MOBILE from Google Play store.
관련 이미지
Before playing PUBG, you have to tweak the Android performance mode for smoother game rendering speed.
Set CPU and DRAM governor to “Performance” mode, and overclock the DRAM speed slightly (866Mhz to 933Mhz).
It can be done with ODROID Utility App. After setting, you have to reboot ODROID.

Keyboard and mouse in PUBG MOBILE
If we want to be the kings of the game, certainly the use of keyboard and mouse in PUBG MOBILE will give us a substantial advantage, the ability to perform strafe (lateral movement), point with the mouse and manage all the functions of the game with the keyboard is a differential point, something that can be seen playing where our opponents with touch controls are very limited in movements.  None of these methods is officially supported by the game but we have a very simple alternative.

Install Octopus to play with keyboard and mouse in PUBG MOBILE, this app already comes with profiles for these controls for the game by default with what not we will have to configure anything.
Octopus app is available in Google Play too.
Run Octopus and as we see in the upper part we have the types of control that we have connected to our ODROID, we can use them all indifferently. In the lower part we have the list of installed games, by default we will start PUBG MOBILE, although we can use this program for other games.
Inside game the use is simple, we have defined by default the keys in the action areas so it is very simple, we can move them or change them as we are interested. On the left we have the Octopus icon that we can press to show the advanced options and change drivers, in ODROID we need a connected mouse.
Within the Octopus settings menu we can switch between Keyboard and Gamepad, we can see the two systems already have a template configured, in the case of the Gamepad we have few buttons available for all the actions that a game like PUBG has. But we didn’t try a Gamepad yet.
An important point in this app are the settings, the level of transparency of the keys on the screen can be lowered when we already have them memorized to have the cleanest screen, the POV Sensivility level is critical to control the character’s rotation speed which by default is somewhat slow.

Don’t forget to allow a root access to the Octopus app for activating the functionality.

Once you launch PUBG game via Octopus app, you need to check the Graphics settings. It must be something like this.

It was quite playable with $59 ODROID-XU4 board even we met short period of choppy scenes randomly.

 

Mali GPU accelerated Qt5 on Ubuntu 18.04

Ubuntu 18.04 Bionic comes with Qt 5.9.5 by default.
But, Canonical has built it without considering the ARM Mali GPU detection and Qt5 didn’t work on Ubuntu 18.04 at all.
So we have to build the Qt5 source code manually.

Here is a quick and dirty build guide. I tested on the latest XU4 Ubuntu 18.04 Bionic image.
Update.
sudo apt update && sudo apt upgrade && sudo apt dist-upgrade
Install build-depends and source code.
sudo apt build-dep qt5-default
apt source qtbase5-dev
cd qtbase-opensource-src-5.9.5+dfsg
Edit a file for correct detecting the ARM’s Mali GPU.
Line 86 : src/platformsupport/eglconvenience/qxlibeglintegration.cpp
to : if (vendor && (strstr(vendor, "Vivante") || strstr(vendor, "ARM"))) {
from : if (vendor && strstr(vendor, "Vivante")) {
Another file should be edited to avoid a compile error. I wasted several hours to find this simple solution.
src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_egldevice/qeglfskmsegldevice.cpp
http://code.qt.io/cgit/qt/qtbase.git/commit/?h=dev&id=9a640e7bc67b0a1ff5c61c63703b669e6f24521e
Create two symlinks for proper OpenGL-ES detection. This fix will be included in the next update probably.
sudo rm /usr/lib/arm-linux-gnueabihf/libGLESv2.so.2.0.0
sudo rm /usr/lib/arm-linux-gnueabihf/libEGL.so.1.0.0
sudo ln -s /usr/lib/arm-linux-gnueabihf/mali-egl/libmali.so /usr/lib/arm-linux-gnueabihf/libGLESv2.so.2.0.0
sudo ln -s /usr/lib/arm-linux-gnueabihf/mali-egl/libmali.so /usr/lib/arm-linux-gnueabihf/libEGL.so.1.0.0
Build Qt5
sudo dpkg-buildpackage -b
I met this error when I ran it on a SSH session.
Project ERROR: QtDBus is enabled but session bus is not available. Please check the installation.
When I built it on the Mate desktop terminal instead of the remote ssh access, the build had no issue. It is still not understandable.After 2~3 hours of boring build time, the “debian packaging” failed due to a missing PGP key.
But all the Qt5 libraries with examples were generated correctly and I could install them with sudo make install command.Qt-OpenGL example works beautifully now.

 

We will test the stability and functionality for a couple of weeks.
If there is no critical issue, we will release it officially.
 
Feel free to post your idea on the forum thread.
 
A few interesting Qt5 base applications for Linux users
 
OpenCV (Open Source Computer Vision Library) is an open source computer vision and machine learning software library.
Qt5 framework is used with OpenCV for image processing visualization as well as interactive user interface.

Calligra : It offers a comprehensive set of 8 applications which satisfies the office, graphics and management needs.
Word, Presentation, Spreadsheet and many more. Simply run “sudo apt install calligra-libs” command to play with it.


 
 
Calibre : It is a powerful and easy to use e-book manager.
Simply run “sudo apt install calibre” command to read tons of great e-books.
Stellarium is a free open source planetarium for your computer.
It shows a realistic sky in 3D, just like what you see with the naked eye, binoculars or a telescope.

Running “sudo apt install stellarium” is enough to enjoy the virtual sky on your ODROID-XU4.

Krita is a professional and open source painting program. It is made by artists that want to see affordable art tools for everyone.
Unfortunately, Krita for ARM platform in Ubuntu 18.04 PPA was broken and it will be fixed by Canonical soon. It is available in Ubuntu 16.04 PPA only.

Ubuntu 18.04 for ODROID-XU4

  • We’ve proudly released a new Ubuntu 18.04 image for XU4 series with many useful features. This LTS version will be supported until April of 2023.
  • Ubuntu 18.04 LTS Bionic Beaver with Mate Desktop
  • Kernel 4.14.37 LTS (the latest LTS Kernel version at this moment)
  • OpenGL ES 3.1 and OpenCL 1.2 drivers for Mali T628MP6 GPU
  • X11 armsoc display driver with full-screen VSYNC implementation
  • Kernel header package is improved to support the DKMS driver build
  • FFMPEG with hardware accelerated H.264 decoder
  • SDL patched with OpenGL ES Support
  • GPU accelerated Chromium browser
  • Kodi 17.6 playback 1080p/60fps H.264 files without tearing
  • CPU performance-counter feature works with big and little cores for more efficient HMP program development
  • WiringPi and other GPIO/SPI/I2C/ADC/IRQ tinkering libraries are available
  • KVM feature is ready to run
  • Docker feature is ready to run
  • And many other features

 

Very powerful ARM streamline performance analyzer feature was included too.

 

You can download the OS image from this link.
https://wiki.odroid.com/odroid-xu4/os_images/linux/ubuntu_4.14/20180501

We want to test this image with our forum members for a couple of weeks.
After fixing some issues, we will prepare a minimal image too.

ODROID-C2 and C1 Ubuntu 18.04 images will be available in early June hopefully.

SuperTuxKart on ODROID-XU4

Karts. Nitro. Action! SuperTuxKart(STK) is a 3D open-source arcade racer with a variety characters, tracks, and modes to play.
SuperTuxKart is a free kart racing game. It focuses on fun and not on realistic kart physics.

Recently, STK developers updated their source code to support the OpenGL-ES 3.x and we can play the nice game on the ODROID-XU4 natively.

Let’s try to compile the source code and build it! This instruction was tested on the official Ubuntu 16.04 image version 20171212.
If you are an OGST image user, simply install it with “apt-get install supertuxkart-odroid”.

1. Install required packages to build the source code.

sudo apt install git build-essential cmake libbluetooth-dev libcurl4-gnutls-dev libfreetype6-dev libfribidi-dev libgl1-mesa-dev libjpeg-dev libogg-dev libopenal-dev libpng-dev libvorbis-dev libxrandr-dev mesa-common-dev pkg-config zlib1g-dev libtool subversion

2. Download the latest STK source code from the official Github.

git clone https://github.com/supertuxkart/stk-code stk-code

You have to download the game assets too from SVN. It took quite long time.

svn co https://svn.code.sf.net/p/supertuxkart/code/stk-assets stk-assets

3. Apply a patch to fix the color depth issue and OpenGL ES 3.x support.

cd stk-code
wget -O supertuxkart.patch https://pastebin.com/raw/ZpB2CjZy
patch -p0 < supertuxkart.patch

The patch was made by @AreaScout forum member.

4. Compiling

mkdir cmake_build
cd cmake_build
cmake .. -DUSE_GLES2=1
make -j8

Compiling took around 30 minutes.

5. Test and install
Run the game with this command since 720p mode shows much better performance than 1080p.

DISPLAY=:0.0 ./bin/supertuxkart --screensize=1280x720 --fullscreen

You can install your build system-wide:

sudo make install

OpenGL ES 3.x shows more detail and beautiful 3D rendering than 2.0. Look at the racing circuit floor.

OpenGL ES3.x
Image

OpenGL ES2.0
Image

References.
Source code : https://github.com/supertuxkart/stk-code
Discussion   : https://forum.odroid.com/viewtopic.php?f=98&t=29319
deb package : https://forum.odroid.com/viewtopic.php?f=91&t=29366

How to control ODROID-XU4 Cooling fan

ODROID-XU4 CPU has four 2Ghz big cores and four 1.4Ghz LITTLE cores.

It also has six GPU cores as well as 2GByte DRAM on the SoC with a package on package(PoP) process.

So this tiny SoC power consumption can be up to 10 Watt and it generates a lot of heat.
Therefore, we had to attach a cooling fan to the SoC to minimize the thermal throttling.
Exa_fan_comvec_cmyk_300.jpg
 
Once the system boots, the cooling fan runs at full speed by the u-boot(bootloader) initialization code.
When the Linux Kernel runs, the thermal management driver controls the fan speed automatically.
There are three threshold points 60°C, 70°C and 80°C.

Trip point 0 1 2
Temperature 60°C 70°C 80°C
Fan speed 120 180 240





The fan speed value is connected to 8bit(0~255) PWM control register.

When the SoC temperature is lower than 60°C, the fan doesn’t rotate.

If you need to adjust the temperature threshold values, just modify the thermal control nodes in sysfs.

For example, if you want to set trip point 1 to be activated at 30°C, you can just write a value on them.

$ echo 30000 | sudo tee /sys/devices/virtual/thermal/thermal_zone{0,1,2,3}/trip_point_0_temp
$ cat /sys/devices/virtual/thermal/thermal_zone{0,1,2,3}/trip_point_0_temp
# results
30000
30000
30000
30000

Then the fan starts spinning at 30°C.

If you want to do that automatically, write some code in the /etc/rc.local file.
Copy the following codes and paste.

# Target temperature: 30°C, 50°C, 70°C
TRIP_POINT_0=30000
TRIP_POINT_1=50000
TRIP_POINT_2=70000

echo $TRIP_POINT_0 > /sys/devices/virtual/thermal/thermal_zone0/trip_point_0_temp
echo $TRIP_POINT_0 > /sys/devices/virtual/thermal/thermal_zone1/trip_point_0_temp
echo $TRIP_POINT_0 > /sys/devices/virtual/thermal/thermal_zone2/trip_point_0_temp
echo $TRIP_POINT_0 > /sys/devices/virtual/thermal/thermal_zone3/trip_point_0_temp

echo $TRIP_POINT_1 > /sys/devices/virtual/thermal/thermal_zone0/trip_point_1_temp
echo $TRIP_POINT_1 > /sys/devices/virtual/thermal/thermal_zone1/trip_point_1_temp
echo $TRIP_POINT_1 > /sys/devices/virtual/thermal/thermal_zone2/trip_point_1_temp
echo $TRIP_POINT_1 > /sys/devices/virtual/thermal/thermal_zone3/trip_point_1_temp

echo $TRIP_POINT_2 > /sys/devices/virtual/thermal/thermal_zone0/trip_point_2_temp
echo $TRIP_POINT_2 > /sys/devices/virtual/thermal/thermal_zone1/trip_point_2_temp
echo $TRIP_POINT_2 > /sys/devices/virtual/thermal/thermal_zone2/trip_point_2_temp
echo $TRIP_POINT_2 > /sys/devices/virtual/thermal/thermal_zone3/trip_point_2_temp

Reboot and check if the changes applied well or not.

If you want to change the fan speed values in trip points, modify this system node.

/sys/devices/platform/pwm-fan/hwmon/hwmon0/fan_speed

You can check current fan speed scaling.

$ cat /sys/devices/platform/pwm-fan/hwmon/hwmon0/fan_speed
# results
0 120 180 240

You can adjust these values by writing value set to the file.
If you want to make your fan more aggressively, you can write like below.

$ echo "0 204 220 240" | sudo tee /sys/devices/platform/pwm-fan/hwmon/hwmon0/fan_speed
# results
0 204 220 240

If you want to do that automatically, write some code in the /etc/rc.local file.
Copy the following codes and paste.

# Target fan speed (PWM): 0, 204, 220, 240
echo "0 204 220 240" > /sys/devices/platform/pwm-fan/hwmon/hwmon0/fan_speed

You can also control the fan speed fully manually.

# Set fan to manual mode
$ echo 0 | sudo tee /sys/devices/platform/pwm-fan/hwmon/hwmon0/automatic
# Set speed to 100%
$ echo 255 | sudo tee /sys/devices/platform/pwm-fan/hwmon/hwmon0/pwm1

 

If you need further information, refer this WiKi page.
https://wiki.odroid.com/odroid-xu4/application_note/manually_control_the_fan#fully_manual_way_to_control_the_fan_speed

Android 8.1 Oreo for ODROID-XU4

Voodik has been porting Android 8.1(based on LineageOS 15.1) for ODROID-XU4 from last October.
Finally, he has released the first Alpha version for Debug Party.

oreo.jpg

What works
– Hardware accelerated GPU driver for 3D rendering
– Hardware accelerated VPU/MFC driver for video playing
– Ethernet
– GPS receiver
– USB sound card
– WiFi (including AP mode)
– Bluetooth Source mode
– Navigation bar

Known issues
– Bluetooth Sink mode doesn’t work.
– Some problems with Play Store(when App download stuck with “Download pending” message, just kill Play Store from recent apps and open again).
– Also not all ODROID specific features are ported at this point (e.g. Mouse wheel to zoom etc). Works in progress.

Antutu benchmark score looks great.
AnTuTu_7.x_Oreo_Performance.png

Feel free to join the Debug party.
Development thread: https://forum.odroid.com/viewtopic.php?f=94&t=28622
Kernel source Github: https://github.com/voodik/android_kernel_hardkernel_odroidxu3_beta/tree/lineage-15.1_5422

oreo.jpg

 

Linux Kernel 4.14 for ODROID-XU4/XU3/HC1/MC1

Linus Torvalds has announced the release of Linux 4.14, the latest stable release of the Linux kernel. Linux 4.14 features a number of new features and changes, and is set to become the next long term support (LTS) release backed for the next several years. We proudly announce the ODROID series on the same boat, ODROID-XU4 / ODROID-XU4Q / ODROID-HC1 / ODROID-MC1 / ODROID-XU3.

New Ubuntu OS image for the ODROID series has the following features:

– Linux Kernel LTS 4.14.0
– U-Boot 2017.05
– FFMPEG fully supports hardware acceleration, both encoded and decoded
– Kodi 17.6 (1080p video playback issue fixed)
– GPU/WebGL acceleration is enabled in Chromium browser
– CPU performance-counter feature works with big and little cores
– Removed broken Firefox
– Fixed mouse cursor blink issue

With each Linux kernel development cycle, it is getting easier to get updates to the latest mainline kernel due to the efforts of Samsung and the community. Some device drivers are added in the kernel which is not included in the mainline version.

Long Term Support (LTS) kernel support will get support until Jan, 2020. This is great news for the owners of small, extensible, powerful and inexpensive boards such as the ODROIDs.

Download it from this link.
https://wiki.odroid.com/odroid-xu4/os_images/linux/ubuntu_4.14/20171212

You can upgrade from 4.9 to 4.14 with following commands. You need to backup your important data first.

sudo apt update
sudo apt upgrade
sudo apt dist-upgrade
sudo apt install xserver-xorg-video-armsoc ffmpeg
sudo apt install linux-image-xu3 
sync
sudo reboot

When you install “linux-image-xu3” package, you will meet a dialogue box and you have to choose “No” to proceed Kernel update.

After update, you can check Kernel version.

odroid@odroid:~$ uname -a
Linux odroid 4.14.0-83 #1 SMP PREEMPT Thu Nov 23 14:07:46 UTC 2017 armv7l armv7l armv7l GNU/Linux

Please note that we will no longer support Kernel 4.9 due to our limited resources. We will keep updating Kernel 4.14 LTS only.

If you have any issues, please post it on the Kernel 4.14 development sub-forum.
https://forum.odroid.com/viewforum.php?f=146

How to install ExaGear Desktop Trial on Odroid

Thank to Eltechs for the great instruction and giving ODROID users a trail. This article is written by Eltechs team.
Please share your experience on ODROID forum.

ExaGear Desktop is a powerful emulator for porting almost any x86 applications to ARM-based devices. In a nutshell, if you need some Windows apps or on your Odroid for any specific purpose (e.g. Notepad++ or even MS Word), ExaGear is the best solution to make it happen. Not mentioning the fact, that some native Linux applications, such as Skype and TeamViewer, when launched within ExaGear run even faster than launched via Wine on Linux. If you need more information visit our product page!

Install ExaGear Desktop Trial on Odroid
Our ExaGear Odroid Trial is kept on Odroid repos and is available for the following ODROID models:

ODROID-XU4 / XU3
ODROID-C2
ODROID-C1+ / C1
ODROID-U3 / U2 / X2 / X

Within the following OS images on:

Ubuntu 16.04
Debian Jessie
ODROID GameStation Turbo
DietPi

 

Within the following OS images on:
1. Connect a keyboard and a mouse to your Odroid device, or connect to it remotely – whatever you got used to.
2. Call for the command line and input the following commands to update the system.
 $ apt-get update
3. After a few minutes of auto-updating, you need to proceed with the following command:
 $ apt-get install exagear-desktop
4. As soon as the installation is finished, simply switch on the ExaGear software:
 $ exagear
5. The pop-up window will appear for you to provide your name and e-mail address. After you are done with that your ExaGear Odroid Trial will be activated and will last for 3 days from the moment of activation.

You might want to check if ExaGear is properly installed on you Odroid device. You can do it the following way:

 $ uname -a
You should get the output like:
Linux odroid 4.9.51-64 #1 SMP PREEMPT Sat Sep 23 03:28:28 UTC 2017 i686 i686 i686 GNU/Linux
6. Finally, we recommend to check that everything is OK by running the “arch” command (it should result in “i686” output):

$ arch
i686
Playing Windows Games on Odroid
Well, you are done with the installation and activation of your trial, so it’s the very time to enjoy the full power of ExaGear Desktop emulator by playing different famous Windows games on your Odroid device. Of course, gaming on Odroid is just a very small part of what ExaGear software can really do, but this user case is very representative and after all simply cool!
Tobias Schaaf from Odroid Magazine has prepared an outstanding article, covering some of the most popular PC games to be installed and played on Odroid, using ExaGear Desktop as an emulation machine and PlayOnLinux app. Read the ultimate tutorial here or watch a detailed video-guide below!
Moreover, as a bonus, he has prepared a list of games compatibility for Odroid, tested by him personally on Odroid XU4 model. See the table bellow:

 

Linux x86 Compatibility list for ODROID XU3/XU4 running ExaGear 2.1 Desktop 

Game Rating Notes
Airline Tycoon Deluxe Perfect Uses Desktop resolution, up to 720p should run fine

Windows x86 Compatibility list for ODROID XU3/XU4 running ExaGear 2.1 Desktop

Game Rating Notes
7th Legion Perfect 640×480 only
8th Wonder of the World Very Good no music, long loading times, many resolutions, very demanding
Age of Empires 1 + The Rise of Rome Very Good No Music (no MIDI support in ExaGear)
Age of Wonders Perfect Requires IndeoVideo, offers many in game resolutions
Airline Tycoon Deluxe Broken Fonts don’t work can’t be played that way (else perfect)
Alien Nations Perfect requires: amstream, quartz, icodecs/iv5setup
Alpha Centaruri + Alien Crossfire Perfect use PlayOnLinux installer
Anno 1602 Perfect Requires NoCD patch
Arcanum: Of Steamworks and Magick Obscura Perfect 800×600 only
Atrox Very Good Very similar to Starcraft, supports 800×600 and 640×480 resolution, Videos are not working
Balls of Steel Perfect 800×600 max resolution
Caesar III Perfect runs in 640×480, 800×600, or 1024×768 resolution
Call to Power 2 Good Videos are not working, game supports many resolutions.
Capitalism II Fair Graphical glitches in game (known issue with the game)
Civilization III Very Good 1024×768 only, has some known sound issues.
Dark Colony Very Good requires Linux PC to install, 640×480 only, minor sound issues
Diablo 1 Very Good 640×480 only, requires ddraw patch
Diablo II Complete Edition 1.13d Very Good Videos don’t work, runs in 640×480 or 800×600
Dune 2000 Perfect use high resolution patcher for all kind of resolutions
Earth 2140 Perfect GoG classic Windows versions is only 800×600, reduce sound volume.
Emperor – Rise of the Middle Kingdom Good runs in window mode, annoying sound issues.
Gangsters: Organized Crime Good graphical issues in menu, game is fine, requires gdi rendering
Homeworld: Cataclysm Perfect 3D rendering in software mode, complicated resolution switch
Jack Orlando: A Cinematic Adventure (Director’s Cut) Good 640×480 only, often keyboard input issues
KKND: Krush Kill ‘n Destroy Xtreme Poor 640×480 only, Everything except New Game will crash the game (would be “perfect” otherwise)
KKND2 Krossfire Perfect supports 640×480, 800×600 and 1024×768 as resolution.
Larry 7: Love for Sail Perfect runs in ALL resolutions, you can NOT use “System” wine version
Lionheart: Legacy of the Crusader Very Good 800×600 only, can slow down at times, especially with special effects
Mech Commander Gold Perfect Must be installed on another PC, supports 640×480, 800×600, 1024×768, and 1280×1024 resolution.
Microsoft Office 2007 Perfect Runs directly on your Desktop
Pharaoh and Cleopatra Good runs in 640×480, 800×600 or 1024×768 resolution, suffers from sound issues (echoing)
Rollercoaster Tycoon Deluxe Very Good only minor sound issue, offers window mode which allows to start it on any desktop resolution (without virtual desktop)
Rollercoaster Tycoon 2: Triple Thrill Pack Very Good 800×600 only
Starcraft Very Good 640×480 only, can have slowdowns
Stronghold Crusader HD + Stronghold Crusader Extreme HD Very Good Some sound issues similar to Pharaoh and other games where sounds are played twice, many different resolutions supported including 1080p and 720p
The Tone Rebellion Perfect only runs in 640×480, needs to be installed on another PC
Tropico Gold Perfect offers different resolutions from 640×480 to 1600×1200
Unreal Very Good runs in software mode only, supports many different resolutions

New Ubuntu OS image released for XU4 and HC1

kernel4.9.44.jpg
https://wiki.odroid.com/odroid-xu4/os_images/linux/ubuntu_4.9/20170824Upgrade your OS to the latest Ubuntu 16.04.3. There has been huge update archived that improve the system and stability.

1. Canonical announced a point release of Ubuntu 16.04.3 a couple of weeks ago.

2. Kernel has changed to 4.9.44 from 4.9.27. There are tons of patches to improve system features.

3. Modern Uboot-2017 has been ported to support the KVM virtualization as well the PXE/TFTP features.

We are happy to release a new OS image with all these improvements.

You can find a release note and a download link in this WiKi page.

https://wiki.odroid.com/odroid-xu4/os_images/linux/ubuntu_4.9/20170824

If you need a headless server image without heavy desktop GUI for your Home Cloud One , refer this page.

https://wiki.odroid.com/odroid-xu4/os_images/linux/ubuntu_4.9/minimal

If you have any issue, feel free to post it on our community forum. https://forum.odroid.com/viewforum.php?f=92

Upstream u-boot for ODROID-XU4.

We are working on the new u-boot porting for XU4 boards.

Here is the source code of the new u-boot.
https://github.com/hardkernel/u-boot/tree/odroidxu4-v2017.05


What we can do with the new u-boot !
1. Enabling the HYP mode for the KVM virtualization with Kernel 4.9 LTS.
2. Enabling the Ethernet device to support the TFTP/PXE remote booting.
3. Booting from various new eMMC chipsets.
4. fatload / ext4load commands are available natively.
5. And many other new features.

We will release a update package in next week for Linux/Ubuntu users.
We are implementing a few more functions(for example, the fastboot protocol) for Android 4.4 and Android 7.1 now.

u-boot booting log from the serial console output.

U-Boot 2017.05-12186-gf98cc91-dirty (Aug 08 2017 – 12:16:58 +0900) for ODROID XU4CPU:   Exynos5422 @ 800 MHz
Model: Odroid XU4 based on EXYNOS5422
Board: Odroid XU4 based on EXYNOS5422
Type:  xu4
DRAM:  2 GiB
MMC:   EXYNOS DWMMC: 0, EXYNOS DWMMC: 1
MMC Device 0 (eMMC): 14.7 GiB
Info eMMC rst_n_func status = enabled
Card did not respond to voltage select!
mmc_init: -95, time 11
*** Warning – bad CRC, using default environment

In:    serial
Out:   serial
Err:   serial
Net:   No ethernet found.
Press quickly ‘Enter’ twice to stop autoboot:  0
reading boot.ini
9088 bytes read in 4 ms (2.2 MiB/s)
cfgload: applying boot.ini…
cfgload: setenv initrd_high “0xffffffff”
cfgload: setenv fdt_high “0xffffffff”
cfgload: setenv macaddr “00:1e:06:61:7a:39”
cfgload: setenv vout “hdmi”
cfgload: setenv cecenable “false” # false or true
cfgload: setenv disable_vu7 “false” # false
cfgload: setenv governor “performance”
cfgload: setenv ddr_freq 825
cfgload: setenv external_watchdog “false”
cfgload: setenv external_watchdog_debounce “3”
cfgload: setenv HPD “true”
cfgload: setenv bootrootfs “console=tty1 console=ttySAC2,115200n8 root=UUID=e139ce78-9841-40fe-8823-96a304a09859 rootwait ro fsck.repair=yes net.ifnames=0”
cfgload: fatload mmc 0:1 0x40008000 zImage
reading zImage
4793144 bytes read in 135 ms (33.9 MiB/s)
cfgload: fatload mmc 0:1 0x42000000 uInitrd
reading uInitrd
5327028 bytes read in 143 ms (35.5 MiB/s)
cfgload: if test “${board_name}” = “xu4”; then fatload mmc 0:1 0x44000000 exynos5422-odroidxu4.dtb; setenv fdtloaded “true”; fi
reading exynos5422-odroidxu4.dtb
61570 bytes read in 9 ms (6.5 MiB/s)
cfgload: if test “${board_name}” = “xu3”; then fatload mmc 0:1 0x44000000 exynos5422-odroidxu3.dtb; setenv fdtloaded “true”; fi
cfgload: if test “${board_name}” = “xu3l”; then fatload mmc 0:1 0x44000000 exynos5422-odroidxu3-lite.dtb; setenv fdtloaded “true”; fi
cfgload: if test “${fdtloaded}” != “true”; then fatload mmc 0:1 0x44000000 exynos5422-odroidxu4.dtb; fi
cfgload: fdt addr 0x44000000
cfgload: setenv hdmi_phy_control “HPD=${HPD} vout=${vout}”
cfgload: if test “${cecenable}” = “false”; then fdt rm /cec@101B0000; fi
cfgload: if test “${disable_vu7}” = “false”; then setenv hid_quirks “usbhid.quirks=0x0eef:0x0005:0x0004”; fi
cfgload: if test “${external_watchdog}” = “true”; then setenv external_watchdog
“external_watchdog=${external_watchdog} external_watchdog_debounce=${external_watchdog_debounce}”; fi
cfgload: setenv bootargs “${bootrootfs} ${videoconfig} ${hdmi_phy_control} ${hid_quirks} smsc95xx.macaddr=${macaddr} ${external_watchdog} governor=${governor}”
cfgload: bootz 0x40008000 0x42000000 0x44000000
Kernel image @ 0x40008000 [ 0x000000 – 0x492338 ] ## Loading init Ramdisk from Legacy Image at 42000000 …
Image Name:   uInitrd
Image Type:   ARM Linux RAMDisk Image (uncompressed)
Data Size:    5326964 Bytes = 5.1 MiB
Load Address: 00000000
Entry Point:  00000000
Verifying Checksum … OK
## Flattened Device Tree blob at 44000000
Booting using the fdt blob at 0x44000000
Using Device Tree in place at 44000000, end 44012081

Starting kernel …

 

Benchmark results for Raspberry Pi 3 Model B, ODROID-C1+, ODROID…

We ran several benchmark tests to measure the computing power of the XU4. The same tests were performed on the Raspberry Pi 3 Model B, ODROID-C1+, ODROID-C2 and ODROID-XU4. The values of the test results were scaled uniformly for comparison purposes. The computing power of the XU4 was measured to be ~7 times faster than the latest Raspberry Pi 3 thanks to the 2Ghz Cortex-A15 octa-core and much higher 64bit memory bandwidth. Using the XU4 as a computer provides a “desktop like” experience, unlike the industry wide sluggish performance of most single-board computers! Particularly for developers, compiling code on the XU4 is super fast. The coveted high-performance 2GB DDR3 RAM is an additional advantage allowing most programs to be compiled directly on the XU4.

Benchmarks (Index Score) Raspberry Pi 3 ODROID-C1+ ODROID-C2 ODROID-XU4
Unixbench: Dhrystone-2 865.4 1571.6 2768.2 5941.4
Unixbench: Double-Precision Whetstone (x3) 1113 1887.3 3076.8 6186.3
Nbench 2.2.3: Integer (x40) 619.92 1173.6 1808.92 2430.52
Nbench 2.2.3: Floating-Point (x100) 781.8 1245.3 2300.3 3787.3
mbw100: Memory Bandwidth (MiB/s) 542.912 616.339 1472.856 2591.461