Working from a Nvidia Shield K1 Tablet

Even if the dream to have an Ubuntu phone fizzled out last April, my hopes to keep on miniaturizing my work machine are as lively as ever. After spending a decade working on Desktop computers and a decade spent on Laptops, I think the time is right for another paradigm shift. It is with these things in mind that I set on a mission to try and do all of my work (for at least 2 weeks) from an 8-inch device that weighs just 390g: the Nvidia Shield K1.

This 2015 device used to be the most powerful portable gaming system before the Nintendo Switch snatched the title earlier this year. It’s an Android device with a conspicuous Homebrew scene around it, so I was glad to hear that several methods of installing Linux on it already existed.

I should first clarify that I was very impressed with the snappiness of its natural Android environment and for a few hours I pondered sticking to it and use it for work. I know that for many professions working directly on Android or iOS tablet is already a reality, especially for people working in sales and real estates. But can an Android device entirely replace my stack? Nowadays my activities require a combination of communication (check), loads of browsing and Jupyter notebooks (check) and a little bit of software development (fail). When I realized that performing something as trivial as popping up the Developers Tools from Chrome was impossible on Android, I knew that I had to try and create a full Desktop environment on the device. After all, a quad core machine with a 192 core GPU should be able to sustain that load. The only limiting factor I could see was the RAM, a mere 2GB.

That turned out to be a double-edged sword, as I will detail in future posts.

Installing a boot-loader that would enable me to fire up either Android or Ubuntu at will turned out to be much easier than I expected. The XDA developers forum has a very long thread on the subject. Summing up, Multi-Rom is installed on the unlocked device, then a modified version of Linux for Tegra by Nvidia is installed via TWRP. The only thing of notice here, but it’s already clear if you RTFM, is that the Shield K1 needs to be downgraded to its original firmware in order to proceed with the installation.

The other, final compromise is that not all devices on the K1 running Linux work perfectly. Luckily, that was not a deal breaker for me, but if your work depends on using a webcam, the accelerometer or the GPS, then you may want to stick to Android.

My idea was to use the device as a regular Android tablet for leisure (consuming mode) and as a Linux desktop for work (producing mode). Only minimal adjustments were necessary to make it happen. With a mini-HDMI to HDMI cable, a Bluetooth mouse and keyboard, the only thing missing was an update to bluez version 5 since the ROM readily available is for Ubuntu 14.04.

With that straightened out, the basic setup is complete.

Some improvements and other considerations:

  • I’m not sure, but I think my headphone microphone is disabled by default. After configuring amixer, everything worked fine.

amixer cset name=”Stereo ADC MIXL ADC2 Switch” 0
amixer cset name=”Stereo ADC MIXR ADC2 Switch” 0
amixer cset name=”Int Mic Switch” 0
amixer cset name=”ADC Capture Switch” 1
amixer cset name=”RECMIXL BST1 Switch” 0
amixer cset name=”RECMIXR BST1 Switch” 0
amixer cset name=”RECMIXL BST2 Switch” 1
amixer cset name=”RECMIXR BST2 Switch” 1
amixer cset name=”Stereo ADC L1 Mux” “ADC”
amixer cset name=”Stereo ADC R1 Mux” “ADC”
amixer cset name=”Stereo ADC MIXL ADC1 Switch” 1
amixer cset name=”Stereo ADC MIXR ADC1 Switch” 1
amixer cset name=”Stereo ADC MIXL ADC2 Switch” 0
amixer cset name=”Stereo ADC MIXR ADC2 Switch” 0
amixer cset name=”IN1 Mode Control” “Single ended”
amixer cset name=”IN2 Mode Control” “Single ended”
amixer cset name=”Mic Jack Switch” 1

(credit: elinux.org)

  • The fastest browser is Chromium. But Firefox has a smaller memory footprint. So I end up using Chromium for mono-tab browsing sessions and Firefox when I know I need more tabs open. Open more than 4 tabs on Chromium and the whole system goes in thrashing.
  • Visual Studio Code and Atom are really good code editors/IDE, both run on ARM7, but both consume too much RAM. I ended up settling for Geany, that is lightweight and has all the feature I needed (either out of the box or via plugins).
  • Speaking of ARM7, forget binary builds for x86. No Skype, no Sublime Text 3, no Steam. Do I miss them? No. Hangouts and Slack Audio work perfectly from a browser. Sublime Text 3 is replaced with Geany and Steam… well, it appears that somebody out there installed it using an x86 emulator called ExaGear and managed to play a few games, but I wouldn’t try on anything heavier than GoldSrc. I tried ExaGear myself when I thought I couldn’t live without Sublime Text 3, and the results were too sluggish to work at ease, so I don’t recommend it for this particular usage, and installing it requires a lot of disk space.
The shield k1 shining with several Bluetooth peripherals and hooked to hdmi out and power.

So what’s the verdict? Going around with a small, pluggable device feels very good. It’s amazing to know that you won’t be needing a large laptop in the future to work while traveling. But I don’t think I will embrace this new way of working to its maximum extent and do all of my computing from there. Three-year-old hardware is in some instances a limitation. There are some occasions when you just can’t get your work done without some strong bare metal under your fingertips.

But it’s good to know that I can do perhaps 90% of my computing from such a tiny tablet.

On the next chapters, my personal history with RAM and virtues and vices of multitasking.

2 thoughts on “Working from a Nvidia Shield K1 Tablet

Leave a Reply

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

Name *

SHARE