libavg on Raspberry Pi

libavg development team has recently announced a beta port of their multimedia library to the Raspberry Pi. libavg is a high-level development platform for media-centric applications using Python as scripting language and written in C++. I came to know this platform as I tried Xibo Digital Signage, and I tested it on ARM platforms. Up to know this would only work using software rendering/decoding, and everything was painfully slow on ARM, but libavg developers are now making use of OpenGL ES to boost graphics speed. More work is needed, and they intend to eventually support features such as hardware video decoding (OpenMAX possibly via gstreamer) and compressed textures. Installing libavg on Raspberry Pi. Pre-built packages are available for Raspberry, so installation is pretty straight forward:

Running Samples Apps 32 samples are located in /usr/local/lib/python2.7/dist-packages/libavg/samples/ directory, and they rely on X11, so first start LXDE:

Open a serial console (LXTerminal) […]

Xibo Digital Signage Version 1.4.0 Released

Xibo has just announced the release of Xibo 1.4.0 (codename: “Brorsen”). Contrary to version 1.3.0 which was a development release, Xibo 1.4.0 is a stable release and you should consider updating your current installations if you want to take advantage of some of the 27 new features and/or 108 bug fixes. This version replaces the previous stable version (1.2.2) released 18 months ago. If you are not familiar with Xibo, it is an open source Client/Server digital signage framework that can run in Windows (.NET implementation) and Linux (Client: Python, Server: LAMP). For some more details, you can read my introduction to Xibo and/or a “getting started” tutorial I wrote some time ago. Main new features in Xibo 1.4.0 Significant improvements to permissions – View, Edit and Delete permissions can now be set on the following items: Library Media Layouts Regions in Layouts Media on Region Timelines DataSets Display Groups […]

ConnectPort X2e SEP 2.0 Compliant Home Energy Gateway with Zigbee Connectivity

Digi International announced the “ConnectPort X2e for Smart Energy”, a Linux-based Home Energy Gateway with Zigbee connectivity based on Freescale Home Energy Gateway Reference Platform powered by Freescale i.MX28 processor. The “ConnectPort X2e for Smart Energy” is upgradable to comply with the new Smart Energy 2.0 Profile (SEP 2.0)  and  enables ZigBee devices on a Home Area Network (HAN) to communicate with an energy service provider. The new gateway is a low-cost, enhanced version (hence the “e” in X2e)  of Digi’s ZigBee Smart Energy Gateways.  The device connects ZigBee Smart Energy devices from a Home Area Network (HAN) to an energy service provider via broadband. It supports over-the-air updates of connected Smart Energy devices, making it easier for utilities and application partners to establish and maintain large Smart Energy device deployments. The company offers two models namely: ConnectPort X2e, ZigBee SE Coordinator for stand-alone Smart Energy networks that do not […]

Linux Debugging: Listing Shared Libraries at Runtime

I had a library (a python plugin) that crashed and outputted the “very useful”: illegal instruction I tried pdb (the Python Debugger) to find the issue without success. So I tried to add some printf to this library but none were outputted at runtime.  So I guessed the illegal instructions was generated by the shared libraries. Let’s see how many libraries we’ve got: ldd libbrowsernode.so | wc -l 125 Oh dear!… 125 libraries.. This is where panic sets in. Luckily, there is a simple way to list the dynamic libraries as they are loaded (and some more useful info). Simply set: export LD_DEBUG=files before running your program. This is extremely verbose, so I recommend you redirect the output to a file. This method allowed me to find undefined symbols during dynamic libraries load time with errors such as: opening file=/usr/lib/gtk-2.0/2.10.0/loaders/libpixbufloader-png.so [0]; direct_opencount=1 14121: 14121:     /usr/lib/gtk-2.0/2.10.0/loaders/libpixbufloader-png.so: error: symbol lookup error: undefined […]

Pandaboard Cloud Cluster Running Google App Engine

Noritsuna Imamura showed an ARM cloud cluster built with 6 Pandaboards at  Linaro Connect Q4.11. Noritsuna is a member of the Open Embedded Software Foundation (OESF), a Japanese organization that support Open Source embedded software. The cluster is made of 6 panda boards with a total 6 GB of RAM (1GB per board) that runs the Google App Engine (http://code.google.com/appengine/) in Ubuntu/Linaro 11.09 release. The middleware used is TyphoonAE, a full-featured and productive serving environment to run Google App Engine (Python) applications. This type of server hosts web applications such as Rietveld (used in the demo below) to be run on (thin) clients. There are also plenty of other software (required by Google App Engine) that runs in this ARM cloud such as MySQL, Apache2, memcached and more. In the video, a power meter shows that the cluster consumes about 35 W in low activity mode. Norisuna had a comparison […]

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:

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

Installing and running Xibo Linux Python Client in Acer Aspire One D255E

I have tried Xibo Linux Python Client 1.3.0 on my Acer Aspire One D255E netbook, here are the steps I followed. Install Ubuntu 10.04 LTS Since the client is only officially supported in Ubuntu 10.04 LTS, I had to install it first. After installation the network (ethernet and wifi) does not work,  please visit Installing Ubuntu 10.04 LTS in Acer Aspire One D255E for the instructions to resolve the networking issues as well as make the SD card reader work properly. Upgrade Xibo Server to version 1.3.0 The next step I did was to update the Windows XP server to version 1.3.0. I followed parts of the server installation instructions I previously wrote for version 1.2.0. Download xibo-server-1.3.0.zip Extract its content to c:\xampp\htdocs\xibo Run XAMPP Control Panel and start Apache and Mysql. Go to http://localhost/xibo Enter the admin username and password, it will ask you if you want to do […]

LinuxCon 2011 Presentation: Introduction to Python Programming Language

The third LinuxCon 2011 presentation is “Intro to Python” by Peter Krenesky, Lead Software Engineer at OSU Open Source Lab. Abstract: This presentation is a Python programming language tutorial with basics of Python including none, strings, formatting, data structures (tuple, list, dict, slices, etc…), classes (methods, inheritance, initializers, etc…), if statements, iterations and more. If you want to download the presentation slides, please go to Intro to Python and use the download button on top of the Slideshare presentation. If it does not work, you may also download a copy here or here. 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