Igel M350C - unable to use integrated mmc after recent FOG Update
-
Hi all,
we use FOG to deploy a custom thinclient operating system to hardware made by Igel.
One of the models we use has an integrated sd card reader where the only storage resides.
Before the last FOG update, we did not encounter any issues.
Since updating to 1.5.10.1673 however, we get the following message:mmc0: mmc_select_hs400 failed, error -110 mmc0: error -110 whilst initialising MMC card
followed by the “An error has been detected!” - message stating
Init Version: 20250731 Could not determine a suitable disk automatically.
Updating from stable to dev branch did not bump the version number in the fog webinterface and has not resolved this issue.
Any hints on how to resolve this without downgrading? Seems to be an issue with the order in which the linux kernel handles sd cards.
Using the latest init.xz and bzImage from https://github.com/FOGProject/fos/releases did not help either -
Maybe try stepping back to older kernels via the web GUI, FOG Configuration -> Kernel Update
That way you can test if it is purely a kernel issue without downgrading anything else.
-
This post is deleted! -
@RAThomas thanks for the hint, switching to bzimage from fog 1.5.9 did not fix this issue however. still fails with the same error.
-
@pilipp_edv
re-ran the current stable installer to get the current bzImage and init.xz again and now this is the error when trying to deploy -
using different bzImage from 2024 resolved this issue for me.
thanks again @RAThomas for the suggestion, this topic can be marked as resolved.
-
@pilipp_edv
Glad you got it figure out.
In case you aren’t aware, you can download that bzImage as a different name likebzImage-mmc
and use that case sensitive name in theHost Kernel
field on any host you have with the mmc and your other hosts can use the default latest.Would you be willing to share more info on the make/model of these computers and or the make/model of the mmc controller and such? Although it could just be down to what driver versions are included by linux at the kernel level with different versions of the kernel, we can also check if there was a config change in what we include in the kernel between then and now that could have caused this.
-
@JJ-Fullmer didn’t think of that to be honest. neat functionality though.
The computers in question are thinclients made by IGEL with model name M350C. I don’t have any spec sheet at hand, and this is all the information I can get from lshw:
*-mmc0 description: MMC Host physical id: 1 logical name: mmc0 *-device description: SD/MMC Device product: MB2908 vendor: Unknown (112) physical id: 1 bus info: mmc@0:0001 date: 12/2021 serial: 786513286 capabilities: mmc *-interface:0 physical id: 1 logical name: /dev/mmcblk0rpmb *-interface:1 physical id: 2 logical name: /dev/mmcblk0 size: 7818182656 capabilities: gpt-1.00 partitioned partitioned:gpt configuration: guid=1a95b8bc-00fe-4914-b3e5-fbfeadcec3f3 logicalsectorsize=512 sectorsize=512 *-volume:0 UNCLAIMED description: Windows FAT volume vendor: mkfs.fat physical id: 1 version: FAT32 serial: 2897-15bc size: 510MiB capacity: 511MiB capabilities: boot fat initialized configuration: FATs=2 filesystem=fat *-volume:1 description: EFI partition physical id: 2 logical name: /dev/mmcblk0p2 logical name: / logical name: /boot/grub2/i386-pc logical name: /home logical name: /boot/grub2/x86_64-efi logical name: /root logical name: /srv logical name: /opt logical name: /usr/local logical name: /var serial: 604ab399-44a4-4424-b2a1-6c00b24e85fe capacity: 6942MiB configuration: mount.fstype=btrfs mount.options=rw,relatime,ssd,discard=async,space_cache=v2,subvolid=257,subvol=/@/var state=mounted
here’s the sata controller:
*-sata description: SATA controller product: FCH SATA Controller [AHCI mode] vendor: Advanced Micro Devices, Inc. [AMD] physical id: 0 bus info: pci@0000:03:00.0 version: 61 width: 32 bits clock: 33MHz capabilities: sata pm pciexpress msi ahci_1.0 bus_master cap_list configuration: driver=ahci latency=0 resources: irq:37 memory:c0200000-c02007ff
some more info from /sys/block/mmcblk0 :
cat /sys/block/mmcblk0/device/manfid 0x000070 cat /sys/block/mmcblk0/device/oemid 0x0100
dmesg logs :
dmesg | grep -i mmc [ 2.402874] [ T43] mmc0: SDHCI controller on ACPI [AMDI0040:00] using ADMA [ 2.486871] [ T64] mmc0: new HS400 MMC card at address 0001 [ 2.525628] [ T360] mmcblk0: mmc0:0001 MB2908 7.28 GiB [ 2.538622] [ T360] mmcblk0: p1 p2 [ 2.540006] [ T360] mmcblk0boot0: mmc0:0001 MB2908 4.00 MiB [ 2.541111] [ T360] mmcblk0boot1: mmc0:0001 MB2908 4.00 MiB [ 2.542009] [ T360] mmcblk0rpmb: mmc0:0001 MB2908 4.00 MiB, chardev (240:0) [ 7.779557] [ T534] BTRFS: device fsid 05497210-4970-4c6e-8f81-0e94b0309f1d devid 1 transid 224 /dev/mmcblk0p2 (179:2) scanned by mount (534) [ 7.780300] [ T534] BTRFS info (device mmcblk0p2): first mount of filesystem 05497210-4970-4c6e-8f81-0e94b0309f1d [ 7.780325] [ T534] BTRFS info (device mmcblk0p2): using crc32c (crc32c-x86) checksum algorithm [ 7.780334] [ T534] BTRFS info (device mmcblk0p2): using free-space-tree
info from mmc-utils :
mmc extcsd read /dev/mmcblk0 ============================================= Extended CSD rev 1.8 (MMC 5.1) ============================================= Card Supported Command sets [S_CMD_SET: 0x01] HPI Features [HPI_FEATURE: 0x01]: implementation based on CMD13 Background operations support [BKOPS_SUPPORT: 0x01] Max Packet Read Cmd [MAX_PACKED_READS: 0x3c] Max Packet Write Cmd [MAX_PACKED_WRITES: 0x20] Data TAG support [DATA_TAG_SUPPORT: 0x01] Data TAG Unit Size [TAG_UNIT_SIZE: 0x03] Tag Resources Size [TAG_RES_SIZE: 0x00] Context Management Capabilities [CONTEXT_CAPABILITIES: 0x05] Large Unit Size [LARGE_UNIT_SIZE_M1: 0x0f] Extended partition attribute support [EXT_SUPPORT: 0x03] Generic CMD6 Timer [GENERIC_CMD6_TIME: 0x32] Power off notification [POWER_OFF_LONG_TIME: 0xff] Cache Size [CACHE_SIZE] is 128 KiB Background operations status [BKOPS_STATUS: 0x00] 1st Initialisation Time after programmed sector [INI_TIMEOUT_AP: 0x64] Power class for 52MHz, DDR at 3.6V [PWR_CL_DDR_52_360: 0x00] Power class for 52MHz, DDR at 1.95V [PWR_CL_DDR_52_195: 0x00] Power class for 200MHz at 3.6V [PWR_CL_200_360: 0x00] Power class for 200MHz, at 1.95V [PWR_CL_200_195: 0x00] Minimum Performance for 8bit at 52MHz in DDR mode: [MIN_PERF_DDR_W_8_52: 0x00] [MIN_PERF_DDR_R_8_52: 0x00] TRIM Multiplier [TRIM_MULT: 0x11] Secure Feature support [SEC_FEATURE_SUPPORT: 0x55] Boot Information [BOOT_INFO: 0x07] Device supports alternative boot method Device supports dual data rate during boot Device supports high speed timing during boot Boot partition size [BOOT_SIZE_MULTI: 0x20] Access size [ACC_SIZE: 0x08] High-capacity erase unit size [HC_ERASE_GRP_SIZE: 0x01] i.e. 512 KiB High-capacity erase timeout [ERASE_TIMEOUT_MULT: 0x11] Reliable write sector count [REL_WR_SEC_C: 0x01] High-capacity W protect group size [HC_WP_GRP_SIZE: 0x10] i.e. 8192 KiB Sleep current (VCC) [S_C_VCC: 0x08] Sleep current (VCCQ) [S_C_VCCQ: 0x08] Sleep/awake timeout [S_A_TIMEOUT: 0x15] Sector Count [SEC_COUNT: 0x00e90000] Device is block-addressed Minimum Write Performance for 8bit: [MIN_PERF_W_8_52: 0x08] [MIN_PERF_R_8_52: 0x08] [MIN_PERF_W_8_26_4_52: 0x08] [MIN_PERF_R_8_26_4_52: 0x08] Minimum Write Performance for 4bit: [MIN_PERF_W_4_26: 0x08] [MIN_PERF_R_4_26: 0x08] Power classes registers: [PWR_CL_26_360: 0x00] [PWR_CL_52_360: 0x00] [PWR_CL_26_195: 0x00] [PWR_CL_52_195: 0x00] Partition switching timing [PARTITION_SWITCH_TIME: 0xff] Out-of-interrupt busy timing [OUT_OF_INTERRUPT_TIME: 0xff] I/O Driver Strength [DRIVER_STRENGTH: 0x1f] Card Type [CARD_TYPE: 0x57] HS400 Dual Data Rate eMMC @200MHz 1.8VI/O HS200 Single Data Rate eMMC @200MHz 1.8VI/O HS Dual Data Rate eMMC @52MHz 1.8V or 3VI/O HS eMMC @52MHz - at rated device voltage(s) HS eMMC @26MHz - at rated device voltage(s) CSD structure version [CSD_STRUCTURE: 0x02] Command set [CMD_SET: 0x00] Command set revision [CMD_SET_REV: 0x00] Power class [POWER_CLASS: 0x00] High-speed interface timing [HS_TIMING: 0x13] Enhanced Strobe mode [STROBE_SUPPORT: 0x01] Erased memory content [ERASED_MEM_CONT: 0x00] Boot configuration bytes [PARTITION_CONFIG: 0x00] Not boot enable No access to boot partition Boot config protection [BOOT_CONFIG_PROT: 0x00] Boot bus Conditions [BOOT_BUS_CONDITIONS: 0x00] High-density erase group definition [ERASE_GROUP_DEF: 0x01] Boot write protection status registers [BOOT_WP_STATUS]: 0x00 Boot Area Write protection [BOOT_WP]: 0x00 Power ro locking: possible Permanent ro locking: possible partition 0 ro lock status: not locked partition 1 ro lock status: not locked User area write protection register [USER_WP]: 0x00 FW configuration [FW_CONFIG]: 0x00 RPMB Size [RPMB_SIZE_MULT]: 0x20 Write reliability setting register [WR_REL_SET]: 0x00 user area: existing data is at risk if a power failure occurs during a write operation partition 1: existing data is at risk if a power failure occurs during a write operation partition 2: existing data is at risk if a power failure occurs during a write operation partition 3: existing data is at risk if a power failure occurs during a write operation partition 4: existing data is at risk if a power failure occurs during a write operation Write reliability parameter register [WR_REL_PARAM]: 0x15 Device supports writing EXT_CSD_WR_REL_SET Device supports the enhanced def. of reliable write Enable background operations handshake [BKOPS_EN]: 0x00 H/W reset function [RST_N_FUNCTION]: 0x00 HPI management [HPI_MGMT]: 0x01 Partitioning Support [PARTITIONING_SUPPORT]: 0x07 Device support partitioning feature Device can have enhanced tech. Max Enhanced Area Size [MAX_ENH_SIZE_MULT]: 0x0001d2 i.e. 3817472 KiB Partitions attribute [PARTITIONS_ATTRIBUTE]: 0x00 Partitioning Setting [PARTITION_SETTING_COMPLETED]: 0x00 Device partition setting NOT complete General Purpose Partition Size [GP_SIZE_MULT_4]: 0x000000 [GP_SIZE_MULT_3]: 0x000000 [GP_SIZE_MULT_2]: 0x000000 [GP_SIZE_MULT_1]: 0x000000 Enhanced User Data Area Size [ENH_SIZE_MULT]: 0x000000 i.e. 0 KiB Enhanced User Data Start Address [ENH_START_ADDR]: 0x00000000 i.e. 0 bytes offset Bad Block Management mode [SEC_BAD_BLK_MGMNT]: 0x00 Periodic Wake-up [PERIODIC_WAKEUP]: 0x00 Program CID/CSD in DDR mode support [PROGRAM_CID_CSD_DDR_SUPPORT]: 0x01 Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[127]]: 0x00 Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[126]]: 0x00 Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[125]]: 0x20 Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[124]]: 0x00 Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[123]]: 0x00 Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[122]]: 0x20 Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[121]]: 0x00 Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[120]]: 0x00 Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[119]]: 0x00 Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[118]]: 0x00 Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[117]]: 0x00 Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[116]]: 0x00 Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[115]]: 0x00 Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[114]]: 0x00 Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[113]]: 0x00 Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[112]]: 0x00 Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[111]]: 0x00 Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[110]]: 0x00 Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[109]]: 0x00 Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[108]]: 0x00 Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[107]]: 0x00 Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[106]]: 0x00 Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[105]]: 0x00 Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[104]]: 0x00 Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[103]]: 0x00 Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[102]]: 0x00 Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[101]]: 0x00 Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[100]]: 0x00 Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[99]]: 0x00 Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[98]]: 0x00 Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[97]]: 0x00 Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[96]]: 0x00 Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[95]]: 0x00 Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[94]]: 0x00 Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[93]]: 0x00 Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[92]]: 0x00 Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[91]]: 0x00 Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[90]]: 0x00 Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[89]]: 0x00 Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[88]]: 0x00 Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[87]]: 0x00 Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[86]]: 0x00 Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[85]]: 0x00 Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[84]]: 0x00 Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[83]]: 0x00 Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[82]]: 0x00 Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[81]]: 0x00 Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[80]]: 0x00 Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[79]]: 0x00 Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[78]]: 0x00 Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[77]]: 0x00 Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[76]]: 0x00 Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[75]]: 0x00 Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[74]]: 0x00 Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[73]]: 0x00 Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[72]]: 0x00 Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[71]]: 0x00 Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[70]]: 0x00 Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[69]]: 0x00 Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[68]]: 0x00 Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[67]]: 0x00 Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[66]]: 0x00 Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[65]]: 0x00 Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[64]]: 0x00 Native sector size [NATIVE_SECTOR_SIZE]: 0x00 Sector size emulation [USE_NATIVE_SECTOR]: 0x00 Sector size [DATA_SECTOR_SIZE]: 0x00 1st initialization after disabling sector size emulation [INI_TIMEOUT_EMU]: 0x00 Class 6 commands control [CLASS_6_CTRL]: 0x00 Number of addressed group to be Released[DYNCAP_NEEDED]: 0x00 Exception events control [EXCEPTION_EVENTS_CTRL]: 0x0000 Exception events status[EXCEPTION_EVENTS_STATUS]: 0x0000 Extended Partitions Attribute [EXT_PARTITIONS_ATTRIBUTE]: 0x0000 Context configuration [CONTEXT_CONF[51]]: 0x00 Context configuration [CONTEXT_CONF[50]]: 0x00 Context configuration [CONTEXT_CONF[49]]: 0x00 Context configuration [CONTEXT_CONF[48]]: 0x00 Context configuration [CONTEXT_CONF[47]]: 0x00 Context configuration [CONTEXT_CONF[46]]: 0x00 Context configuration [CONTEXT_CONF[45]]: 0x00 Context configuration [CONTEXT_CONF[44]]: 0x00 Context configuration [CONTEXT_CONF[43]]: 0x00 Context configuration [CONTEXT_CONF[42]]: 0x00 Context configuration [CONTEXT_CONF[41]]: 0x00 Context configuration [CONTEXT_CONF[40]]: 0x00 Context configuration [CONTEXT_CONF[39]]: 0x00 Context configuration [CONTEXT_CONF[38]]: 0x00 Context configuration [CONTEXT_CONF[37]]: 0x00 Packed command status [PACKED_COMMAND_STATUS]: 0x00 Packed command failure index [PACKED_FAILURE_INDEX]: 0x00 Power Off Notification [POWER_OFF_NOTIFICATION]: 0x01 Control to turn the Cache ON/OFF [CACHE_CTRL]: 0x01 Control to turn the Cache Barrier ON/OFF [BARRIER_CTRL]: 0x00 eMMC Firmware Version: � eMMC SECURE_WP_SUPPORT: 1 eMMC SECURE_WP_EN_STATUS: 0 eMMC Life Time Estimation A [EXT_CSD_DEVICE_LIFE_TIME_EST_TYP_A]: 0x01 eMMC Life Time Estimation B [EXT_CSD_DEVICE_LIFE_TIME_EST_TYP_B]: 0x01 eMMC Pre EOL information [EXT_CSD_PRE_EOL_INFO]: 0x01 Secure Removal Type [SECURE_REMOVAL_TYPE]: 0x01 information is configured to be removed by an erase of the physical memory Supported Secure Removal Type: information removed by an erase of the physical memory Command Queue Support [CMDQ_SUPPORT]: 0x01 Command Queue Depth [CMDQ_DEPTH]: 16 Command Enabled [CMDQ_MODE_EN]: 0x00 Note: CMDQ_MODE_EN may not indicate the runtime CMDQ ON or OFF. Please check sysfs node '/sys/devices/.../mmc_host/mmcX/mmcX:XXXX/cmdq_en'
let me know if this helps or if you’d like anything else