Archive

Posts Tagged ‘amlogic’

Khadas Vim Amlogic S905X Development Board Gets Android 7.1 Firmware and SDK

March 22nd, 2017 1 comment

Khadas Vim is a development board powered by Amlogic S905X quad core processor that officially supports Ubuntu 16.04, OpenELEC and Android 6.0. Shenzhen Wesion Technology , the maker of the board, has now released Android 7.1 firmware image and SDK for the board.

Click to Enlarge

As we’ve seen before Amlogic Android 7.1 SDK still relies on Linux 3.14.29, but Linux 4.4 is also in the works.

If you want to give it a try on your board, download Vim_Nougat_170321.7z directly, or from the firmware download page. The current image installs to the eMMC flash via USB or a bootable micro SD card (Windows methods only), so it will wipe whatever OS you have already on the board.

The firmware is based on the features of their Android 6.0.1 image, but upgraded to Android 7.1.1 with Chrome and Gapps (for Google Play Store support).

Source code for the Android 7.1 SDK can be found via several repositories on Khadas Github account. Once the manifest file is updated, you should be able to follow the instructions to build Android for Khadas Vim board in order to build your own Android 7.1 image from source.

Android 7.1 Nougat on Amlogic TV Boxes – A First Quick Look

March 14th, 2017 15 comments

Last year, we found out that Amlogic was working on Linux 4.4, possibly for their Android 7.0 Nougat SDK. As a developer who signed all relevant NDAs, Stane1983 has now been working on Amlogic Android 7.0 for a few day, and reported some of his findings.

First Amlogic source code is based on Android 7.1.1 R6 (NMF26Q), but still with Linux 3.14.29, possibly because Mali-T830 GPU drivers are still r11p0, and Linux 4.4 may come later. One good thing is that the Nougat SDK supports 64-bit Android OS instead of the 32-bit Android we are all currently using in our TV boxes. A not-so-good news is that internal storage partitions have changed, which means most current TV boxes are unlikely to get an update, becau it may not be possible to perform OTA updated, and instead would require an updated via Amlogic USB burning tool.

Click to Enlarge

But let’s look at the user interface and settings. The default launcher has not changed, but if you click on the Settings icon, the Settings will appear on the right of the screen. Note that this only work with the default launcher, other launchers will not be able to open Settings that way, at least in the current version of the SDK, and there are some inconsistency in the way settings are displayed with some shown “Android Marshmallow style”. Hopefully those issues will be addressed before reaching end-users.

Another new mysterious new feature is “Upgrade bluetoothremote”, which asks you to select a Bluetooth device, but it’s unclear whether it is for smartphones, or Bluetooth remote control will start selling with TV boxes.

The normal Android 7.0 Settings app will open from the app drawer, i.e. it will work with any launcher, but currently sub menus will crash, so it still needs some work.

The default browser is Browser2, basically WebView component tester. Not exactly ideal, but Nougat does not come with a browser by default, so you’ll need to install your preferred one, or maybe the manufacturers will add it themselves to their firmware.

Media playback still have some issues, but Stane did not test into details saying to “wait for CNX to get one of boxes with Nougat installed”. I guess that must be me, and I have some work to do once it is released :).

Developers will also need to be aware the way to handle remote control codes has changed. The /system/etc/remote.conf is gone, and instead Amlogic defines the codes in a specific DTSI (Device tree) file  for remote code that includes definition for 3 remotes and starts with:

It looks to be the standard way IR remote controls are handled in mainline Linux kernel, at least the top section, but it may not be so common to declare maps within a DTSI file…

Finally, Stane could also update Amlogic SDK to Android-7.1.1_r26 (NOF27C) instead of r6 (NMF26Q), so developers can always make sure the latest minor version and security patchsets are included. Based on his feedback, it may still take a few weeks or months before we see Amlogic S9xx devices sold with Android 7.0.

Mainline Linux on 64-bit ARM Amlogic SoCs, and TV Boxes such as Wetek Hub / Player 2, NEXBOX A1 / A95X, etc…

March 6th, 2017 28 comments

We’ve already seen Neil Armstrong, part of BayLibre, worked on adding Amlogic SoC (S905/S905X/S912) to mainline Linux via our virtual schedule for the Embedded Linux Conference & OpenIoT Summit 2017. But at the time, although we could see some activity in Linux 4.10 including support for Nexbox A95X and Nexbox A1, they did provide that much details the work that had been done, but since then, ELC 2017 videos have been released, and BayLibre wrote a short post about 3D Graphics support in mainline Linux.

Click to Enlarge

