/proc/net/netstat 未找到
我正在嘗試使用 OpenWRT 發行版為嵌入式設備編譯我自己的 Linux。我正在嘗試使用該
/proc/net/netstat
界面獲取一些多播資訊,但未找到(通常在我的桌面上可用)。如果我是對的,這應該在 中啟用,
kernel_menuconfig
但我找不到與此相關的任何選項。更新:我正在嘗試使用核心
3.10.49
和4.4.14
. 在這兩種情況下proc.c
都已編譯(proc.o
在 my 中可用build_dir
,/proc
已安裝,但/proc/net/netstat
不存在。
過了一會兒,我剛剛回到這個問題,終於解決了。問題是,OpenWRT 正在跟踪核心原始碼,應該禁用一個額外的選項,即
CONFIG_PROC_STRIPPED
. 這位於
(make) kernel_menuconfig -> File systems -> Pseudo filesystems -> [ ] Strip non-essential /proc functionality to reduce code size
解決方法是查看核心原始碼的修補版本,而不是官方版本。感謝您所做的一切努力!
/proc/net/netstat 由 net/ipv4/proc.c 生成。
net/ipv4/proc.c 在 ip_proc_init_net() 函式中,它是作為 proc_create() 生成的,如下面的原始碼。
你說 net/ipv4/proc.o 被編譯了。
如源碼所示,net/ipv4/proc.c 創建 /proc/net/sockstat、netstat 和 snmp。
創建的 /proc/net/udp 是由 net/ipv4/udp.c 生成的。
首先在 /proc/net/ 中查找 sockstat 和 snmp。
此外,請確保 net/ipv4/proc.c 中的 ip_proc_init_net () 函式使用 proc_create() 函式產生了錯誤。
如果該部分發生錯誤,則必須查找錯誤原因。