You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何烧录BuildRoot构建的Intel Edison镜像及启动问题排查

Intel Edison + BuildRoot: Fixing U-Boot Boot Issues & Proper Image Flashing

Hey there, let's break down how to resolve your U-Boot boot failure and correctly flash the BuildRoot-generated bzImage and root filesystem image to your Intel Edison.


First: Troubleshooting the U-Boot Boot Failure

Your U-Boot flashed successfully but won't boot—here are the most likely fixes to check:

  1. Verify U-Boot Alignment & Build Configuration

    • The truncate -s %4096 u-boot.bin command is meant to align the image to 4096-byte sectors, but double-check if it’s working correctly. Run stat -c %s u-boot.bin before and after truncate to confirm the size is a multiple of 4096. If not, use this more explicit command instead:
      truncate -s $(( $(stat -c %s u-boot.bin) + 4095 & ~4095 )) u-boot.bin
      
    • Ensure your BuildRoot edison_defconfig matches your specific Edison hardware variant. Run make menuconfig and confirm under Target options that Intel Edison is selected, and under Bootloaders the U-Boot configuration is set to edison_defconfig.
  2. Confirm DFU Device ID & Mode

    • When entering DFU mode, double-check the device ID with lsusb. Some Edison models show up as 8087:0a98 instead of 8087:0a99. If yours differs, update the dfu-util command to use the correct ID.
    • Make sure you’re entering DFU mode properly: Hold the small DFU button, press the Reset button, wait 2-3 seconds, then release the DFU button. The board should appear in lsusb immediately.
  3. Check U-Boot Boot Logs via Serial

    • Connect a USB-to-TTL serial adapter to Edison’s UART pins (use 3.3V logic only!) and monitor the boot output at 115200 baud, 8N1. This will show exact errors (e.g., missing kernel, invalid partition) that are causing the boot failure.

Properly Flashing BuildRoot's bzImage & Root Filesystem Image

Once you’ve fixed the U-Boot issue, here’s how to flash the full BuildRoot image stack:

Step 1: Enter DFU Mode

Follow the steps above to get Edison into DFU mode, and confirm the device appears in lsusb.

Step 2: Flash the Kernel (bzImage)

Navigate to your BuildRoot output/images directory, then run:

# Replace 8087:0a99 with your actual device ID if needed
dfu-util -v -d 8087:0a99 --alt kernel -D bzImage
  • If the command fails, run dfu-util -l to list all available DFU partitions. Some Edison boards use kernel0 or kernel1 instead of kernel—use the correct partition name from the list.

Step 3: Flash the Root Filesystem Image

BuildRoot generates a root filesystem image (usually rootfs.img or rootfs.ext2). Flash it with:

dfu-util -v -d 8087:0a99 --alt rootfs -D rootfs.img
  • Again, use dfu-util -l to confirm the root partition name if you get an error (some boards use rootfs0).

Step 4: Reboot the Board

Either press the Reset button on the Edison, or trigger a reboot via DFU:

dfu-util -v -d 8087:0a99 --alt reset -R

Alternative: Flashing via U-Boot Console (For Debugging)

If you prefer using U-Boot's command line (great for troubleshooting), follow these steps:

  1. Interrupt Edison's boot process by pressing any key when U-Boot starts (monitor via serial).
  2. Set up a TFTP server on your host, and place bzImage and rootfs.img in the TFTP root directory.
  3. Run these U-Boot commands (replace IPs with your network details):
    setenv ipaddr 192.168.1.100  # Edison's IP address
    setenv serverip 192.168.1.10 # Host's TFTP server IP
    tftpboot 0x80000000 bzImage
    tftpboot 0x80800000 rootfs.img
    run update_kernel
    run update_rootfs
    saveenv
    reset
    

内容的提问来源于stack exchange,提问作者pritam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 03:13:40