問題タブ [kernel-extension]

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

c - XCode: Include framework in a kext?

The kernel extension I am writing needs to include a framework (DirectIO), so I added the framework in the "Linked Libraries" section of the target properties. I then included it in the main source file.

The problem is, whenever I try to build it, it gives this error:

I'm using XCode 3.2 on Snow Leopard, building for OSX i386. Is it possible to include a .framework in a .kext target?

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

cocoa - Cocoa の Dock アイコンへのドラッグ アンド ドロップ - ファイルの関連付けがめちゃくちゃになる

アプリケーションにドラッグ アンド ドロップ機能を実装しました。このアプリでは、.kextファイルを開くことができます。

-(void)application:openFiles:ドキュメントタイプを設定するだけでなく、 使用しました:ドキュメント タイプの設定

すべてがうまく機能し、私のアプリは kext がドロップされたことを検出できます。ただし、Kext をドロップすると、Mac 上のすべての kext のアイコンがフォルダ アイコンに変わります。私のアプリがファイルの関連付けをいじっているのと関係があると思います。

これを回避する方法はありますか?

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

macos - .kext を実行しようとすると、system.log に奇妙なエラーが記録される

まず、これがこの質問をするのに正しい場所かどうかわかりません。Serverfault と Apple のどちらが優れているでしょうか?

Mac Kernel Extensions の作成に関するチュートリアルを実行していました。私はそれをロードしましたが、tail -1 /var/log/system.log「Hello World!」とは言わず、...

いくつかのこと... これはどういう意味ですか? そして、正しいログ ファイルを見ていますか? parentalcontrolsdActivityTracker がユーザーの wolfram 用に起動されたアプリを発見したことを私に伝えていることを私は知ることができます。何か助けはありますか?

これが私のコードです...

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

macos - 私のステートメントを何度も印刷する正しい方法は何ですか?

私は以下の方法でコードを書きますが、出力はコンソールで2回しか出力されません。友達に助けてください

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

macos - ターミナルにi/oキットドライバ拡張をロードする方法は?

現在、独自のドライバーを開発しています。i/ o kitDriverテンプレートで開発しています。コードをビルドすると、正常に実行されますが、ターミナルで問題が発生します。ヘッダーファイルで以下のようにコードを開発しました

.cppで

次に、IOKIT-info.plistの後に上記のコードを正常にビルドします

IOKitPersonalities辞書以下の5つのコンテンツを追加しました

その後

OSBundleLibraries辞書に2つのエントリを追加しました

その後、私は再びそれをうまく構築します

ターミナルローディングに来る私は以下の手順に従います

ターミナルの前にkextファイルパスを見つけ、そのバンドルを/ system / library /extension/にコピーします

その後、ターミナルに移動します

以下の方法で実行する

やあみんな私を助けてください、そして重要なことの1つは私が汎用ドライバーによって開発されたkextファイルを実行するときはいつでもそれがターミナルで非常にうまく実行されることです。

また、私はこのカーネルプログラミングの初心者です

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

macos - ターミナルで I/O キット ドライバをロードするには、どのコマンドを使用すればよいですか?

私は新しいカーネル プログラミングです。このドライバー プログラムを 3 日間ロードしようとしています。

このkextファイルをロードするために非常に多くのコマンドを使用しましたが、毎回問題が発生します

ターミナル。どなたか助けてください。

ensiss-Mac-mini:~ ensis$ sudo su

sh-3.2# chown -R root:wheel /System/Library/Extensions/Driver.kext

sh-3.2# kextutil -n -t /System/Library/Extensions/Driver.kext カーネル ファイルが指定されていません。

リンクのために実行中のカーネルを使用します。

/System/Library/Extensions/Driver.kext が無効です。依存関係を解決できません。

/System/Library/Extensions/Driver.kext が無効です。依存関係を解決できません。

/System/Library/Extensions/Driver.kext が無効です。依存関係を解決できません。

/System/Library/Extensions/Driver.kext の診断:

検証の失敗:

警告:

IOCatalog への送信:

上記のプログラムを解決する方法

更新: Info.plist:

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

osx-lion - オーディオ仮想ドライバーからアイドル スリープを処理する - Mac OSX

