Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

jpmoran

macrumors newbie
Original poster
Apr 29, 2010
29
0
jpmoran
· 2 days ago

How do I get my MBP 2016 with Radeon Pro 460 to connect to an LG 38WN95C-W at the advertised 144hz refresh rate? I'm only getting the option for 60Hz & 75hz.​

I am using the supplied Thunderbolt cable and as you can see in the image I don't have a 144Hz option.

Screen Shot 2020-12-03 at 3.20.04 PM.png

 
jpmoran
· 2 days ago
How do I get my MBP 2016 with Radeon Pro 460 to connect to an LG 38WN95C-W at the advertised 144hz refresh rate? I'm only getting the option for 60Hz & 75hz.[/HEADING]
I am using the supplied Thunderbolt cable and as you can see in the image I don't have a 144Hz option.
I believe the MacBook Pro 2016 is limited to DisplayPort 1.2 because the Thunderbolt 3 controller is Alpine Ridge instead of the newer Titan Ridge.

You need DisplayPort 1.4 to do 3840x1600 144Hz 8 bpc. You need an eGPU or a newer MacBook Pro.

We can do some experiments to prove it cannot work with the current setup:

Set the DisplayPort version to 1.2, disconnect and reconnect the display, and post the result of the following command (use the Finder to compress it as zip file).
/System/Library/Extensions/AppleGraphicsControl.kext/Contents/MacOS/AGDCDiagnose -a > AGDCDiagnose_DP12.txt 2>&1

Set the DisplayPort version to 1.4, disconnect and reconnect the display, and post the result of the following command (use the Finder to compress it as zip file).
/System/Library/Extensions/AppleGraphicsControl.kext/Contents/MacOS/AGDCDiagnose -a > AGDCDiagnose_DP14.txt 2>&1

Disconnect the Thunderbolt cable. Try a USB-C to DisplayPort cable instead.
/System/Library/Extensions/AppleGraphicsControl.kext/Contents/MacOS/AGDCDiagnose -a > AGDCDiagnose_DP14_noThunderbolt.txt 2>&1
 
Thanks for the reply. How do I change the Displayport Version? Is it based on the cable or a setting?

Here are the settings for TB3 and the Radeon Pro 460 shown in the system info
Screen Shot 2020-12-04 at 9.15.47 AM.png
Screen Shot 2020-12-04 at 9.15.20 AM.png
 
I have contacted Apple support with the same question. (I have the same LG monitor) The official answer is that macOS doesn't support anything above 60Hz. They even told me it's strange I am getting 75Hz at all, as the system should be capped at 60Hz. Not sure, if they just didn't feel like helping me out...
I can see you got it to 75Hz as well, so it is possible to get higher than 60Hz. However, this seems to be the official answer... no 144Hz.

Edit: I have the 2019 MBP 16", so I assume it should have DP1.4. If that one doesn't have it, not sure which one does.
 
So can anyone tell me what the benefit of the LG 38WN95C-W monitor over the 38WK95C-W is? I've had it for a few days now, but could easily save myself some money by switching to the USBC version. If Thunderbolt 3 can't drive a monitor at144hz, I can't any other benefit, especially since there isn't a TB3 out to drive any other devices.

Thoughts?
 
I have contacted Apple support with the same question. (I have the same LG monitor) The official answer is that macOS doesn't support anything above 60Hz. They even told me it's strange I am getting 75Hz at all, as the system should be capped at 60Hz. Not sure, if they just didn't feel like helping me out...
I can see you got it to 75Hz as well, so it is possible to get higher than 60Hz. However, this seems to be the official answer... no 144Hz.

Edit: I have the 2019 MBP 16", so I assume it should have DP1.4. If that one doesn't have it, not sure which one does.
You were talking to a person that doesn't know macOS.
2019 MBP 16" should have DisplayPort 1.4 and should let you do 144 Hz. Did you hold the option key and click "Scaled" in the Displays preferences panel? If that doesn't show 144Hz then you need to try something like SwitchResX.

Thanks for the reply. How do I change the Displayport Version? Is it based on the cable or a setting?
Did you read the user manual? Page 22.
There's no difference between a DisplayPort 1.2 and DisplayPort 1.4 cable (except DisplayPort 1.4 may be higher quality - or at least tested to allow HBR3 link rate 8.1 Gbps per lane which is only 50% faster than HBR2 link rate 5.4 Gbps per lane).

Also maybe disable Adaptive-Sync since I think that doesn't work in macOS.

Here are the settings for TB3 and the Radeon Pro 460 shown in the system info
The only thing we can get from that is that the Thunderbolt connection is working at 40 Gbps instead of 20 Gbps so HBR3 is a possibility (except your Thunderbolt controller will only take HBR2 as input).

To determine the Thunderbolt controller type, you need to see the PCI ids of the Thunderbolt devices.

