I am using
-Raspberry Pi 3b+ (8GB) as the host for the Clusterhat v2.4
-1 Raspberry Pi Zero
-2 Raspberry Pi Zero W's
-1 Raspberry Pi Zero WH with RTC adapter
I started with the intent of booting them up with no SD cards and had originally gotten image files from
https://dist1.8086.net/clusterctrl/usbboot/bullseye/2023-05-03/, but was unable to get them to boot.
I originally had trouble getting images to load on the 3b+, but through trial and error with dd on an Ubuntu machine, or with the "Use custom" option in Raspbery Pi Imager v1.8.5, I believe I can reliably get Bookworm and Bullseye images up and running on multiple different microSD cards and multiple USB drives. I've gotten CBRIDGE and CNAT images up and running, as well as installing from scratch and getting Clusterctrl installed and working.
However, in whatever configuration I have on the pi3 (CBRIDGE or CNAT), I cannot get the Zero's to come up in any meaningful way.
I believe I have noticed that no matter what,
brint is assigned
172.19.180.254, but the contents of
dhcpcd.conf attempts to serve IPs via
172.19.181.254. I'm not sure if that is correct, or what I should be expecting to see via any ping attempts:
pi@cbridge:~ $ ifconfig
br0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.3.10 netmask 255.255.255.0 broadcast 192.168.3.255
inet6 fd0c:331f:16ad:7285:ce3:a279:8161:17c prefixlen 64 scopeid 0x0<global>
inet6 fe80::9de4:91a1:4ea0:13b8 prefixlen 64 scopeid 0x20<link>
ether b8:27:eb:16:5f:01 txqueuelen 1000 (Ethernet)
RX packets 98579 bytes 14938717 (14.2 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 26976 bytes 2339086 (2.2 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
brint: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.19.180.254 netmask 255.255.255.0 broadcast 172.19.180.255
inet6 fe80::7804:aff:fe1f:8aca prefixlen 64 scopeid 0x20<link>
ether 7a:04:0a:1f:8a:ca txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 46 bytes 5390 (5.2 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
ether b8:27:eb:16:5f:01 txqueuelen 1000 (Ethernet)
RX packets 100229 bytes 16422044 (15.6 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 26976 bytes 2339086 (2.2 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 10 bytes 1576 (1.5 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 10 bytes 1576 (1.5 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
sample contents of /etc/dhcpcd.conf:
# Example static IP configuration:
#interface eth0
#static ip_address=
192.168.0.10/24#static ip6_address=fd51:42f8:caae:d92e::ff/64
#static routers=192.168.0.1
#static domain_name_servers=192.168.0.1 8.8.8.8 fd51:42f8:caae:d92e::1
# It is possible to fall back to a static IP if DHCP fails:
# define static profile
#profile static_eth0
#static ip_address=
192.168.1.23/24#static routers=192.168.1.1
#static domain_name_servers=192.168.1.1
# fallback to static profile on eth0
#interface eth0
#fallback static_eth0
# ClusterCTRL
reboot 15
denyinterfaces ethpi* ethupi* ethupi*.10 brint usb0.10 eth0
profile clusterctrl_fallback_usb0
static ip_address=
172.19.181.253/24 #ClusterCTRL
static routers=172.19.181.254
static domain_name_servers=8.8.8.8 208.67.222.222
profile clusterctrl_fallback_br0
static ip_address=
172.19.181.254/24interface usb0
fallback clusterctrl_fallback_usb0
interface br0
fallback clusterctrl_fallback_br0
I guess I don't know what to expect, but using CBRIDGE, I do not see any attempts to obtain an IP address on my PFsense router. Using CNAT, I attempted to ping 172.19.180.1-4 and 172.19.181.1-4. All ping attempts are unsuccessful.
I found
Troubleshooting missing Pi Zeros in a ClusterHat at
https://8086.support/content/23/115/en/troubleshooting-missing-pi-zeros-in-a-clusterhat.htmlStep 1: is fine.
Step 2: is fine.
Step 3: yields the following:
pi@cbridge:~ $ lsusb -t
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=dwc_otg/1p, 480M
|__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M
|__ Port 1: Dev 3, If 0, Class=Hub, Driver=hub/3p, 480M
|__ Port 1: Dev 4, If 0, Class=Vendor Specific Class, Driver=lan78xx, 480M
|__ Port 2: Dev 5, If 0, Class=Mass Storage, Driver=usb-storage, 480M
pi@cbridge:~ $
It shows the same results with "clusterctrl on" or "clusterctrl off". "clusterctrl hub on/off" seems to have no effect.
I used multiple cables, and reseated each Zero as well as the ClusterHat. clusterctrl works in turning lights on and off.
step 4 and 5: the lights come on
step 6: I do not see that, even after reseating everything
step 7: Not sure what I should see
step 8 does not show anything for ttypi or ttyACM
pi@cbridge:/dev $ ls
autofs loop1 ram2 tty13 tty38 tty62 vcsa5
block loop2 ram3 tty14 tty39 tty63 vcsa6
bsg loop3 ram4 tty15 tty4 tty7 vcsm-cma
btrfs-control loop4 ram5 tty16 tty40 tty8 vcsu
bus loop5 ram6 tty17 tty41 tty9 vcsu1
cachefiles loop6 ram7 tty18 tty42 ttyAMA0 vcsu2
cec0 loop7 ram8 tty19 tty43 ttyprintk vcsu3
char loop-control ram9 tty2 tty44 ttyS0 vcsu4
console mapper random tty20 tty45 uhid vcsu5
cuse media0 rfkill tty21 tty46 uinput vcsu6
disk media1 sda tty22 tty47 urandom vhci
dma_heap media2 sda1 tty23 tty48 v4l video10
dri mem sda2 tty24 tty49 vchiq video11
fd mqueue serial0 tty25 tty5 vcio video12
full net serial1 tty26 tty50 vc-mem video13
fuse null sg0 tty27 tty51 vcs video14
gpiochip0 ppp shm tty28 tty52 vcs1 video15
gpiochip1 ptmx snd tty29 tty53 vcs2 video16
gpiomem pts stderr tty3 tty54 vcs3 video18
hwrng ram0 stdin tty30 tty55 vcs4 video20
i2c-1 ram1 stdout tty31 tty56 vcs5 video21
i2c-2 ram10 tty tty32 tty57 vcs6 video22
initctl ram11 tty0 tty33 tty58 vcsa video23
input ram12 tty1 tty34 tty59 vcsa1 video31
kmsg ram13 tty10 tty35 tty6 vcsa2 watchdog
log ram14 tty11 tty36 tty60 vcsa3 watchdog0
loop0 ram15 tty12 tty37 tty61 vcsa4 zero
pi@cbridge:/dev $
step 9 does not show ethpi1 - 4 and I do not see any renameX interfaces.
Any help getting these recognized would be greatly apprciated.
On a different note, just FYI: