Welcome back everyone to another video, in this one we’ll be attempting to boot fuchsia os, or at least a part of it on an actual x86 PC based hardware. Fuchsia OS is still very much experimental at this stage, so expect more failures than success…
Before we get started I would like to give a shout out to sebe, who has on many occasions helped with Fuchsia and Magenta related issues…
So let’s get to it, there are some prerequisites before we get started, make sure that your fuchsia source is updated and you have completed the build for x86-64 target from the “getting started” guide. Once that is done, insert the usb drive that you want t make bootable while in the working directory execute the usb gigaboot build script inside the scripts folder.
This script has three options, one of which allows you to either use a basic magenta kernel based os without most of the Fuchsia functionality, we’ll look into it later on. Upon execution of the script, it will start to compile a few source files and after that it will ask the usb drive that is to be used to boot the OS, type the device name while making sure that you adhere to all the warnings as all of the data on the selected device will be wiped clean.
Once that is done the script will continue to write files to the USB drive, after it has completed the process it will automatically unmount the drive.
Finally now we can boot from the drive.
Here how it went for me, I didn’t boot at all on my laptop that is running on a pentium 3805U CPU, next the gigaboot bootloader booted fine on the same laptop but with a celeron based processor but failed to boot fuchsia or even just the magenta kernel.
Finally I tried it on the UP board that is running atom x5-z8350, which didn’t boot the full fuchsia os but was able to run the command line shell with the magenta kernel just fine…
And once again, this os is very experimental and supports a very small amount of intel hd gpu’s to display the GUI. and I can’t guarantee success as much as I can guarantee failure, but it’s still a fun experiment to do and just test what all hardware in your home or work is compatible with running the Fuchsia OS !!!
With that, I hope you enjoyed the show, thanks for liking sharing and subscribing and i’ll see you all in the next one.
Welcome back everyone to another video, and we finally have a Dragonboard 410c courtesy of Seeed Studio who were kind enough to send one in for review, link to their store in the description down below.
First let’s take a look at some quick unboxing and the specs…
I personally quite like the box itself including the graphics on top and the black and orange color accent, opening it up reveals a “ getting started guide” with all of the io labeled out, then we finally come to the star of the show, the Dragon board 410c wrapped around in it’s anti static bag. Unwrapping that reveals the actual board.
If the board looks similar, that is because it is a part of the 96boards family and shares its design with the hikey960 and the mediatekX20 as will all the other Consumer Edition 96boards.
On the front of the blue boards we have two rf shields the bigger one housing the actual SoC which is, of obvious reasons, a Qualcomm Snapdragon 410 SoC. Powered by a quad-core cortex-a53 cpu clocked at 1.2ghz immediately reminds us of the Raspberry Pi3, more on that later.
We also have the 8GB emmc and the 1gig of RAM inside the same rf shield.
And inside the second we have the wifi, bluetooth and gps chipset.
On the back there is not a whole lot much apart from a usb hub, the bit switches for boot select and the big copper square is how the dragonboard dissipates heat from its soc… nice!
Another thing keen eyed amongst you might notice, that the dragon board actually has a very well labeled pcb which might not seem much but definitely helps while looking for something specific.
As you can probably see on one of the usb ports, the board comes preloaded with Android, so let’s go ahead and boot it up….
Android on the Dragon board boots with one of the coolest logo I have ever seen, It comes preloaded with Android lollipop 5.1
That’s about it for the android side of things for now, we’ll talk more about it on a future video.
For now let’s move on to Linux, the installation procedure is fairly straightforward. Burn the .img file to an sd card, insert the sdcard, set the boot mode to sd and boot the dragonboard 410c. Select install, wait for it to install and then reboot.
The dragonboard comes with Linaro’s build of debian based on the Debian 9, which was released just a few months back and features the 4.9 linux kernel, again I am a big fan of SBCs using a fairly recent kernel and this definitely checks the box.
Apart from that one big advantage is that this OS comes with an Open Source GPU driver for the adreno 306 gpu and it works well and it pretty stable… again more discussion and benchmarks in a future video.
Finally let’s discuss raspberry pi 3 vs dragonboard 410c… briefly,
Although the dragonboard does cost almost double with similar specs to the pi 3 there are lot more features, some of them are on the face like GPS, onboard emmc storage and a better GPU. Other are hidden like the fact that the snapdragon 410c is made on a 28nm manufacturing node and opposed to the 40nm of the bcm2837, that means slightly better performance, much less heat generation and much less power consumption.
Most of the boards that do compete with the raspberry pi 3 in performance or cost usually lack community and documentation, which the dragonboard and other 96boards sbc can go directly head to head with.
On that note, This is it for todays video I hoped you enjoyed it and stay tune for more comparisons, benchmarks and projects related to the Dragonboard 410.
Thank you for liking commenting and subscribing, till next time.
The Mediatek Helio X20 has very interesting cpu inside its Helio X20 SoC, now this cpu is not very interesting from the performance point of view, but they way they implement the ARM big.LITTLE heterogeneous computing architecture.
Most SoC manufacturers and designers tend to implement a two cluster architecture with on cluster dedicated to heavy tasks in this case the big cluster made up of performance cores like the a72 and a 73, and a second cluster aimed at power efficiency made up of cores such as the cortex a 53 and a 7.
However the Helio X20 has atri cluster architecture with powerful, balanced and power efficient core clusters. The balanced cluster simply being a higher clocked version of the power efficient cluster.
Before we go further into the video we must take a quick look at the different task scheduling methods implemented in the big.little multiprocessing architecture.
The first one being cluster switching:
The clustered model approach is the first and simplest implementation, arranging the processor into identically-sized clusters of “Big” or “Little” cores. The operating system scheduler can only see one cluster at a time; when the load on the whole processor changes between low and high, the system transitions to the other cluster. All relevant data is then passed through the common L2 cache, the first core cluster is powered off and the other one is activated. A Cache Coherent Interconnect (CCI) is used
The second one being In-kernel switcher (CPU migration):
CPU migration via the in-kernel switcher (IKS) involves pairing up a ‘Big’ core with a ‘Little’ core, with possibly many identical pairs in one chip. Each pair operates as one virtual core, and only one real core is (fully) powered up and running at a time. The ‘Big’ core is used when the demand is high and the ‘Little’ core is employed when demand is low. When demand on the virtual core changes (between high and low), the incoming core is powered up, running state is transferred, the outgoing is shut down, and processing continues on the new core. Switching is done via the cpufreq framework.
And Finally Heterogeneous multi-processing (global task scheduling):
The most powerful use model of Big.Little architecture is heterogeneous multi-processing (HMP), which enables the use of all physical cores at the same time. Threads with high priority or computational intensity can in this case be allocated to the “Big” cores while threads with less priority or less computational intensity, such as background tasks, can be performed by the “Little” cores.
This is used by most modern processors that follow the big.LITTLE architecture include the Helio X20.
The preferred way to control heterogeneous task scheduling so that it is effective in power savings is to disable individual cores that aren’t being used that that is done using the cpu hotplugging feature that allows for the os to individually turn off cpu cores. Luckily the x20 has the hotplugging feature exposed and we can manually override it as discovered by a forum member at the 96boards forum.
So, I thought about manually enabling all cores would give us exponentially better score on geekbench multi core… let’s take a look what happens…
So before we go ahead and enable all cores, let’s look into what the status is by default.
First we have the system monitor app that shows some of the core on and the others as offline, this is also reflected in the cat output of the status of all the cores.
Next we’ll, go ahead and disable automatic cpu hotplug and enable all the cores which can then be seen reflected in the system monitor app.
Now let’s take a look at the benchmark,
Not what I expected at all, there is a difference, in fact the multi core score is higher than the Hikey960. But this is only because, the extra cores that I enabled meant that background tasks were now being scheduled to theses smaller cores instead of taking cpu time on the performance core which meant that the benchmark could now run more efficiently on the bigger cores giving slightly better result.
But it was still only running on the bigger cores, and not on all the cores as i expected it to, the global task scheduler only uses the hotplug feature as a means to turn off cpus that aren’t in use and save power thereby increasing efficiency and hence enabling those core had next to no considerable effect on the benchmark.
So, at the end the big.LITTLE multi-processing architecture is more geared toward power savings than it is towards pure performance. So when you see an octa or deca core ARM cpu in a device, the peak performance would only be equal to its big cores but its peak power efficiency would be equal to its LITTLE cores…
And finally a huge shoutout to seeed studio for providing me with the mediatek x20.
Today we have with us the MediaTek X20, courtesy of Seeed Studio. This $200 dev board comes in the 96boards form factor with all the bells and whistles, but before heading into specs, performance and features let’s take a look at the unboxing.
The box looked more like a box for a new smartphone rather than a dev board, in other words, pretty darn fancy for a development board. On two of the sides we have the mediaTek branding and on the two sides we have branding for archer mind, 96boards and linaro.
At the bottom we find two “Warranty void if removed” stickers for some reason, maybe they don’t give a crap about the board being destroyed. Anyways once we are through that we are welcomed by a quick start guide which lists most of the components on boards and the specs.
With that said the board is powered by a MediaTek Helio X20 SoC which has a 10 core CPU consisting of three clusters, the most power efficient cluster has quad cortex a53 cores clocked at 1.4ghz, a balanced cluster consisting of quad cortex a53 cores clocked at 1.85ghz and lastly the most powerful cluster containing dual cortex A-72 cores at up to 2.3ghz. And that was straight up the most complicated specsheet I’ve ever seen for an SoC from the CPU point of view. It als sports a Mali T-880 MP4 GPU.
Apart from that we have 2 gigabyte of LPDDR3 RAM and 8 gigabyte of EMMC storage. On the connectivity side we have dual band wifi, bluetooth and GPS on board.
Once we are done with that piece of paper we see another compartment that houses the actual board covered in some ESD protective packaging, we are also provided with for standoff screws which I thought were a nice addon. However I was not provided with a power supply, had I not had the power supply from the hkey 960 this review would have been very much delayed, but since it is not a part of the actual board I will not take it against the X20.
One the dev board is out of its protective package, we can clearly see the SoC and RAM in a Package on Package config. On the left we have the emmc and on the right we have the power management IC. On the extreme left we have the wifi bluetooth and GPS chipset all in one single package.
So now it’s time to add the stand offs and boot it for the first time… And, yes the pre installed version on Android boots in a weird letter boxed portrait mode, but a quick update to the latest version of android from the 96boards website and everything works as expected.
Talking about Android, the only version available is android 6.0 with kernel 3.18 and the last release was in november 2016, but with that said the full sourcecode is available to download and compile.
Before we get into the benchmarks let’s take look into the gpio, I wasn’t able to find much documentation to access gpio on the low speed heder but the on board led’s are user programmable.
Now let’s get to the benchmarks, I will be comparing the X20 with the Hikey 960 as both of them lie in the same price point, the X20 coming in at $200 and the Hikey960 coming in at $239 and both of the prices are taken from seeed studio at the time of recording this video. Now that I’m done feeling like Linustechtips of the Single Board computers, let’s take a look at the series benchmarks which would be done against the hikey 960 and an air cooled x20 with an aftermarket heatsink and fan added on separately since the hikey 960 already had the heat sink pre installed.
First we have geekbench with single core cpu performance, the hikey 960 tops with 1,731 points followed by the air cooled x20 with 1,637 and very closely by stock x20 with 1,610 points.
Next we have the geekbench multi-core cpu performance with the air cooled x20 marginally beating the hikey 960 with 4,759 point following by hikey 960 at 4,662 points and the stock x20 with just 3,559 points, here we can clearly see a significant performance boost due to enhanced cooling.
Then we have the Antutu benchmark where the hikey 960 takes the cake with 113,449 points followed by the air cooled x20 with half of that at 67,247 points and finally we have the stock x20 with a mere 56,212 points.
Now on to the more graphics oriented benchmarks with antutu 3d, we once again see the hikey960 dominate the scoreboard with 13 and 22 fps followed by the air cooled x20 with 4 and 4 and then stock x20 with 3 and 4 fps.
Then we have 3d mark slingshot with the hikey 960 at 1,333 points followed by the air cooled x20 with 651 points and the stock x20 at 622 points
Then finally we have GFXBench with the hikey960 at 11fps in car chase, 18fps in manhattan 3.1 and 47 fps in T-Rex. In this benchmark both the air cooled and stock X20 had the exact same result at 6.8, 15 and 35 fps in car chase, manhattan 3.1 and T-Rex respectively.
Also keep in mind that the graphic benchmarks were running at 720p on the x20 compared to 1080p on the hikey 960.
To conclude the benchmarks, overall the hikey 960 dominated the x20 air cooled or not, thanks to higher number of top tier cores as well as the hikey 960 having cortex a73 cores as opposed to a72 on the x20. On the gpu side of thing the hikey960 has a more powerful Mali G71 MP8
8 core gpu clocked at 1Ghz as opposed to the X20’s quad core Mali T880 MP4 clocked at 750mhz. The only exception being geekbench multi core benchmark which gets affected by too much heat being generated on the hikey 960 and the cpus being mostly under clocked.
Since both the hikey 960 and X20 are based on the 96boards platform, the basic layout and feature set are the same, so let’s take a look at some features that makes them unique.
The hikey 960 has more ram at 3 gigabytes compared to 2 gigabytes of the x20, and more storage at 32 gigabytes compared to just 8 gigabytes on the x20. Apart from that the hikey960 has usb 3 host compared to usb to on the x20. The hikey 960 also support pcie gen 3 expansion via an m.2 slot. But the x20 has an in built gps receiver.
So till now it seems the hikey 960 is a better but there is more that what meets the eye, there are certain advantages to the x20 that make it seem like a better competitor. One of the main advantage is that the x20 is a fully developed and stable platform, whereas the hikey 960 is under constant development on the os side of things, at the moments it is only supported on the master branch of Android open source project that is it is not stable and the kernel is under heavy development as well so the x20 is much better from a stability point of view.
Next up is the tri-cluster cpu design of the helio x20 soc which allows for more granular control over performance and efficiency making it a more power efficient solution than the hikey 960 along with generating lesser amount of heat.
So at the end of the day, the X20 is a pretty decent dev board, although it could have been 20-$50 cheaper and then it probably would have made a bit more sense.
In that page follow the steps under “Disabling Homescreen in AGL 3.0.x CC release”
I would recommend doing it manually on another system by inserting the pi’s sd card as many of the files are write protected
If you are on a separate machine you would have to navigate to the following directory to get the thr rootfs to be able to modify the files
<montpoint>/ostree/boot.1/agl/<random string>/0/<this is the rootfs>
Getting demo apps running:
After the modifications have been done boot the raspberry pi and login as root using uart
we will use the command afm-util, run “afm-util –help” for more detail
“afm-util list” will give you a list of demos pre installed
“afm-util run <demo id>” will run the demo from the above mentioned list.