Archive

Posts Tagged ‘olinuxino’

Allwinner H3 Boards Comparison Tables with Orange Pi, Banana Pi M2+, NanoPi P1, and H3-OlinuXino-NANO Boards

June 8th, 2016 45 comments

Allwinner H3 SoC has now found its way into many low cost development boards, including several Orange Pi Boards, Banana Pi M2+, NanoPi M1, and Olimex H3-OlinuXino-NANO, and it might be difficult to choose among the list of boards available, so tkaiser has written a buyer’s guide for boards supported by Armbian, with some of the key differentiating factors, and on my side, I thought it might be a good idea to draw a comparison table between the boards.

Allwinner_H3_Development_Boards

Since a table with 10 boards would be hard to read, I made two tables: one with boards with 512 MB RAM + Orange Pi PC / PC Plus, and a second table with higher end boards with 1 to 2 GB RAM, and more features. But first let’s talk about Allwinner H3 SoC since it’s common to all boards. It’s a quad core Cortex A7 processor clocked at up to 1.2 GHz (plus if overclocking but this may lead to overheating), with a Mali-400 MP2 GPU, and support for H.264 and H.265 videos up to 4K @ 30 Hz.

With this mind, the first table takes care of the ultra-low cost boards that sell for less than $20, except the Olimex board which has not been released yet, and could  cost a little more.

Orange Pi One Orange Pi Lite Nano Pi M1 Orange Pi PC / Orange Pi PC Plus H3-Olinuxino-NANO
RAM 512 MB 512MB or 1GB 1GB 512 MB
Storage micro SD card slot micro SD card slot
PC Plus adds: 8GB eMMC
micro SD card slot
Ethernet 10/100M No 10/100M
Wireless Connectivity No WiFi 802.11 b/g/n No PC Plus only: WiFi 802.11 b/g/n No
USB 1x USB Host port
1x micro USB OTG port
2x USB 2.0 host ports
1x micro USB OTG port
3x USB 2.0 host ports
1x micro USB OTG port
2x USB 2.0 host ports
1x micro USB OTG port
Video HDMI HDMI, 3.5mm AV jack HDMI
Audio HDMI HDMI, on-board microphone HDMI, AV, on-board microphone HDMI
I/Os and other peripherals 40-pin Raspberry Pi connector
CSI interface for camera
40-pin Raspberry Pi connector
CSI interface for camera
IR receiver
40-pin Raspberry Pi connector
DVP interface for camera
IR receiver
40-pin Raspberry Pi connector
CSI interface for camera
IR receiver
2x 40-pin headers
Power 5V via power barrel
5V via header
5V via micro USB port, or 4.7 ~ 5.6 V via VDD pin 5V via power barrel
5V via header
5V via micro USB port
Dimensions 69×48 mm 64×50 mm 85×55 mm 50×50 mm
Listed Price $9.99 $12 $11 Pi PC: $15
Pi PC+: $19.99
N/A
Shipping $3.39 $3.39 $10 $3.43 N/A
Total $13.38 $15.39 $21 Pi PC: $18.43
Pi PC+: $23.42
N/A

Followed by a second table with boards with more memory, fast storage, Gigabit Ethernet, and so on.

Orange Pi 2 / Orange Pi mini 2 Orange Pi Plus Banana Pi M2+ Orange Pi Plus 2E Orange Pi Plus 2
RAM 1GB 2GB
Storage micro SD card slot 8GB eMMC flash
Micro SD slot
SATA (via USB to SATA bridge)
micro SD card slot
8GB eMMC flash
16GB eMMC Flash
Micro SD slot
8GB eMMC flash
Micro SD slot
SATA (via USB to SATA bridge)
Ethernet 10/100M Gigabit Ethernet
Wireless Connectivity 802.11 b/g/n WiFi (except in mini 2) WiFi 802.11 b/g/n
USB 4x USB 2.0 host ports
1x micro USB OTG port
2x USB 2.0 host ports
1x micro USB OTG port
3x USB 2.0 host ports
1x micro USB OTG port
4x USB 2.0 host ports
1x micro USB OTG port
Video HDMI and AV HDMI HDMI and AV
Audio HDMI, AV, on-board microphone HDMI, AV, on-board microphone HDMI HDMI, AV, on-board microphone
I/Os and other peripherals 40-pin Raspberry Pi connector
CSI interface for camera
IR receiver
Power 5V via power barrel
5V via header
5V via power barrel
5V via micro USB port
5V via power barrel
5V via header
Dimensions 93×60 mm 112 x 60 mm 65×65 mm 108×67 mm
Listed Price Pi 2 – $30
Pi mini 2 – $25
$39.00 $39.90 $35.00 $49.00
Shipping N/A $3.75 $0 $3.57 $3.26
Total Not for sale anymore $42.75 $39.90 $38.57 $52.26

Some remarks

  1. There’s no difference between boards with regards to the 40-pin Raspberry Pi connectors, and only H3-Olinuxino-NANO will have a different pinout, as well as more I/Os. It will also be the only open source hardware board of the list.
  2. SATA implementation are using a USB 2.0  to SATA bridge since Allwinner H3 does not come with either SATA. PCIe, or USB 3.0 interface, and performance is not different, and in some case lower, than simply connecting a USB hard drive to the board.
  3. Boards with 4 USB ports + micro USB OTG will share the bandwidth through a USB hub controller, so performance may be impacted, and boards such as Orange Pi Plus 2E with 3 USB ports that do not use a USB hub controller should have better USB throughput.
  4. Voltage regulator
    • SY8106A used on most Orange Pi boards allows for finer tuning of the CPU voltage, and a better control of CPU throttling and heat management
    • The GPIO driven voltage regulator on NanoPi M1 and Orange Pi One/Lite only allows for 1.1V and 1.3V voltage selection
    • Banana Pi M2+ is set to work at 1.3V only.
  5. Boards with eMMC flash should provide a significantly better user experience thanks to much faster random I/O compared to most (micro) SD cards
  6. Memory type matters. It has been found that boards with DDR3 memory tend to overheat much more than boards with DDR3L memory. At the time of writing, Xunlong Orange Pi boards are all based on DDR3L memory, but Banana Pi M2+ and NanoPi M1 boards are fitted with DDR3 memory instead. [Update: It has be discovered that Orange Pi One/Lite are actually using DDR3 memory, and do not overheat, so more investigation is needed to find out what the problem may be]

