Skip to content

Configuring the Raspberry Pi

dbkc edited this page May 12, 2024 · 41 revisions

Enable the Open GL driver to decrease Electron's CPU usage.

The latest versions of electron use an extreme amount of CPU power when no Open GL driver is loaded. This will result in an overheating Raspberry Pi. To solve this issue, use the experimental desktop Open GL driver by adding the following line to /boot/config.txt:

EDIT: this no longer seems necessary since Raspbian Buster, lines are already included

sudo nano /boot/config.txt

Add the following line:

dtoverlay=vc4-kms-v3d

ℹ️ Activating the Open GL drive can also be accomplished by using the raspi-config tool by running sudo raspi-config. Go to the Advanced Options menu and select A7 GL Driver. Next, select the G3 GL (Full KMS) OpenGL desktop driver with full KMS. Note that this option will be selected in the menu even when the GL drive is not yet configured.

Unfortunately, as a result, the display_rotate=1 (see below) won't have any effect on the display. If you want to rotate the display when the Open GL driver is in use, we need to use the xrandr tool which allows us to rotate the display when in desktop mode. To do so, edit the autostart file: (autostart file has been moved in the latest version of Raspbian Stretch, Version: April 2019, Release Date: 2019-04-08 Kernel: 4.14 to /etc/xdg/lxsession/LXDE-pi/autostart ):

nano ~/.config/lxsession/LXDE-pi/autostart

And add the following line:

@xrandr --output HDMI-1 --rotate right

If the above doesn't work after a reboot, run raspi-config. Under Advanced Options go to Wayland and change to X11 and reboot.

ℹ️ As was mentioned in the forums you can also use the fake kms driver instead.

EDIT 03JAN20: fkms + screen rotation using display_rotate no longer seems to work, but kms method still does

And add the following line to /boot/config.txt:

dtoverlay=vc4-fkms-v3d

With the fake KMS you can rotate the display from /boot/config.txt (see below)

ℹ️ If you want to rotate the display the other direction, please use: @xrandr --output HDMI-1 --rotate left

After the desktop has finished booting, the display will rotate.

Rotating the screen and hide Rainbow colored cube

⚠️ Please make sure to read the information above about the GL driver since this affects the capability to rotate the display!

edit /boot/config.txt:

sudo nano /boot/config.txt

Add the following line:

display_rotate=1
avoid_warnings=1 

#display_rotate=0 Normal
#display_rotate=1 90 degrees
#display_rotate=2 180 degrees
#NOTE: You can rotate both the image and touch interface 180º by entering lcd_rotate=2 instead`
#display_rotate=3 270 degrees

Then reboot the pi:

sudo reboot

Autohiding the Mouse Pointer

Install unclutter:

sudo apt-get install unclutter

You can create an .xinitrc script to run the tool.
See https://wiki.archlinux.org/index.php/Unclutter

But a simpler option is to add a line to the end of the file:

$ nano ~/.config/lxsession/LXDE-pi/autostart
...
@unclutter -display :0 -idle 3 -root -noevents

This will add a 3 second delay, before the pointer disappears from the screen when not using it.


version 1 only

Disabling the screensaver

(Please note, you will need the x11-xserver-utils package installed.)

edit /etc/xdg/lxsession/LXDE-pi/autostart:

sudo nano /etc/xdg/lxsession/LXDE-pi/autostart

Add the following lines:

@xset s noblank
@xset s off
@xset -dpms

Edit /etc/lightdm/lightdm.conf:

sudo nano /etc/lightdm/lightdm.conf

Add the following line below [SeatDefaults] (Please note, you may need to add the [SeatDefaults] section.)

xserver-command=X -s 0 -dpms

Disable WiFi Power Save

Edit /etc/modprobe.d/8192cu.conf

sudo nano /etc/modprobe.d/8192cu.conf

Add the following lines

# Disable power saving
options 8192cu rtw_power_mgnt=0 rtw_enusbss=1 rtw_ips_mode=1

For Raspberry Pi 3 (Jesse and below)
Edit /etc/network/interfaces

sudo nano /etc/network/interfaces

Add the following line under the wlan0 section

wireless-power off

Reboot your PI

sudo reboot

For RPi 3 (Raspbian Stretch)

We no longer have any default entries in /etc/network/interfaces, instead we make a plugin to the (service) startup script. Copy paste the following into your terminal:

cat << EOF | sudo tee /etc/network/if-up.d/off-power-manager
#!/bin/sh
# off-power-manager - Disable the internal power manager of the (built-in) wlan0 device
# Added by MagicMirrorSetup
iw dev wlan0 set power_save off
EOF

Then set the permissions and reload the network daemon.

sudo chmod 755 /etc/network/if-up.d/off-power-manager
sudo /etc/init.d/networking restart

You don't need to reboot for this to take effect, but do it anyway to make sure it works. After reboot and your wifi is back up, test with:

iw dev wlan0 get power_save

Enable file sharing with OS X

Install Netatalk:

sudo apt-get install netatalk

Enable VNC

Install x11vnc:

sudo apt-get install x11vnc

Set VNC password:

x11vnc -storepasswd

Create an auto-start file:

cd ~/.config
mkdir autostart
cd autostart
nano x11vnc.desktop

Add the following lines:

[Desktop Entry]
Encoding=UTF-8
Type=Application
Name=X11VNC
Comment=
Exec=x11vnc -forever -usepw -display :0 -ultrafilexfer
StartupNotify=false
Terminal=false
Hidden=false