[winswitch] XPRA - installation on Orange PI Plus 2E

Antoine Martin antoine at nagafix.co.uk
Fri Aug 25 16:58:43 BST 2017

On 24/08/17 23:18, Philip Loewen via shifter-users wrote:
> Hello,
> I have succeeded in getting XPRA to work on an ARM-based single-board
> computer. In the hope that this might interest someone else, I recorded
> the commands I used in the form of a shell-script that I successfully
> ran as 'root'. These commands make xpra available to all users on the
> system. The script is provided here below my signature.
> This note provides a snapshot of my experience, after removing the sad
> parts -- hours of trial-and-error, etc. Please set (low) expectations
> accordingly.
> The board is an Orange PI Plus 2E. The monitor is my HDTV with 720i
> format. Network connection comes through wired ethernet.
> My first step was to install a suitable Ubuntu-based desktop OS on the
> Orange PI. This came from https://www.armbian.com; the download was named
>   Armbian_5.30_Orangepiplus2e_Ubuntu_xenial_default_3.4.113.7z
> Getting Armbian started on the board required some tuning of the file
> system, my location, the video parameters, keyboard, etc., and
> rebooting. All the usual stuff associated with installing a new OS.
> I went on to create a sudo-capable user account for myself, named
> 'philip'. This shows up in the last command in the script.
> On a freshly-rebooted OrangePI, I said "sudo su -" to get root, then ran
> the script shown below. About 2 hours later, I had a working XPRA setup
> on the little device. (Of these 2 hours, about 80 minutes were spent
> doing other constructive tasks while ffmpeg compiled.)
Thanks. I have added a wiki page based on these instructions:

With the following changes:
* less hand-holding: users should be able to figure out that using
apt-get requires root - if not, they probably won't go very far anyway
* try to distinguish build time dependencies and runtime extra features
* I don't think python-wheel is needed, is it?
* ffmpeg compilation from a released version rather than straight from
git (more reliable) and using only the components actually needed by xpra.
* removed the unix group creation, this should be optional

> Please note that the script requires frequent user interaction: one has
> to consent to each of the "apt-get install" commands. This allows one to
> see what's working, assess the speed of the system, and notice if
> something breaks.
> I use XPRA daily, but only to forward silent X-windows. This now works
> for me, and I'm satisfied. I have not pursued the many other exciting
> things XPRA can do -- e.g., sound, video, and print-forwarding. But I
> can report that X-window forwarding works nicely as both client and
> server. Many thanks to Antoine for this nice cross-platform(!) system.
Since I don't have the hardware to test - I haven't added any
instructions for audio/video/printing, but this is a wiki so anyone can
add the information once verified:
* printer forwarding: only requires cups + python-cups
* audio: some gstreamer plugins, and pulseaudio for the server
* video: should be enabled already: that's what ffmpeg is for. But I'm
not sure those ARM boards are powerful enough to handle video in software...


> Sincerely,
> Philip
> #####################################################################
> # 2017-08-18: Commands to install xpra on armbian (Orange PI Plus 2E)
> # Run all these as root. Or, prefix each one with "sudo -H ".
> # Clean up potentially conflicting packages
> apt-get purge xpra cython
> # Get a bunch of system tools. Check that the file vpx.pc actually arrived.
> apt-get install libx11-dev libxtst-dev libxcomposite-dev libxdamage-dev
> apt-get install libxkbfile-dev libx264-dev libvpx-dev libswscale-dev
> apt-get install libavformat-dev libavcodec-dev
> apt-get install xvfb xauth x11-xkb-utils
> apt-get install zlib1g zlib1g-dev liblzo2-2 liblzo2-dev
> echo +++++ /usr/lib/pkgconfig/vpx.pc +++++
> cat /usr/lib/pkgconfig/vpx.pc
> echo +++++++++++++++++++++++++++++++++++++
> # Get a bunch more system tools based on Python.
> apt-get install python-all-dev python-gobject-dev python-gtk2-dev cython
> apt-get install python-netifaces dbus-x11 python-dbus python-rencode
> apt-get install hicolor-icon-theme python-avahi python-numpy
> apt-get install gstreamer1.0-x gstreamer1.0-tools
> apt-get install python-pil python-lzo python-setuptools python-wheel
> # Some system-supplied Python tools are just too old.
> # Get new ones directly from the world of Python.
> apt-get install python-pip
> pip install --upgrade pip
> pip install lz4
> # System version of ffmpeg is too old. Compile new one from source.
> # Note the suggested LDPATH and PIC flag in configuration step.
> # (Found this online at some stage - forgot source - sorry.)
> # Compilation took about 80 minutes.
> git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg
> cd ffmpeg
> LDPATH=/usr/lib/arm-linux-gnueabihf ./configure --enable-pic
> time make
> make install
> # Note that version number 2.1 below might increase in future.
> # Used LDPATH from above just in case it helps.
> wget https://www.xpra.org/src/xpra-2.1.tar.xz
> unxz xpra-2.1.tar.xz
> tar xvf xpra-2.1.tar
> cd xpra-2.1
> LDPATH=/usr/lib/arm-linux-gnueabihf ./setup.py install
> # xpra wants to have a group, and xpra users should belong.
> addgroup xpra
> adduser philip xpra
> # DONE!
> _______________________________________________
> shifter-users mailing list
> shifter-users at lists.devloop.org.uk
> http://lists.devloop.org.uk/mailman/listinfo/shifter-users

More information about the shifter-users mailing list