Wie kann ich das PCI-Gerät wieder anschließen, wenn es mit dem „unbekannten Header-Typ 7f“ vom Bus abgefallen ist?

Wie kann ich das PCI-Gerät wieder anschließen, wenn es mit dem „unbekannten Header-Typ 7f“ vom Bus abgefallen ist?

In letzter Zeit treten bei meinem Gerät von Zeit zu Zeit Netzwerkprobleme auf. Schließlich habe ich herausgefunden, dass eine der Netzwerkkarten möglicherweise Probleme hat, wenn der r8169-Treiber und die neuesten Kernel-Updates verwendet werden: 6.0->6.2 Ich versuche, die Netzwerkkarte online neu zu starten, ohne neu zu starten. Es funktioniert jedoch nicht. Folgendes habe ich getan:

  1. modprobe -r r8169
  2. modprobe r8169
  3. lsmod | grep r8169 Die Netzwerkkarte kann jedoch nicht erkannt werden.

lspci zeigt an, dass die Verbindung zum Bus möglicherweise bereits getrennt ist:

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

Normalerweise kann ich es an diesem Punkt durch einen Neustart wiederherstellen. Allerdings arbeite ich derzeit an einer langfristigen Beschäftigung, die ich nicht abbrechen möchte. Daher möchte ich dieses PCI-Gerät online erneut starten können. (Wenn irgendjemand vorschlägt, die Netzwerkkarte auszutauschen oder den Kernel herunterzustufen, denken Sie bitte darüber nach, das ist für mein Problem kein gültiger Vorschlag.)

Kann mir jemand einen Hinweis geben, wie dies erreicht werden könnte oder ob es überhaupt möglich ist?

das zugehörige 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).

Ich habe mehrere Dinge versucht:

  • sudo bash -c 'echo "1" > /sys/bus/pci/devices/$NUMBER/reset'einen Fehler ausgeben, wahrscheinlich weil das Gerät bereits nicht erreichbar ist.
  • sudo bash -c 'echo 1 > /sys/bus/pci/devices/0000\:03\:00.0/remove'tatsächlich das Gerät entfernen. Hat es jedoch sudo bash -c 'echo 1 > /sys/bus/pci/rescan'nicht zurückgebracht. die dmesg: kernel: pci 0000:03:00.0: Unable to change power state from unknown to D0, device inaccessible Ich habe auch versucht, den PCI-Bridge-Hot-Reset mitsetpci Dadurch wird der Fehler nicht verursacht Unable to change power state, allerdings kann beim erneuten Scannen überhaupt kein Gerät erkannt werden.

Ich glaube nicht, dass es ein Hardwareproblem ist, da ich mehrere Geräte habe, auf denen das gleiche Problem auftritt. Außerdem kommt es eher selten vor: durchschnittlich einmal alle zwei Tage. Auf einem Gerät, auf dem noch ältere Kernel laufen, ist mir das nicht passiert.

verwandte Informationen