Archive

Posts Tagged ‘qemu’

How to Build and Run Android L 64-bit ARM in QEMU

August 23rd, 2014 12 comments

Most people can’t afford Juno Cortex A57/A53 development board, and mobile processors based on the latest 64-bit ARM cores are only expected by early 2015. But thanks to a small team at Linaro, you can now build and run Android L 64-bit ARM in the latest version of QEMU that supports Aarch64. Alex Bennée, an engineer working for Linaro, wrote a blog post in Linaro’s Core Dump blog explaining the Android emulator is actually based on QEMU,  the differences compared to mainline QEMU, the work they’ve done on Android L at Linaro, and most importantly, provided the basic steps showing how to build and try Android L 64-bit ARM (ARMv8) in QEMU. I’ve just done that, but unfortunately, albeit the builds complete, I could not manage to start Android L in QEMU yet. [Update: working now]. If you want to give it a try, you’ll need a Linux PC, and patience, as it may take about one day to retrieve the source code, and build everything from source.

Android_L_64-bit_ARM_QEMU

I’ve done all this in a computer running Ubuntu 14.04 with an AMD FX8350 processor and 16 GB RAM.

First, you’ll need to install an ARM 64-bit toolchain, some dependencies, and tools:

sudo apt-get install gcc-aarch64-linux-gnu build-essentials git bison zlib1g-dev \
libglib2.0-dev libpixman-1-dev gperf android-tools-adb vncviewer

The next step is to cross-compile a Linux 3.10 kernel for Android:

mkdir -p ~/edev/linaro
git clone https://git.linaro.org/people/christoffer.dall/linux-android.git
cd linux-android
git checkout ranchu-linaro-beta1

