Raspberry Pi/Zero 2W/Ubuntu/24.04: Difference between revisions

From Chorke Wiki
Jump to navigation Jump to search
Line 338: Line 338:


sudo mount -a
sudo mount -a
</syntaxhighlight>
|}
{|class='wikitable mw-collapsible mw-collapsed' style='width:100%;margin:6px 0 3px 0'
!scope='col' style='text-align:left' colspan='2'|
Post-Boot » 10-usb-wan.yaml
|-
|valign='top' style='width:50%'|
<syntaxhighlight style='margin:3px 0' lang='yaml'>
ls -lah            /etc/netplan/
cat <<'YML' | sudo /etc/netplan/10-usb-wan.yaml >/dev/null
---
network:
  version: 2
  renderer: networkd
  ethernets:
    usb0:
      dhcp4: false
      addresses:
        - 192.168.10.2/24
      routes:
        - to: default
          via: 192.168.10.1
      nameservers:
        addresses:
          - 192.168.10.1
          - 8.8.8.8
      optional: true
YML
sudo chmod 600 /etc/netplan/10-usb-wan.yaml
</syntaxhighlight>
|valign='top' style='width:50%'|
<syntaxhighlight style='margin:3px 0' lang='bash'>
sudo netplan try --timeout 60
sudo netplan generate
sudo netplan apply
sudo ip add show usb0
ping -c3 192.168.10.1
ping -c3 192.168.10.2
</syntaxhighlight>
|}
{|class='wikitable mw-collapsible' style='width:100%;margin:6px 0 3px 0'
!scope='col' style='text-align:left' colspan='2'|
Post-Boot » 99-usb-gadget.yaml
|-
|valign='top' style='width:50%'|
<syntaxhighlight style='margin:3px 0' lang='yaml'>
ls -lah                /etc/netplan/
cat <<'YML' | sudo tee /etc/netplan/99-usb-gadget.yaml >/dev/null
---
network:
  version: 2
  renderer: networkd
  ethernets:
    usb0:
      dhcp4: no
      addresses:
        - 192.168.8.2/24
      optional: true
YML
sudo chmod 600 /etc/netplan/99-usb-gadget.yaml
</syntaxhighlight>
|valign='top' style='width:50%'|
<syntaxhighlight style='margin:3px 0' lang='bash'>
sudo netplan try --timeout 60
sudo netplan generate
sudo netplan apply
sudo ip add show usb0
ping -c3 192.168.8.1
ETH_USB0="$(ip -o link show | grep '12:a5:cf:42:92:fd' | awk -F': ' '{print $2}')"
sudo ip addr add 192.168.8.1/24 dev "${ETH_USB0}"
sudo ip link set  "${ETH_USB0}" up
sudo ip addr show "${ETH_USB0}"
ping -c3 192.168.8.2
ping -c3 192.168.8.1
</syntaxhighlight>
|}
{|class='wikitable mw-collapsible' style='width:100%;margin:6px 0 3px 0'
!scope='col' style='text-align:left' colspan='2'|
Post-Boot » 70-usb-gadget-net.rules
|-
|valign='top' style='width:50%'|
<syntaxhighlight style='margin:3px 0' lang='ini'>
ls -lah                /etc/udev/rules.d/
cat <<'INI' | sudo tee /etc/udev/rules.d/70-usb-gadget-net.rules >/dev/null
SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="5e:bc:ca:27:92:b1", NAME="usb0"
INI
# sudo chmod 600 /etc/udev/rules.d/70-usb-gadget-net.rules
</syntaxhighlight>
|valign='top' style='width:50%'|
<syntaxhighlight style='margin:3px 0' lang='bash'>
sudo udevadm control --reload
sudo udevadm trigger
sudo ip add show usb0
ping -c3 192.168.8.1
</syntaxhighlight>
</syntaxhighlight>
|}
|}

Revision as of 03:39, 30 December 2025

lsblk
:'
sdb           8:16   1  29.8G  0 disk 
├─sdb1        8:17   1   512M  0 part /media/shahed/system-boot
└─sdb2        8:18   1  29.3G  0 part /media/shahed/writable
'
ls -alh /media/${USER}/system-boot/{ssh,{config,cmdline}.txt}
:'
-rw-r--r-- 1 shahed shahed  170 Dec 30 01:03 /media/shahed/system-boot/cmdline.txt
-rw-r--r-- 1 shahed shahed 1.8K Dec 29 21:13 /media/shahed/system-boot/config.txt
-rw-r--r-- 1 shahed shahed    0 Dec 29 17:45 /media/shahed/system-boot/ssh
'
ls -lah /media/${USER}/writable/etc/netplan/
:'
total 12K
drwxr-xr-x   2 root root 4.0K Dec 30 08:29 .
drwxr-xr-x 108 root root 4.0K Dec 29 20:55 ..
-rw-------   1 root root  262 Dec 29 17:22 50-cloud-init.yaml
'
ls -lah /media/${USER}/writable/etc/udev/rules.d/
:'
total 72K
drwxr-xr-x 2 root root 4.0K Aug  6 01:00 .
drwxr-xr-x 4 root root 4.0K Dec 29 20:47 ..
-rw-r--r-- 1 root root  62K Aug  6 01:00 70-snap.snapd.rules
'

