boot/: files for the FAT boot partition.extlinux/extlinux.confboots BQ2 withcleave-init; fallback entries use busybox init or a rescue shell.rootfs/: files layered over the BQ2 seed, owned by root:etc/cleave/init.json: mounts and services forcleave-init. These are mdev, syslog, a root shell on the ttyS2 console, DHCP on eth0, Wi-Fi with DHCP on wlan0, and NTP.etc/mdev.conf: mdev loads the module for each device that appears, by its modalias.etc/passwd,etc/group,etc/shadow: root and nobody. Logins are locked; the serial console is a root shell with no password, for bring-up with physical access.etc/ld-musl-aarch64.path: adds/usr/lib/aarch64-bq2-linux-musl. The 0.4.0 seed's version leaves it out, socrystalandbq2can't findlibunwind.so.1.usr/share/udhcpc/default.script: sets the address, route and DNS from DHCP.usr/sbin/cleave-provision: Wi-Fi networks and hostname from the boot partition (see Wi-Fi).
Build the image with tools/build-beagley-ai-image.sh SEED BSP_DIR OUTPUT [LAYER...].
BSP_DIR holds tiboot3.bin, tispl.bin, u-boot.img, Image and
dtb/ti/k3-am67a-beagley-ai.dtb. The script cross-compiles cleave-init against the
seed's libraries and runs cleave-image.
Wi-Fi
The image has the CC33xx driver and firmware and wpa_supplicant, but no network to join:
credentials never go into the image. At boot, /usr/sbin/cleave-provision (the provision
service) writes /run/wpa_supplicant.conf from the FAT boot partition (/boot on the board):
- bb-imager-rs: flash with its customization set to cloud-init (
--cloud-initon the command line). It writescloud-initon the boot partition; the image takes its Wi-Fi network and hostname from it. Its user, SSH key, timezone and keyboard are not used yet. Its "sysconf" customization (sysconf.txtand an iwd.pskfile) is not read. - By hand: a
wpa_supplicant.confon the boot partition is used as it is, ahead ofcloud-init, for example:
ctrl_interface=/run/wpa_supplicant
update_config=0
network={
ssid="YOUR-SSID"
psk="YOUR-PASSPHRASE"
}
The wifi service runs wpa_supplicant on wlan0 with it, and wifi-dhcp gets an address.
Both are restarted until the interface and the file are there. Only WPA2-PSK is built in
(wpa_supplicant's internal TLS has no SAE, so no WPA3). wpa_cli is there too.