{"id":485,"date":"2017-09-28T18:46:53","date_gmt":"2017-09-28T18:46:53","guid":{"rendered":"http:\/\/www.giacomomiceli.com\/blog\/?p=485"},"modified":"2018-04-22T19:10:39","modified_gmt":"2018-04-22T19:10:39","slug":"working-nvidia-shield-k1-tablet","status":"publish","type":"post","link":"https:\/\/jamez.it\/blog\/2017\/09\/28\/working-nvidia-shield-k1-tablet\/","title":{"rendered":"Working from a Nvidia Shield K1 Tablet"},"content":{"rendered":"<p>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.<\/p>\n<p>This 2015 device used to be the most powerful portable gaming system before the Nintendo Switch snatched the title earlier this year. It&#8217;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.<\/p>\n<p>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 <em>my<\/em> stack? Nowadays my activities require a combination of communication (check), loads of browsing and\u00a0Jupyter\u00a0notebooks (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\u00a0machine 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.<\/p>\n<p>That turned out to be a double-edged sword, as I will detail in future posts.<\/p>\n<p>Installing a boot-loader that would enable me to fire up either Android or Ubuntu at will turned\u00a0out to be much easier than I expected. The XDA developers forum has a <a href=\"https:\/\/forum.xda-developers.com\/shield-tablet\/development\/running-ubuntu-natively-shield-tablet-t2985238\">very long thread<\/a> on the subject. Summing up, Multi-Rom\u00a0is installed on the unlocked device, then a modified version of <a href=\"https:\/\/developer.nvidia.com\/embedded\/linux-tegra\" target=\"_blank\" rel=\"noopener noreferrer\">Linux for Tegra<\/a> by Nvidia is installed via TWRP. The only thing of notice here, but it&#8217;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.<\/p>\n<p>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.<\/p>\n<p>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\u00a0mouse and keyboard, the only thing missing was an update to bluez\u00a0version 5 since the ROM readily available is for Ubuntu 14.04.<\/p>\n<p>With that straightened out, the basic setup is complete.<\/p>\n<p>Some improvements and other considerations:<\/p>\n<ul>\n<li>I&#8217;m not sure, but I think my headphone microphone is disabled by default. After configuring amixer, everything worked fine.<\/li>\n<\/ul>\n<blockquote><p>amixer cset name=&#8221;Stereo ADC MIXL ADC2 Switch&#8221; 0<br \/>\namixer cset name=&#8221;Stereo ADC MIXR ADC2 Switch&#8221; 0<br \/>\namixer cset name=&#8221;Int Mic Switch&#8221; 0<br \/>\namixer cset name=&#8221;ADC Capture Switch&#8221; 1<br \/>\namixer cset name=&#8221;RECMIXL BST1 Switch&#8221; 0<br \/>\namixer cset name=&#8221;RECMIXR BST1 Switch&#8221; 0<br \/>\namixer cset name=&#8221;RECMIXL BST2 Switch&#8221; 1<br \/>\namixer cset name=&#8221;RECMIXR BST2 Switch&#8221; 1<br \/>\namixer cset name=&#8221;Stereo ADC L1 Mux&#8221; &#8220;ADC&#8221;<br \/>\namixer cset name=&#8221;Stereo ADC R1 Mux&#8221; &#8220;ADC&#8221;<br \/>\namixer cset name=&#8221;Stereo ADC MIXL ADC1 Switch&#8221; 1<br \/>\namixer cset name=&#8221;Stereo ADC MIXR ADC1 Switch&#8221; 1<br \/>\namixer cset name=&#8221;Stereo ADC MIXL ADC2 Switch&#8221; 0<br \/>\namixer cset name=&#8221;Stereo ADC MIXR ADC2 Switch&#8221; 0<br \/>\namixer cset name=&#8221;IN1 Mode Control&#8221; &#8220;Single ended&#8221;<br \/>\namixer cset name=&#8221;IN2 Mode Control&#8221; &#8220;Single ended&#8221;<br \/>\namixer cset name=&#8221;Mic Jack Switch&#8221; 1<\/p><\/blockquote>\n<p>(credit: <a href=\"http:\/\/elinux.org\/Jetson\/Audio\" target=\"_blank\" rel=\"noopener noreferrer\">elinux.org<\/a>)<\/p>\n<ul>\n<li>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.<\/li>\n<li>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).<\/li>\n<li>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&#8230; well, it appears that somebody out there installed it using an x86\u00a0emulator called <a href=\"https:\/\/eltechs.com\/product\/exagear-desktop\/\" target=\"_blank\" rel=\"noopener noreferrer\">ExaGear<\/a> and managed to play a few games, but I wouldn&#8217;t try on anything heavier than <a href=\"https:\/\/en.wikipedia.org\/wiki\/GoldSrc\" target=\"_blank\" rel=\"noopener noreferrer\">GoldSrc<\/a>. I tried ExaGear myself when I thought I couldn&#8217;t live without Sublime Text 3, and the results were too sluggish to work at ease, so I don&#8217;t recommend it for this particular usage, and installing it requires a lot of disk space.<\/li>\n<\/ul>\n<figure id=\"attachment_547\" aria-describedby=\"caption-attachment-547\" style=\"width: 3840px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-547 size-full\" src=\"http:\/\/www.giacomomiceli.com\/blog\/wp-content\/uploads\/2017\/09\/a_desk.jpg\" alt=\"\" width=\"3840\" height=\"1996\" \/><figcaption id=\"caption-attachment-547\" class=\"wp-caption-text\">The shield k1 shining with several Bluetooth peripherals and hooked to hdmi out and power.<\/figcaption><\/figure>\n<p>So what&#8217;s the verdict? Going around with a small, pluggable device feels very good. It&#8217;s amazing to know that you won&#8217;t be needing a large laptop in the future to work while traveling. But I don&#8217;t think I will embrace this new way of working to its maximum extent and do <em>all<\/em> of my computing from there. Three-year-old hardware is in some instances a limitation. There are some occasions when you just can&#8217;t get your work done without some strong bare metal under your fingertips.<\/p>\n<p>But it&#8217;s good to know that I can do perhaps 90% of my computing from such a tiny tablet.<\/p>\n<p>On the next chapters, my <a href=\"http:\/\/www.giacomomiceli.com\/blog\/2017\/11\/27\/shallow-ram\/\">personal history with RAM<\/a> and <a href=\"http:\/\/www.giacomomiceli.com\/blog\/2017\/12\/08\/and-deep-work\/\">virtues and\u00a0vices of multitasking<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>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 &#8230;<\/p>\n<p><a class=\"understrap-read-more-link button button-black\" href=\"https:\/\/jamez.it\/blog\/2017\/09\/28\/working-nvidia-shield-k1-tablet\/\">Continue Reading &rarr;<\/a><\/p>\n","protected":false},"author":1,"featured_media":545,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[1],"tags":[18,78,28,10],"_links":{"self":[{"href":"https:\/\/jamez.it\/blog\/wp-json\/wp\/v2\/posts\/485"}],"collection":[{"href":"https:\/\/jamez.it\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jamez.it\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jamez.it\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jamez.it\/blog\/wp-json\/wp\/v2\/comments?post=485"}],"version-history":[{"count":12,"href":"https:\/\/jamez.it\/blog\/wp-json\/wp\/v2\/posts\/485\/revisions"}],"predecessor-version":[{"id":664,"href":"https:\/\/jamez.it\/blog\/wp-json\/wp\/v2\/posts\/485\/revisions\/664"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/jamez.it\/blog\/wp-json\/wp\/v2\/media\/545"}],"wp:attachment":[{"href":"https:\/\/jamez.it\/blog\/wp-json\/wp\/v2\/media?parent=485"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jamez.it\/blog\/wp-json\/wp\/v2\/categories?post=485"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jamez.it\/blog\/wp-json\/wp\/v2\/tags?post=485"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}