标签: pci

如何查看PCIe卡使用了多少个lane?

主板上的 PCI Express 插槽可以比连接的通道数更宽。例如,主板可以有 x8 插槽,仅连接 x1 通道。

另一方面,您可以插入仅用于 ex 的卡。4 条通道连接到主板上的 x16 插槽,他们将协商仅使用那些 x4 通道。

如何从运行系统中查看插入的PCIe卡使用了多少通道?

pci

43
推荐指数
3
解决办法
10万
查看次数

如何重置/重启 PCIe 设备的电源?

我有一个 PCIe 设备,只有在计算机完全关闭然后再次打开时才能正常工作。发出简单rebootreboot -p命令似乎不会为 PCIe 卡重新通电,这会导致它在重新启动后无法工作。

有没有办法从操作系统为 PCIe 插槽中的设备循环供电?我可以在 中找到它/sys/bus/pci/devices/0000*/,但我不知道如何正确重置电路板。切换权力似乎是唯一的方法。

除此之外,我可以在某处更改会导致reboot命令完全重启的设置吗?

顺便说一下,我正在运行 Ubuntu 12.10。

pci power-management devices

33
推荐指数
3
解决办法
11万
查看次数

这是什么原因造成的?pcieport 0000:00:03.0:PCIe 总线错误:AER / 错误 TLP

我看到如下错误消息:

Nov 15 15:49:52 x99 kernel: pcieport 0000:00:03.0: AER: Multiple 
Corrected error received: id=0018 Nov 15 15:49:52 x99 kernel: pcieport
0000:00:03.0: PCIe Bus Error: severity=Corrected, type=Data Link Layer, 
id=0018(Receiver ID) Nov 15 15:49:52 x99 kernel: pcieport 0000:00:03.0: 
device [8086:6f08] error status/mask=00000040/00002000 Nov 15 15:49:52 
x99 kernel: pcieport 0000:00:03.0: [ 6] Bad TLP
Run Code Online (Sandbox Code Playgroud)

即使它们(到目前为止)已经得到纠正,这些也会导致性能下降。显然,这个问题需要解决。但是,我在互联网上找不到太多关于它的信息。(也许我找错了地方。)我只找到了几个链接,我将在下面发布。

有谁知道更多关于这些错误的信息?

是主板、三星 950 Pro 还是 GPU(或这些的某种组合)?

硬件是:M2 中的 Asus X99 Deluxe II Samsung 950 Pro NVMe。mb 上的插槽(共享 PCIe 端口 3)。没有其他东西插入 PCIe 端口 3。PCIe 插槽中的 GeForce GTX 1070 …

pci hardware

32
推荐指数
3
解决办法
6万
查看次数

在 Linux 中重置 PCI 设备

有没有一种通用的方法可以从命令行重置 Linux 中的 PCI 设备?即使 PCI 总线发出复位命令。

linux pci

17
推荐指数
4
解决办法
4万
查看次数

在内核中启用 IOMMU 以实现显卡直通

简短的问题:

如何打开intel_iommuLinux内核中的设置?我使用 grub2 引导加载程序运行 Debian 主机。我见过的文档说要 edit /boot/grub/menu.lst,这似乎只与 grub 1.x 相关,因为我没有那个文件。

我的理解(也是我能想到的最后一个选项)更改此引导选项可能会消除以下错误消息 /var/log/kern.log

vboxpci: No IOMMU domain (attach)
Run Code Online (Sandbox Code Playgroud)

长问题:

允许来宾操作系统直接访问显卡

我最近意识到可以通过 PCI-express 设备传递到在 Virtualbox 中运行的来宾操作系统。酷,我想!我有两个 NVIDIA Quadro FX 显卡(SLI 桥接连接到位,我希望这不会造成麻烦)并且想将第二个显卡专用于来宾操作系统,以便我可以在其中使用 OpenGL 功能Photoshop 等。

NVIDIA 销售这种“ SLI 多操作系统”配置,这基本上是我多年来一直想要设置的配置,但我不想在虚拟化软件(Parallels 工作站极限)上花太多钱,当我已经多年来一直很高兴地使用 VirtualBox。

主机系统

我在相当高端的工作站设备(华硕 P6T7 WS 超级计算机主板,带英特尔 ICH10R 芯片组和至强 W3680 CPU)上运行 Debian 存储库中的 linux-3.5.0-19,并希望在内核中打开 IOMMU 支持,最好不必自己编译。

BIOS

在 BIOS 设置中,我启用了 VT-x 和 VT-d 支持。不过,我看不到任何特别提到 IOMMU 的内容。

连接 PCI 设备

这令人愉快地出乎意料地简单!官方 VirtualBox 文档在这里。我所做的,我发现不那么模棱两可的是,打开nvidia-settings,选择辅助图形卡并记下总线 ID(在我的例子中是“PCI:5:0:0”)。然后,从主机的命令行:-

