Pinterest Stumbleupon Whatsapp
Ads by Google

Canonical, the company behind Ubuntu, is hard at work on Ubuntu Touch – an operating system aimed for smartphones and tablets. They’ve even released some images that can be installed How To Install The Ubuntu Touch Preview On Your Nexus Android Device How To Install The Ubuntu Touch Preview On Your Nexus Android Device Ubuntu is developing on a touch-focused interface for smartphones and tablets, with plans to ship Ubuntu smartphones in 2014. If you’re interested in trying it right now, there’s good news: You can install the preview... Read More on the Nexus 4, the Nexus 7 (2013 WiFi only), and the Nexus 10. There’s also unofficial support for the Nexus 5, which we reviewed Google Nexus 5 Review and Giveaway Google Nexus 5 Review and Giveaway Approximately a year after Google released the Nexus 4, the company behind Android has come out with its successor -- the Nexus 5. Read More , and Nexus 7 (2013 WiFi+LTE).

If you don’t have any of these devices, don’t worry – you can still try out the mobile operating system using an emulator on your Ubuntu computer.

What’s Ubuntu Touch?

Ubuntu Touch received plenty of publicity when Ubuntu was ran an IndieGoGo fundraising campaign for the Ubuntu Edge phone – a super-smartphone designed to dual-boot with Ubuntu Touch and Android, and be able to run desktop applications when it was plugged into a dock. Although the Edge seemed like the phone to own, the campaign ultimately failed. The operating system, however, lives on.


Ubuntu Touch comes with its completely unique interface, where you can access applications, menus, and settings by swiping from one of the four screen edges. This video can explain the interface much better, and why it’s so interesting.

What I like is that the operating system is based on Linux and it uses natively compiled code. To compare: iOS uses a modified version of Mac OS X with natively compiled code, and Android uses Linux with Java-run code.

Getting the Emulator

ubuntutouch_installation
Getting the Ubuntu Touch emulator onto your Ubuntu system is very simple if you’re running the latest release, 14.04. To get it, just run the command sudo apt-get install ubuntu-emulator.

Ads by Google

Yes, that’s it. This will install the ARM-based emulator for Ubuntu Touch. You can run the command sudo ubuntu-emulator create myinstance to create an instance, and then run the command ubuntu-emulator run myinstance to start it.

However, most people will experience extremely poor performance with the ARM-based emulator. Instead, you’ll want to use the x86-based emulator for improved performance, since that’s the same architecture that your computer uses.

To get the x86-based emulator, run this command: wget http://people.canonical.com/~rsalveti/aosp/generic_x86/emulator-x86.tar.bz2 -O /tmp/emulator-x86.tar.bz2 && tar -jxvf /tmp/emulator-x86.tar.bz2 && cd emulator-x86 && ./build-emulator-sdcard.sh. It will download the emulator and run the script that will make it ready for use. To run the emulator, just run the command ./run-emulator.sh.

Running It

Once you’ve done this, you’ll want to wait quite a while before the emulator will actually run. You’ll see the “virtual phone” pretty early on, but it’ll continue to set things up for several minutes after the phone appears. The amount of time needed for this is much longer with the ARM emulator, but just roughly a couple minutes with the x86 emulator. However, eventually it will appear and you can start to play around with it.

ubuntutouch_game
Performance with the x86 emulator should be excellent — with my 8-core CPU, I was getting a buttery-smooth experience. Everything should work, including apps that require using the Internet. I was even able to play a game at excellent framerates, but it was difficult to control since using a mouse to emulate touch is much more difficult.

I do have one tip concerning the use of edges on the phone, since they are arguably the most important piece of the interface. Whenever you want to simulate a swipe from one of the edges, start clicking just inside of the screen (not just outside of it), and then drag in the direction needed. So, for the left edge you would start just barely inside of the left edge, click, and drag to the right before letting go.

ubuntutouch_about
The only thing that doesn’t seem to work is checking for updates. This means that if you want to update to a newer image later on, you’ll need to run cd emulator-x86 && ./build-emulator-sdcard.sh again before running the command to launch the emulator.

Conclusion

Playing around with Ubuntu Touch should be pretty fun. I’m very excited to see how it will perform when it lands on more devices, but for now it’s nice to try things out. If you’re looking for other mobile operating system emulators, there are six different ones Try Before You Buy: 6 Emulators For Test-Driving Mobile Phones Try Before You Buy: 6 Emulators For Test-Driving Mobile Phones It’s been about one year since I purchased my first smartphone. I remember having such a difficult time deciding which phone I wanted. Back then, I had no idea that mobile phone emulators existed. And... Read More we recommend trying out, including Android an iOS.

