私はコンピュータ上の利点を活用するためにさまざまな設定オプションを有効にしました。新しく含まれています wireguard
モジュール入力Linux 5.6.0-rc1。
少し大変でした。最小限の作業構成があり、ネットワークインターフェースを設定しようとしたときに受け取ったエラーをガイドとして使用するwireguard
まで、慣れていないカーネル構成オプションを1つずつ有効にする必要がありました(例:wireguard
オプションは、CONFIG_IP_NF_MANGLE
)。
可能であれば、このプロセスを別のコンピュータに自動的に複製したいと思います。そして、他のラップトップには比較的小さなカスタマイズされた構成コアがあるので、まったく異なるシステムです。make localmodconfig
~へ現在のとにかく両方の構成をマージする必要があるため、マシンは実際にはオプションではありません。
私は何を達成したいと思うか。
lsmod
私は(例えばiptable_mangle
)リストされたモジュール名を入力として使用し、それを有効にするために関連したカーネルオプションを返すプロセスが欲しい(おそらくCONFIG_IP_NF_MANGLE=m
この場合は?)。
頑張りました
iptable_mangle
Linuxソースコード(複製)のカーネルモジュールのgrepを使用して、そのgithub
カーネルオプションに接続することを見つけようとしています。現在システムで実行されている
modinfo <target module name>
場合は、表示される情報にカーネル構成オプションが記載されていることを願っています。
これらのどれも機能しません。どちらの場合も、出力CONFIG_IP_NF_MANGLE
には何も言及されません。
答え1
ああ!私はかなり確実なものを見つけたと信じています。
Linuxツリーの参照後ろにiptable_raw
私のモジュール名(たとえば、何を持っているのか)を繰り返し設定して把握すると、一致する複数xt_addrtype
行の中から常に次の形式のいずれかが生成されます。
<whatever>/Makefile:obj-$(<RELEVANT KERNEL CONFIG OPTION>) += <module name>.o`
具体的に実行
grep -rE '\+\=\s*nf_defrag_ipv6'
ソースツリーのルートから作成された
net/ipv6/netfilter/Makefile:obj-$(CONFIG_NF_DEFRAG_IPV6) += nf_defrag_ipv6.o
これはこれがCONFIG_NF_DEFRAG_IPV6
有効になったことを示しますnf_defrag_ipv6
。
複数のモジュールでこれを試しましたが、常に返されたこの形式の一意の行がありますgrep
。これで、これはスクリプト化が非常に簡単に見え、おおよそ言うとハッシュを生成します。
lsmod
キーで返されるモジュール名- カーネル構成オプションを値と一致させます。
編集する:
文書についての一言:原則として、上記のパターンは説明したようにgrepで見つけることができますが、実際に私の注目を集めたのは次のような構文でした+= <object file name>
。Kconfig ドキュメント、インスピレーションを得るために精読しています。