{"id":737,"date":"2020-04-21T17:55:10","date_gmt":"2020-04-21T15:55:10","guid":{"rendered":"http:\/\/valentijn.sessink.nl\/?p=737"},"modified":"2020-05-07T16:33:03","modified_gmt":"2020-05-07T14:33:03","slug":"run-ubuntu-desktop-on-a-raspberry-pi-4","status":"publish","type":"post","link":"https:\/\/valentijn.sessink.nl\/?p=737","title":{"rendered":"Run Ubuntu Desktop on a Raspberry Pi 4"},"content":{"rendered":"\n<p>A Raspberry Pi 4 is a pretty competent computer for a student&#8217;s desktop. I have setup two of these for my kids and apart from a few proprietary packages, everything works well. However, Raspbian won&#8217;t cut it, mostly because its&#8217; Firefox is way too old. Hence we&#8217;ll go install Ubuntu Desktop.<\/p>\n\n\n\n<!--more-->\n\n\n\n<p>By the way: this article is merely a reminder for myself. I did not invent any of this, it was stolen from all over the Internet. But hey, it works. And maybe it helps you.<\/p>\n\n\n\n<p>First a few words about the non working stuff, so you know what you will end up with. Microsoft Teams doesn&#8217;t have an ARM version of their Linux program. You&#8217;ll be able to use the web interface for Teams, but that doesn&#8217;t do video &#8211; at least for now. The same goes for Zoom: their web client won&#8217;t do video on RPi4. There are two ways around this: 1) install Teams and\/or Zoom on your (kids&#8217;) mobile phone \/ tablet and use that; 2) use Jitsi &#8211; which does work on a regular Firefox on a Rpi 4.<\/p>\n\n\n\n<p>Now for the installation, because that is probably why you came here.<\/p>\n\n\n\n<p>You will need a Raspberry Pi 4 with 4GB of RAM with all the extras like a power supply, keyboard, mouse, monitor and a micro-SD-card, and an extra computer to write the micro-SD-card with. Maybe a case with a cooler, too, because this machine tends to get hot and it will lower its&#8217; processing speed to cool down if there is no fan.<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>Download the Rpi3\/4 Ubuntu Linux server installation from <a href=\"http:\/\/cdimage.ubuntu.com\/releases\/19.10.1\/release\/ubuntu-19.10.1-preinstalled-server-arm64+raspi3.img.xz\">http:\/\/cdimage.ubuntu.com\/releases\/19.10.1\/release\/ubuntu-19.10.1-preinstalled-server-arm64+raspi3.img.xz<\/a> I honestly don&#8217;t know why this is a non-secured link, but it is.<\/li><li>Follow the steps to &#8220;<a rel=\"noreferrer noopener\" href=\"https:\/\/ubuntu.com\/tutorials\/create-an-ubuntu-image-for-a-raspberry-pi-on-ubuntu#2-on-your-ubuntu-machine\" target=\"_blank\">Flash Ubutu onto your microSD card<\/a>&#8220;. <\/li><li>Put the MicroSD in your Rpi4 and start it up.<\/li><li>Log in as user <em>ubuntu<\/em> with password <em>ubuntu<\/em> and change the password afterwards, as requested<\/li><li>Connect the Rpi4 to a network. Then start &#8220;top&#8221; and wait about 30 minutes. After having connected the network, your Rpi will start auto-updating and you&#8217;ll have to wait till it&#8217;s ready. If you know how to stop the update and start installing stuff, be my guest. Might save you some waiting time.<\/li><li>Type <em>sudo apt update<\/em><\/li><li>Now we&#8217;ll start installing the real stuff:<\/li><\/ol>\n\n\n\n<pre class=\"wp-block-preformatted\">sudo apt remove cloud-init{,ramfs-{copymods,dyn-netconf}}\nsudo apt install ubuntu-desktop slick-greater\nsudo cat &gt;&gt; \/etc\/lightdm\/lightdm.conf &lt;&lt;EOF\n[SeatDefaults]\ngreeter-session=slick-greeter\nEOF\nsudo snap remove lxd<\/pre>\n\n\n\n<p>That&#8217;s pretty much it. Reboot. Use your desktop!<\/p>\n\n\n\n<p>While I am writing this in April, 2020, there is an Ubuntu beta version: Ubuntu 20.04. So from here, you could try to update your machine &#8211; and spoiler: it works. Plain and simple:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">sudo do-release-upgrade -d<\/pre>\n\n\n\n<p>&#8230; where &#8220;d&#8221; stands for &#8220;development version&#8221;. Another route to 20.04 is to download the &#8211; currently still beta &#8211; release of the Raspberry Pi 20.04 installation disk, which can be found at <a href=\"http:\/\/cdimage.ubuntu.com\/releases\/20.04\/beta\/ubuntu-20.04-beta-preinstalled-server-arm64+raspi.img.xz\">http:\/\/cdimage.ubuntu.com\/releases\/20.04\/beta\/ubuntu-20.04-beta-preinstalled-server-arm64+raspi.img.xz<\/a> &#8211; and that will probably change soon to http:\/\/cdimage.ubuntu.com\/releases\/20.04\/release\/ubuntu-20.04-preinstalled-server-arm64+raspi.img.xz (I&#8217;ll change the link, then). Not tested &#8211; yet &#8211; but I will, in a few days.<\/p>\n\n\n\n<p>Now there were a few things I would like to add to my RPi4s, and I will document these here. First thing: remote access to the desktop.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">sudo apt install vino\nsudo cat &gt;&gt; \/etc\/xdg\/autostart\/vino.desktop &lt;&lt;EOF\n[Desktop Entry]\nType=Application\nExec=\/usr\/lib\/vino\/vino-server\nHidden=false\nNoDisplay=true\nName=vino\nComment=shared access desktop server\nEOF<\/pre>\n\n\n\n<p>&#8230; or you could choose to only start Vino for a certain user, like the Ubuntu user:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">cat &gt;&gt; ~ubuntu\/.config\/autostart\/vino.desktop &lt;&lt;EOF\n[Desktop Entry]\nType=Application\nExec=\/usr\/lib\/vino\/vino-server\nHidden=false\nNoDisplay=true\nName=vino\nComment=shared access desktop server\nEOF\n<\/pre>\n\n\n\n<p>Then don&#8217;t forget to add:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">gsettings set org.gnome.Vino prompt-enabled false\n# or better still\n<code>dbus-launch --exit-with-session<\/code> gsettings set org.gnome.Vino prompt-enabled false<\/pre>\n\n\n\n<p>&#8230; for this user, to not see a prompt after trying to access the desktop.<\/p>\n\n\n\n<p>You may want to auto-login user Ubuntu too, with <\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">autologin-user=ubuntu<\/pre>\n\n\n\n<p>in your \/etc\/lightdm\/lightdm.conf<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A Raspberry Pi 4 is a pretty competent computer for a student&#8217;s desktop. I have setup two of these for my kids and apart from a few proprietary packages, everything works well. However, Raspbian won&#8217;t cut it, mostly because its&#8217; Firefox is way too old. Hence we&#8217;ll go install Ubuntu Desktop.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[146,147,140,143,138,139,7],"class_list":["post-737","post","type-post","status-publish","format-standard","hentry","category-happy-hacking","tag-19-10","tag-20-04","tag-raspberry-pi","tag-raspberry-pi-ubuntu-desktop","tag-rpi","tag-rpi4","tag-ubuntu"],"_links":{"self":[{"href":"https:\/\/valentijn.sessink.nl\/index.php?rest_route=\/wp\/v2\/posts\/737","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/valentijn.sessink.nl\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/valentijn.sessink.nl\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/valentijn.sessink.nl\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/valentijn.sessink.nl\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=737"}],"version-history":[{"count":8,"href":"https:\/\/valentijn.sessink.nl\/index.php?rest_route=\/wp\/v2\/posts\/737\/revisions"}],"predecessor-version":[{"id":771,"href":"https:\/\/valentijn.sessink.nl\/index.php?rest_route=\/wp\/v2\/posts\/737\/revisions\/771"}],"wp:attachment":[{"href":"https:\/\/valentijn.sessink.nl\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=737"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/valentijn.sessink.nl\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=737"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/valentijn.sessink.nl\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=737"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}