Rasberry Pi
Appearance
Device
- Rasberry Pi 3B ("Rev 1.2")
cat /proc/device-tree/model
AV Connector:
- 1 (tip): L Audio
- 2: R Audio
- 3: Ground
- Sleeve: Composite Video.
Rasbery Pi OS
See /boot/firmware/config.txt.
Command line configuration program:
raspi-config
Upgrade:
apt update && sudo apt upgrade -y
Apache Web Server
apt install apache2 -y
- Configuration: /etc/apache2
- Serve from: /var/www/html
Composite Video
In /boot/firmware/config.txt:
enable_tvout=1 dtoverlay=vc4-kms-v3d,composite
Ensure hdmi_force_hotplug=1 is commented out or set to 0.
In /boot/firmware/cmdline.txt, either:
vc4.tv_norm=PAL vc4.tv_norm=NTSC
To control overscan, see settings:
margin_left margin_right
Go Development
Because of limited RAM, best to cross compile on a more powerful system:
CGO_ENABLED=0 GOOS=linux GOARCH=arm GOARM=7 go build myprog.go
GPIO Development
Raspberry Pi OS use the newer gpiod subsystem (which interacts with /dev/gpiochip).
In Python, use:
apt install python3-gpiozero -y
In Go, use: periph.io
MUA:
apt install bsd-mailx apt install mutt
Mount mail directory from server:
mailhost:/var/spool/mail /var/mail nfs rw,nofail,noatime,_netdev,soft,intr 0 0
Exim is the default MTA:
dpkg-reconfigure exim4-config update-exim4.conf systemctl restart exim4
Monitor logs:
tail -f /var/log/exim4/mainlog
NFS Automounter
apt install autofs nfs-common -y
Edit /etc/auto.master and enable the host map:
/net -hosts --timeout=60
systemctl enable autofs systemctl restart autofs
NTP Client
apt install systemd-timesyncd -y
Edit /etc/systemd/timesyncd.conf and set NTP parameter
systemctl restart systemd-timesyncd timedatectl status timedatectl timesync-status
Swap
free -m swapon --show
Add filesystem swap:
swapoff -a dd if=/dev/zero of=/swapfile bs=1M count=1024 chmod 600 /swapfile mkswap /swapfile swapon /swapfile
Add to /etc/fstab:
/swapfile none swap sw 0 0
To see current zram configuration:
zramctl zramctl --output-all /dev/zram0
To resize:
swapoff /dev/zram0 zramctl --reset /dev/zram0 zramctl --find --size 512M mkswap /dev/zram0 swapon /dev/zram0
Temperature
echo "scale=2; $(cat /sys/class/thermal/thermal_zone0/temp) / 1000" | bc
CPU Core throttling above 80 C.