2016 is prior to Titan Ridge so it's probably Alpine Ridge. Or 2016 is the first Thunderbolt 3, so it's probably Alpine Ridge. 2015 was Thunderbolt 2.
 
You were talking to a person that doesn't know macOS.
2019 MBP 16" should have DisplayPort 1.4 and should let you do 144 Hz. Did you hold the option key and click "Scaled" in the Displays preferences panel? If that doesn't show 144Hz then you need to try something like SwitchResX.
Yes, I did. Although the option-key only works for resolutions, not for refresh rate afaik.
Out of curiosity, have you ever seen an Apple system running at more than 75Hz? Now that I think about it, even their Pro XDR display with all its awesomeness is running at 60Hz. The LG UltraFine (and other displays from LG for Mac) run at 60Hz. I don't see a reason why either Apple or LG would not go up to 120Hz apart from the system not supporting it. Mind you, all the "for Mac" displays cost way more than the LG 38WN95C that we are talking about here, so I don't think it's a cost issue.

SwitchResX is wort a try, yes. I am using it at work on a 1920x1200 display to get it to a 2560x1600 resolution and it works fine. I have not tried it on the LG, yet, so I would like to know, if it works. Do let us know. :) I have to say, there are more problems with the ultra wide, like night shift not working (see here).

So can anyone tell me what the benefit of the LG 38WN95C-W monitor over the 38WK95C-W is?

As far as advantages go, looking at the spec sheet, it has a reaction time of 1ms compared to 5ms (b2b) on the WK, it has a smaller curve (if you prefer that), it's brighter (450nits vs 300), it has built in speakers, it supports both G-Sync and Freesync, and, very important for me personally, it can output 95W of power compared to 60W on the WK, which is not enough for the 16" MacBook. I also use it on a Windows machine, where I do get all of the 144Hz, even if I don't have it on my MBP. So for me the WN is a much better choice over the WK. But it depends on what you are using it for. High refresh rate gaming on a Mac is not a thing anyway...
 
I ran the script, but all the resulting files were blank. I am running Mojave 10.14.6. Do I need to use a different version of the script?

I agree with your assessment of the specifications. The monitor is very bright and the text is clear.

I guess the bottom line is, is there anyone out there that is running this monitor on a Mac, of any year, at 170Hz without an eGPU?
 
Yes, I did. Although the option-key only works for resolutions, not for refresh rate afaik.
Out of curiosity, have you ever seen an Apple system running at more than 75Hz? Now that I think about it, even their Pro XDR display with all its awesomeness is running at 60Hz. The LG UltraFine (and other displays from LG for Mac) run at 60Hz. I don't see a reason why either Apple or LG would not go up to 120Hz apart from the system not supporting it. Mind you, all the "for Mac" displays cost way more than the LG 38WN95C that we are talking about here, so I don't think it's a cost issue.
There is no limit in refresh rate in macOS. Click "Show low resolution modes" also.
XV273K resolutions.pngXV273K refresh rates.png

SwitchResX is wort a try, yes. I am using it at work on a 1920x1200 display to get it to a 2560x1600 resolution and it works fine. I have not tried it on the LG, yet, so I would like to know, if it works. Do let us know. :) I have to say, there are more problems with the ultra wide, like night shift not working (see here).
SwitchResX is useful because you can see which resolutions are just scaled resolutions or actual timings.
 
I ran the script, but all the resulting files were blank. I am running Mojave 10.14.6. Do I need to use a different version of the script?

I agree with your assessment of the specifications. The monitor is very bright and the text is clear.

I guess the bottom line is, is there anyone out there that is running this monitor on a Mac, of any year, at 170Hz without an eGPU?
Did you follow the instructions in the comments? (download pciutils, compile and install, set nvram boot-args, restart?)
 
There is no limit in refresh rate in macOS. Click "Show low resolution modes" also.
View attachment 1687680View attachment 1687679


SwitchResX is useful because you can see which resolutions are just scaled resolutions or actual timings.
Ok, that is awesome. I never thought it is possible to get night shift, full resolution and high refresh rate. Acer does seem to have figured out how to support Macs... How is the monitor connected? Is it DP or TB? Maybe it's worth a try connecting the monitor over DP. I only had it ever connected over TB.

Ok, so I did some digging and now I am even more confused than before.

