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:
1 |
tar xjvf Python-2.7.1.tar.bz2 |
Then run the following command in Python-2.7.1 in order to build some tools for the host:
1 2 3 4 5 |
./configure make python Parser/pgen mv python hostpython mv Parser/pgen Parser/hostpgen make distclean |
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:
1 2 |
CC=mipsel-linux-gcc CXX=mipsel-linux-g++ AR=mipsel-linux-ar RANLIB=mipsel-linux-ranlib ./configure --host=mipsel-linux --target=mipsel-linux --prefix=/python make HOSTPYTHON=./hostpython HOSTPGEN=./Parser/hostpgen BLDSHARED="mipsel-linux-gcc -shared" CROSS_COMPILE=mipsel-linux- CROSS_COMPILE_TARGET=yes |
If we don’t use a patch the first error is:
1 |
Include/pyport.h:243:13: error: #error "This platform's pyconfig.h needs to define PY_FORMAT_LONG_LONG" |
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:
1 |
patch -p1 < python-2.7.1-cross-compile.patch |
And repeat the step above to configure and cross-compile Python for mips. Finally install Python in ~/Python-2.7.1/install for example:
1 |
make install HOSTPYTHON=./hostpython BLDSHARED="mipsel-linux-gcc -shared" CROSS_COMPILE=mipsel-linux- CROSS_COMPILE_TARGET=yes prefix=~/Python-2.7.1/install |
After that copy all necessary files in ~/Python-2.7.1/install to your […]
Ayuda Splash Digital Signage Player Becomes Open Source
Ayuda Media Systems announced OpenSplash – a free, open source digital signage player at ISE 2011. Press Release Excerpt: Ayuda Media Systems (“Ayuda”) announced today at ISE 2011 that it will be open sourcing its Splash Digital Player. Dubbed “OpenSplash”, it is a free, multi-platform open source player that can be driven by any content management and scheduling system. “Offering a free, open source media player will enable a new wave of innovation in the signage industry” said Andreas Soupliotis, President & CEO of Ayuda. “There are a multitude of software vendors in the space that basically all do the same thing – push content from a content management system (CMS) to a network of players. Some do it a little better than others but the differentiation of identity is just not there. If there were a standard open software player that the industry rallied behind then everyone could focus […]
Sigma Designs unveils its SMP8910 Series Secure Media Processors: SMP8910 SMP8911
Sigma Designs will announce its latest and all powerful Media Processor (SMP8910) based on MIPS at CES 2011. The SMP8910 with integrated studio-quality VXP® video processing provides a highly-integrated, high-performance solution for premium Blu-ray 3D players. It supports all the audio decoding options, video decoding options, and content protection requirements for Blu-ray players. The Secure Media Processor architecture offers advanced content protection, supporting a wide variety of Digital Rights Management (DRM) and Conditional Access (CA) solutions. Studio-quality VXP® video processing is included, offering fully adaptive deinterlacing, adaptive 3D noise reduction, mosquito noise reduction, block artifact reduction, adaptive detail enhancement featuring sharpness and texture enhancement with overshoot control, adaptive debanding, and adaptive contrast enhancement. 3D Video decoding of a variety of 3D Video formats is also featured, including Blu-ray 3D. Support for legacy, current, and future 3DTVs is provided by supporting a variety of 3D Video output formats. The high-performance 3D […]
P2P for embedded systems: BitTorrent and Emule – Part 2
In part1, I explained how to build and install aMule for mips platorm, in part2, we’ll build and install Transmission BitTorrent client for devices based on Sigma Designs SMP8634/SMP8635. Transmission BT is already used in quite a few NAS and media players including Syabas Networked Media Tank, Western Digital WD MyBook, ReadyNAS, D-Link DNS-323 & CH3SNAS… as you can see at the bottom of the transmission download page. Building Transmission 2.13 daemon and client First download Transmission 2.13 source code and required dependencies: OpenSSL 1.0.0c, cURL 7.21.3 and libevent 1.4.14b (do not use libevent 2.0.x). You’ll also need zlib 1.2.5 that we compiled in part1. Extract them: tar xjvf ../Downloads/transmission-2.13.tar.bz2 tar xzvf ../Downloads/openssl-1.0.0c.tar.gz tar xjvf ../Downloads/curl-7.21.3.tar.bz2 tar xzvf ../Downloads/libevent-2.0.9-rc.tar.gz Build OpenSSL 1.0.0c: ./Configure no-asm –prefix=/home/jaufranc/edev/libs linux-generic32 make CC=”mipsel-linux-gcc” AR=”mipsel-linux-ar r” RANLIB=”mipsel-linux-ranlib” make install Build cURL 7.2.13: ./configure –prefix=/home/jaufranc/edev/libs –build=mipsel-linux –target=mipsel-linux -host=i686 –disable-ipv6 –without-random –with-ssl=/home/jaufranc/edev/libs –with-zlib=/home/jaufranc/edev/libs CC=mipsel-linux-gcc LDFLAGS=-ldl make make install […]
P2P for embedded systems: BitTorrent and Emule – Part 1
Whether your device is a Network Access Storage (NAS) or a media player with network capabilities, you may consider adding P2P to allow downloads of files as you would do on your computer. Two of the most used P2P protocols are BitTorrent and eMule, but most of the client have a UI designed for Linux or Windows and may not be easily ported to an embedded system. So what we need to look for here are command line based clients or daemons that can be compiled and run in an embedded platform. After some research, here are the 2 programs we’ll use: aMule 2.2.6 a multiplatform eMule-like client Transmission 2.13 running as a daemon for BT dowloads Today, I’ll show how to use aMule 2.2.6 in Sigma Designs SMP863X target, for example in Popcorn Hour A-100. But a similar method (just a different compiler mips-linux-gnu-gcc and setting Little endian (-EL)) […]
Android Debugging on MIPS Platform with Viosoft Arriba Debugger
I’ve recently attended a webinar organized by EETIMES with MIPS and Viosoft entitled “Android Platform: It’s Not Just For Handsets Anymore” on the 26th October 2010. You can now register for the on demand version at http://seminar2.techonline.com/s/mips_oct0610 The purpose of this web conference was to explain the status of Android for Set-top-box and MID development, the complexity of debugging kernel, java and application in an Android system as well as showcasing Viosoft Arriba to debug Android on MIPS. If you ever develop Android on Sigma Designs SMP864x/SMP865x platforms you’ll probably use Viosoft Arriba. You may refer to the following material Comprehensive Development and Debug Coverage for Linux and Android on the MIPS Architecture that contains the slides used during the presentation. Rick Leatherman – Vice President, Development Tools at MIPS Technologies, Inc – firstly described Android architecture with the application level, Library/Android (Dalvik), and the kernel. He then explained the […]