修正されたFreeBSDソースコードをテストする方法は?

修正されたFreeBSDソースコードをテストする方法は?

cc_newreno.c(にあります/usr/src/sys/netinet/cc)というソースファイルのコピーを作成し、それを変更してcc_newreno_mod.cFreeBSD(NewReno)のデフォルトの輻輳制御アルゴリズムを変更しようとしています。

私がいくつかの修正を行ったとしましょう。どうやってテストしますか?cc_newreno_mod.c組み込みのCコンパイラを使用して直接コンパイルすると、いくつかのエラーが発生しますnetinet/cc/cc_module.h file not found

新しいカーネルを構築する必要がありますか?変更されたファイルのモジュールは自動的に生成されますか?それとも私が完全に間違っているので、別のアプローチを取るべきですか?

答え1

カーネルモジュールをコンパイルするには、Makefileカーネルモジュールmakefileを作成して含める必要があります/usr/src/share/mk/bsd.kmod.mk。たとえば、次のようになります。

# Note: It is important to make sure you include the <bsd.kmod.mk>  makefile after declaring the KMOD and SRCS variables.

# Declare Name of kernel module
KMOD    =  module

# Enumerate Source files for kernel module

SRCS    =  module.c

# Include kernel module makefile
.include <bsd.kmod.mk>

最後に、makeを実行してコンパイルすると、正しくコンパイルされているかどうかをテストできます。
カーネルモジュール()には表示されませんが、リストされている/boot/kernel/*.koため、sys/conf/files変更を適用するにはカーネルを再コンパイルする必要があるようです。詳細については、次を参照してください。ページ。コピーなので、cc_newreno.c元のコピーの名前を/usr/src/sys/netinet/cc/cc_newreno.c別の名前に変更して保存し、そこに新しいコピーをコピーして再コンパイルできます。

答え2

netinetは現在カーネルモジュールではないため、変更されたファイルをsys / conf /ファイルに追加することをお勧めします。

関連情報