Jump to content

OS X compatible motherboard -> QUO


meklort
4,397 posts in this topic

Recommended Posts

I have a 13,1 setup. Only one of the 4 ports on F_USB1 and F_USB2 work. Both F_USB3 ports work. As I only need 2 ports for my front panel, I'm OK with just F_USB3 working.

I bet the working port is port 8 ..

 

Please plug something into the working port (mouse works ok) and in  Terminal do 

ioreg -c AppleUSB20InternalIntelHub | grep -B0 -A35 EHC1

and paste output ...

10.11.6 same behaviour as 10.11.5 (my original ioreg report) ... 

macOS Sierra Public Beta v2 Same behaviour 

Found out why .. the override comes frrom AppleUSBHub.kext ...

It will override iMac13,1 and 13,2 but not the MacMini ...

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleIdentifier</key>
<string>com.apple.driver.AppleUSBHostMergeProperties</string>
<key>IOClass</key>
<string>AppleUSBHostMergeProperties</string>
<key>IOProviderClass</key>
<string>AppleUSB20InternalIntelHub</string>
<key>IOProviderMergeProperties</key>
<dict>
<key>port-count</key>
<data>CAAAAA==</data>
<key>ports</key>
<dict>
<key>PRT1</key>
<dict>
<key>UsbMux</key>
<string>XHCA</string>
<key>port</key>
<data>AQAAAA==</data>
<key>portType</key>
<integer>0</integer>
</dict>
<key>PRT3</key>
<dict>
<key>UsbMux</key>
<string>XHCC</string>
<key>port</key>
<data>AwAAAA==</data>
<key>portType</key>
<integer>0</integer>
</dict>
<key>PRT8</key>
<dict>
<key>port</key>
<data>CAAAAA==</data>
<key>portType</key>
<integer>2</integer>
</dict>
</dict>
</dict>
<key>locationID</key>
<integer>487587840</integer>
<key>model</key>
<string>iMac13,2</string>
</dict>
</plist>

Now I need to figure out a way to override it ... now could always disable SIP and edit the kext but that won't survive an OS update...

 

That is all for today .. I am beat.

  • Like 1
Link to comment
Share on other sites

Can't sleep ....so working on this ..

 

Partial success .. I was able to inject a property of my own using an Injector Kext that I placed in /L/E .. I think I am onto something

 

 

   | |   |       +-o AppleUSB20InternalIntelHub@1d100000  <class AppleUSB20InternalIntelHub, id 0x1000002a8, registered, matched, active, busy 0 (1 ms), retain 20>

    | |   |       | | {

    | |   |       | |   "IOClass" = "AppleUSB20InternalIntelHub"

    | |   |       | |   "CFBundleIdentifier" = "com.apple.driver.usb.AppleUSBHub"

    | |   |       | |   "IOProviderClass" = "IOUSBHostDevice"

    | |   |       | |   "USBPortType" = 2

    | |   |       | |   "idProductArray" = (32,36)

    | |   |       | |   "IOProbeScore" = 90100

    | |   |       | |   "port-count" = <08000000>

    | |   |       | |   "ports" = {"PRT1"={"UsbMux"="XHCA","port"=<01000000>,"portType"=0},"PRT3"={"UsbMux"="XHCC","port"=<03000000>,"portType"=0},"PRT8"={"port"=<08000000>,"portType"=2}}

    | |   |       | |   "IOMatchCategory" = "IODefaultMatchCategory"

    | |   |       | |   "locationID" = 487587840

    | |   |       | |   "idVendor" = 32903

    | |   |       | |   "Motherboard" = "QUO"

    | |   |       | | }

Link to comment
Share on other sites

Trying something ever more devious ...It will either work or not a single USB 2.0 might be working...time to test it out ...

Brb in 5 mins ...

 

Back at least it did not brick ... Keyboard and mouse are working .. let go have a look at ioreg and see if it did what I wanted..

 

/fail ... grr wait ... retrying .. /fail

Link to comment
Share on other sites

Take as a last resort: have you tried to enable all USB2 ports by SSDT? (EHC1 -> EH01 / EHC2 -> EH02)

I haven't tried that but my understanding is that it would not change a thing because the match is on

 

<key>IOProviderClass</key>

<string>AppleUSB20InternalIntelHub</string>

<key>locationID</key>

<integer>487587840</integer>

<key>model</key>

<string>iMac13,2</string>

 

and that will match whatever the name of the port is.

 

I was able to replace "ports" = {"PRT1"={"UsbMux"="XHCA","port"=<01000000>,"portType"=0},"PRT3"={"UsbMux"="XHCC","port"=<03000000>,"portType"=0},"PRT8"={"port"=<08000000>,"portType"=2}}

with one that includes all ports but that did not get them fired up so something else might be missing. But i am making progress...

 