There’s a bug include the current version of the toolchain in Ubuntu 14.04 (https://bugs.launchpad.net/linaro-linux-baseline/+bug/1258013) which prevents the build to complete. You can either remove CONFIG_DEBUG_INFO=Y in arch/arm64/configs/ranchu_defconfig (I did that), or update your toolchain. Let’s complete the build:

ARCH=arm64 make ranchu_defconfig
ARCH=arm64 make CROSS_COMPILE=aarch64-linux-gnu- -j8

Now you need to build the Android Open Source Project (AOSP). If you haven’t done so, you’ll have to install the repo tool:

mkdir ~/bin
PATH=~/bin:$PATH
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo

Then get AOSP source code (master as below, or l-preview branch):

cd ..
mkdir AOSP
repo init -u https://android.googlesource.com/platform/manifest
repo sync

The last step can take a few hours depending on your internet connection to Google servers.
Now download and apply a patch made by Linaro:

wget http://people.linaro.org/~christoffer.dall/linaro-devices.tar.gz
tar -xvf linaro-devices.tar.gz

Possibly configure git:

git config --global user.email "[email protected]"
git config --global user.name "Your Name"

You need to apply a patch for qemu:

pushd system/core
wget http://people.linaro.org/~alex.bennee/android/android-init-tweaks.diff
patch -p1 < android-init-tweaks.diff 
popd

And build Android L for ARMv8:

source build/envsetup.sh
lunch ranchu-userdebug
m -j8

The last step will again take a while. It took my machine 2 or 3 hours, and the total time was actually a bit more than than as my PC suffered two thermal shutdowns during the build, and I had to restart the build twice. The last time, I decided to underclock my CPU to 3.4 GHz, and the build went through.

The last step before running Android L is to build QEMU:

cd ..
git clone https://git.linaro.org/people/peter.maydell/qemu-arm.git
cd qemu-arm
git checkout ranchu-linaro-beta1
make -j8

Builds should now all be successfully complete. We just need to create some symlinks helping to shorten qemu command line, start the ADB server, and run QEMU:

cd ..
ln -s linux-android/arch/arm64/boot/ ranchu-kernel
ln -s AOSP/out/target/product/ranchu/ ranchu-build
adb start-server
./qemu-arm/aarch64-softmmu/qemu-system-aarch64 -cpu cortex-a57 -machine type=ranchu -m 4096 \
-kernel ./ranchu-kernel/Image -append 'console=ttyAMA0,38400 keep_bootcon' -monitor stdio \
-initrd ranchu-build/ramdisk.img -drive index=2,id=userdata,file=ranchu-build/userdata.img \
-device virtio-blk-device,drive=userdata -device virtio-blk-device,drive=cache \
-drive index=1,id=cache,file=ranchu-build/cache.img -device virtio-blk-device,drive=system \
-drive index=0,id=system,file=ranchu-build/system.img -netdev user,id=mynet \
-device virtio-net-device,netdev=mynet -show-cursor

That’s the output I get:

QEMU 2.0.50 monitor - type 'help' for more information
console on port 5554, ADB on port 5555
VNC server running on `127.0.0.1:5900'

So it’s quite possible there’s a problem with adb, but Google did not help, and I failed to go further. More detailed instructions will soon be posted in Linaro Wiki, so I may be able to find out where I made a mistake once it’s posted.

Finally, start vncviewer to access Android user’s interface:

vncviewer 127.0.0.1:5009

Here’s a screenshot of the “About Device” menu in Android L 64-bit ARM running in QEMU.
Android_64-bit_ARM_Qemu

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter

PiCore 5.3 is a Lightweight Linux Distribution for the Raspberry Pi

May 23rd, 2014 2 comments

My posts providing and give instructions to generate minimal, headless, images for the Raspberry Pi, such as “84 MB Minimal Raspbian ARMHF Image for Raspberry Pi” and “12MB Minimal Image for Raspberry Pi using the Yocto Project” have been relatively popular with people just wanting to have small base to start with the embedded projects. For desktop users, Slitaz for Raspeberry Pi (34MB) is one option, but I’ve just found out there’s also an other alternative with PiCore 5.3, a Linux distribution for the Raspberry Pi based on Tiny Core Linux that’s just 24.7 MB to download.
PiCore_5.3

With an image that size, there’s obviously basically no applications installed, you’ve got flwm window manager,  wbar launcher, a control panel, a terminal, a file editor, and that’s about it. There’s no web browser, nor file manager, and you’d have to install the applications you want by yourself using tce-load package manager. If you only need an headless OS, a base (14MB) and SSH image (18.7) are also available for download.

If you still don’t have a Raspberry Pi, you can also try out PiCore 5.3 in QEMU in a Windows or Linux PC.

In Ubuntu 14.04:

mkdir ~/picore
cd ~/picore
wget http://tinycorelinux.net/5.x/armv6/releases/5.3/piCore-5.3-QEMU.zip
unzip piCore-5.3-QEMU.zip
sudo apt-get install qemu-system-arm
./piCore-start.sh

This will start an headless image login as tc user without password. If you want to use a desktop in qemu, the next step you really be performed with a virtual drive, so that it remains in persistent storage, but I’ve just installed it in the ramdisk for testing purpose:

tce-load -iw TC
startx

The first command line will download an install Tiny Core desktop environment, and startx will start the X server.

Via Liliputing

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter

Fedora 20 “Heisenbug” Release Makes ARM a Primary Architecture

December 18th, 2013 3 comments

Fedora_logoFedora has been supporting ARM architecture for a while now, but it was only as a secondary architecture without official support. With the recent Fedora 20 release, nicknamed “Heisenbug”, the ARM architecture, more exactly ARMv7 hard float and greater, is promoted to a primary architecture meaning ARMv7 will have the same status as x86 and x86_64 architectures with packages officially build and supported by the Fedora community.

What it does not mean however, due to the nature of ARM architecture, is that you can simply download an ISO to install on any ARM platforms, like you would do on an Intel or AMD computer. It’s a little more complicated than that, as it is platform specific, but instructions are available for the Beaglebone Black, Compulab Trimslice, the Wandboard, Calxeda Energycore Midway and Highbank, and Versatile Express in QEMU.

You can download images with MATE, KDE, XFCE, LXDE, SOAS desktops, as well as a minimal image without desktop environment @ http://download.fedoraproject.org/pub/fedora/linux/releases/20/Images/armhfp/

Fedora 20 for ARM includes two types of images:

  • For platforms requiring a VFAT partition – include VFAT in the file name.
  • For platforms that can boot from an EXT3/4 partition

Now all methods includes booting from an external media, usually a (micro) SD card, and network boot is also available.

Beside promotion ARM as a primary, there were also other noticeable features in the release:

  • Cloud and Virtualization Improvements

    • First-Class Cloud Images – Developed by the Fedora Cloud SIG, these images are well-suited to running as guests in public and private clouds like Amazon Web Services (AWS) and OpenStack.
    • VM Snapshot UI with virt-manager – This feature makes taking VM snapshots much easier, by adding a simple, discoverable UI to virt-manager, and includes adding functionality to libvirt to support deleting and rebasing to external snapshots.
    • ARM on x86 with libvirt/virt-manager – This change to Fedora 20 fixes running ARM virtual machines on x86 hosts using standard libvirt tools libvirt virsh, virt-manager and virt-install.
  • Developer Features

    • WildFly 8 – Previously known as JBoss Application Server, WildFly 8 makes it possible to run Java EE 7 applications with significantly higher speed.
    • Ruby on Rails 4.0
  • Desktop Improvements

    • GNOME 3.10 – Includes a new music application (gnome-music), a new maps application (gnome-maps), a revamp for the system status menu, and Zimbra support in Evolution.
    • KDE Plasma Workspaces 4.11 – Includes faster Nepomuk indexing, improvements to Kontact, KScreen integration in KWin, Metalink/HTTP support for KGet, and much more.
  • Maturity and Advanced Features

    • NetworkManager Improvements – Users will now be able to add, edit, delete, activate, and deactivate network connections via the nmcli command line tool, simplifying non-desktop uses of Fedora. NetworkManager is also getting support for bonding interfaces and bridging interfaces.
    • No Default Sendmail, Syslog – Fedora 20 removes the former syslog solution, which is now replaced by systemd journal. Additionally, Sendmail will no longer be installed by default, as typical Fedora installs have no need of a Mail Transfer Agent (MTA).

You can find more details on Fedora 20 release notes.

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter

Linaro 13.08 Release With Linux Kernel 3.11 and Android 4.3

August 30th, 2013 No comments

Linaro 13.08 has been released with Linux Kernel 3.11-rc6 (stating), Kernel 3.10.9 (LSK – beta), and Android 4.3.

This month is the first release based on Android 4.3, which was only pushed to AOSP at the end of last month. I can also see work on new SoCs/hardware this month with Texas Instruments Keystone II ARM Cortex A15+DSP SoC and Fujitsu AA9 board (Which processor?, I could not find out). A lot of work also appears to have gone in OpenEmbedded, further optimizations have gone into NEON optimized AES encryption in OpenSSL, and more. It’s also the first time I can see a Ubuntu Raring engineering build image for HighBank (Calxeda Energycore).

Here are the highlights of this release:

  • Android Engineering

    • Android stack was tuned to achieve 100% CTS pass result on Android 4.3
    • Analyzing the UEFI EDK II boot loader for Android completed, implementation of fastboot application and USB drivers in progress.
  • Builds and Baselines

    • Linaro Stable Kernel (beta) 3.10.9-2013.08 released
    • Linux Linaro 3.11-rc6-2013.08 released (updated arndale/exynos patches from Samsung LT, vexpress64 support (both RTSM and Foundation model), and more)
    • Linaro Toolchain Binaries 2013.08 released (includes latest Linaro GCC 4.8 2013.08 release with Aarch64 improvements)
    • Linaro Android baseline updates:
      • Android Baselines updated to Android 4.3 for all the Engineering and Member builds
      • Android builds updated to build with Linaro GCC 4.8 2013.08 release
      • Helper scripts developed to boot Android over NFS
      • Fujitsu member build is set up with complete CI loop
      • Android NDK (Native Development Kit) based on Linaro Toolchain is delivered
    • Linaro OpenEmbedded baseline updates:
      • Update to Linaro GCC 4.8-2013.08 release
      • Remove meta-openembedded/toolchain layer
      • Add meta-bigendian to default layers
      • Add meta-filesystems layer
      • Whitelist non-commercial license on all images
      • Add Fedora support and clean up dependencies based on Yocto Project Reference Manual
      • New leg-java images have builds of openjdk-7 and openjdk-8
      • Python (2.7.3) available in LAMP image
      • Engineering builds for Networking (big endian and little endian) are built daily
    • Linaro Ubuntu baseline updates:
      • CI loop has been improved: packages can be cross-built and uploaded to repo.linaro.org.
      • Calxeda EnergyCore (Highbank) CI loop is completed
      • Fujitsu member build is set up with complete CI loop
      • package updates: libvirt updated to 1.1.1; openssl (include support for ARM NEON based bit sliced AES in XTS mode, contributed from LEG)
  • Kernel

    • Started making progress on kexec 64 support
    • Posted uprobes32 code for public review
    • Started testing of randconfig on ARM32 to find random build issues
    • Device Tree bindings for Android keyreset merged for 3.12
    • option to log time spent in suspend delivered in 3.11
    • fixed vfat get volume id ioctl and delivered in 3.11 mainline
  • LAVA

    • LAVA Lab – LNG isolated performance test rack starting to come together
    • LAVA Core
      • Improved complete-log view (added links for Line/Section #s)
      • Interactive bootloader commands working on all devices – Added support for Android platforms
      • New action: deploy_linaro_image has been added – Allows provisioning of kernel, ramdisk, dtb, bootloader, firmware, and rootfs using TFTP, adds support for KVM/QEMU…
      • TI Keystone II integrated into LAVA
      • Fujitsu AA9 integrated into LAVA
      • Automated functional LAVA testing – Checks for regressions by running common LAVA jobs
      • Multi-Node support in final days of staging verification.
      • Review feedback and start a plan to revamp the LAVA documentation
      • Added capability to integrate LAVA instance with Google Analytics
    • Linaro Infrastructure
      • Beta staging git services released to improve Linaro git services
      • Output manifest from Android builds now includes repository/branch descriptions.
  • LNG (Linaro Networking Group)

    • The real time patch set for 3.10.6 + rt3 became available and LNG moved its stable kernels to 3.10.6 and 3.10.6 + rt3
    • The CONFIG_NO_HZ_FULL config fragment resulted in bug 1215507 in the preempt rt image, and so NO_HZ has been disabled
    • The CI loop now runs the LTP and LTP real-time regression test suites against the LNG Kernels
    • LNG image based on Linaro OpenEmbedded baseline boots on Arndale
    • Building with the debug flags enabled resulted in a bug 215471 – deadlock when CONFIG_KEYBOARD_GPIO is enabled with debug on.
    • meta-bigendian layer has been merged in Linaro OpenEmbedded baseline
  • Power Management

    • Linaro Powerdebug 0.7.0-2013.08 released (add gpio modification function)
    • Linaro Powertop 2.2-2013.08 released
    • Linaro PM QA 0.4.3-2013.08 released
  • QA

    • Successfully completed 13.08 release testing on Android (linux-linaro and LSK), Ubuntu and OpenEmbedded builds. Test results and bug reports have been shared.
    • Manual PXE on UEFI testing was performed on Versatile Express A9 board.
    • Test planning completed for LSK and Networking Group (LNG)
  • Toolchain

    • Linaro GCC 4.8 2013.08 released with multiple optimizations (shrink-wrapping, tail-calls), improved AArch64 support, and bug fixes
    • Linaro GCC 4.7 2013.08 released, based off the latest GCC 4.7.3+svn201655 release.
    • Updated for GCC and LLVM
  • Virtualization

    • Final version of HYP mode switching support for ARMv7-A is ready and went upstream. (cnxsoft: Not directly related to Linaro work, but you can check the following  presentation for an overview of virtualization on Cortex A15).
    • ARMv7 Guest Migration (same HW/SW) functionality implementation is ready and now is being upstreamed.
    • hackbench is configured in LAVA for testing KVM; also added to CI loop.

Visit https://wiki.linaro.org/Cycles/1308/Release for a list of known issues, and further release details about the LEB and community builds, Android, Kernel, Graphics, Multimedia, Landing Team, Platform, Power management and Toolchain (GCC / Qemu) components.

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter

Linaro 13.06 Release With Linux Kernel 3.10 and Android 4.2.2

June 28th, 2013 No comments

Linaro 13.06 has been released with Linux Kernel 3.10-rc6 and Android 4.2.2. Linux Linaro Stable (LSK) preview is based on kernel 3.9.6.

There seems to have been a lot of activity for the LAVA and Builds and Integration teams, with LAVA support for new SoC such as Huawei K3V2 and Broadcom Capri from 2 companies which have recently joined Linaro as members, and well as continuous build for Linaro Stable Kernel. On the kernel side, more work has been done for multi-platform support (unified kernel), uprobes, eMMC power mamangement, and more.

Here are the highlights of this release:

  • LAVA

    • LAVA Core
      • As part of the effort to improve the developer experience with LAVA, the different client tools were consolidated into a single package, which simplifies the process of updating the tools and makes it easier for the team to provide new features for LAVA users.
      • LAVA now supports KVM devices, which can be used for providing x86 boxes for cross-building and other tasks where there is no need (or no possibility) or using actual ARM devices.
      • Linaro LAVA users can now submit LAVA jobs targeting Calxeda EnergyCore nodes. The devices are available under the “highbank” device type.
      • 5 Arndale Boards are now available in LAVA.
      • Nexus 10, Huawei k3v2, and Broadcom Capri support has been added.
      • UEFI booting supported on b.L fastmodels.
      • Interactive boot commands supported on UEFI fastmodels.
      • Image reports modified to add the ability to chart & visualize filter results
    • LAVA Infrastructure:
      • All Fastmodel server upgrades now controlled by Salt
      • Releases.linaro.org & snapshots.linaro.org authenticate against Linaro OpenID/crowd.
      • Lab Xen Virtual machines now backed up to NAS.
      • LAVA Lab now monitored 24/7 with Nagios.
      • LAVA production server upgraded to Ubuntu 12.04 LTS.
  • Builds and Baselines

    • CI loop for LSK (Linaro Stable Kernel) Android proof of concept kernel based on 3.9.6 kernel version has been setup that includes the b.L IKS and MP patches.
    • Support for CI loop for kernel with Android filesystem has been added to android-build. CI loop has been setup to track the ARM LT integration tree.
    • HiSilicon member build with complete CI loop has been setup and tracks the LT kernel tree.
    • Several critical issues fixed
    • LNG (Linaro Networking Group) kernel tress has been set up. It’s based on 3.8.13 with PREEMPT_RT patchset and Arndale enablement
    • Linaro Toolchain Binaries 2013.05 released.
    • Linux Linaro 3.10-rc6 2013.06 released
      • interactive-gov-updates topic from Viresh Kumar (rebased version of the 13.05 topic)
      • updated Versatile Express patches from ARM LT
      • updated arndale/exynos patches from Samsung LT
      • vexpress64 support (both RTSM and Foundation model)
      • new omap-fixes-13.06 topic: USB host and the on-board ethernet are operational on Panda again
      • config fragments changes
    • Linaro Stable Kernel (preview) 3.9.6 2013.06 released
      • generic vexpress TC2 support from ARM LT (no big.LITTLE MP, IKS, and arm64)
      • MCPM patches for TC2
      • big-LITTLE-MP-master-v16
      • generic IKS support from Nicolas Pitre
      • IKS TC2 patches
      • core config fragments from linux-linaro 13.04 (linaro-base.conf, ubuntu-minimal.conf, big-LITTLE-MP.conf)
      • perf tools: fix to make perf to build in 3.9 kernel
      • builddeb tweaks to enable kernel cross build with deb-pkg, and to ensure that the DT blob is built and packed properly into the kernel image package.
      • android for v3.9 plus Linaro fixes
    • Linaro OpenEmbedded baseline updates:
      • Switched to repo for clone(s)
      • GCC updated to Linaro GCC 4.8 2013.06 release and also the default
      • Kernel updated to linux-linaro 2013.06 release
      • icedtea bumped to version 03b21-2.1.8
      • External toolchain supported; see init-and-build.sh -h
      • xvfb added to LAMP image
      • LNG image added, based on YOCTO
      • LEG JAVA image added
  • Graphics

    • xf86-video-armsoc extended for ST-Ericsson drm driver (Nova)
  • Kernel

    • Port some of the simpler platforms to multiplatform support
      • Integrator PCI DT pulled into ARM SoC tree
      • u300 work pulled into the ARM SoC tree
      • Nomadik clock DT pulled into ARM SoC tree
    • Implement and upstream ARM 32 bit uprobes support
    • Refactor OHCI controller code
      • Create base patch for OHCI to allow loading backends as modules
      • factor out OMAP, OMAP3, at91, SPEAr and s3c2410 backends
    • Improve eMMC Power Management Support
    • Storage EXT4 journal in enhanced area of eMMC
    • Upstream “power: Add option to log time spent in suspend” patch from AOSP
    • Android upstreaming: Ashmem
    • Migrate Android Alarmtimer driver over to using the upstreamed Alarmtimers
  • Power Management

    • Full automation of b.L benchmarking
    • cpu hotplug latency test should be integrated on to scheduler test suite to run on LAVA
    • Linaro PM QA 0.4.2 2013.06 release – bug fix
  • QA

    • Successfully completed 13.06 release testing on Android, Ubuntu and OpenEmbedded builds. Test results and bug reports have been shared.
    • Initial cleanup of bugs in Linaro launchpad projects was completed.
    • Piglit test suite is now run on each Android build for Pandaboard
  • Toolchain

    • Linaro QEMU 1.5.0 2013.06 released, based off upstream (trunk) QEMU 1.5.0
    • Linaro eglibc 2.17 2013.06 released with faster memcpy implementation for hardware with NEON or VFP support.
    • Linaro newlib 2.0.0 2013.06 released with faster memcpy implementation for hardware with NEON or VFP support.
    • Linaro binutils 2.23.2 2013.06 released
    • Linaro GCC 4.7 and 4.8 2013.06 released
  • LEG

    • Linaro UEFI 2013.06 released
    • HugeTLB (aka “large pages”, TLB = “translation lookaside buffer”) and THP (Transparent Huge Pages) support for ARMv8 have been pulled into linux-next
Visit https://wiki.linaro.org/Cycles/1306/Release for a list of known issues and further release details about the LEB and community builds, Android, Kernel, Graphics, Multimedia, Landing Team, Platform, Power management and Toolchain (GCC / Qemu) components.
Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter

Top 10 Posts of 2012 on CNXSoft Blog

December 31st, 2012 5 comments

This is the last day of the year, so it’s probably a good time to look back and see what interested people on this blog. This has been a banner year for low cost ARM devices and boards starting with the Raspberry Pi, then MK802 and the new mini PCs / HDMI TV dongles / PCs-on-a-stick (whatever you want to call them) that came after, always cheaper and faster. Those low cost devices have in turn made people really interested in ARM Linux, and lots of development on those little devices and boards started.

The top 10 posts of 2012, according to page views, reflect just those trends:

  1. 74 USD AllWinner A10 Android 4.0 Mini PC (May 2012) – MK802 started the whole “low cost mini PCs” craze, and drove the most traffic to this blog this year. People got excited about the price, form factor, and the possibility to run both Android and other Linux based operating systems.
  2. MK802 II Mini PC Now Costs as Much as Raspberry Pi Model B. Let’s Compare Them! (December 2012) – This post features the 2 stars of 2012: the Raspberry Pi and MK802 II HDMI TV donglwe (MK802 with 1GB RAM). As both device can now be bought for $35, and allow you to do very similar things, it’s was time for a head-to-head comparison. I’ve just written about it last week, and it got Slashdotted.
  3. WM8850-MID Android 4.0 Tablet Unboxing and Review (June 2012) – At the time, this Eken W70 clone featuring Wondermedia WM8850 Cortex A9 processor was a real bargain for $72 (including shipping). The firmware has a few issues however, and that’s what drove people to this post: looking for solutions.
  4. AllWinner A10/A1X Processor Resources, Development Board and SDK (December 2011) – This post was written just about one year ago, but traffic was steady all year, as people want to find out how to hack their AllWinner A10 tablets, media players and mini PCs.
  5. Mele A1000: AllWinner A10 (Cortex A8) Based Hackable Android STB (March 2012) – The Mele A1000 was my first Android device, and it got popular thanks to its relatively low cost, available ports (3x USB, SATA, VGA, HDMI…), and serial port which made it ideal for development of U-boot and the kernel. I still think it’s a good platform, but since then low cost development boards such as the Cubieboard has made it a little less attractive, and interest has somewhat faded in the last few months.
  6. Valueplus Tizzbird Stick N1: Android 4.0 HDMI/USB Media Player Dongle (March 2012) -  The Tizzbird Stick N1 was one the first mini PCs, and was showcased at CeBit 2012 several months before MK802. Unfortunately, it took many more months to finalize the design, and the product never took off, as other cheaper Telechips TCC892x based mini PCs appeared on the market. The only reason it got traffic is because I mentioned it in the $74 MK802 post at the top of this list.
  7. Mele A1000 Android 2.3 STB Unboxing and Review (April 2012) – In March, I was still waiting for the Raspberry Pi launch, but I noticed Barry Kauler (Puppy Linux) bought the Mele A1000 to keep him busy while he was also waiting for his Pi, and seeing the development around AllWinner A10, I decided to buy one as well. Apparently, I was not the only one interested as many people came here to read my review of this nice hackable media player.
  8. Mele A2000 Android 2.3 Media Player Powered by AllWinner A10 (April 2012) – The Mele A2000 is the little sister of the Mele A1000, which the same hardware, just a difference casing.
  9. Linaro Android Puts Stock Android To Shame on TI Pandaboard (OMAP4430) (June 2012) – Linaro showcased a demo showing an optimized version of Android could deliver twice the performance of stock Android on a particular benchmark running in Pandaboard. Bero commented on my post with details, and the post quickly became viral as developers wanted to give it a try. It turned out the improvement is actually more like 15 to 20%, but this is enough to double the framerate of this benchmark due to Vsync synchronization. It may also work in real games.
  10. Raspberry Pi Emulator in Ubuntu with Qemu (October 2011) – In 2011 and early 2012, the Raspberry Pi foundation promised much in terms of schedule, but initially failed to deliver, and many people get desperate enough to check the instructions to emulate an ARMv6 device and run Debian in QEMU to get started with development, before the Raspberry Pi hardware is available.

That will be the last post of 2012, so the “hardware team” (pictured below) and I would like to wish you a very happy and prosperous new year 2013, which I’m sure will be as exciting as 2012 for Linux/Android gadgets and boards, and we should see the first big.LITTLE processors and corresponding devices, ever cheaper tablets, smartphones and mini PCs, an interesting Intel vs. ARM fight for mobile devices, a proper XBMC ARM set-top box close to $50, new mobile OSes based on Linux (Tizen, Sailfish OS, Firefox OS…), and more…

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter

openSUSE 12.2 for ARM is Now Available for Beagleboard, Pandaboard, Efixa MX and More

November 7th, 2012 1 comment

The first stable release of openSUSE for ARM has just been announced. openSUSE 12.2 for ARM is officially available for the Beagleboard, Beagleboard xM, Pandaboard, Pandaboard ES, Versatile Express (QEMU) and the rootfs can be mounted with chroot, but “best effort’ ports have been made for Calxeda Highbank server, i.MX53 Loco development board, CuBox computer, Origen Board and Efika MX smart top.

Work is also apparently being done on a Raspberry Pi port which should be available for the next release.

openSUSE developers explains that almost all of openSUSE builds runs on these platforms (about 5000 packages). Visit “OpenSUSE on your ARM board” for download links and instructions for a specific ARM board. More details are available on the wiki page. openSUSE has limited resources for ARM development, so If you’d like to help with development (e.g. fixing builds), visit ARM distribution howto page to find out how to get involved.

Since I don’t own any of the supported boards, but still want to give it a try, I’ll use the chroot method in a virtual machine running Ubuntu 12.04. There are two images available:

  • JeOS (Just Enough Operating System) image for a minimal system  (openSUSE-12.2-ARM-JeOS-rootfs-*.tbz )
  • XFCE image for a graphical system (openSUSE-12.2-ARM-XFCE-rootfs-*.tbz)

Let’s go for the XFCE image (743 MB):

mkdir -p ~/openSUSE-ARM/rootfs
cd ~/openSUSE-ARM/
wget http://download.opensuse.org/ports/armv7hl/distribution/12.2-untested/appliances/openSUSE-12.2-ARM-XFCE-rootfs.armv7l-1.12.1-Build1.46.1.tbz
sudo tar xvjf *.tbz -C rootfs

after installation, prepare the environment and run chroot:

sudo mount --bind /proc rootfs/proc
sudo mount --bind /sys rootfs/sys
sudo mount --bind /dev rootfs/dev
sudo mount --bind /dev/pts rootfs/dev/pts
sudo cp /etc/resolv.conf rootfs/etc/
sudo cp /usr/bin/qemu-arm-static rootfs/usr/bin/
sudo chroot rootfs

We can now run some commands to show we run openSUSE (zypper is the equivalent of apt-get in SUSE):

VBOXUBUNTU:/> zypper ref
Retrieving repository 'openSUSE-12.2-ARM-Repo-OSS' metadata...
Building repository 'openSUSE-12.2-ARM-Repo-OSS' cache ...................[done]
Retrieving repository 'openSUSE-12.2-ARM-Updates' metadata ..............[error]
Repository 'openSUSE-12.2-ARM-Updates' is invalid.
[|] Valid metadata not found at specified URL(s)
Please check if the URIs defined for this repository are pointing to a valid repository.
Skipping repository 'openSUSE-12.2-ARM-Updates' because of the above error.
Some of the repositories have not been refreshed because of an error.
VBOXUBUNTU:/> zypper up
Retrieving repository 'openSUSE-12.2-ARM-Updates' metadata ..............[error]
Repository 'openSUSE-12.2-ARM-Updates' is invalid.
[|] Valid metadata not found at specified URL(s)
Please check if the URIs defined for this repository are pointing to a valid repository.
Warning: Disabling repository 'openSUSE-12.2-ARM-Updates' because of the above error.
Loading repository data...
Reading installed packages...

Nothing to do.

VBOXUBUNTU:/> zypper in gcc make SDL-devel
Retrieving repository 'openSUSE-12.2-ARM-Updates' metadata ..............[error]
Repository 'openSUSE-12.2-ARM-Updates' is invalid.
[|] Valid metadata not found at specified URL(s)
Please check if the URIs defined for this repository are pointing to a valid repository.
Warning: Disabling repository 'openSUSE-12.2-ARM-Updates' because of the above error.
Loading repository data...
Reading installed packages...
'SDL-devel' not found in package names. Trying capabilities.
Resolving package dependencies...
The following NEW packages are going to be installed:
alsa-devel fontconfig-devel font-util freetype2-devel gcc gcc47 gccmakedep
glibc-devel imake libdmx-devel libdrm-devel libdrm_nouveau1 libdrm_omap1
...
Mesa-libGLU-devel Mesa-libIndirectGL1 python-xcb-proto-devel site-config
xbitmaps-devel xcb-util-devel xorg-cf-files xorg-sgml-doctools xorg-x11-devel
xorg-x11-proto-devel xorg-x11-util-devel xtrans zlib-devel

119 new packages to install.
Overall download size: 15.9 MiB. After the operation, additional 78.3 MiB will
be used.
Continue? [y/n/?] (y): y
Retrieving package Mesa-libGLESv1_CM1-8.0.4-20.4.2.armv7hl
(1/119), 28.7 KiB ( 29.5 KiB unpacked)
Retrieving: Mesa-libGLESv1_CM1-8.0.4-20.4.2.armv7hl.rpm ......[done (7.5 KiB/s)]
Retrieving package Mesa-libGLESv2-2-8.0.4-20.4.2.armv7hl
(2/119), 27.4 KiB ( 21.5 KiB unpacked)
Retrieving: Mesa-libGLESv2-2-8.0.4-20.4.2.armv7hl.rpm .......[done (29.0 KiB/s)]
Retrieving package Mesa-libIndirectGL1-8.0.4-20.4.2.armv7hl
(3/119), 766.1 KiB ( 3.0 MiB unpacked)
....
Installing: Mesa-devel-8.0.4-20.4.2 ......................................[done]
Installing: xorg-x11-devel-7.6-37.1.2 ....................................[done]
Installing: libSDL-devel-1.2.15-2.1.2 ....................................[done]

There seems to be some problems with some repositories, but it basically works. I’ve tried to run startx, but it does not work within the chroot (probably because Xorg does not work in QEMU yet). It’s also possible to use the JeOS image (minimal) using QEMU emulating a Cortex A9 or A15 versatile express board.

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter