問題タブ [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.
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?
cocoa - Cocoa の Dock アイコンへのドラッグ アンド ドロップ - ファイルの関連付けがめちゃくちゃになる
アプリケーションにドラッグ アンド ドロップ機能を実装しました。このアプリでは、.kext
ファイルを開くことができます。
-(void)application:openFiles:
ドキュメントタイプを設定するだけでなく、
使用しました:
すべてがうまく機能し、私のアプリは kext がドロップされたことを検出できます。ただし、Kext をドロップすると、Mac 上のすべての kext のアイコンがフォルダ アイコンに変わります。私のアプリがファイルの関連付けをいじっているのと関係があると思います。
これを回避する方法はありますか?
macos - .kext を実行しようとすると、system.log に奇妙なエラーが記録される
まず、これがこの質問をするのに正しい場所かどうかわかりません。Serverfault と Apple のどちらが優れているでしょうか?
Mac Kernel Extensions の作成に関するチュートリアルを実行していました。私はそれをロードしましたが、tail -1 /var/log/system.log
「Hello World!」とは言わず、...
いくつかのこと... これはどういう意味ですか? そして、正しいログ ファイルを見ていますか? parentalcontrolsd
ActivityTracker がユーザーの wolfram 用に起動されたアプリを発見したことを私に伝えていることを私は知ることができます。何か助けはありますか?
これが私のコードです...
macos - 私のステートメントを何度も印刷する正しい方法は何ですか?
私は以下の方法でコードを書きますが、出力はコンソールで2回しか出力されません。友達に助けてください
macos - ターミナルにi/oキットドライバ拡張をロードする方法は?
現在、独自のドライバーを開発しています。i/ o kitDriverテンプレートで開発しています。コードをビルドすると、正常に実行されますが、ターミナルで問題が発生します。ヘッダーファイルで以下のようにコードを開発しました
.cppで
次に、IOKIT-info.plistの後に上記のコードを正常にビルドします
IOKitPersonalities辞書以下の5つのコンテンツを追加しました
その後
OSBundleLibraries辞書に2つのエントリを追加しました
その後、私は再びそれをうまく構築します
ターミナルローディングに来る私は以下の手順に従います
ターミナルの前にkextファイルパスを見つけ、そのバンドルを/ system / library /extension/にコピーします
その後、ターミナルに移動します
以下の方法で実行する
やあみんな私を助けてください、そして重要なことの1つは私が汎用ドライバーによって開発されたkextファイルを実行するときはいつでもそれがターミナルで非常にうまく実行されることです。
また、私はこのカーネルプログラミングの初心者です
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:
osx-lion - オーディオ仮想ドライバーからアイドル スリープを処理する - Mac OSX
Sound flower に似た仮想オーディオ デバイス ドライバがあります。この仮想デバイスは、サウンド システムの設定に表示されます。システム設定でデバイスが選択されるたびに、アイドル スリープが防止されます。選択をデフォルトの出力デバイスに切り替えると、すべてが期待どおりに機能します。
ターミナルで「pmset -g assertions」コマンドを実行すると、以下の出力が得られます
この問題を解決するためのヒントを教えてください。
macos - MacOSでドライバを制御するために汎用カーネル拡張とI/Oドライバ拡張のどちらを使用する必要がありますか?
MacでBluetooth、Wi-Fi、USB、FireWire、その他の通信インターフェースにアクセスしたい。Bluetoothとwifiの認証もやりたいです。Genericカーネル拡張またはI/Oドライバー拡張のどちらを使用する必要がありますか?
macos - KEXT からデーモンに通信し、結果がデーモンから返されるまでブロックする最良の方法
KEXT では、vnode またはファイル スコープ リスナーを介してファイル クローズをリッスンしています。特定の (ごく少数の) ファイルについては、システム デーモンにファイル パスを送信する必要があります。システム デーモンは何らかの処理を行い (これはデーモンで実行する必要があります)、結果を KEXT に返します。デーモンからの応答が得られるまで、ファイルを閉じる呼び出しをブロックする必要があります。結果に基づいて、クローズコールでいくつかの操作を行い、クローズコールを正常に返す必要があります。フォーラムでは、KEXT 通信関連のトピックについて多くの議論が行われています。しかし、それらは決定的なものではなく、非常に古いもの (2002 年ごろ) のようです。この要件は、FtlSendMessage(...)
Win32 API で処理できます。Macで同等のものを探しています
これが私が見たものであり、私の理解を要約したいと思います:
- マッハ メッセージ: キューイング メカニズムを備えた送信側ポートと応答ポートを使用して、双方向通信の非常に優れた方法を提供します。ただし、マッハ メッセージ API (例:
mach_msg
、 ) は KPImach_port_allocate
でbootstrap_look_up
はないようです。mach APIを使用mach_msg_send_from_kernel
できますが、それだけでは双方向通信には役立ちません。私の理解は正しいですか? - IOUserClient : これは、ユーザー空間から KEXT への通信と、KEXT からのいくつかのコールバックに関連しているようです。KEXT からデーモンへの通信を開始し、デーモンからの結果を待つ方法が見つかりませんでした。何か不足していますか?
- Sockets : KEXT から Daemon への双方向通信チャネル全体を実装する必要があるため、これが最後のオプションになる可能性があります。
ioct
l/sysctl
: 私は彼らについてあまり知りません。私が読んだことから、特に双方向通信には推奨されないオプションです- RPC-Mig : 繰り返しますが、私はそれらについてあまり知りません。私が見たものから複雑に見えます。これが推奨される方法かどうかはわかりません。
- KUNCUserNotification : これは、KEXT からユーザーに通知を提供しているだけのようです。それは私の要件を満たしていません。
サポートされているプラットフォームは (10.5 以降) です。要件を見て、誰かがこのトピックに関するいくつかの指針を提案して提供できますか?
前もって感謝します。
xcode - OSDictionary*IORegistryへのインジェクション
新しい辞書を作成してIORegistryに挿入しようとしています。単純な文字列またはデータ値を挿入することができましたが、それだけです。
私のアプローチは、変更されたIOPCIFamily.kextを介したものであり、特定の目的ではなく、学習のためだけのものです。
1行の値の私のコードは次のようなものです
と別のアプローチ
propTableは親ディクショナリであるため、setObjectパラメータを使用して値を挿入できる子ディクショナリを作成する必要があります。
誰かがこれを行う方法についてのアイデアを持っていますか?私はそれがこのようなものでなければならないと思います:
しかし、propTableのnewTableを作成して、それが見つかったproduct==idsの既存のものに挿入する方法がわかりませんでした。
ご迷惑をおかけして申し訳ございません。コード関連のものを英語で説明するために使用されていません。