Modifying kext file for MAC openocd use

I’m trying to get up and running with OpenOCD so I can use the programmer shield. I’m following along fine until I get to this part:

Now comes the tricky part. The latest OSX updates have the USB FTDI drivers built-in by default. The Particle Programmer Shield uses FTDI’s FT2232 chip which opens up two ports to do: USB-Serial and USB-JTAG simultaneously. Unfortunately, the AppleUSBFTDI recognises both of them as USB-Serial which renders OpenOCD unusable. You could potentially unload the default Apple drivers to overcome this but that would render USB-Serial unusable. (Original blog post on this modification)

So the trick is to disable only one of the driver entries by commenting it out in the kext’s Info.plist which can be found here:

/System/Library/Extensions/IOUSBFamily.kext/Contents/PlugIns/AppleUSBFTDI.kext/Contents/Info.plist

However, the image that shows what parts of the file to comment out is broken. Can anyone advise on how to move forward? Thanks!

Here is the part you are looking for from mine and I have a working OpenOCD config with the Programmer Shield.
The piece inside is what you want to replicate…adding those symbols that is.

		<key>AppleUSBEFTDI-6001</key>
		<dict>
			<key>CFBundleIdentifier</key>
			<string>com.apple.driver.AppleUSBFTDI</string>
			<key>IOClass</key>
			<string>AppleUSBFTDI</string>
			<key>IOProviderClass</key>
			<string>IOUSBInterface</string>
			<key>InputBuffers</key>
			<integer>8</integer>
			<key>OutputBuffers</key>
			<integer>16</integer>
			<key>bConfigurationValue</key>
			<integer>1</integer>
			<key>bInterfaceNumber</key>
			<integer>0</integer>
			<key>idProduct</key>
			<integer>24577</integer>
			<key>idVendor</key>
			<integer>1027</integer>
		</dict>
<!--
		<key>AppleUSBEFTDI-6010-0</key>
		<dict>
			<key>CFBundleIdentifier</key>
			<string>com.apple.driver.AppleUSBFTDI</string>
			<key>IOClass</key>
			<string>AppleUSBFTDI</string>
			<key>IOProviderClass</key>
			<string>IOUSBInterface</string>
			<key>InputBuffers</key>
			<integer>8</integer>
			<key>OutputBuffers</key>
			<integer>16</integer>
			<key>bConfigurationValue</key>
			<integer>1</integer>
			<key>bInterfaceNumber</key>
			<integer>0</integer>
			<key>idProduct</key>
			<integer>24592</integer>
			<key>idVendor</key>
			<integer>1027</integer>
		</dict>
	-->
		<key>AppleUSBEFTDI-6010-1</key>
		<dict>
			<key>CFBundleIdentifier</key>
			<string>com.apple.driver.AppleUSBFTDI</string>
			<key>IOClass</key>
			<string>AppleUSBFTDI</string>
			<key>IOProviderClass</key>
			<string>IOUSBInterface</string>
			<key>InputBuffers</key>
			<integer>8</integer>
			<key>OutputBuffers</key>
			<integer>16</integer>
			<key>bConfigurationValue</key>
			<integer>1</integer>
			<key>bInterfaceNumber</key>
			<integer>1</integer>
			<key>idProduct</key>
			<integer>24592</integer>
			<key>idVendor</key>
			<integer>1027</integer>
		</dict>
</dict>
</plist>
2 Likes

Thankyou!