Please let me know if I should add anything to the table, or corrections need to be made.

FOSDEM 2015 Schedule – January 31 – February 1 2015

January 29th, 2015 8 comments

FOSDEM (Free and Open Source Software Developers’ European Meeting) takes place every year during the first week-end of February. This year the developer-oriented event expects to bring over 5000 geeks to share ideas and collaborate on open source projects. Contrary to most other events, it’s free to attend, and you don’t even need to register, just show up. FOSDEM 2015 will take place on January 31- February 1 in Brussels.

Fosdem_2015There will be 551 sessions divided into 5 keynotes, 40 lightning talks, 6 certification exams, and with the bulk being developer rooms and main tracks,  divided into 7 main tracks this year: Languages, Performance, Time, Typesetting, Hardware, Security and Miscellaneous.

I’m not going to attend, but it’s still interested to see what will be talked about, and I’ve concocted my own little virtual program out of the main tracks and developers’ rooms. There’s a few minutes overlap between some talks on Sunday.. Oh well.

If you won’t be able to attend, you should be able to watch the video and access the slides in a few weeks, as most sessions will be recorded.

What is the current status of Allwinner support in upstream u-boot and the kernel, which SoCs are supported, and which features (sound, video, etc.) are supported ?

The linux-sunxi community has been slowly but steadily working on getting Allwinner SoCs like the A10 supported in upstream u-boot and the kernel.

This talk will present the current status of Allwinner support upstream. Which SoCs are supported and which ones are not (yet) supported ? Which blocks if the supported SoCs are supported, and which are not ? Why are some SoCs / blocks not supported, and what are the plans to get them supported ? This are some of the questions this talk tries to answer.

Not all free operating systems are feature-full POSIX systems. FreeRTOS is a minimal operating system which is designed to run on micro-controllers, and provide real-time scheduling. It is used in industrial automation and automotive.

A brief introduction to FreeRTOS, depending on audience preference, will be followed by either a hands-on workshop using PCs, or a demonstration on a board. The workshop includes how to get started, what can be done with it, and what type of features and pitfalls to expect from FreeRTOS.

As ADAS and infotainment require more electronics, using an hypervisor is a solution to gather multiple boards into one. Xvisor is an open source lightweight hypervisor for embedded systems that perfectly fits the needs of the automative industry. It is a complete monolithic type-1 hypervisor with full virtualization and paravirtualisation support, showing better performances than KVM. We, OpenWide and the Institute for Technological Research SystemX, are working on its port on i.MX6 boards.

F*watch is an infinitely hackable GPS watch with many sensors based on a 100% Free design. Everything is Free, from the PCB and watch housing design to the software stack. Moreover, only Free software tools have been used during the development.

F*watch. Why should your watch be different?

The talk describes the development process and shows a first prototype, along with performance measurements and future plans.

The lowRISC project was established in the summer of 2014 with the aim of producing a complete open-source System-on-Chip in volume, with low-cost development boards. Alex Bradbury, one of the co-founders of the project will discuss the progress to date and the path to the first test chip. lowRISC implements the open RISC-V instruction set architecture and is exploring ideas on improving security via tagged memory and increasing flexibility through the addition of RISC-V ‘Minion’ cores to implement soft peripherals. This talk will discuss the potential benefits of a fully open-source hardware ecosystem, the challenges of getting to first silicon, and how the open source community at large can help.

Digital cameras provide almost every feature you could want. But if they don’t, you are forced to upgrade or go without. CHDK is a project which allows you to program new functionality to the majority of Canon cameras, in either C, Lua, or Basic. The talk features background on the project, code, tools, and the methods of compiling and introducing a new firmware into the camera.

Over the course of 1 hour, Steven Goodwin will guide the audience through the entire process of taking a normal (proprietary) camera and converting it into an open source version by installing custom firmware on it. He will then cover some of the features available (such as the on-device scripting language) and continue by explaining how to build and debug your own functionality. Starting with simple grids, continuing with games, and time-lapse code. And ending with a fully recompiled firmware running on the device.

The video4linux kernel subsystem reports which colorspace the captured video uses. But what does that really mean, and what do you have to do to correctly reproduce those colors? This talk will dive into the crazy world of colorspaces and give you a practical guide to colorspace handling. I will also demonstrate colorspace handling, both right and wrong.

Kernel profiling tools status on ARM and ARM64: – perf status, – ARM and ARM64 support, – callchain unwinding mechanisms and support, – patches status: merged, pending, in development, – links to discussions (LKML) and patches.

The profiling tools in the kernel are changing at a fast pace. This talk is about the support for ARM and ARM64 architecture and the development of features for these architectures, namely the callchain unwinding. The presentation goes over: – the detailed description of the feature, – the methods used to do the callchain unwinding (fp, exidx, dwarf etc.), – the status of the on-going patches, – the remaining work to be done, – the links to patches, discussions on the mailing lists, – -if needed and if time allows- a demo of the feature.

Building a medical device requires to follow certain rules specially when health care depend on it. The presentation will explain how Yocto help us in Kaptalia to solve this issue. In particular we will focus on fast boot, update with unskilled user base, Bluetooth Low Energy, security and data privacy.

