ASUSTec ROG Strix GL12CX only boots to fallback

Problem
I have a machine that does not boot from the Grub menu when using the default kernel but does boot into the fallback kernel configuration.

Partial Solution
I can get the default kernel configuration to boot if I remove the microcode images. i.e. initrd /boot/initramfs-6.12-x86_64.img works;

initrd /boot/intel-ucode.img /boot/amd-ucode.img /boot/initramfs-6.12-x86_64.img

does not work.

Questions

  1. Does my partial solution simply indicate an incompatibility between the kernel and the motherboard, and if so, could the problem be with mhwd not detecting a needed module?
  2. Is there a different set of configuration changes I should look at?
  3. Since everything seems to be functioning fine, if I chose to go forward without the microcode images, is there a configuration I can add so that those microcode images are not added to the default grub configuration when new kernels are built?

Background
First, this is not my primary Manjaro rig (summary shown in my profile), but an older machine that I recently migrated over to Manjaro. Also, this is not a problem for this rig that is unique to the 6.12 kernel since I also had this issue on 6.11 and 6.6. I completely wiped the two drives on this Rog and installed a fresh Manjaro, using non-free Nvidia drivers. I’ve done very few modifications to the original install. Before I discovered my “partial solution”, I did try some different mkinitcpio hook variations, including trying the systemd hook. The current configuration is this:
HOOKS=(base udev autodetect kms modconf block keyboard keymap consolefont plymouth resume filesystems fsck)

I investigated numerous threads regarding booting only to fallback, but none helped or really applied to this situation.

This is a low level issue for me (because my primary machine is fine) so don’t waste any bandwidth looking into this unless you are interested or can quickly point me somewhere to do additional research on my end. I debated with myself on whether to create this thread on the member hub or here in support, so move to the hub if that makes more sense.

Thanks in advance for any help.

System Information
System:
  Host: joeb-rogstrixg Kernel: 6.12.1-4-MANJARO arch: x86_64 bits: 64
    compiler: gcc v: 14.2.1 clocksource: tsc avail: acpi_pm
    parameters: BOOT_IMAGE=/boot/vmlinuz-6.12-x86_64
    root=UUID=f2d573e8-30f3-4e0a-80dc-9bd0956da421 rw
    resume=UUID=8d34d25c-2af5-496d-baa3-1f6abe1fe4a5 udev.log_priority=3
  Desktop: KDE Plasma v: 6.2.4 tk: Qt v: N/A info: frameworks v: 6.8.0
    wm: kwin_x11 vt: 2 dm: SDDM Distro: Manjaro base: Arch Linux
Machine:
  Type: Desktop System: ASUSTeK product: ROG Strix GL12CX_GL12CX v: 1.0
    serial: <superuser required>
  Mobo: ASUSTeK model: GL12CX v: 1.0 serial: <superuser required>
    uuid: <superuser required> UEFI: American Megatrends v: GL12CX.313
    date: 02/08/2021
Battery:
  Device-1: hidpp_battery_0 model: Logitech Wireless Keyboard
    serial: 00-00-00-00 charge: 55% (should be ignored) rechargeable: yes
    status: discharging
Memory:
  System RAM: total: 16 GiB available: 15.54 GiB used: 1.93 GiB (12.4%)
  Message: For most reliable report, use superuser + dmidecode.
  Array-1: capacity: 32 GiB slots: 2 modules: 2 EC: None
    max-module-size: 16 GiB note: est.
  Device-1: ChannelA-DIMM0 type: DDR4 detail: synchronous size: 8 GiB
    speed: 2667 MT/s volts: note: check curr: 1 min: 1 max: 1 width (bits):
    data: 64 total: 64 manufacturer: Samsung part-no: M378A1K43CB2-CTD
    serial: 710F9AC6
  Device-2: ChannelB-DIMM0 type: DDR4 detail: synchronous size: 8 GiB
    speed: 2667 MT/s volts: note: check curr: 1 min: 1 max: 1 width (bits):
    data: 64 total: 64 manufacturer: Samsung part-no: M378A1K43CB2-CTD
    serial: 710F9DB1
