SSH Access and X11 Forwarding

If you need to use the development board in a “headless” configuration – without using either the LCD screen or an attached HDMI display – it is possible to run a shell and applications, displaying them on a workstation’s display over a network.

Once you have networking set up for the development board, you should be able to log in using ssh once the OpenSSH daemon has started. This may take some time due to a lack of entropy (see linux-emcraft issue 2 for details).

Setting Up and Testing

Log in to the board using one of the network connections (Wi-Fi or Ethernet). Install the xauth package to enable X11 authorization. X11 forwarding is already enabled by default in the sshd configuration.

Log out and log in again using ssh -X and check that the environment has the DISPLAY variable set.

To run a GNOME application, like gnome-chess, on the board while displaying the output on a workstation running an X server, set the GDK_BACKEND environment variable [1] when running the executable, like this:

GDK_BACKEND=x11 gnome-chess

The application should appear on the workstation’s screen.

The GNOME Chess application running on the development board and shown on the workstation's display

The GNOME Chess application running on the development board and shown on the workstation’s display (click to enlarge)

[1]Described in the Running GTK+ Applications GNOME developer document.

Running Phosh in an X Window

One way to experiment with Phosh, the shell used for the Librem 5, is to run it in an X window using the Xephyr nested X server. On Debian-based systems, install the server on your workstation using the following command:

sudo apt install xserver-xephyr

Start a nested X session by running Xephyr like this:

Xephyr -screen 768x1024 +extension DPMS :1

This creates an X display that the development board can use, which it will access via SSH as in the previous section. However, we log in to the board with a command like the following:

DISPLAY=:1 ssh -XC purism@pureos-test

Replace pureos-test with the address of the development board on your network. Note the use of the option to enable compression; this may help speed up redrawing of the display.

Once you have logged in, stop any existing Phosh session

systemctl stop phosh

Then simply run Phosh with this command:

phosh

The lock screen should appear in the Xephyr window. Unlock the screen by clicking and dragging upwards or by pressing the space bar, then enter the purism user’s password (123456) to access the shell, either by clicking on the buttons or by pressing the number keys on the keyboard.

The Phosh lock screen running on the development board and shown on the workstation's display

The Phosh lock screen running on the development board and shown on the workstation’s display (click to enlarge)

Note: If you have changed the password to contain characters other than digits then it will not be possible to log in. Change the password to contain only digits.