作者:付汉杰 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文件的分区之间,复制文件 比如命令“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/ hankf@XSZGS4:linux$ touch ./cp2wicpartion2 hankf@XSZGS4:linux$ wic ls ./petalinux-sdimage.wic:2/media/ hankf@XSZGS4:linux$ rm cp2wicpartion2  hankf@XSZGS4:linux$ wic cp ./petalinux-sdimage.wic:2/media/cp2wicpartion2 ./ hankf@XSZGS4:linux$ ls -l cp2wicpartion2 wic rm删除wic文件里的文件 hankf@XSZGS4:linux$ wic rm ./petalinux-sdimage.wic:2/media/cp2wicpartion2 hankf@XSZGS4:linux$ wic ls ./petalinux-sdimage.wic:2/media/ wic help Creates a customized OpenEmbedded image. Usage:  wic [--version]     usage 1: Returns the current version of Wic COMMAND:     list   -   List available canned images and source plugins TOPIC: Examples:     $ wic --version     Returns the current version of Wic
最重要的命令是下面两个。它们可以在Linux Host和wic文件内部的分区之间,复制文件。dest-image是wic的文件名,partition是分区编号。
    wic cp 
    wic cp 
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$ wic cp ./cp2wicpartion2 ./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
-rw-rw-r-- 1 hankf hankf 0 Aug 30 18:16 cp2wicpartion2
使用命令“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
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的的帮助信息。
hankf@XSZGS4:linux$ wic help 
        wic help [COMMAND or TOPIC]
        wic COMMAND [ARGS]
    usage 2: Returns detailed help for a COMMAND or TOPIC
    usage 3: Executes COMMAND
    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
    overview  - Presents an overall overview of Wic
    plugins   - Presents an overview and API for Wic plugins
    kickstart - Presents a Wic kicstart file reference
...............