PCI Slots:
  Permissions: Unable to run dmidecode. Root privileges required.
CPU:
  Info: model: Intel Core i7-9700K bits: 64 type: MCP arch: Coffee Lake
    gen: core 9 level: v3 note: check built: 2018 process: Intel 14nm family: 6
    model-id: 0x9E (158) stepping: 0xC (12) microcode: 0xD2
  Topology: cpus: 1x dies: 1 clusters: 8 cores: 8 smt: <unsupported> cache:
    L1: 512 KiB desc: d-8x32 KiB; i-8x32 KiB L2: 2 MiB desc: 8x256 KiB
    L3: 12 MiB desc: 1x12 MiB
  Speed (MHz): avg: 800 min/max: 800/8300 scaling: driver: intel_pstate
    governor: powersave cores: 1: 800 2: 800 3: 800 4: 800 5: 800 6: 800 7: 800
    8: 800 bogomips: 57616
  Flags: 3dnowprefetch abm acpi adx aes aperfmperf apic arat
    arch_capabilities arch_perfmon art avx avx2 bmi1 bmi2 bts clflush
    clflushopt cmov constant_tsc cpuid cpuid_fault cx16 cx8 de ds_cpl dtes64
    dtherm dts epb ept ept_ad erms est f16c flexpriority flush_l1d fma fpu
    fsgsbase fxsr hle ht hwp hwp_act_window hwp_epp hwp_notify ibpb ibrs ida
    intel_pt invpcid lahf_lm lm mca mce md_clear mmx monitor movbe mpx msr
    mtrr nonstop_tsc nopl nx pae pat pbe pcid pclmulqdq pdcm pdpe1gb pebs pge
    pln pni popcnt pse pse36 pts rdrand rdseed rdtscp rep_good rtm sdbg sep
    smap smep smx ss ssbd sse sse2 sse4_1 sse4_2 ssse3 stibp syscall tm tm2
    tpr_shadow tsc tsc_adjust tsc_deadline_timer vme vmx vnmi vpid x2apic
    xgetbv1 xsave xsavec xsaveopt xsaves xtopology xtpr
  Vulnerabilities:
  Type: gather_data_sampling status: Vulnerable: No microcode
  Type: itlb_multihit status: KVM: Split huge pages
  Type: l1tf status: Not affected
  Type: mds mitigation: Clear CPU buffers; SMT disabled
  Type: meltdown status: Not affected
  Type: mmio_stale_data mitigation: Clear CPU buffers; SMT disabled
  Type: reg_file_data_sampling status: Not affected
  Type: retbleed mitigation: IBRS
  Type: spec_rstack_overflow status: Not affected
  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: IBRS; IBPB: conditional; STIBP: disabled;
    RSB filling; PBRSB-eIBRS: Not affected; BHI: Not affected
  Type: srbds mitigation: Microcode
  Type: tsx_async_abort mitigation: Clear CPU buffers; SMT disabled