We can see that I/Os, USB host, composite video output, Ethernet, eMMC/SDIO, and PSCI and SCPI features have already been added to Linux 4.10. but some important features have not yet including HDMI, Mali support, Audio, and high speed eMMC modes. HDMI is actually planned for Linux 4.12, which could be released in about 18 weeks if we keep the 10 weeks kernel release schedule we had in the past. WeTek Hub and Play 2 devices tree files have been submitted for Linux 4.11. Beside TV boxes, development boards such as ODROID-C2 and Khadas Vim will also be supported and benefit from this work.

While Mali is not supported in mainline Linux yet, the patchsets for Mali-450 GPU are available on github in order to enable 3D graphics acceleration in Amlogic S905, S905X and S905X. If you are interested to get more details, you may want to watch Neil Armstrong presentation at ELC 2017 which explains the status of Amlogic Linux before working on mainline, the work achieved, the work in progress, and an overview of the community.

You may also want to download the presentation slides for an overview of the talk, and check out linux-meson.com and BayLibre blog for future updates.

Thanks to Space Invader, theguyuk, and Harley for the tips.

Embedded Linux Conference & OpenIoT Summit 2017 Schedule

February 4th, 2017 1 comment

The Embedded Linux Conference 2017 and the OpenIoT Summit 2017 will take place earlier than last year, on February  20 – 23, 2017 in Portland, Oregon, USA. This will be the 12th year for ELC, where kernel & system developers, userspace developers, and product vendors meet and collaborate. The schedule has been posted on the Linux Foundation website, and whether you’re going to attend or not, it’s always informative to check out the topics.

So as usual, I’ll make a virtual schedule for all 5 days.

Monday, February 20

For the first day, the selection is easy, as choices are limited, and the official first day it actually on Tuesday. You can either attend a full-day paid training sessions entitled “Building A Low Powered Smart Appliance Workshop“, and the only session that day:

  • 14:30 – 15:20 – Over-the-air (OTA) Software Updates without Downtime or Service Disruption, by Alfred Bratterud, IncludeOS

Millions of consumers are at risk from security vulnerabilities caused by out-of-date software. In theory all devices should update automatically, but in practice, updating is often complicated, time-consuming and requires manual intervention from users. IncludeOS is a unikernel operating system that enables over-the-air (OTA) software updates of connected devices without downtime or service disruption.

The talk starts with a brief introduction to unikernels, their capabilities and how they can be very beneficial for IoT products from security, performance and operational perspectives. Then we give an overview of the IncludeOS Live Update functionality, which we use to demonstrate an atomic update of a device using Mender.io.

Tuesday, February 21

  • 10:30 – 11:20 – Bluetooth 5 is here, by Marcel Holtmann, Open Source Technology Center, Intel

The next version of Bluetooth has been released just a few month ago. This presentation gives an introduction to Bluetooth 5 and its impacts on the ecosystem. It shows new and exciting use cases for low energy devices and IoT with the focus on Linux and Zephyr operating systems.

With Bluetooth 5, the wireless technology continues to evolve to meet the needs of the industry as the global wireless standard for simple and secure connectivity. With 4x range, 2x speed and 8x broadcasting message capacity, the enhancements of Bluetooth 5 focus on increasing the functionality of Bluetooth for the IoT. These features, along with improved interoperability and coexistence with other wireless technologies, continue to advance the IoT experience by enabling simple and effortless interactions across the vast range of connected devices.

  • 11:30 – 12:20 – Embedded Linux Size Reduction Techniques, by Michael Opdenacker, Free Electrons

Are you interested in running Linux in a system with very small RAM and storage resources? Or are you just trying to make the Linux kernel and its filesystem as small as possible, typically to boot faster?

This talk will detail approaches for reducing the size of the kernel, of individual applications and of the whole filesystem. Benchmarks will you show how much you can expect to save with each approach.

  • 14:00 – 14:50 – Moving from IoT to IIoT with Maker Boards, Linux, and Open-Source Software Tools, by Matt Newton, Opto 22

In this session, developers will learn how to use the open-source tools, maker boards, and technology they’re already familiar with to develop applications that have the potential to deliver a massive positive impact on society. There are billions of devices–sensors, I/O, control systems, motors, pumps, drives–siloed behind proprietary control and information systems, waiting to be tapped into. This workshop is geared towards teaching the developer community how to use the tools they’re already familiar with to access, monitor, and manage these assets to create a potentially huge positive impact on our way of life.

  • 15:00 – 15:50 – Debugging Usually Slightly Broken (USB) Devices and Drivers, by Krzysztof Opasiak, Samsung R&D Institute Poland

USB is definitely the most common external interface. Millions of people are using it every day and thousands of them have problems with it. Driver not found, incorrect driver bound, kernel oops are just examples of common problems which we are all facing. How to solve them or at least debug? If you’d like to find out, then this talk is exactly for you!

