PCI Gen 1 장치는 커널 버전 4.10.9 이상의 최신 마더보드에서 작동하지 않습니다.

PCI Gen 1 장치는 커널 버전 4.10.9 이상의 최신 마더보드에서 작동하지 않습니다.

불행하게도 4.10.9보다 높은 커널 버전을 사용하면 LSI MegaRAID SAS 8708EM2 Raid 컨트롤러가 새 서버에서 더 이상 인식되지 않습니다. 따라서 버전 4.10.9에서는 내 디스크가 표시되었지만 4.11로 업데이트한 후에는 카드를 감지하지 lspci못하고 lsblk. 그래서 처음에는 바이오스 설정으로 문제를 해결할 수 있다고 생각했는데, 아쉽게도 아무것도 찾지 못했고, 기존 커널은 잘 작동하고 있었기 때문에 소프트웨어 수정이 있어야 할 것 같습니다. 나는 이 문제가 특히 카드보다는 PCI Gen 1 및 최신 마더보드와의 호환성과 관련이 있다고 확신합니다. 카드가 이전 커널의 최신 드라이버와 여전히 잘 작동하기 때문입니다.

다음은 새로운 시스템에 대한 일부 시스템 정보입니다 inxi -Fxz.

System:    Kernel: 4.14.295 x86_64 bits: 64 compiler: gcc v: 10.2.1 Console: tty 0 Distro: Debian GNU/Linux 11 (bullseye)
Machine:   Type: Desktop Mobo: Micro-Star model: X470 GAMING PLUS MAX (MS-7B79) v: 3.0 serial: <filter>
           UEFI: American Megatrends LLC. v: H.D2 date: 09/26/2021
CPU:       Info: 6-Core model: AMD Ryzen 5 5600X bits: 64 type: MT MCP arch: Zen 3 rev: 0 L2 cache: 3 MiB
           flags: avx avx2 lm nx pae sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3 svm bogomips: 88797
           Speed: 3600 MHz min/max: 2200/3700 MHz boost: enabled Core speeds (MHz): 1: 3600 2: 2878 3: 2869 4: 3593 5: 3594
           6: 2879 7: 2880 8: 3594 9: 3598 10: 2874 11: 3593 12: 2873
Graphics:  Device-1: NVIDIA GK208B [GeForce GT 730] vendor: ZOTAC driver: nouveau v: kernel bus ID: 27:00.0
           Display: server: No display server data found. Headless machine? tty: 270x69
           Message: Advanced graphics data unavailable in console for root.
Audio:     Device-1: NVIDIA GK208 HDMI/DP Audio vendor: ZOTAC driver: snd_hda_intel v: kernel bus ID: 27:00.1
           Device-2: Advanced Micro Devices [AMD] Starship/Matisse HD Audio vendor: Micro-Star MSI driver: snd_hda_intel
           v: kernel bus ID: 2a:00.4
           Sound Server: ALSA v: k4.14.295
Network:   Device-1: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet vendor: Micro-Star MSI driver: r8169 v: 2.3LK-NAPI
           port: d000 bus ID: 22:00.0
           IF: enp34s0 state: up speed: 1000 Mbps duplex: full mac: <filter>
           Device-2: Intel 82572EI Gigabit Ethernet driver: e1000e v: 3.2.6-k port: c000 bus ID: 25:00.0
           IF: enp37s0 state: down mac: <filter>
Drives:    Local Storage: total: 232.89 GiB used: 39.07 GiB (16.8%)
           ID-1: /dev/sda vendor: Crucial model: CT250MX500SSD4 size: 232.89 GiB temp: 33 C
Partition: ID-1: / size: 226.74 GiB used: 39.07 GiB (17.2%) fs: ext4 dev: /dev/sda2
           ID-2: /boot/efi size: 511 MiB used: 3.4 MiB (0.7%) fs: vfat dev: /dev/sda1
Swap:      ID-1: swap-1 type: partition size: 977 MiB used: 0 KiB (0.0%) dev: /dev/sda3
Sensors:   Message: No sensors data was found. Is sensors configured?
Info:      Processes: 174 Uptime: 10m Memory: 31.4 GiB used: 624.8 MiB (1.9%) Init: systemd runlevel: 5 Compilers: gcc: 10.2.1
           Packages: 519 Shell: Bash v: 5.1.4 inxi: 3.3.01

dmesg최신 커널이 설치된 기존 마더보드에서(작동): https://www.pastery.net/uftfdg/

