問題タブ [insmod]

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.

0 投票する
1 に答える
1285 参照

linux - カーネル モジュールがリンクされない - シンボル mutex_lock_nested が見つかりません

x64 上の Linux 3.10.45 用のカーネル モジュール (ハードウェアのストレス テスト ツール) を構築しようとしています。これまでのところ、ミューテックスを追加するまでは問題なく動作しているように見えました。

関数を使用してミューテックスを追加し、mutex_init、mutex_lock、mutex_unlock、mutex_destroy を追加しました。

モジュールをビルドしてもエラーや警告は発生しませんでしたが、「insmod」でロードすると、dmesg にエラー メッセージが表示されます。

「不明なシンボル」の場合、MODULE_LICENSE("GPL v2") 行を追加すると役立つ場合があるというヒントを見つけました。

変わりはない。

linux/mutex.h を見ると、シンボル CONFIG_DEBUG_LOCK_ALLOC が定義されている場合にのみ、mutex_lock が mutex_lock_nested に定義されることがわかりました。これを確認すると、私の .config で定義されているようです。(触ったことを覚えていません。基本的には、kernel.org からビルドされた単なるカーネルです)。

これに問題はありますか?このデバッグ機能を使用してモジュールをビルドするには、モジュールに何か他のものを手動で追加する必要がありますか?

インクルード ファイルとシーケンスを変更しようとしました。変わりはない。

システムは Debian-7 'Wheezy' x64 を実行しており、カーネルは 3.10.45 に変更されています。

ミューテックスを使用するファイル:

0 投票する
1 に答える
106 参照

c - モジュールからカーネル メッセージを取得できません

カスタム ハードウェア コンポーネント用のドライバーを試しています。ソース コードは次の場所にあります。

https://github.com/godspeed1989/zedboard/blob/master/led_drv/driver/myled.c

問題は、私がするときです:

コンソールまたは dmesg ログには何も表示されません。私はLinux Device Driver 3を読んでいますが、常にしなければならないことが書かれています:

ソースコードにはそれらのどれもありませんが、代わりに次のものがあります。

しかし、この関数を使用してモジュールをロードすると何も出力されず、代わりに module_init と module_exit メッセージが表示される場合、この 2 種類の命令の違いは何ですか?

0 投票する
1 に答える
4592 参照

linux-kernel - カーネルモジュールのドライバーコードが実行されませんか?

このカーネルモジュールをロードしても何もしないのはなぜですか?

モジュールがロードされているように見えるHello, world\n場合は、印刷する必要があります。lsmod

しかし、コンソールにも にも何も出力されませんdmesg

使用module_initしてmodule_exitすべて動作するが、デバイスへのポインターが必要な場合platform_device *pdev、どうすればよいですか?

編集:

元のモジュールは次のようになります。

私のデバイス ツリー blob には、次のエントリが存在します。

0 投票する
2 に答える
2070 参照

android - SE Linux が適用された Android lollipop の insmod

いくつかのモジュール パラメータで insmod abc.ko を実行しようとしていますが、これらのモジュール パラメータは動的に計算する必要があります。したがって、アプリ /system/bin/my_app を起動してこれらのパラメーターを計算し、my_app 内で insmod を実行しています。

問題: init.hammerhead.rc スクリプトを使用して起動時に my_app を起動すると、insmod を実行できず、次のエラーが発生します。

my_app が insmod できるようにするにはどうすればよいですか?

これを解決するための指針をいただければ幸いです

0 投票する
1 に答える
1101 参照

kernel-module - insmod が正のリターンに対してエラーをスローしない

私は最初のカーネル モジュールを作成しています。これは単純な Hello World カーネル モジュールです。私がフォローしている tldp ガイドでは、init_module 関数がゼロ以外の値を返す場合、insmod はモジュールをロードしないと述べています。負の数を返すと期待どおりに動作しますが、実験中に、戻り値が正の場合でも insmod がモジュールをロードしていることに気付きました。

理由を説明してください。

たとえば、-185 を返すと、insmod はモジュールをロードできないとすぐに言います。

しかし、185 を返すと、疑わしいリターンが通知されますが、まだモジュールがロードされています。これは「return 185」のログです。

そして、これは「return -185」のコンソールに出力されます

0 投票する
1 に答える
111 参照

linux-kernel - modprobe とモジュールの依存関係の概念

modprobe は依存関係について modules.dep を調べますが、modprobe の前に depmod を実行する必要がありますか?モジュールの挿入プロセスについて教えてください

0 投票する
1 に答える
2092 参照

linux - カーネル モジュールの挿入中に INSMOD がエラー「不正なアドレス」で終了し、「カーネルの不一致」について警告する

私はこのモジュールをカスタム デバイス用に開発しています。実際には、アドレス 0x0120 ~ 0x0123 の ISA バスに 4*8 ビットの io ポートが接続されています。このドライバーは、Alessandro Rubini と Jonathan Corbet による「スカル」に基づいています。私のOSはUbuntu 10.04で、カーネルは2.6.32-74ジェネリックで、組み込みのコンソール指向コンパイラgccを使用しています。「insmod」を使用してコンパイル済みモジュールを挿入すると、「bad address」というエラーが発生し、モジュールがロードされませんでした。「printk」を使用してデバッグしようとしましたが、モジュールが一連のioポート、メジャー番号とマイナー番号を正常に取得し、「Reset_Port」機能を実行しようとすると「不正なアドレス」というエラーが生成されて終了することがわかりました.

誰が私に何を間違っているのか教えてもらえますか?

ここに私のモジュールの __exit と __init 関数があります

そして次は Reset_Port() です

ここで、「int Reset_Port(void)」を修正した後、別の問題が発生しました -
「警告: modpost: 1 つのセクションの不一致が見つかりました。」デバッグ後、これは「module_init()」から「ET3201_exit()」を呼び出した結果であることがわかりました。この呼び出しに注目すると、警告が消えました。尊敬される作者の「スカル」ドライバーでまったく同じ呼び出しが行われたことは驚くべきことです-そしてそれは機能します。質問: このコードでカーネルの不一致が発生する原因は何ですか?