During this event we will show how our team succeeded to build our first OS, start from a company with medical expert only and no prior expertise on embedded systems. At the end, a live demonstration for using the the monitor and sensor will be held.

LAVA is a python service created by Linaro for testing software on hardware which accepts test jobs to perform on selected hardware to provide a black box to continuous integration tests. Bisecting is a technique for finding commit in version control system that broke the software. Git provides the powerful “git bisect” subcommand for this purposes. In this talk we give and introduction to LAVA and explain howto combine LAVA and git bisect to automatically find offending commits in the Linux kernel.

Prospero Technologies has made a Linux based Digital Video Recorder which constantly records all UK broadcast TV so that the consumer no longer needs to schedule recordings. This will be a talk on the technologies used to achieve this, the open source software on the consumer device and how you can build your own 30 channel DVR.

The final version of the DVR uses a Freescale i.MX6 CPU with a video processing unit running a Linux built with Yocto. The talk will cover how well this is supported by gstreamer and how we built a QT application to display our HTML5 interface.

More and more embedded projects require support for advance connectivity. With it, comes the requirement to enforce a better security as well as private data protection. Using the layer model of Yocto, we show how we can extract from a complex project such as Tizen, advance connectivity and security and apply it to any embedded project.

The Internet of Things (IoT) is growing fast and opens large opportunities to embedded Linux. Unfortunately traditional embedded Linux has been weak when it comes to security and complex connectivity enabling. Tizen which has been developed as a Linux base OS for connected object (phone, TV, car) is on the other side very well equipped in that area. We will start by explaining what is Tizen architecture and how it provides Security and Connectivity facilities on top of a base Linux. We will then show how Yocto and Tizen-meta can be used to create embedded devices which benefit from several years of work done by the Tizen community. In particular we will review : – the mandatory access control enabling in an embedded device – the enforcement of good behavior by applications – resource access control – connectivity layers – HTML5 App enabling. – multi user mode enabling.

The ARM LLVM backend has been around for many years and generates high quality code, yet there are still standard benchmarks where GCC is generating more efficient code than LLVM. The goal of this talk is to get a better understanding of why the GCC-generated code for those benchmarks is executing more efficiently and also about finding out what we need to do on the LLVM side to address those code generation deficiencies. This talk presents current performance numbers for the SPEC CPU benchmark suites on ARM, comparing the performance of LLVM and GCC, with the main focus on the SPEC CPU integer benchmarks. To dive a little bit deeper, we will also have a closer look at the generated assembly code of selected benchmarks where LLVM is performing worse than GCC and use the results of this performance analysis to point out potential code generation opportunities for LLVM.

Connectivity is crucial for Internet of Things concept. For moving devices like position data loggers is typical solution GSM network. I will show you how you can use different types of GSM network for your IoT projects.

GSM network is easy way how to connect almost any device to internet. There are lot of GSM modules on market from different vendors but all devices has one thing in common – AT commands. There is standardized AT commands set for GSM networks. Using AT command you can send text messages, read phone number from list on SIM card, connect to internet and much more. I will show you basic command set for HTTP communication using basic GSM module SIM900 and Arduino.

This talk will give an overview over the Linux backports project and how to use it. The Linux backports project makes it possible to use a driver from a recent Linux mainline kernel with an older kernel version.

When you have a vendor board support package which does not use a bleeding edge mainline kernel, like it is the case most times, but you want to use some driver from a bleeding edge Linux kernel you can use backports. Backports “automatically” generates a tar with many drivers from a specific Linux mainline kernel which can be used with older kernel versions.

In this talk I will describe how the backports project, with its compatibility layer, the spatches and the normal patches. For practical usage I will show how to use backports with your own kernel in addition I will give a brief overview on how to add a new driver to backports.

Patchwork is a toolkit for connecting various devices into a network of things or, in a more broad case – Internet of Things (IoT). The main goal of creating this toolkit is to have a lightweight set of components that can help to quickly integrate different devices (i.e. Arduino, Raspberry Pi, Plugwise, etc) into a smart environment and expose specific devices’ capabilities as RESTful/SOAP/CoAP/MQTT/etc services and data streams.

The key features of patchwork include:

  • Lightweight (no RAM-consuming sliced pie of Java and OSGi, only bare necessities)
  • Cross-platform (can be deployed on OSX/Linux/Windows, tested on Raspberry Pi and BeagleBone Black boards)
  • Language-agnostic (device agents can be written in any programming language, APIs can be consumed by app written in any programming language)
  • Easily deployable (no JARs, no Eggs or Wheels for the core components, just a single native binary with statically linked dependencies)
  • Easily extendable (integrate new devices without modification of the core components, drop in solution)
  • Interchangeable (not happy with current existing Device Gateway or Catalog? replace it with another implementation without breaking the infrastructure)
  • Not re-inventing the wheel (we re-use as many existing technologies and components as possible)

libcurl is the world’s most used and most popular Internet transfer library, already used in every imaginable sort of embedded device out there. How did this happen and how do you use libcurl to transfer data to or from your device?

Embedded devices are very often network connected these days. Network connected embedded devices often need to transfer data to and from them as clients, using one or more of the popular internet protocols.

Daniel once founded the project and is still lead developer and maintainer of the curl project, making curl and libcurl. He is also active within IETF and maintain several other open source projects. Daniel is employed by Mozilla.

This presentation will reveal the process of porting Tizen:Common to open source hardware developer boards with SoC manufactured by Allwinner, Rockchip or Intel such as OLinuXino, Radxa Rock, Minnowboard. The following topics will be covered:

  • Building Tizen ARMv7 and x86 images from scratch
  • Adapting the Linux kernel, bootloader and Tizen:Common to popular single board computers
  • Do it yourself (DIY) open-source hardware Tizen tablet or laptop
  • Sharing knowledge and experience of the community.
