查看: 3113|回复: 2

[已解决] i.MX6 UUU 沒有正確燒錄

[复制链接]
  • TA的每日心情
    慵懒
    2020-6-16 16:59
  • 签到天数: 6 天

    [LV.2]偶尔看看I

    2

    主题

    13

    帖子

    0

    注册会员

    Rank: 2

    积分
    79
    最后登录
    2020-6-17
    发表于 2020-6-10 16:55:08 | 显示全部楼层 |阅读模式
    本帖最后由 yuhuiliu 于 2020-6-11 11:37 编辑

    我的板子是 6QP,想燒錄 4.14.62 的環境。
    官方的 mfgtool 只有到 4.1.15 的版本,為了燒錄 BSP 4.14.62,有查到說要改用 UUU 燒錄。取 YOCTO 建置的 u-boot.imx, zImage, imx6qp-sabresd.dtb, rootfs.tar.bz2,
                               fsl-image-mfgtool-initramfs-imx_mfgtools.cpio.gz.u-boot (u-boot-mfgtool)
                               zImage_mfgtool (linux-imx-mfgtool)
    試寫了 mx6qp.uuu:
      uuu_version 1.0.1  SDP: boot -f u-boot.imx -nojump
      SDP: write -f zImage_mfgtool -addr 0x12000000
      SDP: write -f imx6qp-sabresd.dtb -addr 0x18000000
      SDP: write -f fsl-image-mfgtool-initramfs-imx_mfgtools.cpio.gz.u-boot -addr 0x12C00000
      SDP: jump -f u-boot.imx -ivt
      FBK: ucp mksdcard.sh t:/tmp
      FBK: ucmd chmod 777 /tmp/mksdcard.sh
      FBK: ucmd /tmp/mksdcard.sh /dev/mmcblk3
      FBK: ucmd dd if=/dev/zero of=/dev/mmcblk3 bs=1k seek=4096 count=1
      FBK: ucmd sync
      FBK: ucmd echo 0 > /sys/block/mmcblk3boot0/force_ro
      FBK: ucp u-boot.imx t:/tmp
      FBK: ucmd dd if=/tmp/u-boot.imx of=/dev/mmcblk3boot0 bs=1K seek=32
      FBK: ucmd echo 1 > /sys/block/mmcblk3boot0/force_ro
      FBK: ucmd mmc bootpart enable 1 1 /dev/mmcblk3
      FBK: ucmd while [ ! -e /dev/mmcblk3p1 ]; do sleep 1; done
      FBK: ucmd mkfs.vfat /dev/mmcblk3p1
      FBK: ucmd mkdir -p /mnt/mmcblk3p1
      FBK: ucmd mount -t vfat /dev/mmcblk3p1 /mnt/mmcblk3p1
      FBK: ucp zImage t:/mnt/mmcblk3p1
      FBK: ucp imx6qp-sabresd.dtb t:/mnt/mmcblk3p1
      FBK: ucmd umount /mnt/mmcblk3p1
      FBK: ucmd mkfs.ext3 -F -E nodiscard /dev/mmcblk3p2
      FBK: ucmd mkdir -p /mnt/ext3
      FBK: ucmd mount /dev/mmcblk3p2 /mnt/ext3
      FBK: acmd tar -jxv -C /mnt/ext3
      FBK: ucp rootfs.tar.bz2 t:-
      FBK: Sync
      FBK: ucmd umount /mnt/ext3
      FBK: DONE

    在終端機執行 ./uuu.exe ./mx6qp.uuu,燒錄過程的 log 看起來 u-boot、kernel 和 rootfs 都有燒入,但是開機後卻什麼都沒有(完全無 log,也沒開機)。
    請問我的 uuu 語法有錯嗎?
    附件裡有我的 uuu script 跟 燒錄 log。

    uuu燒錄.zip (71.15 KB, 下载次数: 5)
    该会员没有填写今日想说内容.
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2020-6-16 16:59
  • 签到天数: 6 天

    [LV.2]偶尔看看I

    2

    主题

    13

    帖子

    0

    注册会员

    Rank: 2

    积分
    79
    最后登录
    2020-6-17
     楼主| 发表于 2020-6-11 11:07:48 | 显示全部楼层
    我參照 example_kernel_emmc.uuu 重新寫了 uuu script:

      SDP: boot -f u-boot.imx
      # This command will be run when use SPL
      SDPU: write -f u-boot.imx -offset 0x57c00
      SDPU: jump
      # This command will be run when ROM support stream mode
      SDPS: boot -f u-boot.imx

      # use uboot burn bootloader to eMMC
      # becaue difference chip, offset is difference
      # you can use kernel to do that for specific boards
      FB: ucmd setenv fastboot_dev mmc
      FB: ucmd setenv mmcdev ${emmc_dev}
      FB: flash bootloader u-boot.imx
      FB: ucmd setenv emmc_cmd mmc partconf ${emmc_dev} 0 1 0;
      FB: ucmd if test "${emmc_skip_fb}" != "yes"; then run emmc_cmd; fi
      FB: ucmd setenv emmc_cmd mmc bootbus ${emmc_dev} 2 2 1;
      FB: ucmd if test "${emmc_skip_fb}" != "yes"; then run emmc_cmd; fi

      FB: ucmd setenv fastboot_buffer ${loadaddr}
      FB: download -f zImage
      FB: ucmd setenv fastboot_buffer ${fdt_addr}
      FB: download -f imx6qp-sabresd.dtb
      FB: ucmd setenv fastboot_buffer ${initrd_addr}
      FB: download -f fsl-image-mfgtool-initramfs-imx_mfgtools.cpio.gz.u-boot
      #FB: ucmd setenv bootargs console=${console},${baudrate} earlycon=${earlycon},${baudrate}
      FB: acmd ${kboot} ${loadaddr} ${initrd_addr} ${fdt_addr}

      # get mmc dev number from kernel command line
      # Wait for emmc
      FBK: ucmd while [ ! -e /dev/mmcblk*boot0 ]; do sleep 1; echo "wait for /dev/mmcblk*boot* appear"; done;

      # serach emmc device number, if your platform have more than two emmc chip, please echo dev number >/tmp/mmcdev
      FBK: ucmd dev=`ls /dev/mmcblk*boot*`; dev=($dev); dev=${dev[0]}; dev=${dev#/dev/mmcblk}; dev=${dev%boot*}; echo $dev > /tmp/mmcdev;

      # create partition
      FBK: ucmd mmc=`cat /tmp/mmcdev`; PARTSTR=$'10M,650M,0c\n660M,,83\n'; echo "$PARTSTR" | sfdisk --force /dev/mmcblk${mmc}

      FBK: ucmd mmc=`cat /tmp/mmcdev`; dd if=/dev/zero of=/dev/mmcblk${mmc} bs=1k seek=4096 count=1
      FBK: ucmd sync
      # you can enable below command to write boot partition. but offset is difference at difference platform
      # burn uboot
      #FBK: ucmd mmc=`cat /tmp/mmcdev`; echo 0 > /sys/block/mmcblk${mmc}boot0/force_ro
      #FBK: ucp  u-boot.imx t:/tmp
      #FBK: ucmd mmc=`cat /tmp/mmcdev`; dd if=/tmp/u-boot.imx of=/dev/mmc${mmc}boot0 bs=1K seek=32
      #FBK: ucmd mmc=`cat /tmp/mmcdev`; echo 1 > /sys/block/mmcblk${mmc}boot0/force_ro
      FBK: ucmd mmc=`cat /tmp/mmcdev`; while [ ! -e /dev/mmcblk${mmc}p1 ]; do sleep 1; done
      FBK: ucmd mmc=`cat /tmp/mmcdev`; mkfs.vfat /dev/mmcblk${mmc}p1
      # burn kernel
      FBK: ucmd mmc=`cat /tmp/mmcdev`; mkdir -p /mnt/fat
      FBK: ucmd mmc=`cat /tmp/mmcdev`; mount -t vfat /dev/mmcblk${mmc}p1 /mnt/fat
      FBK: ucp  zImage t:/mnt/fat
      FBK: ucp  imx6qp-sabresd.dtb t:/mnt/fat
      FBK: ucmd umount /mnt/fat
      # burn rootfs
      FBK: ucmd mmc=`cat /tmp/mmcdev`; mkfs.ext3 -F -E nodiscard /dev/mmcblk${mmc}p2
      FBK: ucmd mkdir -p /mnt/ext3
      FBK: ucmd mmc=`cat /tmp/mmcdev`; mount /dev/mmcblk${mmc}p2 /mnt/ext3
      FBK: acmd export EXTRACT_UNSAFE_SYMLINKS=1; tar -jx -C /mnt/ext3
      FBK: ucp  rootfs.tar.bz2 t:-
      FBK: Sync
      # burn kernel modules
      FBK: ucmd rm -rf /mnt/ext3/lib/modules/*
      FBK: ucp  moudules.tar.bz2 t:-
      FBK: Sync
      FBK: ucmd umount /mnt/ext3
      FBK: DONE

    雖然這個燒錄,但常常在燒 rootfs 時出錯:Start Cmd:FBK: ucp  lvirootfs.tar.bz2 t:-                                                                           
                                                                 58%1:4>Fail Bulk(W)IBUSB_ERROR_TIMEOUT(210.2s)

    板子上 log:
    run shell cmd: mmc=`cat /tmp/mmcdev`; mkfs.ext3 -F -E nodiscard /dev/mmcblk${mmc}p2
    mke2fs 1.43-WIP (18-May-2015)
    random: mkfs.ext3: uninitialized urandom read (16 bytes read)
    random: mkfs.ext3: uninitialized urandom read (16 bytes read)
    random: crng init done
    run shell cmd: mkdir -p /mnt/ext3
    run shell cmd: mmc=`cat /tmp/mmcdev`; mount /dev/mmcblk${mmc}p2 /mnt/ext3
    EXT4-fs (mmcblk3p2): mounting ext3 file system using the ext4 subsystem
    EXT4-fs (mmcblk3p2): mounted filesystem with ordered data mode. Opts: (null)
    run shell cmd: export EXTRACT_UNSAFE_SYMLINKS=1; tar -jx -C /mnt/ext3
    WOpen:-
    ufb: page allocation failure: order:4, mode:0x14040c0(GFP_KERNEL|__GFP_COMP), nodemask=(null)
    CPU: 0 PID: 88 Comm: ufb Not tainted 4.14.62 #27
    Hardware name: Freescale i.MX6 Quad/DualLite (Device Tree)
    [<8010eca8>] (unwind_backtrace) from [<8010b410>] (show_stack+0x10/0x14)
    [<8010b410>] (show_stack) from [<806f3044>] (dump_stack+0x78/0x8c)
    [<806f3044>] (dump_stack) from [<801b9558>] (warn_alloc+0xbc/0x164)
    [<801b9558>] (warn_alloc) from [<801ba0a4>] (__alloc_pages_nodemask+0xa08/0xd84)
    [<801ba0a4>] (__alloc_pages_nodemask) from [<801d1c84>] (kmalloc_order+0x18/0x28)
    [<801d1c84>] (kmalloc_order) from [<80498668>] (ffs_epfile_io+0x17c/0x530)
    [<80498668>] (ffs_epfile_io) from [<80498c60>] (ffs_epfile_read_iter+0x100/0x174)
    [<80498c60>] (ffs_epfile_read_iter) from [<801fbf60>] (__vfs_read+0xd0/0x11c)
    [<801fbf60>] (__vfs_read) from [<801fc038>] (vfs_read+0x8c/0x110)
    [<801fc038>] (vfs_read) from [<801fc4b8>] (SyS_read+0x3c/0x90)
    [<801fc4b8>] (SyS_read) from [<80107900>] (ret_fast_syscall+0x0/0x54)
    Mem-Info:
    active_anon:2675 inactive_anon:3991 isolated_anon:0
    active_file:4489 inactive_file:43836 isolated_file:32
    unevictable:0 dirty:3857 writeback:846 unstable:0
    slab_reclaimable:4851 slab_unreclaimable:2474
    mapped:666 shmem:5609 pagetables:29 bounce:0
    free:26662 free_pcp:77 free_cma:23259
    Node 0 active_anon:10700kB inactive_anon:15964kB active_file:17956kB inactive_file:159376kB unevictable:0kB isolated(anon):0kB isolated(file):0kB mapped:2664kB dirty:15428kB writeback:3060kB shmem:22436kB writeback_tmp:0kB unstable:0kB all_unreclaimable? no
    Normal free:140192kB min:1648kB low:2060kB high:2472kB active_anon:10708kB inactive_anon:15964kB active_file:17956kB inactive_file:144200kB unevictable:0kB writepending:18428kB present:524288kB managed:507604kB mlocked:0kB kernel_stack:592kB pagetables:116kB bounce:0kB free_pcp:304kB local_pcp:152kB free_cma:123404kB
    lowmem_reserve[]: 0 0 0
    Normal: 1487*4kB (MEHC) 1152*8kB (MEHC) 1080*16kB (MEC) 1228*32kB (MEHC) 503*64kB (UMEC) 171*128kB (MEC) 86*256kB (MEC) 19*512kB (C) 3*1024kB (C) 0*2048kB 0*4096kB 0*8192kB 0*16384kB 0*32768kB = 160636kB
    41042 total pagecache pages
    0 pages in swap cache
    Swap cache stats: add 0, delete 0, find 0/0
    Free swap  = 0kB
    Total swap = 0kB
    131072 pages RAM
    0 pages HighMem/MovableOnly
    4171 pages reserved
    81920 pages cma reserved
    tar: invalid tar magic
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2020-6-16 16:59
  • 签到天数: 6 天

    [LV.2]偶尔看看I

    2

    主题

    13

    帖子

    0

    注册会员

    Rank: 2

    积分
    79
    最后登录
    2020-6-17
     楼主| 发表于 2020-6-11 11:37:27 | 显示全部楼层
    找到解決方法:
    修改 uuu source code 中 libuuu/fastboot.h
      - size_t m_Maxsize_pre_cmd = 0x10000;
    + size_t m_Maxsize_pre_cmd = 0x1000;
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2024-4-20 08:28 , Processed in 0.133177 second(s), 23 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表