'알 수 없는 헤더 유형 7f'로 인해 버스에서 떨어졌을 때 PCI 장치를 어떻게 다시 연결할 수 있습니까?

'알 수 없는 헤더 유형 7f'로 인해 버스에서 떨어졌을 때 PCI 장치를 어떻게 다시 연결할 수 있습니까?

최근 내 장치에서 때때로 네트워크 문제가 발생합니다. 결국 r8169 드라이버와 최신 커널 업데이트를 사용할 때 NIC 중 하나에 문제가 있을 수 있다는 사실을 발견했습니다. 6.0->6.2 재부팅하지 않고 온라인으로 NIC를 다시 시작하려고 합니다. 그러나 나는 그것을 작동시킬 수 없습니다. 내가 한 일은 다음과 같습니다.

  1. modprobe -r r8169
  2. modprobe r8169
  3. lsmod | grep r8169 그러나 NIC를 감지할 수 없습니다.

lspci는 버스에서 이미 연결이 끊어졌을 수 있음을 보여줍니다.

03:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev ff) (prog-if ff)
        DeviceName: GLAN
        !!! Unknown header type 7f
        Kernel modules: r8169

일반적으로 이 시점에서 재부팅하면 다시 복원할 수 있습니다. 그러나 지금 나는 중단하고 싶지 않은 오래 지속되는 작업을 실행하고 있습니다. 따라서 이 PCI 장치를 온라인으로 다시 시작할 수 있기를 바랍니다. (NIC 교체나 다운그레이드 커널을 제안하는 사람이 있다면 잠시만 기다려 주세요. 이는 내 문제에 대한 유효한 제안이 아닙니다.)

누구든지 이것이 어떻게 달성될 수 있는지 또는 전혀 가능한지에 대한 힌트를 줄 수 있습니까?

관련 dmesg:

Sep 08 10:51:39 miniserver kernel: WARNING: CPU: 10 PID: 0 at net/sched/sch_generic.c:525 dev_watchdog+0x21f/0x230
Sep 08 10:51:39 miniserver kernel: Modules linked in: rfcomm xt_CHECKSUM nvme_fabrics nft_chain_nat xt_MASQUERADE nf_nat xfrm_user xfrm_algo cmac algif_hash algif_skc>
Sep 08 10:51:39 miniserver kernel:  typec_ucsi btintel spi_nor hid_multitouch mei_pxp mei_hdcp kvm iwlmvm typec ee1004 mtd intel_rapl_msr snd_seq_midi btmtk i915 btrf>
Sep 08 10:51:39 miniserver kernel:  asus_wmi ledtrig_audio sparse_keymap platform_profile hid_generic uas usbhid usb_storage nvidia_drm(POE) nvidia_modeset(POE) nvidi>
Sep 08 10:51:39 miniserver kernel: CPU: 10 PID: 0 Comm: swapper/10 Tainted: P           OE      6.2.0-32-generic #32~22.04.1-Ubuntu
Sep 08 10:51:39 miniserver kernel: r8169 0000:03:00.0 eno2: rtl_chipcmd_cond == 1 (loop: 100, delay: 100).

내가 시도한 몇 가지:

  • sudo bash -c 'echo "1" > /sys/bus/pci/devices/$NUMBER/reset'오류가 발생합니다. 아마도 장치에 이미 연결할 수 없기 때문일 것입니다.
  • sudo bash -c 'echo 1 > /sys/bus/pci/devices/0000\:03\:00.0/remove'실제로 장치를 제거하십시오. 그러나 sudo bash -c 'echo 1 > /sys/bus/pci/rescan'다시 가져오지 않았습니다. dmesg: kernel: pci 0000:03:00.0: Unable to change power state from unknown to D0, device inaccessible 나는 또한 pci 브리지 핫 리셋을 시도했습니다.setpci 오류 가 발생하지는 않지만 Unable to change power state다시 검색하면 장치를 전혀 감지할 수 없습니다.

여러 장치에서 동일한 문제가 발생하기 때문에 이것이 하드웨어 문제라고 생각하지 않습니다. 발생 빈도도 매우 낮습니다. 평균 2일에 1번 발생합니다. 아직 이전 커널을 실행하는 장치에서는 이런 현상이 발생하지 않았습니다.

관련 정보