Installing CadSoft Eagle 6.5 in Fedora 19 x86_64

“Linux users please download the file and run it. This self-extracting shell script will guide you through the setup process. You may need to click on the above link with the right mouse button and select “Save Link As…”. To run this file you need to make it executable, or enter “sh” in a shell window. System requirements: Linux based on kernel 2.6 for Intel computers, X11 with a minimum color depth of 8 bpp, 32-bit runtime environment with the libraries and”


32-bit runtime libraries

[chris@thinkpad ~]$ sudo yum install glibc.i686 libXrender.i686 libXrandr.i686 libXcursor.i686 libXi.i686 freetype.i686 fontconfig.i686 libstdc++.i686 zlib.i686 and

[chris@thinkpad ~]$ sudo yum install openssl-libs.i686
[chris@thinkpad ~]$ sudo ln -s /usr/lib/ /usr/lib/
[chris@thinkpad ~]$ sudo ln -s /usr/lib/ /usr/lib/ and

Not longer needed.

[chris@thinkpad Downloads]$  yum install glibc-devel.i686 zlib-devel.i686
[chris@thinkpad Downloads]$ wget
[chris@thinkpad Downloads]$ tar -xzf libpng-1.4.12.tar.gz
[chris@thinkpad Downloads]$ cd libpng-1.4.12
[chris@thinkpad libpng-1.4.12]$ ./configure --prefix=/usr --build=i686-pc-linux-gnu "CFLAGS=-m32" "CXXFLAGS=-m32" "LDFLAGS=-m32"
[chris@thinkpad libpng-1.4.12]$ make
[chris@thinkpad libpng-1.4.12]$ sudo make install
[chris@thinkpad Downloads]$ wget
[chris@thinkpad Downloads]$ tar -xzf jpegsrc.v8d.tar.gz
[chris@thinkpad Downloads]$ cd jpeg-8d/
[chris@thinkpad jpeg-8d]$ ./configure --prefix=/usr --build=i686-pc-linux-gnu "CFLAGS=-m32" "CXXFLAGS=-m32" "LDFLAGS=-m32"
[chris@thinkpad jpeg-8d]$ make
[chris@thinkpad jpeg-8d]$ sudo make install

And finally Eagle

[chris@thinkpad Downloads]$ wget
[chris@thinkpad Downloads]$ sh

Now you only need to create a menu entry in your launcher and the install is complete.

Tiny, hackable (?) quadcopter from China for EUR 22 / USD 35

I have a cool new gadget that is probably hackable too! Have a look:

I’ve ordered it on 21st of September from eBay and received it on 12th of October.


Embedded development with open source tools on Windows

Hello World from MinGW

Hello World from MinGW

Get a proper editor

You probably want to install Notepad++ or Programmer’s Notepad:

Install the GCC ARM Embedded toolchain

GNU Tools for ARM Embedded Processors:

Download the Windows installer from, for example:

And install it clicking everywhere next but choose a path without spaces, like C:\tools\gcc-arm-4.7-2013q3.

GCC ARM install location

GCC ARM install location


Received my MC HCK prototype boards

My first MC HCK

My first MC HCK


The MC HCK (pronounced: “McHack” [mæk hæk]) is a small, cheap, and versatile microcontroller platform that supports USB for easy programming, and can be built at home for $5. The MC HCK enables everybody to build big and small projects, because spending >$20 for other microcontroller boards is just too much.

Quick Specs

Dimensions: 50mm x 20mm
Platform: ARM Cortex-M4 (DSP, no FPU)
MCU: Freescale MK20DX32VLF5: 8KB RAM, 32KB program flash + 32KB data flash
Data Sheet:
Reference Manual:
Application Notes etc:
Interface: USB, I2C, SPI, UART, I2S
Programming: via USB bootloader (DFU, Direct Firmware Update)
Debugging: A second MC HCK can be used as debug adapter
Board options: mounting hole, LiPo charger, nRF24L01+ directly pluggable, up to 8Mbit flash, LDO, buck regulator, boost regulator, RTC crystal