VBoxManage modifyvm …
Run Code Online (Sandbox Code Playgroud)

pci grub2 virtualbox linux-kernel

17
推荐指数
1
解决办法
6万
查看次数

什么是 PCI 怪癖?

在阅读 Linux 内核时,我听到了很多关于 PCI 怪癖的信息,但没有网站解释或定义 PCI 怪癖。什么是 PCI 怪癖?

pci linux-kernel

15
推荐指数
1
解决办法
7645
查看次数

Linux 内核如何处理共享的 IRQ?

根据我目前所读到的内容,“当内核收到中断时,所有注册的处理程序都会被调用。”

我知道每个 IRQ 的注册处理程序可以通过查看/proc/interrupts,我也知道注册的处理程序来自调用request_irq了回调的驱动程序,大致形式如下:

irqreturn_t (*handler)(int, void *)
Run Code Online (Sandbox Code Playgroud)

根据我所知道的,每个与特定 IRQ 关联的中断处理程序回调都应该被调用,并且由处理程序来确定是否确实应该由它处理中断。如果处理程序不应该处理特定的中断,它必须返回内核宏IRQ_NONE

我无法理解的是,每个驱动程序如何确定它是否应该处理中断。我想如果他们应该期待中断,他们可以在内部跟踪。如果是这样,我不知道他们将如何处理同一 IRQ 后面的多个驱动程序期望中断的情况。

我试图了解这些细节的原因是因为我正在搞乱kexec在系统操作中间重新执行内核的机制,同时在 PCIe 桥接器以及下游 PCI 上使用复位引脚和各种寄存器设备。在这样做的过程中,重新启动后,我要么遇到内核恐慌,要么其他驱动程序抱怨即使没有进行任何操作,他们也收到了中断。

处理程序如何决定中断应该由它处理是个谜。

编辑:如果相关,有问题的 CPU 架构是x86.

linux kernel pci interrupt irq

14
推荐指数
2
解决办法
2万
查看次数

如何在 Linux 中找到 USB 控制器的 pci 插槽?

我这里有一台几乎通用的 Linux 机器。所以,它有一个 PCI(*-X 等)总线,在一些 USB 控制器上,我在这些 USB 控制器上有 USB 设备。与此类似:

$ lspci|grep USB
00:12.0 USB controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 USB OHCI0 Controller
00:12.2 USB controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 USB EHCI Controller
00:13.0 USB controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 USB OHCI0 Controller
00:13.2 USB controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 USB EHCI Controller
00:14.5 USB controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 USB OHCI2 Controller
00:16.0 USB controller: Advanced Micro Devices, …
Run Code Online (Sandbox Code Playgroud)

linux pci usb proc sysfs

12
推荐指数
2
解决办法
1万
查看次数

理解 `udevadm info -a -n /dev/sdb` 的输出

我将外置硬盘插入我的笔记本电脑。我尝试通过以下方式找出信息

$ udevadm info -a -n /dev/sdb

Udevadm info starts with the device specified by the devpath and then
walks up the chain of parent devices. It prints for every device
found, all possible attributes in the udev rules key format.
A rule to match, can be composed by the attributes of the device
and the attributes from one single parent device.

  looking at device '/devices/pci0000:00/0000:00:1d.7/usb2/2-1/2-1:1.0/host10/target10:0:0/10:0:0:0/block/sdb':
    KERNEL=="sdb"
    SUBSYSTEM=="block"
    DRIVER==""
    ATTR{range}=="16"
    ATTR{ext_range}=="256"
    ATTR{removable}=="0"
    ATTR{ro}=="0"
    ATTR{size}=="312581808"
    ATTR{alignment_offset}=="0"
    ATTR{discard_alignment}=="0"
    ATTR{capability}=="50"
    ATTR{stat}=="     322    11207 …
Run Code Online (Sandbox Code Playgroud)

storage pci usb udev devices

11
推荐指数
1
解决办法
2万
查看次数

在 xorg.conf 中设置 BUSID

从输出中lspci我如何解释BUSIDfor xorg.conf.d

例子:

00:02.0 VGA compatible controller: Intel Corporation Skylake GT2 [HD Graphics 520] (rev 07)

01:00.0 Display controller: Advanced Micro Devices, Inc. [AMD/ATI] Sun XT [Radeon HD 8670A/8670M/8690M / R5 M330 / M430 / Radeon 520 Mobile] (rev 83)
Run Code Online (Sandbox Code Playgroud)

BUSID如何为AMD卡编写?

它是否正确 ?BUSID PCI 0@1:00:0

xorg pci configuration amd-graphics

10
推荐指数
2
解决办法
1万
查看次数