問題タブ [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.
c - Linux カーネルモジュールのコンパイル
シンプルなLinuxカーネルモジュールをコンパイルしようとしています:
私のメイクファイル:
これで、.c ファイルにエラーはありません。
しかし、ターミナルで make しようとすると:
どうしたの?
ありがとうございました。
linux - 実行時にカーネル モジュールの完全な依存関係リストを取得する方法
実行時にカーネルにロードされたカーネルモジュールの完全な依存関係リストをコマンドラインからリストダウンする方法はありますか?
私の質問を少し明確にさせてください。
私がやろうとしていること:
- を使用して、ロードされたすべてのモジュールのリストを取得します
lsmod
- 次に、ループを実行して、現在ロードされているカーネル モジュールを削除/アンロードします。を使用して
modprobe -r
います。いくつかのモジュールが使用されているため、このステップは (明らかに) 失敗します。(使用に切り替えることはrmmod -r
できますが、安全ではなく、システムをクラッシュさせる可能性があるため、切り替えたくありません。) - 次に、モジュールを 1 つずつ再度ロードします。
を使用する前にすべてのモジュールの依存関係を取得できないため、失敗しているのはステップ 2 ですmodprobe -r
。
アイデア、提案、コメントはありますか?
linux-kernel - modprobeを使用してカーネルモジュールを挿入するときに、カーネルモジュールを特定の順序で指定する必要がありますか?
シェルスクリプト変数にモジュールのリストがあります。それを呼び出しましょうmodulelist
。それらのモジュールのいくつかはすでにロードされています。
ロードされているmodprobe -a $modulelist
モジュールの1つが原因で、セグメンテーション違反が発生しています。
私の質問は:モジュール名が変数modulelistで指定される順序を変更する必要がありますか?modprobe -aはモジュールとそれらが依存するモジュールをロードするので、リスト内のモジュールの順序に違いはないと思いました。
c - 同時ユーザーアクセス
SMP システムでモジュールを削除する際の問題について調べたいのですが、何か良い説明はありますか?
linux - Ubuntuproc_root_driverがありません
Ubuntu 10.04でカーネル2.6.35-22を使用してカーネルモジュールをコンパイルしようとしていますが、proc_root_driverが見つからないと文句を言います。いくつか検索したところ、これを定義することになっていることがわかりましたが、私のバージョンのlinux-headersでは定義されていません。その代わりに使用することになっている別のグローバル変数がありますか、それともカーネルモジュールがコンパイルできるようにどこかに定義できる方法がありますか?
linux - 新しいカーネルをインストールするときに Linux カーネル モジュールのコンパイルを自動化する方法は?
Linuxカーネルモジュールを書いています。実行中のカーネルに対してコンパイルされるすべてのソース ファイル (ライセンスはプロプライエタリですが) と共にリリースされます。モジュール (.deb
パッケージとして配布) をインストールすると、自動的にコンパイルおよびインストールされます。これは機能します。
問題は、Linux システム全体の定期的なアップグレード プロセス中に、新しいバージョンの Linux カーネルがインストールされることです。このような新しいバージョンのカーネルが実行を開始すると、モジュールがコンパイルされていないため、アプリケーションが失敗します。新しい Linux カーネル パッケージがインストールされるたびに、モジュールをコンパイルしてインストールしたいと考えています。
したがって、私の質問:dpkg
新しい Linux カーネル パッケージがインストールされたときに、パッケージ内の何かをトリガーしてモジュールをコンパイルおよびインストールするメカニズムはありますか?
rpm
?に対する同じ質問
linux - mknodを実行せずにLinuxキャラクターデバイスを/devに自動的に表示させるにはどうすればよいですか?
キャラクターを/devに表示させるための最良の方法は何ですか?register_chrdevを呼び出すドライバーがあり、モジュールをロードすると/ proc/devicesにエントリが表示されます。ただし、/ devに表示するには、コマンドラインでmknodを呼び出す必要があります。
これをプログラムで、つまりモジュールのロード時に行う良い方法はありますか?
android - Android ドライバー モジュールの起動
i2c 加速度計用のハードウェア ドライバーを beagleboard-xm に実装したいのですが、起動時にロードするようにしたいと考えています。モジュールをコンパイルするのに役立つリソースがウェブ上にたくさんありますが、起動時にモジュールをロードする方法についての情報を見つけるのに苦労しています。
2 つの初期化スクリプトがあるようです。
- ルートディレクトリのinit.rc
- system/etc の init.goldfish.rc
このページでは、カスタム初期化を実行するために init.rc スクリプトを記述するプロセスについて説明します: http://source.android.com/porting/bring_up.html
以前の調査から、system/etc の init.goldfish.rc はカスタム ボードのロード用であると確信しています。ここで、goldfish を /proc/cpuinfo のハードウェアの名前に置き換えます。
これら 2 つのスクリプトを調べて、起動時に他のモジュールがどのようにロードされたかを確認しましたが、ロードされているのはコンソールだけです。ここで何かが足りない気がします。モジュールを検出してロードするために uevent が使用されていますか? もしそうなら、それらのueventsのトリガーは何ですか?
どんな助けでも大歓迎です。
デイブ
filesystems - カーネルレベルでのmakeファイルの静的リンク
vfs_read、writeなどのカーネルレベルの関数を使用するカーネルモジュールを作成しました。このモジュールには、このモジュールをビルドして.koファイルを取得するmakefileがあります。この.koファイルのobjdump出力を分析したいと思います。ただし、vfs_readやwriteなどのカーネル関数が.koファイルで解決されていないことを確認しました。それらは呼び出されたばかりで、実行時に解決されると思います。分析の目的で、makefileにいくつかの変更を加え、これらすべての関数を単一の.koファイルに静的にリンクすることは可能ですか?コンパイル中にstaticを追加しようとしましたが、役に立ちませんでした。とにかくそうすることを誰かが提案できますか?
linux - カーネルモジュール内でsysfsを使用するには?
ユーザー空間では、echo noop > /sys/block/sda/queue/scheduler
.
カーネルモジュール内で同じことを行うには?
私は次のようなものを期待しています(疑似コード):
それを適切に実装する方法は?
私のカーネル モジュールは SysRQ ハンドラを登録するだけで、その SysRQ がトリガーされたときに io スケジューラを設定する必要があります (不適切な io スケジューラが原因で、その時点でユーザー空間プログラムがハングする可能性があります)。