We will start with a gentle introduction to the USB protocol itself. Then standard Linux host side infrastructure will be discussed. How drivers are chosen? How can we modify matching rules of a particular driver? That’s only couple of questions which will be answered in this part. Final part will be an introduction to USB communication sniffing. Krzysztof will show how to monitor and analyze USB traffic without expensive USB analyzers.

  • 16:20 – 17:10 – SDK in the Browser for Zephyr Project, by Sakari Poussa, Intel

Starting a development for embedded IoT system can be a tedious task, starting with the tools and SDK installations. You also need to have proper operating system, cables and environment variables set up correctly in order to do anything. This can take hours if not days. In this tutorial, we present an alternative, fast and easy way to start IoT development. All you need is your Zephyr board, USB cable and Web Browser. The Zephyr will be running JavaScript Runtime for Zephyr including a “shell” developer mode and Web USB. The Browser has the IDE where you can edit and download code to your board. No compiling, flashing or rebooting is required. During the tutorial, we have few boards available and participants can start developing applications for zephyr in 5 minutes.

  • 17:20 – 18:10 – Fun with Zephyr Project and BBC micro:bit, by Marcel Holtmann, Open Source Technology Center, Intel

This presentation shows how Zephyr empowers the BBC micro:bit devices and its Bluetooth chip to do fun things.

  • 18:15 – 19:00 – Yocto Project & OpenEmbedded BoF, by Sean Hudson, Mentor

Got a comment, question, gripe, praise, or other communication for the Yocto Project and/or OpenEmbedded technical leaders? Or maybe you just want to learn more about these projects and their influence on the world of embedded Linux? Feel free to join us for an informal BoF.

Wednesday, February 22

  • 10:40 – 11:30 – Journey to an Intelligent Industrial IOT Network, by Giuseppe (Pino) de Candia, Midokura

There are 66 million networked cameras capturing terabytes of data. How did factories in Japan improve physical security at the facilities and improve employee productivity? With the use of open systems, open networking, open IOT platforms of course!

Edge Computing reduces possible kilobytes of data collected per second to only a few kilobytes of data transmitted to the public cloud every day. Data is aggregated and analyzed close to sensors so only intelligent results need to be transmitted to the cloud while non-essential data is recycled. The system captures all flow information, current and historical.

Pino will draw from real IIOT use cases and discuss the variety of operations and maintenance tool to support proactive policy-based flow analysis for edge computing or fog nodes enabling IT and OT end to end visibility from a network perspective.

  • 11:40 – 12:30 – SecurityPI: IronClad your Raspberry Pi, by Rabimba Karanjai

Raspberry Pi has garnered huge interest in last few years and is now one of the most popular Linux boards out there sparking all kinds of DIY projects. But most of these function with the default settings and connect to the Internet. How secure is your Pi? How easy is it for someone to take over and make it part of a botnet or sneak peek on your privacy?

In this talk Rabimba Karanjai will show how to harden the security of a Raspberry Pi 3. He will showcase different techniques with code examples along with a toolkit made specifically to do that. This cookbook will harden the device and also provide a way to audit and analyze the behavior of the device constantly. After all, protecting the device finally protects us all, by preventing another dyndns DDOS attack.

  • 14:00 – 14:50 – IoTivity-Constrained: IoT for Tiny Devices, by Kishen Maloor, Intel Corporation

The IoT will be connected by tiny edge devices with resource constraints. The IoTivity-Constrained project is a small-footprint implementation of the Open Connectivity Foundation’s (OCF) IoT standards with a design that caters to resource-constrained environments. It is lightweight, maintainable and quickly customizable to run on any hardware-software deployment.

This talk will present IoTivity-Constrained’s architecture, features, APIs, and its current integration with a few popular real-time operating systems. It will end with a discussion of IoTivity-Constrained’s adaptation for the Zephyr RTOS.

  • 15:00 – 15:50 – RIOT: The Friendly Operating System for the IoT (If Linux Won’t Work, Try RIOT), by Thomas Eichinger, RIOT-OS

This presentation will start with RIOT’s perspective on the IoT, focusing on CPU- and memory-constrained hardware communicating with low-power radios. In this context, similarly to the rest of the Internet, a community-driven, free and open source operating system such as RIOT is key to software evolution, scalability and robustness. After giving an overview to RIOT’s overall architecture and its modular building blocks, the speaker will describe in more detail selected design decisions concerning RIOT’s kernel, hardware abstraction and network stack. Furthermore, the talk will overview the development and organizational processes put in place to help streamline the efforts of RIOT’s heterogeneous community. The presentation will end with an outlook on upcoming features in RIOT’s next releases and longer-term vision.

  • 16:20 – 17:10 – Graphs + Sensors = The Internet of Connected Things, by William Lyon, Neo4j