dmesg새 보드에서 이전 보드와 동일한 Linux 이미지를 사용합니다(작동하지 않음). https://www.pastery.net/dwumbf/

가장 먼저 눈에 띄는 것은 리딩 라인의 차이였습니다. 이것이 올바른 접근 방식이 될 수 있습니까?

dmesg커널 4.9.330(작동 중):

[    1.099063] pci 0000:00:03.2: scanning [bus 28-28] behind bridge, pass 0
[    1.099099] pci_bus 0000:28: scanning bus
[    1.099112] pci 0000:28:00.0: [1000:0060] type 00 class 0x010400
[    1.099136] pci 0000:28:00.0: reg 0x10: [mem 0xfc940000-0xfc97ffff 64bit]
[    1.099147] pci 0000:28:00.0: reg 0x18: [io  0xe000-0xe0ff]
[    1.099164] pci 0000:28:00.0: reg 0x1c: [mem 0xfc900000-0xfc93ffff 64bit]
[    1.099185] pci 0000:28:00.0: reg 0x30: [mem 0xfc980000-0xfc99ffff pref]
[    1.099251] pci 0000:28:00.0: supports D1
[    1.111045] pci_bus 0000:28: fixups for bus
[    1.111045] pci 0000:00:03.2: PCI bridge to [bus 28]
[    1.111049] pci 0000:00:03.2:   bridge window [io  0xe000-0xefff]
[    1.111051] pci 0000:00:03.2:   bridge window [mem 0xfc900000-0xfc9fffff]
[    1.111055] pci_bus 0000:28: bus scan returning with max=28
[    1.111058] pci 0000:00:07.1: scanning [bus 29-29] behind bridge, pass 0

lspci -v커널 4.9.330에서:

28:00.0 RAID bus controller: Broadcom / LSI MegaRAID SAS 1078 (rev 04)
    Subsystem: Broadcom / LSI MegaRAID SAS 1078
    Flags: bus master, fast devsel, latency 0, IRQ 234, IOMMU group 16
    Memory at fc940000 (64-bit, non-prefetchable) [size=256K]
    I/O ports at e000 [size=256]
    Memory at fc900000 (64-bit, non-prefetchable) [size=256K]
    Expansion ROM at fc980000 [disabled] [size=128K]
    Capabilities: [b0] Express Endpoint, MSI 00
    Capabilities: [c4] MSI: Enable- Count=1/4 Maskable- 64bit+
    Capabilities: [d4] MSI-X: Enable+ Count=4 Masked-
    Capabilities: [e0] Power Management version 2
    Capabilities: [ec] Vital Product Data
    Capabilities: [100] Power Budgeting <?>
    Kernel driver in use: megaraid_sas
    Kernel modules: megaraid_sas

dmesg커널 4.14.295(작동하지 않음):

[    0.312039] pci 0000:00:03.2: scanning [bus 28-28] behind bridge, pass 0
[    0.512001] pci_bus 0000:28: scanning bus
[    0.712001] pci_bus 0000:28: fixups for bus
[    0.712001] pci 0000:00:03.2: PCI bridge to [bus 28]
[    0.712005] pci 0000:00:03.2:   bridge window [io  0xe000-0xefff]
[    0.712007] pci 0000:00:03.2:   bridge window [mem 0xfc900000-0xfc9fffff]
[    0.712011] pci_bus 0000:28: bus scan returning with max=28
[    0.712013] pci 0000:00:07.1: scanning [bus 29-29] behind bridge, pass 0

주석( lspci -s 28:00.0lspci -n -s 28:0.0)은 커널 4.14.295에서 아무것도 반환하지 않습니다.

불행하게도 저는 커널 컴파일 세계에 익숙하지 않습니다(저는 이 튜토리얼을 사용했습니다)https://askubuntu.com/a/513243) 더 나은 디버깅을 위해 어떤 수정을 해야 하는지 정확히 모르겠습니다. 나는 커널 패치를 개별적으로 적용하고 카드가 더 이상 인식되지 않을 때까지 커널을 패치하면 문제가 제한될 수 있다고 생각했지만 불행히도 이 접근 방식은 빠르게 어리석은 것으로 판명되었습니다.

변경 로그에서도 변경 사항을 찾아보았습니다.https://mirrors.edge.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.10.9그리고https://mirrors.edge.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.11.1, 하지만 안타깝게도 그곳에서도 아무것도 찾지 못했습니다.

문제를 디버그하거나 해결하는 데 도움이 될 수 있는 모든 아이디어에 진심으로 감사드립니다.

관련 정보