Yocto Project: Build Your Own Custom Embedded Kernel Image

The Yocto Project is an open source collaboration project that provides templates, tools and methods to help you create custom Linux-based systems for embedded products regardless of the hardware architecture. The first official release (Yocto Project 1.0) has been made available on the 6th of April 2011. Yocto Project Overview See this short video presentation of the Yocto Project which explains its goals. It’s a complete embedded Linux development environment with tools, metadata, and documentation – everything you need such as emulation environments, debuggers, an Application Toolkit Generator, etc… It is not a new build system however such as buildroot, instead it relies on the Poky build tools that provide an open source development environment targeting the ARM, MIPS, PowerPC and x86 architectures. Here’s what the Yocto Project provides: A recent Linux kernel along with a set of system commands and libraries suitable for the embedded environment. System components such […]

MIPS is Porting Android 3.0 (Honeycomb) Platform

MIPS is currently working on the port of Android 3.0 to the MIPS architecture, here’s the press release: MIPS Technologies, Inc. (NASDAQ: MIPS), a leading provider of industry-standard processor architectures and cores for digital home, networking and mobile applications, announced today that it has official source access to AndroidTM 3.0 also known as “Honeycomb.” MIPS Technologies is now porting this newest version of Android to the MIPS® architecture. For MIPS licensees and their customers who want to produce Android compatible devices, this will accelerate development of tablets and Google TV products based on the MIPS architecture. “The Android platform has been a game-changer for MIPS Technologies. When we first began working with Android, we focused on opportunities in devices beyond the mobile handset, and indeed we have already seen MIPS-Based televisions, set-top boxes and other products in the market based on Android. Android also opened the door for MIPS to […]

Ali M3701G: New MIPS based STB SoC

Ali, a Taiwan company, manufacturer of chips for multimedia devices such as DVD player , Set-top boxes, media player has recently announced a new chipset for DVB STB based on MIPS architecture called the M3701G. Here’s an excerpt of MIPS press release (25/04/2011) for this system on chip: MIPS Technologies, Inc.announced today that Taiwan’s ALi Corporation based its new system-on-chip (SoC), which is targeted for the emerging “triple play” market, on the popular MIPS32® 24KEfTM core. MIPS32 24K® cores are widely used across the globe in digital home and networking products including broadband access devices, digital televisions, set-top boxes, and digital media players. … With a hybrid design for DVB-C HD / DVB+IP dual-mode operation, the new M3701G chipset from ALi is targeted for products that support triple play services, such as the next generation of networked media players and set-top boxes. … The M3701G chipset is available now from […]

MIPS Launches New Android and Linux Developer Community

MIPS Technologies announced the launch of its new Developer Community at developer.mips.com. The new site is specifically tailored to the needs of software developers working with the Android™ platform, Linux operating system and other applications for MIPS-Based™ hardware. All information and resources on the site are openly accessible. “This new community demonstrates our ongoing commitment to the vibrant open source effort around the MIPS cores and architecture, as well as around our customers’ and their customers’ hardware platforms,” said Art Swift, vice president of marketing and business development, MIPS Technologies. “As the MIPS architecture continues to expand into new high-volume markets such as mobile handsets and tablets, we see an increasing need for these resources among the growing MIPS developer community.” Software engineers can find development resources and tools on the site including: Android on MIPS source code, porting instructions, a native development kit (NDK) for Android applications development on […]

Cross compiling Berkeley DB for ARM and MIPS

