forked from openwrt/openwrt
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
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>
- Loading branch information
Showing
3 changed files
with
141 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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)) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
config service hostapd | ||
option enabled 0 | ||
config service wpa_supplicant | ||
option enabled 0 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 | ||
} |