There is no question that the proliferation of connected devices has increased the volume, velocity, and variety of data available. Deriving value and business insight from this data is an ever evolving challenge for the enterprise. Moving beyond analyzing just discrete data points is when the real value of streaming sensor data begins to emerge. Graph databases allow for working with data in the context of the overall network, not just a stream of values from a sensor. This talk with cover an architecture for working with streaming data and graph databases, use-cases that make sense for graphs and IoT data, and how graphs can enable better real-time decisions from sensor data. Use cases covered will include data from oil and gas pipelines and the transportation industry.

Thursday, February 23

  • 9:00 – 9:50 – Android Things: High Level Introduction, by Anisha Dattatraya & Geeta Krishna, Intel Corporation

An overview of the basic concepts behind Android things and its structure and components is presented. Upon completion of this session, you should have a good overview of how Android Things brings simplicity to IoT software and hardware development by providing a simple and secure deployment and update model. This presentation provides the context needed for the Android Things Tutorial and other deep dive sessions for Android Things.

  • 10:00 – 10:50 – 2017 is the Year of the Linux Video Codec Drivers, by Laurent Pinchart, Ideas on Board

Codecs have long been the poor relation of embedded video devices in the Linux kernel. With the embedded world moving from stateful to stateless codecs, Linux developers were left without any standard solution, forcing vendors and users to resort to proprietary APIs such as OpenMAX.

Despair no more! Very recent additions to V4L2 make it possible to support video codecs with standard Linux kernel APIs. The ChromeOS team has proved that viable solutions exist for codecs without resorting to the proprietary options. This presentation will explain why video codecs took so long to properly support, and how the can be implemented and used with free software and open APIs.

  • 11:10 – 12:00 – Embedded Linux – Then and Now at iRobot, by Patrick Doyle, iRobot

Mr. Doyle will review the history of the use of embedded Linux at a commercial company (iRobot) and discuss the challenges faced (and overcome) then and now. While home routers and WiFi Access Point developers have enjoyed the benefits (and risks) of deploying Linux based products, that has not always been the case for other products. With the advent of low cost cell phone processors and vendor support for Linux, it is now possible to embed a Linux based solution in a consumer retail product such as a vacuum cleaner, minimizing risk and development time in the process.

  • 12:10 – 13:00 – Mainline Linux on AmLogic SoCs, by Neil Armstrong, BayLibre

Inexpensive set-top boxes are everywhere and many of them are powered by AmLogic SoCs. These chips provide 4K H.265/VP9 video decoding and have fully open source Linux kernel and U-boot releases. Unfortunately most of the products based on these devices are running an ancient 3.10 Android kernel. Thankfully AmLogic has put a priority on supporting their chips in the mainline Linux kernel.

Neil will present the challenges and benefits to pushing support for these SoCs upstream, as well as the overall hardware architecture in order to understand the Linux upstreaming decisions and constraints. He will also detail the future development plans aiming to offer a complete experience running an Upstream Linux kernel.

  • 14:30 – 15:20 – OpenWrt/LEDE: When Two become One, by Florian Fainelli, Broadcom Ltd

OpenWrt is a popular Linux distribution and build system primarily targeting the Wi-Fi router/gateway space. The project has been around for more than 12 years, but has recently experienced a schism amongst the developers over various issues.  This resulted in the formation of the LEDE project.  This split has caused confusion among the community and users. This presentation will cover what OpenWrt/LEDE projects are, what problems they are solving in the embedded Linux space, and how they do it differently than the competition. We will specifically focus on key features and strengths: build system, package management, ubus/ubox based user space and web interface (LuCI). We will demonstrate a few typical use cases for the audience. Finally, the conclusion will focus on the anticipated reunification of the two projects into one and what this means for the community and the user base.

  • 15:30 – 16:20 – Unifying Android and Mainline Kernel Graphics Stack, by Gustavo Padovan, Collabora Ltd.

The Android ecosystem has tons of out-of-tree patches and a good part of them are to support Graphics drivers. This happened because the Upstream Kernel didn’t support everything that is needed by Android. However the Mainline Graphics Stack has evolved in the last few years and features like Atomic Modesetting and Explicit Fencing support are making the dream of running Android on top of it possible. In other words, we will have Android and Mainline Kernels sharing the same Graphics stack!

This talk will cover what has been happening both on Android and Mainline Graphics Stacks in order to get Android to use the Upstream Kernel by default, going from what Android have developed to workaround the lack of upstream support to the latest improvements on the Mainline Graphics Stack and how they will fit together.

  • 16:30 – 17:20 – Developing Audio Products with Cortex-M3/NuttX/C++11, by Masayuki Ishikawa, Sony