Following my blog entry about Databases for Linux Embedded Systems, here are the instructions to cross-compile Oracle Berkeley DB. First download the source code of the latest version of Berkeley DB (version 11gR2 – 11.2.5.1.25). You’ll need to register on Oracle website first on the download page http://www.oracle.com/technetwork/database/berkeleydb/downloads/index.html to download http://download.oracle.com/otn/berkeley-db/db-5.1.25.tar.gz (with AES encryption) or  http://download.oracle.com/otn/berkeley-db/db-5.1.25.NC.tar.gz (if you don’t need encryption). Extract the source code: tar xzvf ../Downloads/db-5.1.25.tar.gz Configure and build the source code. I’ll use mipsel-linux-gcc, but any other cross-compiler could be used. cd db-5.1.25/build_unix ../dist/configure –host=mipsel-linux CC=mipsel-linux-gcc RANLIB=mipsel-linux-ranlib STRIP=mipsel-linux-strip AR=mipsel-linux-ar –prefix=/home/jaufranc/edev/lib/db-11g make make install The full berkeley DB package is 79MB: jaufranc@CNX-TOWER:~/edev/lib/db-11g$ du –max-depth=1 -h 6.6M    ./lib 308K    ./bin 72M    ./docs 176K    ./include 79M    . However, you won’t need the include and docs directory in your embedded target. So you do not need to copy those. You may or may need the utilities in the bin file. The […]

Cross compiling SQLite for ARM and MIPS

Following my blog entry about Databases for Linux Embedded Systems, here are the instructions to cross-compile SQlite. First download the latest version of SQLite amalgamation with autoconf script (version 3.75): wget http://www.sqlite.org/sqlite-autoconf-3070500.tar.gz Extract the source code: tar xzvf sqlite-autoconf-3070500.tar.gz Configure and build the source code. I’ll use mipsel-linux-gcc, but any other cross-compiler could be used. cd sqlite-autoconf-3070500 ./configure –host=mipsel-linux –target=mipsel-linux –prefix=/home/jaufranc/edev/sqlite-mips make make install At this point the library is correctly configured and installed, so you’d just need to copy the relevant files to your target board (skip include and share directories and  libsqlite3.a) . Let’s check the size of the required files: ls -l ../sqlite-mips/bin/ -rwxr-xr-x 1 jaufranc jaufranc 125513 2011-03-14 14:21 sqlite ls -l ../sqlite-mips/lib/libsqlite3.so.0.8.6 -rwxr-xr-x 1 jaufranc jaufranc 2087584 2011-03-14 14:21 ../sqlite-mips/lib/libsqlite3.so.0.8.6 sqlite binary is 122.57KB and the dynamic library 2038.65KB. Let’s see if we can optimize the binary size with compilation flags and by disabling some […]

Running .NET applications on Linux Embedded Systems

You may have some applications developed using Microsoft .NET application framework that are running on Windows XP, Windows Vista and Windows 7. .NET for Linux If after spending much effort and time, you have a request to port your application to Linux, you don’t need to rewrite everything thanks to Mono, an open source implementation of .NET framework that can be run in Windows, Linux and MacOS. The development framework is composed of three parts: Mono – An open source, cross-platform, implementation of C# and the CLR that is binary compatible with Microsoft.NET MonoDevelop – An open Source C# and .NET development environment for Linux, Windows, and Mac OS X Mono Tools for Visual Studio – Development Tools to develop and migrate .NET applications to Mono on Linux without leaving Visual Studio. This application can be tried for 30 days and / or purchased. This tools is compatible with Visual […]

Cross-compiling Python for MIPS and ARM Platforms

Python programming language is used in several open source projects such as Sugar OS and Xibo. Let’s see if we can cross-compile it in Ubuntu 10.10 using a mips compiler. I’ll use the instructions given at http://randomsplat.com/id5-cross-compiling-python-for-embedded-linux.html. Let’s download Python 2.7.1 first and extract the source code:

Then run the following command in Python-2.7.1 in order to build some tools for the host:

There is no patch for Python 2.7.1 cross-compilation in the link above, so let’s just try to configure and build it:

If we don’t use a patch the first error is:

So I used some older patch to create a new patch: http://www.cnx-software.com/patch/python-2.7.1-cross-compile.patch. You can download it an apply it as follows:

And repeat the step above to configure and cross-compile Python for mips. Finally install Python in ~/Python-2.7.1/install for example:

After that copy all necessary files in ~/Python-2.7.1/install to your […]