The presentation will also provide information about U-Boot, Yocto project, the Linux-Sunxi and Linux-Rockchip, Minnowboard communities.

Although Tegra K1 uses the same Kepler architecture as NVIDIA desktop cards that Nouveau already supports, there are other challenges that need to be addressed before Nouveau can drive K1’s graphic acceleration: the fact that the GPU does not reside on the PCI bus requires architectural changes in the Nouveau core. The absence of dedicated GPU memory directly interferes with the way Nouveau is used to do memory management and leads to potentially sub-optimal behavior. Also, in a system where all devices share the same system memory, PRIME support is mandatory to perform any useful work and the relevance of a driver-agnostic memory allocator becomes perceptible.

This talk will discuss these challenges, and in particular the consequences of using a unified memory architecture, in the hope of triggering discussions that will help improving the general support of GPU architectures for new mobile platforms.

A brief look at the past, present, and future of the KiCad project. The discussion will be primarily on what near and long term future development is planned for the project as well as discussing the potential for collaboration with other EDA projects.

Yocto has an alleged steep learning curve. It can be a challenge for modules and evaluation board manufacturers to add support for their devices in Yocto as they don’t necessarily have a software background. This talk will highlight the steps required, techniques and good practices to create a well integrated machine configuration allowing to build images using the Yocto Linux build system. The Crystalfontz support from meta-fsl-arm-extra will be used to illustrate the talk.

The bitbox console is a small open hardware & open source game console. I will present the rationale behind it and the current status of the project, detail the hardware conception and particularly video signal generation from a cortex-m4 chip with no video subsystem. I will then proceed to show the different elements of the software stack : kernel, video engines, the boot loader and, finally, current programs and games, including a Gameboy emulator and a full motion video player.

If you want to build your own schedule before going, you can check the full list of events by subjects, but an easier way to organize your day is to check the sessions in chronological order, by checking out Saturday and Sunday schedules.

33 Euros Olimex A20-OLinuXino-LIME Open Source Hardware Board Supports Linux and Android

July 9th, 2014 No comments

Last year, Olimex launched A10-OLinuxXino-LIME powered by AllWinner A10, and it became quite popular due to its Linux and Android support, its open source hardware, and a price tag of just 30 Euros that made it cost competitive with BeagleBone Black and Raspberry Pi boards. The company has now designed an upgrade with A20-OLinuXino-LIME powered by AllWinner A20 dual core Cortex A7 processor, that sells for just 3 Euros more.

A20-OlinuXino-LINE

A20-OLinuXino-LIME specifications:

  • SoC – AllWinner A20 dual core ARM Cortex-A7 @ 1GHz with Mali-400MP2 GPU
  • System Memory – 512MB DDR3
  • Storage – microSD card slot, SATA, and optional 4GB NAND Flash
  • Video Output – HDMI 1080p
  • USB –  USB-OTG + 2x USB Hosts
  • Connectivity – 10/100Mbit Ethernet
  • Expansions – 200 GPIOs on 0.05″ connectors
  • Misc – Lipo battery management and connector, buttons
  • Power – 5V
  • Dimensions – 84 x 60 mm

A20-OlinuXino-LIMEThe specifications are exactly the same expect for the processor. The company will provide images and source code for Android 4.2.2 and Debian. Source samples, some tools, and hardware designs file are available in Olimex’s OlinuXino github repo. You’ve find any A20-OLinuXino-LIME hardware design files directly, simply because the board is the same for A10-OLinuXino–LIME as AllWinner A10 and A20 are pin-2-pin compatible. There’s supposed to be a Wiki for A20-OlinuXino-LIME (currently empty), but this will be very similar to the A10 version. U-boot and Linux kernel source code are mostly leveraging the work done by linux-sunix community.

Two versions of the board are now available: A20-OLinuXino-LIME without flash (boot from micro SD card) for 33 Euros ($45), and A20-OLinuXino-LIME-4GB that will include a 4GB NAND flash and sell for 43 Euros ($59).

Linux 3.15 Released

June 11th, 2014 2 comments

Linus Torvalds announced the release of Linux Kernel 3.15 last Sunday:

So I ended up doing an rc8 because I was a bit worried about some last-minute dcache fixes, but it turns out that nobody seemed to even notice those. We did have other issues during the week, though, so it was just as well. The futex fixes and cleanups may stand out, but as usual there’s various other random fixes since rc8 in there too: mainly drivers (drm, networking, sound, usb etc), networking, scheduling and perf tooling.

But it’s all been fairly small and quiet, which *may* of course be due to the fact that last week was also the first week of the merge window for 3.16. That might have distracted some developers. I’m not entirely convinced I liked the overlap, but it seemed to work ok, and unless people scream really loudly (“Please don’t _ever_ do that again”) and give good reasons for doing so, I might end up doing that overlapping merge window in the future too if it ends up helping out with some particular timing issue.

That said, I also don’t think it was such a wonderful experience that I’d want to necessarily do the overlap every time, without a good specific reason for doing so. It was kind of nice being productive during the last week or rc (which is usually quite boring and dead), but I think it might be a distraction when people should be worrying about the stability of the rc.

Of course, maybe the overlap ends up meaning that we get less noise during the last week of stabilization, and it actually helps. It could go either way. I’d be interested to hear what people thought, although I _suspect_ most people don’t feel strongly either way.

Anyway, with 3.15 released, my “master” branch has already merged the work in my “next” branch on my local machine, and I’ll be decommissioning the “next” branch once I push that all out. After that, any future merge window work will happen on “master”, and we’ll be back to the normal single-branch model for my tree.