Sony released audio products with Cortex-M3 in late 2015. Considering development efficiency, code reusability, feature enhancements and training costs, we decided to port POSIX-based open source RTOS named NuttX to ON Semiconductor’s LC823450 by ourselves, modified the NuttX for fast ELF loading, implemented minimum adb (Android debug bridge) protocols for testing purpose, DVFS in autonomous mode with a simple CPU idle calculation, wake_lock and stack trace which are popular in Linux/Android worlds. Middleware and Applications were developed in C++11 with LLVM’s libc++ which are also popular for large software systems. To debug the software, we implemented NuttX support for OpenOCD so that we can debug multi threaded applications with gdb. In addition, we used QEMU with the NuttX to port bluetooth stack and in-house GUI toolkit and finally got them work before we received LC823450 FPGA.


That’s all. I had to make choice, and did not include some sessions I found interested due to scheduling conflicts such as “Comparing Messaging Techniques for the IoT” by Michael E Anderson, The PTR Group, inc, and “Improving the Bootup Speed of AOSP” by Bernhard Rosenkränzer, Linaro.

You’ll need to register and pay an entry fee if you want to attend the Embedded Linux Conference & OpenIoT Summit:

  • Early Registration Fee: US$550 (through January 15, 2017)
  • Standard Registration Fee: US$700 (January 16, 2017 – February 5, 2017)
  • Late Registration Fee: US$850 (February 6, 2017 – Event)
  • Academic Registration Fee: US$175 (Student/Faculty attendees will be required to show a valid student/faculty ID at registration.)
  • Hobbyist Registration Fee: US$175 (only if you are paying for yourself to attend this event and are currently active in the community)

Kodi 17 “Krypton” Released, Kodi 18 “Leia” Development Started

February 3rd, 2017 2 comments

Although not officially announced yet, Kodi developers have finally released Kodi 17 “Krypton” which you can download for Windows, Linux, Mac OS X, Android, and iOS, as well as Raspberry Pi and some other development boards, and several Linux versions specific to TV box such as Nvidia Shield Android TV, Amazon Fire, or WeTek Hub. The most visible changes of the update are the new Estuary and Estouchy default skins, and people who have bought recent Amlogic based Android TV boxes may have already experienced them as several TV boxes shipped with Kodi 17 Beta versions.

There’s a long list of changes, but some noticeable ones include:

  • Lots of changes and updated to the Live TV and PVR (Personal Video Recorder) include PVR backend clients addons
  • New Settings user interface
  • Media library improvements with multiple sources support, more filtering & rating options, and better scanning & database performance
  • Audio Engine improvements on most platforms using ActiveAE
  • New default web interface called Chorus2

Click to Enlarge

There are also some Android specific changes, with the most important being that you now need Android 5.0 or greater to run the latest version of Kodi:

  • Moved to Android API 21 and SDK 21 with NDK 10 as minimum, meaning at least Android 5.0 is now required
  • Moved jni into its own separate project / submodule (jni backports from SPMC)
  • Added support for audio pass-through for DTS-HD, DTS-X, Dolby TrueHD, and Dolby ATMOS
  • Added support in CMake to debug binary-addon packaging issues on Android
  • Improved MediaCodec API video decoding implementations support for Android 5.0 (API level 21) and later
  • Improved automatic refresh rate switching support for video playback on Android 5.0 & later (>= API 21), inc. Android TV
  • Improved support for UltraHD decoding / 4K resolution output when HW supports it
  • Improved playback of HEVC, VC-1 / WMV 9, and VP9 hardware video decoding when using Android’s MediaCodec API
  • Removed AMLCodec hardware accelerated video decoding support for Android on Amlogic device

Now that Kodi 17 has been released, no new features will be added, but bug fixing will still occur, and a dot release might be available later on. New features are now developed on Kodi 18 “Leia”.

Via Liliputing

Ten Most Popular Posts of 2016 on CNX Software and Some Stats

December 31st, 2016 13 comments

The last day of the year is a good time to look back at what the year brought us, and I have to say it has been a fun and interesting year on CNX Software. The TV boxes news cycle has been dominated by Amlogic products, but most products have now switched to 64-bit ARM SoC, with 4K and HDMI 2.0 support, and price have kept going down, so you can now get a 4K TV box for as low as $20, although many people will prefer spending a bit more for extra memory and support. Intel based Bay Trail & Cherry Trail mini PCs have continued to be released with Windows, and in some cases Ubuntu, but the excitement seems to have died off a bit, maybe with the expectation of upcoming Apollo Lake mini PCs that should be more powerful. The year have been especially fruitful in the IoT space with a dramatic reduction in costs and sizes from ESP8266 boards to GPS modules and microwave radar modules, and we’ve also seen LPWAN modules & boards, mostly based on LoRa, but also Sigfox, being brought to market, as well as an alternative to ESP8266 with Realtek RTL8710AF, and of course the launch of Espressif ESP32 SoC with WiFi and Bluetooth LE. We’ve also been spoiled with development boards this year with the launch of 64-bit boards such as Raspberry Pi 3, ODROID-C2, and Pine A64+, as well as more dirt cheap Orange Pi boards, joined by NanoPi boards later in the year, and made all the more useful thanks to armbian community.

