Category Archives: Uncategorized

Cheerson CX-10 quadcopter

The Cheerson CX-10 is quite a cool little quadcopter. When I say little, it really is tiny, about 1.5″ across. They are very cheap — I got one for £18.69 including tax & delivery.

According to this interesting teardown, inside it has an ARM Cortex-M0-based SoC, ie. a small 32 bit processor. Incredible really.

IMG_20150210_205912511IMG_20150210_205912111IMG_20150210_205911908

Leave a comment

Filed under Uncategorized

Linaro ARM-64 development board

https://www.96boards.org/

The 64 bit board uses an 8-core SoC manufactured by HiSilicon. Unfortunately RAM is very limited (1 GB), although understandable given the very low price point.

Update: Greg K-H has photos. I’m going to hold off on this one because I know there will be many more 64 bit ARM boards coming this year.

2 Comments

Filed under Uncategorized

Half-baked ideas: qemu -M container

For more half-baked ideas, see the ideas tag.

Containers offer a way to do limited virtualization with fewer resources. But a lot of people have belatedly realized that containers aren’t secure, and so there’s a trend for putting containers into real virtual machines.

Unfortunately qemu is not very well suited to just running a single instance of the Linux kernel, as we in the libguestfs community have long known. There are at least a couple of problems:

  1. You have to allocate a fixed amount of RAM to the VM. This is basically a guess. Do you guess too large and have memory wasted in guest kernel structures, or do you guess too small and have the VM fail at random?
  2. There’s a large amount of overhead — firmware, legacy device emulation and other nonsense — which is essentially irrelevant to the special case of running a Linux appliance in a VM.

Here’s the half-baked idea: Let’s make a qemu “container mode/machine” which is better for this one task.

Unlike other proposals in this area, I’m not suggesting that we throw away or rewrite qemu. That’s stupid, as qemu gives us lots of useful abilities.

Instead the right way to do this is to implement a special virtio-ram device where the guest kernel can start off with a very tiny amount of RAM and request more memory on demand. And an empty machine type which is just for running appliances (qemu on ARM already has this: mach-virt).

Libguestfs people and container people, all happy. What’s not to like?

1 Comment

Filed under Uncategorized

Nexus 9 ssh on the go

image

The Nexus 9 is an odd, compromised tablet, and way too expensive, but combined with the folio keyboard & pocketwifi it makes a nice ssh terminal for use on the road.

Various ssh apps like ConnectBot have terrible external keyboard support. So I compiled a static dropbear binary and static busybox, and I’m using those with Android Terminal Emulator.

The tablet has a 64 bit ARM processor (actually it’s way stranger than that – it uses a proprietary VLIW core with Transmeta-style code morphing in software). I used my AArch64 Fedora machine to compile the static binaries which I copied across.

I changed the default shell to busybox ash and added a bunch of start-up scripts to make Android more bearable.
It all works except nsswitch (user & DNS resolution) because of glibc static brokenness.

3 Comments

January 8, 2015 · 2:07 am

OpenStack on aarch64

OpenStack can now be installed using Fedora 21 or Rawhide, on aarch64 hardware.

You have to use the packstack --allinone install method. Ceilometer doesn’t work because we don’t have mongodb on aarch64 yet, and there are a selection of bugs which you need to work around until they are fixed[1].

The big problem is I don’t have a convenient set of aarch64 cloud images to run on it yet :-(

Happy holidays everyone :-)

[1] 1170646 1174795 1174805 1175419 1175428 1175450 1175460 1175472

Leave a comment

Filed under Uncategorized

Fedora 21 is out …

… and there is a virt-builder image available. Get a Fedora 21 VM image in a few seconds:

$ virt-builder fedora-21
[   2.0] Downloading: http://libguestfs.org/download/builder/fedora-21.xz
[   2.0] Planning how to build this image
[   2.0] Uncompressing
[  14.0] Opening the new disk
[  28.0] Setting a random seed
[  28.0] Setting passwords
virt-builder: Setting random password of root to thu1hKRoXBxBigfC
[  29.0] Finishing off

Leave a comment

Filed under Uncategorized

Tip: Enable minidumps in a Windows guest

You can use virt-win-reg to enable minidumps in Windows guests. Quite easily as it happens.

First prepare a file crashcontrol.reg containing:

; NB: This assumes CurrentControlSet == ControlSet001
; See "CurrentControlSet etc." in virt-win-reg(1)

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\CrashControl]
"AutoReboot"=dword:00000000
"CrashDumpEnabled"=dword:00000003
"DumpFile"=str(2):"%SystemRoot%\MEMORY.DMP"
"LogEvent"=dword:00000001
"MinidumpDir"=str(2):"%SystemRoot%\Minidump"
"MinidumpsCount"=dword:00000032
"Overwrite"=dword:00000001

The key fields are AutoReboot, which you probably want to set to 0 to stop the guest from automatically rebooting when it gets a BSOD, and CrashDumpEnabled for which you can read the docs here.

Then import this into the guest (which must not be running):

$ virt-win-reg --merge GuestName crashcontrol.reg

Leave a comment

Filed under Uncategorized