質問

OS X用のiokit cfpluginドライバーを構築しています。MIDIデータに翻訳されるネットワークデータを使用します。組み込みの空港以外のハードウェアは含まれていません。 Windowsマシンとファームウェアでドライバーとの経験がありますが、これはMacでそれを行うための私の最初のディップです。これまでのところ、物事はかなりうまくいっていますが、AppleのドキュメントSEZ:「安全上の理由から、開発機にドライバーをロードしてはいけません。」

Macは1つしかありません。私は本当に2つのMacsを望んでいません - 申し訳ありません、Apple。この警告を真剣に受け止めるべきですか?知っておくべきことはありますか?

ありがとう、トムジェフリーズ

役に立ちましたか?

解決

また、VM内でOS Xをテストベッドとして実行することを検討することもできます。別のブートボリュームを持つことは、確かにはるかに便利です。

他のヒント

警告の言葉遣いはかなり不十分です。ドライバーと一緒にシステムを任意にホースすることができるため、ドライバーを試すために別のブートボリューム(パーティション)を使用することを検討する必要があります。メインシステムから分離されていないOS(VM、代替ブートディスクなど)でカーネル開発を行っている場合、あなたはクレイジーです!

より大きな問題になるかもしれないのは、そのための唯一のオプションはリモートOS XシステムでGDBを使用することだからです。このために、あなたは考慮したいかもしれません 仮想化でOS Xを実行します.

ファバーkextのインストールを回復するための何らかの方法が必要です。起動可能な外部ドライブまたはすぐに復元できるものです。これが、生産マシンで開発中のカーネル拡張を実行することに対するAppleの警告の主な理由です。

ニコラスは、GDB(カーネルスペースの唯一の方法)を使用してデバッグするには、2つのマシンが必要です。 Coxyが示唆するようにVMを使用しようとしたことはありません。しかし、それは実行可能だと思います(仮想マシンでKEXTを実行し、実際のホストマシンを使用してGDBを実行すると仮定します)。

じぶんの カーネルでのトレースとデバッグの優先方法は、kprintf()がfirewire(別名Firewire kprintf(man fwkpfv))にルーティングされています。このためには、FireWireポートを備えた2つのマシンが必要です。

最後に、私自身の古いコンピューターミュージシャンであるため、ネットワークスタックレベルでMIDIシンセサイザー(またはトランス)をプログラムしたいのはなぜだろうかと思います。私の推測では、ユーザーランドで作業しているのははるかに満足のいく経験があると思います(浮動小数点数学を使用できます...)

ヒントやヒントが必要な場合は、お気軽にご連絡ください...

| k

から ADCカーネルプログラミングガイド

カーネルプログラミングは、可能であれば避けるべき黒いアートです。幸いなことに、カーネルプログラミングは通常不要です。ほとんどのソフトウェアを完全にユーザースペースに記述できます。ほとんどのデバイスドライバー(たとえば、FireWireとUSB)は、カーネルコードとしてではなく、アプリケーションとして記述できます。ただし、いくつかの低レベルのドライバーはカーネルのアドレススペースに居住する必要があります。このドライバーを書いている場合、このドキュメントはわずかに役立つ場合があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top