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