Kernel 3.14 brought a file systems (btrfs) and networking improvements, zram was considered stable, etc. Linux 3.15 main changes include:

  • Faster resume from power suspend in systems with hard disks – Resuming a system from suspend used to take a long time in systems with traditional hard disks, because the system blocks the resume process until the hard disk finish powering up. In this release, commands are sent to the hard disk asynchronously, so the entire resuming process isn’t paused by the hard disk. The end result is that systems with hard disks will resume several seconds faster with this Linux release. For more details, read this blog post.
  • Improved working set size detection –  When there is not enough room for all memory in RAM, the Linux kernel is in charge of deciding which memory must be kept in RAM, and which must be sent to swap or discarded. In this release, Linux does more advanced tracking of how memory gets used and can balance better the size of the lists, which makes Linux perform better in certain workloads, adapt better to workload size changes, and creates a foundation to build improved policies in the future. Read LWN article Better active/inactive list balancing for details.
  • EFI 64 bit kernels can be booted from 32 bit firmware – Most modern x86 CPUs are 64bit, yet many systems ship with a 32 bit EFI implementation. This didn’t allow to boot a Linux 64 bit EFI kernel from these 32 bit EFI systems. This limitation has been removed, a 64-bit kernel can be booted on 32-bit firmware that runs on 64 bit CPUs.
  • New file locking scheme: file private locks – Due to some unfortunate history, POSIX locks have very strange and unhelpful semantics: they are dropped whenever the process closes any file descriptor associated with the inode, and locks taken between threads within the same process won’t conflict with one another, which renders them useless for synchronization between threads. This release adds a new type of lock that attempts to address these issues. These locks will conflict with classic POSIX read/write locks, but have semantics that are more like BSD locks with respect to inheritance and behavior on close.Read LWN article File-private POSIX locks to get more information.
  • Faster erasing and zeroing of parts of a file –  This release adds two new fallocate(2) mode flags: FALLOC_FL_COLLAPSE_RANGE which allows to remove a range of a file without leaving holes, improving the performance of these operations that previously needed to be done with workarounds, and  FALLOC_FL_ZERO_RANGE which allows to set a range of a file to zero, much faster than it would take to do it manually. Only XFS and Ext4 have added support for these new flags in this release, and other filesystems will follow in the future. You can read Finding the proper scope of a file collapse operation for details
  • File cross-renaming support – Cross-rename, a variant of rename which exchanges the two files, has been added. This allows use cases which were not possible before, for instance atomically replacing a directory tree with a symlink. It also allows overlayfs and friends to operate on whiteouts atomically. More information can be found in LWN article Exchanging two files.
  • zram: LZ4 compression support, improved performance – Zram memory compression mechanism added support for the LZ4 compression algorithm, which is better than the current available LZO in some cases, as well as come performance improvements to concurrent compression of multiple compression streams, and the ability to switch the compression algorithm in /sys/block/zram0/comp_algorithm.
  • Intel AVX-512 vector instructions support – AVX-512 are 512-bit extensions to the 256-bit Advanced Vector Extensions SIMD instructions for x86 instruction set architecture proposed by Intel, and scheduled to be supported in 2015 with Intel’s Knights Landing processor. Read the documentation on Intel website for more information about AVX-512.
  • FUSE: improved write performance – FUSE can now use cached writeback support to fuse, which improves write throughput.

Starting with Linux 3.15 release, I’ll also point out some of the improvements and new features brought to the ARM architecture:

  • AllWinner – It’s now possible to boot a usable headless Linux OS using the mainline kernel on AllWinner A1x/A2X. Support have been added to LinkSprite pcDuino, Inet 97f, and A10-OLinuXino-LIME. You can read details about AllWinner changes here.
  • Device tree support added for various OMAP, Atmel, Broadcom, Marvell, Texas Instruments Keystone & Sitara, and Freescale i.MX based hardware platforms
  • Various perf modifications for ARM64, Cortex A12, and Qualcomm krait.
  • Rockchip – Added SMP support
  • SATA driver added for Applied Micro X-Gene and Exynos 5250

Further details on Linux 3.15 are available on Kernelnewbies.org. For more details about ARM changes, you can read the ARM architecture and drivers sections.

AllWinner Linux-sunxi Community Presentation and Status Report – FOSDEM 2014

February 17th, 2014 11 comments

Oliver Schinagl, a member of linux-sunxi community working on open source kernel and bootloader for AllWinner SoCs, has given a presentation of the community at FOSDEM 2014 to give an overview, and show what progress has been made to date. I’ll write a summary in this post, but if you want to watch the video and/or access the slides scroll down at the bottom of the post.

AllWinner_sunxi-linux_fosdem_2014After explaining what sunxi is, and introducing himself, he gave some information about AllWinner and their SoCs:

  • Founded in 2007 in Zhuhai, Chiang now with 550 employees including 450+ engineers
  • 15% market share in 2013 for tablet SoCs, only behind Apple.
  • Products: F-series SoC (2010), A10 (2011), A13, A10s (2012), and A20 (2013). (cnsoft He skipped A31(s) and A80 here as they are not really supported by the community).
  • They list “Open Source Source” and “GPLv3” in their marketing materials although they clearly violate GPL in some part of the code. Progress is slowly being made however.

