blob: 8bd0f461afbe7c2a3a802ae40100d26a7b41722e [file] [log] [blame]
wanwei.jiang91776952021-11-19 13:10:32 +08001#!/bin/bash
2
3function pre_defconfig_cmds() {
wanwei.jiang5c8d2b62021-11-26 20:36:33 +08004 if [[ ${AMLOGIC_USERDEBUG} -eq "1" ]]; then
5 echo "CONFIG_AMLOGIC_USERDEBUG=y" >> ${ROOT_DIR}/${FRAGMENT_CONFIG}
6 else
7 echo "CONFIG_AMLOGIC_USERDEBUG=n" >> ${ROOT_DIR}/${FRAGMENT_CONFIG}
8 fi
9
10 if [[ ${AMLOGIC_NONGKI} -eq "1" ]]; then
wanwei.jiang91776952021-11-19 13:10:32 +080011 echo "CONFIG_AMLOGIC_NONGKI=y" >> ${ROOT_DIR}/${FRAGMENT_CONFIG}
12 SKIP_EXT_MODULES=1
13 export SKIP_EXT_MODULES
14 EXT_MODULES=
15 export EXT_MODULES
wanwei.jiang5c8d2b62021-11-26 20:36:33 +080016 else
17 echo "CONFIG_AMLOGIC_NONGKI=n" >> ${ROOT_DIR}/${FRAGMENT_CONFIG}
wanwei.jiang91776952021-11-19 13:10:32 +080018 fi
19 KCONFIG_CONFIG=${ROOT_DIR}/${KERNEL_DIR}/arch/arm64/configs/${DEFCONFIG} ${ROOT_DIR}/${KERNEL_DIR}/scripts/kconfig/merge_config.sh -m -r ${ROOT_DIR}/${KERNEL_DIR}/arch/arm64/configs/gki_defconfig ${ROOT_DIR}/${FRAGMENT_CONFIG}
20}
21export -f pre_defconfig_cmds
22
23function post_defconfig_cmds() {
wanwei.jiang612a8882021-11-23 17:12:23 +080024 # check_defconfig
wanwei.jiang91776952021-11-19 13:10:32 +080025 rm ${ROOT_DIR}/${KERNEL_DIR}/arch/arm64/configs/${DEFCONFIG}
26 pushd ${ROOT_DIR}/common_drivers
wanwei.jiang5c8d2b62021-11-26 20:36:33 +080027 sed -i '5,${/CONFIG_AMLOGIC_USERDEBUG/d}' ${ROOT_DIR}/${FRAGMENT_CONFIG}
28 sed -i '5,${/CONFIG_AMLOGIC_NONGKI/d}' ${ROOT_DIR}/${FRAGMENT_CONFIG}
wanwei.jiang91776952021-11-19 13:10:32 +080029 popd
30}
31export -f post_defconfig_cmds
32
33function read_ext_module_config() {
34 ALL_LINE=""
35 while read LINE
36 do
37 if [[ $LINE != \#* && $LINE != "" ]]; then
38 ALL_LINE="$ALL_LINE"" ""$LINE"
39 fi
40 done < $1
41 export GKI_EXT_MODULE_CONFIG=$ALL_LINE
42 echo "GKI_EXT_MODULE_CONFIG=${GKI_EXT_MODULE_CONFIG}"
43}
44
45function read_ext_module_predefine() {
46 PRE_DEFINE=""
47
48 for y_config in `cat $1 | grep "^CONFIG_.*=y" | sed 's/=y//'`;
49 do
50 PRE_DEFINE="$PRE_DEFINE"" -D"${y_config}
51 done
52
53 for m_config in `cat $1 | grep "^CONFIG_.*=m" | sed 's/=m//'`;
54 do
55 PRE_DEFINE="$PRE_DEFINE"" -D"${m_config}_MODULE
56 done
57
58 export GKI_EXT_MODULE_PREDEFINE=$PRE_DEFINE
59 echo "GKI_EXT_MODULE_PREDEFINE=${GKI_EXT_MODULE_PREDEFINE}"
60}
61
62function prepare_module_build() {
63 if [[ -z ${AMLOGIC_NONGKI} ]]; then
64 read_ext_module_config $FRAGMENT_CONFIG && read_ext_module_predefine $FRAGMENT_CONFIG
65 fi
66}
67
68export -f prepare_module_build
wanwei.jiang612a8882021-11-23 17:12:23 +080069
70function mod_probe() {
71 local ko=$1
72 local loop
73 for loop in `grep "$ko:" modules.dep | sed 's/.*://'`;
74 do
75 mod_probe $loop
76 echo insmod $loop >> __install.sh
77 done
78}
79
80function modules_install() {
81 rm modules -rf
82 mkdir modules
83 cp *.ko modules
84
85 local stagin_module=$(echo ${MODULES_STAGING_DIR}/lib/modules/*)
86 echo stagin_module=${stagin_module}
87 cp ${stagin_module}/modules.dep modules
88
89 cd modules
90 sed -i 's#[^ ]*/##g' modules.dep
91
wanwei.jiang5c8d2b62021-11-26 20:36:33 +080092 touch __install.sh
wanwei.jiang612a8882021-11-23 17:12:23 +080093 for loop in `cat modules.dep | sed 's/:.*//'`; do
94 mod_probe $loop
95 echo insmod $loop >> __install.sh
96 done
97
98 cat __install.sh | awk ' {
99 if (!cnt[$2]) {
100 print $0;
101 cnt[$2]++;
102 }
103 }' > __install.sh.tmp
104
105 cp __install.sh.tmp __install.sh
106
107 sed -i '1s/^/#!\/bin\/sh\n\nset -ex\n/' __install.sh
108 echo "echo Install modules success!" >> __install.sh
109 chmod 777 __install.sh
110
111 echo "#!/bin/sh" > install.sh
112 # echo "./__install.sh || reboot" >> install.sh
113 echo "./__install.sh" >> install.sh
114 chmod 777 install.sh
115
116 echo "/modules/: all `wc -l modules.dep | awk '{print $1}'` modules."
117
118 cd ../
119}
120
121function rebuild_rootfs() {
122 pushd ${DIST_DIR}
123
124 modules_install
125
126 rm rootfs -rf
127 mkdir rootfs
128 cp ${ROOT_DIR}/common_drivers/rootfs_base.cpio.gz.uboot rootfs
129 cd rootfs
130 dd if=rootfs_base.cpio.gz.uboot of=rootfs_base.cpio.gz bs=64 skip=1
131 gunzip rootfs_base.cpio.gz
132 mkdir rootfs
133 cd rootfs
134 cpio -i -F ../rootfs_base.cpio
135 cp -rf ../../modules .
136 find . | cpio -o -H newc | gzip > ../rootfs_new.cpio.gz
137 cd ../
138 mkimage -A arm64 -O linux -T ramdisk -C none -d rootfs_new.cpio.gz rootfs_new.cpio.gz.uboot
139 mv rootfs_new.cpio.gz.uboot ../
140 cd ../
141
142 popd
143}
144export -f rebuild_rootfs