ARM Unveils Cortex-A7 and big.LITTLE processing

ARM unveiled the Cortex A7, a new core with higher performance than the Cortex A8 (1.5x) and with 5 times less power consumption. It will be used in conjunction with Cortex-A15 Core and allows big.LITTLE processing where the Cortex A7 (companion core) takes care of the low performance, low power tasks (social network, email, SMS, phone calls) and the Cortex A15 kicks in for high performance tasks such as video processing and gaming. Here’s an excerpt of the Cortex A7 / big.LITTLE processing press release: ARM today announced the ARM® Cortex™-A7 MPCore™ processor – the most energy-efficient application class processor ARM has ever developed, and big.LITTLE processing – a flexible approach that redefines the traditional power and performance relationship. The Cortex-A7 processor builds on the low-power leadership established by the Cortex-A8 processor that is at the heart of many of today’s most popular smartphones. A single Cortex-A7 processor delivers 5x […]

Cross-compiling Berkelium (and Chromium) for ARM

Berkelium is a BSD licensed library that provides off-screen browser rendering via Google’s open source Chromium web browser. It takes advantage of Chromium’s multiprocess rendering to isolate browsers from each other and can render to any buffer in memory. The user of the library can inject input and javascript code into web pages to control them, as well as listen for events generated by the page such as navigation events, load sequence events and paint events. Berkelium provides a small API for embedding a fully functional browser into any application. This library is used by Xibo Digital Signage Player python client. I’ll give the instructions I followed to build Berkelium and Chromium for ARM. For now the build works, but I have a problem running berkelium in the emulator. First, you’ll need to install some tools and the development version of some libraries: sudo apt-get install git-core subversion cmake doxygen […]

CubeStormer II Solves The Rubik’s Cube in 5.352 Seconds

Do you remember the ARM Android Based Rubiks Cube Solver ? Last year it could solve the puzzle in an average of 15 seconds. David Gilday has upgraded its robot with the help of Mike Dobson and named the device CubeStormer II. They released a video showing the CubeStormer II solve the Rubik’s Cube in 5.352 seconds, faster than the human world record (5.66 seconds). The mechanics are constructed entirely from LEGO, including four MINDSTORMS NXT kits, with the addition of a Samsung Galaxy S II smartphone running a custom Android app as the robot’s brain. The app uses the phone’s camera to capture images of each face of the Rubik’s Cube which it processes to determine the scrambled colours. The solution is found using an advanced two-phase algorithm, originally developed for Speedcuber (originally developed by Mike Dobson), enhanced to be multi-threaded to make effective use of the smartphone’s dual-core […]

Get CFLAGS for a Package with pkg-config

As I tried to cross-compile an application that required glibconfig.h, I found a way to retrieve the CFLAGS for a given package. Here’s the output for glib-2.0 and gtk-2.0 in qemu for overo: pkg-config –cflags glib-2.0 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabi/glib-2.0/include pkg-config –cflags gdk-2.0 -pthread -I/usr/include/gio-unix-2.0/ -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabi/glib-2.0/include -I/usr/include/freetype2 -I/usr/include/libpng12 -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/pixman-1 Finally, I found out that glibconfig,h was in /usr/lib/arm-linux-gnueabi/glib-2.0/include as this file is generated by configure and is platform dependent. Jean-Luc Aufranc (CNXSoft)Jean-Luc started CNX Software in 2010 as a part-time endeavor, before quitting his job as a software engineering manager, and starting to write daily news, and reviews full time later in 2011. www.cnx-software.com

Generate a Custom ARM Rootfs Easily with Rootstock

