blob: 57aa6e8c2497f0056b20bc63ddc75af2f4335878 [file] [log] [blame]
developer15a43312022-04-12 11:23:23 +08001inherit rdk-image
2
3IMAGE_FEATURES_remove = "read-only-rootfs"
developerfeea77e2022-07-11 18:10:33 +08004IMAGE_FSTYPES_remove= "tar.gz"
developer15a43312022-04-12 11:23:23 +08005SYSTEMD_TOOLS = "systemd-analyze systemd-bootchart"
6# systemd-bootchart doesn't currently build with musl libc
7SYSTEMD_TOOLS_remove_libc-musl = "systemd-bootchart"
8
developer87776312022-12-02 10:29:28 +08009DEPENDS += "cryptsetup-native"
10
developerc27ead32023-01-03 16:32:58 +080011IMAGE_INSTALL += " \
developer15a43312022-04-12 11:23:23 +080012 ${SYSTEMD_TOOLS} \
developerb76f9f32022-10-31 14:09:44 +080013 ethtool \
14 ebtables \
15 regs \
16 mii-mgr \
17 mtd \
18 smp \
19 mtk-factory-rw \
20 ${@bb.utils.contains('DISTRO_FEATURES','switch_gsw_mode','switch','',d)} \
21 mtd-utils-ubifs \
22 u-boot-fw-utils \
23 fw-upgrade \
24 init-filogic \
25 mac-sec \
26 mtkhnat-util \
developer15a43312022-04-12 11:23:23 +080027 network-hotplug \
28 libmcrypt \
developer3d785cd2022-05-05 16:20:47 +080029 coreutils \
30 util-linux-readprofile \
31 iputils \
32 bc \
33 python-core \
34 dosfstools \
35 pptp-linux \
36 rp-pppoe \
developer08970cc2022-07-26 15:13:11 +080037 xl2tpd \
developera66c2012022-11-01 19:16:16 +080038 strongswan \
39 libpcap \
developer761278a2022-11-01 19:27:22 +080040 tcpdump \
41 perf \
developerc27ead32023-01-03 16:32:58 +080042 ${@bb.utils.contains('DISTRO_FEATURES','mt76','packagegroup-filogic-mt76','',d)} \
43 ${@bb.utils.contains('DISTRO_FEATURES','logan','packagegroup-filogic-logan','',d)} \
44 ${@bb.utils.contains('DISTRO_FEATURES','mtk_easymesh','packagegroup-filogic-mtk-easymesh','',d)} \
developercbfd34a2023-01-17 17:08:24 +080045 ${@bb.utils.contains('DISTRO_FEATURES','emmc','e2fsprogs f2fs-tools','',d)} \
developer15a43312022-04-12 11:23:23 +080046 "
developer2bf53a92022-06-06 12:08:58 +080047#IMAGE_INSTALL += " opensync openvswitch mesh-agent e2fsprogs "
developer15a43312022-04-12 11:23:23 +080048
developerec941592022-11-18 14:34:39 +080049IMAGE_INSTALL_append_mt7988 += " marvell-eth-firmware "
50
developer87776312022-12-02 10:29:28 +080051#IMAGE_INSTALL_append_secureboot += " mtk-efuse-nl-drv mtk-efuse-nl-tool "
52
developer15a43312022-04-12 11:23:23 +080053BB_HASH_IGNORE_MISMATCH = "1"
54IMAGE_NAME[vardepsexclude] = "DATETIME"
55
56#ESDK-CHANGES
57do_populate_sdk_ext_prepend() {
58 builddir = d.getVar('TOPDIR')
59 if os.path.exists(builddir + '/conf/templateconf.cfg'):
60 with open(builddir + '/conf/templateconf.cfg', 'w') as f:
61 f.write('meta/conf\n')
62}
63
64sdk_ext_postinst_append() {
65 echo "ln -s $target_sdk_dir/layers/openembedded-core/meta-rdk $target_sdk_dir/layers/openembedded-core/../meta-rdk \n" >> $env_setup_script
66}
67
68PRSERV_HOST = "localhost:0"
69INHERIT += "buildhistory"
70BUILDHISTORY_COMMIT = "1"
71
72
73
74require image-exclude-files.inc
75
76remove_unused_file() {
77 for i in ${REMOVED_FILE_LIST} ; do rm -rf ${IMAGE_ROOTFS}/$i ; done
78}
79
80ROOTFS_POSTPROCESS_COMMAND_append = "remove_unused_file; "
developer23de0032022-06-01 19:34:29 +080081
82do_filogic_gen_image(){
83 if ${@bb.utils.contains('DISTRO_FEATURES','kernel_in_ubi','true','false',d)}; then
developer23de0032022-06-01 19:34:29 +080084 # create sysupgrade image align to openwrt
85
86 rm -rf ${IMGDEPLOYDIR}/sysupgrade-${PN}-${MACHINE}
87 rm -rf ${IMGDEPLOYDIR}/${PN}-${MACHINE}-sysupgrade.bin
88
89 mkdir ${IMGDEPLOYDIR}/sysupgrade-${PN}-${MACHINE}
90
91 cp ${DEPLOY_DIR_IMAGE}/fitImage ${IMGDEPLOYDIR}/sysupgrade-${PN}-${MACHINE}/kernel
92 cp ${IMGDEPLOYDIR}/${PN}-${MACHINE}.squashfs-xz ${IMGDEPLOYDIR}/sysupgrade-${PN}-${MACHINE}/root
93
94 cd ${IMGDEPLOYDIR}
95 tar cvf ${PN}-${MACHINE}-sysupgrade.bin sysupgrade-${PN}-${MACHINE}
96 mv ${PN}-${MACHINE}-sysupgrade.bin ${DEPLOY_DIR_IMAGE}/
developer87776312022-12-02 10:29:28 +080097
98 if ${@bb.utils.contains('DISTRO_FEATURES','secure_boot','true','false',d)}; then
developer23de0032022-06-01 19:34:29 +080099
developer87776312022-12-02 10:29:28 +0800100 rm -rf ${IMGDEPLOYDIR}/sysupgrade-${PN}-${MACHINE}-sb
101 rm -rf ${IMGDEPLOYDIR}/${PN}-${MACHINE}-sb-sysupgrade.bin
developer23de0032022-06-01 19:34:29 +0800102
developer87776312022-12-02 10:29:28 +0800103 mkdir ${IMGDEPLOYDIR}/sysupgrade-${PN}-${MACHINE}-sb
developer23de0032022-06-01 19:34:29 +0800104
developer87776312022-12-02 10:29:28 +0800105 cp ${DEPLOY_DIR_IMAGE}/fitImage-sb ${IMGDEPLOYDIR}/sysupgrade-${PN}-${MACHINE}-sb/kernel
106 cp ${IMGDEPLOYDIR}/${PN}-${MACHINE}.squashfs-xz ${IMGDEPLOYDIR}/sysupgrade-${PN}-${MACHINE}-sb/root
developer23de0032022-06-01 19:34:29 +0800107
developer87776312022-12-02 10:29:28 +0800108 cd ${IMGDEPLOYDIR}
109 tar cvf ${PN}-${MACHINE}-sb-sysupgrade.bin sysupgrade-${PN}-${MACHINE}-sb
110 mv ${PN}-${MACHINE}-sb-sysupgrade.bin ${DEPLOY_DIR_IMAGE}/
111 fi
developer23de0032022-06-01 19:34:29 +0800112 fi
113
114}
115addtask filogic_gen_image after do_image_complete before do_populate_lic_deploy
developer87776312022-12-02 10:29:28 +0800116
117python do_hash_rootfs (){
118 deploy_path = d.getVar('IMGDEPLOYDIR', d, 1)
119 PN = d.getVar('PN', d, 1)
120 MACHINE = d.getVar('MACHINE', d, 1)
121 SQUASHFS_FILE_PATH="%s/%s-%s.squashfs-xz" %(deploy_path, PN, MACHINE)
122 DEPLOY_DIR_IMAGE = d.getVar('DEPLOY_DIR_IMAGE', d, 1)
123 SUMMARY_FILE="%s/hash-summary" %(DEPLOY_DIR_IMAGE)
124 FILE_SIZE = os.path.getsize(SQUASHFS_FILE_PATH)
125 BLOCK_SIZE= int(d.getVar('NAND_PAGE_SIZE', d, 1))
126 DATA_BLOCKS= FILE_SIZE / BLOCK_SIZE
127
128 if ((FILE_SIZE % BLOCK_SIZE) != 0):
129 DATA_BLOCKS = DATA_BLOCKS+1
130
131 HASH_OFFSET=DATA_BLOCKS * BLOCK_SIZE
132
133 import subprocess
134 subprocess.Popen("veritysetup format --data-blocks=%d --hash-offset=%d %s %s > %s" %(DATA_BLOCKS, HASH_OFFSET, SQUASHFS_FILE_PATH, SQUASHFS_FILE_PATH, SUMMARY_FILE), shell=True)
135}
136
137addtask hash_rootfs after do_image_complete before do_filogic_gen_image
138
139python __anonymous () {
140 d.appendVarFlag('do_filogic_gen_image', 'depends', ' linux-mediatek:do_deploy')
141}