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