Linux DRM
SKipper on Linux with DRM/Frame buffer
SKipper can run without any X/Wayland UI; all that's required is Linux DRM (recommended) or you can fallback to frame buffer if DRM isn't available. In that case SKipper will not use GPU to draw the screen, but CPU.
Debian based Linux Distributions (Raspberry PI OS Lite)
SKipper can run on Raspberry PI OS Lite, DietPi or Ubuntu like Core with a few modifications.
- First you need to flash your SD card / flash memory with the latest Raspberry PI OS 64Bit Lite.
- Drawing via DRM or Frame Buffer requires a few more libraries to be installed. Use terminal/SSH to install them by following instructions below.
Ready made script
You can follow instructions, step by step, or you can use ready made script:
curl -1sLf 'https://docs.skipperapp.net/install-skipper-drm.sh' | sudo -E bash
This script will install required packages, configure System D service and start SKipper as service with DRM configuration. You can later tweak SKipper service using following command:
sudo nano /etc/systemd/system/skipper.service
Install SKipper using Getting started for Linux.
Buster version
Raspberry Pi OS Buster edition is legacy, it's based on Debian 11. Please use this commands to install required dependencies to use DRM/FB mode.
sudo apt update
sudo apt upgrade
sudo apt-get install libgbm1 libgl1-mesa-dri libegl1-mesa libinput10
Trixie version
Raspberry Pi OS Trixie is Debian 12 based Linux operating system. Current version. Please use this commands to install required dependencies to use DRM/FB mode.
sudo apt update
sudo apt upgrade
sudo apt-get install libfontconfig1 libegl1 libgl1 libglx-mesa0 libinput10 libicu76
When you're done with the installation, try running SKipper from the shell with command:
/usr/local/bin/skipper/SkipperApp --drm
SKipper should be running on your screen. Now close it. You need some kind of auto start mechanism, you can use systemD service for that.
NOTE if you need to specify the card for DRM because SKipper outputs couldn't open
/dev/dri/card1, just change the card using-drm {path to card}for example/usr/local/bin/skipper/SkipperApp -drm /dev/dri/card0.Version 23 Version 23 brings better support for detecting DRM driver card when there are multiple of them in the system. For example if you have RPI4/RPI5 there is always card0 and card1, but the real number of card that allows DRM changes randomly between each boot. Now SKipper will try all cards until one of them works. You can still specify card with
-drm /dev/dri/cardX, but if you use--drmwith new version it will iterate all cards available to find correct one.
Open your favorite text editor to create new .service file.
For example:
sudo nano /etc/systemd/system/skipper.service
And paste the following definition:
[Unit]
Description=SKipper app service
After=network.target
[Service]
ExecStart=/usr/local/bin/skipper/SkipperApp --drm
KillMode=process
Restart=on-failure
User=pi
[Install]
WantedBy=multi-user.target
Alias=skipper.service
NOTE Please make sure the User variable contains correct user so system can start SKipper app under correct user, it won't run
Note If your system doesn't support DRM you can use frame buffer, just change argument
--drmto--fb.Also if you're running SKipper on Raspberry PI Zero 2 W, please use
-drm /dev/dri/card0as the start argument.
Great! Service definition is set. Now we need to reload daemons and enable the service.
Type the following commands to get your SKipper service ready:
sudo systemctl daemon-reload
sudo systemctl enable skipper
Now, to start SKipper, run:
sudo systemctl start skipper
And that's it! Anytime your Raspberry PI is booted SKipper will automatically start!
SKipper on Linux with DRM is rotated on my screen
SKipper doesn't honor DRM rotation for now, but you can use a new argument -soft-rotate {degrees} to rotate UI.
NOTE This argument is available from version 23.
Software rotation
Is your display native orientation different than your real display orientation? You can rotate it by using software based rotation. Use argument -soft-rotate angle and change angle with degrees like 0, 90, 180, 270 and SKipper will start rotated.
Orientation
Is your display native orientation different than your real display orientation? You can rotate it by adding orientation in SKipper based rotation. Use argument -orientation key and change key with orientation word like Rotation0, Rotation90, Rotation180 and Rotation270.
NOTE This argument is working from version 26. Older versions doesn't support this argument.
Scaling
Do you have high DPI display and everything is soo small on screen? No issue, you can scale whole UI with -scale factor just replace factor with number like 1.5, 1.6 or 2.0.
Number factor is parsed by your local culture number formatting defined by OS culture settings.
Raspberry PI Zero 2W
Zero 2W has only 512 MB RAM, SKipper can run on the Zero, but the RAM is very limiting factor, when system is running it consumes almost 36% of RAM without anything running. You need to make sure that SKipper has at least 300 MB of free RAM, more RAM the more better.
We're working on minimal OS system for running SKipper in Raspberry PI Zero 2W, we expect to have something to share later this year. Do you want to try it, now? Please contact us and we'll share and image with you.