This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

J721EXSOMXEVM: Failed to Create SD Card with custom images

Part Number: J721EXSOMXEVM

Hello, referring to the guide at this link, I encountered errors while attempting to create the image and flash it to the SD card.

  1. What should be selected for the boot partition and rootfs partition when creating a custom SD card? Should both be from deploy-ti/images/j721e-evm?

  2. Can the kernel image and device tree files simply select "Reuse kernel image and device tree files found in the selected rootfs"?

  3. Will there be any impact if the setup.sh script was not run before building the SDK with Yocto?

  4. Is “installing SDK -> yocto to build SDK, generating deploy ti/images/j721e-evm/ -> running create sdcard.sh” the complete process of burning the image?
  • 您好

    已经收到了您的案例,调查需要些时间,感谢您的耐心等待

  • 您好,

          SDK 脚本 Yocto 构建步骤本质上独立的工作流程构建 SD 有多种选择这里它们的区别     

    Workflow Steps to Flash SD Card Uses
    TI.com wic
    1. Download the .wic image from the SDK release on TI.com
    2. Flash the .wic image to an SD card using Balena Etcher or bmaptools

    Simplest method to get a bootable image. Offers no customization.

    SDK Script
    1. Run sudo ./bin/create-sdcard.sh
    2. Select generated rootfs and bootfs images to pull from (there is a rootfs and boot image within the SDK by default)
    Offers slightly more customization. Allows you to point at a generated image.
    Yocto
    1. Follow the Yocto build steps: https://software-dl.ti.com/jacinto7/esd/processor-sdk-linux-jacinto7/latest/exports/docs/linux/Overview_Building_the_SDK.html 
    2. Flash the .wic image generated in delpoy-ti/images to an SD card using Balena Etcher or bmaptools 
    Offers most customization. Creating your own custom recipe allows you to control what is generated and installed to the bootable image. Details can be found within Yocto's documentation (https://docs.yoctoproject.org/5.0.8/)

              SDK Makefile 还允许用户自定义源和镜像,但需要生成可启动到 SD 卡。它将在预先存在的映像上安装编辑。

  • According to your explanation, the wic.xz file built by Yocto needs to be written to the SD card using bmaptool. However, the only wic.xz file in the deploy-ti/image/j721e-evm directory generated by Yocto-build is the following rootfs.wic.xz. Writing only rootfs.wic.xz should not be correct, right?

    ubuntu22@ubuntu22:/opt/work/ti-sdk/yocto-build/build/deploy-ti/images$ find ./ -name "*wic*"
    ./j721e-evm/tisdk-base-image-j721e-evm.rootfs.wic.bmap
    ./j721e-evm/tisdk-base-image-j721e-evm.rootfs-20250410071832.wic.bmap
    ./j721e-evm/tisdk-base-image-j721e-evm.rootfs.wic.xz
    ./j721e-evm/tisdk-base-image-j721e-evm.rootfs-20250410071832.wic.xz

    As I intended to experiment with the P2P configuration and only modified the .CONFIG file, would it be sufficient to flash only the rootfs? If not, what additional steps are required, and how should I proceed?

    Also, how should the uboot and dtb files be written?

  • Hello, I tested flashing the j721e-evm.rootfs.wic.xz image and found that the development board can boot normally from the SD card. However, when I run zcat /proc/config.gz | grep CONFIG_XXX, I don't see the CONFIG options I previously modified.

    Here’s what I did:

    1. Installed the SDK;

    2. Modified the .config in the kernel and recompiled the kernel;

    3. Then directly used the Yocto build to generate the output.

    My question is: if I want to modify the kernel image, how can I make sure the changes take effect? In the J721E 10_01 guidance document, I ran ./oe-layertool-setup.sh -f configs/processor-sdk-analytics/processor-sdk-analytics-<version>-config.txt, and it seems to be using the TI's configuration. How can I create my own custom kernel image instead?

  • 您好,

          要编辑 .config,可以运行:
         MACHINE=j784s4-evm bitbake -c menuconfig virtual/kernel

        除非进行了更改,否则 Yocto 不应重建映像,以便可以查看映像的上次修改日期,并查看它是否已重建。

        请参考下面帖子内容。

        SK-TDA4VM: Custom kernel config and workflow - Processors forum - Processors - TI E2E support forums

  • Alright, I’ll try my best. But I still want to ask about the standardized procedure for building a custom image. The j721e instruments(1.1.4. Create SD Card — Processor SDK Linux for J721e Documentation) process feels disordered and unclear in each step.

    For example, after I modify the .config file (or possibly the device tree or kernel source) and recompile the kernel, I encounter issues where create_sdcard.sh cannot find MLO and u-boot.img.

    Could you please provide a standardized and complete workflow?

  • 您好, 

          在前面的回复中介绍了构建SD卡的工作流程

        如果您想要真正的自定义映像,最好的选择是使用 Yocto,并按照其文档中的自定义说明进行作(制作自己的自定义层、配方等)。

    如果只是在 kernel 或 u-boot 上应用补丁,可以在 board-support 目录中进行更改并使用 make 文件进行构建。makefile 工作流程如下:

    # create default SD card using the create-sdcard.sh script
    sudo ./bin/create-sdcard.sh
    
    # edit the Rules.make and set the rootfs and boot partition paths
    # ROOTFS_PART?=__ROOTFS_PART__
    # BOOT_PART?=__BOOT_PART__
    
    # edit the Linux source files
    # source files are within ./board-support/ti-linux-kernel-*
    
    # build and install the new Linux sources
    make linux
    make linux_install
    
    # edit the U-Boot source files
    # source files are within ./board-support/ti-u-boot-*
    make u-boot
    make u-boot_install

    Yocto也可以在 U-Boot Linux 内核之上添加补丁只是需要更多的经验

  • Thank you for your reply. I followed the example from "1.1.7. Simplified SDK Build Using Top-Level Makefile — Processor SDK Linux for J721e Documentation" exactly to create the SD card.

    I tried to build the SD card using the top-level Makefile, but after running make u-boot_install and make linux_install, I found that the rootfs-partition only contains the bin and lib directories. After booting the development board, a kernel crash occurred due to the absence of a valid init program. What could be the cause of this issue? Could it be that the setup.sh script did not run completely?

    What could be the reason for this? Could it be because the setup.sh script did not run completely earlier?

  • 您好,

          如果主板启动没有问题(没有 PCIe 卡),请关闭此贴。

          后续问题请重新发帖专题讨论。

  • Sorry, the development board did not boot correctly. It’s possible that you didn’t see my latest reply because I had edited it. Here is my previous message:

    I tried to build the SD card using the top-level Makefile, but after running make u-boot_install and make linux_install, I found that the rootfs-partition only contains the bin and lib directories. After booting the development board, a kernel crash occurred due to the absence of a valid init program. 

    What could be the reason for this? Could it be because the setup.sh script did not run completely earlier?

  • 您好,

     SDK Makefile 还允许用户自定义源和镜像,但需要生成可启动到 SD 卡。它将在预先存在的映像上安装编辑。

    请问您是否已有可启动的SD卡?