Graphics:
  Device-1: NVIDIA TU106 [GeForce RTX 2070] vendor: ASUSTeK driver: nvidia
    v: 550.135 alternate: nouveau,nvidia_drm non-free: 550.xx+ status: current
    (as of 2024-09; EOL~2026-12-xx) arch: Turing code: TUxxx
    process: TSMC 12nm FF built: 2018-2022 pcie: gen: 1 speed: 2.5 GT/s
    lanes: 16 link-max: gen: 3 speed: 8 GT/s ports: active: none off: HDMI-A-1
    empty: DP-1,DP-2,Unknown-2 bus-ID: 01:00.0 chip-ID: 10de:1f02
    class-ID: 0300
  Display: x11 server: X.Org v: 21.1.14 with: Xwayland v: 24.1.4
    compositor: kwin_x11 driver: X: loaded: N/A failed: nvidia
    gpu: nvidia,nvidia-nvswitch display-ID: :0 screens: 1
  Screen-1: 0 s-res: 1920x1080 s-dpi: 92 s-size: 530x292mm (20.87x11.50")
    s-diag: 605mm (23.82") monitors: <missing: xrandr>
  Monitor-1: HDMI-A-1 size-res: N/A modes: N/A
  Monitor-2: Unknown-1 size-res: N/A modes: 1920x1080
  API: EGL v: 1.5 hw: drv: nvidia platforms: device: 0 drv: nvidia device: 2
    drv: swrast surfaceless: drv: nvidia x11: drv: nvidia
    inactive: gbm,wayland,device-1
  API: OpenGL v: 4.6.0 compat-v: 4.5 vendor: nvidia mesa v: 550.135
    glx-v: 1.4 direct-render: yes renderer: NVIDIA GeForce RTX 2070/PCIe/SSE2
    memory: 7.81 GiB
  API: Vulkan v: 1.3.295 layers: 1 device: 0 type: discrete-gpu
    name: NVIDIA GeForce RTX 2070 driver: nvidia v: 550.135 device-ID: 10de:1f02
    surfaces: xcb,xlib
Audio:
  Device-1: Intel Cannon Lake PCH cAVS vendor: ASUSTeK driver: snd_hda_intel
    v: kernel alternate: snd_soc_avs,snd_sof_pci_intel_cnl bus-ID: 00:1f.3
    chip-ID: 8086:a348 class-ID: 0403
  Device-2: NVIDIA TU106 High Definition Audio vendor: ASUSTeK
    driver: snd_hda_intel v: kernel pcie: gen: 3 speed: 8 GT/s lanes: 16
    bus-ID: 01:00.1 chip-ID: 10de:10f9 class-ID: 0403
  API: ALSA v: k6.12.1-4-MANJARO status: kernel-api with: aoss
    type: oss-emulator tools: alsactl,alsamixer,amixer
  Server-1: JACK v: 1.9.22 status: off tools: N/A
  Server-2: PipeWire v: 1.2.7 status: active 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 Cannon Lake PCH CNVi WiFi driver: iwlwifi v: kernel
    bus-ID: 00:14.3 chip-ID: 8086:a370 class-ID: 0280
  IF: wlo1 state: down mac: ee:ce:b2:a0:85:72
  Device-2: Intel Ethernet I219-V driver: e1000e v: kernel port: N/A
    bus-ID: 00:1f.6 chip-ID: 8086:15bc class-ID: 0200
  IF: eno2 state: up speed: 1000 Mbps duplex: full mac: 04:92:26:e0:40:69
  IP v4: 10.0.0.171/24 type: dynamic noprefixroute scope: global
    broadcast: 10.0.0.255
  IP v6: 2601:602:9601:57c0::9247/128 type: dynamic noprefixroute
    scope: global
  IP v6: 2601:602:9601:57c0:1668:e4b2:23f1:8614/64
    type: dynamic noprefixroute scope: global
  IP v6: fe80::f549:dd8d:1500:2709/64 type: noprefixroute scope: link
  Info: services: NetworkManager, systemd-timesyncd, wpa_supplicant
  WAN IP: 73.109.131.90
Bluetooth:
  Device-1: Intel Bluetooth 9460/9560 Jefferson Peak (JfP) driver: btusb
    v: 0.8 type: USB rev: 2.0 speed: 12 Mb/s lanes: 1 mode: 1.1 bus-ID: 1-14:4
    chip-ID: 8087:0aaa class-ID: e001
  Report: rfkill ID: hci0 rfk-id: 2 state: up address: see --recommends
Logical:
  Message: No logical block device data found.
RAID:
  Message: No RAID data found.
Drives:
  Local Storage: total: 1.38 TiB used: 22.59 GiB (1.6%)
  SMART Message: Required tool smartctl not installed. Check --recommends
  ID-1: /dev/nvme0n1 maj-min: 259:0 vendor: Intel model: SSDPEKNW512G8
    size: 476.94 GiB block-size: physical: 512 B logical: 512 B speed: 31.6 Gb/s
    lanes: 4 tech: SSD serial: BTNH83410332512A fw-rev: 002C temp: 27.9 C
    scheme: GPT
  ID-2: /dev/sda maj-min: 8:0 vendor: Toshiba model: DT01ACA100
    size: 931.51 GiB block-size: physical: 4096 B logical: 512 B speed: 6.0 Gb/s
    tech: HDD rpm: 7200 serial: Z8JNK0JNS fw-rev: A8S0 scheme: GPT
  Optical-1: /dev/sr0 vendor: HL-DT-ST model: DVDRAM GUE1N rev: AS00
    dev-links: cdrom
  Features: speed: 24 multisession: yes audio: yes dvd: yes
    rw: cd-r,cd-rw,dvd-r,dvd-ram state: running
Partition:
  ID-1: / raw-size: 440.8 GiB size: 432.81 GiB (98.19%) used: 12.06 GiB (2.8%)
    fs: ext4 dev: /dev/nvme0n1p3 maj-min: 259:3 label: Root
    uuid: f2d573e8-30f3-4e0a-80dc-9bd0956da421
  ID-2: /boot/efi raw-size: 4.88 GiB size: 4.87 GiB (99.80%)
    used: 288 KiB (0.0%) fs: vfat dev: /dev/nvme0n1p1 maj-min: 259:1 label: N/A
    uuid: 4065-8655
  ID-3: /home raw-size: 931.51 GiB size: 915.82 GiB (98.31%)
    used: 10.54 GiB (1.2%) fs: ext4 dev: /dev/sda1 maj-min: 8:1 label: Home
    uuid: 22aae47d-cf26-41be-aed3-dbf151f70e35
Swap:
  Kernel: swappiness: 60 (default) cache-pressure: 100 (default) zswap: no
  ID-1: swap-1 type: partition size: 31.25 GiB used: 0 KiB (0.0%)
    priority: -2 dev: /dev/nvme0n1p2 maj-min: 259:2 label: N/A
    uuid: 8d34d25c-2af5-496d-baa3-1f6abe1fe4a5
Unmounted:
  Message: No unmounted partitions found.
USB:
  Hub-1: 1-0:1 info: hi-speed hub with single TT ports: 16 rev: 2.0
    speed: 480 Mb/s (57.2 MiB/s) lanes: 1 mode: 2.0 chip-ID: 1d6b:0002
    class-ID: 0900
  Device-1: 1-6:2 info: Logitech Nano Receiver type: keyboard,mouse
    driver: logitech-djreceiver,usbhid interfaces: 2 rev: 2.0
    speed: 12 Mb/s (1.4 MiB/s) lanes: 1 mode: 1.1 power: 98mA
    chip-ID: 046d:c534 class-ID: 0301
  Device-2: 1-10:3 info: ASUSTek ITE Device(8910) type: keyboard
    driver: usbhid interfaces: 1 rev: 2.0 speed: 12 Mb/s (1.4 MiB/s) lanes: 1
    mode: 1.1 power: 100mA chip-ID: 0b05:1866 class-ID: 0301
  Device-3: 1-14:4 info: Intel Bluetooth 9460/9560 Jefferson Peak (JfP)
    type: bluetooth driver: btusb interfaces: 2 rev: 2.0
    speed: 12 Mb/s (1.4 MiB/s) lanes: 1 mode: 1.1 power: 100mA
    chip-ID: 8087:0aaa class-ID: e001
  Hub-2: 2-0:1 info: super-speed hub ports: 10 rev: 3.1
    speed: 10 Gb/s (1.16 GiB/s) lanes: 1 mode: 3.2 gen-2x1 chip-ID: 1d6b:0003
    class-ID: 0900
  Hub-3: 3-0:1 info: hi-speed hub with single TT ports: 2 rev: 2.0
    speed: 480 Mb/s (57.2 MiB/s) lanes: 1 mode: 2.0 chip-ID: 1d6b:0002
    class-ID: 0900
  Hub-4: 4-0:1 info: super-speed hub ports: 4 rev: 3.1
    speed: 10 Gb/s (1.16 GiB/s) lanes: 1 mode: 3.2 gen-2x1 chip-ID: 1d6b:0003
    class-ID: 0900
  Hub-5: 5-0:1 info: hi-speed hub with single TT ports: 2 rev: 2.0
    speed: 480 Mb/s (57.2 MiB/s) lanes: 1 mode: 2.0 chip-ID: 1d6b:0002
    class-ID: 0900
  Hub-6: 6-0:1 info: super-speed hub ports: 2 rev: 3.1
    speed: 10 Gb/s (1.16 GiB/s) lanes: 1 mode: 3.2 gen-2x1 chip-ID: 1d6b:0003
    class-ID: 0900
Sensors:
  System Temperatures: cpu: 30.0 C pch: 40.0 C mobo: N/A gpu: nvidia
    temp: 33 C
  Fan Speeds (rpm): cpu: 2800 gpu: nvidia fan: 20%
Repos:
  Packages: pm: pacman pkgs: 1185 libs: 324 tools: pamac pm: flatpak pkgs: 0
  Active pacman repo servers in: /etc/pacman.d/mirrorlist
    1: https://edgeuno-bog2.mm.fcix.net/manjaro/stable/$repo/$arch
    2: https://mirror.yandex.ru/mirrors/manjaro/stable/$repo/$arch
    3: http://mirror.xeonbd.com/manjaro/stable/$repo/$arch
    4: http://ossmirror.mycloud.services/os/linux/manjaro/stable/$repo/$arch
    5: https://mirrors.xtom.ee/manjaro/stable/$repo/$arch
    6: https://mirror.init7.net/manjaro/stable/$repo/$arch
    7: https://ftp.psnc.pl/linux/manjaro/stable/$repo/$arch
    8: https://manjarolinux-mirror.cloud.mu/stable/$repo/$arch
Processes:
  CPU top: 5 of 262
  1: cpu: 7.0% command: firefox pid: 1129 mem: 479.8 MiB (3.0%)
  2: cpu: 3.0% command: firefox pid: 1405 mem: 247.6 MiB (1.5%)
  3: cpu: 1.2% command: kwin_x11 pid: 807 mem: 177.3 MiB (1.1%)
  4: cpu: 0.8% command: Xorg pid: 647 mem: 73.2 MiB (0.4%)
  5: cpu: 0.7% command: zsh pid: 1716 mem: 9.71 MiB (0.0%)
  Memory top: 5 of 262
  1: mem: 479.8 MiB (3.0%) command: firefox pid: 1129 cpu: 7.0%
  2: mem: 366.4 MiB (2.3%) command: plasmashell pid: 823 cpu: 0.5%
  3: mem: 247.6 MiB (1.5%) command: firefox pid: 1405 cpu: 3.0%
  4: mem: 177.3 MiB (1.1%) command: kwin_x11 pid: 807 cpu: 1.2%
  5: mem: 171.7 MiB (1.0%) command: konsole pid: 1702 cpu: 0.4%
Info:
  Processes: 262 Power: uptime: 11m states: freeze,mem,disk suspend: deep
    avail: s2idle wakeups: 0 hibernate: platform avail: shutdown, reboot,
    suspend, test_resume image: 6.19 GiB services: org_kde_powerdevil,
    power-profiles-daemon, upowerd Init: systemd v: 256 default: graphical
    tool: systemctl
  Compilers: N/A Shell: Zsh v: 5.9 default: Bash v: 5.2.37
    running-in: konsole inxi: 3.3.36

Update on my research:
My testing with different mkintcpio.conf modifications, specifically to HOOKS, didn’t go anywhere but thanks @andreas85 for taking a look. It’s possible that I need to add something to the MODULES array, but I don’t know what. I do see a NVIDIA error from dmesg, 26.264812] [drm:drm_new_set_master] *ERROR* [nvidia-drm] [GPU ID 0x00000100] Failed to grab modeset ownership
which I overlooked including in this post (I had seen this message days earlier). I remember at the time adding this to mkinitcpio: MODULES=(nvidia nvidia_modeset nvidia_uvm nvidia_drm), but that did not help and I commented it out.

I managed to get the default boot to work by manually removing the microcode images. So now both the default and fallback images work as long as the microcode images are not present. I think the solution for this machine hardware is not to include the microcode images and of course not to use the microcode hook. If that’s the case, then I would still like an answer to one of my questions: how do i prevent mhwd from including the microcode images in the default when new kernels are built?

This indicates that the default initramdisk is incomplete!

The fallback initramdisk contains ALL modules. The default initramdisk contains only the specified modules.

  • Try to recreate your initram disks.
sudo mkinitcpio -P
  • Check which modules may be missing
    • Check carefully when booting to see if any errors are reported
    • Take a closer look at the relevant config file
    • Also have a look at the arch wiki on this topic

my hooks are:

#HOOKS=(base udev autodetect microcode modconf kms keyboard keymap consolefont block filesystems fsck)
#akf 3.2.2024
#HOOKS=(base systemd autodetect modconf kms block keyboard sd-vconsole filesystems bootsplash-manjaro grub-btrfs-overlayfs)
#akf 17.5.2024
HOOKS=(base systemd autodetect microcode modconf kms block keyboard sd-vconsole filesystems bootsplash-manjaro grub-btrfs-overlayfs)

The order of the hooks is important for correct functioning!

:footprints:

1 Like

I’ve performed sudo mkinitcpio -P for a few different variations, per my original post, including for the original configuration setup by Manjaro distro installation, but I’ll run through them again and list each configuration I try. The ones I know for certain I’ve already tried:

1. Original Manjaro installtion config.
2. HOOKS=(microcode autodetect systemd kms modconf block keyboard keymap consolefont plymouth filesystems resume fsck)
3. HOOKS=(base udev autodetect kms modconf block keyboard keymap consolefont plymouth resume filesystems fsck)
4. HOOKS=(base udev resume autodetect microcode modconf kms keyboard keymap consolefont block filesystems fsck)
5. HOOKS=(base udev resume autodetect modconf kms keyboard keymap consolefont block filesystems fsck)

Also regarding “Check carefully when booting to see if any errors are reported”,
there is no output at all when attempting to boot from the default image. Just a black screen. Some days ago I did some investigating and found nothing in the journal for boot attempts on default. I confirmed with journalctl-b-0 and 1 that nothing was logged. I’ve also used cpio to compare differences between the images, but that hasn’t really helped me identify what module(s) might be missing.

@andreas85 Even in the Arch Wiki order, does not help. When I make the mistake of including the microcode hook, I can’t even boot to the fallback, presumably since there are no microcode images, and must resort to my installation USB stick to recover. Both mkinitcpio configs #3 and #5 work in the fallback modes. I think the issue is something else because there is nothing logged at all in the journal for the default boots, which seems to imply to me that the kernel is never eve loaded.

The order of your hooks() seems to differ slightly from the arch-wiki.

The order of the hooks is important for correct functioning!

Please compare the order of your hooks with the order in the table at mkinitcpio - ArchWiki . And I would also leave out less important hooks (e.g. resume) until the boot works.

I’m pretty sure the problem is with one of the settings in mkinitcpio.conf. (So either hooks() or modules().)

1 Like

Answering my own question and resolving my particular problem, the answer is to add the kernel parameter, dis_ucode_ldr to the grub boot command options.

This is far from ideal, since I miss out on all of the micrcode changes to the kernel, but I think there is an incompatibility between the new microcode and the BIOS/hardware in my board. If I’m right and this indeed is the case, then that explains why I find nothing in journalctl.

If there is anyone out there that happens to have the same motherboard but has not had to resort to my extreme measure, I’d be interested is hearing from you.

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.