問題タブ [linux-device-driver]

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 に答える
6797 参照

linux-kernel - unregister_chrdev()呼び出しが成功したかどうかを確認する方法

[linux \ fs.h]からのunregister_chrdev()呼び出しは、成功した場合は0を返し、それ以外の場合は<0を返します。しかし現在、新しいカーネルバージョンでは、関数の戻り値がvoidに変更されているため、何も返されなくなりました。

質問:unregister_chrdev()呼び出しが成功したかどうかを確認する方法はありますか?

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

linux-kernel - /procを使用する場合と/devを使用する場合

デバイスドライバーではないカーネルモジュールを作成する必要があります。そのモジュールは、いくつかのユーザースペースプロセスと通信します。ioctl()を使用したくないので、/ procディレクトリにファイルを作成するか、/devディレクトリにデバイスファイルを作成する必要があります。

質問:/procと/devのどちらを使用するかを決定するにはどうすればよいですか。これは単なる判断の呼びかけですか、それともこれら2つを使用することについての書面による合意はありませんか。

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

linux - Linuxで「スピーカーサーバー」にオーディオをストリーミングする

ラップトップ (低品質のスピーカー) から Linux のはるかに優れたスピーカー (両方のコンピューター) を備えたデスクトップにすべてのオーディオをストリーミングする方法はありますか? これは、アプリケーションを透過的にするために alsa システムの下に収まる必要があるため、カーネル ドライバーである必要があると思います。

ありがとう、アンドリュー

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

linux-kernel - Linux キャラクタ ドライバで使用する正しいロック

私は単純なキャラクターデバイスドライバーを書いています。(カーネル 2.6.26) 複数の同時リーダーとライターが必要です。

内部構造への短いアクセスを同期するためにどのタイプのロックを使用するのが最適かわかりません。

どんなアドバイスでも大歓迎です

0 投票する
5 に答える
2391 参照

linux-kernel - ユーザー プログラムと Linux カーネル モジュール間の通信にはどのようなオプションがありますか?

私は Linux カーネル モジュール プログラミングの初心者です。これまで読んだ資料から、ユーザー プログラムがサービスを要求したり、Linux カーネル モジュールと通信したりする方法は 3 つあることがわかりました。

  1. /dev のデバイスファイル
  2. /proc ファイル システム内のファイル
  3. ioctl() 呼び出し

質問: ユーザー プログラムと Linux カーネル モジュール間の通信には、他にどのようなオプションがありますか?

0 投票する
4 に答える
74147 参照

c - netlink ソケットを使用してカーネルモジュールと通信するには?

netlink を使用してユーザー プロセスと通信する Linux カーネル モジュールを作成しようとしています。通信したいユーザープログラムはソケットを使用してのみ通信し、それを追加ioctl()または何かに変更できないため、netlinkを使用しています。

問題は、その方法を理解できないことです。私はグーグルで検索しましたが、私が見つけたすべての例はこのような古いものであり、現在のカーネル バージョンでは無効になっています。this SO questionも見ましたが、ここのサンプルではソケット操作にlibnlを使用していますが、標準のソケット関数 (によって定義されています) に固執したいと思いますsys/socket.h。それで、いくつかのチュートリアルやガイド、またはnetlinkのインターフェースと使用法を理解するのに役立つ何かに私を案内してくれる人がいますか. ユーザープログラムのソケットからカーネルのソケットへの接続を確立し、ユーザープロセスからカーネルにデータを送信し、カーネルから受信する方法の非常に基本的な例にすぎません。

また、カーネルコードを見るように言わないでください。私はすでにそれをやっていますが、それには多くの時間がかかり、あまり残っていません.

更新: 多くの試行錯誤の後、ユーザー プログラムからカーネルにメッセージを送信する次のコードがありますが、カーネルからユーザー プログラムへのメッセージ、つまり使用netlink_unicast()が機能していません。機能しないだけでなく、呼び出しによってシステムがハングし、マシンを再起動する必要があります。誰かが見て、私が何をしているのか教えてもらえますか。このnetlink_unicast()呼び出しは、次のコードでコメント化されています。カーネルからユーザー プログラムへのメッセージに対しては、コメントを解除する必要があります。

ユーザープログラム

カーネルコード

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

linux-kernel - SMBus を介したバッテリー状態へのアクセス/監視

現在、SMBus を介してバッテリーの状態を監視しようとしています。

バッテリーの状態を常に出力するコントロールボードと一緒にバッテリーを持っています。

この制御ボードは、I2C-USB モジュールを介してマザーボードに接続されます。

SMBus 接続を認識し、バッテリーの状態をユーザーに送信するプログラムを作成する必要があります。

私はスマート バッテリと I2C/SMBus を扱うことに関しては初心者であり、この問題にどのように対処すればよいか迷っています。

提案の助けをいただければ幸いです。ありがとう。

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

linux-kernel - sk_buffを解放するのは誰の責任ですか

関数ポインタを使用してネットリンクソケットを作成している間netlink_kernel_create()、このソケットでメッセージが受信されたときに呼び出されるこの関数への引数として渡されます。このコールバック関数は、受信しsk_buffたメッセージを含むasパラメーターを受け取ります。

私の質問は、これを解放するのは誰の責任sk_buffですか?

サンプルコード

#include <linux / module.h>
#include <net / sock.h>
#include <linux / netlink.h>
#include <linux / skbuff.h>

#define NETLINK_USER 31

struct sock * nl_sk = NULL;

static void my_nl_recv_msg(struct sk_buff * skb){

}

static int __init hello_init(void){

}

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

linux-device-driver - Linux から USB ホスト コントローラー ドライバーを削除する

カーネルから USB ホスト コントローラー ドライバーを無効化/削除する方法を教えてください。カーネルから USB ドライバー モジュールをアンフックする方法はありますか。

Linux 2.6.24.7-r1116 / フェドラ

0 投票する
5 に答える
21589 参照

c - ユーザー空間への DMA バッファのマッピング

Linux-2.6.26 でデバイス ドライバーを作成しています。ドライバーからユーザー空間アプリケーションにデータを送信するために、dma バッファーをユーザー空間にマップしたいと考えています。それに関する良いチュートリアルを提案してください。

ありがとう