Sachin Patil

Sachin Patil

Free Software Developer | GNU Emacs Hacker

Hack your wrist
Published on Feb 10, 2017 by Sachin.

AsteroidOS is an open-source operating system for smartwatches. It’s based on Qt & QML with OpenEmbedded GNU/Linux distribution.


Eventually I was able to run AsteroidOS on my ZenWatch2. It has been an amazing experience to run GNU/Linux distribution on a watch. The user-interface is smooth and covers most features that are needed for a smart-watch.


Figure 1: Drawer


Since few days I was planning to install AsteroidOS. My initial attempts failed with my watch refused to boot up with AsteroidOS. This is when I figured out that initramfs is not able to find /sdcard/linux/rootfs.ext2 on Zenwatch-2 HyperCharge model(WI501Q). This was brought up by bencord0 on #asteroid channel

psachin	bencord0: All the files are downloaded from official page and are intact
psachin	bencord0: Do you want to look at the output of above command?
bencord0	Sure
psachin	bencord0: < waiting for any device >
psachin	downloading 'boot.img'...
psachin	OKAY [  0.336s]
psachin	booting...
psachin	OKAY [  0.506s]
psachin	finished. total time: 0.842s
psachin	bencord0: Nothing unusual
bencord0	The initramfs will reboot back to android it it cant find the rootfs
bencord0	Did you adb push the rootfs to /sdcard/linux/rootfs.ext2 ?
psachin	bencord0: Yes. adb push -p asteroid-image-sparrow.ext2 /sdcard/linux/rootfs.ext2
psachin	[100%] /sdcard/linux/rootfs.ext2

I tried to compile few builds to verify this using bencord0’s suggestions

bencord0	https://github.com/AsteroidOS/meta-sparrow-hybris/blob/master/recipes-core/initrdscripts/initramfs-boot-android/init.sh is the init script in the initramfs. Stick an infinite loop near the top, run the build and boot that. If it stays blank, then we will have learned something.

which yield similar results and failed to boot AsteroidOS

psachin	bencord0: even with infinite loop it booted with android-wear

I also tried few AOSP branch which gave same results

psachin	kido: Didn't get you. What branch? android-msm-sparrow-3.10-marshmallow-mr1-wear-release? with commit: 8ffc85d0e5dba485a52a4405a21d3a516f969420. Do you want me to test the patch manually?
@kido	this branch is marshmallow, maybe there is a newer branch for lollypop or whatever

I waited for few weeks and saw new commit by Florent which I decided to try. I pulled and compiled latest changes which worked.

User Interface

Asteroid has sufficient features to get started. The UI is smooth and can be tweaked as per need. Within settings it has Time, Date, Language, Bluetooth, Brightness, Wallpaper, Watchface, USB, Poweroff, Reboot & About options.


Figure 2: Settings

I personally find adjusting date/time much more convenient that Android Wear.

Set date

Figure 3: Set date

User has option to set USB mode to adb, Developer, Mass storage or MTP mode.

ADB mode

Figure 4: ADB mode

Using app switcher, one can switch between recently opened apps easily.

Opened apps

Figure 5: Opened apps

AsteroidOS has few Watchface but they match Asteroid theme and I find them sober.

Default Watch face

Figure 6: Default Watch face

Finally it has wallpapers which can be applied over a Watchface.


Figure 7: Watchface

Finally it has wallpapers which can be applied over a Watchface.

Install AsteroidOS

AsteroidOS Alpha 1.0 can be installed on four smartwatches

  • LG G Watch(dory)
  • LG G Watch Urbane(bass)
  • Sony Smartwatch 3(tetra)
  • Asus Zenwatch 2(sparrow)

Build AsteroidOS

One can build AsteroidOS following wiki page. On Fedora-25, one need to install following dependencies

1: dnf install -y git perl-bignum git patch chrpath gawk diffstat texinfo libaccounts-glib libaccounts-glib-devel
2: dnf groupinstall -y "C Development Tools and Libraries"

Unofficial build

AsteroidOS unlocks new doors for Smartwatch Operating system with end-users no longer have to only depend on Android Wear. AsteroidOS community is very active and responsive. I encourage users to try out AsteroidOS on smartwatch and give feedback to AsteroidOS community.