Boot from sdxc (mmc_core mmc_block) issue after update

Hi,
I updated my laptop two days ago, and I have the issue described below.

Foreword

  • Manjaro is on a sdhc. sdhc boot is quicker then the hd on this old laptop
  • My 2014 lenovo (multiboot) has a sdcard reader, but for some reason I can’t boot directly from it in bios. Boot process is:
  • initial load of refind (EFI booting) from hd efi partition. I could not find a way to see the sdhc from refind (likely a lack of module…)
  • refind pass control to linux kernel, loaded from hd (/dev/sda3)
  • linux kernel launched with root=/dev/mmcblk0p2
  • from here normal boot process, with /dev/sda3 mounted in /boot

Issue

  • after update I could not boot anymore
  • doing nothing I was landing on an emergency shell
  • after some troubleshooting I found that if I insert the sdhc AFTER the kernel is loaded, boot is ok
  • instead if I leave the sdhc inserted and boot the /dev/mmcblk0 is not recognized and I land on the emergency shell

So the experience is that I need to manually trigger the module load to have the kernel to see the sdhc. The matter is the laptop is used as “family kiosk”, in a not easily reachable position. I do not know how to force the kernel to access the sdhc. For the moment the workaround is to root=/dev/sda4, a hd partition where I did a cp -a from the original sdhc root.

Suggestions? Many thanks!

inxi -zv8
System:
  Kernel: 6.6.80-1-MANJARO arch: x86_64 bits: 64 compiler: gcc v: 14.2.1
    clocksource: tsc avail: acpi_pm parameters: root=/dev/sda4 rw quiet splash
    udev.log_priority=3 initrd=\initramfs-6.6-x86_64.img
  Desktop: KDE Plasma v: 6.3.2 tk: Qt v: N/A info: frameworks v: 6.11.0
    wm: kwin_wayland vt: 4 dm: SDDM Distro: Manjaro base: Arch Linux
Machine:
  Type: Laptop System: LENOVO product: 80L0 v: Lenovo G50-80
    serial: <superuser required> Chassis: type: 10 v: Lenovo G50-80
    serial: <superuser required>
  Mobo: LENOVO model: Lenovo G50-80 v: 31900058 WIN
    serial: <superuser required>
    part-nu: LENOVO_MT_80L0_BU_idea_FM_Lenovo G50-80
    uuid: <superuser required> UEFI: LENOVO v: B0CN72WW date: 01/27/2015
Battery:
  ID-1: BAT0 charge: 22.4 Wh (99.6%) condition: 22.5/28.5 Wh (78.8%)
    power: 6.7 W volts: 16.4 min: 14.4 model: Lenovo IdeaPad type: Unknown
    serial: <filter> status: charging
  Device-1: hidpp_battery_0 model: Logitech Illuminated Living-Room
    Keyboard K830 serial: <filter> charge: 50% (should be ignored)
    rechargeable: yes status: discharging
Memory:
  System RAM: total: 8 GiB available: 7.68 GiB used: 4.1 GiB (53.4%)
  Message: For most reliable report, use superuser + dmidecode.
  Array-1: capacity: 16 GiB slots: 2 modules: 2 EC: None
    max-module-size: 8 GiB note: est.
  Device-1: ChannelA-DIMM0 type: DDR3 detail: synchronous size: 4 GiB
    speed: 1600 MT/s volts: N/A width (bits): data: 64 total: 64
    manufacturer: Hynix/Hyundai part-no: HMT451S6BFR8A-PB serial: <filter>
  Device-2: ChannelB-DIMM0 type: DDR3 detail: synchronous size: 4 GiB
    speed: 1600 MT/s volts: N/A width (bits): data: 64 total: 64
    manufacturer: Hynix/Hyundai part-no: HMT451S6BFR8A-PB serial: <filter>
PCI Slots:
  Permissions: Unable to run dmidecode. Root privileges required.
