udebug: add new package
This will help with debugging by providing system wide access to per-process ring buffers with debug data. Signed-off-by: Felix Fietkau <nbd@nbd.name>
This commit is contained in:
parent
c4fe1bfc65
commit
bc6ee34c97
3 changed files with 141 additions and 0 deletions
82
package/libs/udebug/Makefile
Normal file
82
package/libs/udebug/Makefile
Normal file
|
@ -0,0 +1,82 @@
|
||||||
|
#
|
||||||
|
# Copyright (C) 2023 OpenWrt.org
|
||||||
|
#
|
||||||
|
# This is free software, licensed under the GNU General Public License v2.
|
||||||
|
# See /LICENSE for more information.
|
||||||
|
#
|
||||||
|
|
||||||
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
|
PKG_NAME:=udebug
|
||||||
|
CMAKE_INSTALL:=1
|
||||||
|
PKG_SOURCE_PROTO:=git
|
||||||
|
PKG_SOURCE_URL=$(PROJECT_GIT)/project/udebug.git
|
||||||
|
PKG_MIRROR_HASH:=3447dc6edd1b76f7ea5b9650a2aedcab69aba6048fa5ab7b1732cad592651fbc
|
||||||
|
PKG_SOURCE_DATE:=2023-11-19
|
||||||
|
PKG_SOURCE_VERSION:=44351435e28c6c878bf0a9054cb002704312d60e
|
||||||
|
PKG_ABI_VERSION:=$(call abi_version_str,$(PKG_SOURCE_DATE))
|
||||||
|
|
||||||
|
PKG_LICENSE:=GPL-2.0
|
||||||
|
PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
|
||||||
|
|
||||||
|
include $(INCLUDE_DIR)/package.mk
|
||||||
|
include $(INCLUDE_DIR)/cmake.mk
|
||||||
|
|
||||||
|
define Package/libudebug
|
||||||
|
SECTION:=libs
|
||||||
|
CATEGORY:=Libraries
|
||||||
|
TITLE:=udebug client library
|
||||||
|
DEPENDS:=+libubox
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/udebugd
|
||||||
|
SECTION:=utils
|
||||||
|
CATEGORY:=Utilities
|
||||||
|
TITLE:=OpenWrt debug service
|
||||||
|
DEPENDS:=+libudebug +libubus
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/udebugd/conffiles
|
||||||
|
/etc/config/udebug
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/ucode-mod-udebug
|
||||||
|
SECTION:=utils
|
||||||
|
CATEGORY:=Utilities
|
||||||
|
TITLE:=ucode udebug module
|
||||||
|
DEPENDS:=+libucode +libudebug
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/udebug-cli
|
||||||
|
SECTION:=utils
|
||||||
|
CATEGORY:=Utilities
|
||||||
|
TITLE:=OpenWrt debug service CLI
|
||||||
|
DEPENDS:=+udebugd +ucode-mod-udebug
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/libudebug/install
|
||||||
|
$(INSTALL_DIR) $(1)/usr/lib
|
||||||
|
$(CP) $(PKG_INSTALL_DIR)/usr/lib/*.so* $(1)/usr/lib
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/ucode-mod-udebug/install
|
||||||
|
$(INSTALL_DIR) $(1)/usr/lib/ucode
|
||||||
|
$(CP) $(PKG_INSTALL_DIR)/usr/lib/ucode/*.so $(1)/usr/lib/ucode
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/udebugd/install
|
||||||
|
$(INSTALL_DIR) $(1)/usr/sbin $(1)/etc/init.d $(1)/etc/config
|
||||||
|
$(INSTALL_BIN) ./files/udebug.config $(1)/etc/config/udebug
|
||||||
|
$(INSTALL_BIN) ./files/udebug.init $(1)/etc/init.d/udebug
|
||||||
|
$(CP) $(PKG_INSTALL_DIR)/usr/sbin/udebugd $(1)/usr/sbin
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/udebug-cli/install
|
||||||
|
$(INSTALL_DIR) $(1)/usr/sbin
|
||||||
|
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/udebug-cli $(1)/usr/sbin/udebug
|
||||||
|
endef
|
||||||
|
|
||||||
|
$(eval $(call BuildPackage,libudebug))
|
||||||
|
$(eval $(call BuildPackage,udebugd))
|
||||||
|
$(eval $(call BuildPackage,ucode-mod-udebug))
|
||||||
|
$(eval $(call BuildPackage,udebug-cli))
|
4
package/libs/udebug/files/udebug.config
Normal file
4
package/libs/udebug/files/udebug.config
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
config service hostapd
|
||||||
|
option enabled 0
|
||||||
|
config service wpa_supplicant
|
||||||
|
option enabled 0
|
55
package/libs/udebug/files/udebug.init
Executable file
55
package/libs/udebug/files/udebug.init
Executable file
|
@ -0,0 +1,55 @@
|
||||||
|
#!/bin/sh /etc/rc.common
|
||||||
|
# Copyright (c) 2021 OpenWrt.org
|
||||||
|
|
||||||
|
START=11
|
||||||
|
|
||||||
|
USE_PROCD=1
|
||||||
|
PROG=/usr/sbin/udebugd
|
||||||
|
|
||||||
|
start_service() {
|
||||||
|
procd_open_instance
|
||||||
|
procd_set_param command "$PROG"
|
||||||
|
procd_set_param respawn
|
||||||
|
procd_close_instance
|
||||||
|
}
|
||||||
|
|
||||||
|
get_vars() {
|
||||||
|
local cfg="$1"
|
||||||
|
uci show "udebug.$cfg" | while read LINE; do
|
||||||
|
cur="${LINE##udebug.$1.}"
|
||||||
|
[[ "$cur" = "$LINE" ]] && continue
|
||||||
|
var="${cur%%=*}"
|
||||||
|
[[ "$cur" = "$var" ]] && continue
|
||||||
|
echo "$var"
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
add_debug_service() {
|
||||||
|
local cfg="$1"
|
||||||
|
|
||||||
|
json_add_object "$cfg"
|
||||||
|
for var in $(get_vars "$cfg"); do
|
||||||
|
config_get val "$cfg" "$var"
|
||||||
|
json_add_string "$var" "$val"
|
||||||
|
done
|
||||||
|
json_close_object "$cfg"
|
||||||
|
}
|
||||||
|
|
||||||
|
reload_service() {
|
||||||
|
config_load udebug
|
||||||
|
|
||||||
|
json_init
|
||||||
|
json_add_object service
|
||||||
|
config_foreach add_debug_service service
|
||||||
|
json_close_object
|
||||||
|
ubus call udebug set_config "$(json_dump)"
|
||||||
|
}
|
||||||
|
|
||||||
|
service_triggers() {
|
||||||
|
procd_add_reload_trigger udebug
|
||||||
|
}
|
||||||
|
|
||||||
|
service_started() {
|
||||||
|
ubus -t 10 wait_for udebug
|
||||||
|
[ $? = 0 ] && reload_service
|
||||||
|
}
|
Loading…
Reference in a new issue