Notes about using Raspberry Pi 4 with Ubuntu MATE 20.10 as low-cost desktop

I'm playing with my Raspberry Pi 4 Model B with 4 Gb of RAM for a week.

And I see that its functionality is comparable with low-cost x86 desktops. Having 8 Gb RAM version will be better, but I own only 4 Gb version to reduce shipment time.

I'm using the RPi with fanless passive case. So it is really quiet.

Let's discuss the available software which I tested.

Ubuntu MATE 20.10

The main part is the operating system - the latest Ubuntu MATE 20.10.

It may be installed on SD-card or on external USB SSD.
Speeds for microSD cards are slow, the benchmark by GNOME Disks gives read and write speeds:

microSD card read, Mb/s write, Mb/s
Samsung Pro UHS-I 16 Gb 45 14
Lexar 667x 128 Gb 46 32

So I decided to use the old Samsung 850 PRO 256 Gb SSD to get the fastest disk speeds ever. It is inserted into AgeStar USB3 enclosure with USB VID:PID as follows 4971:8017.

To boot from USB SSD I needed to update the bootloader first.

After some experiments I decided to use 32-bit (armhf) because of larger software collection which is available for this architecture. For example there is no Modelica compiler for 64-bit (arm64) build of Scilab.
If you need the modelica compiler on 64-bit - you can get it by package recompilation on RPi using my guide at AskUbuntu.

Applications

Below is the list of application categories for various tasks I used before on x86 devices.
The list includes only deb-packaged applications to save disk space and network load.

Accessories

This section is presented by at least file-managers:

  • Caja - default MATE file-manager;
  • Krusader - dual-panel file-manager for KDE;
  • Midnight Commander (mc) - terminal-based dual-pane file-manager;
  • Double Commander - universal dual-pane file-manager written with Lazarus.

Education

Below is the list of applications for mathematics:

  • Open source MATLAB clone - GNU Octave is available.

  • Graphical user interface for the computer algebra system Maxima - wxMaxima is available.

  • Multi-engine mathematical program - Cantor is available.

  • If I remember correctly - then the Ubuntu MATE 20.10 is the first release where Scilab is fully functional on RPi. It is installable by sudo apt-get install scilab . On 32-bit one can use Xcos to run some simulations including some electronics:

  • The R programming language is supported by RKWard and RStudio, the latter is not available from official repositories as usual, but may be installed from third-party repository with commands below:

    cd ~/Downloads
    
    wget -c http://security.debian.org/debian-security/pool/updates/main/o/openssl1.0/libssl1.0.2_1.0.2u-1~deb9u4_armhf.deb
    sudo apt-get install ./libssl1.0.2_1.0.2u-1~deb9u4_armhf.deb
    
    sudo apt-get install libqt5webenginewidgets5
    
    wget -c https://github.com/ArturKlauser/raspberrypi-rstudio/releases/download/v1.5/rstudio--1.2.5033-1.r2r.bullseye_armhf.deb
    sudo apt-get install ./rstudio--1.2.5033-1.r2r.bullseye_armhf.deb
    sudo apt-get install pandoc pandoc-citeproc
    

Graphics

All applications are in place:

  • GNU Image Manipulation Program - for raster images;
  • Inkscape - for vector images;
  • Scribus - for publishing of paged content.

Internet

All applications are in place:

  • Web-browsers Firefox, Chromium (as snap, but works fast and well), Midori;

  • aMule - an ed2K network client;

  • FileZilla - dual-pane FTP-client;

  • Transmission and qBitTorrent - BitTorrent clients;

  • Remminna - connect to remote desktop;

  • WireShark - network traffic analyzer, as usual should be correctly configured to capture traffic by normal user:

    sudo chgrp wireshark /usr/bin/dumpcap
    sudo chmod o-rx /usr/bin/dumpcap
    sudo setcap 'CAP_NET_RAW+eip CAP_NET_ADMIN+eip' /usr/bin/dumpcap
    sudo usermod -a -G wireshark $USER
    

Office

The system comes with LibreOffice suite.
To get all its components use sudo apt-get install libreoffice as on regular x86 desktop.

Useful tool for PDF comparison named DiffPDF is in place.

The E-Book collection named Calibre is in place.

There are a lot tools for publishing:

  • ReText, the Markdown editor work well on ARM too. Math rendering is activated here by echo mathjax > $HOME/.config/markdown-extensions.txt as usual.
  • For more comprehensive LaTeX-typesetting one can use Gummi, Kile, LaTeXila, LyX, Texmaker and TeXWorks.

Programming

It is known that Arduino has both 32-bit and 64-bit version of the Arduino IDE available. To install it I prefer to use Ubuntu Make. It is available as snap, but I'll show the recipe with its version from GitHub below:

