如何查看和复制PetaLinux(Yocto)的wic文件中的内容

作者:付汉杰 hankf@amd.com,来源:博客园

总结
使用“wic ls”命令,ls”查看wic文件里的分区和文件。
使用“wic cp”命令,在Linux Host和wic文件的分区之间,复制文件。
使用“wic rm”删除wic文件里的文件。

wic文件
wic是OpenEmbedded推出的新的制作带分区的SD卡映像的工具。起始原因,可参考Yocto Bug 3847

petalinux产生wic文件
使用命令“petalinux-package --wic”, 可以让PetaLinux产生wic文件。wic文件一般比较大。如果想查看、复制其中的文件,也是可以的。

导入Yocto环境
执行下列命令,导入Yocto环境。
source ./components/yocto/environment-setup-cortexa72-cortexa53-xilinx-linux build
source ./components/yocto/layers/core/oe-init-build-env

详细log如下:
hankf@XSZGS4:xilinx-vck190-base-trd$ source ./components/yocto/environment-setup-cortexa72-cortexa53-xilinx-linux build
Your environment is misconfigured, you probably need to 'unset LD_LIBRARY_PATH'
but please check why this was set in the first place and that it's safe to unset.
The SDK will not operate correctly in most cases when LD_LIBRARY_PATH is set.
For more references see:
http://tldp.org/HOWTO/Program-Library-HOWTO/shared-libraries.html#AEN80
http://xahlee.info/UnixResource_dir/_/ldpath.html
hankf@XSZGS4:xilinx-vck190-base-trd$
hankf@XSZGS4:xilinx-vck190-base-trd$ source ./components/yocto/layers/core/oe-init-build-env

### Shell environment set up for builds. ###

You can now run 'bitbake '

Common targets are:
core-image-minimal
core-image-full-cmdline
core-image-sato
core-image-weston
meta-toolchain
meta-ide-support

You can also run generated qemu images with a command like 'runqemu qemux86-64'.

Other commonly useful commands are:
- 'devtool' and 'recipetool' handle common recipe tasks
- 'bitbake-layers' handles common layer tasks
- 'oe-pkgdata-util' handles common target package tasks

wic ls查看wic文件里的分区和文件
最常见的使用,是使用“wic ls”查看wic文件里的分区和文件。
hankf@XSZGS4:linux$ wic ls petalinux-sdimage.wic
Num Start End Size Fstype
1 4096 2147487743 2147483648 fat32
2 2147487744 6442455039 4294967296 ext4

hankf@XSZGS4:linux$ wic ls petalinux-sdimage.wic:1
Volume in drive : is boot
Volume Serial Number is AE46-841B
Directory for ::/

BOOT BIN 12037984 2022-08-26 1:47
IMAGE 22276608 2022-08-26 1:47 Image
BINARY~1 XCL 21830648 2022-08-26 1:47 binary_container_1.xclbin
boot scr 2777 2022-08-26 1:47
RAMDIS~1 U-B 5238724 2022-08-26 1:47 ramdisk.cpio.gz.u-boot
5 files 61 386 741 bytes
2 081 878 016 bytes free

wic cp在Linux Host和wic文件的分区之间,复制文件
最重要的命令是下面两个。它们可以在Linux Host和wic文件内部的分区之间,复制文件。dest-image是wic的文件名,partition是分区编号。
wic cp :

wic cp :

比如命令“wic cp ./cp2wicpartion2 ./petalinux-sdimage.wic:2/media/”,把Linux Host当前目录下的文件cp2wicpartion2,复制wic文件中的分区2的media目录中。命令“wic cp ./petalinux-sdimage.wic:2/media/cp2wicpartion2 ./”则把wic文件中的分区2的media目录中的文件cp2wicpartion2,复制到Linux Host的当前目录下。

hankf@XSZGS4:linux$ wic ls ./petalinux-sdimage.wic:2/media/
debugfs 1.44.1 (24-Mar-2018)
1905 40755 (2) 0 0 4096 9-Mar-2018 20:34 .
2 40755 (2) 0 0 4096 26-Aug-2022 09:47 ..

hankf@XSZGS4:linux$ touch ./cp2wicpartion2
hankf@XSZGS4:linux$ wic cp ./cp2wicpartion2 ./petalinux-sdimage.wic:2/media/

hankf@XSZGS4:linux$ wic ls ./petalinux-sdimage.wic:2/media/
debugfs 1.44.1 (24-Mar-2018)
1905 40755 (2) 0 0 4096 9-Mar-2018 20:34 .
2 40755 (2) 0 0 4096 26-Aug-2022 09:47 ..
60501 100664 (1) 0 0 0 30-Aug-2022 18:16 cp2wicpartion2

hankf@XSZGS4:linux$ rm cp2wicpartion2

hankf@XSZGS4:linux$ wic cp ./petalinux-sdimage.wic:2/media/cp2wicpartion2 ./

hankf@XSZGS4:linux$ ls -l cp2wicpartion2
-rw-rw-r-- 1 hankf hankf 0 Aug 30 18:16 cp2wicpartion2

wic rm删除wic文件里的文件
使用命令“wic rm -r :”,能删除wic文件里的分区和文件。下面使用命令,“wic rm ./petalinux-sdimage.wic:2/media/cp2wicpartion2”,删除了wic文件中的分区2的media目录中的文件cp2wicpartion2。
hankf@XSZGS4:linux$ wic ls ./petalinux-sdimage.wic:2/media/
debugfs 1.44.1 (24-Mar-2018)
1905 40755 (2) 0 0 4096 9-Mar-2018 20:34 .
2 40755 (2) 0 0 4096 26-Aug-2022 09:47 ..
60501 100664 (1) 0 0 0 30-Aug-2022 18:16 cp2wicpartion2

hankf@XSZGS4:linux$ wic rm ./petalinux-sdimage.wic:2/media/cp2wicpartion2

hankf@XSZGS4:linux$ wic ls ./petalinux-sdimage.wic:2/media/
debugfs 1.44.1 (24-Mar-2018)
1905 40755 (2) 0 0 4096 9-Mar-2018 20:34 .
2 40755 (2) 0 0 4096 26-Aug-2022 09:47 ..

wic help
更多详细信息,可以使用“wic help”查看wic的的帮助信息。
hankf@XSZGS4:linux$ wic help

Creates a customized OpenEmbedded image.

Usage: wic [--version]
wic help [COMMAND or TOPIC]
wic COMMAND [ARGS]

usage 1: Returns the current version of Wic
usage 2: Returns detailed help for a COMMAND or TOPIC
usage 3: Executes COMMAND

COMMAND:

list - List available canned images and source plugins
ls - List contents of partitioned image or partition
rm - Remove files or directories from the vfat or ext* partitions
help - Show help for a wic COMMAND or TOPIC
write - Write an image to a device
cp - Copy files and directories to the vfat or ext* partitions
create - Create a new OpenEmbedded image

TOPIC:
overview - Presents an overall overview of Wic
plugins - Presents an overview and API for Wic plugins
kickstart - Presents a Wic kicstart file reference

Examples:

$ wic --version

Returns the current version of Wic
...............

最新文章

最新文章