2017-08-21 123 views
1

我正在为飞思卡尔Variscite VAR-SOM-MX6生成我自己的IMAGE_FSTYPES=sdcard图像。我已经复制meta-fsl-arm/classes/image_types_fsl.bbclass类并略微修改它,以便有三个分区而不是两个。我正在寻找包含格式化为FAT(vfat)的第三个分区,以便可以将文件添加到SD卡上,以便它们不会与引导分区或根文件系统中的文件并排放置。如何为Variscite为Yocto sdcard图像格式化分区iMX6

我已增加的generate_imx_sdcard()功能,我创建新的分区:

generate_imx_sdcard() { 
# Create partition table 
parted -s ${SDCARD} mklabel msdos 
parted -s ${SDCARD} unit KiB mkpart primary fat32 ${IMAGE_ROOTFS_ALIGNMENT} $(expr ${IMAGE_ROOTFS_ALIGNMENT} \+ ${BOOT_SPACE_ALIGNED}) 
parted -s ${SDCARD} unit KiB mkpart primary $(expr ${IMAGE_ROOTFS_ALIGNMENT} \+ ${BOOT_SPACE_ALIGNED}) $(expr ${IMAGE_ROOTFS_ALIGNMENT} \+ ${BOOT_SPACE_ALIGNED} \+ $ROOTFS_SIZE) 
# Line below is the new partition I have added 
parted -s ${SDCARD} unit KiB mkpart primary fat32 $(expr ${IMAGE_ROOTFS_ALIGNMENT} \+ ${BOOT_SPACE_ALIGNED} \+ $ROOTFS_SIZE) $(expr ${IMAGE_ROOTFS_ALIGNMENT} \+ ${BOOT_SPACE_ALIGNED} \+ $ROOTFS_SIZE \+ ${THIRD_PARTITION}) 
parted ${SDCARD} print 

我已经确保了总SD卡侧通过包括这一点,在我新的分区大小${THIRD_PARTITION}添加到适应这个总SD卡(设备)的尺寸:

IMAGE_CMD_sdcard() { 
if [ -z "${SDCARD_ROOTFS}" ]; then 
    bberror "SDCARD_ROOTFS is undefined. To use sdcard image from Freescale's BSP it needs to be defined." 
exit 1 
fi 
# Align boot partition and calculate total SD card image size 
BOOT_SPACE_ALIGNED=$(expr ${BOOT_SPACE} + ${IMAGE_ROOTFS_ALIGNMENT} - 1) 
BOOT_SPACE_ALIGNED=$(expr ${BOOT_SPACE_ALIGNED} - ${BOOT_SPACE_ALIGNED} % ${IMAGE_ROOTFS_ALIGNMENT}) 
SDCARD_SIZE=$(expr ${IMAGE_ROOTFS_ALIGNMENT} + ${BOOT_SPACE_ALIGNED} + $ROOTFS_SIZE + ${IMAGE_ROOTFS_ALIGNMENT} + ${THIRD_PARTITION}) 

当我BitBake的我的层和输出SD卡镜像刻录到SD卡中,分区是适当尺寸和可用然而问题/问题,我已是,H我该如何格式化这个新创建的分区?

据我所知,这样做的常规方法将沿mkfs.vfat -n "Partition Name" /dev/sdd,在那里我提供一个设备的东西,但我不确定如何去Yocto做这件事,因为没有设备标识符,只有${SDCARD}变量。我知道,如果分区被格式化为ext4文件系统,那么可以提供偏移量来进行格式化,但是如果我想将其格式化为vfat,则似乎没有办法做到这一点。

任何帮助将不胜感激。

回答

0

从我的角度来看,image_types_fsl.bbclass用于生成SD卡图像的方式并不复杂,如果要编辑它,则容易出错。

我建议你使用wic来创建你的图像。