¿ªÔÆÌåÓý

ctrl + shift + ? for shortcuts
© 2025 Groups.io

Mac MacBook M series and USB workaround


 
Edited

For those of you using an M series Mac and Window ARM. If you need to connect to a Crestron processor over USB. Here is something I tried for 5 seconds.

Warning: You should backup your system before attempting any of this. I would suggest using a new VM instead of one that has anything on it. The one I tested with only had toolbox and the two databases on it. During testing I did have a VM stop being able to boot¡­

This is a three-step process. In step one, you will modify the inf file that Crestron uses for its processor driver. You will add the ARM header and then tell it what files to load for the driver.
Step two you will bypass the windows driver signing to allow the driver to load since you broke the singed driver by editing it.
Step three is loading the driver.

I used the UTM VM software for testing since it was free, and I didn¡¯t want to purchase Parallels. It was a bit interesting at first but worked really well. I found it had all the necessary features I needed like network bridging and USB passthrough. If you try it or have tried it let me know what you think.
If you set up a system from scratch. Shut off secure boot in the bios before you load windows.


##### Modify the driver inf file #####
You can grab the following file for reference. It will give you a good idea of what your file should look like.

Navigate to C:\Program Files (x86)\Crestron\Toolbox\USB Driver\
Make a backup of CtmWinUsb.inf. Now edit the CtmWinUsb.inf file in an editor like Notepad++. You will want to run the editor as administrator since you are working in a protected folder.

At line 15 add ¡°,NTarm64¡± to the end of the line so it looks like:
%ProviderName% = CrestronUSBDevices,NTx86,NTamd64,NTx86.5,NTamd64.5,NTarm64

Copy line 36-50, paste it just below line 50
Change line 52 from:
[CrestronUSBDevices.NTamd64.5]
To:
[CrestronUSBDevices.NTarm64]

Copy the following two lines and paste them just below line 169, making sure you have a blank line after them.
[SourceDisksNames.arm64]
3 = %DISK_NAME%,,,\amd64

Copy the following five lines and paste them just below line 184, making sure you have a blank line after them.
[SourceDisksFiles.arm64]
WinUSBCoInstaller2.dll=3
WdfCoInstaller01009.dll=3
CtrnWinUsbLowerFilter.sys=3
CtrnDCls2.dll=3

Save the file.


##### Bypass Windows driver signing #####
I found lots of different methods to do this. Here are two of the ways I tested and worked. The first is temporary and reverts after a reboot. Second will last through a reboot but show a water mark in the lower right corner.

Option 1: Temporary
Hold the ¡°shift¡± key while you click restart.
When it restarts it should be in recovery. Select Troubleshoot, Advanced options, Startup Settings, Restart, 7) Disable driver signature enforcement. When it reboots move to next step.

Option 2: Permanent
Open a command prompt in administrator mode. Run the following command
bcdedit -set TESTSIGNING ON
reboot the system.
You should see a watermark in the lower right saying, ¡°Test Mode¡± and the windows version.
If you are like me you will get an error. My VM had secure boot enabled. Secure boot prevents this command from running. My first try at disabling secure boot was to shut off UEFI in the VM setup. Don¡¯t do that, it will stop the VM from booting. Just after powering on the VM I started to hit F2, F12 & DEL a bunch of times. One of them got me in the bios where I could disable secure boot. The only problem I could see by doing this is, now windows has an exclamation point on the drive in explorer letting you know it is not secure? Anyways, after you disable secure boot. Boot up and try running the command again.


###### Loading the driver ######
Make sure the USB for the processor is passed to the VM.
It should just load the driver and work. If it doesn¡¯t, right click on the start button. Select ¡°Device Manager¡±. I had a Crestron device under ¡°Other devices¡±. Right click on it and selected ¡°Update driver¡±. Select ¡°Browse for drivers on my computer¡± Browse to ¡°C:\Program Files (x86)\Crestron\Toolbox\USB Driver¡± folder and hit ok. It should load the driver and move the device out of the Other devices folder and into a Crestron folder.


 

Hey Eric,
?
How did you figure this out? ?Do you think that the same process would work with Parallels? ?It¡¯s been a while since I tried UTM but it was not all that appealing when I did. ?Nice work figuring this out!
?
Dean


 

Hi Eric,?
?
As Dean mentioned, how did you figure this out? Have you tired the same process with other non-Crestron USB drives? To get their software to work on ARM processors?
?
Kind regards,
Joshua


 

Dean,
In the 90's, drivers were not always readily available for the hardware I ended up with. I was a beggar and got hand me down hardware from miscellaneous manufactures. The biggest being sound cards, modems and network adapters. So, I would take the drivers did have and hack them to get it working.

For this driver it all started back in November when a few people on FB were expressing how disappointed they were that Crestron was not supporting the USB driver on ARM. At that time I had an idea it wouldn't take much, so I asked one of them if they wanted to try something. I don't have a M series Mac. They said sure and so I started looking into what would be needed. I looked at the driver that was loaded on my computer and after a couple of searches found out it is a common driver. I then looked at ARM support and noticed a few other manufactures had ARM support already. I tried loading one of their drivers to find it wouldn't load. So, using someone else's driver was out. At this point I went down the road of modifying Crestron's driver using Microsoft's WDK. This was a no go, since I would have needed the original WDK file along with the signature keys. That is when I decided to just look at the inf file and see exactly what it was doing. It didn't take long to understand what was going on in that file and what would be needed. I just needed the windows name for arm. I looked at one of the drivers that did have ARM support and found it was NTarm64. I couldn't find a good comparison to see if the arm64 version were the same as the amd64 versions. I ended up just using NTarm64 instead of trying NTarm64.5. This means the driver will try to load on any version windows 64 bit arm. I didn't think this would be an issue since they didn't have a 64 bit version of XP. I made the other changes you see in the OP and sent the file off to my guinea pig. After a few weeks I asked for an update and he was just too buy to test. This past Wednesday I took a Mac Mini home to get it ready for an upcoming project. After I finished with it I decided to test my driver idea. I loaded UTM and installed windows. Right away I got the driver is corrupt issue. I had already been down this road with the Crestron SWAMP driver, so I know what I needed to do. That is the how and why.

Will this work for Parallels? Option 1 for disabling secure driver signing should work on and VM. Option 2 depends. When I was trying to figure out how to shut off secure boot someone mentioned a parameter for Parallels. I had tried it on UTM and it didn't work.


 

Joshi,
I have not tried this on any other driver since the 90's. I don't know if we got lucky with the driver Crestron is using already support ARM using the same set of files, or it is common practice. Doesn't hurt to try though :)