Raspberry Pi: Difference between revisions

From WickyWiki
mNo edit summary
Line 219: Line 219:
<syntaxhighlight lang=bash>
<syntaxhighlight lang=bash>
sudo htop
sudo htop
</syntaxhighlight>
=== Disable swap ===
If you have enough free memory, maybe want to reduce writes to the sdcard you can disable the on-disk swap file:
<syntaxhighlight lang=bash>
sudo systemctl stop dphys-swapfile
sudo systemctl disable dphys-swapfile
</syntaxhighlight>
Other ways:
<syntaxhighlight lang=bash>
sudo dphys-swapfile swapoff
</syntaxhighlight>
</syntaxhighlight>



Revision as of 11:02, 3 February 2018


Configure

Here some pointers on configuring your device.

Configure tool

sudo raspi-config

Bash shell timout

Automatic logout of a user bash session after a period of inactivity.

sudo nano /etc/profile
...
# set a 25 min (1500 sec) timeout policy for bash shell 
TMOUT=1500
readonly TMOUT
export TMOUT
...

HDMI mode in config.txt

At boot the file 'config.txt' is used to apply several non-default settings. This file is on your FAT boot partition which is usually available as /boot after the Pi is up and running.

More info on config.txt:

If you don't provide specific settings for 'hdmi_group' and 'hdmi_mode' a mode will be negotiated with the de HDMI display device. If this doesn't work out for you, you can change config.txt to get what you want, here are some examples:

sudo nano /boot/config.txt
...
#VGA
hdmi_group=1
hdmi_mode=1

#1024x768
hdmi_group=2
hdmi_mode=16

#720p 60Hz 	
hdmi_group=1
hdmi_mode=4

#1080p 60Hz
hdmi_group=1
hdmi_mode=16
...

More info on HDMI:

SSH Remote control

You can use remote shell to control your Raspberry Pi without directly connected mouse, keyboard and screen.

ssh pi@192.168.1.2

Ssh copy local file to remote machine

scp /path/to/local/file.zip pi@192.168.1.2:/home/pi/Downloads/file.zip

And back:

scp pi@192.168.1.2:/home/pi/Downloads/file.zip /path/to/local/file.zip

Nautilus ssh access, in the addressbar type:

ssh://pi@192.168.1.2

Ssh root access is not allowed by default but could be convenient for use with Nautilus Note: better set this back to 'no' when you are done

sudo nano /etc/ssh/sshd_config
PermitRootLogin yes

You can now access the machine as root with Nautilus, in the addressbar type:

ssh://root@192.168.1.2/

Allow ssh scripting without a password request, based on keys

You want the script to execute without it stopping to ask for a password.

Root session:

sudo -i

Generate keys, accept defaults:

ssh-keygen -t rsa

Create dir on remote:

ssh pi@192.168.1.2 mkdir -p .ssh

Add pub key to pi@192.168.1.2 authorized_keys:

cat .ssh/id_rsa.pub | ssh pi@192.168.1.2 'cat >> .ssh/authorized_keys'

Should work now without password:

ssh pi@192.168.1.2

Maybe needed, for some versions of ssh

cat .ssh/id_rsa.pub | ssh pi@192.168.1.2 'cat >> .ssh/authorized_keys2'
ssh pi@192.168.1.2 chmod 700 .ssh
ssh pi@192.168.1.2 chmod 640 .ssh/authorized_keys2

Require pi to enter password when sudo

By default the Raspbian pi user can sudo without the need to re-enter the password. If you don't like that make this change.

ssh pi@192.168.1.2
sudo nano /etc/sudoers.d/010_pi-nopasswd

Change it from:

pi ALL=(ALL) NOPASSWD: ALL

to

pi ALL=(ALL) ALL

VNC

For mouse and screen people.

Database MySql /MariaDB remote access

See MySQL remote

Performance tuning

Memory

GPU memory

When you are not really using the video capabilities of the Raspberry Pi, the easiest way to obtain some extra memory is to lower the GPU memory, for example to 32 MB. Start config tool:

sudo raspi-config

Then go to 'Advanced' > 'Memory Split' and modify the value

Overview of processes, CPU and memory usage:

sudo htop

Disable swap

If you have enough free memory, maybe want to reduce writes to the sdcard you can disable the on-disk swap file:

sudo systemctl stop dphys-swapfile
sudo systemctl disable dphys-swapfile

Other ways:

sudo dphys-swapfile swapoff

Run headless (without desktop) by default

Start config tool:

sudo raspi-config

Configure these options:

  1. Boot options - Desktop: select text console login
  2. Interfacing - VNC server: enable

If you now want to start the desktop:

  1. Set up a VNC client session to the machine
  2. Login via the text console
  3. Start the desktop:
startx

Bring Wifi down if Ethernet cable is connected

Create file:

nano /home/pi/Scripts/wlan0downifeth0.sh
#!/bin/bash
if [[ -n $( ip a show eth0 up ) ]] ; then
  echo "wlan0 down"
  ifconfig wlan0 down
fi

Make executable:

chmod +x /home/pi/Scripts/wlan0downifeth0.sh

Modify crontab, check every hour:

sudo nano /etc/crontab
#every hh:45 if eth0 up then wlan0 down
45 * * * * root /home/pi/Scripts/wlan0downifeth0.sh

To bring wifi up:

sudo ifconfig wlan0 up

To check the wifi status (returns nothing if down):

ip a show wlan0 up

Remove software packages

Slim down Raspberry Pi default installation by removing some packages

Remove packages with:

apt-get -y remove --purge <package1> <package2>

Education related packages:

idle idle3
python3-pygame python-pygame python-tk python3-tk python-serial python3-serial python-picamera 
python3-picamera python3-pygame python-pygame python-tk python3-tk python3-numpy python3-pifacecommon 
python3-pifacedigitalio python3-pifacedigital-scratch-handler python-debian-reference-en python-pifacedigitalio
dillo x2x scratch nuscratch timidity smartsim pistore sonic-pi pifacecommon oracle-java8-jdk wolfram-engine	
minecraft-pi python-minecraftpi penguinspuzzle

Remove other packages:

sudo apt-get purge libreoffice*
sudo apt-get purge chromium-browser
sudo apt-get purge cups-common 
sudo apt-get purge xpdf gcalculator
#replacment browser (if you want)
sudo apt-get install midori

Remove unreferenced packages:

apt-get -y autoremove

Remove all packages marked 'rc':

dpkg --list |grep "^rc" | cut -d " " -f 3 | xargs dpkg --purge

See also