pmaports/main/postmarketos-mkinitfs-hook-netboot/netboot.sh

36 lines
936 B
Bash
Raw Normal View History

#!/bin/sh
# shellcheck disable=SC1091
. ./init_functions.sh
. /usr/share/misc/source_deviceinfo
NBD_PORT=9999
NBD_BLOCK_SIZE=${deviceinfo_rootfs_image_sector_size:-512}
setup_usb_network
start_unudhcpd
show_splash "Waiting for netboot...\\nhttps://postmarketos.org/netboot"
# Attempt to load the kernel module if CONFIG_BLK_DEV_NBD=m
modprobe nbd
# Check that we actually have nbd0 available, otherwise show an error screen.
if [ ! -b /dev/nbd0 ]; then
echo "Failed to get /dev/nbd0, stopping."
show_splash "ERROR: Failed to initialise netboot\\nhttps://postmarketos.org/netboot"
fail_halt_boot
fi
client_ip="${unudhcpd_client_ip:-172.16.42.2}"
while ! busybox nbd-client "$client_ip" $NBD_PORT /dev/nbd0 -b "$NBD_BLOCK_SIZE"; do
echo "Connection attempt not successful, continuing..."
sleep 1
done
echo "Connected to $client_ip!"
# Show "Loading" splash again when continuing
show_splash "Loading..."
mount_subpartitions