I’ve compiled a list of the most popular posts of 2016 using the page views count from Google Analytics:

  1. Amlogic S905 vs S812 Benchmarks Comparison (January 2016) – Amlogic S905 was probably the most popular SoC for TV boxes in 2016, thanks to a decent set of features, and aggressive pricing from manufacturers. So people wanted to find out if it was worth upgrading from S812 to S905, or maybe had to decide between purchasing a S905 or S812 TV box.
  2. Raspberry Pi 3, ODROID-C2 and Pine A64+ Development Boards Comparison (February 2016) – 2016 was also the year of cheap 64-bit development board with the launch of Raspberry Pi 3, ODROID-C2 and Pine A64+ boards, more or less at the same time, so again people want have wanted to look at which one to buy through this comparison.
  3. This is What a 16 Raspberry Pi Zero Cluster Board Looks Like (January 2016) – What can generated more buzz than the Raspberry Pi Zero? A cluster of Raspberry Pi Zero boards, as this post went viral the day after being posted. There was some talk about a crowdfunding campaign at one point, but it never happened.
  4. Review of K1 Plus Android TV Box with Combo DVB-S2/DVB-T2 Tuner (February 2016) – My review of K1 PLus T2 S2 might not be the most viewed post on CNX Software, but it sure generated a lot of comments, as while the product offers a unique combination of DVB-T2 and DVB-S2 tuners in an Android TV box at an attractive price, the documentation and software may need some improvements. Unofficial OpenELEC firmware images later surfaced from the community.
  5. How to Change Language to English and Install Apps Remotely on Xiaomi Mi Box 3 Enhanced (April 2016) – Xiaomi Mi Box 3 Enhanced is probably the most powerful TV box that can easily be purchased worldwide, but the caveat is that it has only been designed for the Chinese market. That post explains how to work around that limitation.
  6. Amlogic S905 vs Amlogic S912 Benchmarks Comparison (September 2016) – Quad core vs octa core, yeah twice the performance! Well not quite, but people were still curious to find out how the latest octa-core Amlogic S912 SoC would perform against Amlogic S905, and the truth is that the performance difference is rather minor, except for 3D graphics.
  7. NEXBOX A95X (Amlogic S905X) TV Box Review – Part 2: Android 6.0 and Kodi 16.1 (August 2016) – NEXBOX A95X was one of the first TV boxes based on Amlogic S905X processor, and my second review. The device is tiny an relatively cheap, so the review attracted some eyeballs.
  8. Mini M8S II TV Box (Amlogic S905X) Review – Part 2: Android 6.0 Firmware (July 2016) – My first review of an Amlogic S905X TV box nearly had the same number of views as NEXBOX A95X post, and many of the same features, just in a different package.
  9. Getting Started with Wemos D1 mini ESP8266 Board, DHT & Relay Shield (March 2016) – Wemos D1 mini is a great little ESP8266 board. It’s small, cheap ($4), and easy to use. The optional shields, just as cheap, make it a very attractive option for your IoT projects. Other people noticed it too, and then visited my review to get started.
  10. Raspberry Pi 3 Model B Board Features a 64-Bit ARM Processor, Adds WiFi and Bluetooth Connectivity (February 2016) – The last post is the list if a Raspberry Pi 3 leak just one day before the actual announcement.

Stats

Traffic has been rather steady in 2016 over the months.

cnx-software-traffic-2016The blog got around 9.8 millions pageviews in 2016 compared to about 7.2 millions pageviews in 2015, a 36% growth in traffic that was likely helped by my not going on a 3 months trip this year…

“openwrt” and scoop.it, respectively the top keyword and referral in 2015, were replaced by “amlogic s912” and Facebook in 2016.  Google Analytics only shows the last three months for keywords, and the full year for referrals, with referrals excluding search engines such as Google where CNX Software gets most of its traffic.

Top 10 Keywords Top 10 Referrals
amlogic s912 facebook.com
rk3399 flipboard.com
s905 vs s905x scoop.it
s905x vs s912 t.co
mxq box m.facebook.com
amlogic s905 4pda.ru
orange pi vs raspberry pi com.google.android.googlequicksearchbox
s905 vs s912 duckduckgo.com
s912 vs s905x plus.google.com
amlogic freaktab.com

