Skip to content

[BUG] linux-cachyos-r8125: blacklist r8169 causes intermittent NIC detection failures at boot #773

@maeddesg

Description

@maeddesg

Pre-flight checklist

  • I have searched existing issues and this is not a duplicate.
  • I have read the Contributing Guidelines.
  • I have verified the issue is reproducible with the latest available CachyOS kernel.

Upstream / vanilla kernel check

I tested with a vanilla/upstream kernel and the issue does NOT reproduce there (CachyOS-specific bug)

Kernel variant

linux-cachyos (EEVDF, Clang)

System information (cachyos-bugreport.sh)

____________________________________________
Getting Hardware Information

System:
  Kernel: 6.18.10-2-cachyos-lts arch: x86_64 bits: 64 compiler: gcc v: 15.2.1
    clocksource: tsc avail: hpet,acpi_pm
    parameters: BOOT_IMAGE=/@/boot/vmlinuz-linux-cachyos-lts
    root=UUID=c3ac9d7e-2e89-4ea0-875c-049439ea1119 rw rootflags=subvol=@
    nowatchdog nvme_load=YES zswap.enabled=0 splash loglevel=3
    amdgpu.ppfeaturemask=0xffffffff
  Desktop: KDE Plasma v: 6.5.5 tk: Qt v: N/A wm: kwin_wayland dm: N/A
    Distro: CachyOS base: Arch Linux
Machine:
  Type: Desktop System: Micro (HK) Tech product: MotherBoard Series v: 1.0
    serial: N/A
  Mobo: Shenzhen Meigao Equipment model: DRFXI v: 1.0 serial: <filter>
    part-nu: MGDRFXI uuid: 8e4ef900-4499-11ef-816f-c6d6388c6100 Firmware: UEFI
    vendor: American Megatrends LLC. v: 1.12 date: 02/13/2025
Battery:
  Device-1: hidpp_battery_0 model: Logitech Wireless Keyboard serial: <filter>
    charge: 55% (should be ignored) rechargeable: yes status: discharging
CPU:
  Info: model: AMD Ryzen 9 7945HX with Radeon Graphics socket: FL1 bits: 64
    type: MT MCP arch: Zen 4 gen: 4 level: v4 note: check built: 2022+
    process: TSMC n5 (5nm) family: 0x19 (25) model-id: 0x61 (97) stepping: 2
    microcode: 0xA60120A
  Topology: cpus: 1x dies: 2 clusters: 2x1 cores: 16 threads: 32 tpc: 2
    smt: enabled cache: L1: 1024 KiB desc: d-16x32 KiB; i-16x32 KiB L2: 16 MiB
    desc: 16x1024 KiB L3: 64 MiB desc: 2x32 MiB
  Speed (MHz): avg: 1487 min/max: 406/5610 boost: enabled
    base/boost: 2500/5450 scaling: driver: amd-pstate-epp governor: performance
    volts: 1.3 V ext-clock: 100 MHz cores: 1: 1487 2: 1487 3: 1487 4: 1487
    5: 1487 6: 1487 7: 1487 8: 1487 9: 1487 10: 1487 11: 1487 12: 1487
    13: 1487 14: 1487 15: 1487 16: 1487 17: 1487 18: 1487 19: 1487 20: 1487
    21: 1487 22: 1487 23: 1487 24: 1487 25: 1487 26: 1487 27: 1487 28: 1487
    29: 1487 30: 1487 31: 1487 32: 1487 bogomips: 159700
  Flags-basic: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 sse4a
    ssse3 svm
  Vulnerabilities:
  Type: gather_data_sampling status: Not affected
  Type: ghostwrite status: Not affected
  Type: indirect_target_selection status: Not affected
  Type: itlb_multihit status: Not affected
  Type: l1tf status: Not affected
  Type: mds status: Not affected
  Type: meltdown status: Not affected
  Type: mmio_stale_data status: Not affected
  Type: old_microcode status: Not affected
  Type: reg_file_data_sampling status: Not affected
  Type: retbleed status: Not affected
  Type: spec_rstack_overflow mitigation: Safe RET
  Type: spec_store_bypass mitigation: Speculative Store Bypass disabled via
    prctl
  Type: spectre_v1 mitigation: usercopy/swapgs barriers and __user pointer
    sanitization
  Type: spectre_v2 mitigation: Enhanced / Automatic IBRS; IBPB:
    conditional; STIBP: always-on; PBRSB-eIBRS: Not affected; BHI: Not
    affected
  Type: srbds status: Not affected
  Type: tsa mitigation: Clear CPU buffers
  Type: tsx_async_abort status: Not affected
  Type: vmscape mitigation: IBPB before exit to userspace