CPU:
  Info: model: Intel Core i3-4005U bits: 64 type: MT MCP arch: Haswell
    gen: core 4 level: v3 note: check built: 2013-15 process: Intel 22nm
    family: 6 model-id: 0x45 (69) stepping: 1 microcode: 0x17
  Topology: cpus: 1x dies: 1 clusters: 2 cores: 2 threads: 4 tpc: 2
    smt: enabled cache: L1: 128 KiB desc: d-2x32 KiB; i-2x32 KiB L2: 512 KiB
    desc: 2x256 KiB L3: 3 MiB desc: 1x3 MiB
  Speed (MHz): avg: 1597 min/max: 800/1600 scaling: driver: intel_cpufreq
    governor: schedutil cores: 1: 1597 2: 1597 3: 1597 4: 1597 bogomips: 13574
  Flags: abm acpi aes aperfmperf apic arat arch_perfmon avx avx2 bmi1 bmi2
    bts clflush cmov constant_tsc cpuid cpuid_fault cx16 cx8 de ds_cpl dtes64
    dtherm dts epb erms est f16c fma fpu fsgsbase fxsr ht invpcid lahf_lm lm
    mca mce mmx monitor movbe msr mtrr nonstop_tsc nopl nx pae pat pbe pcid
    pclmulqdq pdcm pdpe1gb pebs pge pln pni popcnt pse pse36 pti pts rdrand
    rdtscp rep_good sdbg sep smep ss sse sse2 sse4_1 sse4_2 ssse3 syscall tm
    tm2 tsc tsc_adjust vme xsave xsaveopt xtopology xtpr
  Vulnerabilities:
  Type: gather_data_sampling status: Not affected
  Type: itlb_multihit status: KVM: VMX unsupported
  Type: l1tf mitigation: PTE Inversion
  Type: mds status: Vulnerable: Clear CPU buffers attempted, no microcode;
    SMT vulnerable
  Type: meltdown mitigation: PTI
  Type: mmio_stale_data status: Unknown: No mitigations
  Type: reg_file_data_sampling status: Not affected
  Type: retbleed status: Not affected
  Type: spec_rstack_overflow status: Not affected
  Type: spec_store_bypass status: Vulnerable
  Type: spectre_v1 mitigation: usercopy/swapgs barriers and __user pointer
    sanitization
  Type: spectre_v2 mitigation: Retpolines; STIBP: disabled; RSB filling;
    PBRSB-eIBRS: Not affected; BHI: Not affected
  Type: srbds status: Vulnerable: No microcode
  Type: tsx_async_abort status: Not affected
