Jump to content

Rasberry Pi: Difference between revisions

From Smithnet Wiki
Line 22: Line 22:
Upgrade:
Upgrade:
  apt update && sudo apt upgrade -y
  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 ===
=== Apache Web Server ===
Line 60: Line 50:
Because of limited RAM, best to cross compile on a more powerful system:
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
  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


=== Mail ===
=== Mail ===

Revision as of 15:25, 27 May 2026

Device

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

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:

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.