- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在考虑为 Freescale Variscite VAR-SOM-MX6 生成我自己的 IMAGE_FSTYPES=sdcard
图像。我已经复制了 meta-fsl-arm/classes/image_types_fsl.bbclass
类并稍微修改它,以便有三个分区而不是两个。我希望包括第三个格式化为 FAT (vfat) 的分区,以便可以将文件添加到 SD 卡上,这样它们就不会与引导分区或根文件系统中的文件并排放置。
我在创建新分区的地方添加了 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
我已确保整个 sdcard 端都包含这个,我将新分区大小 ${THIRD_PARTITION}
添加到总 sdcard(设备)大小:
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 卡时,分区大小合适且可用,但是我遇到的问题是,如何格式化这个新创建的分区?
我知道执行此操作的常规方法类似于 mkfs.vfat -n "Partition Name"/dev/sdd
,我在其中提供设备,但我不确定由于没有设备标识符,只有 ${SDCARD}
变量,因此如何在 Yocto 中执行此操作。我知道如果要将分区格式化为 ext4 文件系统,则可以提供偏移量来进行格式化,但是如果我希望将其格式化为 vfat,似乎没有这样做的选项。
如有任何帮助,我们将不胜感激。
最佳答案
我不确定这是否仍然与您 Brendan 相关,但它可能会帮助到这里寻求帮助的其他人。我通过为第三个分区创建一个镜像文件来设法格式化分区,方法类似于引导,例如:
SDIMG_THIRD_TYPE ?= "胖"
SDIMG_THIRD = "${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.${SDIMG_THIRD_TYPE}"
然后用
跟进THIRD_BLOCKS=$(LC_ALL=C parted -s ${SDIMG} unit b print | awk '/3/{ print substr($4, 1, length($4 -1))/512/2 }' )
mkfs.vfat -n "PART_NAME"-S 512 -C ${SDIMG_THIRD} $THIRD_BLOCKS
请记住,THIRD_BLOCKS 中的数字 3 应该是顺序中您的分区的编号(我的是第三个)。
当然,稍后在代码中使用 dd 来烧录它,其中包含以下内容:
dd if=${SDIMG_THIRD} of=${SDIMG} conv=notrunc seek=1 bs=$(expr 1024\* ${BOOT_SPACE_ALIGNED} + ${IMAGE_ROOTFS_ALIGNMENT}\* 1024 + ${ROOTFS_SIZE}\* 1024) && 同步 && 同步
附言您不必为 ROOTFS 设置静态大小,这也可以从 yocto 图像配方本身完成。我这样做只是为了展示一个例子。希望这可以帮助。
关于yocto - 如何为 Variscite iMX6 的 Yocto SD 卡镜像格式化分区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45807017/
我正在使用 ARM iMX6 处理器的嵌入式 Linux 设备上进行开发。主要目的是从外部源读取传入的串行流。 由于串行流的非典型性质,我在 Linux serial driver 方面遇到了一些障碍
尝试获取一个可工作的 directfb,用于基于运行 Linux 2.6.35.3(由 Freescale 提供)的 i.MX53 处理器(ARM Cortex-A8 内核)的嵌入式系统。 我在 i6
我试图了解嵌入式 Linux 原理,但无法在 u-boot 输出中找出地址。 如何找到U-boot的起始地址? 例如,我有基于 i.MX6 四核处理器的 MX6-SabreSD 板,我从 U-Boot
我有一个在 imx CPU 上运行的自定义构建 linux 2.6。 CAN 与外部节点的通信非常有效,但是当在终端中使用“candump can0”时(当我使用 usb-CAN 加密狗在我的主机上运
我是一名优秀的程序员,十分优秀!