2017-08-21 3 views
1

Ich bin dabei, meine eigene IMAGE_FSTYPES=sdcard Bild für eine Freescale Variscite VAR-SOM-MX6 zu generieren. Ich habe die meta-fsl-arm/classes/image_types_fsl.bbclass Klasse kopiert und leicht modifiziert, so dass es drei Partitionen statt zwei gibt. Ich suche nach einer dritten Partition, die als FAT (vfat) formatiert ist, so dass Dateien auf der SD-Karte hinzugefügt werden können, so dass sie nicht neben Dateien in der Boot-Partition oder dem Root-Dateisystem sitzen.So formatieren Sie Partitionen für Yocto sdcard Bild für Variscite iMX6

Ich habe gemacht Ergänzungen der generate_imx_sdcard() Funktion, wo ich eine neue Partition erstellen:

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 

ich dafür gesorgt haben, dass die Gesamt sdcard Seite dies dies, indem beherbergt, wo ich die neue Partitionsgröße ${THIRD_PARTITION} zu addieren, Gesamt sdcard (Gerät) Größe:

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}) 

Wenn ich meine Schicht bitbake und die Ausgabe sdcard Bild auf einer SD-Karte verbrennen, die Trennwände sind entsprechend dimensionierte und verfügbar aber die Frage/Problem, das ich habe, ist, h Wie formatiere ich diese neu erstellte Partition?

Ich verstehe, dass eine regelmäßige Methode, dies zu tun wäre etwas in Richtung mkfs.vfat -n "Partition Name" /dev/sdd, wo ich ein Gerät liefern, aber ich bin mir nicht sicher, wie Sie dies in Yocto tun, da es keine Gerätekennung, nur die ${SDCARD} Variable . Ich verstehe, dass, wenn die Partition als ein ext4 Dateisystem formatiert werden würde, es möglich wäre Offsets zur Verfügung zu stellen, um die Formatierung zu tun, aber es scheint, als gäbe es keine Möglichkeit dies zu tun, wenn ich es als vfat formatieren wollte.

Jede Hilfe würde sehr geschätzt werden.

Antwort

0

Aus meiner Sicht ist die Art und Weise, wie in image_types_fsl.bbclass ein SD-Kartenbild erstellt wird, wenig kompliziert und fehleranfällig, wenn Sie es bearbeiten möchten.

Ich würde vorschlagen, dass Sie wic verwenden, um stattdessen Ihr Bild zu erstellen.

Verwandte Themen