I’ve recently come across strace, a debugging utility for Linux that “monitor the system calls used by a program and all the signals”. It may not be that useful if you have the source code and can run other debugging tools such as gdb, or simply add printf to your code. But if you don’t have source code of the program, or you are a system administrator who wants to check if the program fails due to file access reasons, for example, this is really a great tool as it may help you find out which file causes problem. In my case, I was trying OpenGL ES on an ARM platform, and at least part of the code comes in libraries that are only available in binary form. I got the following error message running es2_info (part of mesa-utils-extra): UMP: ump_arch_open() failed to open UMP device driver ********************************************************************* ERROR: In […]
Use GNU Parallel to Speed Up Script Execution on Multiple Cores and/or Machines
I attended BarCamp Chiang Mai 5 last week-end, and a lot of sessions were related to project management, business apps and web development, but there were also a few embedded systems related sessions dealing with subjects such as Arduino (Showing how to blink an LED…) and IOIO board for Android, as well as some Linux related sessions. The most useful talk I attended was about “GNU Parallel”, a command line tool that can dramatically speed up time-consuming tasks that can be executed in parallel, by spreading tasks across multiple cores and/or local machines on a LAN. This session was presented by the developer himself (Ole Tange). This tool is used for intensive data processing tasks such as DNA sequencing analysis (Bioinformatics), but it might be possible to find a way to use GNU Parallel to shorten the time it takes to build binaries. Make is already doing a good job at […]
Monkey, an Open Source High Performance Embedded Web Server
Some time ago, I mentioned 5 web servers (mathopd, thttpd, busybox httpd, boa and lighttpd) suitable for embedded systems (including those featuring no MMU processors) and low end machines. I’ve recently come across Monkey web server, a lightweight open source Web Server for Linux (2.6.29 or greater), which has been designed with focus in embedded devices. Monkey is currently supported on ARM, x86 and x64, although a quick analysis of the source code shows it forks, so it won’t be supported on processors that do not feature a memory management unit (MMU) without modifications. Monkey supports the following features: HTTP/1.1 compliant Virtual Hosts Asynchronous networking model (event-driven) Indented configuration Plugins Support C API Interface Other features through base plugins: SSL Security Log writter Directory Listing Shell: Command line The developers have benchmarked Monkey against busybox httpd and nginx on a now well-know ARMv6 platform: the Raspberry Pi. They used Siege […]
Migrating a WordPress Blog from Apache2 to Nginx
This blog is hosted on a Linode VPS with 512 MB RAM and running Ubuntu 11.10. Up until today, Apache2 was the web server, and it worked fine except sometimes, it reached connection and memory limits, and the blog would go offline for a short period of time, especially right after a new blog post. So this week-end, I decided to switch to nginx (pronounced engine-x) web server which is said to use less memory than Apache2. Let me know if something suddenly stopped working… nginx is a relatively recent web server, and the documentation on the web seems to become outdated pretty fast, so I’ve decided to document what I’ve done. The first thing I would recommend is to try it in your own local server first, and make sure most things are working including plugins. Testing your WordPress blog with nginx in a local server I run Ubuntu […]
WM8850-MID Android 4.0 Tablet Unboxing and Review
I recently bought an Android 4.0 tablet with a 7″ capacitive touchscreen based on the new WonderMedia WM8850 processor (Cortex A9 + Mali-400). In my first post, I called this tablet UGoos UG-LMW70, but I just received a no brand package with nothing mentioning Ugoos or the model number UG-LMW70 anywhere. Android settings just show WW8850-mid for the model number. The tablet comes with a 5V power supply, a miniUSB to USB cable, a short miniUSB to USB female adapter, headphones and a user manual in English explaining how to use Android, but nothing about the tablet itself. The tablet has vol-/+ buttons and a power button (left side below), and a power jack, microSD slot, headphones jack, a USB host port, a mini HDMI port, a miniUSB port and a microphone (right to left). They did not include a mini HDMI to HDMI cable, so I did not try HDMI […]
Raspberry Pi Debian Wheezy Alpha, Bodhi Linux Alpha and Pwn, A Security Test Suite
I still haven’t received my Raspberry Pi board, but there have been a couple of interesting Raspberry Pi software news this week. Raspberry Pi Debian Wheezy “Alpha” This is an update to Raspberry Pi Debian Squeeze 6.0, based on Wheezy (Debian 7.0) and the maintainer (Alex) is looking for volunteer to help test it and iron it out, before the Raspberry Pi foundation officially announce the distribution on its blog. This distribution comes will the following: * Scratch, Python, Midori etc as before * A configuration tool for common initial setup tasks (resize root partition, change keyboard layout) * omxplayer * USB drives auto mount * Lots more This is alpha quality, so you can’t expect it something very stable, but if you want to test drive it, you can download it via BitTorrent (447 MB). Sha1sum: bdad7f1c504e22f8d754028843abb9da4330107f. You can login with the following credentials: User: pi | password:raspberry Known […]
VWorks VLAB Powers Freescale Vybrid Virtual Platform
Back in March, Freescale announced their Vybrid solution featuring both a Cortex A5 processor and a Cortex M4 microcontroller, and they had prototypes running an unnamed virtual platform in order to speed up software development and possibly have the software ready at the same time as the silicon is. Always looking to learn more, I studied and wrote about virtual hardware platforms such as Cadence Virtual System Platform, Wind River Simics Virtual Platforms and the open source Imperas OVPsim simulator. It turns out Freescale does not use any of these solutions, but relies on VWorks VLAB instead, which still use the same standard (SystemC/TLM) as the virtual hardware solutions aforementioned. VWorks uploaded a demonstration of VLAB running a virtual platform for the Freescale Vybrid controller and showing how it can handle both ARM Cortex-A5 and Cortex-M4 cores. This demo of VLAB 1.7.0 is pretty interesting and showcases: Dual (virtual) display […]
199 USD Seeed Studio DSO Quad Open Source Oscilloscope
The DSO (Digital Storage Oscilloscope) Quad is a pocket size 4 channel digital oscilloscope for common electronic engineering tasks based on STM32F103VCT6 ARM cortex M3 MCU with a 3″ display. It can provide 72MS/s sampling rate with integrated FPGA and high speed ADC and an internal 2MB USB disk can be used to store waveform captures, user applications and to upgrade firmware. SeeedStudio DSO Quad is not exactly a new product (June 2011), but I was not aware of this type of low cost oscilloscopes until I come across a review today. Here are the key features of this tiny oscilloscope: Pocket size and light weight Two 72MS/s analog channels, plus two digital channels Signal Generator Auto Measurement Various Triggering Option Easy waveform storage Firmware upgrade User applications Open source and technical specifications: 2x Analog channel: [CH A] Â [CH B] 2x Digital channel : Â [CH C] Â [CH D] Vertical […]