system-boot » config.txt

cat /media/${USER}/system-boot/config.txt && echo
<<-'TXT'
[all]
arm_64bit=1
kernel=vmlinuz
cmdline=cmdline.txt
initramfs initrd.img followkernel

# Enable the audio output, I2C and SPI interfaces on the GPIO header. As these
# parameters related to the base device-tree they must appear *before* any
# other dtoverlay= specification
dtparam=audio=on
dtparam=i2c_arm=on
dtparam=spi=on

# Comment out the following line if the edges of the desktop appear outside
# the edges of your display
disable_overscan=1

# If you have issues with audio, you may try uncommenting the following line
# which forces the HDMI output into HDMI mode instead of DVI (which doesn't
# support audio output)
#hdmi_drive=2

# Enable the KMS ("full" KMS) graphics overlay, leaving GPU memory as the
# default (the kernel is in control of graphics memory with full KMS)
dtoverlay=vc4-kms-v3d
disable_fw_kms_setup=1

# Enable the serial pins
enable_uart=1

# Autoload overlays for any recognized cameras or displays that are attached
# to the CSI/DSI ports. Please note this is for libcamera support, *not* for
# the legacy camera stack
camera_auto_detect=1
display_auto_detect=1

# Config settings specific to arm64
dtoverlay=dwc2

[pi4]
max_framebuffers=2
arm_boost=1

[pi3+]
# Use a smaller contiguous memory area, specifically on the 3A+ to avoid an
# OOM oops on boot. The 3B+ is also affected by this section, but it shouldn't
# cause any issues on that board
dtoverlay=vc4-kms-v3d,cma-128

[pi02]
# The Zero 2W is another 512MB board which is occasionally affected by the same
# OOM oops on boot.
dtoverlay=vc4-kms-v3d,cma-128

[cm4]
# Enable the USB2 outputs on the IO board (assuming your CM4 is plugged into
# such a board)
dtoverlay=dwc2,dr_mode=host

[all]
TXT

system-boot » cmdline.txt

cat /media/${USER}/system-boot/cmdline.txt && echo
:'
console=serial0,115200 multipath=off dwc_otg.lpm_enable=0 console=tty1 root=LABEL=writable rootfstype=ext4 rootwait fixrtc cfg80211.ieee80211_regdom=MY
'

SD Card » Pre-Boot

SD Card » Pre-Boot

system-boot » config.txt

cat <<'INI' | tee -a /media/${USER}/system-boot/config.txt >/dev/null
dtoverlay=dwc2

# Enable Heartbeat LED
dtparam=pwr_led_trigger=heartbeat
dtparam=act_led_trigger=heartbeat
INI
lsmod | grep -E 'dwc2|g_ether'
dmesg | grep -E 'dwc2'




sudo dtoverlay dwc2

system-boot » cmdline.txt

# modules-load=dwc2

cat <<'INI' | tee /media/${USER}/system-boot/cmdline.txt >/dev/null
console=serial0,115200 multipath=off dwc_otg.lpm_enable=0 console=tty1 root=LABEL=writable rootfstype=ext4 rootwait modules-load=dwc2 fixrtc cfg80211.ieee80211_regdom=MY
INI
# modules-load=dwc2,g_ether

cat <<'INI' | tee /media/${USER}/system-boot/cmdline.txt >/dev/null
console=serial0,115200 multipath=off dwc_otg.lpm_enable=0 console=tty1 root=LABEL=writable rootfstype=ext4 rootwait modules-load=dwc2,g_ether fixrtc cfg80211.ieee80211_regdom=MY
INI
# modules-load=dwc2,g_ether
# g_ether.host_addr=12:a5:cf:42:92:fd
# g_ether.dev_addr=5e:bc:ca:27:92:b1

cat <<'INI' | tee /media/${USER}/system-boot/cmdline.txt >/dev/null
console=serial0,115200 multipath=off dwc_otg.lpm_enable=0 console=tty1 root=LABEL=writable rootfstype=ext4 rootwait modules-load=dwc2,g_ether fixrtc cfg80211.ieee80211_regdom=MY g_ether.host_addr=12:a5:cf:42:92:fd g_ether.dev_addr=5e:bc:ca:27:92:b1
INI

writable » 10-usb-wan.yaml

ls -lah            /media/${USER}/writable/etc/netplan/
cat <<'YML' | sudo /media/${USER}/writable/etc/netplan/10-usb-wan.yaml >/dev/null
---
network:
  version: 2
  renderer: networkd
  ethernets:
    usb0:
      dhcp4: false
      addresses:
        - 192.168.10.2/24
      routes:
        - to: default
          via: 192.168.10.1
      nameservers:
        addresses:
          - 192.168.10.1
          - 8.8.8.8
      optional: true
