- 1、core-image-base-x9h_ref_serdes.rootfs.ext4 生成 ext4 格式文件
- 2、编译 rootfs 相关的log
本 SemiDrive源码分析 之 Yocto源码分析 系列文章汇总如下:
- 《【SemiDrive源码分析】【Yocto源码分析】01 - yocto/base目录源码分析(编译环境初始化流程)》
- 《【SemiDrive源码分析】【Yocto源码分析】02 - yocto/meta-openembedded目录源码分析》
- 《【SemiDrive源码分析】【Yocto源码分析】03 - yocto/meta-semidrive目录及Yocto Kernel编译过程分析(上)》
- 《【SemiDrive源码分析】【Yocto源码分析】04 - yocto/meta-semidrive目录及Yocto Kernel编译过程分析(下)》
- 《【SemiDrive源码分析】【Yocto源码分析】05 - 找一找Yocto Kernel编译过程中所有Task的源码在哪定义的呢?》
- 《【SemiDrive源码分析】【Yocto源码分析】06 - Kernel编译生成的Image.bin、Image_nobt.dtb、modules.tgz 这三个文件分别是如何生成的?》
- 《【SemiDrive源码分析】【Yocto源码分析】07 - core-image-base-x9h_ref_serdes.rootfs.ext4 文件系统是如何生成的》
- 《【SemiDrive源码分析】【Yocto源码分析】08 - X9平台系统分区修改》
- 《【SemiDrive源码分析】【Yocto源码分析】09 - X9平台系统启动流程分析》
经过前面的几篇文章,如果您认真看了,至少我们可以清楚的知道,
Yocto 项目中,Kernel 是如何编译的,以及Kernel 的Image.bin、Image_nobt.dtb、modules.tgz 这三个文件分别又包含了什么内容。
可能您会说,我是清楚了这些,但问题来了,具体项目中Kernel 该怎么配置,怎么修改,怎么调试,我都不知道呀。
对此我想说,是的,别急呀,路要一步一步走,代码也要一行一行来看,我们目前还处于熟悉代码的阶段呢,
我们当前阶段的目标是:对整套代码每个目录都相对熟悉,知道其大概的作用,以及知道后续要使用的相关镜像都是怎么生成的^_^
至于,各模块的代码架构,以及项目中详细的调试方法,哈哈,放心吧,这些后续我会一篇一篇更新的,加油。
我们知道 Yocto的主要好处便在于可以灵活定制 linux kernel 及rootfs文件系统,
那本文,我们就来看看yocto中 rootfs文件系统是怎么生成的,
了解清楚 rootfs文件系统的生成原理 还是比较重要的,因为在实际项目中经常会有修改rootfs文件系统的需求。
好,废话不多说,开始吧^_^
1、core-image-base-x9h_ref_serdes.rootfs.ext4 生成 ext4 格式文件
在log中搜索下,core-image-base-x9h_ref_serdes-20220504093115.rootfs.ext4
完整log如下:
DEBUG: Marking task /home/ciellee/work/code/x9_ptg_3.9.1/buildsystem/yocto/poky/meta/recipes-core/images/core-image-base.bb:do_image_ext4 as buildable
DEBUG: Parsing /home/ciellee/work/code/x9_ptg_3.9.1/buildsystem/yocto/poky/meta/recipes-core/images/core-image-base.bb (full)
DEBUG: Inheriting /home/ciellee/work/code/x9_ptg_3.9.1/buildsystem/yocto/poky/meta/classes/core-image.bbclass (from /home/ciellee/work/code/x9_ptg_3.9.1/buildsystem/yocto/poky/meta/recipes-core/images/core-image-base.bb:8)
DEBUG: Inheriting /home/ciellee/work/code/x9_ptg_3.9.1/buildsystem/yocto/poky/meta/classes/image.bbclass (from /home/ciellee/work/code/x9_ptg_3.9.1/buildsystem/yocto/poky/meta/classes/core-image.bbclass:72)
DEBUG: Inheriting /home/ciellee/work/code/x9_ptg_3.9.1/buildsystem/yocto/poky/meta/classes/rootfs_rpm.bbclass (from /home/ciellee/work/code/x9_ptg_3.9.1/buildsystem/yocto/poky/meta/classes/image.bbclass:1)
DEBUG: Inheriting /home/ciellee/work/code/x9_ptg_3.9.1/buildsystem/yocto/poky/meta/classes/populate_sdk_ext.bbclass (from /home/ciellee/work/code/x9_ptg_3.9.1/buildsystem/yocto/poky/meta/classes/image.bbclass:6)
DEBUG: Inheriting /home/ciellee/work/code/x9_ptg_3.9.1/buildsystem/yocto/poky/meta/classes/populate_sdk_base.bbclass (from /home/ciellee/work/code/x9_ptg_3.9.1/buildsystem/yocto/poky/meta/classes/populate_sdk_ext.bbclass:3)
DEBUG: Inheriting /home/ciellee/work/code/x9_ptg_3.9.1/buildsystem/yocto/poky/meta/classes/meta.bbclass (from /home/ciellee/work/code/x9_ptg_3.9.1/buildsystem/yocto/poky/meta/classes/populate_sdk_base.bbclass:1)
DEBUG: Inheriting /home/ciellee/work/code/x9_ptg_3.9.1/buildsystem/yocto/poky/meta/classes/image_types_wic.bbclass (from /home/ciellee/work/code/x9_ptg_3.9.1/buildsystem/yocto/poky/meta/classes/image.bbclass:145)
DEBUG: Inheriting /home/ciellee/work/code/x9_ptg_3.9.1/buildsystem/yocto/poky/meta/classes/image_types.bbclass (from /home/ciellee/work/code/x9_ptg_3.9.1/buildsystem/yocto/poky/meta/classes/image.bbclass:181)
DEBUG: Inheriting /home/ciellee/work/code/x9_ptg_3.9.1/buildsystem/yocto/poky/meta/classes/siteinfo.bbclass (from /home/ciellee/work/code/x9_ptg_3.9.1/buildsystem/yocto/poky/meta/classes/image_types.bbclass:230)
DEBUG: Inheriting /home/ciellee/work/code/x9_ptg_3.9.1/buildsystem/yocto/poky/meta/classes/kernel-arch.bbclass (from /home/ciellee/work/code/x9_ptg_3.9.1/buildsystem/yocto/poky/meta/classes/image_types.bbclass:230)
DEBUG: Inheriting /home/ciellee/work/code/x9_ptg_3.9.1/buildsystem/yocto/poky/meta/classes/rootfs-postcommands.bbclass (from /home/ciellee/work/code/x9_ptg_3.9.1/buildsystem/yocto/poky/meta/classes/image.bbclass:194)
DEBUG: SITE files ['endian-little', 'bit-64', 'arm-common', 'arm-64', 'common-linux', 'common-glibc', 'aarch64-linux', 'common']
DEBUG: Executing task do_image_ext4
DEBUG: core-image-base-1.0-r0 do_image_ext4: 297304.800000 = 228696 * 1.300000
DEBUG: core-image-base-1.0-r0 do_image_ext4: 297304.800000 = max(297304.800000, 262144)[297304.800000] + 1
DEBUG: core-image-base-1.0-r0 do_image_ext4: 297305.000000 = int(297304.800000)
DEBUG: core-image-base-1.0-r0 do_image_ext4: 297305 = aligned(297305)
DEBUG: core-image-base-1.0-r0 do_image_ext4: returning 297305
+ do_image_ext4
+ oe_mkext234fs ext4 -i 4096 -b 4096
+ fstype=ext4
+ extra_imagecmd=
+ [ 5 -gt 1 ]
+ shift
+ extra_imagecmd=-i 4096 -b 4096
+ eval local COUNT="0"
+ local COUNT=0
+ eval local MIN_COUNT="60"
+ local MIN_COUNT=60
+ [ 297305 -lt 60 ]
+ bbdebug 1 Executing dd if=/dev/zero of=/home/ciellee/work/code/x9_ptg_3.9.1/buildsystem/yocto/build-x9ref/tmp/work/x9h_ref_serdes-sdrv-linux/core-image-base/1.0-r0/deploy-core-image-base-image-complete/core-image-base-x9h_ref_serdes-20220504093115.rootfs.ext4 seek=297305 count=0 bs=1024
+ USAGE=Usage: bbdebug [123] "message"
+ [ 3 -lt 2 ]
+ DBGLVL=1
+ shift
+ echo 1
+ tr -d [:digit:]
+ NONDIGITS=
+ [ ]
+ [ -p /home/ciellee/work/code/x9_ptg_3.9.1/buildsystem/yocto/build-x9ref/tmp/work/x9h_ref_serdes-sdrv-linux/core-image-base/1.0-r0/temp/fifo.104608 ]
DEBUG: core-image-base-1.0-r0 do_image_ext4: Executing dd if=/dev/zero of=/home/ciellee/work/code/x9_ptg_3.9.1/buildsystem/yocto/build-x9ref/tmp/work/x9h_ref_serdes-sdrv-linux/core-image-base/1.0-r0/deploy-core-image-base-image-complete/core-image-base-x9h_ref_serdes-20220504093115.rootfs.ext4 seek=297305 count=0 bs=1024
+ printf %b bbdebug 1 Executing dd if=/dev/zero of=/home/ciellee/work/code/x9_ptg_3.9.1/buildsystem/yocto/build-x9ref/tmp/work/x9h_ref_serdes-sdrv-linux/core-image-base/1.0-r0/deploy-core-image-base-image-complete/core-image-base-x9h_ref_serdes-20220504093115.rootfs.ext4 seek=297305 count=0 bs=1024
+ dd if=/dev/zero of=/home/ciellee/work/code/x9_ptg_3.9.1/buildsystem/yocto/build-x9ref/tmp/work/x9h_ref_serdes-sdrv-linux/core-image-base/1.0-r0/deploy-core-image-base-image-complete/core-image-base-x9h_ref_serdes-20220504093115.rootfs.ext4 seek=297305 count=0 bs=1024
0+0 records in
0+0 records out
0 bytes copied, 9.3011e-05 s, 0.0 kB/s
+ du -s /home/ciellee/work/code/x9_ptg_3.9.1/buildsystem/yocto/build-x9ref/tmp/work/x9h_ref_serdes-sdrv-linux/core-image-base/1.0-r0/rootfs
+ bbdebug 1 Actual Rootfs size: 228696 /home/ciellee/work/code/x9_ptg_3.9.1/buildsystem/yocto/build-x9ref/tmp/work/x9h_ref_serdes-sdrv-linux/core-image-base/1.0-r0/rootfs
+ USAGE=Usage: bbdebug [123] "message"
+ [ 2 -lt 2 ]
+ DBGLVL=1
+ shift
+ echo 1
+ tr -d [:digit:]
+ NONDIGITS=
+ [ ]
+ [ -p /home/ciellee/work/code/x9_ptg_3.9.1/buildsystem/yocto/build-x9ref/tmp/work/x9h_ref_serdes-sdrv-linux/core-image-base/1.0-r0/temp/fifo.104608 ]
+ printf %b bbdebug 1 Actual Rootfs size: 228696 /home/ciellee/work/code/x9_ptg_3.9.1/buildsystem/yocto/build-x9ref/tmp/work/x9h_ref_serdes-sdrv-linux/core-image-base/1.0-r0/rootfs
DEBUG: core-image-base-1.0-r0 do_image_ext4: Actual Rootfs size: 228696 /home/ciellee/work/code/x9_ptg_3.9.1/buildsystem/yocto/build-x9ref/tmp/work/x9h_ref_serdes-sdrv-linux/core-image-base/1.0-r0/rootfs
+ stat -c %s /home/ciellee/work/code/x9_ptg_3.9.1/buildsystem/yocto/build-x9ref/tmp/work/x9h_ref_serdes-sdrv-linux/core-image-base/1.0-r0/deploy-core-image-base-image-complete/core-image-base-x9h_ref_serdes-20220504093115.rootfs.ext4
+ bbdebug 1 Actual Partion size: 304440320
+ USAGE=Usage: bbdebug [123] "message"
+ [ 2 -lt 2 ]
+ DBGLVL=1
+ shift
+ echo 1
+ tr -d [:digit:]
+ NONDIGITS=
+ [ ]
+ [ -p /home/ciellee/work/code/x9_ptg_3.9.1/buildsystem/yocto/build-x9ref/tmp/work/x9h_ref_serdes-sdrv-linux/core-image-base/1.0-r0/temp/fifo.104608 ]
+ printf %b bbdebug 1 Actual Partion size: 304440320
+ bbdebug 1 Executing mkfs.ext4 -F -i 4096 -b 4096 /home/ciellee/work/code/x9_ptg_3.9.1/buildsystem/yocto/build-x9ref/tmp/work/x9h_ref_serdes-sdrv-linux/core-image-base/1.0-r0/deploy-core-image-base-image-complete/core-image-base-x9h_ref_serdes-20220504093115.rootfs.ext4 -d /home/ciellee/work/code/x9_ptg_3.9.1/buildsystem/yocto/build-x9ref/tmp/work/x9h_ref_serdes-sdrv-linux/core-image-base/1.0-r0/rootfs
+ USAGE=Usage: bbdebug [123] "message"
+ [ 3 -lt 2 ]
+ DBGLVL=1
+ shift
DEBUG: core-image-base-1.0-r0 do_image_ext4: Actual Partion size: 304440320
+ echo 1
+ tr -d [:digit:]
+ NONDIGITS=
+ [ ]
+ [ -p /home/ciellee/work/code/x9_ptg_3.9.1/buildsystem/yocto/build-x9ref/tmp/work/x9h_ref_serdes-sdrv-linux/core-image-base/1.0-r0/temp/fifo.104608 ]
DEBUG: core-image-base-1.0-r0 do_image_ext4: Executing mkfs.ext4 -F -i 4096 -b 4096 /home/ciellee/work/code/x9_ptg_3.9.1/buildsystem/yocto/build-x9ref/tmp/work/x9h_ref_serdes-sdrv-linux/core-image-base/1.0-r0/deploy-core-image-base-image-complete/core-image-base-x9h_ref_serdes-20220504093115.rootfs.ext4 -d /home/ciellee/work/code/x9_ptg_3.9.1/buildsystem/yocto/build-x9ref/tmp/work/x9h_ref_serdes-sdrv-linux/core-image-base/1.0-r0/rootfs
+ printf %b bbdebug 1 Executing mkfs.ext4 -F -i 4096 -b 4096 /home/ciellee/work/code/x9_ptg_3.9.1/buildsystem/yocto/build-x9ref/tmp/work/x9h_ref_serdes-sdrv-linux/core-image-base/1.0-r0/deploy-core-image-base-image-complete/core-image-base-x9h_ref_serdes-20220504093115.rootfs.ext4 -d /home/ciellee/work/code/x9_ptg_3.9.1/buildsystem/yocto/build-x9ref/tmp/work/x9h_ref_serdes-sdrv-linux/core-image-base/1.0-r0/rootfs
+ mkfs.ext4 -F -i 4096 -b 4096 /home/ciellee/work/code/x9_ptg_3.9.1/buildsystem/yocto/build-x9ref/tmp/work/x9h_ref_serdes-sdrv-linux/core-image-base/1.0-r0/deploy-core-image-base-image-complete/core-image-base-x9h_ref_serdes-20220504093115.rootfs.ext4 -d /home/ciellee/work/code/x9_ptg_3.9.1/buildsystem/yocto/build-x9ref/tmp/work/x9h_ref_serdes-sdrv-linux/core-image-base/1.0-r0/rootfs
mke2fs 1.43.8 (1-Jan-2018)
Discarding device blocks: done
Creating filesystem with 74326 4k blocks and 74400 inodes
Filesystem UUID: 2e41b753-17c0-48ed-879d-be14dbd1a3e9
Superblock backups stored on blocks:
32768
Allocating group tables: done
Writing inode tables: done
Creating journal (4096 blocks):
done
Copying files into the device:
done
Writing superblocks and filesystem accounting information: done
+ fsck.ext4 -pvfD /home/ciellee/work/code/x9_ptg_3.9.1/buildsystem/yocto/build-x9ref/tmp/work/x9h_ref_serdes-sdrv-linux/core-image-base/1.0-r0/deploy-core-image-base-image-complete/core-image-base-x9h_ref_serdes-20220504093115.rootfs.ext4
3971 inodes used (5.34%, out of 74400)
0 non-contiguous files (0.0%)
5 non-contiguous directories (0.1%)
# of inodes with ind/dind/tind blocks: 0/0/0
Extent depth histogram: 3350
63538 blocks used (85.49%, out of 74326)
0 bad blocks
1 large file
2812 regular files
254 directories
0 character device files
0 block device files
0 fifos
7 links
896 symbolic links (613 fast symbolic links)
0 sockets
------------
3969 files
+ cd /home/ciellee/work/code/x9_ptg_3.9.1/buildsystem/yocto/build-x9ref/tmp/work/x9h_ref_serdes-sdrv-linux/core-image-base/1.0-r0/deploy-core-image-base-image-complete
+ ret=0
+ trap 0
+ exit 0
我们过滤出重要的log:
dd if=/dev/zero of=~/yocto/build-x9ref/tmp/work/x9h_ref_serdes-sdrv-linux/core-image-base/1.0-r0/deploy-core-image-base-image-complete/core-image-base-x9h_ref_serdes-20220504093115.rootfs.ext4 seek=297305 count=0 bs=1024 stat -c %s ~/yocto/build-x9ref/tmp/work/x9h_ref_serdes-sdrv-linux/core-image-base/1.0-r0/deploy-core-image-base-image-complete/core-image-base-x9h_ref_serdes-20220504093115.rootfs.ext4 mkfs.ext4 -F -i 4096 -b 4096 ~/yocto/build-x9ref/tmp/work/x9h_ref_serdes-sdrv-linux/core-image-base/1.0-r0/deploy-core-image-base-image-complete/core-image-base-x9h_ref_serdes-20220504093115.rootfs.ext4 -d ~/yocto/build-x9ref/tmp/work/x9h_ref_serdes-sdrv-linux/core-image-base/1.0-r0/rootfs fsck.ext4 -pvfD ~/yocto/build-x9ref/tmp/work/x9h_ref_serdes-sdrv-linux/core-image-base/1.0-r0/deploy-core-image-base-image-complete/core-image-base-x9h_ref_serdes-20220504093115.rootfs.ext4
我们来简化下上面的命令:
# 1. dd命令将从zero设备中创建一个内容为0,大小为 297305kb 的文件 core-image-base-x9h_ref_serdes-20220504093115.rootfs.ext4 dd if=/dev/zero of=core-image-base-x9h_ref_serdes-20220504093115.rootfs.ext4 seek=297305 count=0 bs=1024 # 2. 获取文件大小为 304440320 字节 stat -c %s core-image-base-x9h_ref_serdes-20220504093115.rootfs.ext4 # 3. -F 强制格式化 -i 每个inode 4096字节 -b block_size 4096字节 mkfs.ext4 -F -i 4096 -b 4096 core-image-base-x9h_ref_serdes-20220504093115.rootfs.ext4 -d ~/yocto/build-x9ref/tmp/work/x9h_ref_serdes-sdrv-linux/core-image-base/1.0-r0/rootfs # 4. 自已检查修复为 ext4的文件系统类型 fsck.ext4 -pvfD core-image-base-x9h_ref_serdes-20220504093115.rootfs.ext4
前面几条指令都好理解,问题来了,第三条,mkfs.ext4 xxx -d xxxx 这个我真没理解,没看到有 -d 这个参数呀。
结果使用代码中编译好的mkfs.ext4 --help 看了下,还真有 -d ,指定 root-directory 的意思,牛逼了
ciellee@ubuntu:~/work/code/x9_ptg_3.9.1/buildsystem/yocto$ ./build-x9ref_bak/tmp/work/all-sdrv-linux/packagegroup-core-ssh-openssh/1.0-r1/recipe-sysroot-native/sbin/mkfs.ext4 --help /home/ciellee/work/code/x9_ptg_3.9.1/buildsystem/yocto/build-x9ref_bak/tmp/work/all-sdrv-linux/packagegroup-core-ssh-openssh/1.0-r1/recipe-sysroot-native/sbin/mkfs.ext4: invalid option -- '-' Usage: mkfs.ext4 [-c|-l filename] [-b block-size] [-C cluster-size] [-i bytes-per-inode] [-I inode-size] [-J journal-options] [-G flex-group-size] [-N number-of-inodes] [-d root-directory] [-m reserved-blocks-percentage] [-o creator-os] [-g blocks-per-group] [-L volume-label] [-M last-mounted-directory] [-O feature[,...]] [-r fs-revision] [-E extended-option[,...]] [-t fs-type] [-T usage-type ] [-U UUID] [-e errors_behavior][-z undo_file] [-jnqvDFSV] device [blocks-count]
这就很好理解了,先用 mkfs.ext4 对core-image-base-x9h_ref_serdes-20220504093115.rootfs.ext4 强制进行格式化,然后再将rootfs中的文件按 ext4格式放到根目录上
好了,截止目前,我们算是看懂了,core-image-base-x9h_ref_serdes-20220504093115.rootfs.ext4 这个文件怎么来的。
其代码位于:
# poky/meta/classes/image_types.bbclass
oe_mkext234fs () {
fstype=$1
extra_imagecmd=""
if [ $# -gt 1 ]; then
shift
extra_imagecmd=$@
fi
# If generating an empty image the size of the sparse block should be large
# enough to allocate an ext4 filesystem using 4096 bytes per inode, this is
# about 60K, so dd needs a minimum count of 60, with bs=1024 (bytes per IO)
eval local COUNT="0"
eval local MIN_COUNT="60"
if [ $ROOTFS_SIZE -lt $MIN_COUNT ]; then
eval COUNT="$MIN_COUNT"
fi
# Create a sparse image block
bbdebug 1 Executing "dd if=/dev/zero of=${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.$fstype seek=$ROOTFS_SIZE count=$COUNT bs=1024"
dd if=/dev/zero of=${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.$fstype seek=$ROOTFS_SIZE count=$COUNT bs=1024
bbdebug 1 "Actual Rootfs size: `du -s ${IMAGE_ROOTFS}`"
bbdebug 1 "Actual Partion size: `stat -c '%s' ${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.$fstype`"
bbdebug 1 Executing "mkfs.$fstype -F $extra_imagecmd ${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.$fstype -d ${IMAGE_ROOTFS}"
mkfs.$fstype -F $extra_imagecmd ${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.$fstype -d ${IMAGE_ROOTFS}
# Error codes 0-3 indicate successfull operation of fsck (no errors or errors corrected)
fsck.$fstype -pvfD ${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.$fstype || [ $? -le 3 ]
}
IMAGE_CMD_ext4 = "oe_mkext234fs ext4 ${EXTRA_IMAGECMD}"
2、编译 rootfs 相关的log
DEBUG: Marking task ~/yocto/poky/meta/recipes-core/images/core-image-minimal.bb:do_rootfs as buildable
DEBUG: Marking task ~/yocto/meta-qt5/recipes-qt/qt5/qtquickcontrols2_git.bb:do_build as buildable
DEBUG: Parsing ~/yocto/poky/meta/recipes-core/images/core-image-minimal.bb (full)
DEBUG: Inheriting ~/yocto/poky/meta/classes/core-image.bbclass (from ~/yocto/poky/meta/recipes-core/images/core-image-minimal.bb:9)
DEBUG: Inheriting ~/yocto/poky/meta/classes/image.bbclass (from ~/yocto/poky/meta/classes/core-image.bbclass:72)
DEBUG: Inheriting ~/yocto/poky/meta/classes/rootfs_rpm.bbclass (from ~/yocto/poky/meta/classes/image.bbclass:1)
DEBUG: Inheriting ~/yocto/poky/meta/classes/populate_sdk_ext.bbclass (from ~/yocto/poky/meta/classes/image.bbclass:6)
DEBUG: Inheriting ~/yocto/poky/meta/classes/populate_sdk_base.bbclass (from ~/yocto/poky/meta/classes/populate_sdk_ext.bbclass:3)
DEBUG: Inheriting ~/yocto/poky/meta/classes/meta.bbclass (from ~/yocto/poky/meta/classes/populate_sdk_base.bbclass:1)
DEBUG: Inheriting ~/yocto/poky/meta/classes/image_types_wic.bbclass (from ~/yocto/poky/meta/classes/image.bbclass:145)
DEBUG: Inheriting ~/yocto/poky/meta/classes/image_types.bbclass (from ~/yocto/poky/meta/classes/image.bbclass:181)
DEBUG: Inheriting ~/yocto/poky/meta/classes/siteinfo.bbclass (from ~/yocto/poky/meta/classes/image_types.bbclass:230)
DEBUG: Inheriting ~/yocto/poky/meta/classes/kernel-arch.bbclass (from ~/yocto/poky/meta/classes/image_types.bbclass:230)
DEBUG: Inheriting ~/yocto/poky/meta/classes/rootfs-postcommands.bbclass (from ~/yocto/poky/meta/classes/image.bbclass:194)
DEBUG: SITE files ['endian-little', 'bit-64', 'arm-common', 'arm-64', 'common-linux', 'common-glibc', 'aarch64-linux', 'common']
DEBUG: Executing task do_rootfs
+ ssh_allow_empty_password
+ [ -e ~/yocto/build-x9ref/tmp/work/x9h_ref_serdes-sdrv-linux/core-image-minimal/1.0-r0/rootfs/etc/ssh/sshd_config ]
+ sed -i s/^[#[:space:]]*PermitRootLogin.*/PermitRootLogin yes/ ~/yocto/build-x9ref/tmp/work/x9h_ref_serdes-sdrv-linux/core-image-minimal/1.0-r0/rootfs/etc/ssh/sshd_config
+ sed -i s/^[#[:space:]]*PermitEmptyPasswords.*/PermitEmptyPasswords yes/ ~/yocto/build-x9ref/tmp/work/x9h_ref_serdes-sdrv-linux/core-image-minimal/1.0-r0/rootfs/etc/ssh/sshd_config
+ [ -e ~/yocto/build-x9ref/tmp/work/x9h_ref_serdes-sdrv-linux/core-image-minimal/1.0-r0/rootfs/etc/ssh/sshd_config_readonly ]
+ sed -i s/^[#[:space:]]*PermitRootLogin.*/PermitRootLogin yes/ ~/yocto/build-x9ref/tmp/work/x9h_ref_serdes-sdrv-linux/core-image-minimal/1.0-r0/rootfs/etc/ssh/sshd_config_readonly
+ sed -i s/^[#[:space:]]*PermitEmptyPasswords.*/PermitEmptyPasswords yes/ ~/yocto/build-x9ref/tmp/work/x9h_ref_serdes-sdrv-linux/core-image-minimal/1.0-r0/rootfs/etc/ssh/sshd_config_readonly
+ [ -e ~/yocto/build-x9ref/tmp/work/x9h_ref_serdes-sdrv-linux/core-image-minimal/1.0-r0/rootfs/usr/sbin/dropbear ]
+ [ -d ~/yocto/build-x9ref/tmp/work/x9h_ref_serdes-sdrv-linux/core-image-minimal/1.0-r0/rootfs/etc/pam.d ]
+ ret=0
+ trap 0
+ exit 0
+ postinst_enable_logging
+ mkdir -p ~/yocto/build-x9ref/tmp/work/x9h_ref_serdes-sdrv-linux/core-image-minimal/1.0-r0/rootfs/etc/default
+ echo POSTINST_LOGGING=1
+ echo LOGFILE=/var/log/postinstall.log
+ ret=0
+ trap 0
+ exit 0
+ rootfs_update_timestamp
+ [ != ]
+ date -u +%4Y%2m%2d%2H%2M%2S
+ sformatted=20220507152827
+ echo 20220507152827
+ bbnote rootfs_update_timestamp: set /etc/timestamp to 20220507152827
+ [ -p ~/yocto/build-x9ref/tmp/work/x9h_ref_serdes-sdrv-linux/core-image-minimal/1.0-r0/temp/fifo.4772 ]
+ printf %b bbnote rootfs_update_timestamp: set /etc/timestamp to 20220507152827
+ ret=0
+ trap 0
+ exit 0
+ read_only_rootfs_hook
+ [ -f ~/yocto/build-x9ref/tmp/work/x9h_ref_serdes-sdrv-linux/core-image-minimal/1.0-r0/rootfs/etc/fstab ]
+ sed -i -e /^[#[:space:]]*/dev/root/{s/defaults/ro/;s/([[:space:]]*[[:digit:]])([[:space:]]*)[[:digit:]]$/120/} ~/yocto/build-x9ref/tmp/work/x9h_ref_serdes-sdrv-linux/core-image-minimal/1.0-r0/rootfs/etc/fstab
+ [ -d ~/yocto/build-x9ref/tmp/work/x9h_ref_serdes-sdrv-linux/core-image-minimal/1.0-r0/rootfs/etc/ssh ]
+ [ -e ~/yocto/build-x9ref/tmp/work/x9h_ref_serdes-sdrv-linux/core-image-minimal/1.0-r0/rootfs/etc/ssh/ssh_host_rsa_key ]
+ echo SYSCONFDIR=${SYSCONFDIR:-/var/run/ssh}
+ echo SSHD_OPTS='-f /etc/ssh/sshd_config_readonly'
+ [ -d ~/yocto/build-x9ref/tmp/work/x9h_ref_serdes-sdrv-linux/core-image-minimal/1.0-r0/rootfs/etc/dropbear ]
+ true
+ [ -e ~/yocto/build-x9ref/tmp/work/x9h_ref_serdes-sdrv-linux/core-image-minimal/1.0-r0/rootfs/etc/default/rcS ]
+ sed -i s/ROOTFS_READ_ONLY=no/ROOTFS_READ_ONLY=yes/ ~/yocto/build-x9ref/tmp/work/x9h_ref_serdes-sdrv-linux/core-image-minimal/1.0-r0/rootfs/etc/default/rcS
+ [ -x ~/yocto/build-x9ref/tmp/work/x9h_ref_serdes-sdrv-linux/core-image-minimal/1.0-r0/rootfs/etc/init.d/populate-volatile.sh ]
+ ~/yocto/build-x9ref/tmp/work/x9h_ref_serdes-sdrv-linux/core-image-minimal/1.0-r0/rootfs/etc/init.d/populate-volatile.sh
+ ret=0
+ trap 0
+ exit 0
+ empty_var_volatile
+ [ -e ~/yocto/build-x9ref/tmp/work/x9h_ref_serdes-sdrv-linux/core-image-minimal/1.0-r0/rootfs/etc/fstab ]
+ awk $1 !~ "#" && $2 ~ //var/volatile/{print $2} ~/yocto/build-x9ref/tmp/work/x9h_ref_serdes-sdrv-linux/core-image-minimal/1.0-r0/rootfs/etc/fstab
+ match=/var/volatile
+ [ -n /var/volatile ]
+ find ~/yocto/build-x9ref/tmp/work/x9h_ref_serdes-sdrv-linux/core-image-minimal/1.0-r0/rootfs/var/volatile -mindepth 1 -delete
+ ret=0
+ trap 0
+ exit 0
+ set_user_group
+ user_group_settings=useradd -P 000000 user1;
+ export PSEUDO=PSEUDO_PREFIX=~/yocto/build-x9ref/tmp/sysroots-components/x86_64/pseudo-native/usr PSEUDO_LOCALSTATEDIR=~/yocto/build-x9ref/tmp/work/x9h_ref_serdes-sdrv-linux/core-image-minimal/1.0-r0/pseudo/ PSEUDO_PASSWD=~/yocto/build-x9ref/tmp/work/x9h_ref_serdes-sdrv-linux/core-image-minimal/1.0-r0/rootfs:~/yocto/build-x9ref/tmp/work/x9h_ref_serdes-sdrv-linux/core-image-minimal/1.0-r0/recipe-sysroot-native PSEUDO_NOSYMLINKEXP=1 PSEUDO_DISABLED=0 ~/yocto/build-x9ref/tmp/work/x9h_ref_serdes-sdrv-linux/core-image-minimal/1.0-r0/recipe-sysroot-native/usr/bin/pseudo
+ echo useradd -P 000000 user1;
+ cut -d ; -f1
+ setting=useradd -P 000000 user1
+ echo useradd -P 000000 user1;
+ cut -d ; -f2-
+ remaining=
+ test xuseradd -P 000000 user1 != x
+ echo useradd -P 000000 user1
+ cut -d -f1
+ cmd=useradd
+ echo useradd -P 000000 user1
+ cut -d -f2-
+ opts=-P 000000 user1
+ perform_useradd ~/yocto/build-x9ref/tmp/work/x9h_ref_serdes-sdrv-linux/core-image-minimal/1.0-r0/rootfs -R ~/yocto/build-x9ref/tmp/work/x9h_ref_serdes-sdrv-linux/core-image-minimal/1.0-r0/rootfs -P 000000 user1
+ local rootdir=~/yocto/build-x9ref/tmp/work/x9h_ref_serdes-sdrv-linux/core-image-minimal/1.0-r0/rootfs
+ local opts=-R ~/yocto/build-x9ref/tmp/work/x9h_ref_serdes-sdrv-linux/core-image-minimal/1.0-r0/rootfs -P 000000 user1
+ bbnote core-image-minimal: Performing useradd with [-R ~/yocto/build-x9ref/tmp/work/x9h_ref_serdes-sdrv-linux/core-image-minimal/1.0-r0/rootfs -P 000000 user1]
+ [ -p ~/yocto/build-x9ref/tmp/work/x9h_ref_serdes-sdrv-linux/core-image-minimal/1.0-r0/temp/fifo.4772 ]
+ printf %b bbnote core-image-minimal: Performing useradd with [-R ~/yocto/build-x9ref/tmp/work/x9h_ref_serdes-sdrv-linux/core-image-minimal/1.0-r0/rootfs -P 000000 user1]
+ echo -R ~/yocto/build-x9ref/tmp/work/x9h_ref_serdes-sdrv-linux/core-image-minimal/1.0-r0/rootfs -P 000000 user1
+ awk { print $NF }
+ local username=user1
+ grep ^user1: ~/yocto/build-x9ref/tmp/work/x9h_ref_serdes-sdrv-linux/core-image-minimal/1.0-r0/rootfs/etc/passwd
+ true
+ local user_exists=
+ test x = x
+ eval flock -x ~/yocto/build-x9ref/tmp/work/x9h_ref_serdes-sdrv-linux/core-image-minimal/1.0-r0/rootfs/etc -c "PSEUDO_PREFIX=~/yocto/build-x9ref/tmp/sysroots-components/x86_64/pseudo-native/usr PSEUDO_LOCALSTATEDIR=~/yocto/build-x9ref/tmp/work/x9h_ref_serdes-sdrv-linux/core-image-minimal/1.0-r0/pseudo/ PSEUDO_PASSWD=~/yocto/build-x9ref/tmp/work/x9h_ref_serdes-sdrv-linux/core-image-minimal/1.0-r0/rootfs:~/yocto/build-x9ref/tmp/work/x9h_ref_serdes-sdrv-linux/core-image-minimal/1.0-r0/recipe-sysroot-native PSEUDO_NOSYMLINKEXP=1 PSEUDO_DISABLED=0 ~/yocto/build-x9ref/tmp/work/x9h_ref_serdes-sdrv-linux/core-image-minimal/1.0-r0/recipe-sysroot-native/usr/bin/pseudo useradd $opts"
+ flock -x ~/yocto/build-x9ref/tmp/work/x9h_ref_serdes-sdrv-linux/core-image-minimal/1.0-r0/rootfs/etc -c PSEUDO_PREFIX=~/yocto/build-x9ref/tmp/sysroots-components/x86_64/pseudo-native/usr PSEUDO_LOCALSTATEDIR=~/yocto/build-x9ref/tmp/work/x9h_ref_serdes-sdrv-linux/core-image-minimal/1.0-r0/pseudo/ PSEUDO_PASSWD=~/yocto/build-x9ref/tmp/work/x9h_ref_serdes-sdrv-linux/core-image-minimal/1.0-r0/rootfs:~/yocto/build-x9ref/tmp/work/x9h_ref_serdes-sdrv-linux/core-image-minimal/1.0-r0/recipe-sysroot-native PSEUDO_NOSYMLINKEXP=1 PSEUDO_DISABLED=0 ~/yocto/build-x9ref/tmp/work/x9h_ref_serdes-sdrv-linux/core-image-minimal/1.0-r0/recipe-sysroot-native/usr/bin/pseudo useradd -R ~/yocto/build-x9ref/tmp/work/x9h_ref_serdes-sdrv-linux/core-image-minimal/1.0-r0/rootfs -P 000000 user1
+ grep ^user1: ~/yocto/build-x9ref/tmp/work/x9h_ref_serdes-sdrv-linux/core-image-minimal/1.0-r0/rootfs/etc/passwd
+ user_exists=user1:x:1000:1000::/home/user1:/bin/sh
+ test xuser1:x:1000:1000::/home/user1:/bin/sh = x
+ [ useradd -P 000000 user1 = ]
+ echo
+ cut -d ; -f1
+ setting=
+ echo
+ cut -d ; -f2-
+ remaining=
+ test x != x
+ ret=0
+ trap 0
+ exit 0
+ rootfs_reproducible
+ [ != ]
+ ret=0
+ trap 0
+ exit 0
+ buildhistory_get_image_installed
+ [ 1 = 0 ]
+ buildhistory_get_installed ~/yocto/build-x9ref/buildhistory/images/x9h_ref_serdes/glibc/core-image-minimal
+ mkdir -p ~/yocto/build-x9ref/buildhistory/images/x9h_ref_serdes/glibc/core-image-minimal
+ pkgcache=~/yocto/build-x9ref/buildhistory/images/x9h_ref_serdes/glibc/core-image-minimal/installed-packages.tmp
+ cat ~/yocto/build-x9ref/tmp/work/x9h_ref_serdes-sdrv-linux/core-image-minimal/1.0-r0/bh_installed_pkgs.txt
+ sort
+ rm ~/yocto/build-x9ref/tmp/work/x9h_ref_serdes-sdrv-linux/core-image-minimal/1.0-r0/bh_installed_pkgs.txt
+ cat ~/yocto/build-x9ref/buildhistory/images/x9h_ref_serdes/glibc/core-image-minimal/installed-packages.tmp
+ awk { print $1 }
+ [ -s ~/yocto/build-x9ref/buildhistory/images/x9h_ref_serdes/glibc/core-image-minimal/installed-packages.tmp ]
+ cat ~/yocto/build-x9ref/buildhistory/images/x9h_ref_serdes/glibc/core-image-minimal/installed-packages.tmp
+ awk { print $2 }
+ xargs -n1 basename
+ sed s:([^| ]*):"1":g ~/yocto/build-x9ref/tmp/work/x9h_ref_serdes-sdrv-linux/core-image-minimal/1.0-r0/bh_installed_pkgs_deps.txt
+ rm ~/yocto/build-x9ref/tmp/work/x9h_ref_serdes-sdrv-linux/core-image-minimal/1.0-r0/bh_installed_pkgs_deps.txt
+ sed -i -e /rpmlib(/d -e /config(/d -e s:|: -> : -e s:"[REC]":[style=dotted]: -e s:"([<>=]+)" "([^"]*)":[label="1 2"]: ~/yocto/build-x9ref/buildhistory/images/x9h_ref_serdes/glibc/core-image-minimal/depends.tmp
+ printf digraph depends {n node [shape=plaintext]n
+ cat ~/yocto/build-x9ref/buildhistory/images/x9h_ref_serdes/glibc/core-image-minimal/depends.tmp
+ sort -u
+ echo }
+ rm ~/yocto/build-x9ref/buildhistory/images/x9h_ref_serdes/glibc/core-image-minimal/depends.tmp
+ oe-pkgdata-util -p ~/yocto/build-x9ref/tmp/pkgdata/x9h_ref_serdes read-value PKGSIZE -n -f ~/yocto/build-x9ref/buildhistory/images/x9h_ref_serdes/glibc/core-image-minimal/installed-packages.tmp
+ cat ~/yocto/build-x9ref/buildhistory/images/x9h_ref_serdes/glibc/core-image-minimal/installed-package-sizes.tmp
+ awk {print $2 "tKiBt" $1}
+ sort -n -r
+ rm ~/yocto/build-x9ref/buildhistory/images/x9h_ref_serdes/glibc/core-image-minimal/installed-package-sizes.tmp
+ rm ~/yocto/build-x9ref/buildhistory/images/x9h_ref_serdes/glibc/core-image-minimal/installed-packages.tmp
+ [ != sdk ]
+ grep -v kernel-image ~/yocto/build-x9ref/buildhistory/images/x9h_ref_serdes/glibc/core-image-minimal/depends.dot
+ grep -v kernel-3
+ grep -v kernel-4
+ grep -v libc6 ~/yocto/build-x9ref/buildhistory/images/x9h_ref_serdes/glibc/core-image-minimal/depends-nokernel.dot
+ grep -v libgcc
+ grep -v update- ~/yocto/build-x9ref/buildhistory/images/x9h_ref_serdes/glibc/core-image-minimal/depends-nokernel-nolibc.dot
+ grep -v kernel-module ~/yocto/build-x9ref/buildhistory/images/x9h_ref_serdes/glibc/core-image-minimal/depends-nokernel-nolibc-noupdate.dot
+ [ -e ~/yocto/build-x9ref/tmp/work/x9h_ref_serdes-sdrv-linux/core-image-minimal/1.0-r0/complementary_pkgs.txt ]
+ ret=0
+ trap 0
+ exit 0



