Create a Shepherd-ISO
Prereqs
download image (Debian 12 recommended), see Getting started
burn to micro-SD card (i.e. with balena etcher)
activate flasher in
/boot/uEnv.txthave a beaglebone ready & connected to a network
insert SD-Card and boot beaglebone -> image will be copied to internal eMMC
test the code
Switch Cape-Version
For ansible setup:
ansible
roles/sheep/defaults/main.ymlhas hardcodedsheep_cape_hw_var
For an active installation:
change device-tree loaded during boot in
/boot/uEnv.txt(24A0 or 25A0)update pru-firmwares (modify envVar in
./software/build_pru.shand run script)python pulls cape-version from EEPROM automatically or defaults to the newest version
Custom Install
adapt your herd.yaml to point to the one beaglebone, activate roles for sheep and ptp-client
run ansible
deploy/bootstrap.ymlrun ansible
deploy/deploy.ymldistribute ssh keys of server & admin (
NESLAB/2026-misc/authorized_keys)run ansible
deploy/dev_acquire_image.ymlpull image with command given by
deploy/dev_acquire_image.ymlbest is to boot from a second SD-Card that was just bootstrapped to avoid data-corruption
burn image to SD and check if it boots properly
useful commands
cat /etc/debian_version
# ⤷ currently shows debian 12.13
sudo /usr/sbin/ntpdate -b -s -u pool.ntp.org
# ⤷ for manual timesync
sudo systemctl status phc2sys@eth0
sudo systemctl status ptp4l@eth0
# ⤷ for stopping / starting sync systems
ip a
# ⤷ determine current IP
Distribution to other nodes
burn image to other SD-cards
activate sysrqd
ansible
deploy/setup_testbed_observer.yml(secure, MAC broadcasting, NFS mounting)grow partition? -> add to observer-role?
Activate SysRqd
shepherd-herd shell "sudo apt install sysrqd -y"
shepherd-herd shell "echo 'YOUR_COMPLEX_CUSTOM_PASSWORD' > ~/sysrqd.secret"
shepherd-herd shell "sudo mv ~/sysrqd.secret /etc/"
shepherd-herd shell "sudo chmod 0600 /etc/sysrqd.secret"
shepherd-herd shell "sudo systemctl restart sysrqd"
shepherd-herd shell "sudo systemctl status sysrqd"
telnet 192.168.165.200 4094 --> only working inside sheep-network
> PW
> b (for hard reboot)
to exit: ctrl + altgr + ] -> on telnet-console: quit
Grow Main-Partition on SD
yes | sudo parted /dev/mmcblk0 resizepart 1 100%
sudo resize2fs /dev/mmcblk0p1
df -h