You may need to generate your own rootfs for your ARM target board, but do not want to cross-compile all libraries manually. You can achieve this with rootstock, a utility that generates Ubuntu armel rootfs tarballs and/or qemu image, to be uncompressed onto a root device. First install roostock: sudo apt-get install rootstock Then generate a rootfs with the required libraries: sudo rootstock –fqdn beagleboard –login cnxsoft –password temppasswd \ –imagesize 3G –seed xfce4,gdm,pkg-config,python,perl,g++,bison,flex,\ gperf,libnss3-dev,libgtk2.0-dev,libnspr4-0d,libasound2-dev,libnspr4-dev,\ libgconf2-dev,libcairo2-dev,libdbus-1-dev,libstdc++6-4.5-dev,libexpat1-dev,\ libxslt1-dev,libxml2-dev,libbz2-dev  –dist natty Here are the details of the command line parameters: –fqdn: Hostname to be used for the target system –login: Login ID of the admin user created during setup –password: Password of the admin user created during setup –imagesize: Size of the target filesystem to be created (default 1GB) –seed: List of packages to install –dist: Specify Release to build (jaunty, karmic, lucid, maverick or natty) Alternatively you could also use an […]

Dropbear: Lightweight SSH Server / Client

You may need to remotely access your embedded device, or your embedded systems is simply headless. You could use telnet, but this is insecure. A secure way to access a device remotly is to use SSH protocol. OpenSSH is one implementation but this is relatively too large and may use uncesary space on a device with limited storage. That’s where Dropbear comes into play. Dropbear is a lightweight implementation of an SSH client and server and is ideal for embedded systems. Dropbear ARM executable is only 200 KB. Here’s how it’s described on its website: Dropbear is a relatively small SSH 2 server and client. It runs on a variety of POSIX-based platforms. Dropbear is open source software, distributed under a MIT-style license. Dropbear is particularly useful for “embedded”-type Linux (or other Unix) systems, such as wireless routers. The main features of dropbear: A small memory footprint suitable for memory-constrained […]

Cross-comping zlib for ARM target

Zlib is defind as “A Massively Spiffy Yet Delicately Unobtrusive Compression Library” and used in many projects requiring compression. Here are the instructions cross-compile zlib for ARM: Download zlib1.25 wget http://cdnetworks-kr-2.dl.sourceforge.net/project/libpng/zlib/1.2.5/zlib-1.2.5.tar.gz Extract it tar xzvf zlib-1.2.5.tar.gz cd zlib-1.2.5 Configure, build and install zlib. CC=armv5tel-redhat-linux-gnueabi-gcc ./configure –prefix=/home/jaufranc/edev/rootfs make make install This will install libz.a (static library) and libz.so (dynamic library) in /home/jaufranc/edev/rootfs/lib and copy the header files to /home/jaufranc/edev/rootfs/include. Jean-Luc Aufranc (CNXSoft)Jean-Luc started CNX Software in 2010 as a part-time endeavor, before quitting his job as a software engineering manager, and starting to write daily news, and reviews full time later in 2011. www.cnx-software.com

Installing an ARM Toolchain in Fedora

You can easily install an arm cross-compiler on Fedora as follows: cd /etc/yum.repos.d/ sudo wget http://ftp.linux.org.uk/pub/linux/arm/fedora/cross/cross.repo sudo yum install armv5tel-redhat-linux-gnueabi-gcc You can check the installation worked by checking the cross-compiler version [jaufranc@localhost ~]$ armv5tel-redhat-linux-gnueabi-gcc -v Using built-in specs. Target: armv5tel-redhat-linux-gnueabi Configured with: ../configure –prefix=/usr –mandir=/usr/share/man –infodir=/usr/share/info –enable-shared –enable-threads=posix –enable-checking=release –with-system-zlib –enable-__cxa_atexit –disable-libunwind-exceptions –enable-languages=c,c++ –disable-libgcj –with-sysroot=yes –enable-version-specific-runtime-libs –target=armv5tel-redhat-linux-gnueabi Thread model: posix gcc version 4.1.2 20070925 (Red Hat 4.1.2-33.fa1) This will only install the C compiler (gcc), to install the C++ compiler, run the following command: sudo yum install armv5tel-redhat-linux-gnueabi-gcc-c++ Tested in Fedora 12. Jean-Luc Aufranc (CNXSoft)Jean-Luc started CNX Software in 2010 as a part-time endeavor, before quitting his job as a software engineering manager, and starting to write daily news, and reviews full time later in 2011. www.cnx-software.com