The visitor mix of the blog per country as not changed much, with the top 10 countries of 2015 still there in 2016, and the top five order unchanged with United States, United Kingdom, Germany, Canada, and France.

cnx-software-visitors-2016London still hold the top city spot, but Hong Kong and Moscow dropped of the list to be replaced by New York and Melbourne.

cnx-software-2016-browser-operating-systems

Windows is still the main operating system of CNX Software visitors, but its share, as well as the share of other desktop operating ssystems including Linux and “Macintosh”, keeps dropping, while Android and iOS are having a stronger and stronger presence. In the “browser war”, Chrome lead extended further from 52.93% in 2015 to 59.41% in 2016, and Firefox dropping from 23.54% to 18.90%. Microsoft Edge probably had the best growth going from 0.56% last year to 1.86% this year.

Some of the 2016 review samples and I wish all my readers a very happy, prosperous, and healthy new year 2017.

Click to Enlarge

Click to Enlarge

How to Create a Bootable Recovery SD Card for Amlogic TV Boxes

November 19th, 2016 28 comments

I reviewed Rikomagic MK22 TV box about two weeks ago, and with the firmware I had, online firmware update was not enabled, and the company only released .IMG firmware for Amlogic USB Burning Tool, a windows only tools that’s not well designed, and requires some procedure that vary slightly from boxes to boxes which in some cases forces to buy a male to male USB cable.

I’ve now started reviewing R-Box Pro TV box also based on Amlogic S912 processor, online firmware update is not working either, and again I only managed to find .IMG firmware for the box on GeekBuying. However, I’ve been informed that “USB Burning Tool” firmware can now be flashed through a micro SD card, or USB flash drive with all recent Amlogic TV boxes, so I’ve tried this method instead of R-Box Pro, and decided to report my experience in this post following some instructions on Freaktab made by user Calc. I’ll show instructions in Linux (which could be further streamlined), and then Windows.

Linux Method

After downloading and extracting the rar’ed firmware file (twice), I ended up with a single img firmware files (aml_s912_q6330-R-BOX-PRO-3gddr-mac-20161015.img).

First we’ll need to have a tool to extract some files from the firmware. Create aml-upgrade-package-extract.c with the code below which I found on Freaktab too and slightly modified it to parse the firmware filename:

Now compile the tool with gcc:

and run the thing on the firmware file:

It will extract a bunch of files:

You’ll just need aml_sdc_burn.ini and aml_sdc_burn.UBOOT, plus the IMG file itself to create a bootable mass storage device.

Now find the device for your micro SD card (formatted with FAT32) with lsblk:

In my case it’s /dev/sdd, but I’ll use /dev/sdX in the instructions below, just change the command with yours.

and finally re-mount the SD card/flash drive, copy the firmware file and aml_sdc_burn.ini to the root of the device, and rename the firmware to aml_upgrade_package.img to match the string in aml_sdc_burn.ini:

Now make sure no other USB devices or SD card are inserted in the TV box, and insert your bootable (micro) SD card or USB flash drive into the TV box. If your TV box is fully bricked, you have nothing to do, and the update should start straightaway, but if it is partially bricked or just working fine, you still need to press the recovery button, apply power, and release the button in order to enter recovery mode. The upgrade should then start automatically as shown below.

micro-sd-card-firmware-update

Patiently wait for the update to complete and you should be all good. Please note that I first tried with a USB flash drive, and the method did not work. Once the update is complete, you’ll see the “Android success” logo.

amlogic-firmware-update-successAt this point, remove the micro SD card, and power cycle the board to complete the final steps of the update, and within one or two minutes you should get the Android launcher. If instead the firmware ends with “Android failure” logo showing a red cross, verify your firmware MD5 (e.g. with md5sum in Linux) to make sure it’s not corrupted. If it is, re-download the file and/or re-copy the file to the micro SD card.

Windows Method

If you are a Windows user it’s much easier as you just need to use Burn_Card_Marker tool (bootcardmaker.exe), which you can download here. The documentation shows the interface as shown below.

burn_card-maker-english

But after starting the program in Windows 7, and changing language with the top menu, second option to English, it stayed in Chinese language and looked like the screenshot below instead.

burn_card_maker_v2-0-2

[Update: After changing the Language to English, select the third option in the top menu to apply the change…amlogic-card-maker-menu

…restart the app, and it will be in English.]

It’s not really a big issue, but you can still select your SD card device (F: drive in my case), load the file, and press “Make” button to start create a bootable recovery (micro) SD card.
amlogic-create-bootable-card

You’ll get a “Success!” pop-up window and the end, and the content of the SD card will show the firmware, and the two aml_sdc_burn files.

