답변:
http://www.kernel.org/doc/Documentation/ABI/testing/sysfs-bus-pci 에 따르면 지원되는 장치의 개별 기능을 재설정 할 수 있습니다.
What: /sys/bus/pci/devices/.../reset
Description:
Some devices allow an individual function to be reset
without affecting other functions in the same device.
For devices that have this support, a file named reset
will be present in sysfs. Writing 1 to this file
will perform reset.
일반 PCI 장치는 핫 플러그 가능하지 않으므로 장치를 재설정하고 커널에서 다시 열거 할 수 없습니다.
어떤 종류의 문제를 해결하려고하더라도 반드시 재설정하는 것보다 더 좋은 방법이 있습니다.
위의 솔루션의 문제점은 장치의 협력이 필요하다는 것입니다. 그러나 대부분의 시나리오에서이를 재설정하는 이유는 비 협조성입니다.
그러나 여기 에 설명 된 것처럼 PCI 수준에서 다시 설정하는 또 다른 "더 어려운"방법이 있습니다. PCI 버스에서 제거한 다음 다시 스캔하여 다시 삽입합니다.
단계:
echo 1 >/sys/bus/pci/<pci-id-of-device>/remove
. lspci
명령으로 PCI ID를 찾을 수 있습니다 .echo 1 >/sys/bus/pci/rescan
여기에 버그가있는 pci 장치, 때로는 PCI 수준 재설정이 있으며 때로는이 제거 가능 트릭으로 문제를 해결합니다. 자동적으로 스크립트를 작성하려고합니다. :-)
00:14.0 USB controller: Intel Corporation 200 Series/Z370 Chipset Family USB 3.0 xHCI Controller
. VFIO를 통해 VM에 전달하고 VM을 재부팅 한 후 호스트를 재부팅해야 다시 작동해야합니다. 그렇지 않으면 연결된 USB가 감지되지만 통신이 실패합니다.