Where do you see Ubuntu Touch going? Could it compete with the likes of Android and iOS? Let us know in the comments!

  1. Ben L
    May 14, 2014 at 1:25 am

    I'm having troubles.

    Since I can't post pictures, here (copy and pasted directly from the Terminal): wget http://people.canonical.com/~/aosp/generic_x86/emulator-x86.tar.bz2 -O /tmp/emulator-x86.tar.bz2 && tar -jxvf /tmp/emulator-x86.tar.bz2 && cd emulator-x86 && ./build-emulator-sdcard.sh
    --2014-05-13 18:59:19-- http://people.canonical.com/~rsalveti/aosp/generic_x86/emulator-x86.tar.bz2
    Resolving people.canonical.com (people.canonical.com)... 91.189.89.62
    Connecting to people.canonical.com (people.canonical.com)|91.189.89.62|:80... connected.
    HTTP request sent, awaiting response... 200 OK
    Length: 86092922 (82M) [application/x-bzip2]
    Saving to: ‘/tmp/emulator-x86.tar.bz2’

    100%[======================================>] 86,092,922 472KB/s in 2m 33s

    2014-05-13 19:01:53 (551 KB/s) - ‘/tmp/emulator-x86.tar.bz2’ saved [86092922/86092922]

    emulator-x86/
    emulator-x86/build-emulator-sdcard.sh
    emulator-x86/out/
    emulator-x86/out/target/
    emulator-x86/out/target/product/
    emulator-x86/out/target/product/generic_x86/
    emulator-x86/out/target/product/generic_x86/userdata.img
    emulator-x86/out/target/product/generic_x86/system.img
    emulator-x86/out/target/product/generic_x86/ramdisk.img
    emulator-x86/out/target/product/generic_x86/hardware-qemu.ini
    emulator-x86/out/target/product/generic_x86/cache.img
    emulator-x86/out/target/product/generic_x86/ubuntu/
    emulator-x86/out/target/product/generic_x86/ubuntu/kernel/
    emulator-x86/out/target/product/generic_x86/ubuntu/kernel/vmlinuz
    emulator-x86/out/target/product/generic_x86/system/
    emulator-x86/out/target/product/generic_x86/system/build.prop
    emulator-x86/out/host/
    emulator-x86/out/host/linux-x86/
    emulator-x86/out/host/linux-x86/usr/
    emulator-x86/out/host/linux-x86/usr/share/
    emulator-x86/out/host/linux-x86/usr/share/pc-bios/
    emulator-x86/out/host/linux-x86/usr/share/pc-bios/bios.bin
    emulator-x86/out/host/linux-x86/usr/share/pc-bios/vgabios-cirrus.bin
    emulator-x86/out/host/linux-x86/lib/
    emulator-x86/out/host/linux-x86/lib/libz-host.so
    emulator-x86/out/host/linux-x86/lib/libext2_e2p_host.so
    emulator-x86/out/host/linux-x86/lib/liblog.so
    emulator-x86/out/host/linux-x86/lib/libsqlite.so
    emulator-x86/out/host/linux-x86/lib/libicuuc-host.so
    emulator-x86/out/host/linux-x86/lib/libssl-host.so
    emulator-x86/out/host/linux-x86/lib/libGLES_CM_translator.so
    emulator-x86/out/host/linux-x86/lib/libcrypto-host.so
    emulator-x86/out/host/linux-x86/lib/libEGL_translator.so
    emulator-x86/out/host/linux-x86/lib/libOpenglRender.so
    emulator-x86/out/host/linux-x86/lib/libext2_com_err_host.so
    emulator-x86/out/host/linux-x86/lib/libGLES_V2_translator.so
    emulator-x86/out/host/linux-x86/lib/libext2fs_host.so
    emulator-x86/out/host/linux-x86/lib/libicui18n-host.so
    emulator-x86/out/host/linux-x86/lib/libext2_profile_host.so
    emulator-x86/out/host/linux-x86/lib/libext2_uuid_host.so
    emulator-x86/out/host/linux-x86/lib/libexpat-host.so
    emulator-x86/out/host/linux-x86/lib/libext2_blkid_host.so
    emulator-x86/out/host/linux-x86/bin/
    emulator-x86/out/host/linux-x86/bin/imgdiff
    emulator-x86/out/host/linux-x86/bin/emulator64-x86
    emulator-x86/out/host/linux-x86/bin/checkfc
    emulator-x86/out/host/linux-x86/bin/mkuserimg.sh
    emulator-x86/out/host/linux-x86/bin/make_ext4fs
    emulator-x86/out/host/linux-x86/bin/fastboot
    emulator-x86/out/host/linux-x86/bin/checkseapp
    emulator-x86/out/host/linux-x86/bin/e2fsck
    emulator-x86/out/host/linux-x86/bin/mkbootimg
    emulator-x86/out/host/linux-x86/bin/emulator64-arm
    emulator-x86/out/host/linux-x86/bin/mkbootfs
    emulator-x86/out/host/linux-x86/bin/checkpolicy
    emulator-x86/out/host/linux-x86/bin/aprotoc
    emulator-x86/out/host/linux-x86/bin/emulator-arm
    emulator-x86/out/host/linux-x86/bin/minigzip
    emulator-x86/out/host/linux-x86/bin/adb
    emulator-x86/out/host/linux-x86/bin/emulator
    emulator-x86/out/host/linux-x86/bin/emulator-x86
    emulator-x86/out/host/linux-x86/bin/insertkeys.py
    emulator-x86/out/host/linux-x86/bin/simg2img
    emulator-x86/out/host/linux-x86/bin/acp
    emulator-x86/development/
    emulator-x86/development/tools/
    emulator-x86/development/tools/emulator/
    emulator-x86/development/tools/emulator/skins/
    emulator-x86/development/tools/emulator/skins/EDGE/
    emulator-x86/development/tools/emulator/skins/EDGE/hardware.ini
    emulator-x86/development/tools/emulator/skins/EDGE/edge-land.png
    emulator-x86/development/tools/emulator/skins/EDGE/edge.png
    emulator-x86/development/tools/emulator/skins/EDGE/layout
    emulator-x86/development/tools/emulator/skins/HVGA/
    emulator-x86/development/tools/emulator/skins/HVGA/hardware.ini
    emulator-x86/run-emulator.sh
    + export PATH=out/host/linux-x86/bin/:/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
    + OUT=out/target/product/generic_x86/
    + [ ! -e out/target/product/generic_x86//ubuntu-rootfs.tar.xz ]
    + sudo umount out/target/product/generic_x86//mnt
    [sudo] password for ben:
    + dd if=/dev/zero of=out/target/product/generic_x86//ubuntu-system.img bs=1 count=0 seek=3G
    0+0 records in
    0+0 records out
    0 bytes (0 B) copied, 0.000399798 s, 0.0 kB/s
    + mkfs.ext4 -F -L UBUNTU out/target/product/generic_x86//ubuntu-system.img
    mke2fs 1.42.8 (20-Jun-2013)
    Discarding device blocks: done
    Filesystem label=UBUNTU
    OS type: Linux
    Block size=4096 (log=2)
    Fragment size=4096 (log=2)
    Stride=0 blocks, Stripe width=0 blocks
    196608 inodes, 786432 blocks
    39321 blocks (5.00%) reserved for the super user
    First data block=0
    Maximum filesystem blocks=805306368
    24 block groups
    32768 blocks per group, 32768 fragments per group
    8192 inodes per group
    Superblock backups stored on blocks:
    32768, 98304, 163840, 229376, 294912

    Allocating group tables: done
    Writing inode tables: done
    Creating journal (16384 blocks): done
    Writing superblocks and filesystem accounting information: done

    + dd if=/dev/zero of=out/target/product/generic_x86//sdcard.img bs=1 count=0 seek=4G
    0+0 records in
    0+0 records out
    0 bytes (0 B) copied, 0.000435772 s, 0.0 kB/s
    + mkfs.ext4 -F -L USERDATA out/target/product/generic_x86//sdcard.img
    mke2fs 1.42.8 (20-Jun-2013)
    Discarding device blocks: done
    Filesystem label=USERDATA
    OS type: Linux
    Block size=4096 (log=2)
    Fragment size=4096 (log=2)
    Stride=0 blocks, Stripe width=0 blocks
    262144 inodes, 1048576 blocks
    52428 blocks (5.00%) reserved for the super user
    First data block=0
    Maximum filesystem blocks=1073741824
    32 block groups
    32768 blocks per group, 32768 fragments per group
    8192 inodes per group
    Superblock backups stored on blocks:
    32768, 98304, 163840, 229376, 294912, 819200, 884736

    Allocating group tables: done
    Writing inode tables: done
    Creating journal (32768 blocks): done
    Writing superblocks and filesystem accounting information: done

    + mkdir -p out/target/product/generic_x86//mnt
    + sudo mount out/target/product/generic_x86//ubuntu-system.img out/target/product/generic_x86//mnt
    + sudo tar --numeric-owner -xf out/target/product/generic_x86//ubuntu-rootfs.tar.xz -C out/target/product/generic_x86//mnt/
    + sudo mv out/target/product/generic_x86//mnt/system out/target/product/generic_x86//mnt/system-unpack
    + sudo mv out/target/product/generic_x86//mnt/system-unpack/android out/target/product/generic_x86//mnt/system-unpack/bin out/target/product/generic_x86//mnt/system-unpack/boot out/target/product/generic_x86//mnt/system-unpack/cache out/target/product/generic_x86//mnt/system-unpack/data out/target/product/generic_x86//mnt/system-unpack/dev out/target/product/generic_x86//mnt/system-unpack/etc out/target/product/generic_x86//mnt/system-unpack/factory out/target/product/generic_x86//mnt/system-unpack/firmware out/target/product/generic_x86//mnt/system-unpack/home out/target/product/generic_x86//mnt/system-unpack/lib out/target/product/generic_x86//mnt/system-unpack/media out/target/product/generic_x86//mnt/system-unpack/mnt out/target/product/generic_x86//mnt/system-unpack/opt out/target/product/generic_x86//mnt/system-unpack/persist out/target/product/generic_x86//mnt/system-unpack/proc out/target/product/generic_x86//mnt/system-unpack/root out/target/product/generic_x86//mnt/system-unpack/run out/target/product/generic_x86//mnt/system-unpack/sbin out/target/product/generic_x86//mnt/system-unpack/srv out/target/product/generic_x86//mnt/system-unpack/sys out/target/product/generic_x86//mnt/system-unpack/system out/target/product/generic_x86//mnt/system-unpack/tmp out/target/product/generic_x86//mnt/system-unpack/userdata out/target/product/generic_x86//mnt/system-unpack/usr out/target/product/generic_x86//mnt/system-unpack/var out/target/product/generic_x86//mnt/system-unpack/vendor out/target/product/generic_x86//mnt/
    + sudo rmdir out/target/product/generic_x86//mnt/system-unpack
    + sudo sh -c echo manual > out/target/product/generic_x86//mnt/etc/init/powerd.override
    + sudo rm out/target/product/generic_x86//mnt/etc/init/ssh.override
    + sudo sh -c cat < out/target/product/generic_x86//mnt/etc/network/interfaces
    # interfaces(5) file used by ifup(8) and ifdown(8)
    auto lo
    iface lo inet loopback

    auto eth0
    iface eth0 inet static
    address 10.0.2.15
    netmask 255.255.255.0
    gateway 10.0.2.2
    dns-nameservers 10.0.2.3
    EOF

    + sudo mkdir out/target/product/generic_x86//mnt/custom
    + sudo sh -c echo custom.location.fake=true > out/target/product/generic_x86//mnt/custom/custom.prop
    + sudo sh -c cat < out/target/product/generic_x86//mnt/etc/profile.d/hud-service.sh
    export HUD_DISABLE_VOICE=1
    EOF

    + sudo sh -c echo mir > out/target/product/generic_x86//mnt/home/phablet/.display-mir
    + simg2img out/target/product/generic_x86//system.img out/target/product/generic_x86//system.raw
    ./build-emulator-sdcard.sh: 79: ./build-emulator-sdcard.sh: simg2img: not found
    ben@ben-ThinkPad-T420:~/emulator-x86$ sudo ./run-emulator.sh
    ./run-emulator.sh: 41: exec: emulator: not found

    • Tina S
      May 14, 2014 at 10:00 am

      Ben, you have a better chance of receiving support by posting this issue on MakeUseOf Answers.

  2. Don Gateley
    May 13, 2014 at 7:35 pm

    Very limited number of devices supported and expensive ones at that. Nexus 4, Nexus 7 and Nexus 10. To get people to try this they need to port to and support something inexpensive to purchase.

    I momentarily considered getting a phone for this until I checked the cost of the options.

  3. Ryan
    May 13, 2014 at 4:14 am

    "Performance with the x86 emulator should be excellent — with my 8-core CPU, I was getting a buttery-smooth experience." umm...so everyone has 8 core CPUs now?

    • Danny S
      May 13, 2014 at 1:39 pm

      Haha definitely not! I also use my desktop for gaming, so I had picked up the 8-core AMD FX-8350 for it.

Leave a Reply

Your email address will not be published. Required fields are marked *