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

GPL Source code and SDE for Archos Gen8 Devices

Right at the end of November, Archos released the first version of their Android 2.2 firmware (2.0.54). They now have also released the GPL code for this firmware. http://www.archos.com/support/download/software/sources/gen8-gpl-froyo.tgz In this package, you’ll find the following: Linux Kernel 2.6.29 buildroot – Set of tools to generate the cross-compilation toolchain, the kernel and the root file system A directory called “external”  with the following libraries, tools and drivers: alsa-lib – Audio library blktrace – Driver debugging tool elfcopy –  Tool to generate executable binaries grub – Bootloader iptables – Firewall Tool liblzo  – LZO Compression Library webkit – Web Browser Engine alsa-utils – Audio Tools BlueZ – Bluetooth Protocol Stack elfutils – Tool to manipulate executable binaries hostapd – For Wifi Authentication jdiff – Java Code Analyzer openvpn – VPN Client/Server wpa_supplicant – Wifi tools for WPA/WPA2 bison – Parser Generator dbus – Libray and daemon for IPC (InterProcess Communication) genext2fs […]

Unusual USB Devices in Linux Kernel

Some USB devices (especially cheap ones) are not fully compatible with the USB Stack and when you connect such devices to your target board, the kernel may output errors similar to the one below even though most other devices work perfectly. sd 3:0:0:0: SCSI error: return code = 0x10070000 end_request: I/O error, dev sda, sector 0 Buffer I/O error on device sda, logical block 0 sd 3:0:0:0: SCSI error: return code = 0x10070000 end_request: I/O error, dev sda, sector 8 Buffer I/O error on device sda, logical block 1 sd 3:0:0:0: SCSI error: return code = 0x10070000 end_request: I/O error, dev sda, sector 16 sd 3:0:0:0: SCSI error: return code = 0x10070000 end_request: I/O error, dev sda, sector 24 sd 3:0:0:0: SCSI error: return code = 0x10070000 It previously happened to us with a IDE to USB adapter based on Super Top Bridge ( VID: 0x14CD / PID: 0x6600). The […]

Detecting Code Duplicates in C/C++ with CCFinderX

Over time, as your source code repository and software team(s) grow, you may have more and more code that just does the same thing. This is obviously not desirable since several persons work on code doing the same thing, so you just pay twice for the cost for development and debugging. To avoid this issue, proper team communication and management must be in place (e.g. discourage copy/paste of source code, use a common source control repository..). However, it might be difficult to always detect where the code duplicates are. Luckily, code duplication analysis tools such as CCFinderX are here to help. As described on CCFinderX website: CCFinderX is a code-clone detector, which detects code clones (duplicated code fragments) from source files written in Java, C/C++, COBOL, VB, C#. CCFinderX is a major version up of CCFinder, and it has been totally re-designed and re-implemented from scratch. Its new design and […]

EmbeddedTS embedded systems design