Raspberry Pi
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
Raspberry Pi lowered GPU memory from 64 to 32 MB
Run headless (without desktop) by default
Start config tool:
sudo raspi-config
Configure these options:
- Boot options - Desktop: select text console login
- Interfacing - VNC server: enable
If you now want to start the desktop:
- Set up a VNC client session to the machine
- Login via the text console
- Start the desktop:
startx
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 remove --purge libreoffice* sudo apt-get remove --purge chromium-browser sudo apt-get remove --purge cups-common #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