Embedded Systems / F&S Boards
Weston customizations
At this point, you should have your efus MX8MP board equipped with an Embedded Linux OS. In this article, we are going to take a look at the graphical output generated by Weston and how we can adjust it. If you have a display unit connected to your board over LVDS connector, you should be able to see its graphical output on the display unit.
The behavior is Weston is customized by performing modifications to its configuration file:
/etc/xdg/weston/weston.ini
The complete documentation can be found here.
Weston with no display unit
If you do not have any display unit, you can still use Weston. Just configure it, so that it renders its graphical output over RDP protocol. That will allow client computers to connect to your board over RDP and interact with its Graphical User Interface. To make this work, follow these instructions:
- Make a back-up copy of your current
/etc/xdg/weston/weston.ini:cp /etc/xdg/weston/weston.ini /etc/xdg/weston/weston.ini.bak - Edit your
/etc/xdg/weston/weston.iniwith your favourite editor and put this content into it:[core] use-g2d=true repaint-window=16 idle-time=0 xwayland=true shell=desktop-shell.so [shell] # panel-position can be set to one of these: top,bottom,left,right,none panel-position=top background-image=/usr/share/weston/01Background.jpg background-type=scale-cropNotice the
background-imagesetting insection. Make sure, that the file exists and that it is readable. If you don’t want any background image, you can remove that line. - Make a back-up copy of your current
/usr/lib/systemd/system/weston.service:cp /usr/lib/systemd/system/weston.service /usr/lib/systemd/system/weston.service.bak - Edit your
/usr/lib/systemd/system/weston.servicewith your favourite editor. Look for[Service]section. Within it, look forExecStart. TheExecStartsetting specifies how Weston service should be started (what command should be executed). This is what we want to set it to:ExecStart=/usr/bin/weston --modules=systemd-notify.so \ --backend=rdp-backend.so --shell=desktop-shell.so \ --rdp-tls-cert=/etc/freerdp/keys/server.crt --rdp-tls-key=/etc/freerdp/keys/server.key \ --xwayland \ --width=800 --height=480 --no-clients-resizeYou may change the width and height arguments to whatever values you prefer. If you want the client applications to change the desktop size, remove the
--no-clients-resizeinput argument, otherwise leave it in. You probably also noticed the input arguments, which contain paths to encryption key and certificate. These likely do not exist in your file system. So this is how you create them. -
mkdir -p /etc/freerdp/keys cd /etc/freerdp/keys openssl genrsa -out server.key 2048 openssl req -new -key server.key -out server.csrDuring execution of the last command you will be asked to provide information about the certificate being created. Provide whatever information you want.
- Execute this command to produce .crt certificate:
openssl x509 -req -days 365 -signkey server.key -in server.csr -out server.crt - Weston backend is typically executed by “weston” user. We have to make sure, that generated keys are readable by “weston” user:
chown root:weston /etc/freerdp/keys/server.key chmod 640 /etc/freerdp/keys/server.key - After these changes and adjustments, perform these commands:
systemctl daemon-reload systemctl restart weston - You should now be able to connect to your board over any RDP client application. If you’re on Windows OS, you may use Remote Desktop Connection (mstsc.exe).
Documentation notice
Information may change over time
Technical details on this page may change as vendor tools, board support packages, operating system images, and runtime versions evolve.
This page was last technically reviewed on June 27, 2026. If your setup differs from the one described here, please contact us for help.
