Menu

#61 eMMC support

open
nobody
eMMC (1)
9
2024-03-14
2024-03-11
No

I was trying to backup a Zimaboard computer and G4L booted fine but it just didn't see the onboard eMMC storage. I'm guessing the kernel modules have not been compiled?

Is it possible to add support for eMMC storage?

Discussion

  • Michael Setzer II

    ftp://setzco.dyndns.org/g4l-v0.66alpha29-fc39.iso
    ftp://setzco..dyndns.org/g4lefi-0.66.img

    Have updated bz6x7.9 kernel to add option
    CONFIG_PHY_INTEL_LGM_EMMC=y
    and rebuilt that kernel.

    Looked thru menuconfig, but couldn't find option in make menuconfig, so just activated it in .config
    Did make, and updated the above files, so both the syslinux iso and the grub4dos image files.

    Don't have the EMMC so having tested.
    Currently in Nevada taking care of mom from hospital, so remotely accessing machines in Guam.
    Didn't update the bz6x8 kernel, since it just came out of rc?

     
  • Puiu Saptezecisisase

    I tried the alpha you built and it didn't see the eMMC storage.
    Here's the output of lsmod taken from a working debian install:

    Module                  Size  Used by
    intel_rapl_msr         20480  0
    intel_rapl_common      32768  1 intel_rapl_msr
    x86_pkg_temp_thermal    20480  0
    intel_powerclamp       20480  0
    coretemp               20480  0
    crc32_pclmul           16384  0
    binfmt_misc            24576  1
    ghash_clmulni_intel    16384  0
    sha512_ssse3           49152  0
    sha512_generic         16384  1 sha512_ssse3
    sha256_ssse3           32768  0
    mmc_block              57344  0
    sha1_ssse3             32768  0
    nls_ascii              16384  1
    nls_cp437              20480  1
    vfat                   24576  1
    i915                 3055616  1
    fat                    90112  1 vfat
    drm_buddy              20480  1 i915
    mei_hdcp               24576  0
    drm_display_helper    184320  1 i915
    aesni_intel           393216  0
    sdhci_pci              77824  0
    evdev                  28672  3
    hid_generic            16384  0
    cqhci                  32768  1 sdhci_pci
    crypto_simd            16384  1 aesni_intel
    wdat_wdt               20480  0
    cec                    61440  2 drm_display_helper,i915
    r8169                  94208  0
    cryptd                 28672  2 crypto_simd,ghash_clmulni_intel
    sdhci                  81920  1 sdhci_pci
    rc_core                69632  1 cec
    rapl                   20480  0
    realtek                36864  1
    watchdog               45056  1 wdat_wdt
    pcspkr                 16384  0
    intel_cstate           20480  0
    mdio_devres            16384  1 r8169
    serio_raw              20480  0
    mmc_core              212992  4 sdhci,cqhci,mmc_block,sdhci_pci
    ttm                    94208  1 i915
    mei_me                 53248  1
    lpc_ich                28672  0
    i2c_i801               36864  0
    intel_xhci_usb_role_switch    16384  0
    i2c_smbus              20480  1 i2c_i801
    libphy                180224  3 r8169,mdio_devres,realtek
    roles                  20480  1 intel_xhci_usb_role_switch
    video                  65536  1 i915
    drm_kms_helper        204800  2 drm_display_helper,i915
    wmi                    36864  1 video
    mei                   159744  3 mei_hdcp,mei_me
    i2c_algo_bit           16384  1 i915
    button                 24576  0
    intel_pmc_core         53248  0
    sg                     40960  0
    usbhid                 65536  0
    hid                   159744  2 usbhid,hid_generic
    drm                   614400  6 drm_kms_helper,drm_display_helper,drm_buddy,i915,ttm
    fuse                  176128  1
    loop                   32768  0
    dm_mod                184320  0
    efi_pstore             16384  0
    configfs               57344  1
    efivarfs               24576  1
    ip_tables              36864  0
    x_tables               61440  1 ip_tables
    autofs4                53248  2
    ext4                  983040  1
    crc16                  16384  1 ext4
    mbcache                16384  1 ext4
    jbd2                  167936  1 ext4
    crc32c_generic         16384  0
    sd_mod                 65536  4
    xhci_pci               24576  0
    t10_pi                 16384  1 sd_mod
    xhci_hcd              315392  1 xhci_pci
    crc64_rocksoft         20480  1 t10_pi
    crc64                  20480  1 crc64_rocksoft
    crc_t10dif             20480  1 t10_pi
    crct10dif_generic      16384  0
    usbcore               348160  3 xhci_hcd,usbhid,xhci_pci
    ahci                   49152  3
    libahci                49152  1 ahci
    crct10dif_pclmul       16384  1
    crct10dif_common       16384  3 crct10dif_generic,crc_t10dif,crct10dif_pclmul
    crc32c_intel           24576  2
    libata                401408  2 libahci,ahci
    psmouse               184320  0
    scsi_mod              286720  3 sd_mod,libata,sg
    usb_common             16384  2 xhci_hcd,usbcore
    scsi_common            16384  3 scsi_mod,libata,sg
    fan                    20480  0
    

    The modules needed seem to be sdhci and sdhci_pci.

    Also, the inclusion of lsblk would be useful, but perhaps I should open a new feature request for this.

    But don't spend too much time on this, take care of your family!

     
  • Michael Setzer II

    Made a new alpha30 and new g4lefi.img
    had added the eMMC set to y, and had hoped the make oldconfig would have set any required options, but it appears it didn't. So, set the MMC-y, and then make oldconfig prompted for a number of other things.
    Also, added lsblk which just required the program since all linked libraries were already thers.

    Need to download new files.
    ftp://setzco.dyndns.org/g4l-v0.66alpha30-fc39.iso
    ftp://setzco..dyndns.org/g4lefi-0.66.img

    The differences between .config is
    2872,2873d2871
    < CONFIG_SSB_SDIOHOST_POSSIBLE=y
    < # CONFIG_SSB_SDIOHOST is not set
    3629,3653c3627
    < CONFIG_MMC=y
    < CONFIG_PWRSEQ_EMMC=y
    < CONFIG_PWRSEQ_SIMPLE=y
    < CONFIG_MMC_BLOCK=y
    < CONFIG_MMC_BLOCK_MINORS=8
    < # CONFIG_SDIO_UART is not set
    < # CONFIG_MMC_TEST is not set
    <
    < #
    < # MMC/SD/SDIO Host Controller Drivers
    < #
    < # CONFIG_MMC_DEBUG is not set
    < # CONFIG_MMC_SDHCI is not set
    < # CONFIG_MMC_WBSD is not set
    < # CONFIG_MMC_TIFM_SD is not set
    < # CONFIG_MMC_SDRICOH_CS is not set
    < # CONFIG_MMC_CB710 is not set
    < # CONFIG_MMC_VIA_SDMMC is not set
    < # CONFIG_MMC_VUB300 is not set
    < CONFIG_MMC_USHC=y
    < # CONFIG_MMC_USDHI6ROL0 is not set
    < # CONFIG_MMC_CQHCI is not set
    < # CONFIG_MMC_HSQ is not set
    < # CONFIG_MMC_TOSHIBA_PCI is not set
    < # CONFIG_MMC_MTK is not set

    CONFIG_MMC is not set

    4097c4071
    < CONFIG_PHY_INTEL_LGM_EMMC=y


    CONFIG_PHY_INTEL_LGM_EMMC is not set

    Might need < # CONFIG_MMC_SDHCI is not set
    to be set on, but it didn't prompt for Y on it?, but if it doesn't work, can set it, and rebuild kernel and make a version 31.

     
  • Michael Setzer II

    went ahead and make a new 31alpha and new g4lefi that have that added.

     
  • Puiu Saptezecisisase

    I tried alpha31 and it worked! (at least for backing up, haven't tried restoring but I see no reason why it shouldn't work) Found lsblk too, hope it didn't bloat the iso too much because it's useful having it.

    Thank you!

     
  • Michael Setzer II

    The difference in kernel size between bz6x7.8 and the added 6.7.9 is just about 93K of the 12M total size in difference. So not much there, and the lsblk was a small addition to ramdisk.lzma size. Just need to see what lines were change in config file, and add them to the bz6x8 .config. Generally keep the latest stable kernel, and the rc kernel, but 6.8 just went to released status. Usually wait for next rc to come out before changing default. Glad it works.

     

Log in to post a comment.