Contribute
Register

Using a Presonus Quantum Thunderbolt 2 Audio Interface...HELP

Sorry if I'm butting in, but I'm on the same boat... Could this strange behavior be due to the fact, that the VRS8 drivers have to work both with thunderbolt cards and the pcie card that Slate ships with VRS8. The pcie card is supposed to be used with older Mac Pro towers and the thunderbolt 2 connection with newer Macs with thunderbolt ports. I personally will be trying to get the pcie working first (though no one has been successful with that yet), before I go and buy the thunderbolt add-on card... Unless you guys figure this one out before that. I just don't get why the pcie card wouldn't also work. I'm just about to start installing my new setup.
An IORegistryExplorer screenshot of the pcie card will be interesting. And I would try the diagnostics of kextutil for this as well. Are we sure the VRS8 is compatible with the macOS version you are using?
 
Are we sure the VRS8 is compatible with the macOS version you are using?
I'll reply for @MyTosh - The answer is Yes - tested and running great on the following systems:
  • 2015 Macbook Pro with 10.13.6; 10.14.2; and 10.14.3
  • 2013 Mac Pro (trashcan) 10.12.6; 10.13.4; 10.13.6; 10.14.2; and 10.14.3
An IORegistryExplorer screenshot of the PCIe card will be interesting.
Screenshot attached ;) (can you tell I'm eager to figure this out? :D).

Also attached is a screenshot that has a VRS8 (with driver installed) and the UAD Apollo daisy chained to the VRS8 (with NO driver installed. It's weird how VRS8 behaves as if there is no driver attached. I tried to unload the kext as per your instructions yesterday but was unsuccessful.
 

Attachments

  • VRS8 & Apollo TH daisychained.png
    VRS8 & Apollo TH daisychained.png
    162.8 KB · Views: 94
  • VRS8 through PCI HDMI card.png
    VRS8 through PCI HDMI card.png
    130.9 KB · Views: 174
I'll reply for @MyTosh - The answer is Yes - tested and running great on the following systems:
  • 2015 Macbook Pro with 10.13.6; 10.14.2; and 10.14.3
  • 2013 Mac Pro (trashcan) 10.12.6; 10.13.4; 10.13.6; 10.14.2; and 10.14.3
Screenshot attached ;) (can you tell I'm eager to figure this out? :D).

Also attached is a screenshot that has a VRS8 (with driver installed) and the UAD Apollo daisy chained to the VRS8 (with NO driver installed. It's weird how VRS8 behaves as if there is no driver attached. I tried to unload the kext as per your instructions yesterday but was unsuccessful.

EDIT: @joevt I also ran a test, where I attach the VRS8 to the Macbook Pro and did a IORegistry dump. Take a look at the screenshot. That net_egosys_driver_VRS8Audio and everything that it includes gets attached to the PCI1412,1724@0 on a real mac, versus the driver failing to load on a Hack.
 

Attachments

  • VRS8 on Macbook Pro.png
    VRS8 on Macbook Pro.png
    269.4 KB · Views: 86
Sorry if I'm bombarding you guys with information but here is the kexstat output comparison from my Hack and a real mid-2015 macbook pro retina.

Hackintosh:
Code:
68    2 0xffffff7f80e65000 0xec000    0xec000    com.apple.iokit.IOThunderboltFamily (6.8.1) 9B9A1BFC-C3FA-316E-9180-AE5A07FE0EA8 <6 5 3 1>
69    0 0xffffff7f839d8000 0x20000    0x20000    com.apple.driver.AppleThunderboltNHI (4.7.6) 8D1C9448-6F26-3B5C-BC63-4F22E4D4B6FA <68 13 12 7 6 5 3 1>

Macbook Pro:
Code:
56    5 0xffffff7f8288a000 0xec000    0xec000    com.apple.iokit.IOThunderboltFamily (6.8.1) 3429F6EF-CD6F-3E5E-90CF-D063E327C448 <6 5 3 1>
57    0 0xffffff7f84187000 0x20000    0x20000    com.apple.driver.AppleThunderboltNHI (4.7.6) E7C1F5E9-F9BC-321C-BD1C-1363CDFDED3B <56 13 12 7 6 5 3 1>
59    0 0xffffff7f83b38000 0x5000     0x5000     com.apple.driver.AppleThunderboltPCIDownAdapter (2.1.4) A0F2193C-5898-31CB-A8D4-91AB8908C4B0 <56 13 6 5 3 1>
60    1 0xffffff7f82995000 0xf000     0xf000     com.apple.driver.AppleThunderboltDPAdapterFamily (5.5.8) FD1BF3D0-DC2C-3343-8F67-C5C0D0322150 <56 12 6 5 3 1>
61    0 0xffffff7f829a4000 0x6000     0x6000     com.apple.driver.AppleThunderboltDPInAdapter (5.5.8) C605A495-51E4-3549-8568-68B9B540A531 <60 56 6 5 3 1>
117   0 0xffffff7f82f32000 0x16000    0x16000    com.apple.driver.AppleThunderboltIP (3.1.2) BA64BA1C-6D04-3E64-818D-91D094681385 <56 16 13 6 5 3 1>

I think this bit up above should not be ignored. I was reading through @kgp build post and noticed a brief exchange between him and @nmano where they talk about AppleThunderboltPCIAdapters.kext and
AppleThunderboltPCIDownAdapter.kext not being loaded. In addition to those two, I'm also missing these 3

AppleThunderboltDPAdapterFamily
AppleThunderboltDPInAdapter
AppleThunderboltIP


I'm also attaching a view of the indented PL list which contains Properties that are either different between the Hack and the Macbook Pro or missing altogether.
1548486561607.png
 
Last edited:
I think this bit up above should not be ignored. I was reading through @kgp build post and noticed a brief exchange between him and @nmano where they talk about AppleThunderboltPCIAdapters.kext and
AppleThunderboltPCIDownAdapter.kext not being loaded. In addition to those two, I'm also missing these 3

AppleThunderboltDPAdapterFamily
AppleThunderboltDPInAdapter
AppleThunderboltIP


I'm also attaching a view of the indented PL list which contains Properties that are either different between the Hack and the Macbook Pro or missing altogether.
View attachment 382194

This is a well known issue, as currently apart from falcon ridge, the local tb node fails to load for all other TB adapters. All attempts for fully implementing SSDT-9.aml of the iMacPro dump basically failed on implementing method_ini. What we have for now is basically a hotplug injector.

Anybody interested in fully implementing a local TB node based on SSDT-9.aml is kindly invited to contribute.
 
Last edited:
apart from falcon ridge, the local tb node fails to load for all other TB adapters
Hang on. Are you saying that it's possible to implement TH2 on a hack? Why wouldn't I simply buy a Asus ThunderboltEX 2 in place of my EX 3 and call it a day? Am I misunderstanding?

What we have for now is basically a hotplug injector.
Can you elaborate? Are you referring to the need to create a custom SSDT as a workaround like you outline here?
 
I'll reply for @MyTosh - The answer is Yes - tested and running great on the following systems:
  • 2015 Macbook Pro with 10.13.6; 10.14.2; and 10.14.3
  • 2013 Mac Pro (trashcan) 10.12.6; 10.13.4; 10.13.6; 10.14.2; and 10.14.3
Screenshot attached ;) (can you tell I'm eager to figure this out? :D).

Also attached is a screenshot that has a VRS8 (with driver installed) and the UAD Apollo daisy chained to the VRS8 (with NO driver installed. It's weird how VRS8 behaves as if there is no driver attached.
Are you saying the PCIe card is working in the Mac Pro? @MyTosh said other people were not able to get it to work.

run these following command on the Mac Pro, MacBook Pro, and Hackintosh:
Code:
ioreg -lw0 > ioregMacPro.txt
ioreg -lw0 > ioregMacBookPro.txt
ioreg -lw0 > ioregHackintosh.txt
zip the resulting .txt and post here.

I tried to unload the kext as per your instructions yesterday but was unsuccessful.
My instructions were to remove the kext. Did you do that?
EDIT: @joevt I also ran a test, where I attach the VRS8 to the Macbook Pro and did a IORegistry dump. Take a look at the screenshot. That net_egosys_driver_VRS8Audio and everything that it includes gets attached to the PCI1412,1724@0 on a real mac, versus the driver failing to load on a Hack.
I wonder why it didn't get attached to PCI1412,1712@1 as that is one of the IOPCIPrimaryMatch. Maybe the subsystem-vendor-id and subsystem-id of that function don't match the IOPCISecondaryMatch?

The info.plist has "0x52413031&0xFFFFFFFF". "&0xFFFFFFFF" is redundant because that is the default mask for IOPCIMatch, IOPCIPrimaryMatch, and IOPCISecondaryMatch. That shouldn't be a problem.

Your screen shots shows the subsystem-vendor-id and subsystem-id of PCI1412,1712@1 as formatted as "10" and "AR" instead of "31 30 00 00" and "41 52 00 00". I think they are the same values (hex vs ascii) and anyway, I think the code reads the values from the registers directly instead of those IORegistry properties so it shouldn't be a problem.

As an experiment, I would try removing IOPCISecondaryMatch from the info.plist. And for Thunderbolt, I would try removing the VRS8AudioDriver personality or adding the IOPCIPauseCompatible and IOPCITunnelCompatible properties to it.

The net_egosys_driver_VRS8Audio::initHardware(IOService*) function appears to look for properties "IOPCITunnelled" and "Thunderbolt Path" and "Depth" but I don't know what happens if they are found or not found.

Either the Thunderbolt in a hackintosh has to look more like the Thunderbolt in a real Mac (having those missing properties) or the driver needs to be fixed to be more forgiving of the environment. Really, there driver should not be looking for those properties.

Maybe a codeless kext (just an info.plist) can be created to add the missing properties to the right places.
 
Are you saying the PCIe card is working in the Mac Pro? @MyTosh said other people were not able to get it to work.
No, I think you misunderstood me (or I you). My response was to the question:
Are we sure the VRS8 is compatible with the macOS version you are using?
...I thought you were talking about the thunderbolt connection and the current driver...I then listed the macOS versions I personally tested the VRS8 using TH2 & TH2>3 on real mac computers.
Also you say:
run these following command on the Mac Pro, MacBook Pro, and Hackintosh
...are these commands specific to the PCI implementation or overall (zip file attached)? Also, I'd have to drive 50 miles to get to a buddy's Mac Pro, and even then it's a Trashcan mac, not the old cheese grater, which is what the pci card was made for. BTW, I'm attaching the image of the pci card just for giggles. Notice how tiny it is - made for a x1 slot. It's really a custom designed PCIe card with an HDMI type of a connector. They designed it so that it can connect to a PC, but they later broke down and said a driver is in works for a cheese grater mac (after PC guys are taken care of). Larger studios that want to record a small orchestra and such would essentially connect using the PCIe/HDMI (unless you run a mac with a Thunderbolt) and then they'd daisy chain a bunch of these VRS8 units together using the build in thunderbolt connections on the unit. Watch Steven talk about it here - it's only one small part of the whole review, but it's worth spending 3 min.

This whole thing did get me thinking however - TH or PCIe is merely a connection medium - a way to interface an external device with the internal Core Audio system. Is the installed kext supposed to basically translate what the outboard unit is doing and report it back to the kernel or...? It's probably a stupid question, but
As for the rest of your response - I need some time to digest some of what you said. I'm a n00b at a lot of this.
 

Attachments

  • IMG_2390.jpg
    IMG_2390.jpg
    1.9 MB · Views: 91
  • IOReg_dumps.zip
    392.9 KB · Views: 87
Last edited:
Your screen shots shows the subsystem-vendor-id and subsystem-id of PCI1412,1712@1 as formatted as "10" and "AR" instead of "31 30 00 00" and "41 52 00 00". I think they are the same values (hex vs ascii) and anyway, I think the code reads the values from the registers directly instead of those IORegistry properties so it shouldn't be a problem.
So that screenshot you're referring to - to keep track of the differences, I just threw together an excel file and copy/pasted actual values from IORegistryExplorer. Column on the left (yellow) shows the Macbook pro values column on the right (green) shows Hackintosh values. Crap! I just realized that I omitted the header row. I'll re-upload now.
 
No, I think you misunderstood me (or I you).
You have a screenshot named "VRS8 through PCI HDMI card.png". Is the PCIe card working? Is this in your Hackintosh or a Mac Pro? I would like an ioreg output for that.

My response was to the question: ...I thought you were talking about the thunderbolt connection and the current driver...I then listed the macOS versions I personally tested the VRS8 using TH2 & TH2>3 on real mac computers.
Ok, to summarize, it works on Thunderbolt Macs running current versions of macOS (High Sierra and Mojave). I would like ioreg output for one of those Thunderbolt Macs.

Also you say:...are these commands specific to the PCI implementation or overall (zip file attached)?
The commands are not specific. They give all the information in the IORegistry. One command per computer. Different file name for each computer so we know where they came from. The zip file contained output for the Hackintosh and the MacBook Pro, but not for the PCI HDMI card. Also, the MacBook Pro output is missing Thunderbolt devices. Did you forget to connect the VRS8?

Also, I'd have to drive 50 miles to get to a buddy's Mac Pro, and even then it's a Trashcan mac, not the old cheese grater, which is what the pci card was made for.
Trash Can Mac Pro can be ignored since you have the MacBook Pro which works just as well, right?

BTW, I'm attaching the image of the pci card just for giggles. Notice how tiny it is - made for a x1 slot. It's really a custom designed PCIe card with an HDMI type of a connector. They designed it so that it can connect to a PC, but they later broke down and said a driver is in works for a cheese grater mac (after PC guys are taken care of). Larger studios that want to record a small orchestra and such would essentially connect using the PCIe/HDMI (unless you run a mac with a Thunderbolt) and then they'd daisy chain a bunch of these VRS8 units together using the build in thunderbolt connections on the unit. Watch Steven talk about it here - it's only one small part of the whole review, but it's worth spending 3 min.
Interesting. I think PCIe x1 means it has less bandwidth than Thunderbolt but probably still enough for their purposes. They probably use two lines in the HDMI cable for two-way communication. Maybe they use another line for a signal clock or the signal clock is extracted from the signal lines like PCIe does. Does daisychaining devices work with the PCIe card? Seems unlikely, as that requires Thunderbolt ports to be working properly which I don't think they can without a connection to a Thunderbolt host. What's the chip in the middle of the PCIe card?

This whole thing did get me thinking however - TH or PCIe is merely a connection medium - a way to interface an external device with the internal Core Audio system. Is the installed kext supposed to basically translate what the outboard unit is doing and report it back to the kernel or...?
The driver does a few things. There's a VRS8PanelHelper which is a IOAudioControlUserClient and a IOAudioEngineUserClient. These appear in your Hackintosh ioreg output. Then there's the main driver for the PCIe devices, net_egosys_driver_VRS8Audio and net_egosys_driver_VRS8AudioEngine, which adds a bunch of IOAudioControl and several IOAudioLevelControl and whatever else the IORegistryExplorer.app screenshot above (or the MacBook Pro ioreg output) didn't show.

The MacBook Pro ioreg output shows VRS8PanelHelper providing a IOAudioEngineUserClient and IOAudioControlUserClient for an AppleHDAEngineInput and a IOAudioEngineUserClient for a AppleHDAEngineOutput. The Input and Output are part of AppleHDADriver.

The Hackintosh ioreg output only shows a IOAudioEngineUserClient and IOAudioControlUserClient for a AppleGFXHDAEngineOutputDP. I wonder if there's an Input missing. Do you have audio input/output working on your Hackintosh? I see you have AppleALC and Lilu and WhateverGreen installed. Maybe this doesn't matter.
 
Back
Top