問題タブ [linux-kernel]
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 - Linuxでのカーネルソースコードの場所
私はVMwareで作業しWindows
、実行しています。fedora
デフォルトでは、カーネルソースツリーはusr/src/
ディレクトリにあります。代わりに、kernelsという空のディレクトリしか見つかりませんでした。実際のソースコードがありません。
ブラウジングするとき、私はそれがのような他のディレクトリにあるかもしれないと思いました/boot
。しかし、そこにもソースツリーが見つかりませんでした。
これらのソースコードにアクセスできるはずのシステムコールテーブルを変更する必要があります。
java - Javaプログラムを使用してLinuxカーネルモジュールをロード/アンロードするにはどうすればよいですか?
JavaプログラムからLinuxカーネルモジュールをロードおよびアンロードしようとしています。
最初はProcessBuilderを使用してコマンドを実行しようとしましたが、プログラムにrootアクセス権がないため失敗します。私のプログラムをrootとして実行すると、rootアクセスを必要とする別のプロセスであるため、同じ問題が発生します。
では、プログラムでrootアクセスを取得して、insmodとrmmodの実行を許可するにはどうすればよいですか。これが今のところこんな感じです。
linux - Linux カーネルの PTE 構造
PAEが無効になっているx86システムのPTEに対応する構造/共用体のLinuxソースコードを調べようとしています。これまでのところ、arch/x86/include/asm/page_32.h には次のものしか見つかりませんでした。
インテル リファレンス マニュアル Vol 3A を目の前に開いていて、マニュアルで説明されているように、PTE に存在する多数の奇妙なフィールドに対応するものは何もないので、今は少し混乱しています。
これは些細な質問かもしれませんが、私にとっては、Linux カーネルのメモリ管理を理解する過程でつまずきのようになっています。
編集: 2.6.29 のソースを持っています
multithreading - Linuxでのカーネルスレッド間の通信
app / PCIドライバーをvxWorksからLinuxに移植していますが、可能であれば同じアーキテクチャを維持したいと思います。現在のドライバーには、メッセージキューを使用して相互に通信する2つのタスク(スレッド)があります。カーネルスレッド間で通信するメカニズムはありますか?メッセージキューは、バッファアドレスとサイズ情報を渡すために使用されているため、タスクはDMAを使用して大量のデータを移動できます。
linux-kernel - Linux カーネルで task_struct->children をトラバースする
Linux カーネルで task_struct の子をトラバースし、子から情報を取得しようとしています。私はすべての情報に問題があるので、簡単にするために pid を取得するだけにしておきましょう。
これは私のコードの関連部分です。
問題は list_entry にあると思いますが、修正方法がわかりません。見つけることができるすべての例は、同じ方法で呼び出しているようです。
これにより、すべての子 PID が出力されますが、代わりに常に同じ数値 -17 が表示されます。これは 10^9 または 10^11 のオーダーです。
誰かがここで私を助けることができますか? コンパイルには約 30 分かかるため、さまざまなことをログに記録することは実際にはオプションではありません。
linux-kernel - Linux キャラクター ドライバーのユーザー コンテキストはどこに保存しますか?
Linuxカーネルモジュールに取り組んでからしばらく経ちましたが、他のfile_operationsで利用できるopen()オープン実装にコンテキストを隠しておく場所があったことを覚えているようです...たとえば、デバイスノードを開くすべての人に関連付けられた状態を維持するために、すべての file_operations 関数に渡される inode 構造またはファイル構造に void* がある場合、埋めることができ、任意の数のユーザーを非常に簡単にサポートできます... . これは可能ですか?
c - Linux カーネル開発のための Netbeans/Eclipse のセットアップ
私は Linux カーネルの開発を行っており、Netbeans を使用しようとしています。Make ベースの C プロジェクトのサポートが宣言されているにもかかわらず、完全に機能する Netbeans プロジェクトを作成することはできません。これは、完全なデバッグ情報を使用してコンパイルされたカーネル バイナリを Netbeans が分析するようにコンパイルしているにもかかわらずです。問題は次のとおりです。
- ファイルが間違って除外されている: 一部のファイルがプロジェクトで誤ってグレー表示されています。これは、実際にはカーネルにコンパイルされているにもかかわらず、Netbeans がプロジェクトに含める必要があると認識していないことを意味します。主な問題は、Netbeans がこれらのファイルに存在する定義 (データ構造や関数など) を見逃すだけでなく、マクロ定義も見逃すことです。
- 定義が見つかりません: かなり自明です - 多くの場合、Netbeans は何かの定義を見つけることができません。これは、部分的に上記の問題の結果です。
- ヘッダーファイルが見つかりません:自明です
Linux カーネル開発用の Netbeans のセットアップに成功した人がいるかどうか、もしそうなら、どのような設定を使用したかを知りたいです。最終的には、Netbeans が Makefile を解析する (推奨) か、バイナリからデバッグ情報を抽出する (コンパイルが大幅に遅くなる可能性があるためあまり望ましくない) ことができ、どのファイルが実際にコンパイルされ、どのファイルがマクロは実際に定義されています。次に、これに基づいて、データ構造、変数、関数などの定義を見つけて、完全なオートコンプリートを実現したいと考えています。
この質問の前に、いくつかの点を述べさせてください。
- Vim/Emacs を含むソリューションには興味がありません。彼らが好きな人がいることは知っていますが、私はその一人ではありません。
- タイトルが示すように、必要なことを実行するために Eclipse をセットアップする方法も教えていただければ幸いです。
- 私は完璧なカバレッジを望んでいますが、100 万分の 1 の定義しか見逃していないものは明らかに問題ありません
SO の便利な「関連する質問」機能により、次の質問が関連していることがわかります: https://stackoverflow.com/questions/149321/what-ide-would-be-good-for-linux-kernel-driver-development。それを読むと、問題はIDE間の比較ですが、特定のIDEをセットアップする方法を探しています。それでも、ユーザーの Wade Mealing は、この種の開発で Eclipse を使用することについてある程度の専門知識を持っているようです。そのため、彼の (そしてもちろんあなたのすべての) 回答に感謝します。
乾杯
linux-kernel - CONFIG_ASYNC_XOR が menuconfig/gconfig から見えない
Linux カーネル バージョン 2.6.26.8 を使用しており、async_XXX (async_xor、async_memcpy など) API を使用する必要があります。したがって、カーネルで ASYNC_XXX モジュールをビルドする必要があります。しかし、ASYNC_XOR や ASYNC_MEMCPY などに関連する設定オプションが、セキュリティ オプションの menuconfig や gconfig から見えません。
gconfig で [すべてのオプションを表示] を選択すると、[セキュリティ オプション] の下にこれらの構成オプションが表示されますが、選択できません。
これが、構成ファイルに前提条件の CONFIG オプションが欠落していることが原因なのか、それとも何か他のことが原因なのかはわかりません。これらのオプションを構成ファイルに手動で直接追加することもできましたが、副作用がないことを確認したかったのです。
作業中の .config ファイルのセキュリティ オプション部分をここに投稿しています...
#
セキュリティオプション
#
CONFIG_KEYS が設定されていません
CONFIG_SECURITY が設定されていません
CONFIG_SECURITY_FILE_CAPABILITIES が設定されていません
CONFIG_CRYPTO=y
よろしくお願いします。
よろしく、 ヴィカシュ・クマール
linux - Linux カーネルのコンパイル エラー
Linux カーネルをコンパイルしようとしましたが、エラーが発生しました。一番上の Makefile を実行しているときに、次のエラーが発生します:-
ビルドする前に、make oldconfig を使用して構成しました
エラーログのファイルは、構成中に生成されるはずだったようです。しかし、どういうわけかそれらは生成されていないため、エラーが発生します。ネットを検索しましたが、まだエラーを修正できません。私はカーネルプログラミングに非常に慣れていません。どんな助けでも大歓迎です。
ありがとう。