/proc/net/netstat が見つかりません

/proc/net/netstat が見つかりません

OpenWRTディストリビューションを使用して組み込みデバイス用のLinuxをコンパイルしようとしています。インターフェイスを使用していくつかのマルチキャスト情報を取得しようとしてい/proc/net/netstatません(通常は私のデスクトップで利用可能です)。

私の考えが正しい場合、この機能はで有効にする必要がありますが、kernel_menuconfigそれに関連するオプションは見つかりません。

修正する3.10.49:カーネルを使用しようとしていますが4.4.14、どちらの場合もproc.cコンパイルされました(proc.o私は利用可能ですbuild_dir/procインストールされ/proc/net/netstatていません)。

答え1

この問題をもう一度解決するのに時間がかかり、ついに解決されました。問題は、OpenWRTがカーネルソースコードを追跡していることです。追加オプションは次のとおりです。障害のある、すなわちCONFIG_PROC_STRIPPEDにあります。

(make) kernel_menuconfig -> File systems -> Pseudo filesystems -> [ ] Strip non-essential /proc functionality to reduce code size

この問題に対する解決策は、公式バージョンではなくカーネルソースコードのパッチバージョンを見ることです。あらゆる努力に感謝します!

答え2

/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() 関数を使用してエラーを生成したことを確認してください。
このセクションでエラーが発生した場合は、エラーの原因を特定する必要があります。

関連情報