blob: 7b6f187d5d0b8dbd00e34bbd7532fb663051a0a2 [file] [log] [blame]
developer15a43312022-04-12 11:23:23 +08001inherit rdk-image
2
3IMAGE_FEATURES_remove = "read-only-rootfs"
4
5SYSTEMD_TOOLS = "systemd-analyze systemd-bootchart"
6# systemd-bootchart doesn't currently build with musl libc
7SYSTEMD_TOOLS_remove_libc-musl = "systemd-bootchart"
8
developer3d785cd2022-05-05 16:20:47 +08009IMAGE_INSTALL += " packagegroup-filogic-core \
developer15a43312022-04-12 11:23:23 +080010 ${SYSTEMD_TOOLS} \
developer15a43312022-04-12 11:23:23 +080011 network-hotplug \
12 libmcrypt \
developer3d785cd2022-05-05 16:20:47 +080013 coreutils \
14 util-linux-readprofile \
15 iputils \
16 bc \
17 python-core \
18 dosfstools \
19 pptp-linux \
20 rp-pppoe \
developer15a43312022-04-12 11:23:23 +080021 "
developer2bf53a92022-06-06 12:08:58 +080022#IMAGE_INSTALL += " opensync openvswitch mesh-agent e2fsprogs "
developer15a43312022-04-12 11:23:23 +080023
24BB_HASH_IGNORE_MISMATCH = "1"
25IMAGE_NAME[vardepsexclude] = "DATETIME"
26
27#ESDK-CHANGES
28do_populate_sdk_ext_prepend() {
29 builddir = d.getVar('TOPDIR')
30 if os.path.exists(builddir + '/conf/templateconf.cfg'):
31 with open(builddir + '/conf/templateconf.cfg', 'w') as f:
32 f.write('meta/conf\n')
33}
34
35sdk_ext_postinst_append() {
36 echo "ln -s $target_sdk_dir/layers/openembedded-core/meta-rdk $target_sdk_dir/layers/openembedded-core/../meta-rdk \n" >> $env_setup_script
37}
38
39PRSERV_HOST = "localhost:0"
40INHERIT += "buildhistory"
41BUILDHISTORY_COMMIT = "1"
42
43
44
45require image-exclude-files.inc
46
47remove_unused_file() {
48 for i in ${REMOVED_FILE_LIST} ; do rm -rf ${IMAGE_ROOTFS}/$i ; done
49}
50
51ROOTFS_POSTPROCESS_COMMAND_append = "remove_unused_file; "
developer23de0032022-06-01 19:34:29 +080052
53do_filogic_gen_image(){
54 if ${@bb.utils.contains('DISTRO_FEATURES','kernel_in_ubi','true','false',d)}; then
55 # create factory image align to openwrt (kernel in ubi)
56
57 echo \[kernel\] > ubinize.cfg
58 echo mode=ubi >> ubinize.cfg
59 echo image=${DEPLOY_DIR_IMAGE}/fitImage >> ubinize.cfg
60 echo vol_id=0 >> ubinize.cfg
61 echo vol_type=dynamic >> ubinize.cfg
62 echo vol_name=kernel >> ubinize.cfg
63 echo \[rootfs\] >> ubinize.cfg
64 echo mode=ubi >> ubinize.cfg
65 echo image=${IMGDEPLOYDIR}/${PN}-${MACHINE}.squashfs-xz >> ubinize.cfg
66 echo vol_id=1 >> ubinize.cfg
67 echo vol_type=dynamic >> ubinize.cfg
68 echo vol_name=rootfs >> ubinize.cfg
69 echo \[rootfs_data\] >> ubinize.cfg
70 echo mode=ubi >> ubinize.cfg
71 echo vol_id=2 >> ubinize.cfg
72 echo vol_type=dynamic >> ubinize.cfg
73 echo vol_name=rootfs_data >> ubinize.cfg
74 echo vol_size=1MiB >> ubinize.cfg
75 echo vol_flags=autoresize >> ubinize.cfg
76 ubinize -o ${DEPLOY_DIR_IMAGE}/${PN}-${MACHINE}-factory.bin ${UBINIZE_ARGS} ubinize.cfg
77 mv ubinize.cfg ${DEPLOY_DIR_IMAGE}/
78
79 # create sysupgrade image align to openwrt
80
81 rm -rf ${IMGDEPLOYDIR}/sysupgrade-${PN}-${MACHINE}
82 rm -rf ${IMGDEPLOYDIR}/${PN}-${MACHINE}-sysupgrade.bin
83
84 mkdir ${IMGDEPLOYDIR}/sysupgrade-${PN}-${MACHINE}
85
86 cp ${DEPLOY_DIR_IMAGE}/fitImage ${IMGDEPLOYDIR}/sysupgrade-${PN}-${MACHINE}/kernel
87 cp ${IMGDEPLOYDIR}/${PN}-${MACHINE}.squashfs-xz ${IMGDEPLOYDIR}/sysupgrade-${PN}-${MACHINE}/root
88
89 cd ${IMGDEPLOYDIR}
90 tar cvf ${PN}-${MACHINE}-sysupgrade.bin sysupgrade-${PN}-${MACHINE}
91 mv ${PN}-${MACHINE}-sysupgrade.bin ${DEPLOY_DIR_IMAGE}/
92 else
93 rm -f ${NAND_FILE}
94
95 # 1. dump fitImage into firmware
96 dd if=${DEPLOY_DIR_IMAGE}/fitImage >> ${NAND_FILE}
97
98 # 2. pad to 256K
99 dd if=${NAND_FILE} of=${NAND_FILE}.new bs=256k conv=sync
100 mv -f ${NAND_FILE}.new ${NAND_FILE}
101
102 # 3. pad to kernel size = 0x800000 = 8388608
103 dd if=${NAND_FILE} of=${NAND_FILE}.new bs=8388608 conv=sync
104 mv -f ${NAND_FILE}.new ${NAND_FILE}
105
106 # 4. dump filesystem into firmware
107 dd if=${IMGDEPLOYDIR}/${PN}-${MACHINE}.${NAND_ROOTFS_TYPE} >> ${NAND_FILE}
108 mv ${NAND_FILE} ${DEPLOY_DIR_IMAGE}/
109 fi
110
111}
112addtask filogic_gen_image after do_image_complete before do_populate_lic_deploy