Though of opening a new thread for discussion about RealDash Linux version. Please report any problems or Linux version related requests here.
Current Linux version is build on top of Xorg and requires X11 desktop environment. This is not optimal performance wise, especially on SBC computers, but at least its something to get started. Benefit on running on desktop environment is ability to run on Windowed mode, and interoperability with other apps like Spotify.
Currently there are 4 versions available at My RealDash
- Intel 64bit (amd64)
- Intel 32bit (i386)
- Arm 64bit (arm64)
- Arm 32bit (armf)
To install, download the package and:
sudo apt install libopenal1 libvlc5 gpiod espeak-ng
sudo dpkg -i [installation package file, for example: realdash-mrd_2.4.4-1_amd64.deb]
If you get errors about libssl1.1 dependency, try:
sudo apt --fix-broken install
sudo dpkg -i --ignore-depends=libssl1.1 [installation package file]
RealDash can be started from Start Menu->Graphics, or by typing realdash into the terminal.
Generic Notes
- Do not run RealDash as sudo. As sudo, user folders are not available an accessible and nothing is saved to the disk.
- If you are using serial ports, they are typically restricted by default and causes a permission error. See this link on how to add serial ports to your user group: Serial port terminal > Cannot open /dev/ttyS0: Permission denied - Ask Ubuntu
Running on SBCs
Arm version has been built and tested on Raspberry Pi4. Performance is not great, but its quite usable. The Raspberry Pi VideoCore GPU has a somewhat turbulent development history and drivers are still not great on Linux. Good example of this is that Running Android on same hardware gives much better graphics performance.
The ARM version of RealDash should run on any Linux SBC with ARM processor. RealDash pretty much requires 1Gb of ram to run. We have tested on 512Mb devices, but it will quickly run out of memory if using anything else than very simple dashboards.
There are also some settings that are required when running on Raspberry Pi:
- Update everything
sudo apt update
sudo apt upgrade
sudo reboot
- On Raspberry PI 4 and older, Increase the amount of GPU memory and enable KMS. The default 64Mb just is not enough for anything. On 1Gb ram devices, use at least 128Mb for GPU. On 2Gb or more ram, use at least 256Mb. The required GPU memory is related to screen pixel size; more pixels on screen, more memory is required to run.
sudo raspi-config
4 Performance Options
P2 GPU Memory
256
OK
FINISH
REBOOT
SocketCAN support
From version 2.0.5 RealDash supports SocketCAN. SocketCAN is a Linux kernel level support for CAN communications. Typically this is used with ‘cantools’ package. In practise, if you get CAN data with
candump can0
where can0 is your CAN interface, RealDash will also be able to read/write the CAN data. In addition, RealDash attempts to set the user selected CAN bitrate, but this requires that ‘ip link set’ commands are in sudoers list for the current user. You can test this by issuing command:
sudo ip link set can0 up type can bitrate 500000 restart-ms 100
If you are asked for password, RealDash will not be able to set the CAN parameters automatically, instead whatever state for the CAN interface is currently up, is used. Do not attempt to remedy this by running RealDash as root. Instead, create a sudoers file for the current user that CAN interface can be configured without password.
SocketCAN Implementation was developed and tested on Raspberry Pi 4 and PiCAN3 hat. In theory any Linux installation with working cantools/candump should work.
GPIO support
RealDash implements the GPIO inputs/outputs thru gpiod. This has been tested on Raspberry Pi 4 and 5, but should (in theory) work on other SBCs too. There is a new targetId category ‘GPIO’ and it contains all ‘free’ GPIO pins on typical raspi header. TargetIds are numbered per header PIN numbers. For example GPIO 17 is marked as PIN 11 in RealDash. In addition, RealDash introduces a special targetIds for servo motors. These allow easy usage of slider gauge etc. to control a servo motor via selected pin.