Sound flower に似た仮想オーディオ デバイス ドライバがあります。この仮想デバイスは、サウンド システムの設定に表示されます。システム設定でデバイスが選択されるたびに、アイドル スリープが防止されます。選択をデフォルトの出力デバイスに切り替えると、すべてが期待どおりに機能します。

ターミナルで「pmset -g assertions」コマンドを実行すると、以下の出力が得られます

この問題を解決するためのヒントを教えてください。

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

macos - MacOSでドライバを制御するために汎用カーネル拡張とI/Oドライバ拡張のどちらを使用する必要がありますか?

MacでBluetooth、Wi-Fi、USB、FireWire、その他の通信インターフェースにアクセスしたい。Bluetoothとwifiの認証もやりたいです。Genericカーネル拡張またはI/Oドライバー拡張のどちらを使用する必要がありますか?

0 投票する
3 に答える
3496 参照

macos - KEXT からデーモンに通信し、結果がデーモンから返されるまでブロックする最良の方法

KEXT では、vnode またはファイル スコープ リスナーを介してファイル クローズをリッスンしています。特定の (ごく少数の) ファイルについては、システム デーモンにファイル パスを送信する必要があります。システム デーモンは何らかの処理を行い (これはデーモンで実行する必要があります)、結果を KEXT に返します。デーモンからの応答が得られるまで、ファイルを閉じる呼び出しをブロックする必要があります。結果に基づいて、クローズコールでいくつかの操作を行い、クローズコールを正常に返す必要があります。フォーラムでは、KEXT 通信関連のトピックについて多くの議論が行われています。しかし、それらは決定的なものではなく、非常に古いもの (2002 年ごろ) のようです。この要件は、FtlSendMessage(...)Win32 API で処理できます。Macで同等のものを探しています

これが私が見たものであり、私の理解を要約したいと思います:

  1. マッハ メッセージ: キューイング メカニズムを備えた送信側ポートと応答ポートを使用して、双方向通信の非常に優れた方法を提供します。ただし、マッハ メッセージ API (例: mach_msg、 ) は KPImach_port_allocatebootstrap_look_upはないようです。mach APIを使用mach_msg_send_from_kernelできますが、それだけでは双方向通信には役立ちません。私の理解は正しいですか?
  2. IOUserClient : これは、ユーザー空間から KEXT への通信と、KEXT からのいくつかのコールバックに関連しているようです。KEXT からデーモンへの通信を開始し、デーモンからの結果を待つ方法が見つかりませんでした。何か不足していますか?
  3. Sockets : KEXT から Daemon への双方向通信チャネル全体を実装する必要があるため、これが最後のオプションになる可能性があります。
  4. ioctl/ sysctl: 私は彼らについてあまり知りません。私が読んだことから、特に双方向通信には推奨されないオプションです
  5. RPC-Mig : 繰り返しますが、私はそれらについてあまり知りません。私が見たものから複雑に見えます。これが推奨される方法かどうかはわかりません。
  6. KUNCUserNotification : これは、KEXT からユーザーに通知を提供しているだけのようです。それは私の要件を満たしていません。

サポートされているプラ​​ットフォームは (10.5 以降) です。要件を見て、誰かがこのトピックに関するいくつかの指針を提案して提供できますか?

前もって感謝します。

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

xcode - OSDictionary*IORegistryへのインジェクション

新しい辞書を作成してIORegistryに挿入しようとしています。単純な文字列またはデータ値を挿入することができましたが、それだけです。

私のアプローチは、変更されたIOPCIFamily.kextを介したものであり、特定の目的ではなく、学習のためだけのものです。

1行の値の私のコードは次のようなものです

と別のアプローチ

propTableは親ディクショナリであるため、setObjectパラメータを使用して値を挿入できる子ディクショナリを作成する必要があります。

誰かがこれを行う方法についてのアイデアを持っていますか?私はそれがこのようなものでなければならないと思います:

しかし、propTableのnewTableを作成して、それが見つかったproduct==idsの既存のものに挿入する方法がわかりませんでした。

ご迷惑をおかけして申し訳ございません。コード関連のものを英語で説明するために使用されていません。