The Current State Of Linux On The Gemini
The Gemini is an interesting beast. A modern revival of the Psion Series 5 personal organiser that, once upon a time, captured so many hearts and minds for its uniquely excellent keyboard. Indeed I still remember getting my hands on the Series 5 of a family member and being in awe of the form factor. This deep appreciation for the product that so heavily inspired the Gemini – though I never owned one myself – instilled in me a desire to get my hands on the Gemini itself. And so I did.
While enthused with the Gemini, I wasn’t about to grant it unconditional love and I must caveat that while I do love this product – insofar as you can truly love an object – I am very critical of some design choices and, I dare say, even somewhat disappointed in the device.
While I’ll leave my disappointment with the hardware itself to a review post, I’m itching to talk about the Gemini so I’m going to talk about Linux.
Linux was always, and likely will always be, second fiddle to Planet Computers but it’s hard to ignore the fact the device was originally pitched as an Android & Linux device. To be fully critical of its software, I must delve into the latter no matter how painful it might be.
At the crux of what you might call The Linux Problem on the Gemini itself is the choice of processor in the handheld. The MediaTek X25/X27 do not have what is known as “upstream” Linux support. This is where drivers for specific features/peripherals of the CPU, and support for the CPU in general, are submitted “upstream” to Linus and friends for inclusion in, and maintenance alongside, present and future kernel versions. Instead a release of the Linux kernel must be manually maintained, pinned at whatever historic version – with all its potential bugs and security issues – happens to be compatible with the software required to operate the device. Maintaining a fork of the kernel in this fashion can be extremely labour intensive, and any new features or bugfixes must be added either by copying the newer code into the older kernel release, or by dragging the required drivers kicking and screaming onto a newer kernel release. This is a monumental waste of developer time and effort which should be spent getting things to work well, not getting things to work at all.
Being saddled with an older kernel release has other issues, too. A given Linux distribution will tend to expect a certain kernel version, or set of versions, that contain certain features. While in many cases the package and configuration choices that comprise a given distribution can be smushed together with whatever kernel happens to work, this places yet another maintenance burden on what few developers may be devoting their time to the Gemini. By contrast if a given release just so happens to have support for the Gemini because the drivers were submitted upstream, it would be much easier to get up and running and to keep up to date.
And this is just the tip of the iceberg. It’s not uncommon for vendors like MediaTek to keep a tight lid on their peripherals and release no source drivers whatsoever. The lack of any for the GPU – for example – means that GPU assisted video decoding and desktop compositing may be anywhere from a long way off on the Gemini, to very simply impossible. There are always workarounds for these issues, but workarounds require maintenance and this again directs developer time from the problem of making things work well right back at the problem of getting the darn thing to work at all.
This is the very conundrum that’s facing the Gemini right now. Rather than seeing a multitude of different Linux distributions with different things to offer, we’re seeing one chain of “Technical Previews” where developers are struggling to get the device running at all and devoting no time to getting it to run well. This is abundantly clear just from running Debian Linux on the Gemini and attempting do so something as simple as an “apt get update && apt get upgrade.” Errors ensure and – quite frankly – that’s where I uninstalled Linux and switched back to pure Android on the Gemini I’m testing.
Aside- holy smoke I’m getting pretty fast at typing on this thing already!
Before my unceremonious ragequit of Linux I did give it a cursory try and it does show promise. I really believe a GNU/Linux-based OS (pipe down about Android at the back there) could be an amazing experience on the Gemini and I think the true keyboard warrior would find a terminal-based tmux session on a WiFi-only Gemini very comfortable and close to their ThinkPad setup in a smaller, lighter package.
Perhaps the most disconcerting thing about Linux was the juxtaposition of a desktop GUI with what’s very much a mobile, touch orientated device. My finger kept instinctively reaching for a nub-mouse that’s simply not there (I run Linux on a little VAIO P). Jabbing at the capacative touchscreen with no pointing device simply doesn’t cut it, but a Bluetooth mouse might make all the difference. Does anyone else want a tiny nub mouse on a little USB-C dongle?
Linux on the Gemini was an implicit promise made to buyers when the device launched. While Planet Computers may have been intending to lean heavily on an enthusiast developer community to make this happen, the onus is still upon them to competently lead the charge. So far their output has been lacklustre but I’m intimately aware just how much work is involved with tweaking, building and shipping a custom Linux-based OS. If Linux is to happen and happen well, there are many boxes left to be ticked. If you’re intent on using Linux and you want to hit the ground running and aren’t interested in the journey then you may find – and I know others have – that your Gemini ends up gathering dust.
If you’re willing to stay the course then I have no doubt that it’s possible for the Gemini to end up with a very capable, finely tuned Linux distribution and perhaps even upstreamed drivers that enable a whole torrent of distributions. I’ve seen it happen on the Pi; which went from borderline unusable to regular, up to date kernel releases and myriad alternate distributions. It will, given time, happen with the Gemini.
There’s light at the end of the tunnel, there are currently documented efforts to mainline support for the Gemini, albeit they have not been updated (at time of writing) in many months and a thread on OESF about upstreaming Gemini support that seems to have petered out. Gemini Planet have observed what seems to be a lull in developer buzz around the device and this all paints a picture that suggests Planet Computers need- as I said- to lead the charge and drum up some developer enthusiasm in their device. Perhaps new owners enthused by the recently announced Cosmo Communicator will help surmount this problem.