Graphics:
  Device-1: Advanced Micro Devices [AMD/ATI] Navi 48 [Radeon RX 9070/9070
    XT/9070 GRE] vendor: XFX driver: amdgpu v: kernel arch: RDNA-4
    code: Navi-4x process: TSMC n4 (4nm) built: 2025+ pcie: gen: 5
    speed: 32 GT/s lanes: 16 ports: active: DP-2 empty: DP-1, DP-3, HDMI-A-1,
    Writeback-1 bus-ID: 03:00.0 chip-ID: 1002:7550 class-ID: 0300
  Device-2: USB Camera driver: snd-usb-audio,uvcvideo type: USB rev: 2.0
    speed: 480 Mb/s lanes: 1 mode: 2.0 bus-ID: 3-2.2.4:5 chip-ID: 32e6:9221
    class-ID: 0102 serial: <filter>
  Display: unspecified server: X.Org v: 24.1.9 with: Xwayland v: 24.1.9
    compositor: kwin_wayland driver: X: loaded: amdgpu unloaded: modesetting
    alternate: fbdev,vesa dri: radeonsi gpu: amdgpu display-ID: :0 screens: 1
  Screen-1: 0 s-res: 2560x1440 s-dpi: 96 s-size: 677x381mm (26.65x15.00")
    s-diag: 777mm (30.58")
  Monitor-1: DP-2 model: GN05 serial: <filter> built: 2023 res:
    mode: 2560x1440 hz: 240 scale: 100% (1) dpi: 109 gamma: 1.2
    size: 597x336mm (23.5x13.23") diag: 685mm (27") ratio: 16:9 modes:
    max: 2560x1440 min: 720x400
  API: EGL v: 1.5 hw: drv: amd radeonsi platforms: device: 0 drv: radeonsi
    device: 1 drv: swrast gbm: drv: radeonsi surfaceless: drv: radeonsi x11:
    drv: radeonsi inactive: wayland
  API: OpenGL v: 4.6 compat-v: 4.5 vendor: amd mesa v: 25.3.5-arch1.2
    glx-v: 1.4 direct-render: yes renderer: AMD Radeon RX 9070 XT (radeonsi
    gfx1201 LLVM 21.1.6 DRM 3.64 6.18.10-2-cachyos-lts) device-ID: 1002:7550
    memory: 15.62 GiB unified: no
  API: Vulkan v: 1.4.341 layers: 9 device: 0 type: discrete-gpu name: AMD
    Radeon RX 9070 XT (RADV GFX1201) driver: mesa radv v: 25.3.5-arch1.2
    device-ID: 1002:7550 surfaces: N/A
  Info: Tools: api: clinfo, eglinfo, glxinfo, vulkaninfo
    de: kscreen-console,kscreen-doctor gpu: amdgpu_top, corectrl, lact,
    radeontop wl: wayland-info x11: xdpyinfo, xprop, xrandr
Audio:
  Device-1: Advanced Micro Devices [AMD/ATI] Navi 48 HDMI/DP Audio
    driver: snd_hda_intel v: kernel pcie: gen: 5 speed: 32 GT/s lanes: 16
    bus-ID: 03:00.1 chip-ID: 1002:ab40 class-ID: 0403
  Device-2: Advanced Micro Devices [AMD] Ryzen HD Audio
    driver: snd_hda_intel v: kernel pcie: gen: 4 speed: 16 GT/s lanes: 16
    bus-ID: 08:00.6 chip-ID: 1022:15e3 class-ID: 0403
  Device-3: USB Camera driver: snd-usb-audio,uvcvideo type: USB rev: 2.0
    speed: 480 Mb/s lanes: 1 mode: 2.0 bus-ID: 3-2.2.4:5 chip-ID: 32e6:9221
    class-ID: 0102 serial: <filter>
  API: ALSA v: k6.18.10-2-cachyos-lts status: kernel-api
    tools: alsactl,alsamixer,amixer
  Server-1: sndiod v: N/A status: off tools: aucat,midicat,sndioctl
  Server-2: JACK v: 1.9.22 status: off tools: N/A
  Server-3: PipeWire v: 1.4.10 status: n/a (root, process) with:
    1: pipewire-pulse status: active 2: wireplumber status: active
    3: pipewire-alsa type: plugin tools: pactl,pw-cat,pw-cli,wpctl
Network:
  Device-1: Intel Wi-Fi 6E AX210/AX1675 2x2 [Typhoon Peak]
    vendor: Rivet Networks Killer driver: iwlwifi v: kernel pcie: gen: 2
    speed: 5 GT/s lanes: 1 bus-ID: 06:00.0 chip-ID: 8086:2725 class-ID: 0280
  IF: wlan0 state: down mac: <filter>
  Device-2: Realtek RTL8125 2.5GbE driver: r8169 v: kernel pcie: gen: 2
    speed: 5 GT/s lanes: 1 port: e000 bus-ID: 07:00.0 chip-ID: 10ec:8125
    class-ID: 0200
  IF: enp7s0 state: up speed: 2500 Mbps duplex: full mac: <filter>
  IF-ID-1: docker0 state: down mac: <filter>
  Info: services: NetworkManager, sshd, systemd-timesyncd
Bluetooth:
  Device-1: Intel AX210 Bluetooth driver: btusb v: 0.8 type: USB rev: 2.0
    speed: 12 Mb/s lanes: 1 mode: 1.1 bus-ID: 5-1:2 chip-ID: 8087:0032
    class-ID: e001
  Report: btmgmt ID: hci0 rfk-id: 0 state: up address: N/A
Drives:
  Local Storage: total: 2.73 TiB used: 663.24 GiB (23.7%)
  ID-1: /dev/nvme0n1 maj-min: 259:0 vendor: Western Digital
    model: WD BLACK SN850X 1000GB size: 931.51 GiB block-size: physical: 512 B
    logical: 512 B speed: 63.2 Gb/s lanes: 4 tech: SSD serial: <filter>
    fw-rev: 620361WD temp: 41.9 C scheme: GPT
  SMART: yes health: PASSED on: 153d 22h cycles: 752
    read-units: 18,084,410 [9.25 TB] written-units: 11,743,204 [6.01 TB]
  ID-2: /dev/nvme1n1 maj-min: 259:1 vendor: Western Digital
    model: WD BLACK SN850X 2000GB size: 1.82 TiB block-size: physical: 512 B
    logical: 512 B speed: 63.2 Gb/s lanes: 4 tech: SSD serial: <filter>
    fw-rev: 620361WD temp: 43.9 C scheme: GPT
  SMART: yes health: PASSED on: 154d 10h cycles: 757
    read-units: 11,772,934 [6.02 TB] written-units: 13,655,732 [6.99 TB]
Partition:
  ID-1: / raw-size: 931.22 GiB size: 931.22 GiB (100.00%)
    used: 663.24 GiB (71.2%) fs: btrfs block-size: 4096 B dev: /dev/nvme0n1p2
    maj-min: 259:7
  ID-2: /boot/efi raw-size: 300 MiB size: 299.4 MiB (99.80%)
    used: 584 KiB (0.2%) fs: vfat block-size: 512 B dev: /dev/nvme0n1p1
    maj-min: 259:6
  ID-3: /home raw-size: 931.22 GiB size: 931.22 GiB (100.00%)
    used: 663.24 GiB (71.2%) fs: btrfs block-size: 4096 B dev: /dev/nvme0n1p2
    maj-min: 259:7
  ID-4: /var/log raw-size: 931.22 GiB size: 931.22 GiB (100.00%)
    used: 663.24 GiB (71.2%) fs: btrfs block-size: 4096 B dev: /dev/nvme0n1p2
    maj-min: 259:7
  ID-5: /var/tmp raw-size: 931.22 GiB size: 931.22 GiB (100.00%)
    used: 663.24 GiB (71.2%) fs: btrfs block-size: 4096 B dev: /dev/nvme0n1p2
    maj-min: 259:7
Swap:
  Kernel: swappiness: 150 (default 60) cache-pressure: 50 (default 100)
    zswap: no
  ID-1: swap-1 type: zram size: 62.5 GiB used: 0 KiB (0.0%) priority: 100
    comp: zstd avail: lzo-rle,lzo,lz4,lz4hc,deflate,842 dev: /dev/zram0
Sensors:
  System Temperatures: cpu: 53.9 C mobo: 43.0 C gpu: amdgpu temp: 38.0 C
    mem: 58.0 C
  Fan Speeds (rpm): N/A gpu: amdgpu fan: 0
Repos:
  Packages: 2297 pm: pacman pkgs: 2292 libs: 479 tools: octopi,paru
    pm: flatpak pkgs: 5
  Active pacman repo servers in: /etc/pacman.d/cachyos-mirrorlist
    1: https://cdn77.cachyos.org/repo/$arch/$repo
    2: https://cachyos.doridian.net/repo/$arch/$repo
    3: https://us.cachyos.org/repo/$arch/$repo
    4: https://us-mnz.soulharsh007.dev/cachyos/repo/$arch/$repo
    5: https://ca.mirror.cx/cachyos/repo/$arch/$repo
    6: https://at.cachyos.org/repo/$arch/$repo
    7: https://de-nue.soulharsh007.dev/cachyos/repo/$arch/$repo
    8: https://cdn.cachyos.org/repo/$arch/$repo
    9: https://mirror.cachyos.org/repo/$arch/$repo
    10: https://no.mirror.cx/cachyos/repo/$arch/$repo
    11: https://mirrors.lansing2600.org/cachyos/repo/$arch/$repo
    12: https://mirror.hb9hil.org/cachyos/repo/$arch/$repo
    13: https://mirror.lesviallon.fr/cachy/repo/$arch/$repo
    14: https://cachyos.next-works.it/repo/$arch/$repo
    15: https://nl.mirror.cx/cachyos/repo/$arch/$repo
    16: https://mirror.limda.net/cachy/repo/$arch/$repo
    17: https://mirrors.ustc.edu.cn/cachyos/repo/$arch/$repo
    18: https://mirror.nju.edu.cn/cachyos/repo/$arch/$repo
    19: https://mirror.meowsmp.net/cachyOS/repo/$arch/$repo
  Active pacman repo servers in: /etc/pacman.d/cachyos-v4-mirrorlist
    1: https://cdn77.cachyos.org/repo/$arch_v4/$repo
    2: https://cachyos.doridian.net/repo/$arch_v4/$repo
    3: https://us.cachyos.org/repo/$arch_v4/$repo
    4: https://us-mnz.soulharsh007.dev/cachyos/repo/$arch_v4/$repo
    5: https://ca.mirror.cx/cachyos/repo/$arch_v4/$repo
    6: https://at.cachyos.org/repo/$arch_v4/$repo
    7: https://de-nue.soulharsh007.dev/cachyos/repo/$arch_v4/$repo
    8: https://cdn.cachyos.org/repo/$arch_v4/$repo
    9: https://mirror.cachyos.org/repo/$arch_v4/$repo
    10: https://no.mirror.cx/cachyos/repo/$arch_v4/$repo
    11: https://mirrors.lansing2600.org/cachyos/repo/$arch_v4/$repo
    12: https://mirror.hb9hil.org/cachyos/repo/$arch_v4/$repo
    13: https://mirror.lesviallon.fr/cachy/repo/$arch_v4/$repo
    14: https://cachyos.next-works.it/repo/$arch_v4/$repo
    15: https://nl.mirror.cx/cachyos/repo/$arch_v4/$repo
    16: https://mirror.limda.net/cachy/repo/$arch_v4/$repo
    17: https://mirrors.ustc.edu.cn/cachyos/repo/$arch_v4/$repo
    18: https://mirror.nju.edu.cn/cachyos/repo/$arch_v4/$repo
    19: https://mirror.meowsmp.net/cachyOS/repo/$arch_v4/$repo
  Active pacman repo servers in: /etc/pacman.d/mirrorlist
    1: https://archlinux.cachyos.org/repo/$repo/os/$arch
    2: https://fastly.mirror.pkgbuild.com/$repo/os/$arch
    3: https://gluttony.sin.cvut.cz/arch/$repo/os/$arch
    4: https://mirror.1ago.be/archlinux/$repo/os/$arch
    5: https://ftp.energotel.sk/pub/linux/arch/$repo/os/$arch
    6: https://ftp.linux.edu.lv/archlinux/$repo/os/$arch
    7: https://at.arch.niranjan.co/$repo/os/$arch
    8: https://at.arch.mirror.kescher.at/$repo/os/$arch
    9: https://mirror.osbeck.com/archlinux/$repo/os/$arch
    10: https://mirror.raiolanetworks.com/archlinux/$repo/os/$arch
    11: https://arch.mirror.hyperbit.it/$repo/os/$arch
    12: https://mirror.moson.org/arch/$repo/os/$arch
    13: https://archlinux.koyanet.lv/archlinux/$repo/os/$arch
    14: https://mirrors.dotsrc.org/archlinux/$repo/os/$arch
    15: https://geo.mirror.pkgbuild.com/$repo/os/$arch
    16: https://es.mirrors.cicku.me/archlinux/$repo/os/$arch
    17: https://web.sketserv.ru/archlinux/$repo/os/$arch
    18: https://fi.arch.niranjan.co/$repo/os/$arch
    19: https://mirrors.xtom.ee/archlinux/$repo/os/$arch
    20: https://umea.mirror.pkgbuild.com/$repo/os/$arch
    21: https://tr.arch.niranjan.co/$repo/os/$arch
    22: https://arch.yhtez.xyz/$repo/os/$arch
    23: https://mirror.group.one/archlinux/$repo/os/$arch
    24: https://mirror.trap.moe/archlinux/$repo/os/$arch
    25: https://mirror.sinirlan.net/archlinux/$repo/os/$arch
    26: https://mirror.juniorjpdj.pl/archlinux/$repo/os/$arch
    27: https://archlinux.mailtunnel.eu/$repo/os/$arch
    28: https://archlinux.uk.mirror.allworldit.com/archlinux/$repo/os/$arch
    29: https://berlin.mirror.pkgbuild.com/$repo/os/$arch
    30: https://ro.arch.niranjan.co/$repo/os/$arch
    31: https://london.mirror.pkgbuild.com/$repo/os/$arch
    32: https://ru.mirrors.cicku.me/archlinux/$repo/os/$arch
    33: https://theswissbay.ch/archlinux/$repo/os/$arch
    34: https://mirrors.atviras.lt/archlinux/$repo/os/$arch
    35: https://mirrors.pidginhost.com/arch/$repo/os/$arch
    36: https://ch.mirrors.cicku.me/archlinux/$repo/os/$arch
    37: https://it.mirrors.cicku.me/archlinux/$repo/os/$arch
    38: https://hu.mirror.frigyes.dev/archlinux/$repo/os/$arch
    39: https://mirror.neuf.no/archlinux/$repo/os/$arch
    40: https://ftpmirror.infania.net/mirror/archlinux/$repo/os/$arch
    41: https://mirror.tux.si/arch/$repo/os/$arch
    42: https://mirror.nucc.tr/arch/$repo/os/$arch
    43: https://mirror.sahil.world/archlinux/$repo/os/$arch
    44: https://mirror.archlinux.si/$repo/os/$arch
    45: https://ftp.sh.cvut.cz/arch/$repo/os/$arch
    46: https://mirror.mirohost.net/archlinux/$repo/os/$arch
    47: https://nl.arch.niranjan.co/$repo/os/$arch
    48: https://archlinux.ip-connect.vn.ua/$repo/os/$arch
    49: https://mirror.tiguinet.net/arch/$repo/os/$arch
    50: https://arch.midov.pl/arch/$repo/os/$arch
    51: https://ftp.ek-cer.hu/pub/mirrors/ftp.archlinux.org/$repo/os/$arch
    52: https://repo.br.ee/arch/$repo/os/$arch
    53: https://mirrors.jlu.edu.cn/archlinux/$repo/os/$arch
    54: https://arch.mirror.constant.com/$repo/os/$arch
    55: https://mirror.archlinux.no/$repo/os/$arch
    56: https://us.arch.niranjan.co/$repo/os/$arch
    57: https://mirror.nyist.edu.cn/archlinux/$repo/os/$arch
    58: https://sg.arch.niranjan.co/$repo/os/$arch
    59: https://mirror.ditatompel.com/archlinux/$repo/os/$arch
    60: https://singapore.mirror.pkgbuild.com/$repo/os/$arch
    61: https://in.arch.niranjan.co/$repo/os/$arch
    62: https://mirror.gi.co.id/archlinux/$repo/os/$arch
Info:
  Memory: total: 64 GiB note: est. available: 62.5 GiB used: 8.36 GiB (13.4%)
  Processes: 566 Power: uptime: 7m states: freeze,mem,disk suspend: deep
    avail: s2idle wakeups: 0 hibernate: platform avail: shutdown, reboot,
    suspend, test_resume image: 24.98 GiB services: org_kde_powerdevil,
    power-profiles-daemon, upowerd Init: systemd v: 259 default: graphical
    tool: systemctl
  Compilers: clang: 21.1.8 gcc: 15.2.1 Shell: Bash (sudo) v: 5.3.9
    running-in: konsole inxi: 3.3.40

Manual system information (if cachyos-bugreport.sh is unavailable)


Bug description

The linux-cachyos-r8125 package writes only blacklist r8169 to /usr/lib/modprobe.d/linux-cachyos-r8125.conf. This causes intermittent boot failures where the RTL8125 NIC is not detected at all — r8169 is blocked but r8125.ko is not available in the initramfs yet when udev runs.

Steps to reproduce

  1. Install linux-cachyos and linux-cachyos-r8125
  2. Do NOT add r8125 to MODULES=() in /etc/mkinitcpio.conf
  3. Reboot multiple times
  4. Observe that the NIC is occasionally not detected (no driver loaded, no network)

Expected behavior

The RTL8125 NIC should be detected and use the r8125 driver on every boot.

Actual behavior

On some boots the NIC has no driver loaded. udev sees the device (10ec:8125), r8169 is blocked by the blacklist, but r8125.ko is in /usr/lib/modules/.../extramodules/ which is only available after rootfs is mounted — too late for early udev. The result is a race condition leaving the NIC without any driver.

Confirmed by:
sudo lsinitcpio /boot/initramfs-linux-cachyos.img | grep r8125
Only the modprobe config is present in the initramfs, not the module itself.

Workaround: adding r8125 to MODULES=() in /etc/mkinitcpio.conf fixes the issue permanently.

Proposed fix in _package-r8125() (PKGBUILD line 775), replace:
echo "blacklist r8169" > "${pkgdir}/usr/lib/modprobe.d/${pkgname}.conf"
with:
printf 'install r8169 /usr/bin/modprobe r8125 || /usr/bin/modprobe r8169\n'
> "${pkgdir}/usr/lib/modprobe.d/${pkgname}.conf"

This blocks r8169, tries r8125 first, and falls back gracefully if r8125 is unavailable (e.g. on a second kernel without the module).

Logs / stack traces

# No r8125 module in initramfs:
$ sudo lsinitcpio /boot/initramfs-linux-cachyos.img | grep r8125
usr/lib/modprobe.d/linux-cachyos-r8125.conf
# (no r8125.ko present)

# Current modprobe config:
$ cat /usr/lib/modprobe.d/linux-cachyos-r8125.conf
blacklist r8169

Additional system information

  • Hardware: Minisforum BD790i (Ryzen 9 7945HX, RDNA4)
  • NIC: Realtek RTL8125B (10ec:8125 rev 05, bus 0000:07:00.0)
  • Kernel: linux-cachyos 6.19.8-1
  • Package: linux-cachyos-r8125 6.19.8-1
  • DE: KDE Plasma 6 / Wayland
  • Still reproducible as of 6.19.8-1 — blacklist r8169 unchanged in PKGBUILD

Metadata

Metadata

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions