問題タブ [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.
linux - netlinkソケット、kernelopps0002の問題
ユーザーモードからカーネルモジュールにデータを送信しようとしています。しかし、何かを送信すると、カーネルエラーが発生します。
バグ:カーネルページングリクエスト広告を処理できないffff88022f168bc0
IP:[<...>] build_skb + 0xf5 / 0x1c0
現在、この期間コードを使用しています。誰かがこの問題について意見を持っていますか?ありがとう〜
これが私がメッセージを受信するために使用するカーネルモジュールの関数です。
c - 3.X Linux カーネルを使用した C 言語の Netlink ソケット
こんにちは、私はNetlinkソケットを3.2 Linux カーネルで動作させることに取り組んでいますが、その方法がわかりません。Netlinkソケットの基本の例を探してみましたが、見つかった例はすべて2.6 カーネル用のようです。
私が見つけようとしているのは、Netlink ソケットを使用して、カーネル モジュールからユーザー モード アプリケーションに、またはその逆に情報を送信する方法です。
どんな助けでも大歓迎です。ありがとう!
linux-kernel - デーモンモードで netlink_unicast return errno -111 (接続が拒否されました)
ユーザー空間で実行されているデーモン プロセスと通信するために、Netlink を使用する Linux カーネル モジュールがあります。
開発段階では、デーモン実行可能ファイルを通常のプロセスのように (を呼び出さずにfork()
) 常に実行しており、すべて正常に動作していました。
現在、主な動作の開発は終了しているので--daemon
、メソッドを呼び出す引数を実装していますfork()
(またsetsid()
、リンクhttp://www.thegeekstuff.com/2012/02/c-daemon-process/で説明されているように) ) 通常のプロセスを続行する直前に。
次のステップは、Netlink ソケットを初期化した後のデーモンが Linux カーネル モジュールを呼び出し、これがメッセージをプッシュするためにデーモンの PID を保存することです。Linux カーネル デーモンは、デーモン プロセスからメッセージを正しく受信しますが、netlink_unicast()
エラー番号 -111 (接続が拒否されました) を返すメッセージを使用してメッセージを送信できません。
Linux カーネル モジュールが受け取った PID を確認しましたが、フォークされた後のデーモンと同じで、正しいように見えます。
recvmsg()
デーモン プロセスが fork されると、Linux Kernel Module から(メソッドを使用して) メッセージを受信できなくなる理由を知っていますか?
c - netlink_kernel_create が最新の Linux カーネルで動作しない
kernel
netlink 関数を使用している古いモジュールのコンパイル中にコンパイラ エラーが発生します。
以前は正常に動作していましたが、現在このエラーが発生しています。
OS情報
linux - Net Link Linux ユーザー コード バインド ソケット呼び出しは、マルチキャスト グループ ID (ゼロ以外の値) に対して常に失敗します。
こんにちは、ユニキャスト (src_addr.nl_groups = 0;) ですべて正常に動作するネット リンク ユーザー コードとカーネル コードを実装しようとしています。マルチキャストの場合、ゼロ以外の src_addr.nl_groups 値の場合、ユーザー コード バインド呼び出しは常に失敗します。マルチキャストにどのような価値を置き、さらにどのように進めるかは本当にわかりません。カーネル ソース ツリーで netlink_broadcast の使用状況を確認したので、同じグループ ID 値 (RTMGRP_LINK) をここに入れます。ユニキャストの場合、インターネットで多くのヘルプが見つかりましたが、マルチキャストの場合はそうではないと思います。だから私がさらに進むのを手伝ってください。
取得中のエラーは次のとおりです。
bind: そのようなファイルやディレクトリはありません
./a.out: ソケット (3) をバインドできません。エラー: -1: そのようなファイルまたはディレクトリはありません
linux - netlink ソケットを作成できません: プロトコルがサポートされていません
libipq ライブラリと一緒に netfilter を使用して IPv6 パケットをインターセプトする例を見つけました。
まず、ipq_handle 構造体を宣言して作成します。
対応する die() 関数は次のようになります
ただし、プログラムが正しく実行されず、次のメッセージが生成されます。
通行人: netlink ソケットを作成できません: プロトコルがサポートされていません
誰でも問題の考えられる原因を知っていますか?
linux - m フラグと o フラグが Linux に格納される場所
最近受信したRouter Advertisementのmフラグとoフラグの値を知りたいです。カーネルのソースコードからmフラグとoフラグが格納されていることがわかりました。
次に、ioctl や proc ファイルシステム、またはその他の方法を使用して、これらの値を取得できるはずです。どなたかその方向を教えてください。