問題タブ [iokit]
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.
macos - コード内のエラーを削除するには、どの手順を実行すればよいですか?
I/O Kit Driver テンプレートに次のようにコードを記述します。
このコードをビルドすると、次の 4 つのエラーが発生します。
- 関数宣言子の後に期待される関数本体
stray '\357' in program
stray '\277' in program
stray '\274' in program
エラーが表示されますか?
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:
filesystems - ハイブリッド ビデオ DVD からの HFS+ および UDF のマウント
ハイブリッド ビデオ DVD を作成する Mac ソフトウェア (DiscRecordingFramework と IOKit を使用) を開発しました。結果として得られる DVD は、Video-DVD 仕様と完全に互換性があります。ハイブリッド ディスクは、HFS+、UDF、および ISO ファイル システムをホストします。問題は、Mac システムが HFS+ ファイルシステムを自動的にマウントすることですが、Mac のデフォルトの DVD プレーヤーでは、HFS+ ファイルシステムから CSS で保護されたムービーを再生できません。回避策として、HFS+ ファイルシステムと共に UDF ファイルシステムをマウントするスクリプトを開発しました。このスクリプトは実際に UDF2.1 カーネル拡張機能をロードし、UDF ファイルシステムをマウントします。このソリューションは機能しましたが、root パスワードが必要なため望ましくありません。
ハイブリッド ディスクを自動検出し、HFS+ と UDF ファイルシステムの両方をマウントするソリューションを開発することは可能ですか? この解決策によって、システムのセキュリティが損なわれることはありません。一生に 1 回ルート パスワードが必要な場合は問題ありませんが、ディスクを使用するたびにルート パスワードが必要な場合は望ましくありません。
どんな助けでも大歓迎です。
iphone - iOS 用のアクセサリの開発を開始するにはどうすればよいですか?
30 ピンのドック コネクタに差し込む iOS アクセサリを開発したいと考えています。EAAccessory フレームワークでできることとできないことについて話している初心者向けの良い出発点はありますか?
Apress は、2010 年 6 月に EAAccessory フレームワークについて説明した本をリリースしました。これはまだ関係がありますか、それともそれ以来、Apple は多くの新しい API を導入していますか? 他に利用可能なリソースはありますか?
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の既存のものに挿入する方法がわかりませんでした。
ご迷惑をおかけして申し訳ございません。コード関連のものを英語で説明するために使用されていません。
macos - Mac - 仮想シリアル ポート
他のアプリで使用できる仮想シリアル ポートを作成する Cocoa アプリを作成する必要があります。つまり、IO Kit レジストリに登録されます。
アプリの要点:
- 仮想シリアル ポートを作成します (/dev にリストされ、IOKit レジストリに登録されます)。
- 別のコンピューターへの tcp 接続を開始する
- 仮想シリアル ポートで受信したすべてをネットワークにプロキシし、その逆も同様です。
このアプリは、コンピューターのシリアル ポートと通信するサード パーティのアプリによって使用され、特定のシリアル デバイスをネットワーク経由で配置できるようにします。Cocoa とネットワークの部分は問題ありません。ネットワーク経由で通信するアプリをいくつか作成しました。私のハングアップはシリアルポートです。
socat/netcat/minicom でテストを行って、ネットワーク経由で pty/tty トラフィックをプロキシするためにすべてが機能することを確認しましたが、使用する tty は、IO キットに登録されていないため、ランダムなアプリケーションで使用可能として表示されません。レジストリ。
通信には pty/tty マスター/スレーブを使用できますが、Mac アプリケーションに表示するにはこのスレーブ tty が必要です。非常に便利なのは、tty を IO Kit Registry に登録する方法です。
Cocoa アプリの実行時に登録されるカスタム IOKit kext ドライバーを本当に作成する必要がありますか? もしそうなら、私は私の前に大きな学習曲線を持っています. どこから読み始めればよいですか?または、IOKit を使用して仮想シリアル ポートを作成し、カーネル拡張機能をロードすることなく、アプリケーションで使用可能なシリアル ポートとして登録できますか?
あなたが提供できる助けをありがとう、
ステートフル
objective-c - プログラムによる Mac マウス/トラックパッドの速度
作業中のアプリケーションのマウス トラッキング速度 (注意: アクセラレーションではありません) を変更しようとしています。これを行う方法をどこでも検索しましたが、何も見つかりませんでした。これは、IOKit/hidsystem フレームワークのこの関数で指定した値に関係していると思われます。
値は mouseAcceleration であるため、加速と速度の両方を定義する 16 進値があると思われます。
誰かがこの問題に遭遇し、私を助けることができますか?
前もって感謝します
c - OS X のインターフェイスからの MAC アドレス (C)
これはばかげた質問かもしれません。すでにここで対処されている場合は申し訳ありませんが、かなり検索しましたが、あまり運がありませんでした。インターフェイスのハードウェア アドレスを C で取得しようとしていますが、OS X (x86-64) を使用しています。でそれを取得する方法は知ってifconfig
いますが、少なくとも OS X コンピューターでは、私のプログラムで自動的にそれを取得したいと考えています。私はこのリンクを投稿した別のスレッドを見つけましたが、これは私が望むことをほとんど行います (いくつかの変更を加えて) が、iokit
関数をリンクすることはできませんld
(私のコンパイラは ですgcc
)。-lIOKit
フラグをコマンド ラインに追加しようと-framework IOKit
しましたgcc
が、それでも同じリンク エラーが発生します。ここに私のコードへのリンクがあります: headerとsource。