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
Community
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.
Figure 3: Set date
User has option to set USB mode to adb, Developer, Mass storage or MTP mode.
Figure 4: ADB mode
Using app switcher, one can switch between recently opened apps easily.
Figure 5: Opened apps
AsteroidOS has few Watchface but they match Asteroid theme and I find them sober.
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
- Asus ZenWatch2: asteriodOS-alpha-1.0 (Compiled on: Feb 18, 2017)
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.