7
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

CocoaAdvent Calendar 2015

Day 13

[OSX]ドライバについて(driver)(その2)

Posted at

ドライバーがロードされたかどうかが分かっても面白くないということで、対象のUSB機器が抜き差しされたら、ログが出力される事を確認することにした。

以前紹介した、DarwinのソースコードのIOUSBFamily-(バージョン番号).tar.gzのExamplesにあるVendorSpecific Driverのプロジェクトを開いて、Info.plistを確認する。

20130701_0.jpg

IOProviderClassをIOUSBDeviceにして、bcdDeviceとiDProduct、idVendorを対象機器の値にすれば、抜き差しに反応しそうだ!

以前の開発環境に含まれていたUSB Proberを持っていたら、それを使って、SmartScrollの情報を確認する。

20130701_1.jpg

VendorIDが0x056A、ProductIDが0x0050、DeviceVersionNumberが0x0007なので、SmartScrollDriver-Info.plistのIOKitPersonalitiesのSmartScrollDriverにbcdDeviceとidProduct、idVendorを追加して、7と80、1386を入力する。

20130701_2.jpg

この内容でビルドしてドライバーを前回の方法でロードする。

$ sudo cp -R SmartScrollDriver.kext /tmp
$ sudo kextutil -v /tmp/SmartScrollDriver.kext
Notice: /tmp/SmartScrollDriver.kext has debug properties set.
/tmp/SmartScrollDriver.kext appears to be loadable (not including linkage for on-disk libraries).
Loading /tmp/SmartScrollDriver.kext.
/tmp/SmartScrollDriver.kext successfully loaded (or already loaded).

kernel.logをtailし、USB機器を差し込んで、抜く。

$ tail -f /var/log/kernel.log
Jul  1 22:30:56 mbc2d kernel[0]: [SmartScrollDriver]Initializing
Jul  1 22:30:56 mbc2d kernel[0]: [SmartScrollDriver]Probing
Jul  1 22:30:56 mbc2d kernel[0]: No interval found for . Using 8000000
Jul  1 22:30:56 mbc2d kernel[0]: [SmartScrollDriver]Starting
Jul  1 22:31:14 mbc2d kernel[0]: No interval found for . Using 8000000
Jul  1 22:31:14 mbc2d kernel[0]: [SmartScrollDriver]Stopping
Jul  1 22:31:14 mbc2d kernel[0]: [SmartScrollDriver]Freeing

アンロード。

$ sudo kextunload -v /tmp/SmartScrollDriver.kext
jp.co.bitz.driver.SmartScrollDriver unloaded and personalities removed.

抜き差しした際に、ログが出力されている事が分かるはずだ。

関連情報
Mac OS X 10.7.5 - Source

Kernel Extension Programming Topics

【Cocoa練習帳】
http://www.bitz.co.jp/weblog/

http://ameblo.jp/bitz/(ミラー・サイト)

7
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?