Congatec announced the Conga-QAF, a Qseven module powered by AMD G-Series embedded processors. The module will come with either the AMD G-T40R single core or the AMD G-T40E dual core processor, with 2 GB DRAM by default (expandable to 4GB), numerous I/O interfaces and an optional on-board SSD with a capacity of up to 32 GB. If you are not familiar with the QSeven Form Factor and why it is used, please read the beginning of the blog post entitled “QSeven Form Factor Embedded Boards by Seco“. To summarize, this is a standard to allow developers to use modules (based on QSeven specs) to test their software on several processors by inserting those modules in a common main board. Here are the specification of the Conga-QAF Qseven module: CPU AMD G-T40E 1.0 GHz Dual Core (L1 cache 64KB, L2 cache 512kB x2, 6.4 W) AMD G-T40R 1.0 GHz Single Core […]
Xibo Digital Signage on ARM (Beagleboard / Overo)
Xibo (pronounced eX-E-bO) is an open source, multi-display, multi-zone, fully scheduled digital signage solution written in Python (there is also a dotnet version). This is a client /server solution that can run on Windows or Linux. If you are not familiar with Xibo you can visit http://xibo.org.uk/ or/and read my introduction XIBO: An Open Source Digital Signage Server/Client. Since I had not seen digital signage solution running on low cost ARM development platform such as Beagleboard, Pandaboard or Origen, I decided to give the Xibo python client a try using qemu to emulate Gumstix Overo COM (OMAP 3530). Porting Xibo to ARM could provide several benefits compared to x86 platform: Lower hardware cost Lower power consumption (and electricity bill) Smaller form factor allowing easier integration in displays and in transportation (e.g. buses, subway trains). Easier to implement new digital signage features such as touch screen support, 3G connectivity, location based […]
Linaro 11.09 Release with Linux Kernel 3.0.4
Linaro has just released version 11.09 based on Linux Kernel 3.0.4. Here are the highlights of the release: Android Ethernet Configuration Manager from the x86 Android project is now available in all builds. Ethernet now works on Panda, Staging Panda, Beagle, Beagle xM, Staging Snowball. QA on all boards for the 11.09 Linaro Android Builds. Daily builds of Android toolchain against gcc-linaro bzr repository is provided. Android is now compiled with GCC4.6 with -O3. Busybox is built from source in all Android builds. glmark2 added to all the official builds for Android. Powertop is now available on Android. Linaro’s 11.09 toolchain has been benchmarked. All Android builds are running with the 11.09 toolchain. The MLO that Panda and Staging Panda uses for Android uses gets built from source from the upstream git. An OMAP4460 Android build is available from android-build. Panda supports Bluetooth. Panda supports Wi-Fi. Snowball Android A-release from […]
Cross Compiling libavg for ARM
libavg is a high-level development platform for media-centric applications using Python as scripting language and written in C++. Bear in mind that are many dependencies with libavg 1.6. I have not built all the libraries required, but instead simply taken the pre-built binaries and header files in the qemu overo image and copied the files as follows: mkdir mnt sudo mount -o loop,offset=$[106496*512] overo_sd_alip.img mnt mkdir ~/edev/beagleboard/libs/lib -p mkdir ~/edev/beagleboard/libs/include cp mnt/usr/lib/* ~/edev/beagleboard/libs/lib/ -rf -d cp mnt/lib/* ~/edev/beagleboard/libs/lib/ -rf -d cp /mnt/usr/include/* ~/edev/beagleboard/libs/include -rf -d sudo umount mnt The -d flag skips the symlink, so we need to recreate then for all library so that the compiler can find libname.so instead of libname.so.12. Save the following scripts to symlinks.sh:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
#!/bin/sh liblist=`ls *.so.??` for f in $liblist do echo $f fileres=`echo $f | sed 's/\..\{2\}$//'` ln -s $f $fileres done liblist=`ls *.so.?` for f in $liblist do echo $f fileres=`echo $f | sed 's/\..\{1\}$//'` ln -s $f $fileres done |
and run it where the arm libraries are located (in my case in /home/jaufranc/edev/beagleboard/libs/lib, /home/jaufranc/edev/beagleboard/libs/lib/arm-linux-gnueabi and /home/jaufranc/edev/beagleboard/libs/lib/mesa). This will create symlinks for most libraries, but not all. Some will still […]
Cross-Compiling Mesa 3D Graphics Library for ARM
Mesa is an open-source implementation of the OpenGL specification that can be used for software emulation or complete hardware acceleration for modern GPUs.The Mesa library is used by a variety of games (e.g. Quake 2.3), libraries (e.g PyOpenGL), science and technical applications and utilities (e.g. xscreensaver). MesaLib requires X11 libraries. I’ll assume those are already cross-compiled here. For this build, I used pre-built X11 libraries found in ALIP (ARM Internet Platform) binaries. I used the method described here and copied the libs in /lib and /usr/lib and header files in /lib/include found in the qemu overo image respectively to /home/jaufranc/edeve/beagleboard/libs/lib and /home/jaufranc/edeve/beagleboard/libs/include. make sure you use the “-d” with cp to avoid copying the symlinks or some symbolic links would point to x86 binaries or files that do not exist. Here are the instructions to cross-compile MesaLib 7.11 for ARM using arm-linux-guneabi-gcc: Download the latest version of Mesa source code: […]
Cross Compiling Boost C++ Libraries for ARM
Boost provides free peer-reviewed portable C++ source libraries. Ten Boost libraries are already included in the C++ Standards Committee’s Library Technical Report and will be in the new C++11 Standard. The Boost C++ libraries are already included in popular Linux and Unix distributions such as Fedora, Debian, Ubuntu and NetBSD and are used by projects such as Python, Xibo, Civilization IV, etc.. Here are the steps to cross-compile Boost C++ libraries for arm using arm-linux-guneabi-g++: Download the source code:
1 |
wget http://sourceforge.net/projects/boost/files/boost/1.47.0/boost_1_47_0.tar.bz2/download |
Extract the source code:
1 2 3 |
mv download boost.tar.bz2 tar xjvf boost.tar.bz2 cd boost_1_47_0/ |
Bootstrap the code:
1 |
./bootstrap.sh |
Modify the configuration file (project-build.jam) to use the ARM toolchain by replacing the line with “using gcc” by:
1 |
using gcc : arm : arm-linux-gnueabi-g++ ; |
Install the python development package:
1 |
sudo apt-get install python-dev |
Build and install the boost libraries:
1 |
./bjam install toolset=gcc-arm --prefix=~/edev/beagleboard/libs --disable-long-double -sNO_ZLIB=1 -sNO_BZIP2=1 |
This was tested in Ubuntu 11.04 (natty) and 10.04 LTS with linaro g++ toolchain. Jean-Luc Aufranc (CNXSoft)Jean-Luc started CNX Software in 2010 as a part-time endeavor, before quitting his […]
How to Transfer files between the Host and Qemu via SSH and NFS
Last week, I wrote a blog post explaining how to copy files to a qemu image by mounting the qemu image in the host. This is only useful if emulated platform does not support networking. If networking is enabled, using SSH (Secure Shell) or NFS (Network File System) is more convenient. Using SSH with Qemu To initiate the SSH connection from qemu, there is actually nothing extra to do as long as you have sshd installed and running on the host. If it is not installed simply run sudo apt-get install openssh-shell on the host. This will install and automatically sshd. To initiate the SSH connection from the host, you’ll have to redirect the ssh port to an unknown port and start qemu as follow (for overo):
1 |
sudo qemu-system-arm -M overo -m 256 -drive file=./overo_sd_alip.img,if=sd,cache=writeback -clock unix -serial stdio -device usb-kbd -device usb-mouse -redir tcp:2222::22 |
Please refer to Beagleboard Emulator in Ubuntu with Qemu for the detailed instructions on how to setup qemu to emulate beagleboard or […]
Embedded MasterClass Conference Schedule in Cambridge, UK
Embeded MasterClass will take place in Cambridge on the 5th of October 2011. This conference will give you the chance to meet with embedded systems engineers from many of the world’s leading vendors and you’ll be able to attend presentations and workshops free of charge. Here’s the presentations’ schedule for the event: Time Stream 1 Stream 2 8.30 – 9.30 Tea/Coffee – Meet the Exhibitors 9.30 – 10.15 1: Leveraging the Performance of Intel® Architectures in low power, fan-less solutions with the latest Intel® Atom™ processor-based platform. Regis Cheval CEng MIET, Intel® Atom™ Platform Application Engineer – Intel 10.30 – 11.15 2: Proving your code quality. Barry Lock – Lauterbach 3: Developing reliable embedded systems using COTS and custom processors. Michael Pont, CEO – TTE Systems 11.15 – 11.45 Coffee and Exhibition 11.45 – 12.30 4: Strategic Research Agenda. Helen Finch – Artemis and Infineon 5: Safely from Conception to […]