Open Source Licenses Overview: GPL, LGPL, Apache, BSD,…

The great thing about open source code is the large amount of high quality code that is available and many embedded projects use FOSS code as it really speeds up development time. What is not often taken into account are the licenses for the code. Many companies often simply ignore licenses issues and some even go one step further by obfuscating the code to work around dual license issues or to hide the use of a particular open source library. Even though history shows that few companies get sued due to open source license infringements and release of open source code modified in commercial projects often requires the community involvement, open source licenses should still be taken into consideration as the risk still exists. I’ll give an overview of open source licenses in this blog post, as well as recommendation on how to keep your proprietary code closed. Definition of free software All software that are under a free software …

HTML5 Bleeding Edge – Google Devfest Chiang Mai 2011

GTUG Thailand has uploaded 2 videos that recorded HTML5 Bleeding Edge presentation by Eric Bidelman at Google Devfest 2011 in Chiang Mai, Thailand on September, 24 2011. This presentation focuses on what’s new on HTML5 including WebSockets, messaging, and rich media APIs like the Web Audio API. A summary of this presentation is available here. The presentation slides are available at http://bleedinghtml5.appspot.com and the instructions to retrieve code are given at http://code.google.com/p/bleedinghtml5/

Finding a Missing Package in Ubuntu with Aptitude

When you configure a program before building, it will usually check for dependencies and if one is missing it will return an error such as: checking for OPENSSL… configure: error: Package requirements (openssl) were not met: No package ‘openssl’ found Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. It could be a PATH issue, but usually that simply means the development version of the library is not installed. Sometimes the name is easy to guess and can be installed with apt-get: sudo apt-get install packagename-devel But sometimes it’s more difficult to guess and Google is not always very helpful. In that case you can use aptitude to search for the package. For example for nss3: sudo aptitude search nss3 i   libnss3                         – Network Security Service libraries i   libnss3-1d                   – Network Security Service libraries p   libnss3-dbg                – Development files for the Network Security p   libnss3-dev                – Development files for the Network Security p   libnss3-tools              – …

Qualcomm Snapdragon S4: MSM8960

Qualcomm initially announced the Snapdragon S4 is a blog post back in August. They have now released a white paper providing further information on this processor. The Qualcomm Snapdragon S4 (MSM8960) is composed of  two Krait CPUs clocked between 1.2 and 1.5 Ghz, an Adreno 225 GPU and a modem subsystem with LTE, GPS, Wifi, Bluetooth and FM support. It will be manufactured using 28nm technology and provide much lower power consumption compared to previous generations. Key features and improvements: New CPU micro-architecture: The Krait CPU offer a 60% performance improvement compared to the scorpion CPU used in previous generations. SIMD/VFP performance: Multimedia instructions (SIMD) and floating point operations have also been improved, but no metrics have been provided. Optimized memory subsystem: Krait includes dual-channel memory. Dual-channel memory is critical in order for the processor to being able to handle the large bandwidth requirements in multicore systems. 25/40% power improvement: Thanks to an asynchronous multi-core processing, the MSM8960 consumes between …

Embedded Linux Conference Europe 2011

Embedded Linux Conference Europe (ELC-E 2011) will take place on October 26 – 28, 2011 at Clarion Congress Hotel in Prague, Czech Republic. The event will be co-located with LinuxCon Europe 2011 and GStreamer Conference. The day before the official opening of the conference, two tutorials will be offered on Tuesday 25th of October:b Outside the Box: An Introduction to Embedded Linux and Hardware Interfacing Using the Snowball Board – 9:00 – 17:00 – Trainer: Chris Simmonds – Cost: 350 USD. Embedded Android Workshop – 9:00 – 17:00 – Trainer: Karim Yaghmour- Cost: 300 USD. ELCE consists of 3 days of presentations, tutorials and sessions. There will be over 50 sessions during those 3 days. I’ll highlight a few sessions that I find particularly interesting. October 26 10:45 – 11:45 – Linaro’s Android Platform by Zach Pfeffer, Linaro Android Platform team leader. Linaro uses components from the Android Open Source Project, member companies, community supported efforts and Linaro engineering teams …

Dropbear: Lightweight SSH Server / Client

You may need to remotely access your embedded device, or your embedded systems is simply headless. You could use telnet, but this is insecure. A secure way to access a device remotly is to use SSH protocol. OpenSSH is one implementation but this is relatively too large and may use uncesary space on a device with limited storage. That’s where Dropbear comes into play. Dropbear is a lightweight implementation of an SSH client and server and is ideal for embedded systems. Dropbear ARM executable is only 200 KB. Here’s how it’s described on its website: Dropbear is a relatively small SSH 2 server and client. It runs on a variety of POSIX-based platforms. Dropbear is open source software, distributed under a MIT-style license. Dropbear is particularly useful for “embedded”-type Linux (or other Unix) systems, such as wireless routers. The main features of dropbear: A small memory footprint suitable for memory-constrained environments – Dropbear can compile to a110kB statically linked binary …

Cross-comping zlib for ARM target

Zlib is defind as “A Massively Spiffy Yet Delicately Unobtrusive Compression Library” and used in many projects requiring compression. Here are the instructions cross-compile zlib for ARM: Download zlib1.25 wget http://cdnetworks-kr-2.dl.sourceforge.net/project/libpng/zlib/1.2.5/zlib-1.2.5.tar.gz Extract it tar xzvf zlib-1.2.5.tar.gz cd zlib-1.2.5 Configure, build and install zlib. CC=armv5tel-redhat-linux-gnueabi-gcc ./configure –prefix=/home/jaufranc/edev/rootfs make make install This will install libz.a (static library) and libz.so (dynamic library) in /home/jaufranc/edev/rootfs/lib and copy the header files to /home/jaufranc/edev/rootfs/include.

Installing an ARM Toolchain in Fedora

You can easily install an arm cross-compiler on Fedora as follows: cd /etc/yum.repos.d/ sudo wget http://ftp.linux.org.uk/pub/linux/arm/fedora/cross/cross.repo sudo yum install armv5tel-redhat-linux-gnueabi-gcc You can check the installation worked by checking the cross-compiler version [[email protected] ~]$ armv5tel-redhat-linux-gnueabi-gcc -v Using built-in specs. Target: armv5tel-redhat-linux-gnueabi Configured with: ../configure –prefix=/usr –mandir=/usr/share/man –infodir=/usr/share/info –enable-shared –enable-threads=posix –enable-checking=release –with-system-zlib –enable-__cxa_atexit –disable-libunwind-exceptions –enable-languages=c,c++ –disable-libgcj –with-sysroot=yes –enable-version-specific-runtime-libs –target=armv5tel-redhat-linux-gnueabi Thread model: posix gcc version 4.1.2 20070925 (Red Hat 4.1.2-33.fa1) This will only install the C compiler (gcc), to install the C++ compiler, run the following command: sudo yum install armv5tel-redhat-linux-gnueabi-gcc-c++ Tested in Fedora 12.