I’ve already ordered a MC HCK prototype kit in July (, they were ready for dispatch on 30th September and now I have received them.


MC HCK Envelope

MC HCK Envelope

The letter contained the following components:

MC HCK Prototype Kit Contents

MC HCK Prototype Kit Contents


Porting Linux to a new board


This post is work in process.

I haven’t done this before so I’m a bit nervous whether I get everything working but lets try it.

It’s gorgeous to have a device that will become a consumer device and a goal to do some real development instead of just doing generic experiments with the OLinuXino boards. Now I’m forced to dig through the code to solve all the problems. It makes a lot of fun and I’m also learning a lot.

About the iMX233 Audio Development Board

You can think of the iMX233 Audio Development Board like of a iMX233 based development board to build yourself a MP3 player with the ability to record audio. If I’m correct then it uses the same audio codec like the Apple 8GB iPod nano [1] [2]. The contour of the later handheld device is already printed on the board. I don’t know what the future brings, but it might get released as open source hardware. For more information please visit:


Debugging the iMX233-OLinuXino via SJTAG with OpenOCD

What you will need


OlinuXino Micro, iMX233-SJTAG, SEGGER J-Link, ARM-USB-TINY



iMX233-OLinuXino: Current State

This post is work in process so print it into an PDF file if you want to keep an older version as reference.

The Kernel

Please have a look at Building a kernel 3.x for the iMX233-OLinuXino for more detailed build instructions.

You can use a kernel straight from

[chris@thinkpad OLinuXino]$ git clone git:// linux-stable.git
[chris@thinkpad OLinuXino]$ cd linux-stable.git/
[chris@thinkpad linux-stable.git]$ git checkout v3.12
[chris@thinkpad linux-stable.git]$


There is also linux-next with some more bleeding edge kernels:

[chris@thinkpad OLinuXino]$ git clone git:// linux-next.git
[chris@thinkpad linux-next.git]$ git checkout next-20130909

To add support for i2c we need to apply the following patch:

[chris@thinkpad linux-stable.git]$ wget
[chris@thinkpad linux-stable]$ patch -p1 < 0001-ARM-imx23-olinuxino-Add-i2c-support.patch
patching file arch/arm/boot/dts/imx23-olinuxino.dts
patching file arch/arm/boot/dts/imx23.dtsi
Hunk #1 succeeded at 306 with fuzz 2 (offset -1 lines).
Hunk #2 succeeded at 472 (offset -1 lines).
[chris@thinkpad linux-stable.git]$

And to get a spi device we need to apply the following patch:

[chris@thinkpad linux-stable.git]$ curl -L -o 0005-ARM-imx23-olinuxino-Add-spidev.patch
[chris@thinkpad linux-stable.git]$ patch -p1 < 0005-ARM-imx23-olinuxino-Add-spidev.patch
patching file arch/arm/boot/dts/imx23-olinuxino.dts
[chris@thinkpad linux-stable]$

Now lets configure and build the kernel:


Building ROS on Fedora 19

About ROS

ROS (Robot Operating System) provides libraries and tools to help software developers create robot applications. It provides hardware abstraction, device drivers, libraries, visualizers, message-passing, package management, and more. ROS is licensed under an open source, BSD license.


ROS is really a huge software package (a big mess!) and is unlikely that the official installation guide for Fedora ( will work without issues. Last time it took me several days to fix all build failures. This time I will document my odyssey.


Upgraded to Fedora 19 Alpha alias Schrödinger’s Cat

Fedora 19 Alpha KDE Splash Screen

Fedora 19 Alpha KDE Splash Screen

Fedora, formerly Fedora Core, is an RPM-based, general purpose collection of software, including an operating system based on the Linux kernel, developed by the community-supported Fedora Project and owned by Red Hat. The Fedora Project’s mission is to lead the advancement of free and open source software and content as a collaborative community.


Last weekend I was brave enough to install the KDE spin of Fedora 19 Alpha on my main working laptop and as by now everything is running great.

So get it now (torrents), have a look at the release schedule for the final release date or study the feature list to see what’s new.

Up until then I was still running Fedora 17 alias Beefy Miracle but slowly it feels old and I had to install some more recent packages from Fedora 18 to be able to compile other programs.

So it was time to upgrade to and since i know how to fix a broken system I decided to skip Fedora 18 and directly install Fedora 19 Alpha.

I’ve done a clean install and before the upgrade I’ve backed up the most important configuration files as well as my home directory. I was able to crash the installer four or five times but then everything went well.

Before the upgrade I’ve created a list of all my installed packages:

[chris@fedora-17 ~]$ rpm -qa --queryformat "%{NAME}.%{ARCH}\n" >packages_thinkpad_F19.log

So that I can reinstall them all at once:

[chris@fedora-19 ~]$ sudo yum -y --skip-broken install $(cat ./packages_thinkpad_before_F19.log )

This will also install a lot of packages that I don’t need anymore (1643 packages +192 dependent packages) but it will save a me lot of time as I don’t have to find all dependencies again when compiling something from source and disk space is cheap nowadays.

You can find my current package list here: packages_thinkpad_F19.log

I’m very happy that sagemath has finally made it into Fedora (sudo yum install sagemath).

Now I have to rebuild all packages that I had installed from sources and then I’m finished.

Btw. I’m running kernel 3.9.0-0.rc8.git0.2.fc19.x86_64 and KDE 4.10.2 at the moment.

If I encounter any update problems or other issues until the final release I will update the blog post below. Lets see how it evolves.


How to find performance bottlenecks in your application

This is a part of a KCachegrind window

This is a part of a KCachegrind window

Profiling your application to find performance bottlenecks is easier then you may think, I’m using gperftools and KCachegrind to profile Laustracker that makes heavy use of OpenCV functions.

Before you can start profiling you need to install the following tools:

[chris@thinkpad ~]$ sudo yum install pprof gperftools-libs kdesdk-kcachegrind