mirror of
git://git.openwrt.org/openwrt/openwrt.git
synced 2025-01-10 00:29:26 +00:00
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
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 New Issue
Block a user