Table of Contents
Headless Setup
SD Card with Pi OS Lite (32bit)
Download the Raspberry Pi Imager:
Insert a SD-Card.
Start the "Raspberry Pi Imager" program.
Select:
- CHOOSE OS
- Pi OS Other
- Pi OS Lite (32bit)
See also Advanced Options for setting up SSH and WiFi.
Config the Boot Partition
Insert the SD-Card again, after creating of the Image on the SD-Card has finished.
The SD-Card should be visible in the File-Explorer as boot
.
To make the Zero able to connect to the WiFi, it must get some settings to get this done.
The easiest way is to create a text file locally named as wpa_supplicant.conf
with the following content:
country=DE ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 network={ ssid="<my SSID1>" psk="<my PASSWORD>" key_mgmt=WPA-PSK priority=2 } network={ ssid="<my SSID2>" psk="<my PASSWORD>" key_mgmt=WPA-PSK priority=1 }
Replace the "<my*>" values with the access information of the Access Point.
- Note: Multiple network definitions may be added. The highest priority will be connected first if available.
Copy an empty file named SSH
, and wpa_supplicant.conf
to boot
. (Under Windows mostly drive D:
)
to the boot partition of the SD-Card:
- Unmount/Eject the SD-Card.
- Insert the SD-Card into the slot on the Raspberry Pi.
- Power on the Raspberry Pi.
- Wait a few minutes to give Raspbian time to resize the file system. (With a connected monitor, on the Mini-HDMI, the progress can be watched.)
Raspbian SSH Connect
ssh pi@raspberrypi
The standard password is raspberry
Raspbian Update
sudo apt update sudo apt upgrade
Raspi-Config
Python Script
Install PiCamera
ssh pi@raspberrypi sudo apt install python3-picamera
Start Script
ssh pi@raspberrypi nano startcam.sh
Create the script "/home/pi/startcam.sh" with the following content:
#!/bin/sh cd /home/pi python3 cam.py
Make the script executable:
chmod +x startcam.sh
Crontab
Add the line "@reboot /home/pi/startcam.sh" to the crontab:
ssh pi@raspberrypi crontab -e no crontab for pi - using an empty one Select an editor. To change later, run 'select-editor'. 1. /bin/nano <---- easiest 2. /usr/bin/vim.tiny 3. /bin/ed Choose 1-3 [1]:
Close the nano editor with ctrl+x After edit to save the changes.
Check if the changes are saved:
crontab -l # Edit this file to introduce tasks to be run by cron. # # Each task to run has to be defined through a single line # indicating with different fields when the task will be run # and what command to run for the task # # To define the time you can provide concrete values for # minute (m), hour (h), day of month (dom), month (mon), # and day of week (dow) or use '*' in these fields (for 'any'). # # Notice that tasks will be started based on the cron's system # daemon's notion of time and timezones. # # Output of the crontab jobs (including errors) is sent through # email to the user the crontab file belongs to (unless redirected). # # For example, you can run a backup of all your user accounts # at 5 a.m every week with: # 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/ # # For more information see the manual pages of crontab(5) and cron(8) # # m h dom mon dow command @reboot /home/pi/startcam.sh
Reboot the Raspberry Pi:
sudo reboot
Boot speed
Check the services which are not needed for the headless setup:
systemd-analyze blame
Google "raspberry zero systemd-analyze blame" to find tips, because this is a bit out of scope to include it in the Wiki.
Power consumption
HDMI
Running a headless Zero, there's no need to power the display circuitry.
Add the following line in /etc/rc.local
to disable HDMI on boot.
/usr/bin/tvservice -o
(-p to re-enable).
Approximately 25mA reduction.
Special Boot Options
To be able to use pin 27 and 28 as normal I/O, add an extra line in the /boot/config.txt:
force_eeprom_read=0
Notes
SFTP File Transfer
WinSCP and FileZilla can be used for transferring files to and from the Raspberry Pi.
For more information see:
SSH
- The terminal/console commands ssh and scp are available under Linux, Windows10 and Apple macOS.
Wait for Network at Boot
Under specific network conditions, the following system option (sudo raspi-conf) must be activated, if the WIOpi or CAM does not start at boot:
- 1 System Options
- S6 Network at Boot 1)
Disable screen saver
In case of a connected display, none headless, without user interaction.
Edit the lightdm configuration:
$ sudo nano /etc/lightdm/lightdm.conf
find this section, and add the extra options:
[Seat:*] xserver-command=X -s 0 -dpms