Graphics:
  Device-1: Intel Haswell-ULT Integrated Graphics vendor: Lenovo driver: i915
    v: kernel arch: Gen-7.5 process: Intel 22nm built: 2013 ports:
    active: HDMI-A-1 off: eDP-1 empty: DP-1,HDMI-A-2 bus-ID: 00:02.0
    chip-ID: 8086:0a16 class-ID: 0300
  Device-2: Bison Lenovo EasyCamera driver: uvcvideo type: USB rev: 2.0
    speed: 480 Mb/s lanes: 1 mode: 2.0 bus-ID: 1-6:4 chip-ID: 5986:0652
    class-ID: 0e02 serial: <filter>
  Display: wayland server: X.org v: 1.21.1.16 with: Xwayland v: 24.1.6
    compositor: kwin_wayland driver: X: loaded: modesetting
    alternate: fbdev,vesa dri: crocus gpu: i915 display-ID: 0
  Monitor-1: HDMI-A-1 model: Panasonic Panasonic-TV serial: <filter>
    built: 2011 res: mode: 1920x1080 hz: 60 scale: 100% (1) dpi: 70 gamma: 1.2
    chroma: red: x: 0.639 y: 0.345 green: x: 0.290 y: 0.635 blue: x: 0.161
    y: 0.090 white: x: 0.286 y: 0.294 size: 698x392mm (27.48x15.43")
    diag: 801mm (31.52") modes: 1920x1080, 1920x1080i, 1280x720, 720x576,
    720x576i, 720x480, 720x480i, 640x480
  Monitor-2: eDP-1 model: AU Optronics 0x40ec built: 2013 res: 1366x768
    dpi: 101 gamma: 1.2 chroma: red: x: 0.580 y: 0.333 green: x: 0.329 y: 0.565
    blue: x: 0.153 y: 0.137 white: x: 0.314 y: 0.329
    size: 344x193mm (13.54x7.6") diag: 394mm (15.5") ratio: 16:9
    modes: 1366x768
  API: EGL v: 1.5 hw: drv: intel crocus platforms: device: 0 drv: crocus
    device: 1 drv: swrast gbm: drv: crocus surfaceless: drv: crocus wayland:
    drv: crocus x11: drv: crocus
  API: OpenGL v: 4.6 compat-v: 4.5 vendor: intel mesa v: 24.3.4-arch1.1
    glx-v: 1.4 direct-render: yes renderer: Mesa Intel HD Graphics 4400 (HSW
    GT2) device-ID: 8086:0a16 memory: 1.46 GiB unified: yes display-ID: :3.0
  API: Vulkan Message: No Vulkan data available.
  Info: Tools: api: clinfo, eglinfo, glxinfo, vulkaninfo
    de: kscreen-console,kscreen-doctor wl: wayland-info x11: xdpyinfo,xprop
Audio:
  Device-1: Intel Haswell-ULT HD Audio vendor: Lenovo driver: snd_hda_intel
    v: kernel bus-ID: 00:03.0 chip-ID: 8086:0a0c class-ID: 0403
  Device-2: Intel 8 Series HD Audio vendor: Lenovo driver: snd_hda_intel
    v: kernel bus-ID: 00:1b.0 chip-ID: 8086:9c20 class-ID: 0403
  API: ALSA v: k6.6.80-1-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: Realtek RTL8111/8168/8211/8411 PCI Express Gigabit Ethernet
    vendor: Lenovo driver: r8169 v: kernel pcie: gen: 1 speed: 2.5 GT/s lanes: 1
    port: 3000 bus-ID: 02:00.0 chip-ID: 10ec:8168 class-ID: 0200
  IF: enp2s0 state: down mac: <filter>
  Device-2: Intel Wireless 3160 driver: iwlwifi v: kernel pcie: gen: 1
    speed: 2.5 GT/s lanes: 1 bus-ID: 03:00.0 chip-ID: 8086:08b4 class-ID: 0280
  IF: wlp3s0 state: up mac: <filter>
  IP v4: <filter> type: dynamic noprefixroute scope: global
    broadcast: <filter>
  IP v6: <filter> type: dynamic noprefixroute scope: global
  IP v6: <filter> type: noprefixroute scope: link
  IF-ID-1: wg0-mullvad state: unknown speed: N/A duplex: N/A mac: N/A
  IP v4: <filter> scope: global
  Info: services: NetworkManager, systemd-timesyncd, wpa_supplicant
  WAN IP: <filter>
Bluetooth:
  Device-1: Intel Bluetooth wireless interface driver: btusb v: 0.8 type: USB
    rev: 2.0 speed: 12 Mb/s lanes: 1 mode: 1.1 bus-ID: 1-7:5 chip-ID: 8087:07dc
    class-ID: e001
  Report: rfkill ID: hci0 rfk-id: 4 state: up address: see --recommends
Logical:
  Message: No logical block device data found.
RAID:
  Message: No RAID data found.
Drives:
  Local Storage: total: 931.51 GiB used: 16.56 GiB (1.8%)
  SMART Message: Unable to run smartctl. Root privileges required.
  ID-1: /dev/sda maj-min: 8:0 vendor: Samsung model: ST1000LM024 HN-M101MBB
    size: 931.51 GiB block-size: physical: 4096 B logical: 512 B speed: 6.0 Gb/s
    tech: HDD rpm: 5400 serial: <filter> fw-rev: 0001 scheme: GPT
  Optical-1: /dev/sr0 vendor: HL-DT-ST model: DVDRAM GUC0N rev: T.02
    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: 58.59 GiB size: 57.37 GiB (97.92%) used: 16.24 GiB (28.3%)
    fs: ext4 dev: /dev/sda4 maj-min: 8:4 label: N/A
    uuid: 9b796aa6-db6b-4761-9d03-9df1634bffd9
  ID-2: /boot raw-size: 400 MiB size: 358.5 MiB (89.62%)
    used: 135.7 MiB (37.9%) fs: ext4 dev: /dev/sda3 maj-min: 8:3
    label: LinuxBoot uuid: 9d1d5605-c7be-4b3a-935d-500cfc4566f5
  ID-3: /boot/efi raw-size: 260 MiB size: 256 MiB (98.46%)
    used: 194.1 MiB (75.8%) fs: vfat dev: /dev/sda2 maj-min: 8:2
    label: SYSTEM_DRV uuid: 9CAD-34EE
Swap:
  Alert: No swap data was found.
Unmounted:
  ID-1: /dev/sda1 maj-min: 8:1 size: 1000 MiB fs: ntfs label: WINRE_DRV
    uuid: 7C08AB0B08AAC38C
USB:
  Hub-1: 1-0:1 info: hi-speed hub with single TT ports: 8 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-3:2 info: Logitech Unifying Receiver type: keyboard,mouse,HID
    driver: logitech-djreceiver,usbhid interfaces: 3 rev: 2.0
    speed: 12 Mb/s (1.4 MiB/s) lanes: 1 mode: 1.1 power: 98mA
    chip-ID: 046d:c52b class-ID: 0300
  Device-2: 1-4:3 info: Realtek RTS5129 Card Reader Controller
    type: <vendor specific> driver: rtsx_usb,rtsx_usb_ms,rtsx_usb_sdmmc
    interfaces: 1 rev: 2.0 speed: 480 Mb/s (57.2 MiB/s) lanes: 1 mode: 2.0
    power: 500mA chip-ID: 0bda:0129 class-ID: ff00 serial: <filter>
  Device-3: 1-6:4 info: Bison Lenovo EasyCamera type: video driver: uvcvideo
    interfaces: 2 rev: 2.0 speed: 480 Mb/s (57.2 MiB/s) lanes: 1 mode: 2.0
    power: 500mA chip-ID: 5986:0652 class-ID: 0e02 serial: <filter>
  Device-4: 1-7:5 info: Intel Bluetooth wireless interface 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:07dc class-ID: e001
  Hub-2: 2-0:1 info: super-speed hub ports: 4 rev: 3.0
    speed: 5 Gb/s (596.0 MiB/s) lanes: 1 mode: 3.2 gen-1x1 chip-ID: 1d6b:0003
    class-ID: 0900
Sensors:
  System Temperatures: cpu: 42.0 C mobo: N/A
  Fan Speeds (rpm): N/A
Repos:
  Packages: pm: pacman pkgs: 1206 libs: 324 tools: pamac pm: flatpak pkgs: 0
  Active pacman repo servers in: /etc/pacman.d/mirrorlist
    1: http://manjaro.mirrors.uk2.net/stable/$repo/$arch
    2: https://mirror.koddos.net/manjaro/stable/$repo/$arch
    3: https://mirror.raiolanetworks.com/manjaro/stable/$repo/$arch
    4: https://mirror.init7.net/manjaro/stable/$repo/$arch
    5: https://mirror.kamtv.ru/manjaro/stable/$repo/$arch
    6: https://ftp.lysator.liu.se/pub/manjaro/stable/$repo/$arch
    7: https://nocix.mm.fcix.net/manjaro/stable/$repo/$arch
    8: https://mirrors.manjaro.org/repo/stable/$repo/$arch
Processes:
  CPU top: 5 of 255
  1: cpu: 17.4% command: firefox pid: 2778 mem: 439.7 MiB (5.5%)
  2: cpu: 7.8% command: firefox pid: 2901 mem: 258.3 MiB (3.2%)
  3: cpu: 5.2% command: konsole pid: 3297 mem: 205.1 MiB (2.6%)
  4: cpu: 4.5% command: kwin_wayland pid: 2079 mem: 221.3 MiB (2.8%)
  5: cpu: 4.3% command: firefox pid: 2863 mem: 145.0 MiB (1.8%)
  Memory top: 5 of 255
  1: mem: 439.7 MiB (5.5%) command: firefox pid: 2778 cpu: 17.4%
  2: mem: 423.2 MiB (5.3%) command: firefox pid: 1025 cpu: 2.5%
  3: mem: 384.0 MiB (4.8%) command: plasmashell pid: 2229 cpu: 2.9%
  4: mem: 308.0 MiB (3.9%) command: plasmashell pid: 879 cpu: 1.3%
  5: mem: 282.7 MiB (3.5%) command: kscreenlocker_greet pid: 1745 cpu: 1.2%
Info:
  Processes: 255 Power: uptime: 15m states: freeze,mem,disk suspend: deep
    avail: s2idle wakeups: 1 hibernate: platform avail: shutdown, reboot,
    suspend, test_resume image: 3.06 GiB services: org_kde_powerdevil,
    power-profiles-daemon, upowerd Init: systemd v: 257 default: graphical
    tool: systemctl
  Compilers: gcc: 14.2.1 Shell: Bash v: 5.2.37 running-in: konsole
    inxi: 3.3.37

In your case I would buy a cheap sdd and install Manjaro on it instead of a sdhc. You have created a very special boot case which is most likely not considered by anyone maintaining packages affecting your boot situation in the future. With other words, even if you find a solution for now, further issues are highly likely to show up in the future, again.

1 Like

Hi,
I looked at the card, it is a sdxc. Previously all was working fine, and because if I insert the card after kernel load I’m able to boot, I assume (possibly wrongly), that a module is missing in the (new) kernel?
I’ll try booting with an older kernel and report back here …

Do you have already

microcode

in the HOOKS=( line of your /etc/mkinitcpio.conf?

If not, add it after autodetect and run

sudo mkinitcpio -P
sudo update-grub

and reboot.

Hi,
so I tried with a 6.1 kernel, and I also tried the above microcode in mkinitcpio.conf. Both not solving the issue. I tried the following, and it revolvs around the mmc_block module.

  • after succesfull boot from sda4 at command prompt as root with sdxc inserted since power on: mount /dev/mmcblk0p1 /mnt fails and a blkid does not list /dev/mmcblk0
  • I then manually extract and insert back the sdxc. Now blkid shows it and mount succeed
  • I also tried to boot from the sdxc with a kernel line option root=/dev/mmcblk0p2 no splash. At one point I see a line “Waiting for /dev/mmcblk0p2” repeated a few times, the attempt from kernel to mount /. As said above if at that moment I insert the sdxc, boot progress nicely. If I do nothing boot fails and a emergency shell is prompted

So my conclusion is that the kernel has the module mmc_block “at hand”, and that the manual insert triggers the creation of the block device /dev/mmcblk0. So question is how may I force it?

Hi
I refer to the other thread, for inxi and “preface” (Boot from sdxc (mmc_core mmc_block) issue after update - #5 by rednose). I’m löooking at hint who/how the /dev/mmcblk0 device file gets created. I did the following check, with the sdxc already inserted before power on:

  1. I boot from a live-cd. At a prompt I do a lsblk or blkid, and /dev/mmcblk0 is shown
  2. I tried also to boot from a “recovery usb” like clonezilla. same as above the sdxc is found
  3. If I boot from my newly update Manjaro, the only way to have it sensed is manually extract and reinsert the sdxc

How can I force/trigger manjaro to “see” the sdxc?
Many thanks!

To try to clarify:

  • the card is already inserted when you boot
  • all the other distros see it
  • your Manjaro does not see it unless you eject it and insert it again

Correct?

I can’t offer any solution - I just wanted to clarify whether this is the issue or whether I misunderstood.

Correct!

The only thing I can think of right now is:
partprobe (in a terminal)
perhaps the command needs sudo (admin) privileges

It’s what, for instance, gparted does when you tell it to re-discover devices

I can’t test this - I do have SD cards, but I don’t run Manjaro on my machine

I am thinking - does your firmware has a setting called something Fast Boot?

The setting - if enabled - skips scanning for devices that is not required for starting the system.

The fact your sdcard is not recognized on boot - but if you eject and insert - then it is recognized, this makes me think if Fast Boot is enabled.

partprobe … no effects
fast boot: yes, it is present in the bios, but it is disabled.

About initial post: when I say live-cd, I meant I installed a live-cd on a usb stick, and that I can boot from it. laptop is a lenovo g50-80. It was never able to boot from bios directly to sd, nor I was able to “see” the sd from grub or refind. That is why I was loading the kernel from a small hd partition, then having manjaro “/” on the sdxc. Everithing was working nicely since last update, meaning manjaro was able to see the sdxc when inserted before power on.

I tried to boot with different kernels 6.1 and now 6.12, but I think something the way the kernel is built (hooks/mkinitcpio) lead to the issue

That is why I’m even able to boot from the sdxc, if during boot when kernel says “waiting 10 sec for /dev/mmcblk0p2” I insert the sdxc …

I have tested three (3) different systems - all three have a card reader - all three of them recognize the sd-card present before starting the system.

What ever it is - it must be something specific to your system - I cannot say what it is - what I can say - I am not able to reproduce the issue.

  1. cheap yepo plastic laptop - Linux 6.12.4
  2. Tuxedo Infinitibook Pro 14 gen.8 - Linux 6.12.13
  3. Lenovo ThinkStation P620 - Linux 6.12.18

Not much consolation - I know …

thanks for giving it a try!
I’m downloading now manjaro kde minimal, I’ll install on the usb stick. If after booting from it the sd-drive is seen, I’ll reinstall. Then in principle I should do a diff of partitions, between the currently booting on hd and the one on sd-disc to understand what the hell occurred … :frowning:

OK so there is definetively a bug in the last manjaro kde update. That is why:

  1. I downloaded manjaro kde minimal and installed on a usb
  2. booted from usb and installed on the sdxc (erasing partition option in installer)
  3. rebooted as before (i.e. efi from hd, kernel from hd, root from sdxc
    all was working fine and as before then
  4. updated system + reboot
    same situation, sdxc no more visible … something in the kernel build during update (mkinitcpio/hooks) is wrong …

The threads have now been merged considering they are closely related. Note that it’s usually better for those wishing to help for inxi output to be added to a new thread, regardless of how often you might have posted it in other topics.

Regards.