Note to self for study: Injecting properties for hubs ....

Getting started with USB

USB.h

 

I will probably modify AppleUSBHub.kext in /S/L/E as proof of concept just to make sure that if I remove the limitations from the kext that nothing else down the line will interfere ..

 

The devious thing I was trying to accomplish last night was to compete with Apple's kext so I could take ownership of the hub with a class like QUOUSB20InternalIntelHub

then all limits on Apple20InternalIntelHub would fail to match ... I haven't given up on this yet. But I need to study more on how to do this if possible.

Link to comment
Share on other sites

Proof of concept .. I removed the override from Apple's kext and EHC1 Ports 5 thru 8 appeared and are working.

I can return the backplate now .. I don't need it anymore to prove it works....

If we can inject the missing ports then it should work.

Updated Ports Diagrams :

BackPanel.png

Headers.png

 

Now who's gonna give my crash course on NvidiaInjection ? what does it do, why should I use it , why should i disable it

Thanks

Link to comment
Share on other sites

It adds properties that used to be required by the NVIDIA driver in the good ol' days... nowadays it can do that work on its own.

 

EDIT: Even if it sounds that way, it does not mean that they are totally useless now. boot-display is still required to be set pre-boot for proper boot screen.

Link to comment
Share on other sites

Thanks DF...

 

You mean it sets this ? :

 _ADRNumber65535
 _STANumber18446744073709551615
 acpi-wake-gpeNumber9
 device-propertiesDictionary0_values
 @0,AAPL,boot-displayData<>
 @0,can-hot-plugData<>
 @0,compatibleData<"NVDA,NVMac">
 @0,connector-typeData<00020000>
 @0,device_typeData<"display">
 @0,display-cfgData<03010000>
 @0,nameData<"NVDA,Display-A">
 @1,can-hot-plugData<>
 @1,compatibleData<"NVDA,NVMac">
 @1,connector-typeData<04000000>
 @1,device_typeData<"display">
 @1,display-cfgData<ffff0001>
 @1,nameData<"NVDA,Display-B">
 AAPL,aux-power-connectedData<01000000>
 AAPL,backlight-controlData<00000000>
 AAPL00,blackscreen-preferencesData<00000000>
 AAPL00,CoherencyData<02000000>
 AAPL01,blackscreen-preferencesData<00000000>
 AAPL02,blackscreen-preferencesData<00000000>
 AAPL03,blackscreen-preferencesData<00000000>
 acpi-deviceStringIOACPIPlatformDevice is not serializable
 acpi-pathStringIOACPIPlane:/_SB/PCI0@0/PEG0@10000/PXS1@ffff
 device_typeData<"NVDA,Parent">
 hda-gfxData<"onboard-1">
 modelData<"NVIDIA GeForce GTX 970">
 NVCAPData<04000000000003002d0000000000000700000000>
 NVDA,FeaturesData<ff166031>
 rom-revisionData<"84.04.31.00.F1">
 subsystem-idData<6031a100>
 VRAM,totalMBData<ad0b0000>
 VRAM,totalsizeData<0000d0ba00000000>
Link to comment
Share on other sites

Finally was able to inject one of the missing ports (PRT7)... Will put in the other missing ports in all Desktop SysDef that require them.. One I am done I will publish for everyone to test (that wants to...).

| |   |       +-o AppleUSB20InternalIntelHub@1d100000
| |   |       | |     
| |   |       | +-o PRT1@1d110000      
| |   |       | +-o PRT3@1d130000      
| |   |       | +-o PRT8@1d180000      
| |   |       | +-o PRT7@1d170000
Edited by IronManJFF
  • Like 1
Link to comment
Share on other sites

Finally was able to inject one of the missing ports (PRT7)... Will put in the other missing ports in all Desktop SysDef that require them.. One I am done I will publish for everyone to test (that wants to...).

| |   |       +-o AppleUSB20InternalIntelHub@1d100000
| |   |       | |     
| |   |       | +-o PRT1@1d110000      
| |   |       | +-o PRT3@1d130000      
| |   |       | +-o PRT8@1d180000      
| |   |       | +-o PRT7@1d170000

 

Were you able to create a injector kext?

 

Edited:

 

I missed the post you did just now.  Thanks!!

Link to comment
Share on other sites

They are actually close to a 'DummyKext'...basically what it does is remove all ports restrictions so all USB info comes from the DSDT built into the BIOS

I quickly packaged them, you can grab the installer here

It will install into /Library/Extensions and they are NOT SIGNED (csrutil --without kext --without nvram or SIP fully disabled )

 

Note : This for El Capitan, it works on 10.11.6 results may vary if using earlier versions

 

Wanna give credit to previous work done by other people that made it possible for me to work this out. So here they are :

pokenguyen, Rehabman and PikerAlpha

 

