1

ルーティング フレームに署名認証を追加するために、カーネル ソース コード (/linux/net/mac80211/mesh_hwmp.c) を変更しています。ソースコードを変更した後、変更を有効にするためにカーネルを再度ビルドしてインストールする必要がありますか?

私が従った手順は次のとおりです。

  1. からカーネルをダウンロードしましたgit://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-testing.git

  2. ダウンロード後、wireless-testing の /boot ディレクトリから現在の構成をコピーしました$ cp /boot/config- `uname-r` ./.config

  3. make menuconfig次の機能を実行して選択しました: Networking -> Wireless -> Generic IEEE 802.11 Networking Stack (mac80211 )

  4. を使用して構築しましたfakeroot make-kpkg - initrd kernel_image kernel_headers

  5. カーネルを構築した後、コマンドを使用して、作成された .deb パッケージ (コアとそのヘッダー) をインストールしました。 $ sudo dpkg-i linux-*.deb

  6. システムを再起動しました

コード (/net/mac80211/mesh_hwmp.c) に変更を加えるたびにこれを行う必要があるとしたら、時間のかかるプロセスです。カーネルを再構築することでやり過ぎているかどうかはわかりません。mac80211 ディレクトリで Makefile を実行するだけで十分ですか? それとも、どうしてもこのプロセスを経なければならないのでしょうか。

4

1 に答える 1

0

/bootディストリビューションのデフォルト構成からの現在の構成ですか? もしそうなら、それはおそらくあなたが決して必要としない何百または何千ものモジュールを含んでいます. 一度それを行い、カーネルをインストールして起動します。次に、関心のあるモジュール (wifi を有効にする、USB デバイスを接続するなど) をロードmake localmodconfigし、カーネル ソース ツリーで実行することを確認します (詳細については、を参照make helpしてください)。必要に応じてさらに構成を有効にし、それを開発に使用します。

sudo make INSTALL_MOD_STRIP=1 modules_install installまた、カーネルをインストールするために多くのディストリビューションで正しいことを行うことがわかり、パッケージの作成に関連する問題を回避して再構築を強制することもできます。欠点は、古いカーネル、構成、initrds/bootおよびモジュールを手動で削除する必要があることです/lib/modules

于 2015-12-30T12:34:18.447 に答える