# SPDX-License-Identifier: GPL-2.0-only include $(TOPDIR)/rules.mk PKG_NAME:=uci-usb-gadget PKG_VERSION:=1.0.0 PKG_RELEASE:=1 PKG_LICENSE:=GPL-2.0-only PKG_MAINTAINER:=Miguel Fuertes include $(INCLUDE_DIR)/package.mk define Build/Prepare mkdir -p $(PKG_BUILD_DIR) endef define Build/Compile endef define Package/$(PKG_NAME) SECTION:=utils CATEGORY:=Utilities TITLE:=UCI-based USB gadget manager DEPENDS:=@USB_GADGET_SUPPORT \ +kmod-fs-configfs \ +kmod-usb-gadget \ +kmod-usb-lib-composite \ +kmod-usb-gadget-serial \ +kmod-usb-gadget-mass-storage \ +kmod-usb-gadget-ncm \ +coreutils-truncate \ +coreutils-shuf \ +coreutils-dd PKGARCH:=all endef define Package/$(PKG_NAME)/description UCI-based USB gadget manager using the kernel configfs interface. Configures OpenWrt devices as USB peripherals (RNDIS, ECM, NCM, ACM, Mass Storage) when connected to a host. Hardware-agnostic: auto-detects the UDC controller and integrates USB ethernet interfaces into the LAN bridge. endef define Package/$(PKG_NAME)/conffiles /etc/config/usbgadget endef define Package/$(PKG_NAME)/install $(INSTALL_DIR) $(1)/usr/sbin $(INSTALL_BIN) ./files/usb-gadget.sh $(1)/usr/sbin/usb-gadget $(INSTALL_DIR) $(1)/etc/init.d $(INSTALL_BIN) ./files/usb-gadget.init $(1)/etc/init.d/usb-gadget $(INSTALL_DIR) $(1)/etc/rc.d $(LN) ../init.d/usb-gadget $(1)/etc/rc.d/S99usb-gadget $(INSTALL_DIR) $(1)/etc/config $(INSTALL_CONF) ./files/usbgadget.config $(1)/etc/config/usbgadget endef define Package/$(PKG_NAME)/postinst #!/bin/sh [ -n "$${IPKG_INSTROOT}" ] || { /etc/init.d/usb-gadget enable } exit 0 endef define Package/$(PKG_NAME)/prerm #!/bin/sh [ -n "$${IPKG_INSTROOT}" ] || { /etc/init.d/usb-gadget stop /etc/init.d/usb-gadget disable } exit 0 endef $(eval $(call BuildPackage,$(PKG_NAME)))