burn-card-maker-files

Now you can insert the micro SD card in the TV box, enter recovery menu with the pin hole or other method for your TV box, and firmware update will start automatically.

Good Luck!

Amlogic USB Burning Tool Still Sucks in 2016

November 6th, 2016 18 comments

[Update November 2016: If you don’t like USB Burning Tool or don’t have the necessary USB cable, you can flash Amlogic IMG firmware to a micro SD card instead]

In the first few years when Android TV Boxes/mini PCs started to hit the markets, in the 2012-2014 period, online firmware update was inexistent for the vast majority of the boxes, and if you wanted to update your firmware you had to use some windows tools like USB Burning Tool for Amlogic, AndroidTool for Rockchip, or PhoenixUSBPro / PhonixSuite for Allwinner platforms. All those tools have poor design, for example the window is not resizable, so it’s impossible to your an old netbook (1024×600 resolution), and then you have to install drivers which is easy, for after detection of the box may be hit and miss, and you have to follow a procedure with the right power sequence with a USB cable connected to a USB OTG port (not always properly marked) and the recovery pin hole or button. It’s taken me close to 4 hours in the past to update firmware through that method switching between USB ports and computers to find out what may be wrong… Luckily in recent years, many devices are now supporting OTA firmware updates, or an easy offline update procedure using a micro SD card or USB flash drive. That means most people should not need to torture themselves using such terrible tools and procedure, unless your TV box is somehow bricked, in which case Windows tools, or their Linux equivalent, are required.

I’ve writing about this because Rikomagic must have been nostalgic and decided not to provide OTA firmware update, and only distribute MK22 TV box firmware as an IMG file for Amlogic USB Burning Tool, both of which can be downloaded on Rikomagic download page. Even though I must have had to use such tools for nearly two years, I was naively expecting it update the firmware in a few minutes, since I used such tools extensively in the past. I was wrong, and I did managed to flash the firmware after two hours, most of it due my own mistakes, as I forgot some of the caveat, and did not read the complete instructions. So I’ll report my experience in case it can help somebody.

The first challenge was to find which one of the USB ports is the OTG one, as there are three, and no specific markings. At first, none of the ports would be detected due the wrong recovery sequence as explained, but I eventually found out it was the lonely USB port on the side, on the left of the micro SD slot and recovery pinhole.

mk22-otg-port-recovery-button

I know that normally you need to insert a toothpick in the recovery button and apply power, before releasing the recovery button, and I did just that and could not get into recovery mode at anytime. My mistake was that I had also inserted the USB cable, and it took me a while to realize it would also power the power through USB, not enough to show anything on the TV, but enough to boot the processor, and prevent me from accessing recovery mode. So the correct procedure, is to enter recovery mode by pressing the recovery button, applying power, and a few second later release the recovery button, and only then you can insert the USB cable.

After that I fired up a Windows 7 virtual image through VirtualBox, and installed USB Burning Tool and drivers by clicking on setup_v2.0.5.15_build7.exe downloaded from Rikomagic website. The installation went smoothly, but after enabling “Amlogic” device in Virtual Box, it would report the device is not supported, so I removed the drivers and reinstalled them, and I could get “Worldcup Device” in the Device Manager.

Good, now I can start USB Burning Tool, change the language to English in the program, and the TV box is detected, so I loaded the firmware file (File->Import Image… RKM MK22_161031.img), hoping to get ready to flash the firmware, but I got another error message “Get key failed” with the mac = 0 on the right window when click on Start button… Very odd.

Click to Enlarge

Click to Enlarge

But I’m not the only one with the issue, and for some reasons, Amlogic decided to add a license to their factory software… Hard to understand why, but I should definitely have read the provided “MK22.MK06 Software installation intructions-161013.doc” manual, as it explicitly states to

copy the folderlicense to the path when you set by this step. For example: I set C:\Program Files (x86)\Amlogic\USB_Burning_Tool

And there’s indeed a license folder in the downloaded file from Rikomagic, so I copied the directory to C:\Program Files (x86)\Amlogic\USB_Burning_Tool, overwriting the current license directory, and started USB burning tool again. Hmm… same “get key failed” error… Should I reboot? Let’s do it, but same error again after reboot.

So I decided to uninstall everything, and start from start with the drivers and USB Burning Tool, and made sure I copied the license directory before starting USB burning tool. After which I started the program, loaded the firmware file, click on Start button, and after just under 7 minutes I had managed to flash the firmware! Woohoo!

Click to Enlarge

Click to Enlarge

That was a painful experience. So while there’s a case (firmware recovery) for such tools and images, end users should not be asked to install the firmware through that method. It’s complicated, and the default settings wipe out your data and apps.