Commit a9a49f5a189067574a39cf3d996e32c8037b5dca

Authored by Eric Lee
1 parent 1ab10b9f8c

change default display output from lvds to hdmi

Showing 1 changed file with 1 additions and 1 deletions Inline Diff

smarc_make_debian.sh
1 #!/bin/bash 1 #!/bin/bash
2 # It is designed to build Debian Linux for Embedian SMARC modules 2 # It is designed to build Debian Linux for Embedian SMARC modules
3 # prepare host OS system: 3 # prepare host OS system:
4 # sudo apt-get install binfmt-support qemu qemu-user-static debootstrap kpartx 4 # sudo apt-get install binfmt-support qemu qemu-user-static debootstrap kpartx
5 # sudo apt-get install lvm2 dosfstools gpart binutils git lib32ncurses5-dev python-m2crypto 5 # sudo apt-get install lvm2 dosfstools gpart binutils git lib32ncurses5-dev python-m2crypto
6 # sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib build-essential chrpath socat libsdl1.2-dev 6 # sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib build-essential chrpath socat libsdl1.2-dev
7 # sudo apt-get install autoconf libtool libglib2.0-dev libarchive-dev 7 # sudo apt-get install autoconf libtool libglib2.0-dev libarchive-dev
8 # sudo apt-get install python-git xterm sed cvs subversion coreutils texi2html 8 # sudo apt-get install python-git xterm sed cvs subversion coreutils texi2html
9 # sudo apt-get install docbook-utils python-pysqlite2 help2man make gcc g++ desktop-file-utils libgl1-mesa-dev 9 # sudo apt-get install docbook-utils python-pysqlite2 help2man make gcc g++ desktop-file-utils libgl1-mesa-dev
10 # sudo apt-get install libglu1-mesa-dev mercurial automake groff curl lzop asciidoc u-boot-tools mtd-utils 10 # sudo apt-get install libglu1-mesa-dev mercurial automake groff curl lzop asciidoc u-boot-tools mtd-utils
11 # 11 #
12 12
13 # -e Exit immediately if a command exits with a non-zero status. 13 # -e Exit immediately if a command exits with a non-zero status.
14 set -e 14 set -e
15 15
16 SCRIPT_NAME=${0##*/} 16 SCRIPT_NAME=${0##*/}
17 17
18 #### Exports Variables #### 18 #### Exports Variables ####
19 #### global variables #### 19 #### global variables ####
20 readonly ABSOLUTE_FILENAME=`readlink -e "$0"` 20 readonly ABSOLUTE_FILENAME=`readlink -e "$0"`
21 readonly ABSOLUTE_DIRECTORY=`dirname ${ABSOLUTE_FILENAME}` 21 readonly ABSOLUTE_DIRECTORY=`dirname ${ABSOLUTE_FILENAME}`
22 readonly SCRIPT_POINT=${ABSOLUTE_DIRECTORY} 22 readonly SCRIPT_POINT=${ABSOLUTE_DIRECTORY}
23 readonly SCRIPT_START_DATE=`date +%Y%m%d` 23 readonly SCRIPT_START_DATE=`date +%Y%m%d`
24 readonly LOOP_MAJOR=7 24 readonly LOOP_MAJOR=7
25 25
26 # default mirror 26 # default mirror
27 readonly DEB_RELEASE="bullseye" 27 readonly DEB_RELEASE="bullseye"
28 readonly DEF_ROOTFS_TARBALL_NAME="rootfs.tar.gz" 28 readonly DEF_ROOTFS_TARBALL_NAME="rootfs.tar.gz"
29 readonly DEF_CONSOLE_ROOTFS_TARBALL_NAME="console_rootfs.tar.gz" 29 readonly DEF_CONSOLE_ROOTFS_TARBALL_NAME="console_rootfs.tar.gz"
30 30
31 ## display 31 ## display
32 readonly DISPLAY="lvds" 32 readonly DISPLAY="hdmi"
33 33
34 # base paths 34 # base paths
35 readonly DEF_BUILDENV="${ABSOLUTE_DIRECTORY}" 35 readonly DEF_BUILDENV="${ABSOLUTE_DIRECTORY}"
36 readonly DEF_SRC_DIR="${DEF_BUILDENV}/src" 36 readonly DEF_SRC_DIR="${DEF_BUILDENV}/src"
37 readonly G_ROOTFS_DIR="${DEF_BUILDENV}/rootfs" 37 readonly G_ROOTFS_DIR="${DEF_BUILDENV}/rootfs"
38 readonly G_TMP_DIR="${DEF_BUILDENV}/tmp" 38 readonly G_TMP_DIR="${DEF_BUILDENV}/tmp"
39 readonly G_TOOLS_PATH="${DEF_BUILDENV}/toolchain" 39 readonly G_TOOLS_PATH="${DEF_BUILDENV}/toolchain"
40 readonly G_EMBEDIAN_PATH="${DEF_BUILDENV}/embedian" 40 readonly G_EMBEDIAN_PATH="${DEF_BUILDENV}/embedian"
41 41
42 #64 bit CROSS_COMPILER config and paths 42 #64 bit CROSS_COMPILER config and paths
43 readonly G_CROSS_COMPILER_64BIT_NAME="gcc-arm-8.3-2019.03-x86_64-aarch64-linux-gnu" 43 readonly G_CROSS_COMPILER_64BIT_NAME="gcc-arm-8.3-2019.03-x86_64-aarch64-linux-gnu"
44 readonly G_CROSS_COMPILER_ARCHIVE_64BIT="${G_CROSS_COMPILER_64BIT_NAME}.tar.xz" 44 readonly G_CROSS_COMPILER_ARCHIVE_64BIT="${G_CROSS_COMPILER_64BIT_NAME}.tar.xz"
45 readonly G_EXT_CROSS_64BIT_COMPILER_LINK="https://developer.arm.com/-/media/Files/downloads/gnu-a/8.3-2019.03/binrel/${G_CROSS_COMPILER_ARCHIVE_64BIT}" 45 readonly G_EXT_CROSS_64BIT_COMPILER_LINK="https://developer.arm.com/-/media/Files/downloads/gnu-a/8.3-2019.03/binrel/${G_CROSS_COMPILER_ARCHIVE_64BIT}"
46 readonly G_CROSS_COMPILER_64BIT_PREFIX="aarch64-linux-gnu-" 46 readonly G_CROSS_COMPILER_64BIT_PREFIX="aarch64-linux-gnu-"
47 47
48 #### user rootfs packages #### 48 #### user rootfs packages ####
49 readonly G_USER_PACKAGES="" 49 readonly G_USER_PACKAGES=""
50 50
51 export LC_ALL=C 51 export LC_ALL=C
52 52
53 #### Input params #### 53 #### Input params ####
54 PARAM_OUTPUT_DIR="${DEF_BUILDENV}/output" 54 PARAM_OUTPUT_DIR="${DEF_BUILDENV}/output"
55 PARAM_DEBUG="0" 55 PARAM_DEBUG="0"
56 PARAM_CMD="all" 56 PARAM_CMD="all"
57 PARAM_BLOCK_DEVICE="na" 57 PARAM_BLOCK_DEVICE="na"
58 58
59 ### usage ### 59 ### usage ###
60 function usage() 60 function usage()
61 { 61 {
62 echo "Make Debian ${DEB_RELEASE} image and create a bootabled SD card" 62 echo "Make Debian ${DEB_RELEASE} image and create a bootabled SD card"
63 echo 63 echo
64 echo "Usage:" 64 echo "Usage:"
65 echo " MACHINE=<smarcimx8mp4g|smarcimx8mp6g> ./${SCRIPT_NAME} options" 65 echo " MACHINE=<smarcimx8mp4g|smarcimx8mp6g> ./${SCRIPT_NAME} options"
66 echo 66 echo
67 echo "Options:" 67 echo "Options:"
68 echo " -h|--help -- print this help" 68 echo " -h|--help -- print this help"
69 echo " -c|--cmd <command>" 69 echo " -c|--cmd <command>"
70 echo " Supported commands:" 70 echo " Supported commands:"
71 echo " deploy -- prepare environment for all commands" 71 echo " deploy -- prepare environment for all commands"
72 echo " all -- build or rebuild kernel/bootloader/rootfs" 72 echo " all -- build or rebuild kernel/bootloader/rootfs"
73 echo " bootloader -- build or rebuild U-Boot" 73 echo " bootloader -- build or rebuild U-Boot"
74 echo " kernel -- build or rebuild the Linux kernel" 74 echo " kernel -- build or rebuild the Linux kernel"
75 echo " kernelheaders -- build or rebuild Linux kernel headers" 75 echo " kernelheaders -- build or rebuild Linux kernel headers"
76 echo " modules -- build or rebuild the Linux kernel modules & headers and install them in the rootfs dir" 76 echo " modules -- build or rebuild the Linux kernel modules & headers and install them in the rootfs dir"
77 echo " rootfs -- build or rebuild the Debian root filesystem and create rootfs.tar.gz" 77 echo " rootfs -- build or rebuild the Debian root filesystem and create rootfs.tar.gz"
78 echo " (including: make & install Debian packages, firmware and kernel modules & headers)" 78 echo " (including: make & install Debian packages, firmware and kernel modules & headers)"
79 echo " rubi -- generate or regenerate rootfs.ubi.img image from rootfs folder " 79 echo " rubi -- generate or regenerate rootfs.ubi.img image from rootfs folder "
80 echo " rtar -- generate or regenerate rootfs.tar.gz image from the rootfs folder" 80 echo " rtar -- generate or regenerate rootfs.tar.gz image from the rootfs folder"
81 echo " clean -- clean all build artifacts (without deleting sources code or resulted images)" 81 echo " clean -- clean all build artifacts (without deleting sources code or resulted images)"
82 echo " sdcard -- create a bootable SD card" 82 echo " sdcard -- create a bootable SD card"
83 echo " -o|--output -- custom select output directory (default: \"${PARAM_OUTPUT_DIR}\")" 83 echo " -o|--output -- custom select output directory (default: \"${PARAM_OUTPUT_DIR}\")"
84 echo " -d|--dev -- specify SD card device (exmple: -d /dev/sde)" 84 echo " -d|--dev -- specify SD card device (exmple: -d /dev/sde)"
85 echo " --debug -- enable debug mode for this script" 85 echo " --debug -- enable debug mode for this script"
86 echo "Examples of use:" 86 echo "Examples of use:"
87 echo " deploy and build: ./${SCRIPT_NAME} --cmd deploy && sudo ./${SCRIPT_NAME} --cmd all" 87 echo " deploy and build: ./${SCRIPT_NAME} --cmd deploy && sudo ./${SCRIPT_NAME} --cmd all"
88 echo " make the Linux kernel only: sudo ./${SCRIPT_NAME} --cmd kernel" 88 echo " make the Linux kernel only: sudo ./${SCRIPT_NAME} --cmd kernel"
89 echo " make rootfs only: sudo ./${SCRIPT_NAME} --cmd rootfs" 89 echo " make rootfs only: sudo ./${SCRIPT_NAME} --cmd rootfs"
90 echo " create SD card: sudo ./${SCRIPT_NAME} --cmd sdcard --dev /dev/sdX" 90 echo " create SD card: sudo ./${SCRIPT_NAME} --cmd sdcard --dev /dev/sdX"
91 echo 91 echo
92 } 92 }
93 93
94 if [ ! -e ${G_EMBEDIAN_PATH}/${MACHINE}/${MACHINE}.sh ]; then 94 if [ ! -e ${G_EMBEDIAN_PATH}/${MACHINE}/${MACHINE}.sh ]; then
95 echo "Illegal MACHINE: ${MACHINE}" 95 echo "Illegal MACHINE: ${MACHINE}"
96 echo 96 echo
97 usage 97 usage
98 exit 1 98 exit 1
99 fi 99 fi
100 100
101 source ${G_EMBEDIAN_PATH}/${MACHINE}/${MACHINE}.sh 101 source ${G_EMBEDIAN_PATH}/${MACHINE}/${MACHINE}.sh
102 102
103 # Setup cross compiler path, name, kernel dtb path, kernel image type, helper scripts 103 # Setup cross compiler path, name, kernel dtb path, kernel image type, helper scripts
104 if [ "${ARCH_CPU}" = "64BIT" ]; then 104 if [ "${ARCH_CPU}" = "64BIT" ]; then
105 G_CROSS_COMPILER_NAME=${G_CROSS_COMPILER_64BIT_NAME} 105 G_CROSS_COMPILER_NAME=${G_CROSS_COMPILER_64BIT_NAME}
106 G_EXT_CROSS_COMPILER_LINK=${G_EXT_CROSS_64BIT_COMPILER_LINK} 106 G_EXT_CROSS_COMPILER_LINK=${G_EXT_CROSS_64BIT_COMPILER_LINK}
107 G_CROSS_COMPILER_ARCHIVE=${G_CROSS_COMPILER_ARCHIVE_64BIT} 107 G_CROSS_COMPILER_ARCHIVE=${G_CROSS_COMPILER_ARCHIVE_64BIT}
108 G_CROSS_COMPILER_PREFIX=${G_CROSS_COMPILER_64BIT_PREFIX} 108 G_CROSS_COMPILER_PREFIX=${G_CROSS_COMPILER_64BIT_PREFIX}
109 ARCH_ARGS="arm64" 109 ARCH_ARGS="arm64"
110 BUILD_IMAGE_TYPE="Image" 110 BUILD_IMAGE_TYPE="Image"
111 KERNEL_BOOT_IMAGE_SRC="arch/arm64/boot/" 111 KERNEL_BOOT_IMAGE_SRC="arch/arm64/boot/"
112 KERNEL_DTB_IMAGE_PATH="arch/arm64/boot/dts/embedian/" 112 KERNEL_DTB_IMAGE_PATH="arch/arm64/boot/dts/embedian/"
113 # Include weston backend rootfs helper 113 # Include weston backend rootfs helper
114 source ${G_EMBEDIAN_PATH}/weston_rootfs.sh 114 source ${G_EMBEDIAN_PATH}/weston_rootfs.sh
115 source ${G_EMBEDIAN_PATH}/linux-headers_debian_src/create_kernel_tree.sh 115 source ${G_EMBEDIAN_PATH}/linux-headers_debian_src/create_kernel_tree.sh
116 else 116 else
117 echo " Error unknown CPU type" 117 echo " Error unknown CPU type"
118 exit 1 118 exit 1
119 fi 119 fi
120 120
121 PARAM_DEB_LOCAL_MIRROR="${DEF_DEBIAN_MIRROR}" 121 PARAM_DEB_LOCAL_MIRROR="${DEF_DEBIAN_MIRROR}"
122 G_CROSS_COMPILER_PATH="${G_TOOLS_PATH}/${G_CROSS_COMPILER_NAME}/bin" 122 G_CROSS_COMPILER_PATH="${G_TOOLS_PATH}/${G_CROSS_COMPILER_NAME}/bin"
123 123
124 ## parse input arguments ## 124 ## parse input arguments ##
125 readonly SHORTOPTS="c:o:d:h" 125 readonly SHORTOPTS="c:o:d:h"
126 readonly LONGOPTS="cmd:,output:,dev:,help,debug" 126 readonly LONGOPTS="cmd:,output:,dev:,help,debug"
127 127
128 ARGS=$(getopt -s bash --options ${SHORTOPTS} \ 128 ARGS=$(getopt -s bash --options ${SHORTOPTS} \
129 --longoptions ${LONGOPTS} --name ${SCRIPT_NAME} -- "$@" ) 129 --longoptions ${LONGOPTS} --name ${SCRIPT_NAME} -- "$@" )
130 130
131 eval set -- "$ARGS" 131 eval set -- "$ARGS"
132 132
133 while true; do 133 while true; do
134 case $1 in 134 case $1 in
135 -c|--cmd ) # script command 135 -c|--cmd ) # script command
136 shift 136 shift
137 PARAM_CMD="$1"; 137 PARAM_CMD="$1";
138 ;; 138 ;;
139 -o|--output ) # select output dir 139 -o|--output ) # select output dir
140 shift 140 shift
141 PARAM_OUTPUT_DIR="$1"; 141 PARAM_OUTPUT_DIR="$1";
142 ;; 142 ;;
143 -d|--dev ) # SD card block device 143 -d|--dev ) # SD card block device
144 shift 144 shift
145 [ -e ${1} ] && { 145 [ -e ${1} ] && {
146 PARAM_BLOCK_DEVICE=${1}; 146 PARAM_BLOCK_DEVICE=${1};
147 }; 147 };
148 ;; 148 ;;
149 --debug ) # enable debug 149 --debug ) # enable debug
150 PARAM_DEBUG=1; 150 PARAM_DEBUG=1;
151 ;; 151 ;;
152 -h|--help ) # get help 152 -h|--help ) # get help
153 usage 153 usage
154 exit 0; 154 exit 0;
155 ;; 155 ;;
156 -- ) 156 -- )
157 shift 157 shift
158 break 158 break
159 ;; 159 ;;
160 * ) 160 * )
161 shift 161 shift
162 break 162 break
163 ;; 163 ;;
164 esac 164 esac
165 shift 165 shift
166 done 166 done
167 167
168 # enable trace option in debug mode 168 # enable trace option in debug mode
169 [ "${PARAM_DEBUG}" = "1" ] && { 169 [ "${PARAM_DEBUG}" = "1" ] && {
170 echo "Debug mode enabled!" 170 echo "Debug mode enabled!"
171 set -x 171 set -x
172 }; 172 };
173 173
174 echo "=============== Build summary ===============" 174 echo "=============== Build summary ==============="
175 echo "Building Debian ${DEB_RELEASE} for ${MACHINE}" 175 echo "Building Debian ${DEB_RELEASE} for ${MACHINE}"
176 echo "Building Debian ${DEB_RELEASE} for ${MACHINE}" 176 echo "Building Debian ${DEB_RELEASE} for ${MACHINE}"
177 echo "U-Boot config: ${G_UBOOT_DEF_CONFIG_MMC}" 177 echo "U-Boot config: ${G_UBOOT_DEF_CONFIG_MMC}"
178 echo "Kernel config: ${G_LINUX_KERNEL_DEF_CONFIG}" 178 echo "Kernel config: ${G_LINUX_KERNEL_DEF_CONFIG}"
179 echo "Default kernel dtb: ${DEFAULT_BOOT_DTB}" 179 echo "Default kernel dtb: ${DEFAULT_BOOT_DTB}"
180 echo "kernel dtbs: ${G_LINUX_DTB}" 180 echo "kernel dtbs: ${G_LINUX_DTB}"
181 echo "=============================================" 181 echo "============================================="
182 echo 182 echo
183 183
184 ## declarate dynamic variables ## 184 ## declarate dynamic variables ##
185 readonly G_ROOTFS_TARBALL_PATH="${PARAM_OUTPUT_DIR}/${DEF_ROOTFS_TARBALL_NAME}" 185 readonly G_ROOTFS_TARBALL_PATH="${PARAM_OUTPUT_DIR}/${DEF_ROOTFS_TARBALL_NAME}"
186 readonly G_CONSOLE_ROOTFS_TARBALL_PATH="${PARAM_OUTPUT_DIR}/${DEF_CONSOLE_ROOTFS_TARBALL_NAME}" 186 readonly G_CONSOLE_ROOTFS_TARBALL_PATH="${PARAM_OUTPUT_DIR}/${DEF_CONSOLE_ROOTFS_TARBALL_NAME}"
187 187
188 ###### local functions ###### 188 ###### local functions ######
189 189
190 ### printing functions ### 190 ### printing functions ###
191 191
192 # print error message 192 # print error message
193 # $1 - printing string 193 # $1 - printing string
194 function pr_error() 194 function pr_error()
195 { 195 {
196 echo "E: $1" 196 echo "E: $1"
197 } 197 }
198 198
199 # print warning message 199 # print warning message
200 # $1 - printing string 200 # $1 - printing string
201 function pr_warning() 201 function pr_warning()
202 { 202 {
203 echo "W: $1" 203 echo "W: $1"
204 } 204 }
205 205
206 # print info message 206 # print info message
207 # $1 - printing string 207 # $1 - printing string
208 function pr_info() 208 function pr_info()
209 { 209 {
210 echo "I: $1" 210 echo "I: $1"
211 } 211 }
212 212
213 # print debug message 213 # print debug message
214 # $1 - printing string 214 # $1 - printing string
215 function pr_debug() { 215 function pr_debug() {
216 echo "D: $1" 216 echo "D: $1"
217 } 217 }
218 218
219 ### work functions ### 219 ### work functions ###
220 220
221 # get sources from git repository 221 # get sources from git repository
222 # $1 - git repository 222 # $1 - git repository
223 # $2 - branch name 223 # $2 - branch name
224 # $3 - output dir 224 # $3 - output dir
225 # $4 - commit id 225 # $4 - commit id
226 function get_git_src() 226 function get_git_src()
227 { 227 {
228 # clone src code 228 # clone src code
229 git clone ${1} -b ${2} ${3} 229 git clone ${1} -b ${2} ${3}
230 cd ${3} 230 cd ${3}
231 git reset --hard ${4} 231 git reset --hard ${4}
232 cd - 232 cd -
233 } 233 }
234 234
235 # get remote file 235 # get remote file
236 # $1 - remote file 236 # $1 - remote file
237 # $2 - local file 237 # $2 - local file
238 # $3 - optional sha256sum 238 # $3 - optional sha256sum
239 function get_remote_file() 239 function get_remote_file()
240 { 240 {
241 # download remote file 241 # download remote file
242 wget -c ${1} -O ${2} 242 wget -c ${1} -O ${2}
243 243
244 # verify sha256sum 244 # verify sha256sum
245 if [ -n "${3}" ]; then 245 if [ -n "${3}" ]; then
246 echo "${3} ${2}" | sha256sum -c 246 echo "${3} ${2}" | sha256sum -c
247 fi 247 fi
248 } 248 }
249 249
250 function make_prepare() 250 function make_prepare()
251 { 251 {
252 # create src dir 252 # create src dir
253 mkdir -p ${DEF_SRC_DIR} 253 mkdir -p ${DEF_SRC_DIR}
254 254
255 # create toolchain dir 255 # create toolchain dir
256 mkdir -p ${G_TOOLS_PATH} 256 mkdir -p ${G_TOOLS_PATH}
257 257
258 # create rootfs dir 258 # create rootfs dir
259 mkdir -p ${G_ROOTFS_DIR} 259 mkdir -p ${G_ROOTFS_DIR}
260 260
261 # create out dir 261 # create out dir
262 mkdir -p ${PARAM_OUTPUT_DIR} 262 mkdir -p ${PARAM_OUTPUT_DIR}
263 263
264 # create tmp dir 264 # create tmp dir
265 mkdir -p ${G_TMP_DIR} 265 mkdir -p ${G_TMP_DIR}
266 } 266 }
267 267
268 268
269 # make tarball from footfs 269 # make tarball from footfs
270 # $1 -- packet folder 270 # $1 -- packet folder
271 # $2 -- output tarball file (full name) 271 # $2 -- output tarball file (full name)
272 function make_tarball() 272 function make_tarball()
273 { 273 {
274 cd $1 274 cd $1
275 275
276 chown root:root . 276 chown root:root .
277 pr_info "make tarball from folder ${1}" 277 pr_info "make tarball from folder ${1}"
278 pr_info "Remove old tarball $2" 278 pr_info "Remove old tarball $2"
279 rm -f $2 279 rm -f $2
280 280
281 pr_info "Create $2" 281 pr_info "Create $2"
282 282
283 RETVAL=0 283 RETVAL=0
284 tar czf $2 . || { 284 tar czf $2 . || {
285 RETVAL=1 285 RETVAL=1
286 rm -f $2 286 rm -f $2
287 }; 287 };
288 288
289 cd - 289 cd -
290 return $RETVAL 290 return $RETVAL
291 } 291 }
292 292
293 # make Linux kernel image & dtbs 293 # make Linux kernel image & dtbs
294 # $1 -- cross compiler prefix 294 # $1 -- cross compiler prefix
295 # $2 -- Linux defconfig file 295 # $2 -- Linux defconfig file
296 # $3 -- Linux dtb files 296 # $3 -- Linux dtb files
297 # $4 -- Linux dirname 297 # $4 -- Linux dirname
298 # $5 -- out path 298 # $5 -- out path
299 function make_kernel() 299 function make_kernel()
300 { 300 {
301 pr_info "make kernel .config" 301 pr_info "make kernel .config"
302 make ARCH=${ARCH_ARGS} CROSS_COMPILE=${1} ${G_CROSS_COMPILER_JOPTION} -C ${4}/ ${2} 302 make ARCH=${ARCH_ARGS} CROSS_COMPILE=${1} ${G_CROSS_COMPILER_JOPTION} -C ${4}/ ${2}
303 303
304 pr_info "make kernel" 304 pr_info "make kernel"
305 if [ ! -z "${UIMAGE_LOADADDR}" ]; then 305 if [ ! -z "${UIMAGE_LOADADDR}" ]; then
306 IMAGE_EXTRA_ARGS="LOADADDR=${UIMAGE_LOADADDR}" 306 IMAGE_EXTRA_ARGS="LOADADDR=${UIMAGE_LOADADDR}"
307 fi 307 fi
308 make CROSS_COMPILE=${1} ARCH=${ARCH_ARGS} ${G_CROSS_COMPILER_JOPTION} ${IMAGE_EXTRA_ARGS}\ 308 make CROSS_COMPILE=${1} ARCH=${ARCH_ARGS} ${G_CROSS_COMPILER_JOPTION} ${IMAGE_EXTRA_ARGS}\
309 -C ${4}/ ${BUILD_IMAGE_TYPE} 309 -C ${4}/ ${BUILD_IMAGE_TYPE}
310 310
311 pr_info "make ${3}" 311 pr_info "make ${3}"
312 make CROSS_COMPILE=${1} ARCH=${ARCH_ARGS} ${G_CROSS_COMPILER_JOPTION} -C ${4} ${3} 312 make CROSS_COMPILE=${1} ARCH=${ARCH_ARGS} ${G_CROSS_COMPILER_JOPTION} -C ${4} ${3}
313 313
314 pr_info "Copy kernel and dtb files to output dir: ${5}" 314 pr_info "Copy kernel and dtb files to output dir: ${5}"
315 cp ${4}/${KERNEL_BOOT_IMAGE_SRC}/${BUILD_IMAGE_TYPE} ${5}/; 315 cp ${4}/${KERNEL_BOOT_IMAGE_SRC}/${BUILD_IMAGE_TYPE} ${5}/;
316 cp ${4}/${KERNEL_DTB_IMAGE_PATH}*.dtb ${5}/; 316 cp ${4}/${KERNEL_DTB_IMAGE_PATH}*.dtb ${5}/;
317 } 317 }
318 318
319 # clean kernel 319 # clean kernel
320 # $1 -- Linux dir path 320 # $1 -- Linux dir path
321 function clean_kernel() 321 function clean_kernel()
322 { 322 {
323 pr_info "Clean the Linux kernel" 323 pr_info "Clean the Linux kernel"
324 324
325 make ARCH=${ARCH_ARGS} -C ${1}/ mrproper 325 make ARCH=${ARCH_ARGS} -C ${1}/ mrproper
326 } 326 }
327 327
328 # make Linux kernel modules 328 # make Linux kernel modules
329 # $1 -- cross compiler prefix 329 # $1 -- cross compiler prefix
330 # $2 -- Linux defconfig file 330 # $2 -- Linux defconfig file
331 # $3 -- Linux dirname 331 # $3 -- Linux dirname
332 # $4 -- out modules path 332 # $4 -- out modules path
333 function make_kernel_modules() 333 function make_kernel_modules()
334 { 334 {
335 pr_info "make kernel defconfig" 335 pr_info "make kernel defconfig"
336 make ARCH=${ARCH_ARGS} CROSS_COMPILE=${1} ${G_CROSS_COMPILER_JOPTION} -C ${3} ${2} 336 make ARCH=${ARCH_ARGS} CROSS_COMPILE=${1} ${G_CROSS_COMPILER_JOPTION} -C ${3} ${2}
337 337
338 pr_info "Compiling kernel modules" 338 pr_info "Compiling kernel modules"
339 make ARCH=${ARCH_ARGS} CROSS_COMPILE=${1} ${G_CROSS_COMPILER_JOPTION} -C ${3} modules 339 make ARCH=${ARCH_ARGS} CROSS_COMPILE=${1} ${G_CROSS_COMPILER_JOPTION} -C ${3} modules
340 } 340 }
341 341
342 # make Linux kernel headers package 342 # make Linux kernel headers package
343 # $1 -- cross compiler prefix 343 # $1 -- cross compiler prefix
344 # $2 -- Linux defconfig file 344 # $2 -- Linux defconfig file
345 # $3 -- Linux dirname 345 # $3 -- Linux dirname
346 # $4 -- out modules path 346 # $4 -- out modules path
347 function make_kernel_headers_package() 347 function make_kernel_headers_package()
348 { 348 {
349 pr_info "make kernel defconfig" 349 pr_info "make kernel defconfig"
350 create_debian_kernel_headers_package ${3} \ 350 create_debian_kernel_headers_package ${3} \
351 ${PARAM_OUTPUT_DIR}/kernel-headers ${G_EMBEDIAN_PATH} 351 ${PARAM_OUTPUT_DIR}/kernel-headers ${G_EMBEDIAN_PATH}
352 pr_info "Installing kernel modules to ${4}" 352 pr_info "Installing kernel modules to ${4}"
353 make ARCH=${ARCH_ARGS} CROSS_COMPILE=${1} \ 353 make ARCH=${ARCH_ARGS} CROSS_COMPILE=${1} \
354 ${G_CROSS_COMPILER_JOPTION} -C ${3} \ 354 ${G_CROSS_COMPILER_JOPTION} -C ${3} \
355 INSTALL_MOD_PATH=${4} modules_install 355 INSTALL_MOD_PATH=${4} modules_install
356 } 356 }
357 # install the Linux kernel modules 357 # install the Linux kernel modules
358 # $1 -- cross compiler prefix 358 # $1 -- cross compiler prefix
359 # $2 -- Linux defconfig file 359 # $2 -- Linux defconfig file
360 # $3 -- Linux dirname 360 # $3 -- Linux dirname
361 # $4 -- out modules path 361 # $4 -- out modules path
362 function install_kernel_modules() 362 function install_kernel_modules()
363 { 363 {
364 pr_info "Installing kernel headers to ${4}" 364 pr_info "Installing kernel headers to ${4}"
365 make ARCH=${ARCH_ARGS} CROSS_COMPILE=${1} ${G_CROSS_COMPILER_JOPTION} -C ${3} \ 365 make ARCH=${ARCH_ARGS} CROSS_COMPILE=${1} ${G_CROSS_COMPILER_JOPTION} -C ${3} \
366 INSTALL_HDR_PATH=${4}/usr/local headers_install 366 INSTALL_HDR_PATH=${4}/usr/local headers_install
367 367
368 pr_info "Installing kernel modules to ${4}" 368 pr_info "Installing kernel modules to ${4}"
369 make ARCH=${ARCH_ARGS} CROSS_COMPILE=${1} ${G_CROSS_COMPILER_JOPTION} -C ${3} \ 369 make ARCH=${ARCH_ARGS} CROSS_COMPILE=${1} ${G_CROSS_COMPILER_JOPTION} -C ${3} \
370 INSTALL_MOD_PATH=${4} modules_install 370 INSTALL_MOD_PATH=${4} modules_install
371 } 371 }
372 372
373 # make U-Boot 373 # make U-Boot
374 # $1 U-Boot path 374 # $1 U-Boot path
375 # $2 Output dir 375 # $2 Output dir
376 function make_uboot() 376 function make_uboot()
377 { 377 {
378 pr_info "Make U-Boot: ${G_UBOOT_DEF_CONFIG_MMC}" 378 pr_info "Make U-Boot: ${G_UBOOT_DEF_CONFIG_MMC}"
379 379
380 # clean work directory 380 # clean work directory
381 make ARCH=${ARCH_ARGS} -C ${1} \ 381 make ARCH=${ARCH_ARGS} -C ${1} \
382 CROSS_COMPILE=${G_CROSS_COMPILER_PATH}/${G_CROSS_COMPILER_PREFIX} \ 382 CROSS_COMPILE=${G_CROSS_COMPILER_PATH}/${G_CROSS_COMPILER_PREFIX} \
383 ${G_CROSS_COMPILER_JOPTION} mrproper 383 ${G_CROSS_COMPILER_JOPTION} mrproper
384 384
385 # make U-Boot mmc defconfig 385 # make U-Boot mmc defconfig
386 make ARCH=${ARCH_ARGS} -C ${1} \ 386 make ARCH=${ARCH_ARGS} -C ${1} \
387 CROSS_COMPILE=${G_CROSS_COMPILER_PATH}/${G_CROSS_COMPILER_PREFIX} \ 387 CROSS_COMPILE=${G_CROSS_COMPILER_PATH}/${G_CROSS_COMPILER_PREFIX} \
388 ${G_CROSS_COMPILER_JOPTION} ${G_UBOOT_DEF_CONFIG_MMC} 388 ${G_CROSS_COMPILER_JOPTION} ${G_UBOOT_DEF_CONFIG_MMC}
389 389
390 # make U-Boot 390 # make U-Boot
391 make -C ${1} \ 391 make -C ${1} \
392 CROSS_COMPILE=${G_CROSS_COMPILER_PATH}/${G_CROSS_COMPILER_PREFIX} \ 392 CROSS_COMPILE=${G_CROSS_COMPILER_PATH}/${G_CROSS_COMPILER_PREFIX} \
393 ${G_CROSS_COMPILER_JOPTION} 393 ${G_CROSS_COMPILER_JOPTION}
394 394
395 if [ "${MACHINE}" = "smarcimx8mp4g" ] || 395 if [ "${MACHINE}" = "smarcimx8mp4g" ] ||
396 [ "${MACHINE}" = "smarcimx8mp6g" ]; then 396 [ "${MACHINE}" = "smarcimx8mp6g" ]; then
397 cd ${DEF_SRC_DIR}/imx-atf 397 cd ${DEF_SRC_DIR}/imx-atf
398 LDFLAGS="" make CROSS_COMPILE=${G_CROSS_COMPILER_PATH}/${G_CROSS_COMPILER_PREFIX} \ 398 LDFLAGS="" make CROSS_COMPILE=${G_CROSS_COMPILER_PATH}/${G_CROSS_COMPILER_PREFIX} \
399 PLAT=imx8mp bl31 399 PLAT=imx8mp bl31
400 cd - 400 cd -
401 cp ${DEF_SRC_DIR}/imx-atf/build/imx8mp/release/bl31.bin \ 401 cp ${DEF_SRC_DIR}/imx-atf/build/imx8mp/release/bl31.bin \
402 ${DEF_SRC_DIR}/imx-mkimage/iMX8M/bl31.bin 402 ${DEF_SRC_DIR}/imx-mkimage/iMX8M/bl31.bin
403 cp ${G_EMBEDIAN_PATH}/${MACHINE}/imx-boot-tools/signed_hdmi_imx8m.bin \ 403 cp ${G_EMBEDIAN_PATH}/${MACHINE}/imx-boot-tools/signed_hdmi_imx8m.bin \
404 src/imx-mkimage/iMX8M/signed_hdmi_imx8m.bin 404 src/imx-mkimage/iMX8M/signed_hdmi_imx8m.bin
405 cp ${G_EMBEDIAN_PATH}/${MACHINE}/imx-boot-tools/lpddr4_pmu_train_1d_dmem_202006.bin \ 405 cp ${G_EMBEDIAN_PATH}/${MACHINE}/imx-boot-tools/lpddr4_pmu_train_1d_dmem_202006.bin \
406 src/imx-mkimage/iMX8M/lpddr4_pmu_train_1d_dmem_202006.bin 406 src/imx-mkimage/iMX8M/lpddr4_pmu_train_1d_dmem_202006.bin
407 cp ${G_EMBEDIAN_PATH}/${MACHINE}/imx-boot-tools/lpddr4_pmu_train_1d_imem_202006.bin \ 407 cp ${G_EMBEDIAN_PATH}/${MACHINE}/imx-boot-tools/lpddr4_pmu_train_1d_imem_202006.bin \
408 src/imx-mkimage/iMX8M/lpddr4_pmu_train_1d_imem_202006.bin 408 src/imx-mkimage/iMX8M/lpddr4_pmu_train_1d_imem_202006.bin
409 cp ${G_EMBEDIAN_PATH}/${MACHINE}/imx-boot-tools/lpddr4_pmu_train_2d_dmem_202006.bin \ 409 cp ${G_EMBEDIAN_PATH}/${MACHINE}/imx-boot-tools/lpddr4_pmu_train_2d_dmem_202006.bin \
410 src/imx-mkimage/iMX8M/lpddr4_pmu_train_2d_dmem_202006.bin 410 src/imx-mkimage/iMX8M/lpddr4_pmu_train_2d_dmem_202006.bin
411 cp ${G_EMBEDIAN_PATH}/${MACHINE}/imx-boot-tools/lpddr4_pmu_train_2d_imem_202006.bin \ 411 cp ${G_EMBEDIAN_PATH}/${MACHINE}/imx-boot-tools/lpddr4_pmu_train_2d_imem_202006.bin \
412 src/imx-mkimage/iMX8M/lpddr4_pmu_train_2d_imem_202006.bin 412 src/imx-mkimage/iMX8M/lpddr4_pmu_train_2d_imem_202006.bin
413 cp ${1}/u-boot.bin ${DEF_SRC_DIR}/imx-mkimage/iMX8M/ 413 cp ${1}/u-boot.bin ${DEF_SRC_DIR}/imx-mkimage/iMX8M/
414 cp ${1}/u-boot-nodtb.bin ${DEF_SRC_DIR}/imx-mkimage/iMX8M/ 414 cp ${1}/u-boot-nodtb.bin ${DEF_SRC_DIR}/imx-mkimage/iMX8M/
415 cp ${1}/spl/u-boot-spl.bin ${DEF_SRC_DIR}/imx-mkimage/iMX8M/ 415 cp ${1}/spl/u-boot-spl.bin ${DEF_SRC_DIR}/imx-mkimage/iMX8M/
416 cp ${1}/arch/arm/dts/${UBOOT_DTB} ${DEF_SRC_DIR}/imx-mkimage/iMX8M/ 416 cp ${1}/arch/arm/dts/${UBOOT_DTB} ${DEF_SRC_DIR}/imx-mkimage/iMX8M/
417 cp ${1}/tools/mkimage ${DEF_SRC_DIR}/imx-mkimage/iMX8M/mkimage_uboot 417 cp ${1}/tools/mkimage ${DEF_SRC_DIR}/imx-mkimage/iMX8M/mkimage_uboot
418 cd ${DEF_SRC_DIR}/imx-mkimage 418 cd ${DEF_SRC_DIR}/imx-mkimage
419 make SOC=iMX8MP flash_evk 419 make SOC=iMX8MP flash_evk
420 cp ${DEF_SRC_DIR}/imx-mkimage/iMX8M/flash.bin \ 420 cp ${DEF_SRC_DIR}/imx-mkimage/iMX8M/flash.bin \
421 ${DEF_SRC_DIR}/imx-mkimage/${G_UBOOT_NAME_FOR_EMMC} 421 ${DEF_SRC_DIR}/imx-mkimage/${G_UBOOT_NAME_FOR_EMMC}
422 cp ${G_UBOOT_NAME_FOR_EMMC} ${2}/${G_UBOOT_NAME_FOR_EMMC} 422 cp ${G_UBOOT_NAME_FOR_EMMC} ${2}/${G_UBOOT_NAME_FOR_EMMC}
423 fi 423 fi
424 } 424 }
425 425
426 # clean U-Boot 426 # clean U-Boot
427 # $1 -- U-Boot dir path 427 # $1 -- U-Boot dir path
428 function clean_uboot() 428 function clean_uboot()
429 { 429 {
430 pr_info "Clean U-Boot" 430 pr_info "Clean U-Boot"
431 make ARCH=${ARCH_ARGS} -C ${1}/ mrproper 431 make ARCH=${ARCH_ARGS} -C ${1}/ mrproper
432 } 432 }
433 433
434 # verify the SD card 434 # verify the SD card
435 # $1 -- block device 435 # $1 -- block device
436 function check_sdcard() 436 function check_sdcard()
437 { 437 {
438 # Check that parameter is a valid block device 438 # Check that parameter is a valid block device
439 if [ ! -b "$1" ]; then 439 if [ ! -b "$1" ]; then
440 pr_error "$1 is not a valid block device, exiting" 440 pr_error "$1 is not a valid block device, exiting"
441 return 1 441 return 1
442 fi 442 fi
443 443
444 local dev=$(basename $1) 444 local dev=$(basename $1)
445 445
446 # Check that /sys/block/$dev exists 446 # Check that /sys/block/$dev exists
447 if [ ! -d /sys/block/$dev ]; then 447 if [ ! -d /sys/block/$dev ]; then
448 pr_error "Directory /sys/block/${dev} missing, exiting" 448 pr_error "Directory /sys/block/${dev} missing, exiting"
449 return 1 449 return 1
450 fi 450 fi
451 451
452 # Get device parameters 452 # Get device parameters
453 local removable=$(cat /sys/block/${dev}/removable) 453 local removable=$(cat /sys/block/${dev}/removable)
454 local block_size=$(cat /sys/class/block/${dev}/queue/physical_block_size) 454 local block_size=$(cat /sys/class/block/${dev}/queue/physical_block_size)
455 local size_bytes=$((${block_size}*$(cat /sys/class/block/${dev}/size))) 455 local size_bytes=$((${block_size}*$(cat /sys/class/block/${dev}/size)))
456 local size_gib=$(bc <<< "scale=1; ${size_bytes}/(1024*1024*1024)") 456 local size_gib=$(bc <<< "scale=1; ${size_bytes}/(1024*1024*1024)")
457 457
458 # Non removable SD card readers require additional check 458 # Non removable SD card readers require additional check
459 if [ "${removable}" != "1" ]; then 459 if [ "${removable}" != "1" ]; then
460 local drive=$(udisksctl info -b /dev/${dev}|grep "Drive:"|cut -d"'" -f 2) 460 local drive=$(udisksctl info -b /dev/${dev}|grep "Drive:"|cut -d"'" -f 2)
461 local mediaremovable=$(gdbus call --system --dest org.freedesktop.UDisks2 --object-path ${drive} \ 461 local mediaremovable=$(gdbus call --system --dest org.freedesktop.UDisks2 --object-path ${drive} \
462 --method org.freedesktop.DBus.Properties.Get org.freedesktop.UDisks2.Drive MediaRemovable) 462 --method org.freedesktop.DBus.Properties.Get org.freedesktop.UDisks2.Drive MediaRemovable)
463 if [[ "${mediaremovable}" = *"true"* ]]; then 463 if [[ "${mediaremovable}" = *"true"* ]]; then
464 removable=1 464 removable=1
465 fi 465 fi
466 fi 466 fi
467 467
468 # Check that device is either removable or loop 468 # Check that device is either removable or loop
469 if [ "$removable" != "1" -a $(stat -c '%t' /dev/$dev) != ${LOOP_MAJOR} ]; then 469 if [ "$removable" != "1" -a $(stat -c '%t' /dev/$dev) != ${LOOP_MAJOR} ]; then
470 pr_error "$1 is not a removable device, exiting" 470 pr_error "$1 is not a removable device, exiting"
471 return 1 471 return 1
472 fi 472 fi
473 473
474 # Check that device is attached 474 # Check that device is attached
475 if [ ${size_bytes} -eq 0 ]; then 475 if [ ${size_bytes} -eq 0 ]; then
476 pr_error "$1 is not attached, exiting" 476 pr_error "$1 is not attached, exiting"
477 return 1 477 return 1
478 fi 478 fi
479 479
480 pr_info "Device: ${LPARAM_BLOCK_DEVICE}, ${size_gib}GiB" 480 pr_info "Device: ${LPARAM_BLOCK_DEVICE}, ${size_gib}GiB"
481 echo "=============================================" 481 echo "============================================="
482 read -p "Press Enter to continue" 482 read -p "Press Enter to continue"
483 483
484 return 0 484 return 0
485 } 485 }
486 486
487 # make imx sdma firmware 487 # make imx sdma firmware
488 # $1 -- linux-firmware directory 488 # $1 -- linux-firmware directory
489 # $2 -- rootfs output dir 489 # $2 -- rootfs output dir
490 function make_imx_sdma_fw() { 490 function make_imx_sdma_fw() {
491 pr_info "Install imx sdma firmware" 491 pr_info "Install imx sdma firmware"
492 install -d ${2}/lib/firmware/imx/sdma 492 install -d ${2}/lib/firmware/imx/sdma
493 install -m 0644 ${1}/LICENSE.sdma_firmware ${2}/lib/firmware/ 493 install -m 0644 ${1}/LICENSE.sdma_firmware ${2}/lib/firmware/
494 } 494 }
495 495
496 ################ commands ################ 496 ################ commands ################
497 497
498 function cmd_make_deploy() 498 function cmd_make_deploy()
499 { 499 {
500 # get arm toolchain 500 # get arm toolchain
501 (( `ls ${G_CROSS_COMPILER_PATH} 2>/dev/null | wc -l` == 0 )) && { 501 (( `ls ${G_CROSS_COMPILER_PATH} 2>/dev/null | wc -l` == 0 )) && {
502 pr_info "Get and unpack cross compiler"; 502 pr_info "Get and unpack cross compiler";
503 get_remote_file ${G_EXT_CROSS_COMPILER_LINK} \ 503 get_remote_file ${G_EXT_CROSS_COMPILER_LINK} \
504 ${DEF_SRC_DIR}/${G_CROSS_COMPILER_ARCHIVE} 504 ${DEF_SRC_DIR}/${G_CROSS_COMPILER_ARCHIVE}
505 tar -xJf ${DEF_SRC_DIR}/${G_CROSS_COMPILER_ARCHIVE} \ 505 tar -xJf ${DEF_SRC_DIR}/${G_CROSS_COMPILER_ARCHIVE} \
506 -C ${G_TOOLS_PATH}/ 506 -C ${G_TOOLS_PATH}/
507 }; 507 };
508 508
509 # get U-Boot repository 509 # get U-Boot repository
510 (( `ls ${G_UBOOT_SRC_DIR} 2>/dev/null | wc -l` == 0 )) && { 510 (( `ls ${G_UBOOT_SRC_DIR} 2>/dev/null | wc -l` == 0 )) && {
511 pr_info "Get U-Boot repository"; 511 pr_info "Get U-Boot repository";
512 get_git_src ${G_UBOOT_GIT} ${G_UBOOT_BRANCH} \ 512 get_git_src ${G_UBOOT_GIT} ${G_UBOOT_BRANCH} \
513 ${G_UBOOT_SRC_DIR} ${G_UBOOT_REV} 513 ${G_UBOOT_SRC_DIR} ${G_UBOOT_REV}
514 }; 514 };
515 515
516 # get kernel repository 516 # get kernel repository
517 (( `ls ${G_LINUX_KERNEL_SRC_DIR} 2>/dev/null | wc -l` == 0 )) && { 517 (( `ls ${G_LINUX_KERNEL_SRC_DIR} 2>/dev/null | wc -l` == 0 )) && {
518 pr_info "Get kernel repository"; 518 pr_info "Get kernel repository";
519 get_git_src ${G_LINUX_KERNEL_GIT} ${G_LINUX_KERNEL_BRANCH} \ 519 get_git_src ${G_LINUX_KERNEL_GIT} ${G_LINUX_KERNEL_BRANCH} \
520 ${G_LINUX_KERNEL_SRC_DIR} ${G_LINUX_KERNEL_REV} 520 ${G_LINUX_KERNEL_SRC_DIR} ${G_LINUX_KERNEL_REV}
521 }; 521 };
522 if [ ! -z "${G_IMXBOOT_GIT}" ]; then 522 if [ ! -z "${G_IMXBOOT_GIT}" ]; then
523 # get IMXBoot Source repository 523 # get IMXBoot Source repository
524 (( `ls ${G_IMXBOOT_SRC_DIR} 2>/dev/null | wc -l` == 0 )) && { 524 (( `ls ${G_IMXBOOT_SRC_DIR} 2>/dev/null | wc -l` == 0 )) && {
525 pr_info "Get imx-boot"; 525 pr_info "Get imx-boot";
526 get_git_src ${G_IMXBOOT_GIT} \ 526 get_git_src ${G_IMXBOOT_GIT} \
527 ${G_IMXBOOT_BRACH} ${G_IMXBOOT_SRC_DIR} ${G_IMXBOOT_REV} 527 ${G_IMXBOOT_BRACH} ${G_IMXBOOT_SRC_DIR} ${G_IMXBOOT_REV}
528 # patch IMX boot for smarc-imx8mp 528 # patch IMX boot for smarc-imx8mp
529 if [ "${MACHINE}" = "smarcimx8mp4g" ] || 529 if [ "${MACHINE}" = "smarcimx8mp4g" ] ||
530 [ "${MACHINE}" = "smarcimx8mp6g" ]; then 530 [ "${MACHINE}" = "smarcimx8mp6g" ]; then
531 cd ${G_IMXBOOT_SRC_DIR} 531 cd ${G_IMXBOOT_SRC_DIR}
532 patch -p1 < ${G_EMBEDIAN_PATH}/${MACHINE}/imx-boot-tools/imx-boot/imx-mkimage-imx8m-soc.mak-add-smarc-imx8mp-support.patch 532 patch -p1 < ${G_EMBEDIAN_PATH}/${MACHINE}/imx-boot-tools/imx-boot/imx-mkimage-imx8m-soc.mak-add-smarc-imx8mp-support.patch
533 cd - 533 cd -
534 fi 534 fi
535 }; 535 };
536 fi 536 fi
537 537
538 # get imx-atf repository 538 # get imx-atf repository
539 if [ ! -z "${G_IMX_ATF_GIT}" ]; then 539 if [ ! -z "${G_IMX_ATF_GIT}" ]; then
540 (( `ls ${G_IMX_ATF_SRC_DIR} 2>/dev/null | wc -l` == 0 )) && { 540 (( `ls ${G_IMX_ATF_SRC_DIR} 2>/dev/null | wc -l` == 0 )) && {
541 pr_info "Get IMX ATF repository"; 541 pr_info "Get IMX ATF repository";
542 get_git_src ${G_IMX_ATF_GIT} ${G_IMX_ATF_BRANCH} \ 542 get_git_src ${G_IMX_ATF_GIT} ${G_IMX_ATF_BRANCH} \
543 ${G_IMX_ATF_SRC_DIR} ${G_IMX_ATF_REV} 543 ${G_IMX_ATF_SRC_DIR} ${G_IMX_ATF_REV}
544 }; 544 };
545 fi 545 fi
546 return 0 546 return 0
547 } 547 }
548 548
549 function cmd_make_rootfs() 549 function cmd_make_rootfs()
550 { 550 {
551 make_prepare; 551 make_prepare;
552 552
553 # make debian weston backend rootfs for imx8 family 553 # make debian weston backend rootfs for imx8 family
554 cd ${G_ROOTFS_DIR} 554 cd ${G_ROOTFS_DIR}
555 make_debian_weston_rootfs ${G_ROOTFS_DIR} 555 make_debian_weston_rootfs ${G_ROOTFS_DIR}
556 cd - 556 cd -
557 557
558 # pack full rootfs 558 # pack full rootfs
559 make_tarball ${G_ROOTFS_DIR} ${G_ROOTFS_TARBALL_PATH} 559 make_tarball ${G_ROOTFS_DIR} ${G_ROOTFS_TARBALL_PATH}
560 } 560 }
561 561
562 function cmd_make_uboot() 562 function cmd_make_uboot()
563 { 563 {
564 make_uboot ${G_UBOOT_SRC_DIR} ${PARAM_OUTPUT_DIR} 564 make_uboot ${G_UBOOT_SRC_DIR} ${PARAM_OUTPUT_DIR}
565 } 565 }
566 566
567 function cmd_make_kernel() 567 function cmd_make_kernel()
568 { 568 {
569 make_kernel ${G_CROSS_COMPILER_PATH}/${G_CROSS_COMPILER_PREFIX} \ 569 make_kernel ${G_CROSS_COMPILER_PATH}/${G_CROSS_COMPILER_PREFIX} \
570 ${G_LINUX_KERNEL_DEF_CONFIG} "${G_LINUX_DTB}" \ 570 ${G_LINUX_KERNEL_DEF_CONFIG} "${G_LINUX_DTB}" \
571 ${G_LINUX_KERNEL_SRC_DIR} ${PARAM_OUTPUT_DIR} 571 ${G_LINUX_KERNEL_SRC_DIR} ${PARAM_OUTPUT_DIR}
572 } 572 }
573 573
574 function cmd_make_kernel_header_deb() 574 function cmd_make_kernel_header_deb()
575 { 575 {
576 make_kernel_headers_package \ 576 make_kernel_headers_package \
577 ${G_CROSS_COMPILER_PATH}/${G_CROSS_COMPILER_PREFIX} \ 577 ${G_CROSS_COMPILER_PATH}/${G_CROSS_COMPILER_PREFIX} \
578 ${G_LINUX_KERNEL_DEF_CONFIG} ${G_LINUX_KERNEL_SRC_DIR} \ 578 ${G_LINUX_KERNEL_DEF_CONFIG} ${G_LINUX_KERNEL_SRC_DIR} \
579 ${PARAM_OUTPUT_DIR}/kernel-headers/kernel 579 ${PARAM_OUTPUT_DIR}/kernel-headers/kernel
580 580
581 } 581 }
582 582
583 function cmd_make_kmodules() 583 function cmd_make_kmodules()
584 { 584 {
585 rm -rf ${G_ROOTFS_DIR}/lib/modules/* 585 rm -rf ${G_ROOTFS_DIR}/lib/modules/*
586 586
587 make_kernel_modules ${G_CROSS_COMPILER_PATH}/${G_CROSS_COMPILER_PREFIX} \ 587 make_kernel_modules ${G_CROSS_COMPILER_PATH}/${G_CROSS_COMPILER_PREFIX} \
588 ${G_LINUX_KERNEL_DEF_CONFIG} ${G_LINUX_KERNEL_SRC_DIR} \ 588 ${G_LINUX_KERNEL_DEF_CONFIG} ${G_LINUX_KERNEL_SRC_DIR} \
589 ${G_ROOTFS_DIR} 589 ${G_ROOTFS_DIR}
590 590
591 install_kernel_modules ${G_CROSS_COMPILER_PATH}/${G_CROSS_COMPILER_PREFIX} \ 591 install_kernel_modules ${G_CROSS_COMPILER_PATH}/${G_CROSS_COMPILER_PREFIX} \
592 ${G_LINUX_KERNEL_DEF_CONFIG} \ 592 ${G_LINUX_KERNEL_DEF_CONFIG} \
593 ${G_LINUX_KERNEL_SRC_DIR} ${G_ROOTFS_DIR} 593 ${G_LINUX_KERNEL_SRC_DIR} ${G_ROOTFS_DIR}
594 } 594 }
595 595
596 function cmd_make_rfs_tar() 596 function cmd_make_rfs_tar()
597 { 597 {
598 # pack rootfs 598 # pack rootfs
599 make_tarball ${G_ROOTFS_DIR} ${G_ROOTFS_TARBALL_PATH} 599 make_tarball ${G_ROOTFS_DIR} ${G_ROOTFS_TARBALL_PATH}
600 } 600 }
601 601
602 function cmd_make_sdcard() 602 function cmd_make_sdcard()
603 { 603 {
604 make_weston_sdcard ${PARAM_BLOCK_DEVICE} ${PARAM_OUTPUT_DIR} 604 make_weston_sdcard ${PARAM_BLOCK_DEVICE} ${PARAM_OUTPUT_DIR}
605 } 605 }
606 606
607 function cmd_make_firmware() { 607 function cmd_make_firmware() {
608 make_imx_sdma_fw ${G_IMX_SDMA_FW_SRC_DIR} ${G_ROOTFS_DIR} 608 make_imx_sdma_fw ${G_IMX_SDMA_FW_SRC_DIR} ${G_ROOTFS_DIR}
609 } 609 }
610 610
611 function cmd_make_clean() 611 function cmd_make_clean()
612 { 612 {
613 # clean kernel, dtb, modules 613 # clean kernel, dtb, modules
614 clean_kernel ${G_LINUX_KERNEL_SRC_DIR} 614 clean_kernel ${G_LINUX_KERNEL_SRC_DIR}
615 615
616 # clean U-Boot 616 # clean U-Boot
617 clean_uboot ${G_UBOOT_SRC_DIR} 617 clean_uboot ${G_UBOOT_SRC_DIR}
618 618
619 # delete tmp dirs and etc 619 # delete tmp dirs and etc
620 pr_info "Delete tmp dir ${G_TMP_DIR}" 620 pr_info "Delete tmp dir ${G_TMP_DIR}"
621 rm -rf ${G_TMP_DIR} 621 rm -rf ${G_TMP_DIR}
622 622
623 pr_info "Delete rootfs dir ${G_ROOTFS_DIR}" 623 pr_info "Delete rootfs dir ${G_ROOTFS_DIR}"
624 rm -rf ${G_ROOTFS_DIR} 624 rm -rf ${G_ROOTFS_DIR}
625 } 625 }
626 626
627 ################ main function ################ 627 ################ main function ################
628 628
629 # test for root access support 629 # test for root access support
630 [ "$PARAM_CMD" != "deploy" ] && [ "$PARAM_CMD" != "bootloader" ] && 630 [ "$PARAM_CMD" != "deploy" ] && [ "$PARAM_CMD" != "bootloader" ] &&
631 [ "$PARAM_CMD" != "kernel" ] && [ "$PARAM_CMD" != "modules" ] && 631 [ "$PARAM_CMD" != "kernel" ] && [ "$PARAM_CMD" != "modules" ] &&
632 [ ${EUID} -ne 0 ] && { 632 [ ${EUID} -ne 0 ] && {
633 pr_error "this command must be run as root (or sudo/su)" 633 pr_error "this command must be run as root (or sudo/su)"
634 exit 1; 634 exit 1;
635 }; 635 };
636 636
637 pr_info "Command: \"$PARAM_CMD\" start..." 637 pr_info "Command: \"$PARAM_CMD\" start..."
638 638
639 make_prepare 639 make_prepare
640 640
641 case $PARAM_CMD in 641 case $PARAM_CMD in
642 deploy ) 642 deploy )
643 cmd_make_deploy 643 cmd_make_deploy
644 ;; 644 ;;
645 rootfs ) 645 rootfs )
646 cmd_make_rootfs 646 cmd_make_rootfs
647 ;; 647 ;;
648 bootloader ) 648 bootloader )
649 cmd_make_uboot 649 cmd_make_uboot
650 ;; 650 ;;
651 kernel ) 651 kernel )
652 cmd_make_kernel 652 cmd_make_kernel
653 ;; 653 ;;
654 modules ) 654 modules )
655 cmd_make_kmodules 655 cmd_make_kmodules
656 ;; 656 ;;
657 kernelheaders ) 657 kernelheaders )
658 cmd_make_kernel_header_deb 658 cmd_make_kernel_header_deb
659 ;; 659 ;;
660 firmware ) 660 firmware )
661 cmd_make_firmware 661 cmd_make_firmware
662 ;; 662 ;;
663 663
664 sdcard ) 664 sdcard )
665 cmd_make_sdcard 665 cmd_make_sdcard
666 ;; 666 ;;
667 rtar ) 667 rtar )
668 cmd_make_rfs_tar 668 cmd_make_rfs_tar
669 ;; 669 ;;
670 all ) 670 all )
671 cmd_make_uboot && 671 cmd_make_uboot &&
672 cmd_make_kernel && 672 cmd_make_kernel &&
673 cmd_make_kmodules && 673 cmd_make_kmodules &&
674 cmd_make_kernel_header_deb && 674 cmd_make_kernel_header_deb &&
675 cmd_make_rootfs 675 cmd_make_rootfs
676 ;; 676 ;;
677 clean ) 677 clean )
678 cmd_make_clean 678 cmd_make_clean
679 ;; 679 ;;
680 * ) 680 * )
681 pr_error "Invalid input command: \"${PARAM_CMD}\""; 681 pr_error "Invalid input command: \"${PARAM_CMD}\"";
682 ;; 682 ;;
683 esac 683 esac
684 684
685 echo 685 echo
686 pr_info "Command: \"$PARAM_CMD\" end." 686 pr_info "Command: \"$PARAM_CMD\" end."
687 echo 687 echo
688 688