diff --git a/config/boards/oneplus-kebab.conf b/config/boards/oneplus-kebab.conf index 0841693d6..4a8461303 100644 --- a/config/boards/oneplus-kebab.conf +++ b/config/boards/oneplus-kebab.conf @@ -25,9 +25,14 @@ function post_family_tweaks_bsp__oneplus-kebab_firmware() { # USB Gadget Network service mkdir -p $destination/usr/local/bin/ mkdir -p $destination/usr/lib/systemd/system/ + mkdir -p $destination/etc/initramfs-tools/scripts/init-bottom/ install -Dm655 $SRC/packages/bsp/usb-gadget-network/setup-usbgadget-network.sh $destination/usr/local/bin/ install -Dm655 $SRC/packages/bsp/usb-gadget-network/remove-usbgadget-network.sh $destination/usr/local/bin/ install -Dm644 $SRC/packages/bsp/usb-gadget-network/usbgadget-rndis.service $destination/usr/lib/systemd/system/ + install -Dm655 $SRC/packages/bsp/usb-gadget-network/usb-gadget-initramfs-hook $destination/etc/initramfs-tools/hooks/usb-gadget + install -Dm655 $SRC/packages/bsp/usb-gadget-network/usb-gadget-initramfs-premount $destination/etc/initramfs-tools/scripts/init-premount/usb-gadget + install -Dm655 $SRC/packages/bsp/usb-gadget-network/dropbear $destination/etc/initramfs-tools/scripts/init-premount/ + install -Dm655 $SRC/packages/bsp/usb-gadget-network/kill-dropbear $destination/etc/initramfs-tools/scripts/init-bottom/ # Bluetooth MAC addr setup service install -Dm655 $SRC/packages/bsp/generate-bt-mac-addr/bt-fixed-mac.sh $destination/usr/local/bin/ @@ -64,7 +69,7 @@ function post_family_tweaks__oneplus-kebab_enable_services() { do_with_retries 3 chroot_sdcard_apt_get_update display_alert "$BOARD" "Installing board tweaks" "info" - do_with_retries 3 chroot_sdcard_apt_get_install alsa-ucm-conf qbootctl qrtr-tools unudhcpd mkbootimg + do_with_retries 3 chroot_sdcard_apt_get_install alsa-ucm-conf qbootctl qrtr-tools unudhcpd mkbootimg dropbear-bin # disable armbian repo back mv "${SDCARD}"/etc/apt/sources.list.d/armbian.list "${SDCARD}"/etc/apt/sources.list.d/armbian.list.disabled diff --git a/config/boards/xiaomi-elish.conf b/config/boards/xiaomi-elish.conf index 026c2bc38..fd5b7a31c 100644 --- a/config/boards/xiaomi-elish.conf +++ b/config/boards/xiaomi-elish.conf @@ -38,6 +38,10 @@ function post_family_tweaks_bsp__xiaomi-elish_firmware() { install -Dm655 $SRC/packages/bsp/usb-gadget-network/setup-usbgadget-network.sh $destination/usr/local/bin/ install -Dm655 $SRC/packages/bsp/usb-gadget-network/remove-usbgadget-network.sh $destination/usr/local/bin/ install -Dm644 $SRC/packages/bsp/usb-gadget-network/usbgadget-rndis.service $destination/usr/lib/systemd/system/ + install -Dm655 $SRC/packages/bsp/usb-gadget-network/usb-gadget-initramfs-hook $destination/etc/initramfs-tools/hooks/usb-gadget + install -Dm655 $SRC/packages/bsp/usb-gadget-network/usb-gadget-initramfs-premount $destination/etc/initramfs-tools/scripts/init-premount/usb-gadget + install -Dm655 $SRC/packages/bsp/usb-gadget-network/dropbear $destination/etc/initramfs-tools/scripts/init-premount/ + install -Dm655 $SRC/packages/bsp/usb-gadget-network/kill-dropbear $destination/etc/initramfs-tools/scripts/init-bottom/ # Bluetooth MAC addr setup service install -Dm655 $SRC/packages/bsp/generate-bt-mac-addr/bt-fixed-mac.sh $destination/usr/local/bin/ @@ -67,7 +71,7 @@ function post_family_tweaks__xiaomi-elish_enable_services() { do_with_retries 3 chroot_sdcard_apt_get_update display_alert "$BOARD" "Installing board tweaks" "info" - do_with_retries 3 chroot_sdcard_apt_get_install alsa-ucm-conf qbootctl qrtr-tools unudhcpd mkbootimg + do_with_retries 3 chroot_sdcard_apt_get_install alsa-ucm-conf qbootctl qrtr-tools unudhcpd mkbootimg dropbear-bin # Install hexagonrpc userspace service for kernel after 6.11, hexagonrpc in only packaged for noble now if [[ "${RELEASE}" == "noble" ]]; then diff --git a/packages/bsp/usb-gadget-network/dropbear b/packages/bsp/usb-gadget-network/dropbear new file mode 100755 index 000000000..484481eee --- /dev/null +++ b/packages/bsp/usb-gadget-network/dropbear @@ -0,0 +1,15 @@ +#!/bin/sh + +prereqs() +{ + echo "${PREREQ}" +} + +case ${1} in + prereqs) + prereqs + exit 0 + ;; +esac + +nohup /usr/sbin/dropbear -j -k -F -E -R >> /run/initramfs/dropbear.log 2>&1 & diff --git a/packages/bsp/usb-gadget-network/kill-dropbear b/packages/bsp/usb-gadget-network/kill-dropbear new file mode 100755 index 000000000..2b059615c --- /dev/null +++ b/packages/bsp/usb-gadget-network/kill-dropbear @@ -0,0 +1,16 @@ +#!/bin/sh + +prereqs() +{ + echo "${PREREQ}" +} + +case ${1} in + prereqs) + prereqs + exit 0 + ;; +esac + +logsave -a -s /run/initramfs/kill-dropbear.log pkill dropbear +exit 0 diff --git a/packages/bsp/usb-gadget-network/usb-gadget-initramfs-hook b/packages/bsp/usb-gadget-network/usb-gadget-initramfs-hook new file mode 100755 index 000000000..632561987 --- /dev/null +++ b/packages/bsp/usb-gadget-network/usb-gadget-initramfs-hook @@ -0,0 +1,17 @@ +#!/bin/bash +[[ "$1" == "prereqs" ]] && exit 0 +. /usr/share/initramfs-tools/hook-functions + +copy_exec "/usr/local/bin/setup-usbgadget-network.sh" +copy_exec "/bin/bash" +copy_exec "/bin/ip" +copy_exec "/usr/bin/nohup" +copy_exec "/usr/bin/unudhcpd" +copy_exec "/usr/bin/pgrep" +copy_exec "/usr/sbin/dropbear" +copy_exec "/usr/bin/pkill" +copy_exec "/usr/sbin/parted" +copy_file config "/etc/protocols" +copy_file config "/etc/shadow" + +mkdir -p "${DESTDIR}/etc/dropbear" diff --git a/packages/bsp/usb-gadget-network/usb-gadget-initramfs-premount b/packages/bsp/usb-gadget-network/usb-gadget-initramfs-premount new file mode 100755 index 000000000..e38acf98a --- /dev/null +++ b/packages/bsp/usb-gadget-network/usb-gadget-initramfs-premount @@ -0,0 +1,18 @@ +#!/bin/sh + +prereqs() +{ + echo "${PREREQ}" +} + +case ${1} in + prereqs) + prereqs + exit 0 + ;; +esac + +mount -t configfs none /sys/kernel/config +mkdir -p /var/log +logsave -a -s /run/initramfs/usb-gadget-rndis.log /usr/local/bin/setup-usbgadget-network.sh +exit 0