From 69ed96fba86f157ff5161a87957fbe4e68f980ec Mon Sep 17 00:00:00 2001 From: Catalin Toda Date: Fri, 15 Jul 2022 10:18:23 -0700 Subject: [PATCH] kernel: netconsole: add network console logging support Accessing the console on many devices is difficult. netconsole eases debugging on devices that crash after the network is up. Reference to the netconsole documentation in upstream Linux: | |netconsole=[+][src-port]@[src-ip]/[],[tgt-port]@/[tgt-macaddr] | | where | + if present, enable extended console support | src-port source for UDP packets (defaults to 6665) | src-ip source IP to use (interface address) | dev network interface (eth0) | tgt-port port for logging agent (6666) | tgt-ip IP address for logging agent | tgt-macaddr ethernet MAC address for logging agent (broadcast) OpenWrt specific notes: OpenWrt's device userspace scripts are attaching the network interface (i.e. eth0) to a (virtual) bridge (br-lan) device. This will cause netconsole to report: |network logging stopped on interface eth0 as it is joining a master device (and unfortunately the traffic/logs to stop at this point) As a workaround, the netconsole module can be manually loaded again after the bridge has been setup with: insmod netconsole netconsole=@/br-lan,@192.168.1.x/MA:C... One way of catching errors before the handoff, try to append the /etc/modules.conf file with the following extra line: options netconsole netconsole=@/eth0,@192.168.1.x/MA:C... and install the kmod-netconsole (=y) into the base image. Signed-off-by: Catalin Toda (Added commit message from PR, added links to documentation) Signed-off-by: Christian Lamparter (cherry picked from commit 488b25f5ac5028923f67e3beade92dab0c2591f1) --- package/kernel/linux/modules/netsupport.mk | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/package/kernel/linux/modules/netsupport.mk b/package/kernel/linux/modules/netsupport.mk index d8074d27b6..53e21c0e9f 100644 --- a/package/kernel/linux/modules/netsupport.mk +++ b/package/kernel/linux/modules/netsupport.mk @@ -1437,3 +1437,19 @@ define KernelPackage/wireguard/description endef $(eval $(call KernelPackage,wireguard)) + + +define KernelPackage/netconsole + SUBMENU:=$(NETWORK_SUPPORT_MENU) + TITLE:=Network console logging support + KCONFIG:=CONFIG_NETCONSOLE \ + CONFIG_NETCONSOLE_DYNAMIC=n + FILES:=$(LINUX_DIR)/drivers/net/netconsole.ko + AUTOLOAD:=$(call AutoProbe,netconsole) +endef + +define KernelPackage/netconsole/description + Network console logging support. +endef + +$(eval $(call KernelPackage,netconsole)) -- 2.30.2