Digging into pkgbuild see if there is a way to imbed something into the 'splash screen' ... or if it is possible to sign it without an Developer ID

  • Like 1
Link to comment
Share on other sites

Hi,

 

today My Quo didn't start.

 

First I was on the way to flash back to PC an old graphic card, Sapphire 5870 Vapor-X working with an Mac OS bios

I disconnect everything on the board, SSD, Hard drive, DVD..

 

Every thing was out except the Sapphire and the USB was in to boot.

I press the start button.

No beep

No screen, the screen tell " no signal" Black screen

 

the CPU fan turn

the fan 1 and 2 over the motherboard turn

 

 

Try the clear CMOS on the board. (I remove electricity and touch for a few second the 2 pins.

I try to use the intel graphic

no beep

black screen.

 

Need some help.

Tks

 

Link to comment
Share on other sites

To invoke the board's Backup Firmware

Method #1

Turn off power via AC main switch on PSU.

Press and hold the ATX power switch then switch the PSU back on while still holding ATX power switch. Hold the power button until the PC starts and shuts down again.

Release the ATX Power switch, wait 5 secs and press it again. Backup Firmware should kick in. If not, repeat.

Method #2

1. Shut your PC down 2. Hold the power AND the reset button for about 10 sec, then release. 3. Backup BIOS should kick in anytime soon now.

Link to comment
Share on other sites

To invoke the board's Backup Firmware

Method #1

Turn off power via AC main switch on PSU.

Press and hold the ATX power switch then switch the PSU back on while still holding ATX power switch. Hold the power button until the PC starts and shuts down again.

Release the ATX Power switch, wait 5 secs and press it again. Backup Firmware should kick in. If not, repeat.

Method #2

1. Shut your PC down 2. Hold the power AND the reset button for about 10 sec, then release. 3. Backup BIOS should kick in anytime soon now.

 

IronMan : Tks for your help.

 

The MB > Nothing more...

no beep

no screen

just the fan

 

I test something more, I exchange the Power Supplies, One day I forget to kick in the P4, the fan was running, but no bios and boot. It was may last idea.

 

From your side ?

 

Sincerely. 

Link to comment
Share on other sites

A couple of things to try out...

 

1) I usually reset CMOS using a screwdriver, non-conductive screwdriver have become popular.. I used that once and of course it did not reset the CMOS. Also you have to short the pins for 5 secs

2) Remove the battery for a little more than 1 mins .. that will reset the CMOS for sure

3) Remove and resocket the RAM

4) Make sure you did not forget the ATX 4-pin power (up and left from CPU) ...happened to me once too..actually over the years a lot has happened to me once

5) If you have a 3.5" hard drive , you can connect its power plug just to see if it will spin .. HDD require 5V and 12V to operate and that is a sign that power is actually distributed across the mobo. 

  • Like 1
Link to comment
Share on other sites

A couple of things to try out...

 

1) I usually reset CMOS using a screwdriver, non-conductive screwdriver have become popular.. I used that once and of course it did not reset the CMOS. Also you have to short the pins for 5 secs

2) Remove the battery for a little more than 1 mins .. that will reset the CMOS for sure

3) Remove and resocket the RAM

4) Make sure you did not forget the ATX 4-pin power (up and left from CPU) ...happened to me once too..actually over the years a lot has happened to me once

5) If you have a 3.5" hard drive , you can connect its power plug just to see if it will spin .. HDD require 5V and 12V to operate and that is a sign that power is actually distributed across the mobo. 

 

I test all yours tricks...

 

# 5 the Hard Drive turn, I disconnect the Sys fan 1 and 2 (noise) and stop with my finger the CPU fan, when I stop the board with a long press on the start button, I heard the moise down on the drive.

 

I test the RAM on an other computer, ok.

 

CPU, I don't want to exchange quickly the CPU with the other board for testing, this is the same socket. The other board run just a i3 the Quo MB an i7k. I test that way later in early September. I need that computer for a job at the end of august, so one dead MB, I prefer waiting ;-).

 

Sound like a dead mother board ?

 

Tsk again IronMan

Link to comment
Share on other sites

Try with only 1 RAM stick. We know the ram is ok, so we can test each memory slot on the Quo board...

For each slot see if you can invoke the backup BIOS .. While PC is on, turn off power via AC main switch on PSU, wait 1minute .. now press and hold the ATX power switch then switch the PSU back on while still holding ATX power switch in.

 

If does not work ... the last time it was working was with the Sapphire 5870 Vapor-X  ?

Put that back in , rinse and repeat 

 

The little speaker that beeps at boot is pretty fragile, mine gave out once .. maybe try it in our other build to make sure it is still working ...means it would beep but we don't hear nothing

 

If that does not work, I'm out of ideas for now...could be dead mobo or dead cpu.

  • Like 1
Link to comment
Share on other sites

×
×
  • Create New...