맞춤형 PCIe 비디오 인코더 공급업체는 카드 드라이버가 제대로 작동하려면 컴퓨터에서 ACS(액세스 제어 서비스)를 비활성화해야 한다고 말했습니다.
그들은 어떻게 해야 하는지 말하지 않았습니다.
이 문서는 NVIDIA GPU에 관한 것입니다.해당 명령을 사용한다고 하는데 setpci
NVIDIA를 사용하지 않고 마더보드가 다르기 때문에 장치 주소가 다를 것입니다(아마도).
예를 들어,
setpci -s 02:01.0 f2a.w=0000
아무것도 하지 마세요...
편집 2 예를 들어:
# setpci -v -s 02:04.0 220.w
0000:02:04.0 @220 = 000d
# setpci -v -s 02:04.0 220.w=0000
0000:02:04.0 @220 0000
# setpci -v -s 02:04.0 220.w
0000:02:04.0 @220 = 000d
내 마더보드에서 실제 PCI 브리지의 레지스터 주소를 어떻게 찾나요?
(트림된) 출력 lspci -vvv
은 다음과 같습니다.
편집하다
죄송합니다. 운영 체제 정보를 잊어버렸습니다.
32비트 Centos6, 커널 4.4.127-1.el6.elrepo.i686 #1 SMP Sun Apr 8 09:44:43 EDT 2018 i686 i686 i386 GNU/Linux
00:1c.0 PCI bridge: Intel Corporation Device a114 (rev f1) (prog-if 00 [Normal decode])
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Capabilities: [140 v1] Access Control Services
ACSCap: SrcValid+ TransBlk+ ReqRedir+ CmpltRedir+ UpstreamFwd- EgressCtrl- DirectTrans-
ACSCtl: SrcValid- TransBlk- ReqRedir- CmpltRedir- UpstreamFwd- EgressCtrl- DirectTrans-
Kernel driver in use: pcieport
00:1c.5 PCI bridge: Intel Corporation Device a115 (rev f1) (prog-if 00 [Normal decode])
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Capabilities: [140 v1] Access Control Services
ACSCap: SrcValid+ TransBlk+ ReqRedir+ CmpltRedir+ UpstreamFwd- EgressCtrl- DirectTrans-
ACSCtl: SrcValid- TransBlk- ReqRedir- CmpltRedir- UpstreamFwd- EgressCtrl- DirectTrans-
02:01.0 PCI bridge: Pericom Semiconductor Device b608 (prog-if 00 [Normal decode])
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Capabilities: [220 v1] Access Control Services
ACSCap: SrcValid+ TransBlk+ ReqRedir+ CmpltRedir+ UpstreamFwd+ EgressCtrl+ DirectTrans+
ACSCtl: SrcValid+ TransBlk- ReqRedir+ CmpltRedir+ UpstreamFwd+ EgressCtrl- DirectTrans-
02:02.0 PCI bridge: Pericom Semiconductor Device b608 (prog-if 00 [Normal decode])
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Capabilities: [220 v1] Access Control Services
ACSCap: SrcValid+ TransBlk+ ReqRedir+ CmpltRedir+ UpstreamFwd+ EgressCtrl+ DirectTrans+
ACSCtl: SrcValid+ TransBlk- ReqRedir+ CmpltRedir+ UpstreamFwd+ EgressCtrl- DirectTrans-
02:03.0 PCI bridge: Pericom Semiconductor Device b608 (prog-if 00 [Normal decode])
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Capabilities: [220 v1] Access Control Services
ACSCap: SrcValid+ TransBlk+ ReqRedir+ CmpltRedir+ UpstreamFwd+ EgressCtrl+ DirectTrans+
ACSCtl: SrcValid+ TransBlk- ReqRedir+ CmpltRedir+ UpstreamFwd+ EgressCtrl- DirectTrans-
02:04.0 PCI bridge: Pericom Semiconductor Device b608 (prog-if 00 [Normal decode])
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Capabilities: [220 v1] Access Control Services
ACSCap: SrcValid+ TransBlk+ ReqRedir+ CmpltRedir+ UpstreamFwd+ EgressCtrl+ DirectTrans+
ACSCtl: SrcValid+ TransBlk- ReqRedir+ CmpltRedir+ UpstreamFwd+ EgressCtrl- DirectTrans-
답변1
시험해보고 출력이 향상되는지 확인하시겠습니까?
setpci -v -s 02:04.0 ecap_acs+6.w
setpci -v -s 02:04.0 ecap_acs+6.w=0
setpci -v -s 02:04.0 ecap_acs+6.w
편집 1: setpci
명령이 ACS 확장으로 전송됩니다.아니요오른쪽 오프셋을 따릅니다(6) 을 위한ACS 제어 레지스터
편집 2: 방법이 궁금하시다면 PCI 설정 유틸리티는 PCI Express 기능 및 확장 기능을 처리하고 있으며 특정 하드웨어 포트 또는 장치에 대한 액세스 문제를 해결하고 있습니다... 또 다른 흥미로운 관점은 옵션을 추가하는 것입니다 -G
. 이는 일반적으로 그다지 효율적이지 않지만 여기에서 볼 수 있듯이 전체 프로세스에 대한 보기를 제공합니다.능력그리고확장목록을 반복합니다. 예를 들어, 루트 포트에서 --
user@host:~$ sudo setpci -G -v -s 00:01.1 ecap_acs+6.w
Trying method linux-sysfs......using /sys/bus/pci...OK
Decided to use linux-sysfs
0000:00:01.1 0000:00:01.1: Found capability 0001 of type 1 at 0050
0000:00:01.1: Found capability 0010 of type 1 at 0058
0000:00:01.1: Found capability 0005 of type 1 at 00a0
0000:00:01.1: Found capability 000d of type 1 at 00c0
0000:00:01.1: Found capability 0008 of type 1 at 00c8
0000:00:01.1: Found capability 0001 of type 1 at 0050
0000:00:01.1: Found capability 0010 of type 1 at 0058
0000:00:01.1: Found capability 0005 of type 1 at 00a0
0000:00:01.1: Found capability 000d of type 1 at 00c0
0000:00:01.1: Found capability 0008 of type 1 at 00c8
0000:00:01.1: Found capability 000b of type 2 at 0100
0000:00:01.1: Found capability 0001 of type 2 at 0150
0000:00:01.1: Found capability 0019 of type 2 at 0270
0000:00:01.1: Found capability 000d of type 2 at 02a0
0000:00:01.1: Found capability 001e of type 2 at 0370
0000:00:01.1: Found capability 001d of type 2 at 0380
0000:00:01.1: Found capability 0025 of type 2 at 0400
0000:00:01.1: Found capability 0026 of type 2 at 0410
0000:00:01.1: Found capability 0027 of type 2 at 0440
(ecap 000d @2a0) @2a6 = 0000