#!/sbin/openrc-run # B12Q: usb_up + telnetd from the LFS init (DEVELOPMENT IDs 18d1:d001, NCM 172.16.42.1/24, root telnet bound to NCM only). Unchanged logic. description="Aurora USB NCM management + telnetd" depend() { after aurora-ro; } start() { ebegin "USB NCM gadget" grep -q " /sys/kernel/config " /proc/mounts || mount -t configfs configfs /sys/kernel/config for i in $(seq 1 50); do udc=$(ls /sys/class/udc 2>/dev/null | head -1); [ -n "$udc" ] && break; sleep 0.2; done [ -n "$udc" ] || { eend 1 "no UDC"; return 1; } G=/sys/kernel/config/usb_gadget/aurora if [ ! -d $G ]; then mkdir -p $G; echo 0x18d1 > $G/idVendor; echo 0xd001 > $G/idProduct mkdir -p $G/strings/0x409; echo Aurora > $G/strings/0x409/manufacturer; echo "Aurora RAM Boot" > $G/strings/0x409/product; echo > $G/strings/0x409/serialnumber mkdir -p $G/functions/ncm.usb0 $G/configs/c.1/strings/0x409; echo NCM > $G/configs/c.1/strings/0x409/configuration ln -s $G/functions/ncm.usb0 $G/configs/c.1/ fi [ -n "$(cat $G/UDC)" ] || echo "$udc" > $G/UDC || { eend 1 "bind UDC"; return 1; } ifc=$(cat $G/functions/ncm.usb0/ifname) ip link set lo up; ip addr show dev "$ifc" | grep -q " 172.16.42.1/24 " || ip addr add 172.16.42.1/24 dev "$ifc"; ip link set "$ifc" up pidof telnetd >/dev/null || telnetd -l /bin/sh -b 172.16.42.1 -p 23 eend $? "telnetd" }