問題タブ [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.
cocoa - Mac OS X で SSD を検出する方法
Mac OS X が搭載されているシステム ドライブがソリッド ステート ドライブであるかどうかを確認するための、信頼性が高く、迅速で、確定的な方法 (つまり、ベンチマークではない方法) はありますか?
ディスクが並列アクセスをどれだけうまく処理できるかを示す他の指標はありますか? プログラムがディスクにバインドされた操作に使用するスレッドの数を調整しようとしています。
私は生の速度やシーク時間には興味がなく、シリアルまたはパラレルのどちらのタイプのアクセスがドライブにとって高速であるかだけに関心があります。私のプログラムのユーザーが iSCSI や RAID を使用することは期待していません。SSD は私の焦点であり、それ以外は何でもあると便利です。
Device Characteristics
ofIOAHCIBlockStorageDevice
には、この情報が含まれています。プログラムで読み取るにはどうすればよいですか?
これまでのところ、次のようになることがわかりました:(以下は擬似コードです)
編集:ここに完全なソース コードがあります。Intel SSD と OCZ Vertex で動作することを確認しました。
macos - OS X 用の DVB ドライバーの作成を支援する
OS X で DVB データにアクセスするためのオプションを検討しています。最初は EyeTV DTT USB デバイスをサポートしたいと考えていますが、長期的には多くの一般的なデバイスをサポートしたいと考えています。私が抱えている問題は、そのようなデバイスを制御する標準的な方法がないことです。
それらを使用する私が知っているすべてのアプリケーションは、アプリケーション内にドライバーコードを隠すか (たとえば、EyeTV 自体、すべてのドライバーは完全にユーザー空間に実装されており、外部アプリからはアクセスできません)、または一見機能していないように見えるMMInputFamilyドライバーを使用します (noソース コードはもう利用できません。
いくつかの調査を行ったところ、サポートしたい多くのデバイスが Linux DVB プロジェクト内でサポートされていることがわかりました。さらなる調査によると、数年前にLinux の実装を抽象化して、他のプラットフォームで再コンパイルできるようにする試みがあったことが示されています。デバイスをサポートするための努力はプールされるべきであり、それを行う最善の方法は、現在のオープンソースの実装を複数のプラットフォームで機能させることです.
他の *nix タイプのプラットフォームに対して Linux ドライバーをコンパイルするというアイデアも、他の場所で取り上げられ、ある程度の成功を収めています。著者が取ったアプローチは、私がリンクしたページで詳しく説明されていますが、OS X でも実行できる可能性があるようです。
いずれにせよ、いくつかのオプションがあるようですが、明確な勝者はありません。
- MMInputFamily ドライバーのソース コードを見つけて、OS X 10.6 で動作するようにし、必要なデバイスのサポートを追加して、ポインターの Linux ソース コードを参照してください。問題: ソース コードがどこにも見つからず、作成者も見つかりません。さらに、Linux ドライバーを OS X に移植するというこれまでの努力を十分に評価していたなら、作者はおそらく別の道をたどっていたかもしれません。
- リンクした FreeBSD プロジェクトと同様の方法で、Linux ドライバーを OS X に移植してみます。問題: これは非常に低レベルの作業であり、回避できる場合、このレイヤーでの作業は Apple によって推奨されていません。
- OS X のIOKitを使用してドライバーを作成します。これはドライバーを実装するための推奨される方法ですが、すべてを最初から行う必要があり、明らかに小さな仕事ではありません。
できれば Linux のソース コードを使用したいのですが、それが本当に実現可能かどうかはわかりません。このタスクを進める最善の方法についてアドバイスやアイデアを持っている人はいますか?
macos - IOKitユーザースペースドライバーの開発をテストドライブするにはどうすればよいですか?
IOKitを使用してOSXでアプリケーション用のUSBドライバーを作成しようとしています。デバッグなどが非常に簡単なため、kextを開発するのではなく、ユーザースペースルートを選択しましたが、開発をテストドライブする方法を見つけるのに苦労しています。
可能であれば、偽のUSBデバイスをIOKitレジストリに挿入し、ユニットテストでドライバーコードがさまざまな通知に正しい方法で反応することを確認する方法を見つけたいと思います。私の最初の調査はあまり明らかにされていませんが、ユーザースペースからそのような模擬デバイスを作成する方法はないようです。つまり、テストを実行するために特にkextを作成する必要があります。明らかにこれそのレベルでの開発に伴うすべての問題に取り組むことに戻ったので、理想からはほど遠いです。
OS Xでこの種のドライバー開発を試運転した経験のある人はいますか?
macos - IOKit USBライブラリの「245」とは何ですか?
OS XでIOKitを使い始めましたが、IOUSBInterfaceInterface245などのIOKitUSBライブラリのデータ型にタグ付けされた「245」に戸惑いました。245はどういう意味ですか?最後に付けられたこの数字が何を示しているのか興味があります。何かのバージョン番号のようです。
特定のバージョンを使用するのではなく、使用できる汎用バージョンはありますか?
macos - OS XでCPU温度とファン速度を取得するには?
OS X で CPU 温度とファン速度を取得するにはどうすればよいですか?
から情報が取得されていることは理解していますがIOHWSensor
、IOKit
その正確な方法に関する信頼できる情報を見つけることができません。
サンプル プログラムの記事を見つけました - http://www.booktou.com/node/148/0321278542/ch10lev1sec7.htmlですが、それで得られるのは GPU の温度だけです。ユニボディの Mac には CPU 温度センサーがあるに違いありません。つまり、何か間違ったことをしているということです。
macos - OS X で IOKit KEXT から情報を公開する
私は、IOService のサブクラスである Mac OS X に IOKit ベースのカーネル拡張機能を持っています。このサービスが読み込まれると、そこから追加の特定のランタイム情報を公開する必要があり、特定の IOUserClient リクエストを行わずにユーザー空間からアクセスできるようにする必要があります。問題の情報は基本的にフィールドと値のペアであり、その形式は KEXT とそのユーザー空間ラッパー ライブラリの間で共有されます。コンテンツは、アクティブなサービス内の特定のイベントで時間の経過とともに変化します。
Linux では、/proc ファイル システム内のファイルを使用してこれを実現していました。OS X で同様の戦略をアドバイスできますか? 多分IORegistryに関連する何か?
ありがとうございました。
xcode - ココアを使用して USB 経由で信号を送信しますか?
Apple の cocoa プログラミング言語を使用して、USB ケーブルを介してデバイスに信号を送信するための「API」があるので、それをアプリに組み込むことができますか?
いくつかのコマンドよりもはるかに複雑ですか、それともライブラリが必要ですか?
私は外部デバイス通信の経験がないので、どんな助けも大歓迎です!
macos - OSX:IOUSBDeviceInterfaceまたはロケーションIDからボリューム名(またはbsd名)を取得する方法
(USB大容量ストレージデバイスの)特定のUSB文字列記述子をそのボリュームまたはbsd名に関連付けるアプリを作成しようとしています。
したがって、コードは接続されているすべてのUSBデバイスを通過し、文字列記述子を取得して、そのうちの1つから情報を抽出します。それらのUSBデバイスのボリューム名を取得したいと思います。そのための適切なAPIが見つかりません。私はそれをやろうとしました:
しかし、DADiskCreateFromIOMedia関数はnilを返しました。渡したusb_device_refは、関数が期待しているio_service_tと互換性がなかったと思います。
では、どうすればUSBデバイスのボリューム名を取得できますか?
ロケーションIDを使用してそれを行うことはできますか?
読んでくれてありがとう。-L
c - IOKit ヘッダーの assert.h がなくなった?
Mac のイーサネット カードのハードウェア アドレスを取得したいと考えています。私が見たすべてのサンプルでは、 IOKit/assert.h にインクルードしています。私のシステムには存在しないようです。GCC は、タイプ IOEthernetAddress がわからないというエラーをスローします。assert.h は私のタスクに必要ですか? 誰かが私に実用的なサンプルを提供してくれると助かります。[編集] これが私のコードです。これは問題を理解するのに役立つと思います:
macos - IORegistryEntry を編集できません
Mac でソフトウェアを作成しており、IORegistryEntry の値を変更したいと考えています。IORegistryExplorer で表示できますが、編集できません。したがって、コードを介して編集する必要があることは私の理解です。これが私のコードです:
これは出力されます
しかし、IORegistryExplorer で値を確認した後も、値は変わりません。誰か提案はありますか?
ありがとうございました