Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

PCI Express slots on the motherboard can be wider then the number of lanes connected. For example a motherboard can have x8 slot with only x1 lane connected.

On the other hand, you can insert a card using only for ex. 4 lanes to a x16 slot on the motherboard, and they will negotiate to use only those x4 lanes.

How to check from the running system how many lanes are used by the inserted PCIe cards?

share|improve this question
up vote 13 down vote accepted

Ok, it seems I missed it on first try in lspci manpages.

Note: Run the command as root/sudo otherwise a lot of detail is ommitted including the Lnk output shown below.

lspci -vv displays a lot of information, including link width:

01:00.0 VGA compatible controller: nVidia Corporation G92 [GeForce 8800 GT] (rev a2) (prog-if 00 [VGA controller])
            LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Latency L0 <512ns, L1 <1us
                    ClockPM- Surprise- LLActRep- BwNot-
            LnkCtl: ASPM Disabled; RCB 128 bytes Disabled- Retrain- CommClk+
                    ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
            LnkSta: Speed 2.5GT/s, Width x8, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
share|improve this answer
in your example the output text has both width x16 and width x8. I assume this is interpretted as: the link capacity is width x16 and this device has negotiated width x8? – Trevor Boyd Smith Nov 21 '14 at 18:26
Yes, that's how I understand it, too. – silk Nov 24 '14 at 10:47

Sometimes it can be a bit more complicated.

For example, 4 Port GBit ethernet adapters have a PCIe switch on board. I trapped into an issue where I found the Ethernet Adapter connected to x4, but a bottleneck upstream when the onboard pcie switch was connected at x1 to the motherboard only.

See this thread for the issue: http://thread.gmane.org/gmane.linux.drivers.e1000.devel/15192/focus=15254

To get a grasp on tree connectivity, compare the view of

lspci -tv
lspci -vv | grep -P "[0-9a-f]{2}:[0-9a-f]{2}\.[0-9a-f]|LnkSta:"

The last line will show you the Link Status below every device on the bus without the overwelming detail of vv option.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.