Jump to content

Rasberry Pi

From Smithnet Wiki

Device

cat /proc/device-tree/model

Rasbery Pi OS

See /boot/firmware/config.txt.

Command line configuration program:

raspi-config

Upgrade:

apt update && sudo apt upgrade -y

GPIO

Raspberry Pi OS versions use the newer gpiod subsystem (which interacts with /dev/gpiochip)

python:

apt install python3-gpiozero -y

go: periph.io


Apache Web Server

apt install apache2
  • Configuration: /etc/apache2 -y
  • Serve from: /var/www/html

Composite Video

Note: CVBS is on sleve; Gnd is ring 3. It is enabled when no HDMI monitor is connected.

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

Mail

MUA:

apt install bsd-mailx
apt install mutt

Mail spool directory (eg NFS mount from server):

/var/mail

Exim is the default MTA:

dpkg-reconfigure exim4-config
update-exim4.conf
systemctl restart exim4

Monitor logs:

/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.