YML
sudo chmod 600 /media/${USER}/writable/etc/netplan/10-usb-wan.yaml
sudo netplan try --timeout 60
sudo netplan generate
sudo netplan apply















sudo ip add show usb0
ping -c3 192.168.10.1
ping -c3 192.168.10.2

writable » 99-usb-gadget.yaml

ls -lah                /media/${USER}/writable/etc/netplan/
cat <<'YML' | sudo tee /media/${USER}/writable/etc/netplan/99-usb-gadget.yaml >/dev/null
---
network:
  version: 2
  renderer: networkd
  ethernets:
    usb0:
      dhcp4: no
      addresses:
        - 192.168.8.2/24
      optional: true
YML
sudo chmod 600 /media/${USER}/writable/etc/netplan/99-usb-gadget.yaml
sudo netplan try --timeout 60
sudo netplan generate
sudo netplan apply

sudo ip add show usb0
ping -c3 192.168.8.1

ETH_USB0="$(ip -o link show | grep '12:a5:cf:42:92:fd' | awk -F': ' '{print $2}')"
sudo ip addr add 192.168.8.1/24 dev "${ETH_USB0}"
sudo ip link set  "${ETH_USB0}" up
sudo ip addr show "${ETH_USB0}"

ping -c3 192.168.8.2
ping -c3 192.168.8.1

writable » 70-usb-gadget-net.rules

ls -lah                /media/${USER}/writable/etc/udev/rules.d/
cat <<'INI' | sudo tee /media/${USER}/writable/etc/udev/rules.d/70-usb-gadget-net.rules >/dev/null
SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="5e:bc:ca:27:92:b1", NAME="usb0"
INI

# sudo chmod 600 /media/${USER}/writable/etc/udev/rules.d/70-usb-gadget-net.rules
sudo udevadm control --reload
sudo udevadm trigger


sudo ip add show usb0
ping -c3 192.168.8.1

SD Card » Post-Boot

SD Card » Post-Boot

Post-Boot » Swapfile

cat <<'EXE' | sudo bash
swapoff /swapfile
fallocate -l 1G /swapfile
ls -lh /swapfile && mkswap /swapfile
chmod 0600 /swapfile && swapon /swapfile && swapon --show && free -th
EXE
cat << FST | sudo tee -a /etc/fstab >/dev/null
# Loopback Swap Space » 512Mi + 512Mi 
/swapfile              none            swap    sw              0       0
FST

sudo mount -a

Post-Boot » 10-usb-wan.yaml

ls -lah            /etc/netplan/
cat <<'YML' | sudo /etc/netplan/10-usb-wan.yaml >/dev/null
---
network:
  version: 2
  renderer: networkd
  ethernets:
    usb0:
      dhcp4: false
      addresses:
        - 192.168.10.2/24
      routes:
        - to: default
          via: 192.168.10.1
      nameservers:
        addresses:
          - 192.168.10.1
          - 8.8.8.8
      optional: true
YML
sudo chmod 600 /etc/netplan/10-usb-wan.yaml
sudo netplan try --timeout 60
sudo netplan generate
sudo netplan apply















sudo ip add show usb0
ping -c3 192.168.10.1
ping -c3 192.168.10.2

Post-Boot » 99-usb-gadget.yaml

ls -lah                /etc/netplan/
cat <<'YML' | sudo tee /etc/netplan/99-usb-gadget.yaml >/dev/null
---
network:
  version: 2
  renderer: networkd
  ethernets:
    usb0:
      dhcp4: no
      addresses:
        - 192.168.8.2/24
      optional: true
YML
sudo chmod 600 /etc/netplan/99-usb-gadget.yaml
sudo netplan try --timeout 60
sudo netplan generate
sudo netplan apply

sudo ip add show usb0
ping -c3 192.168.8.1

ETH_USB0="$(ip -o link show | grep '12:a5:cf:42:92:fd' | awk -F': ' '{print $2}')"
sudo ip addr add 192.168.8.1/24 dev "${ETH_USB0}"
sudo ip link set  "${ETH_USB0}" up
sudo ip addr show "${ETH_USB0}"

ping -c3 192.168.8.2
ping -c3 192.168.8.1

Post-Boot » 70-usb-gadget-net.rules

ls -lah                /etc/udev/rules.d/
cat <<'INI' | sudo tee /etc/udev/rules.d/70-usb-gadget-net.rules >/dev/null
SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="5e:bc:ca:27:92:b1", NAME="usb0"
INI

# sudo chmod 600 /etc/udev/rules.d/70-usb-gadget-net.rules
sudo udevadm control --reload
sudo udevadm trigger


sudo ip add show usb0
ping -c3 192.168.8.1

References

References