Sunxi community was born out of arm-netbook community working on EOMA68 boards in order to specifically target AllWinner SoCs, and now count over 600 mailing list subscribers (Google Group), 130 in IRC (#linux-sunxi), but only around 20 active developers.

Oliver then talks about the progress and status of different part of the software:

  • Bootloader
    • U-boot (lichee) NAND-only released by AllWinner, but requiring boot0/boot1 that were binary only until a source code release recently.
    • U-boot (sunxi) MMC / SDCard only, developed by the community, and preferred bootloader as it boots from SD card.
    • Barebox
    • Initial work on Coreboot
  • Operating Systems – Linux, FreeBSD, Tizen, Firefox OS and Minix (Interest only)
  • Distributions:
    • Fedora 18/19 maintained by a Red Hat employee in his spare time, and the best supported distro right now according to Oliver
    • Others – Linaro ALIP, Arch / Gentoo, Debian / (X)Ubuntu, (Xen).

Interestingly one important OS is missing: Android. The main reason is because there’s no community around Android with sunxi, but there’s still minimal work being done on Replicant/CyanogenMod, and AllWinner SDK for Android has been released.

He then goes through the different Linux kernel and branches on linux-sunxi github repo:

  • Lichee 3.0, 3.3 and 3.4 (with some 3.8 backport) from AllWinner. Some code in 3.4 version comes from sunxi linux work
  • Sunxi 3.0 (deprecated), 3.4 (maintenance), experimental 3.10 (Long term support kernel, likely to be used by Android 5.0, with AllWinner SoC support in mainline, and features like KVM and CMA),
  • Mainline kernel with two branches: sunxi-devel (latest code) and sunxi-next (with patches accepted into mainline). All mainline work has been done by the community, with no involvement from AllWinner. Currently CPU, interrupts, Timers, RTC, Watchdog (also used for reset), Ethernet and I2C are working, and you can boot a headless server. More info @ http://linux-sunxi.org/Linux_mainlining_effort.

He also talked of FEX files, the configuration files for AllWinner SoCs, that have a functionality similar to device tree, and in kernel 3.10 both device tree and fex files are supported. There’s also a tool called sunxi-babelfish that converts fex files into device tree files.

That’s all of the open source software part of the talk, and next is a list of hardware for playing around with AllWinner SoCs:

  • Olimex LIME board, fully open source hardware
  • Cubieboard 1 & 2, with schematics (PDF), but not all files to be fully open source hardware
  • EOMA68 / Improv. Improv, the baseboard, is open source hardware, but EOMA68 is not yet, although it should become open source hardware once the company (QiMod) gets back its initial investment
  • If you don’t have one of the three development platform above, you can also use one of the many tablets, media players, or HDMI TV stick available on the market.

AllWinner based device are unbrickable, as they can always to booted from a micro SD or SD card, and if no SD card is available, you can use FEL-mode to access the board via USB.

So all in all there’s currently good support for sun4i (A10), sun5i (A10s and A13) and sun7i (A20) SoCs, and it could even become FSF endorsable, but nothing is perfect, as the community is not really involved in A31, A31s and A80 development as these are based on PowerVR GPU, with no hope of ever getting open source GPU drivers in Linux, and there are binary blobs with Mali GPU (3D), GPS, and touchscreen drivers, and the Boot ROM (BROM) and CedarX libraries (APU/VPU) are only available in binary format.  There’s however work on open source Mali GPU driver (Limare) which could be usable this year, and there’s reverse engineering work being done for video decoding.

Oliver shows a demo of hardware video playback with a 100% open source implementation, capable of even playing files not supporting by the official binary only version, and gets a around of applause when he announces the complete presentation was done on an AllWinner board.

The talks ends with detailing the different ways you can contribute to the community: editing the Wiki, adding new supported devices, helping porting AOSP, CyanogenMod, Ubuntu Touch or Firefox OS, and submitting kernel patches.

The presentation slides are available here.

Olimex Announces 30 Euros A10-OLinuXino-LIME Development Board for December

November 18th, 2013 6 comments

The Raspberry Pi, Beaglebone Black and Cubieboard are probably the best selling ARM Linux boards in the sub $50 category, but they’ll soon be joined by Olimex A10-OLinuXino-LIME powered by AllWinner A10 ARM Cortex A8 SoC with 512MB RAM that will sell for 30 Euros (About $40) when it becomes available in December. Another version of the board based on AllWinner A20 dual core Cortex A7 SoC, called A20-OLinuXino-LIME will also be sold, adding Gigabit Ethernet, and scheduled for Q1 2014. Pricing has yet to be disclosed for the A20 version.

Olimex A10-OlinuXino-LIME Prototype

Olimex A10-OlinuXino-LIME Prototype

A10-OLinuXino-LIME specifications:

  • SoC – AllWinner A10 ARM Cortex-A8 @ 1GHz with Mali-400 GPU
  • System Memory – 512MB DDR3
  • Storage – microSD card slot, SATA, and optional 4GB NAND Flash
  • Video Output – HDMI 1080p
  • USB –  USB-OTG + 2x USB Hosts
  • Connectivity – 10/100Mbit Ethernet
  • Expansions – 200 GPIOs on 0.05″ connectors
  • Misc – Lipo battery management and connector, buttons
  • Power – 5V
  • Dimensions – 84 x 60 mm

Olimex has also designed an enclosure specifically for this board, which will be available for 5 Euros,  as shown below.

A10-OlinuXino-LIME_EnclosureAndroid 4.2.2 and Debian Linux images and source will be provided for the board, and since it will be open source hardware as most (all?) Olimex products, hardware files such as schematics, PCB layout, and gerber files will be available for download on their github repo.

In my Raspberry Pi vs Beaglebone Black comparison, I concluded that the Beaglebone Black (BBB) had faster hardware, more I/O pins, an internal flash, but lacked hardware video decoding (no VPU), HDMI output was limited to 1280×1024, and had no composite video output compared the Raspberry Pi. On the software front, BBB has support for Ubuntu and Android, which is either missing or poor with the Raspberry Pi, but the latter had a larger community, and probably better educational materials.

A10-OLinuXino-LIME should have similar CPU and GPU performance compared to BBB, support hardware video decoding and encoding (with some issues in Linux) like the Raspberry Pi, output to 1080p via HDMI, has lots of I/O (difficult to compared as details are currently lacking), and can support both Android and Ubuntu. Its main downside compared to BBB is the lack of NAND flash for the 30 Euros version. Compared to the Raspberry Pi, it lacks composite output, but relevant signals should be available via the expansion headers. Olimex’s community is much smaller than the two aforementioned boards, and although support is available via Olimex’s Forum and for the kernel and bootloader, sunxi-linux community, this board will more suited to people with a technical background, or with a willingness to learn and “get dirty”, whereas the Raspberry Pi, for example, may be more suited to beginners.

A10-OLinuXino-LINE and Cubieboard have a lot in common, but the Cubieboard comes with 4GB NAND flash and 1GB RAM by default, and adds an IR sensor, Audio In and Out, but the Olimex board supports LiPo batteries, and costs nearly $10 less ($49 vs $40).

Olimex A20-OLinuXino Prototype, AllWinner A20 SoM In The Work

May 25th, 2013 9 comments

Yesterday, Olimex showed their new A20-OLinuXino board. This AllWinner A20 board is still a prototype, and there are currently 3 of them only, but the good news is that it appears to be working, 50 developer edition boards will be manufactured shortly, and mass production should start in June.

A20-Olinuxino

AllWinner A20 dual core Cortex A7 can clearly be seen in the middle of the board, but if you look close to the top left, you’ll see a marking: “A10-OLINUXINO-MICRO”. That’s because, as planned, they managed to design one PCB for both AllWinner A10 and A20 processors, and they’ll sell both versions.

Olimex A10/A20-Olinuxino boards have the followings specifications:

  • SoC – AllWinner A10 Cortex A8 processor or AllWinner A20 dual core Cortex A7 processor, both  running @1Ghz
  • System Memory – 512MB or 1GB DDR3 memory depending on model
  • Storage – 4GB NAND Flash (optional), 2x microSD card slot, and SATA connector
  • Video Output – HDMI, VGA,  LCD connector to connect A13-LCDxxx with 4.3″ 480×272 pixels, 7″ 800×480 pixels and 10.1″ 1024×600 pixels with touch screens
  • Audio In and out
  • USB – 2x USB 2.0 hosts, 1x USB-OTG
  • Connectivity – 10/100M Ethernet
  • I/O – 160 GPIOs on 0.1″ connectors
  • Power – Power management IC with Lipo battery support, allow stand alone work and USB host working on LiPo battery power supply. 6-16 V DC input power supply can work with any power supply adapter and automotive power 12V
  • Misc – 9 user buttons with Android functions

Please note even though AllWinner A20 does support 1Gbe Ethernet, but A20-OlinuXino boards apparently do not, so if it is important for you application, you may want to wait for Cubieboard II, which will come with Gigabit Ethernet support. On the other hand, A10/A20-OlinuXino is open hardware (current Schematics and gerber files are available), and Cubieboard (II) is not fully open hardware.

Both AllWinner A10 and A20 boards have been found to work with Android 4.2.2 (part of AllWinner SDK) as you can see below.

Olinuxino_Android_4.2.2

They also posted the boot log for A20-OLinuXino. Please note that AllWinner A20 can only run Android for now, because AllWinner only provides an Android SDK, but Olimex will soon start to work with the community to port Linux to the A20-OlinuXino boards.

The 50 A20-OlinuXino boards should be ready within one or two weeks, and include 1GB RAM, 4GB NAND Flash. A20-OlinuXino will be sold for 65 Euros, and a future version without Flash will be sold for 55 Euros.

Finally, Olimex also announced they’ve started to work on a low cost A20 SoM (System-on-module) that will sell for 25 to 30 Euros, and comes with A20, DDR3 memory, and power IC only, so that you can build your own hardware and simply insert this module on your baseboard. There’s no mention of the standard (e.g. SO-DIMM, SMARC, EDM…), if any, they’ll use for the module.

Olimex A13-OLinuXino-MICRO Development Board Unboxing And Review

December 21st, 2012 2 comments

Every Friday, Olimex organizes an online competition where they give away one of their board. They’ll ask a (usually simple) technical question on their twitter account at 22h00 (GMT+7), and all you have to do is to reply to their tweet with the correct answer within one hour. The winner is then selected randomly with random.org. There are usually 50 to 100 respondents so the odds are pretty good.

I played a few times, and finally, I was lucky enough to win an A13-OLinuXino-MICRO development board at the beginning of December. I received it yesterday, after UPS took a whooping 15 days to deliver the board (Way to go UPS!). The board can be purchased on Olimex for 35 Euros plus shipping and taxes, or even lower if you order larger quantities.

A13-OLinuXino-MICRO is a stripped down version of A13-OLinuXino-WIFI with the following specs:

  • SoC – AllWinner A13 Cortex A8 processor at 1GHz with Mali400 GPU
  • System Memory – 256 MB RAM (128Mbit x 16)
  • Storage – microSD card slot for booting the Linux image
  • Video Output – VGA video output. LCD signals are available on connector.
  • Audio I/O – 3.5mm headphone jack + Microphone input pads (no connector)
  • USB – 1x USB host +1x USB OTG which can power the board
  • UEXT connector – To connect UEXT modules like Zigbee, Bluetooth, Relays, etc
  • 3 “GPIO” connectors (2x 40-pin and 1x 10-pin) – Those give access to NAND flash, GPIOs, I2C, UARTs and SDIO2 signals, as well as 5 system pins: +5V, +3.3V, GND, RESET, NMI.
  • LCD Connector – You can connect an optional 7″ LCD provided by Olimex, or connect your own.
  • Misc – 1 reset key, 1 U-boot/FEL key, 2 LEDs, 4 mounting holes, UART1 header and pads for JTAG and UART0.
  • Power – 5V DC input power supply
  • Dimensions – 100 x 85 mm

As usual, I will first post some unboxing pictures, then try Linux on the board, and give some kind of review.

A13-OLinuXino-MICRO Unboxing

The board comes in a small Olimex branded package, and as is the case for the Raspberry Pi, the only item in the package is the board.

Let’s have a look at the top of the board first, where all the components and connectors are placed.

Top of A13-OLinuXino-MICRO Board (Click to Enlarge)

The back of the board shows markings for the GPIO connectors, VGA, UARTs, JTAG and some test points for the different voltages on the board.

Bottom of A13-OLinuXino-MICRO Board (Click to Enlarge)

I’ve also taken a picture of the Olimex board with two other well-known low cost boards…

Raspberry Pi vs Cubieboard vs A13-OLinuxino-MICRO

A13-OLinuXino is larger than the Cubieboard and almost twice as big as the Raspberry Pi.

Getting Started with Olimex A13-OLinuXino-MICRO

First you’ll need to get some external accessories such as:

  • A power supply – A 5V/2A power supply to connect to the 5+ jack or the miniUSB port. A microUSB port might have been preferably since most mobile phones used this type of USB connector.
  • A USB hub – This is optional but since there’s only a USB Host port, it is required unless you only plan to connect one USB device (e.g. USB keyboard).
  • USB to Serial Board – Again, this is optional but it is really useful for debugging purpose in case there’s an issue with the bootloader and/or kernel, or you simply don’t want/need to plug the board to a VGA monitor.
  • Display – VGA monitor or LCD
  • Keyboard and mouse
  • Wi-Fi / Ethernet USB Dongle – Optional
  • a microSD for Linux and storage

One good thing with Olimex is that they have free user’s manuals for their boards. That may seem trivial, but the Cubieboard simply do not have one, and the Raspberry Pi does have one, but you need to pay for it. Of course, all boards have some free resources online, but it’s still nice to have most of what you need in one document.

So let’s download A13-OLinuXino-MICRO user’s manual first. It a 30-page PDF document that gives you an overview of the board,  explains how to get started with the board, and gives a detailed hardware description of the board (pin and connectors descriptions), some information about AllWinner A13 SoC, and some links to the design files (schematics & PCB layout in PDF and Eagle format).

Since the board does not have flash, you need to load a Linux image to a microSD card first. Olimex currently just has a preliminary Debian image for the board (A13_Micro_Debian_first_preliminary_release-06122012.rar  – 737 MB). This is a compressed SD card image, so simply uncompress it, and dump it to a microSD card with dd (Linux) or Win32DiskImager (Windows).

Time to connect the board. I’ve inserted by Debian SD card, and connected a USB keyboard, the serial to USB adapter I use with the Mele A1000 to UART1, a VGA cable to my monitor and a power supply to the microUSB port.

Everything looks fine, I can see U-Boot and the kernel output in putty and the VGA monitors light, but the boots take over 2 minutes, as it’s stuck in udev, as it apparently tries to find another USB host that does not exists, and times out after 120 seconds.

Finally, I can login (Username: root | Password: password), and check a few things about the board in the serial terminal:

So there’s 165 MB available for Linux, as the rest of the 256MB RAM is mainly reversed for A13 GPU, and the rootfs is 1.8GB with 729 MB used. Since I’ve got a 4GB microSD card, let’s increase the rootfs size to make full use of the available space on the microSD:

    1. Run fdisk to delete and re-create the rootfs partition (p2)
    2. Reboot the board, and resize the partition:
    3. Enjoy the extra space:

When I’ve then tried to login via the VGA screen, I realize the USB keyboard did not work at all with this board, which could explain the many USB debug message I could see in the serial terminal…

If you want to use LCD instead of VGA, the script files to do so are in script_GPIO_LCD_800x480 directory in the FAT partition of the microSD card.

More Information and Technical Support

If you prefer to build u-boot & the kernel yourself, and use your own rootfs, you can follow the instructions in Building bootable SD-card with Debian Linux Image for A13-OLinuXino. Those are the instructions for A13-OLinuXino, so you may have to adapt the instructions for A13-OLinuXino-MICRO.

If you want to use/test the latest kernel and bootloader, there’s an easier method using sunxi-linux nightly builds. If you don’t want to keep the rootfs but update the kernel and U-boot you can do as follows:

This will create an image for A13-OLinuXino board (512MB RAM), and if you try directly the system will crash at boot time. So until a13_olinuxino-micro_hwpack.tar.xz becomes available, you’ll need to copy the script.bin file from the Debian image to the FAT partition.

You can get hardware and software support on Olimex Forums and consult A13-OLinuXino-MICRO Wiki (In construction). If you are modifying the  the kernel or u-boot source code or find bugs related to the kernel/u-boot, contacting sunxi-linux mailing-list may be a better option.

Conclusion

If I just look at the board specifications and compare it to other low cost boards such as the Raspberry Pi or Cubieboard, Olimex A13-OLinuXino may not look the best value at 35 Euro + shipping, and Debian is not really stable on this board right now, although I’m pretty sure it will eventually be.

One of the advantage of the Olimex board is the VGA connector which is missing on the other 2 boards aforementioned. A13-OLinuXino-MICRO also has 4 expansion headers, including the UEXT connector that gives you access to over 20 low cost modules. This can make the board very attractive for embedded projects as it’s relatively straightforward to add some features such as GSM/GPRS, sensors, GPS. RF connectivity…

Finally, all Olimex boards are open source hardware, which means you’ll get access to hardware design files (and not only PDF) and source code, which is not fully the case for most other boards, especially for the schematics in original format and PCB layout.