Kernel

/proc/net/netstat 未找到

  • September 21, 2017

我正在嘗試使用 OpenWRT 發行版為嵌入式設備編譯我自己的 Linux。我正在嘗試使用該/proc/net/netstat界面獲取一些多播資訊,但未找到(通常在我的桌面上可用)。

如果我是對的,這應該在 中啟用,kernel_menuconfig但我找不到與此相關的任何選項。

更新:我正在嘗試使用核心3.10.494.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() 函式產生了錯誤。

如果該部分發生錯誤,則必須查找錯誤原因。

引用自:https://unix.stackexchange.com/questions/344047