私はVyOS開発が初めてです。 VyOSカーネルモジュールから情報を取得し、それをnetlinkソケットに書き込むパッチを作成しました。しかし、問題は、私が定義した関数を呼び出すためにカーネルモジュールコードを直接編集する必要があるのか、それともパッチを書くのかわかりません。パッチファイルを作成する必要がある場合は、カーネルソースのどこに配置する必要がありますか? diffコマンドを使用してパッチファイルを作成しました。
答え1
長い検索の最後に私が直面していた問題を解決しました。皆さんの中で同じ問題に封着した場合に備え、結論は次のとおりです。
はい、VyOS開発でカーネルモジュールコードを編集できます。しかし、このアプローチはあまり注目を集めなかった。
はい、カーネルモジュール用のパッチも作成できます。で説明されているようにGIT形式でなければなりません。VyOSパッチの作成方法。まもなく
.patch
VyOSカーネルコードでファイルを配置する場所を更新する予定です。
デバッグ出力チェックを有効にするには、オプションをdmesg
使用します。KERN_DEBUG
他人にはよく分からないからです。
printk(KERN_DEBUG "%s: Debuging info \n", __FUNCTION__);
また、VyOS カーネルの修正を確認するために必ず完全な ISO ファイルを作成する必要はありません。次のコマンドを実行します。
*各パスは、パスの問題を回避するために、毎回デフォルトのisoビルドディレクトリで説明されています。
cd build-iso/
sudo make clean-linux-image
sudo make linux-image
それから
cd buil-iso/pkgs/
ここでこれらのDebianパッケージを見つけることができます。
buil-iso/pkgs/linux-image-3.13.11-1-amd64-vyos_999.dev_amd64.deb
buil-iso/pkgs/linux-libc-dev_999.dev_amd64.deb
buil-iso/pkgs/linux-vyatta-kbuild_999.dev_amd64.deb
このファイルをインストールされたVyOSシステムにコピーし、そこにインストールします。
dpkg -i linux-image-3.13.11-1-amd64-vyos_999.dev_amd64.deb
dpkg -i linux-libc-dev_999.dev_amd64.deb
dpkg -i linux-vyatta-kbuild_999.dev_amd64.deb
reboot
システムを使用して変更を確認してくださいdmesg
。