How to Transfer files between Host and Qemu

I previously posted instructions to install and run nano and ARM Linux Internet Platform (ALIP) distribution images for Overo and Beagleboard on QEMU, If the image support networking, you could use ssh (install dropbear server in qemu) or nfs to transfer files between the host computer and qemu, or even run your program from the NFS share. This should be possible to do that on the Overo emulator since it support Ethernet. However, although I can access Internet, I cannot access the host via ssh as the host is in a private subnetwork (192.168.0.0) and qemu in another (10.0.2.0). We would probably have to enable bridge networking for that but the tun driver is apparently not compiled in ALIP kernel. I’ll look into that later on. [Update: Finally, we don’t need tun/tap to make this work, please read http://www.cnx-software.com/2011/10/02/how-to-transfer-files-between-host-and-qemu-via-ssh-and-nfs/ for details.] Today, I’ll just show how to mount a Qemu […]

Beagleboard Emulator in Ubuntu with Qemu

If you just want to try a program on Beagleboard, but do not want (or have the means) to purchase a board, you may be able to use qemu to emulate the Beagleboard or BeableBoard-xM. I’ll details the instructions to run the Nano build (minimal kernel) and the ARM Linux Internet Platform (ALIP) distribution for Beagleboard on qemu. Please read the full post before starting the installation before there are currently some issues such as no Ethernet support. First, install or update linaro-media-create: sudo add-apt-repository ppa:linaro-maintainers/tools sudo apt-get update sudo apt-get install linaro-image-tools Then download the nano image and omap3 hardware pack: wget http://releases.linaro.org/platform/linaro-n/nano/11.08/nano-n-tar-20110823-1.tar.gz wget http://releases.linaro.org/platform/linaro-n/nano/11.08/hwpack_linaro-omap3_20110823-0_armel_supported.tar.gz Generate the image for qemu: sudo linaro-media-create –image_file beagle_sd.img –dev beagle –binary nano-n-tar-20110823-1.tar.gz –hwpack hwpack_linaro-omap3_20110823-0_armel_supported.tar.gz If you don’t have it already, get the latest qemu-linaro package from Linaro Maintainers PPA: sudo apt-get install qemu-system Check the version is correct: qemu-system-arm -version QEMU emulator version […]

How to Develop and Port Android to a New Hardware Platform with Linaro

Zach Pfeffer, Linaro Android Working Group tech lead, gives an introduction to making Android work on a new hardware platform at Linaro Connect Q3.11 in Cambridge, August 2011. He starts by giving details about Android, its implementation, and how source code is managed. He then gives details about how to add support for a new board, taking advantage of Linaro scripts and infrastructure, already supporting community boards from several ARM SoC vendors. Here are the main topics covered during this 48 minutes presentation: General Android Overview (at 5:00 in the video) and different Android “components”: The Linux kernel Non-upstreamed kernel extensions A set of shared and static libraries A set of Hardware Abstraction Layers (HALs) A JIT capable VM Android activity framework Android applications Repo, Gerrit and Git (25:50) Porting to a new Platform (35:07) HALs and Hardware Acceleration (39:00) Continuous Integration (41:02) Linaro Evaluation Build (LEB) Integration (45:06) Slides […]

Emulate Gumstix Overo COM with Qemu and Linaro Nano Image

Overa COMs are low cost computer-on-modules (COM) built around OMAP3503 and OMAP3530 depending on the model. Such device can be purchased on gumstix website. However if you just want to try a program on the board, you could use QEMU to emulate the Overo board as follows: Download pre-built image. (nano is a minimal linux ditribution without UI): wget http://releases.linaro.org/images/linaro-n/nano/11.07/overo-nano.img.gz gunzip overo-nano.img.gz Install the qemu tools: sudo add-apt-repository ppa:linaro-maintainers/tools sudo apt-get update sudo apt-get install qemu-user-static qemu-system Run the image: qemu-system-arm -M overo -clock unix -serial stdio -device usb-kbd -drive file=/tmp/overo-nano.img,if=sd,cache=writeback You can also watch the installation in the video below:   Source: https://wiki.linaro.org/Resources/HowTo/Qemu-5   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

OpenCL (Open Computing Language) Overview and SDKs

OpenCL (Open Computing Language) is a multi-vendor open standard for general-purpose parallel  programming of heterogeneous systems that include CPUs, GPUs and other processors. OpenCL provides a uniform programming environment for software developers to write efficient, portable code for highperformance compute servers, desktop computer systems and handheld devices. OpenCL standard is managed and defined by the Khronos Group. The latest version (OpenCL 1.1) was ratified by the Khronos Group on the 14th of June 2010 and adds significant functionality for enhanced parallel programming flexibility, functionality and performance including: Host-thread safety, enabling OpenCL commands to be enqueued from multiple host threads. Sub-buffer objects to distribute regions of a buffer across multiple OpenCL devices. User events to enable enqueued OpenCL commands to wait on external events. Event callbacks that can be used to enqueue new OpenCL commands based on event state changes in a non-blocking manner. 3-component vector data types. Global work-offset which […]

Faster JPEG decoding on ARM with libjpeg-turbo and NEON Instructions

libjpeg-turbo is based on libjpeg, but uses SIMD instructions (MMX, SSE2, etc.) to accelerate JPEG compression and decompression on x86 targets. On such systems, libjpeg-turbo is generally 2-4x as fast as the original version of libjpeg with the same hardware. ARM does not support MMX or SSE2 instructions, but it has its own SIMD instructions processed by the NEON Engine on ARM Cortex Core A5, A8, A9 and A15. ARM claims that “NEON technology can accelerate multimedia and signal processing algorithms such as video encode/decode, 2D/3D graphics, gaming, audio and speech processing, image processing, telephony, and sound synthesis by at least 3x the performance of ARMv5 and at least 2x the performance of ARMv6 SIMD.” Linaro worked on libjpeg-turbo and added NEON support to it. The code is available on launchpad at https://code.launchpad.net/~tom-gall/linaro/libjpeg-turbo Linaro has also provide benchmark result for libjpeg-turbo with a 12 Mpixel image on TI OMAP4 (Pandaboard) using the […]

Linaro 11.08 Release with Linux Kernel 3.0.3

Linaro has just released version 11.08 based on Linux Kernel 3.0.3 with support or TI Beagleboard, BeagleBoard-xM & Pandaboard,  ST Ericsson Snowball, Freescale i.MX53 development board and Samsung Origen board. Here are the highlights of the release: Android The Linaro 11.08 toolchain release of GCC 4.6 has compiled the Origen, BeagleBoard, BeagleBoard-xM, PandaBoard and Snowball builds, and are running Android 2.3.5 with a 3.0 Linux kernel. Together with the mainline kernel focused builds for BeagleBoard and PandaBoard and a preliminary i.MX53 build, the Android Platform Team ships 6 builds this month. A first! Android Platform code aliasing violations have been fixed allowing the use of strict-aliasing for better optimizations with gcc 4.6 based toolchains. The Android toolchain 11.08 has been released and has received numerous updates, including updated binutils and current gmp/mpfr/mpc. Benchmarks are available here. libjpeg-turbo 1.1.1 and ffmpeg with support for H.264 and WebM build are available on […]

Bootloader to OS with Unified Extensible Firmware Interface (UEFI)

Unified Extensible Firmware Interface (UEFI) is a specification detailing an interface that helps hand off control of the system for the pre-boot environment (i.e.: after the system is powered on, but before the operating system starts) to an operating system, such as Windows or Linux. UEFI aims to provides a clean interface between operating systems and platform firmware at boot time, and supports an architecture-independent mechanism for initializing add-in cards. UEFI will overtime replace vendor-specific BIOS. It also allows for fast boot and support for large hard drives (> 2.2 TB). There are several documents fully defining the UEFI Specification, API and testing requirements: The UEFI Specification (version 2.3.1) describes an interface between the operating system (OS) and the platform firmware. It describes the requirements for the following components, services and protocols: Boot Manager Protocols – Compression Algorithm Specification EFI System Table Protocols – ACPI Protocols GUID Partition Table (GPT) […]