問題タブ [netlink]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - カーネルパニックを引き起こすネットリンク
このプログラムを試しました。このプログラムはカーネルに「hello」を送信し、カーネルはユーザー空間に「hello」をもう一度 1 回返信します。
私の要件: ユーザーは「こんにちは」を送信し、2 秒ごとにメッセージを受信する必要があります。
私が試したこと。
ユーザー アプリ: 送受信のループを追加
カーネル モジュール: 何も変更されていません。
このコードは最初のループでのみ機能します。次回カーネルがクラッシュし、黒い画面でカーネルパニックエラーが発生します。再起動するたびに。なぜカーネルパニックが発生するのですか? どこを変更する必要がありますか? 問題はカーネルモジュールにあると思います。
カーネル:3.13.0-24-generic
c - いくつの netlink プロトコルを作成できますか?
次の netlink サンプル コード (カーネル バージョン 3.3.4) をテストしたところ、NETLINK_PROTOCOL が 31 より大きい数値に設定されている場合、モジュールの挿入が失敗することがわかりました。 5,17,19,21-31
これは、32 個のネットリンク プロトコルしか作成できないということですか?
linux - NETLINK_ROUTE チャネルを使用して、カーネル モジュールからユーザー空間プログラムにメッセージを送信できますか?
netlink
私は、ソケットとNETLINK_ROUTE
プロトコルを使用して、使用可能なイーサネット インターフェイスの動作状態をポーリングするユーザー空間プログラムを作成しました。
しかし今、NETLINK_ROUTE チャネルを使用してカスタマイズされた通知メッセージをこのユーザー空間プログラムに送信するカーネル モジュールを作成したいと考えています。
のマニュアルページを読んだ後netlink
、rtnetlink
それが実行可能かどうかはわかりません。どんな提案でも大歓迎です。
c - NETLINK_ROUTE を使用して、カーネル モジュールからユーザー空間プログラムにメッセージを送信する方法は?
NETLINK_ROUTE
ソケット プロトコル ファミリをリッスンするユーザー空間プログラムを作成しました。NETLINK_ROUTE
ここで、ユーザー空間プログラムがそれらのメッセージを受信できるように、メッセージを送信するカーネル モジュールを作成したいと考えています。THISなどの多くの記事を読みましたが、それらはすべて、新しいプロトコル ファミリを定義するか、NETLINK_GENERIC
. カーネルによってすでに作成されているため、NETLINK_ROUTE
ソケットを使用して作成できないことはわかっています。netlink_kernel_create
この既に作成されたソケットを使用してメッセージを送信する方法を知りたいです。