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 […]

Android App Inventor – Develop Android App Without Coding

[Update: Google phased out App Inventor, but made it open source. It is now hosted by MIT at http://appinventoredu.mit.edu/welcome-to-app-inventor-edu“] We have previously shown how to setup your environment to develop Android application using Eclipse. However, if you are not into Java programming and learning Android API but still want to develop (simple) Android applications, that’s still possible thanks to App Inventor. App Inventor will allow you to create the application UI in your web browser (The Designer), configure how your application behaves via a Java JNLP (Java Network Launching Protocol) applet (The Block Editor) and run your application in your Android phone/tablet or if you don’t have hardware in an emulator (The emulator). For Windows XP + Emulator, all you’ll have to do is to follow the instructions in http://appinventor.googlelabs.com/learn/setup/setupwindows.html and then you’ll be able to create some “Hello Kitty” application. First download the installer. Run appinventor_setup_installer_v_1_1.exe to install the […]

Installing Android SDK on Windows XP – Hello World Application

You’ll find the full details for installing Android SDK at http://developer.android.com/sdk/installing.html. The purpose of this blog entry is to summarize what I had to do to install Android development environment (Android 2.3 SDK (Gingerbread)) on Windows XP. Before installing the Android SDK per se, you’ll need to install some set of tools used by the SDK. Here are the steps to setup your Windows XP computer for Android development: 1. Install Java Developer Kit (JDK) You need to go to http://www.oracle.com/technetwork/java/javase/downloads/index.html, select your OS (e.g. Linux, Windows, MAC…) and the file you want to download. I selected Java Platform (JDK), then downloaded Java SE Development Kit 6u23. I got the jdk-6u23-windows-i586.exe which I installed in the default directory, i.e. C:\Program Files\Java\jdk1.6.0_23). 2. Install Eclipse Classic Then you’ll need to install Eclipse, and open source IDE. Several versions are available at http://www.eclipse.org/downloads/, but since Google recommends Eclipse Classic, I just download […]

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)) […]

HTTP Server for uCLinux

You may need a web server on your no-MMU embedded system in order to allow remote configuration or possibly provide external access to some files. Usually, you’ll need a lightweight webserver (e.g. not Apache) with the required features and in case of no-mmu system, source that can accommodates uClinux limitations such as no fork support. You’ll also take into account the programming language or the server: e.g. C/C++. Java, Ruby, Perl… If your system does not support Java or Perl for example, that may not be the best solution to add one of those only for the web server and it also depends on the resources (Flash/RAM) available. There are plenty of C/C++ lightweight http servers such as thttpd or lighttpd, however those are using fork in their code. One open source http server that is lightweight and uses vfork (instead of fork) is mathopd. At the time of writing, […]

Building Archos Gen8 Source on Ubuntu 10.10

[ad#Google Adsense-Leaderboard] In a follow-up post of GPL Source code and SDE for Archos Gen8 Devices earlier today, here are the steps I followed to build the toolchain, kernel and root file system with buildroot on Ubuntu 10.10 Desktop version: Extract the source code: tar xzvf ../Downloads/gen8-gpl-froyo.tgz Install extra packages for the build: sudo apt-get install flex bison build-essential zip curl libmpfr-dev libmpfr1ldbl automake autoconf libtool gettext texinfo Run the build to generate the toolchain, kernel and root file system: cd gen8-gpl-froyo/buildroot sudo make Then wait for a while (It took 1h15 on my machine) to get the binary images: zImage (kernel) in buildroot/linux/arch/arm/boot rootfs.arm.squashfs (rootFS) in buildroot/binaries/uclibc 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