The Inforce IFC6410 contains a 1.7Ghz quad core Krait Snapdragon 600 CPU with 2GB of RAM, wifi-n, Bluetooth 4, a SATA port and 4GB of flash on board. The Snapdragon 600 chip is very similar to the chip found at the heart of the 2013 Nexus 7 tablet and Nexus 4. So another way to look at the IFC6410 is as a current generation Android device without a battery and screen but with gigabit ethernet and SATA.
The first thing that stands out about the board is that there are no fans or heat sinks. All that CPU performance is coming without much heat overhead. The box came with the IFC6410 machine and a power supply (USA plug 100-240V input).
A micro USB port which can be used to obtain a console (and root access) is nestled between the two silver headers, one is audio out and the other is ethernet and USB ports. Inforce provides Android for the IFC6410 though their TechWeb interface and there are third party details on getting Fedora 19 onto the IFC6410.
Gaining Root Access
I used two versions of Android with the IFC6410, both of which were shown as version 4.1.2. The later version was an update released by Inforce in late October which has a kernel version at 15 October 2013. Most of the article, and all of its benchmarks, used the older Android release which came with the device. I used the newer Android to do some specific testing to see if some things had changed in more recent software.
Soon after applying power to the IFC6410 its micro HDMI port displays a locked Android screen at 1080p. A click and drag with the mouse gives access to Android 4.1.2. Graphics and transitions are all very smooth. The selection of apps that comes preloaded on both of the Android versions is quite spartan and neither version included a Google Play app. This may change with a later software update. For now you may have to load your desired Android apk files onto the IFC6410 by manually obtaining them and installing. This is not a problem for applications like Firefox and XBMC which are free and offer their apk files fairly readily, but for paid applications this will present an issue. The commands below will install adb on a Fedora 19 desktop and then use the adb tool to send fennec to be installed on the IFC6410 when using a USB cable as shown in the next paragraph on obtaining root access.
$ sudo yum install android-tools $ adb install fennec-23.0.multi.android-arm.apk
One method to obtain root on the IFC6410 is to use the adb (Android Debug Bridge) on your desktop Linux machine and a USB cable to connect to the IFC6410. The commands shown below will instruct udev on your desktop machine to make the IFC6410 available to all users. This way you can run adb on the desktop as a normal user to communicate with the IFC6410. These commands were put together with my own knowledge and using the adb help page.
# lsusb ... Bus 002 Device 013: ID 05c6:9025 Qualcomm, Inc. Qualcomm HSUSB Device ... # cat /tmp/android.rules SUBSYSTEM=="usb", ATTRS{idVendor}=="05c6", MODE="0666" # cp /tmp/android.rules /etc/udev/rules.d/51-android.rules # chmod 644 /etc/udev/rules.d/51-android.rules # chown root. /etc/udev/rules.d/51-android.rules ... replug device ... $ ./adb root $ ./adb remount $ ./adb shell
Testing Graphics Performance
I found that XMBC didn’t want to play Big Buck Bunny 1080 h264 at full speed. Installing VLC from F-Droid enabled clean playback from local storage in /sdcard/Movies. There should be no issue playing 1080 h264 files back over gigabit ethernet or a fairly strong wifi link, but I thought I’d first see if a player was able to smoothly decode and playback from local storage.
Power usage after boot, sitting idle at a locked Android screen was 3.1 Watts, connecting a keyboard and mouse through a non-powered hub cost an additional 1.4 W. Running Octane (with mouse and keyboard connected) moved to around 6.5 with a peak up to around 7.2 W. During a long wifi transfer the power ranged from 6.1 with occasional jumps to 6.8 W. Playing the Big Buck Bunny 1080 h264 with VLC ranged between 8 and 9 W.
Performance wise, the IFC6410 obtained 1439 in Octane. To contrast, the ODroid-U2 got 1411 and the TI OMAP5432 (Dual core A15) at 800Mhz got 1914 overall. The openssl benchmarks are shown below. The openssl used on the IFC6410 is from Android ports and is the same OpenSSL 1.0.0e version that I’ve been using on all the boards. Given the similar performance shown in these two tests between the IFC6410 and the ODroid-U2 it might be the case that there are software udpates to the Android for IFC6410 and compilation for A15 based hardware which may be useful to improving performance.
Issues to Consider
I ran into a few issues worth mentioning, both of which were either fixed or helped by updating to October Android. Using the older Android version that came with the IFC6410 the software would freeze from time to time. I think this was related to an issue with the watchdog timer. I didn’t experience the freezing issue after the update to the October Android. The IFC6410 has now been running for over a week without issue. As mentioned above, there are some commands needed to bring up ethernet after booting. Far fewer commands are needed after updating to October Android. On October, the NIC driver is already setup and you only have to run the following as root to bring the interface up:
netcfg eth0 up netcfg eth0 dhcp
If you are using WIFI you may not notice the wired network needing additional commands. It is good to know that the gigabit NIC works fine after you tell Android to bring it up after a boot.
The IFC6410 is an extremely interesting single board computer. The combination of gigabit ethernet, extremely low heat generation (not even a heat sink!), and a latest generation quad A15 ARM CPU to power things is very enticing for fixed location android needs. The freedreno wiki has some information on getting Fedora 19 onto the IFC6410. I hope to write a follow up article on how well that works and if any of the video decoding capabilities of the hardware can be had from a Linux distro. We would like to thank Inforce Computing for providing review samples.
Correction: We incorrectly identified the IFC6410’s chip — it is a Krait Snapdragon 600 CPU, not an ARM A15.