So I set the DP version on my monitor to 1.1 (it's connected with TB, mind you) and I get this:

DP1.1.png

Locked at Full HD and 60Hz, no surprises there. Then I switch to DP1.2.
DP1.2.png

Same as before, full resolution but only goes up to 75Hz. Then I go back to DP1.4 and then this...
DP1.4.png

I don't know why, but now I have the full resolution and 144Hz! Ok, that is weird. Still no Night Shift though, but some progress at least!
 
Last edited:
Ok, that is awesome. I never thought it is possible to get night shift, full resolution and high refresh rate. Acer does seem to have figured out how to support Macs... How is the monitor connected? Is it DP or TB? Maybe it's worth a try connecting the monitor over DP. I only had it ever connected over TB.

Ok, so I did some digging and now I am even more confused than before.

So I set the DP version on my monitor to 1.1 (it's connected with TB, mind you) and I get this:

Locked at Full HD and 60Hz, no surprises there. Then I switch to DP1.2.
Same as before, full resolution but only goes up to 75Hz. Then I go back to DP1.4 and then this...
I don't know why, but now I have the full resolution and 144Hz! Ok, that is weird. Still no Night Shift though, but some progress at least!
connection via DisplayPort or Thunderbolt doesn't matter - they both use DisplayPort. Thunderbolt could be limited to 20 Gbps if the cable is bad. In that case, the DisplayPort signal would be limited to HBR2 link rate.

DisplayPort 1.1 should be able to do 1440p 60Hz.
If you used the commands in post #2, they will show what the DisplayPort link rate is.
They will also describe the display, list their supported resolutions and timings, and any other features the display may have (if the display is tiled or not, etc.).
 
Did you follow the instructions in the comments? (download pciutils, compile and install, set nvram boot-args, restart?)
I tried but was not able to get it to work. Maybe I need some directions on compiling it. a little more detailed than the github instructions.
 
I tried but was not able to get it to work. Maybe I need some directions on compiling it. a little more detailed than the github instructions.
I installed everything, but I still get black log files. Can you post a set of command line instructions?
 
MacBookPro-4:untitled folder 2 jpmoran$ git clone https://gist.github.com/e3cd4ff08aae06279134969c98ca3ab7.git pcitree


Cloning into 'pcitree'...


remote: Enumerating objects: 4, done.


remote: Total 4 (delta 0), reused 0 (delta 0), pack-reused 4


Unpacking objects: 100% (4/4), done.


MacBookPro-4:untitled folder 2 jpmoran$ git clone https://github.com/joevt/pciutils.git


Cloning into 'pciutils'...


remote: Enumerating objects: 4301, done.


remote: Total 4301 (delta 0), reused 0 (delta 0), pack-reused 4301


Receiving objects: 100% (4301/4301), 1.50 MiB | 3.85 MiB/s, done.


Resolving deltas: 100% (3180/3180), done.


MacBookPro-4:untitled folder 2 jpmoran$


MacBookPro-4:untitled folder 2 jpmoran$ cd pciutils


MacBookPro-4:pciutils jpmoran$ make


cd lib && ./configure


Configuring libpci for your system... x86_64--darwin 18.7.0 x86_64 darwin


Looking for access methods... darwin i386-ports dump


Checking for zlib support... no (auto-detected)


Checking for DNS support... no (auto-detected)


Checking whether to build a shared library... no (set manually)


/Applications/Xcode.app/Contents/Developer/usr/bin/make -C lib all


gcc -O2 -Wall -W -Wno-parentheses -Wstrict-prototypes -Wmissing-prototypes -c -o init.o init.c


gcc -O2 -Wall -W -Wno-parentheses -Wstrict-prototypes -Wmissing-prototypes -c -o access.o access.c


gcc -O2 -Wall -W -Wno-parentheses -Wstrict-prototypes -Wmissing-prototypes -c -o generic.o generic.c


gcc -O2 -Wall -W -Wno-parentheses -Wstrict-prototypes -Wmissing-prototypes -c -o dump.o dump.c


gcc -O2 -Wall -W -Wno-parentheses -Wstrict-prototypes -Wmissing-prototypes -c -o names.o names.c


gcc -O2 -Wall -W -Wno-parentheses -Wstrict-prototypes -Wmissing-prototypes -c -o filter.o filter.c


gcc -O2 -Wall -W -Wno-parentheses -Wstrict-prototypes -Wmissing-prototypes -c -o names-hash.o names-hash.c


gcc -O2 -Wall -W -Wno-parentheses -Wstrict-prototypes -Wmissing-prototypes -c -o names-parse.o names-parse.c


gcc -O2 -Wall -W -Wno-parentheses -Wstrict-prototypes -Wmissing-prototypes -c -o names-net.o names-net.c


gcc -O2 -Wall -W -Wno-parentheses -Wstrict-prototypes -Wmissing-prototypes -c -o names-cache.o names-cache.c


gcc -O2 -Wall -W -Wno-parentheses -Wstrict-prototypes -Wmissing-prototypes -c -o names-hwdb.o names-hwdb.c


gcc -O2 -Wall -W -Wno-parentheses -Wstrict-prototypes -Wmissing-prototypes -c -o params.o params.c


gcc -O2 -Wall -W -Wno-parentheses -Wstrict-prototypes -Wmissing-prototypes -c -o caps.o caps.c


gcc -O2 -Wall -W -Wno-parentheses -Wstrict-prototypes -Wmissing-prototypes -c -o i386-ports.o i386-ports.c


gcc -O2 -Wall -W -Wno-parentheses -Wstrict-prototypes -Wmissing-prototypes -c -o darwin.o darwin.c


gcc -O2 -Wall -W -Wno-parentheses -Wstrict-prototypes -Wmissing-prototypes -c -o DirectHW.o DirectHW.c


rm -f libpci.a


ar rcs libpci.a init.o access.o generic.o dump.o names.o filter.o names-hash.o names-parse.o names-net.o names-cache.o names-hwdb.o params.o caps.o i386-ports.o darwin.o DirectHW.o


ranlib libpci.a


sed <libpci.pc.in >libpci.pc -e 's,@PREFIX@,/usr/local,' \


-e 's,@INCDIR@,/usr/local/include,' \


-e 's,@LIBDIR@,/usr/local/lib,' \


-e 's,@IDSDIR@,/usr/local/share,' \


-e 's,@Version@,3.6.4,' \


-e 's,@LDLIBS@, -lresolv -framework CoreFoundation -framework IOKit,'


gcc -O2 -Wall -W -Wno-parentheses -Wstrict-prototypes -Wmissing-prototypes -c -o lspci.o lspci.c


gcc -O2 -Wall -W -Wno-parentheses -Wstrict-prototypes -Wmissing-prototypes -c -o ls-vpd.o ls-vpd.c


gcc -O2 -Wall -W -Wno-parentheses -Wstrict-prototypes -Wmissing-prototypes -c -o ls-caps.o ls-caps.c


gcc -O2 -Wall -W -Wno-parentheses -Wstrict-prototypes -Wmissing-prototypes -c -o ls-caps-vendor.o ls-caps-vendor.c


gcc -O2 -Wall -W -Wno-parentheses -Wstrict-prototypes -Wmissing-prototypes -c -o ls-ecaps.o ls-ecaps.c


gcc -O2 -Wall -W -Wno-parentheses -Wstrict-prototypes -Wmissing-prototypes -c -o ls-kernel.o ls-kernel.c


gcc -O2 -Wall -W -Wno-parentheses -Wstrict-prototypes -Wmissing-prototypes -c -o ls-tree.o ls-tree.c


gcc -O2 -Wall -W -Wno-parentheses -Wstrict-prototypes -Wmissing-prototypes -c -o ls-map.o ls-map.c


gcc -O2 -Wall -W -Wno-parentheses -Wstrict-prototypes -Wmissing-prototypes -c -o common.o common.c


gcc lspci.o ls-vpd.o ls-caps.o ls-caps-vendor.o ls-ecaps.o ls-kernel.o ls-tree.o ls-map.o common.o lib/libpci.a -lresolv -framework CoreFoundation -framework IOKit -o lspci


gcc -O2 -Wall -W -Wno-parentheses -Wstrict-prototypes -Wmissing-prototypes -c -o setpci.o setpci.c


gcc setpci.o common.o lib/libpci.a -lresolv -framework CoreFoundation -framework IOKit -o setpci


gcc -O2 -Wall -W -Wno-parentheses -Wstrict-prototypes -Wmissing-prototypes -c -o example.o example.c


gcc example.o lib/libpci.a -lresolv -framework CoreFoundation -framework IOKit -o example


M=`echo 2020-01-25 | sed 's/-01-/-January-/;s/-02-/-February-/;s/-03-/-March-/;s/-04-/-April-/;s/-05-/-May-/;s/-06-/-June-/;s/-07-/-July-/;s/-08-/-August-/;s/-09-/-September-/;s/-10-/-October-/;s/-11-/-November-/;s/-12-/-December-/;s/\(.*\)-\(.*\)-\(.*\)/\3 \2 \1/'` ; sed <lspci.man >lspci.8 "s/@today@/$M/;s/@Version@/pciutils-3.6.4/;s#@IDSDIR@#/usr/local/share#"


M=`echo 2020-01-25 | sed 's/-01-/-January-/;s/-02-/-February-/;s/-03-/-March-/;s/-04-/-April-/;s/-05-/-May-/;s/-06-/-June-/;s/-07-/-July-/;s/-08-/-August-/;s/-09-/-September-/;s/-10-/-October-/;s/-11-/-November-/;s/-12-/-December-/;s/\(.*\)-\(.*\)-\(.*\)/\3 \2 \1/'` ; sed <setpci.man >setpci.8 "s/@today@/$M/;s/@Version@/pciutils-3.6.4/;s#@IDSDIR@#/usr/local/share#"


M=`echo 2020-01-25 | sed 's/-01-/-January-/;s/-02-/-February-/;s/-03-/-March-/;s/-04-/-April-/;s/-05-/-May-/;s/-06-/-June-/;s/-07-/-July-/;s/-08-/-August-/;s/-09-/-September-/;s/-10-/-October-/;s/-11-/-November-/;s/-12-/-December-/;s/\(.*\)-\(.*\)-\(.*\)/\3 \2 \1/'` ; sed <pcilib.man >pcilib.7 "s/@today@/$M/;s/@Version@/pciutils-3.6.4/;s#@IDSDIR@#/usr/local/share#"


M=`echo 2020-01-25 | sed 's/-01-/-January-/;s/-02-/-February-/;s/-03-/-March-/;s/-04-/-April-/;s/-05-/-May-/;s/-06-/-June-/;s/-07-/-July-/;s/-08-/-August-/;s/-09-/-September-/;s/-10-/-October-/;s/-11-/-November-/;s/-12-/-December-/;s/\(.*\)-\(.*\)-\(.*\)/\3 \2 \1/'` ; sed <pci.ids.man >pci.ids.5 "s/@today@/$M/;s/@Version@/pciutils-3.6.4/;s#@IDSDIR@#/usr/local/share#"


sed <update-pciids.sh >update-pciids "s@^DEST=.*@DEST=/usr/local/share/pci.ids@;s@^PCI_COMPRESSED_IDS=.*@PCI_COMPRESSED_IDS=@"


chmod +x update-pciids


M=`echo 2020-01-25 | sed 's/-01-/-January-/;s/-02-/-February-/;s/-03-/-March-/;s/-04-/-April-/;s/-05-/-May-/;s/-06-/-June-/;s/-07-/-July-/;s/-08-/-August-/;s/-09-/-September-/;s/-10-/-October-/;s/-11-/-November-/;s/-12-/-December-/;s/\(.*\)-\(.*\)-\(.*\)/\3 \2 \1/'` ; sed <update-pciids.man >update-pciids.8 "s/@today@/$M/;s/@Version@/pciutils-3.6.4/;s#@IDSDIR@#/usr/local/share#"


MacBookPro-4:pciutils jpmoran$ sudo make install


/Applications/Xcode.app/Contents/Developer/usr/bin/make -C lib all


make[1]: Nothing to be done for `all'.


install -d -m 755 /usr/local/sbin /usr/local/share /usr/local/share/man/man8 /usr/local/share/man/man7 //usr/local/share/man/man5


install -c -m 755 -s lspci setpci /usr/local/sbin


install -c -m 755 update-pciids /usr/local/sbin


install -c -m 644 pci.ids /usr/local/share


install -c -m 644 lspci.8 setpci.8 update-pciids.8 /usr/local/share/man/man8


install -c -m 644 pcilib.7 /usr/local/share/man/man7


install -c -m 644 pci.ids.5 /usr/local/share/man/man5


MacBookPro-4:pciutils jpmoran$ grep -q /usr/local/sbin /etc/paths || sudo sed -e $'1i\\\n/usr/local/sbin\\\n' -i "" /etc/paths


MacBookPro-4:pciutils jpmoran$ sudo update-pciids


sudo: update-pciids: command not found


MacBookPro-4:pciutils jpmoran$ cd ../pcitree


MacBookPro-4:pcitree jpmoran$ ls


pcitree.sh


MacBookPro-4:pcitree jpmoran$ chmod +x pcitree.sh


MacBookPro-4:pcitree jpmoran$ sudo ./pcitree.sh


#=========================================================================================
 
Code:
MacBookPro-4:untitled folder 2 jpmoran$ git clone https://gist.github.com/e3cd4ff08aae06279134969c98ca3ab7.git pcitree
Cloning into 'pcitree'...
remote: Enumerating objects: 4, done.
remote: Total 4 (delta 0), reused 0 (delta 0), pack-reused 4
Unpacking objects: 100% (4/4), done.


MacBookPro-4:untitled folder 2 jpmoran$ git clone https://github.com/joevt/pciutils.git
Cloning into 'pciutils'...
remote: Enumerating objects: 4301, done.
remote: Total 4301 (delta 0), reused 0 (delta 0), pack-reused 4301
Receiving objects: 100% (4301/4301), 1.50 MiB | 3.85 MiB/s, done.
Resolving deltas: 100% (3180/3180), done.


MacBookPro-4:untitled folder 2 jpmoran$ cd pciutils


MacBookPro-4:pciutils jpmoran$ make
cd lib && ./configure
Configuring libpci for your system... x86_64--darwin 18.7.0 x86_64 darwin
Looking for access methods... darwin i386-ports dump
Checking for zlib support... no (auto-detected)
Checking for DNS support... no (auto-detected)
Checking whether to build a shared library... no (set manually)
/Applications/Xcode.app/Contents/Developer/usr/bin/make -C lib all
gcc -O2 -Wall -W -Wno-parentheses -Wstrict-prototypes -Wmissing-prototypes   -c -o init.o init.c
gcc -O2 -Wall -W -Wno-parentheses -Wstrict-prototypes -Wmissing-prototypes   -c -o access.o access.c
gcc -O2 -Wall -W -Wno-parentheses -Wstrict-prototypes -Wmissing-prototypes   -c -o generic.o generic.c
gcc -O2 -Wall -W -Wno-parentheses -Wstrict-prototypes -Wmissing-prototypes   -c -o dump.o dump.c
gcc -O2 -Wall -W -Wno-parentheses -Wstrict-prototypes -Wmissing-prototypes   -c -o names.o names.c
gcc -O2 -Wall -W -Wno-parentheses -Wstrict-prototypes -Wmissing-prototypes   -c -o filter.o filter.c
gcc -O2 -Wall -W -Wno-parentheses -Wstrict-prototypes -Wmissing-prototypes   -c -o names-hash.o names-hash.c
gcc -O2 -Wall -W -Wno-parentheses -Wstrict-prototypes -Wmissing-prototypes   -c -o names-parse.o names-parse.c
gcc -O2 -Wall -W -Wno-parentheses -Wstrict-prototypes -Wmissing-prototypes   -c -o names-net.o names-net.c
gcc -O2 -Wall -W -Wno-parentheses -Wstrict-prototypes -Wmissing-prototypes   -c -o names-cache.o names-cache.c
gcc -O2 -Wall -W -Wno-parentheses -Wstrict-prototypes -Wmissing-prototypes   -c -o names-hwdb.o names-hwdb.c
gcc -O2 -Wall -W -Wno-parentheses -Wstrict-prototypes -Wmissing-prototypes   -c -o params.o params.c
gcc -O2 -Wall -W -Wno-parentheses -Wstrict-prototypes -Wmissing-prototypes   -c -o caps.o caps.c
gcc -O2 -Wall -W -Wno-parentheses -Wstrict-prototypes -Wmissing-prototypes   -c -o i386-ports.o i386-ports.c
gcc -O2 -Wall -W -Wno-parentheses -Wstrict-prototypes -Wmissing-prototypes   -c -o darwin.o darwin.c
gcc -O2 -Wall -W -Wno-parentheses -Wstrict-prototypes -Wmissing-prototypes   -c -o DirectHW.o DirectHW.c
rm -f libpci.a
ar rcs libpci.a init.o access.o generic.o dump.o names.o filter.o names-hash.o names-parse.o names-net.o names-cache.o names-hwdb.o params.o caps.o i386-ports.o darwin.o DirectHW.o
ranlib libpci.a
sed <libpci.pc.in >libpci.pc -e 's,@PREFIX@,/usr/local,' \
        -e 's,@INCDIR@,/usr/local/include,' \
        -e 's,@LIBDIR@,/usr/local/lib,' \
        -e 's,@IDSDIR@,/usr/local/share,' \
        -e 's,@Version@,3.6.4,' \
        -e 's,@LDLIBS@, -lresolv -framework CoreFoundation -framework IOKit,'
gcc -O2 -Wall -W -Wno-parentheses -Wstrict-prototypes -Wmissing-prototypes   -c -o lspci.o lspci.c
gcc -O2 -Wall -W -Wno-parentheses -Wstrict-prototypes -Wmissing-prototypes   -c -o ls-vpd.o ls-vpd.c
gcc -O2 -Wall -W -Wno-parentheses -Wstrict-prototypes -Wmissing-prototypes   -c -o ls-caps.o ls-caps.c
gcc -O2 -Wall -W -Wno-parentheses -Wstrict-prototypes -Wmissing-prototypes   -c -o ls-caps-vendor.o ls-caps-vendor.c
gcc -O2 -Wall -W -Wno-parentheses -Wstrict-prototypes -Wmissing-prototypes   -c -o ls-ecaps.o ls-ecaps.c
gcc -O2 -Wall -W -Wno-parentheses -Wstrict-prototypes -Wmissing-prototypes    -c -o ls-kernel.o ls-kernel.c
gcc -O2 -Wall -W -Wno-parentheses -Wstrict-prototypes -Wmissing-prototypes   -c -o ls-tree.o ls-tree.c
gcc -O2 -Wall -W -Wno-parentheses -Wstrict-prototypes -Wmissing-prototypes   -c -o ls-map.o ls-map.c
gcc -O2 -Wall -W -Wno-parentheses -Wstrict-prototypes -Wmissing-prototypes   -c -o common.o common.c
gcc   lspci.o ls-vpd.o ls-caps.o ls-caps-vendor.o ls-ecaps.o ls-kernel.o ls-tree.o ls-map.o common.o lib/libpci.a  -lresolv -framework CoreFoundation -framework IOKit  -o lspci
gcc -O2 -Wall -W -Wno-parentheses -Wstrict-prototypes -Wmissing-prototypes   -c -o setpci.o setpci.c
gcc   setpci.o common.o lib/libpci.a  -lresolv -framework CoreFoundation -framework IOKit -o setpci
gcc -O2 -Wall -W -Wno-parentheses -Wstrict-prototypes -Wmissing-prototypes   -c -o example.o example.c
gcc   example.o lib/libpci.a  -lresolv -framework CoreFoundation -framework IOKit -o example
M=`echo 2020-01-25 | sed 's/-01-/-January-/;s/-02-/-February-/;s/-03-/-March-/;s/-04-/-April-/;s/-05-/-May-/;s/-06-/-June-/;s/-07-/-July-/;s/-08-/-August-/;s/-09-/-September-/;s/-10-/-October-/;s/-11-/-November-/;s/-12-/-December-/;s/\(.*\)-\(.*\)-\(.*\)/\3 \2 \1/'` ; sed <lspci.man >lspci.8 "s/@today@/$M/;s/@Version@/pciutils-3.6.4/;s#@IDSDIR@#/usr/local/share#"
M=`echo 2020-01-25 | sed 's/-01-/-January-/;s/-02-/-February-/;s/-03-/-March-/;s/-04-/-April-/;s/-05-/-May-/;s/-06-/-June-/;s/-07-/-July-/;s/-08-/-August-/;s/-09-/-September-/;s/-10-/-October-/;s/-11-/-November-/;s/-12-/-December-/;s/\(.*\)-\(.*\)-\(.*\)/\3 \2 \1/'` ; sed <setpci.man >setpci.8 "s/@today@/$M/;s/@Version@/pciutils-3.6.4/;s#@IDSDIR@#/usr/local/share#"
M=`echo 2020-01-25 | sed 's/-01-/-January-/;s/-02-/-February-/;s/-03-/-March-/;s/-04-/-April-/;s/-05-/-May-/;s/-06-/-June-/;s/-07-/-July-/;s/-08-/-August-/;s/-09-/-September-/;s/-10-/-October-/;s/-11-/-November-/;s/-12-/-December-/;s/\(.*\)-\(.*\)-\(.*\)/\3 \2 \1/'` ; sed <pcilib.man >pcilib.7 "s/@today@/$M/;s/@Version@/pciutils-3.6.4/;s#@IDSDIR@#/usr/local/share#"
M=`echo 2020-01-25 | sed 's/-01-/-January-/;s/-02-/-February-/;s/-03-/-March-/;s/-04-/-April-/;s/-05-/-May-/;s/-06-/-June-/;s/-07-/-July-/;s/-08-/-August-/;s/-09-/-September-/;s/-10-/-October-/;s/-11-/-November-/;s/-12-/-December-/;s/\(.*\)-\(.*\)-\(.*\)/\3 \2 \1/'` ; sed <pci.ids.man >pci.ids.5 "s/@today@/$M/;s/@Version@/pciutils-3.6.4/;s#@IDSDIR@#/usr/local/share#"
sed <update-pciids.sh >update-pciids "s@^DEST=.*@DEST=/usr/local/share/pci.ids@;s@^PCI_COMPRESSED_IDS=.*@PCI_COMPRESSED_IDS=@"
chmod +x update-pciids
M=`echo 2020-01-25 | sed 's/-01-/-January-/;s/-02-/-February-/;s/-03-/-March-/;s/-04-/-April-/;s/-05-/-May-/;s/-06-/-June-/;s/-07-/-July-/;s/-08-/-August-/;s/-09-/-September-/;s/-10-/-October-/;s/-11-/-November-/;s/-12-/-December-/;s/\(.*\)-\(.*\)-\(.*\)/\3 \2 \1/'` ; sed <update-pciids.man >update-pciids.8 "s/@today@/$M/;s/@Version@/pciutils-3.6.4/;s#@IDSDIR@#/usr/local/share#"


MacBookPro-4:pciutils jpmoran$ sudo make install
/Applications/Xcode.app/Contents/Developer/usr/bin/make -C lib all
make[1]: Nothing to be done for `all'.
install -d -m 755 /usr/local/sbin /usr/local/share /usr/local/share/man/man8 /usr/local/share/man/man7 //usr/local/share/man/man5
install -c -m 755 -s lspci setpci /usr/local/sbin
install -c -m 755 update-pciids /usr/local/sbin
install -c -m 644 pci.ids /usr/local/share
install -c -m 644 lspci.8 setpci.8 update-pciids.8 /usr/local/share/man/man8
install -c -m 644 pcilib.7 /usr/local/share/man/man7
install -c -m 644 pci.ids.5 /usr/local/share/man/man5


MacBookPro-4:pciutils jpmoran$ grep -q /usr/local/sbin /etc/paths || sudo sed -e $'1i\\\n/usr/local/sbin\\\n' -i "" /etc/paths


MacBookPro-4:pciutils jpmoran$ sudo update-pciids
sudo: update-pciids: command not found


MacBookPro-4:pciutils jpmoran$ cd ../pcitree


MacBookPro-4:pcitree jpmoran$ ls
pcitree.sh


MacBookPro-4:pcitree jpmoran$ chmod +x pcitree.sh


MacBookPro-4:pcitree jpmoran$ sudo ./pcitree.sh
#=========================================================================================
Please format your replies like I've done above. Use [ code ] ... [ /code ] around text from Terminal.app (remove spaces after [ and before ]. Convert triple line spacing to single line spacing using search/replace in a text editor.

You should have stopped after sudo update-pciids returned an error sudo: update-pciids: command not found

After grep -q /usr/local/sbin ... you need to use a new Terminal.app window because the modification to the /etc/paths file doesn't take effect right away in the current Terminal.app window. I'll modify the instructions.

Check your nvram boot-args settings:
nvram boot-args

If it doesn't contain debug=0x144 then append it (include the previous contents in the new string)
sudo nvram boot-args="debug=0x144"
 
Code:
Last login: Mon Dec  7 19:42:20 on ttys000
MacBookPro-4:~ jpmoran$ sudo update-pciids
Password:
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  263k  100  263k    0     0   149k      0  0:00:01  0:00:01 --:--:--  149k
Done.
MacBookPro-4:~ jpmoran$ sudo lspci
DirectHW.kext not loaded.
lspci: Cannot find any working access method.
MacBookPro-4:~ jpmoran$

It appears that I need DirectHW.kext, but I am using Mojave, so I did not think it was required.
 
I'm sorry. My terminal skills are no better than cutting and pasting. not sure how to verify and correct this part.

In macOS, using Sierra or later, nvram boot-args must have at least the following debug=0x144. If it does not, then:
sudo nvram boot-args="debug=0x144 ... other contents of boot-args here ..."
This may require SIP to be disabled, otherwise execute the command without sudo in Recovery's Terminal.app.
 
It appears that I need DirectHW.kext, but I am using Mojave, so I did not think it was required.
Correct. DirectHW.kext is not required for Mojave.

I'm sorry. My terminal skills are no better than cutting and pasting. not sure how to verify and correct this part.
I said check your nvram boot-args with:
nvram boot-args

Take what it says and add "debug=0x144" to it.

For example, if it says:
boot-args somestuff=1234

Then add "debug=0x144" to it by typing
sudo nvram boot-args="somestuff=1234 debug=0x144"

You may need to do that by going into recovery partition if SIP is enabled.
 
Last edited:
Code:
Last login: Mon Dec  7 19:44:34 on ttys001
MacBookPro-4:~ jpmoran$ nvram boot-args
nvram: Error getting variable - 'boot-args': (iokit/common) data was not found
MacBookPro-4:~ jpmoran$

Do I need to be in a specific directory when I run the terminal command?
 
Code:
Last login: Mon Dec  7 19:44:34 on ttys001
MacBookPro-4:~ jpmoran$ nvram boot-args
nvram: Error getting variable - 'boot-args': (iokit/common) data was not found
MacBookPro-4:~ jpmoran$

Do I need to be in a specific directory when I run the terminal command?
It means you have no boot-args nvram variable. You can print all the Apple nvram variables with:
nvram -p

Since you don't have boot-args, you can create it with:
sudo nvram boot-args="debug=0x144"
 
Last edited:
Unfortunately no luck with that
Code:
MacBookPro-4:~ jpmoran$ sudo boot-args="debug=0x144"
usage: sudo -h | -K | -k | -V
usage: sudo -v [-AknS] [-g group] [-h host] [-p prompt] [-u user]
usage: sudo -l [-AknS] [-g group] [-h host] [-p prompt] [-U user] [-u user]
            [command]
usage: sudo [-AbEHknPS] [-C num] [-g group] [-h host] [-p prompt] [-T timeout]
            [-u user] [VAR=value] [-i|-s] [<command>]
usage: sudo -e [-AknS] [-C num] [-g group] [-h host] [-p prompt] [-T timeout]
            [-u user] file ...
MacBookPro-4:~ jpmoran$ sudo nvram boot-args="debug=0x144"
Password:
nvram: Error setting variable - 'boot-args': (iokit/common) not permitted
MacBookPro-4:~ jpmoran$
 
Unfortunately no luck with that
Code:
MacBookPro-4:~ jpmoran$ sudo boot-args="debug=0x144"
usage: sudo -h | -K | -k | -V
usage: sudo -v [-AknS] [-g group] [-h host] [-p prompt] [-u user]
usage: sudo -l [-AknS] [-g group] [-h host] [-p prompt] [-U user] [-u user]
            [command]
usage: sudo [-AbEHknPS] [-C num] [-g group] [-h host] [-p prompt] [-T timeout]
            [-u user] [VAR=value] [-i|-s] [<command>]
usage: sudo -e [-AknS] [-C num] [-g group] [-h host] [-p prompt] [-T timeout]
            [-u user] file ...
MacBookPro-4:~ jpmoran$ sudo nvram boot-args="debug=0x144"
Password:
nvram: Error setting variable - 'boot-args': (iokit/common) not permitted
MacBookPro-4:~ jpmoran$
I meant sudo nvram...
 
Tried that as well
Code:
MacBookPro-4:~ jpmoran$ sudo nvram boot-args="debug=0x144"
Password:
nvram: Error setting variable - 'boot-args': (iokit/common) not permitted
MacBookPro-4:~ jpmoran$
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.