Commit f54c5688a47c14f9dfe35b77da02a662e3516011

Authored by Eric Lee
1 parent 632c1e3a66

Script typo fixed

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

scripts/emb_mk_yocto_sdcard/emb-create-yocto-emmc.sh
1 #!/bin/bash -e 1 #!/bin/bash -e
2 2
3 blue_underlined_bold_echo() 3 blue_underlined_bold_echo()
4 { 4 {
5 echo -e "\e[34m\e[4m\e[1m$@\e[0m" 5 echo -e "\e[34m\e[4m\e[1m$@\e[0m"
6 } 6 }
7 7
8 blue_bold_echo() 8 blue_bold_echo()
9 { 9 {
10 echo -e "\e[34m\e[1m$@\e[0m" 10 echo -e "\e[34m\e[1m$@\e[0m"
11 } 11 }
12 12
13 red_bold_echo() 13 red_bold_echo()
14 { 14 {
15 echo -e "\e[31m\e[1m$@\e[0m" 15 echo -e "\e[31m\e[1m$@\e[0m"
16 } 16 }
17 17
18 IMGS_PATH=/opt/images/Yocto 18 IMGS_PATH=/opt/images/Yocto
19 UBOOT_IMAGE=imx-boot-sd.bin 19 UBOOT_IMAGE=imx-boot-sd.bin
20 KERNEL_IMAGE=Image 20 KERNEL_IMAGE=Image
21 ROOTFS_IMAGE=rootfs.tar.bz2 21 ROOTFS_IMAGE=rootfs.tar.bz2
22 BOOTLOADER_RESERVED_SIZE=4 22 BOOTLOADER_RESERVED_SIZE=4
23 PART1_SIZE=48 23 PART1_SIZE=48
24 BOOTLOADER_OFFSET=33 24 BOOTLOADER_OFFSET=33
25 DISPLAY=-hdmi 25 DISPLAY=-hdmi
26 PART=p 26 PART=p
27 BOOTPART=1 27 BOOTPART=1
28 ROOTFSPART=2 28 ROOTFSPART=2
29 BOOTDIR=/boot 29 BOOTDIR=/boot
30 30
31 check_board() 31 check_board()
32 { 32 {
33 if grep -q "i.MX8MQ" /sys/devices/soc0/soc_id; then 33 if grep -q "i.MX8MQ" /sys/devices/soc0/soc_id; then
34 BOARD=smarc-imx8mq 34 BOARD=smarc-imx8mq
35 DTB_PREFIX=imx8mq-smarc 35 DTB_PREFIX=imx8mq-smarc
36 BLOCK=mmcblk0 36 BLOCK=mmcblk0
37 37
38 if [[ $DISPLAY != "-dcss-lvds" && $DISPLAY != "-hdmi" && \ 38 if [[ $DISPLAY != "-dcss-lvds" && $DISPLAY != "-hdmi" && \
39 $DISPLAY != "-lcdif-lvds" && $DISPLAY != "-dp" && \ 39 $DISPLAY != "-lcdif-lvds" && $DISPLAY != "-dp" && \
40 $DISPLAY != "-dual-display" && $DISPLAY != "" ]]; then 40 $DISPLAY != "-dual-display" && $DISPLAY != "" ]]; then
41 red_bold_echo "ERROR: invalid display, should be dcss-lvds, hdmi, lcdif-lvds, dual-display or empty" 41 red_bold_echo "ERROR: invalid display, should be dcss-lvds, hdmi, lcdif-lvds, dual-display or empty"
42 exit 1 42 exit 1
43 fi 43 fi
44 else 44 else
45 red_bold_echo "ERROR: Unsupported board" 45 red_bold_echo "ERROR: Unsupported board"
46 exit 1 46 exit 1
47 fi 47 fi
48 48
49 49
50 if [[ ! -b /dev/${BLOCK} ]] ; then 50 if [[ ! -b /dev/${BLOCK} ]] ; then
51 red_bold_echo "ERROR: Can't find eMMC device (/dev/${BLOCK})." 51 red_bold_echo "ERROR: Can't find eMMC device (/dev/${BLOCK})."
52 red_bold_echo "Please verify you are using the correct options for your SMARC Module." 52 red_bold_echo "Please verify you are using the correct options for your SMARC Module."
53 exit 1 53 exit 1
54 fi 54 fi
55 } 55 }
56 56
57 check_images() 57 check_images()
58 { 58 {
59 if [[ ! -f $IMGS_PATH/$UBOOT_IMAGE ]] ; then 59 if [[ ! -f $IMGS_PATH/$UBOOT_IMAGE ]] ; then
60 red_bold_echo "ERROR: \"$IMGS_PATH/$UBOOT_IMAGE\" does not exist" 60 red_bold_echo "ERROR: \"$IMGS_PATH/$UBOOT_IMAGE\" does not exist"
61 exit 1 61 exit 1
62 fi 62 fi
63 63
64 if [[ ! -f $IMGS_PATH/$KERNEL_IMAGE ]] ; then 64 if [[ ! -f $IMGS_PATH/$KERNEL_IMAGE ]] ; then
65 red_bold_echo "ERROR: \"$IMGS_PATH/$KERNEL_IMAGE\" does not exist" 65 red_bold_echo "ERROR: \"$IMGS_PATH/$KERNEL_IMAGE\" does not exist"
66 exit 1 66 exit 1
67 fi 67 fi
68 68
69 if [[ ! -f $IMGS_PATH/${DTB_PREFIX}${DISPLAY}.dtb ]] ; then 69 if [[ ! -f $IMGS_PATH/${DTB_PREFIX}${DISPLAY}.dtb ]] ; then
70 red_bold_echo "ERROR: \"$IMGS_PATH/${DTB_PREFIX}${DISPLAY}.dtb\" does not exist" 70 red_bold_echo "ERROR: \"$IMGS_PATH/${DTB_PREFIX}${DISPLAY}.dtb\" does not exist"
71 exit 1 71 exit 1
72 fi 72 fi
73 73
74 if [[ ! -f $IMGS_PATH/uEnv.txt ]] ; then 74 if [[ ! -f $IMGS_PATH/uEnv.txt ]] ; then
75 red_bold_echo "ERROR: \"$IMGS_PATH/uEnv.txt\" does not exist" 75 red_bold_echo "ERROR: \"$IMGS_PATH/uEnv.txt\" does not exist"
76 exit 1 76 exit 1
77 fi 77 fi
78 78
79 if [[ ! -f $IMGS_PATH/$ROOTFS_IMAGE ]] ; then 79 if [[ ! -f $IMGS_PATH/$ROOTFS_IMAGE ]] ; then
80 red_bold_echo "ERROR: \"$IMGS_PATH/$ROOTFS_IMAGE\" does not exist" 80 red_bold_echo "ERROR: \"$IMGS_PATH/$ROOTFS_IMAGE\" does not exist"
81 exit 1 81 exit 1
82 fi 82 fi
83 } 83 }
84 84
85 delete_emmc() 85 delete_emmc()
86 { 86 {
87 echo 87 echo
88 blue_underlined_bold_echo "Deleting current partitions" 88 blue_underlined_bold_echo "Deleting current partitions"
89 89
90 umount /dev/${BLOCK}${PART}* 2>/dev/null || true 90 umount /dev/${BLOCK}${PART}* 2>/dev/null || true
91 91
92 for ((i=1; i<=16; i++)); do 92 for ((i=1; i<=16; i++)); do
93 if [[ -e /dev/${BLOCK}${PART}${i} ]]; then 93 if [[ -e /dev/${BLOCK}${PART}${i} ]]; then
94 dd if=/dev/zero of=/dev/${BLOCK}${PART}${i} bs=1M count=1 2>/dev/null || true 94 dd if=/dev/zero of=/dev/${BLOCK}${PART}${i} bs=1M count=1 2>/dev/null || true
95 fi 95 fi
96 done 96 done
97 sync 97 sync
98 98
99 dd if=/dev/zero of=/dev/${BLOCK} bs=1M count=${BOOTLOADER_RESERVED_SIZE} 99 dd if=/dev/zero of=/dev/${BLOCK} bs=1M count=${BOOTLOADER_RESERVED_SIZE}
100 100
101 sync; sleep 1 101 sync; sleep 1
102 } 102 }
103 103
104 create_emmc_parts() 104 create_emmc_parts()
105 { 105 {
106 echo 106 echo
107 blue_underlined_bold_echo "Creating new partitions" 107 blue_underlined_bold_echo "Creating new partitions"
108 108
109 SECT_SIZE_BYTES=`cat /sys/block/${BLOCK}/queue/hw_sector_size` 109 SECT_SIZE_BYTES=`cat /sys/block/${BLOCK}/queue/hw_sector_size`
110 PART1_FIRST_SECT=$(($BOOTLOADER_RESERVED_SIZE * 1024 * 1024 / $SECT_SIZE_BYTES)) 110 PART1_FIRST_SECT=$(($BOOTLOADER_RESERVED_SIZE * 1024 * 1024 / $SECT_SIZE_BYTES))
111 PART1_END_SECT=$((($BOOTLOADER_RESERVED_SIZE + $PART1_SIZE) * 1024 * 1024 / $SECT_SIZE_BYTES)) 111 PART1_END_SECT=$((($BOOTLOADER_RESERVED_SIZE + $PART1_SIZE) * 1024 * 1024 / $SECT_SIZE_BYTES))
112 PART2_FIRST_SECT=`expr ${PART1_END_SECT} + 1` 112 PART2_FIRST_SECT=`expr ${PART1_END_SECT} + 1`
113 113
114 (echo n; echo p; echo $BOOTPART; echo $PART1_FIRST_SECT; \ 114 (echo n; echo p; echo $BOOTPART; echo $PART1_FIRST_SECT; \
115 echo $PART1_END_SECT; echo n; echo p; echo $ROOTFSPART; \ 115 echo $PART1_END_SECT; echo n; echo p; echo $ROOTFSPART; \
116 echo $PART2_FIRST_SECT; echo; \ 116 echo $PART2_FIRST_SECT; echo; \
117 echo p; echo w) | fdisk -u /dev/${BLOCK} > /dev/null 117 echo p; echo w) | fdisk -u /dev/${BLOCK} > /dev/null
118 118
119 sync; sleep 1 119 sync; sleep 1
120 fdisk -u -l /dev/${BLOCK} 120 fdisk -u -l /dev/${BLOCK}
121 } 121 }
122 122
123 format_emmc_parts() 123 format_emmc_parts()
124 { 124 {
125 echo 125 echo
126 blue_underlined_bold_echo "Formatting partitions" 126 blue_underlined_bold_echo "Formatting partitions"
127 127
128 mkfs.vfat -F 16 /dev/${BLOCK}${PART}${BOOTPART} -n boot 128 mkfs.vfat -F 16 /dev/${BLOCK}${PART}${BOOTPART} -n boot
129 mkfs.ext4 /dev/${BLOCK}${PART}${ROOTFSPART} -L rootfs 129 mkfs.ext4 /dev/${BLOCK}${PART}${ROOTFSPART} -L rootfs
130 130
131 sync; sleep 1 131 sync; sleep 1
132 } 132 }
133 133
134 install_bootloader_to_emmc() 134 install_bootloader_to_emmc()
135 { 135 {
136 echo 136 echo
137 blue_underlined_bold_echo "Installing booloader" 137 blue_underlined_bold_echo "Installing booloader"
138 138
139 dd if=${IMGS_PATH}/${UBOOT_IMAGE} of=/dev/${BLOCK} bs=1K seek=${BOOTLOADER_OFFSET} 139 dd if=${IMGS_PATH}/${UBOOT_IMAGE} of=/dev/${BLOCK} bs=1K seek=${BOOTLOADER_OFFSET}
140 sync 140 sync
141 } 141 }
142 142
143 install_kernel_to_emmc() 143 install_kernel_to_emmc()
144 { 144 {
145 echo 145 echo
146 blue_underlined_bold_echo "Installing kernel" 146 blue_underlined_bold_echo "Installing kernel"
147 147
148 MOUNTDIR=/run/media/${BLOCK}${PART}${BOOTPART} 148 MOUNTDIR=/run/media/${BLOCK}${PART}${BOOTPART}
149 mkdir -p ${MOUNTDIR} 149 mkdir -p ${MOUNTDIR}
150 mount /dev/${BLOCK}${PART}${BOOTPART} ${MOUNTDIR} 150 mount /dev/${BLOCK}${PART}${BOOTPART} ${MOUNTDIR}
151 mkdir -p ${MOUNTDIR}/dtbs/ 151 mkdir -p ${MOUNTDIR}/dtbs/
152 cp -v ${IMGS_PATH}/${KERNEL_IMAGE} ${MOUNTDIR} 152 cp -v ${IMGS_PATH}/${KERNEL_IMAGE} ${MOUNTDIR}
153 cp -v ${IMGS_PATH}/${DTB_PREFIX}${DISPLAY}.dtb ${MOUNTDIR}/dtbs/imx8mq-smarc.dtb 153 cp -v ${IMGS_PATH}/${DTB_PREFIX}${DISPLAY}.dtb ${MOUNTDIR}/dtbs/imx8mq-smarc.dtb
154 cp -v ${IMGS_PATH}/uEnv.txt ${MOUNTDIR} 154 cp -v ${IMGS_PATH}/uEnv.txt ${MOUNTDIR}
155 155
156 echo 156 echo
157 sync 157 sync
158 158
159 umount ${MOUNTDIR} 159 umount ${MOUNTDIR}
160 } 160 }
161 161
162 install_rootfs_to_emmc() 162 install_rootfs_to_emmc()
163 { 163 {
164 echo 164 echo
165 blue_underlined_bold_echo "Installing rootfs" 165 blue_underlined_bold_echo "Installing rootfs"
166 166
167 MOUNTDIR=/run/media/${BLOCK}${PART}${ROOTFSPART} 167 MOUNTDIR=/run/media/${BLOCK}${PART}${ROOTFSPART}
168 mkdir -p ${MOUNTDIR} 168 mkdir -p ${MOUNTDIR}
169 mount /dev/${BLOCK}${PART}${ROOTFSPART} ${MOUNTDIR} 169 mount /dev/${BLOCK}${PART}${ROOTFSPART} ${MOUNTDIR}
170 170
171 printf "Extracting files" 171 printf "Extracting files"
172 tar --warning=no-timestamp -jxvf ${IMGS_PATH}/${ROOTFS_IMAGE} -C ${MOUNTDIR} --checkpoint=.1200 172 tar --warning=no-timestamp -jxvf ${IMGS_PATH}/${ROOTFS_IMAGE} -C ${MOUNTDIR} --checkpoint=.1200
173 173
174 # Create DTB symlink 174 # Create DTB symlink
175 (cd ${MOUNTDIR}/${BOOTDIR}; ln -fs ${DTB_PREFIX}${DISPLAY}.dtb ${DTB_PREFIX}.dtb) 175 (cd ${MOUNTDIR}/${BOOTDIR}; ln -fs ${DTB_PREFIX}${DISPLAY}.dtb ${DTB_PREFIX}.dtb)
176 176
177 echo 177 echo
178 sync 178 sync
179 179
180 umount ${MOUNTDIR} 180 umount ${MOUNTDIR}
181 } 181 }
182 182
183 stop_udev() 183 stop_udev()
184 { 184 {
185 if [ -f /lib/systemd/system/systemd-udevd.service ]; then 185 if [ -f /lib/systemd/system/systemd-udevd.service ]; then
186 systemctl -q mask --runtime systemd-udevd 186 systemctl -q mask --runtime systemd-udevd
187 systemctl -q stop systemd-udevd 187 systemctl -q stop systemd-udevd
188 fi 188 fi
189 } 189 }
190 190
191 start_udev() 191 start_udev()
192 { 192 {
193 if [ -f /lib/systemd/system/systemd-udevd.service ]; then 193 if [ -f /lib/systemd/system/systemd-udevd.service ]; then
194 systemctl -q unmask --runtime systemd-udevd 194 systemctl -q unmask --runtime systemd-udevd
195 systemctl -q start systemd-udevd 195 systemctl -q start systemd-udevd
196 fi 196 fi
197 } 197 }
198 198
199 usage() 199 usage()
200 { 200 {
201 echo 201 echo
202 echo "This script installs Yocto Rootfs on the SMARC-iMX8MQ's internal eMMC storage device" 202 echo "This script installs Yocto Rootfs on the SMARC-iMX8MQ's internal eMMC storage device"
203 echo 203 echo
204 echo " Usage: $(basename $0) <option>" 204 echo " Usage: $(basename $0) <option>"
205 echo 205 echo
206 echo " options:" 206 echo " options:"
207 echo " -h show help message" 207 echo " -h show help message"
208 echo " -d <lvds|hdmi|dual-display> set display type, default is lvds" 208 echo " -d <lvds|hdmi|dual-display> set display type, default is lvds"
209 echo 209 echo
210 } 210 }
211 211
212 finish() 212 finish()
213 { 213 {
214 echo 214 echo
215 blue_bold_echo "Yocto Sumo installed successfully" 215 blue_bold_echo "Yocto Gatesgarth installed successfully"
216 exit 0 216 exit 0
217 } 217 }
218 218
219 ################################################# 219 #################################################
220 # Execution starts here # 220 # Execution starts here #
221 ################################################# 221 #################################################
222 222
223 if [[ $EUID != 0 ]] ; then 223 if [[ $EUID != 0 ]] ; then
224 red_bold_echo "This script must be run with super-user privileges" 224 red_bold_echo "This script must be run with super-user privileges"
225 exit 1 225 exit 1
226 fi 226 fi
227 227
228 blue_underlined_bold_echo "*** Embedian SMARC-iMX8MQ on-module eMMC Recovery ***" 228 blue_underlined_bold_echo "*** Embedian SMARC-iMX8MQ on-module eMMC Recovery ***"
229 echo 229 echo
230 230
231 while getopts d:h OPTION; 231 while getopts d:h OPTION;
232 do 232 do
233 case $OPTION in 233 case $OPTION in
234 d) 234 d)
235 DISPLAY=$OPTARG 235 DISPLAY=$OPTARG
236 ;; 236 ;;
237 h) 237 h)
238 usage 238 usage
239 exit 0 239 exit 0
240 ;; 240 ;;
241 *) 241 *)
242 usage 242 usage
243 exit 1 243 exit 1
244 ;; 244 ;;
245 esac 245 esac
246 done 246 done
247 247
248 printf "Board: " 248 printf "Board: "
249 blue_bold_echo $BOARD 249 blue_bold_echo $BOARD
250 250
251 printf "Installing to internal storage device: " 251 printf "Installing to internal storage device: "
252 blue_bold_echo eMMC 252 blue_bold_echo eMMC
253 253
254 check_board 254 check_board
255 check_images 255 check_images
256 stop_udev 256 stop_udev
257 delete_emmc 257 delete_emmc
258 create_emmc_parts 258 create_emmc_parts
259 format_emmc_parts 259 format_emmc_parts
260 install_bootloader_to_emmc 260 install_bootloader_to_emmc
261 install_kernel_to_emmc 261 install_kernel_to_emmc
262 install_rootfs_to_emmc 262 install_rootfs_to_emmc
263 start_udev 263 start_udev
264 finish 264 finish
265 265