Mailing Lists: Apple Mailing Lists
Image of Mac OS face in stamp
driver installation questions
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

driver installation questions



Hi,

I'm a newbie to MacOs X, MacOS X device driver
development and this mailing list. I'm going to write
a mass storage device driver for a SCSI disk device, I
plan to use the sample driver VendorSpecificType00 as
the start point. I've gone through many of documents
about driver development such as 'Writing an I/O Kit
Device Driver', 'Writing Drivers for Mass Storage
Devices', 'Hello I/O Kit: Creating a Device Driver
With Xcode' and some others, but I could not find a
place talking about driver installation (not the
driver deployment).

As 'I/O Kit Fundamentals' says, 'The I/O Catalog
maintains entries for all available drivers on a
system. When a nub discovers a device, it requests a
list of all drivers of the device’s family from the
I/O Catalog.', so in my understanding, driver
installation is not just to simply copy .kext to the
directory /System/Library/Extensions, OS must know
that there is a .kext existing in some directory for a
specific device family, this information must be saved
in some place.  The document 'Hello I/O Kit: Creating
a Device Driver With Xcode' talks a little about
driver loading, but it doesn't apply to my case. For
my storage driver, because there are generic drivers
that will always load in its place at boot time. But
none of the above documents talk about driver
installation.

Here is the info.plist I used for my testing:
<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE plist SYSTEM
"file://localhost/System/Library/DTDs/PropertyList.dtd">

<plist version="0.9">

<dict>

	<key>CFBundleDevelopmentRegion</key>

	<string>English</string>

	<key>CFBundleExecutable</key>

	<string>VendorSpecificType00</string>

	<key>CFBundleIdentifier</key>


<string>com.MyCompany.driver.VendorSpecificType00</string>

	<key>CFBundleInfoDictionaryVersion</key>

	<string>6.0</string>

	<key>CFBundlePackageType</key>

	<string>KEXT</string>

	<key>CFBundleSignature</key>

	<string>????</string>

	<key>CFBundleVersion</key>

	<string>1.0.0</string>

	<key>IOKitPersonalities</key>

	<dict>

		<key>VendorSpecificType00</key>

		<dict>

			<key>CFBundleIdentifier</key>

			<string>com.MyCompany.driver.</string>

			<key>IOClass</key>


<string>com_MyCompany_driver_VendorSpecificType00</string>

			<key>IOProviderClass</key>

			<string>IOSCSIPeripheralDeviceNub</string>

			<key>Peripheral Device Type</key>

			<integer>0</integer>

			<key>Product Identification</key>

			<string>SM/MS/SD</string>

			<key>Vendor Identification</key>

			<string>OEI-USB</string>

		</dict>

	</dict>

	<key>OSBundleLibraries</key>

	<dict>


<key>com.apple.iokit.IOSCSIArchitectureModelFamily</key>

		<string>1.0.0</string>

		<key>com.apple.iokit.IOSCSIBlockCommandsDevice</key>

		<string>1.0.0</string>

		<key>com.apple.iokit.IOStorageFamily</key>

		<string>1.0.0</string>

	</dict>

	<key>OSBundleRequired</key>

	<string>Local-Root</string>

</dict>

</plist>


Here are my questions:
1. How should I install an I/O kit device driver? Is
copying enough?
2. For SCSI device, what are the format of the value
of the keys 'Product Identification' and 'Vendor
Identification'? In SCSI specification, they are
defined as 8 bytes and 16 bytes, but the storage
vendors usually don't use all of them, they just use
the first several bytes with the remaining bytes
filled up with spaces (0x20) .


Because of driver installation issue, my work got
stuck, so I'm very anxious to get the answers.

Could someone give me some light so that I can
continue? Any help will be greatly appreciated.

Thanks

Wenhua



 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Ata-scsi-dev mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:

This email sent to email@hidden



Visit the Apple Store online or at retail locations.
1-800-MY-APPLE

Contact Apple | Terms of Use | Privacy Policy

Copyright © 2011 Apple Inc. All rights reserved.