sudo apt-get install git python3-argcomplete python3-gnupg python3-progressbar
cd ~/Downloads
git clone https://github.com/ubuntu/ubuntu-make.git
cd ubuntu-make

bin/umake electronics arduino
sudo usermod -a -G dialout $USER

Many other tools are available:

  • Code::Blocks - IDE for C, C++, Fortran;
  • Geany - small and fast IDE:
  • Kate - advanced text editor for KDE;
  • Lazarus - IDE for Pascal;
  • Spyder3 - IDE for Python 3;
  • Meld - useful tool for visual diffing.

Source code control and its integration to Caja file-manager is possible by the applications:

  • TortoiseHG for Mercurial integrates well to Caja after execution of the following commands:

    # 1. Get the newest Mercurial with Python 3 support
    sudo apt-get install mercurial
    
    # 2. Get dependencies for TortoiseHg
    sudo apt install python3-all-dev python3-pyqt5 python3-pyqt5.qsci python3-iniparse -y
    
    # 3. Get sources of TortoiseHg
    hg clone https://foss.heptapod.net/mercurial/tortoisehg/thg
    cd thg
    hg checkout 5.5.1
    
    # 4. Compile TortoiseHg using Python 3
    sudo apt-get install python-is-python3
    make local
    sudo python3 setup.py install
    
    # 5. Install TortoiseHg extension for Caja
    mkdir -p ~/.local/share/caja-python/extensions
    cp /usr/local/share/nautilus-python/extensions/nautilus-thg.py ~/.local/share/caja-python/extensions/caja-thg.py
    
  • RabbitVCS for Git, Subversion and Mercurial integrates well to Caja after execution of the following commands:

    sudo apt install rabbitvcs-cli python3-caja python3-tk git mercurial subversion
    
    mkdir -p ~/.local/share/caja-python/extensions
    cd ~/.local/share/caja-python/extensions
    wget https://raw.githubusercontent.com/rabbitvcs/rabbitvcs/v0.18/clients/caja/RabbitVCS.py
    caja -q
    caja
    

Sound & Video

At least two media players available and work well - VLC and Celluloid.

If I understand things correctly, then they should use vc4-fkms-v3d for video acceleration. This option is already enabled in /boot/config.txt:

cat /boot/config.txt | grep v3d
dtoverlay=vc4-fkms-v3d

As it was already recommended in the README for Gentoo RPi 64bit the SMTube plays high-resolutions from YouTube well. It can be installed on Ubuntu MATE in usual way, but needs both youtube-dl with smplayer to function.
So the whole set may be installed by

sudo apt-get install smtube smplayer youtube-dl

As the result the 4K videos will play well.

System tools

Possible candidates for the software managers include:

  • The Welcome and Software Boutique applications are preinstalled for doing some tasks in one-click way.

    Note: if you have removed them by accident, then install them back with snap install ubuntu-mate-welcome --classic and snap install software-boutique --classic.

  • The Synaptic is installable by sudo apt-get install synaptic apt-xapian-index as usual;

  • The Muon is installable by sudo apt-get install muon

  • The Apper is installable by sudo apt-get install apper breeze

    Note: along with its usual functionality, it is very useful application to list installed


    or search for

    the desktop (GUI) applications.

Virtualization

The 32-bit version does not support virtualization, as it is shipped with CONFIG_VIRTUALIZATION disabled in the kernel.

But the 64-bit version is shipped with virtualization enabled, so one can use QEMU on the RPi with needed functionality.

x86 emulation

The x86 emulation works well with Box86 project on 32-bit image.
To install it use:

sudo apt-get update
sudo apt-get install cmake build-essential git

cd ~/Downloads
git clone https://github.com/ptitSeb/box86
cd box86
mkdir build; cd build; cmake .. -DRPI4=1 -DCMAKE_BUILD_TYPE=RelWithDebInfo
make -j4
sudo make install
sudo systemctl restart systemd-binfmt

Then one can run x86 application by box86 command and specifying path to needed 32-bit i386 ELF executable.

Installation of Wine for x86 is possible by getting its distribution from TwisterOS site and then adjusting paths:

cd ~
wget https://twisteros.com/wine.tgz
tar -xf wine.tgz
ln -s ~/wine/bin ~/bin

source ~/.profile

And then one can use Wine with wine command and specifying path to needed 32-bit i386 PE executable.
The compatibility list is available.


So my conclusion is that RPi 4 runs well with Ubuntu MATE 20.10 :ubuntu_mate: and provides good user experience for various desktop applications and use-cases.

7 Likes

Come fai ad attivare l'ambiente desktop-mate in automatico all'avvio del raspberry. Così da poter usare il raspberry in remoto