問題タブ [kernel-module]
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-kernel - printk 2 番目の出力
printk(KERN_INFO, ...) を実行すると、次のような結果が得られます。
<6>[116584.000183] ...
角かっこの間の数字は正確には何ですか?
linux-kernel - Linux カーネル モジュールからシリアル ポートにアクセスする
こんにちは、Linux カーネル ドライバーの達人です。
構成にシリアル インターフェイスを使用するカメラ用の v4l2 ドライバーを作成しています。カメラ モデル間でクライアント コードの一貫性を維持するため、ドライバーでカメラを構成する必要があります。問題は、ドライバ モジュールからカメラのシリアル インターフェイスにアクセスする最良の方法は何ですか?
私が聞いたところによると、カーネル ドライバーからファイルにアクセスすることは大したことではありませんが、それは可能です。そのため、現在次のコード スニペットを使用していますが、ハックのように感じます。
私の質問は本当にです:これを行う正しい方法は何ですか?
linux-kernel - 私のモジュールはどこへ行ったのですか?
しかしlsmod |grep try
、何も表示されないのはなぜですか?
android-emulator - コンパイルされた新しいLinuxカーネルイメージをAndroidエミュレーター(1.5)にロード中にエラーが発生しました
私はAndroid用のLinuxカーネルを正常にコンパイルしました:
しかし、エミュレータにこの画像をロードしているときに、次のエラーが発生します。
エミュレータが新しいカーネルイメージで起動しませんでした(エミュレータが再起動しませんでした)。ここでの問題は何ですか..?? エミュレータのイメージを新しくコンパイルされたLinuxに恒久的に置き換えるにはどうすればよいですか?
助けてください。ありがとう!
linux-kernel - netfilter prerouting フックのソース nat
netfilter prerouting フックで高度なソース nat を実行する独自のカーネル モジュールを開発しています。Linux カーネル 2.6.32 (Ubuntu 10.04) から 2.6.35 (Ubuntu 10.04 lucid-back-ports) にアップグレードした後、SNATted パケットが Linux カーネル内でドロップされるだけのようです。
一般的な用途 ( Netfilter メーリング リスト)の Prerouting フックで SNAT を実行するように勧められていないことは知っていますが、実際のルーティングの決定が行われる前にソース natting を実行することを好む理由がまだいくつかあります。
2.6.35+ Linux カーネルの netfilter prerouting フックで SNAT を実行するカーネル モジュールを開発した経験のある人はいますか? SNATted パケットがドロップされないようにするには、linux-kernel/netfilter-kernel-module コードで正確に何を変更する必要がありますか? おそらく、プレルーティングでの SNAT は 2.6.35 以降の Linux カーネルでは単純に悪い考えであり、ルーティングの決定には nf_marks を使用し、ポストルーティングで SNAT を行うべきではないでしょうか?
X86_64でバックポートされたLinuxカーネル(2.6.35)でUbunut 10.04を使用しています。
linux-kernel - 送受信されたIPパケットの数をカウントするために、Linux 2.6カーネルのどのモジュールを変更する必要がありますか?
カーネルモジュールを変更して、マシンがLinux2.6カーネル用のワイヤレスアダプターを介して送受信したパケットの数をカウントする必要があります。どのモジュールを変更する必要があるか教えてください。どんな参考文献も役に立ちます。
linux - Linux カーネル モジュールのプロファイリング
Linux カーネルのモジュールのプロファイリングに興味があります。私はこのようにしてみました:
- でカーネルを構築しました
CONFIG_PROFILING=y
- でカーネルを起動しました
profile=2
- プロファイラーをリセットする
echo 123 > /proc/profile
- モジュールは専用デーモンによって正常にロードされました
ioctl
特定の呼び出しを通じて、モジュールを使用しているユーザー空間アプリを実行します。テスト アプリは期待どおりに機能したため、モジュールは正常に機能していました。- System.appがカーネルと共に生成された
readprofile -p /proc/profile -m System.map
場所を使用して、プロファイリング情報を読み取ります。
ここまでは順調ですね。ほとんどすべてが期待どおりに機能しました。ただし、うまくいかなかったのは、モジュールに関する情報が得られなかったことです。つまり、モジュールからの機能についての言及がありませんでした。
しかし、よく考えてみると、を使用してモジュールを再コンパイルするのを忘れていたことを思い出しましたCONFIG_PROFILING=y
。
それで、私の質問は次のとおりです。モジュールがプロファイリング ログに表示されなかったのは、モジュールがコンパイルされていなかったCONFIG_PROFILING=y
ためですか、それとも、私が知らない他の明らかな理由があるのでしょうか?
すぐに試すのではなく、なぜ質問しているのか疑問に思うのは、それは、家ではできないので、コードに再びアクセスする前に、知識のある人が何を言うかを聞きたいからです.
ubuntu-10.04 - カーネルモードとユーザーモード間のioctl通信の使用
ioctlを使用してカーネルモジュールと通信したい。1つはカーネルモジュール用、もう1つはユーザーモード用の2つのcプログラムを作成しました。カーネルモジュールのコンパイル中にこのエラーが発生します:
エラー:初期化子で指定された不明なフィールド'ioctl'
この行で:
なぜこれが起こっているのか考えてみてください。
ありがとう
linux-kernel - Linux カーネル モジュールがメモリ リークしているかどうかを判断する方法
メモリ リーク時のカーネルの動作をテストするために、メモリを継続的に割り当てるカーネル モジュールを作成しています。たとえば、コードは次のようになります。
このコードは init_module にあります。次の質問があります
- コードでメモリ リークが発生したかどうかを判断するにはどうすればよいですか? lsmod はあまり明らかにしません。
- インターネット上のチュートリアルでは、init_module と exit_module のコードのみが示されています。モジュールが挿入されてから終了するまでの間、一定期間にわたってメモリ割り当てを行いたい場合はどうすればよいでしょうか。
- ユーザーがそうするように指示した場合にのみメモリリークするコードを書くことは可能ですか?
c - USB用簡易カーネルモジュール
Linuxカーネルモジュールに慣れようとしています。そこで、usb で動作するこの最も単純なモジュールを作成しました。何が欠けているのかわかりません。モジュールがロードされています。また、dmesgでこれを見ることができます:
しかし、USB スティックを挿入すると、testusb_probe 関数が呼び出されません。どこが間違っているのか。モジュールのコードは次のとおりです。