@@ -45,6 +45,7 @@ function show_help() {
45
45
echo
46
46
echo " Options:"
47
47
echo " -h, --help Display this information"
48
+ echo " --cpu Comma separated list of CPU architectures. Like arm or arm64"
48
49
echo " --tizen-sdk-path Set directory for Tizen SDK installation. Default is $TIZEN_SDK_ROOT "
49
50
echo " --tizen-sdk-data-path Set directory for Tizen SDK runtime data. Default is $TIZEN_SDK_DATA_PATH "
50
51
echo " --install-dependencies This option installs all required dependencies"
@@ -141,15 +142,12 @@ function cleanup() {
141
142
}
142
143
143
144
# ------------------------------------------------------------------------------
144
- # Function for installing Tizen SDK.
145
- function install_tizen_sdk() {
146
-
145
+ # Function for installing common packages for Tizen SDK.
146
+ function install_tizen_sdk_common() {
147
147
mkdir -p " $TIZEN_SDK_ROOT " || return
148
148
149
149
info " Tizen SDK installation directory: $TIZEN_SDK_ROOT "
150
150
151
- TIZEN_SDK_SYSROOT=" $TIZEN_SDK_ROOT /platforms/tizen-$TIZEN_VERSION /tizen/rootstraps/tizen-$TIZEN_VERSION -device.core"
152
-
153
151
cd " $TMP_DIR " || return
154
152
155
153
# Get Tizen Studio CLI
@@ -162,9 +160,24 @@ function install_tizen_sdk() {
162
160
' certificate-generator_0.1.4_ubuntu-64.zip'
163
161
' new-common-cli_2.5.64_ubuntu-64.zip'
164
162
' new-native-cli_2.5.64_ubuntu-64.zip'
165
- ' sdb_4.2.23_ubuntu-64.zip' )
163
+ ' sdb_4.2.23_ubuntu-64.zip'
164
+ " tizen-$TIZEN_VERSION -core-add-ons_*_ubuntu-64.zip" )
166
165
download " $URL " " ${PKG_ARR[@]} "
167
166
167
+ # Tizen Developer Platform Certificate
168
+ URL=" http://download.tizen.org/sdk/extensions/Tizen_IoT_Headless/binary/"
169
+ # Tizen site does not have this package available in version 8.0.
170
+ # Certificates are the same for 7.0 and 8.0, though.
171
+ PKG_ARR=(
172
+ " 7.0-iot-things-add-ons_*_ubuntu-64.zip" )
173
+ download " $URL " " ${PKG_ARR[@]} "
174
+ }
175
+
176
+ # Function for installing Tizen SDK (arm).
177
+ function install_tizen_sdk_arm() {
178
+
179
+ TIZEN_SDK_SYSROOT=" $TIZEN_SDK_ROOT /platforms/tizen-$TIZEN_VERSION /tizen/rootstraps/tizen-$TIZEN_VERSION -device.core"
180
+
168
181
# Get toolchain
169
182
info " Downloading Tizen toolchain..."
170
183
@@ -182,7 +195,6 @@ function install_tizen_sdk() {
182
195
# Different versions of Tizen have different rootstrap versions
183
196
URL=" http://download.tizen.org/sdk/tizenstudio/official/binary/"
184
197
PKG_ARR=(
185
- " tizen-$TIZEN_VERSION -core-add-ons_*_ubuntu-64.zip"
186
198
" tizen-$TIZEN_VERSION -rs-device.core_*_ubuntu-64.zip" )
187
199
download " $URL " " ${PKG_ARR[@]} "
188
200
@@ -251,12 +263,113 @@ function install_tizen_sdk() {
251
263
PKG_ARR=()
252
264
download " $URL " " ${PKG_ARR[@]} "
253
265
254
- # Tizen Developer Platform Certificate
255
- URL=" http://download.tizen.org/sdk/extensions/Tizen_IoT_Headless/binary/"
256
- # Tizen site does not have this package available in version 8.0.
257
- # Certificates are the same for 7.0 and 8.0, though.
266
+ # Install all
267
+ info " Installing Tizen SDK..."
268
+
269
+ unzip -o ' *.zip'
270
+ cp -rf data/* " $TIZEN_SDK_ROOT "
271
+
272
+ unrpm * .rpm
273
+ cp -rf lib usr " $TIZEN_SDK_SYSROOT "
274
+
275
+ # Make symbolic links relative
276
+ find " $TIZEN_SDK_SYSROOT /usr/lib" -maxdepth 1 -type l | while IFS= read -r LNK; do
277
+ ln -sf " $( basename " $( readlink " $LNK " ) " ) " " $LNK "
278
+ done
279
+
280
+ ln -sf ../../lib/libcap.so.2 " $TIZEN_SDK_SYSROOT /usr/lib/libcap.so"
281
+ ln -sf openssl3.pc " $TIZEN_SDK_SYSROOT /usr/lib/pkgconfig/openssl.pc"
282
+ }
283
+
284
+ # Function for installing Tizen SDK (arm64).
285
+ function install_tizen_sdk_arm64() {
286
+
287
+ TIZEN_SDK_SYSROOT=" $TIZEN_SDK_ROOT /platforms/tizen-$TIZEN_VERSION /tizen/rootstraps/tizen-$TIZEN_VERSION -device64.core"
288
+
289
+ # Get toolchain
290
+ info " Downloading Tizen toolchain..."
291
+
292
+ # Download
293
+ URL=" http://download.tizen.org/sdk/tizenstudio/official/binary/"
258
294
PKG_ARR=(
259
- " 7.0-iot-things-add-ons_*_ubuntu-64.zip" )
295
+ " cross-aarch64-gcc-9.2_0.1.9_ubuntu-64.zip"
296
+ " sbi-toolchain-gcc-9.2.cpp.app_2.2.16_ubuntu-64.zip" )
297
+ download " $URL " " ${PKG_ARR[@]} "
298
+
299
+ # Get Tizen sysroot
300
+ info " Downloading Tizen sysroot..."
301
+
302
+ # Base sysroot
303
+ # Different versions of Tizen have different rootstrap versions
304
+ URL=" http://download.tizen.org/sdk/tizenstudio/official/binary/"
305
+ PKG_ARR=(
306
+ " tizen-$TIZEN_VERSION -rs-device64.core_*_ubuntu-64.zip" )
307
+ download " $URL " " ${PKG_ARR[@]} "
308
+
309
+ # Base packages
310
+ URL=" http://download.tizen.org/releases/milestone/TIZEN/Tizen-$TIZEN_VERSION /Tizen-$TIZEN_VERSION -Base/latest/repos/standard/packages/aarch64/"
311
+ PKG_ARR=(
312
+ ' iniparser-*.aarch64.rpm'
313
+ ' libblkid-devel-*.aarch64.rpm'
314
+ ' libcap-*.aarch64.rpm'
315
+ ' libffi-devel-*.aarch64.rpm'
316
+ ' liblzma-*.aarch64.rpm'
317
+ ' libmount-devel-*.aarch64.rpm'
318
+ ' libncurses6-*.aarch64.rpm'
319
+ ' libreadline-*.aarch64.rpm'
320
+ ' libuuid-*.aarch64.rpm'
321
+ ' pcre-devel-*.aarch64.rpm'
322
+ ' readline-devel-*.aarch64.rpm'
323
+ ' xdgmime-*.aarch64.rpm' )
324
+ download " $URL " " ${PKG_ARR[@]} "
325
+
326
+ # Unified packages
327
+ URL=" http://download.tizen.org/releases/milestone/TIZEN/Tizen-$TIZEN_VERSION /Tizen-$TIZEN_VERSION -Unified/latest/repos/standard/packages/aarch64/"
328
+ PKG_ARR=(
329
+ ' app-core-common-*.rpm'
330
+ ' aul-0*.aarch64.rpm'
331
+ ' aul-devel-*.aarch64.rpm'
332
+ ' bluetooth-frwk-0*.aarch64.rpm'
333
+ ' bundle-0*.aarch64.rpm'
334
+ ' bundle-devel-*.aarch64.rpm'
335
+ ' buxton2-*.aarch64.rpm'
336
+ ' capi-network-bluetooth-0*.aarch64.rpm'
337
+ ' capi-network-bluetooth-devel-*.aarch64.rpm'
338
+ ' capi-network-nsd-*.aarch64.rpm'
339
+ ' capi-network-thread-*.aarch64.rpm'
340
+ ' capi-system-peripheral-io-*.aarch64.rpm'
341
+ ' capi-system-peripheral-io-devel-*.aarch64.rpm'
342
+ ' capi-system-resource-1*.aarch64.rpm'
343
+ ' cynara-devel-*.aarch64.rpm'
344
+ ' dbus-1*.aarch64.rpm'
345
+ ' dbus-devel-*.aarch64.rpm'
346
+ ' dbus-libs-1*.aarch64.rpm'
347
+ ' glib2-devel-2*.aarch64.rpm'
348
+ ' hal-api-common-*.aarch64.rpm'
349
+ ' hal-api-sensor-*.aarch64.rpm'
350
+ ' json-glib-devel-*.aarch64.rpm'
351
+ ' libcynara-client-*.aarch64.rpm'
352
+ ' libcynara-commons-*.aarch64.rpm'
353
+ ' libdns_sd-*.aarch64.rpm'
354
+ ' libjson-glib-*.aarch64.rpm'
355
+ ' libnsd-dns-sd-*.aarch64.rpm'
356
+ ' libsessiond-0*.aarch64.rpm'
357
+ ' libsystemd-*.aarch64.rpm'
358
+ ' libtzplatform-config-*.aarch64.rpm'
359
+ ' parcel-0*.aarch64.rpm'
360
+ ' parcel-devel-*.aarch64.rpm'
361
+ ' pkgmgr-info-*.aarch64.rpm'
362
+ ' sensord-*.aarch64.rpm'
363
+ ' sensord-devel-*.aarch64.rpm'
364
+ ' sensord-dummy-*.aarch64.rpm'
365
+ ' vconf-compat-*.aarch64.rpm'
366
+ ' vconf-internal-keys-devel-*.aarch64.rpm'
367
+ )
368
+ download " $URL " " ${PKG_ARR[@]} "
369
+
370
+ # Unified packages (snapshots)
371
+ URL=" http://download.tizen.org/snapshots/TIZEN/Tizen/Tizen-Unified/latest/repos/standard/packages/aarch64/"
372
+ PKG_ARR=()
260
373
download " $URL " " ${PKG_ARR[@]} "
261
374
262
375
# Install all
@@ -266,8 +379,18 @@ function install_tizen_sdk() {
266
379
cp -rf data/* " $TIZEN_SDK_ROOT "
267
380
268
381
unrpm * .rpm
269
- cp -rf lib usr " $TIZEN_SDK_SYSROOT "
382
+ cp -rf lib64 usr " $TIZEN_SDK_SYSROOT "
383
+
384
+ # Make symbolic links relative
385
+ find " $TIZEN_SDK_SYSROOT /usr/lib64" -maxdepth 1 -type l | while IFS= read -r LNK; do
386
+ ln -sf " $( basename " $( readlink " $LNK " ) " ) " " $LNK "
387
+ done
270
388
389
+ ln -sf ../../lib64/libcap.so.2 " $TIZEN_SDK_SYSROOT /usr/lib64/libcap.so"
390
+ ln -sf openssl3.pc " $TIZEN_SDK_SYSROOT /usr/lib64/pkgconfig/openssl.pc"
391
+ }
392
+
393
+ function install_tizen_sdk_finalize() {
271
394
# Install secret tool or not
272
395
if (" $SECRET_TOOL " ); then
273
396
info " Overriding secret tool..."
@@ -279,28 +402,30 @@ function install_tizen_sdk() {
279
402
echo " TIZEN_SDK_DATA_PATH=$TIZEN_SDK_DATA_PATH " >> " $TIZEN_SDK_ROOT /sdk.info"
280
403
ln -sf " $TIZEN_SDK_DATA_PATH /.tizen-cli-config" " $TIZEN_SDK_ROOT /tools/.tizen-cli-config"
281
404
282
- # Use Tizen developer platform certificate as default
405
+ # Use Tizen developer platform certificate as defaults
283
406
cp " $TIZEN_SDK_ROOT " /tools/certificate-generator/certificates/distributor/sdk-platform/* \
284
407
" $TIZEN_SDK_ROOT " /tools/certificate-generator/certificates/distributor/
285
408
286
- # Make symbolic links relative
287
- find " $TIZEN_SDK_SYSROOT /usr/lib" -maxdepth 1 -type l | while IFS= read -r LNK; do
288
- ln -sf " $( basename " $( readlink " $LNK " ) " ) " " $LNK "
289
- done
290
- ln -sf ../../lib/libcap.so.2 " $TIZEN_SDK_SYSROOT /usr/lib/libcap.so"
291
- ln -sf openssl3.pc " $TIZEN_SDK_SYSROOT /usr/lib/pkgconfig/openssl.pc"
292
-
293
409
info " Done."
294
410
echo
295
411
296
- # Information on necessary environment variables
297
412
warning " Before proceeding with Matter export environment variables as follows:"
298
413
echo -n " $COLOR_YELLOW "
299
414
echo " export TIZEN_VERSION=\" $TIZEN_VERSION \" "
300
415
echo " export TIZEN_SDK_ROOT=\" $( realpath " $TIZEN_SDK_ROOT " ) \" "
301
- echo " export TIZEN_SDK_TOOLCHAIN=\"\$ TIZEN_SDK_ROOT/tools/arm-linux-gnueabi-gcc-9.2\" "
302
- echo " export TIZEN_SDK_SYSROOT=\"\$ TIZEN_SDK_ROOT/platforms/tizen-$TIZEN_VERSION /tizen/rootstraps/tizen-$TIZEN_VERSION -device.core\" "
303
- echo " export PATH=\"\$ TIZEN_SDK_TOOLCHAIN/bin:\$ TIZEN_SDK_ROOT/tools/ide/bin:\$ TIZEN_SDK_ROOT/tools:\$ PATH\" "
416
+
417
+ if [ " $INSTALL_ARM " = true ]; then
418
+ echo " export TIZEN_SDK_TOOLCHAIN=\"\$ TIZEN_SDK_ROOT/tools/arm-linux-gnueabi-gcc-9.2\" "
419
+ echo " export TIZEN_SDK_SYSROOT=\"\$ TIZEN_SDK_ROOT/platforms/tizen-$TIZEN_VERSION /tizen/rootstraps/tizen-$TIZEN_VERSION -device.core\" "
420
+ echo " export PATH=\"\$ TIZEN_SDK_TOOLCHAIN/bin:\$ TIZEN_SDK_ROOT/tools/ide/bin:\$ TIZEN_SDK_ROOT/tools:\$ PATH\" "
421
+ fi
422
+
423
+ if [ " $INSTALL_ARM64 " = true ]; then
424
+ echo " export TIZEN_SDK_TOOLCHAIN_ARM64=\"\$ TIZEN_SDK_ROOT/tools/aarch64-linux-gnu-gcc-9.2\" "
425
+ echo " export TIZEN_SDK_SYSROOT_ARM64=\"\$ TIZEN_SDK_ROOT/platforms/tizen-$TIZEN_VERSION /tizen/rootstraps/tizen-$TIZEN_VERSION -device64.core\" "
426
+ echo " export PATH=\"\$ TIZEN_SDK_TOOLCHAIN_ARM64/bin:\$ TIZEN_SDK_ROOT/tools/ide/bin:\$ TIZEN_SDK_ROOT/tools:\$ PATH\" "
427
+ fi
428
+
304
429
echo -n " $COLOR_NONE "
305
430
}
306
431
@@ -310,6 +435,20 @@ while (($#)); do
310
435
show_help
311
436
exit 0
312
437
;;
438
+ --cpu)
439
+ IFS=' ,' read -r -a array <<< " $2"
440
+ for CPU in " ${array[@]} " ; do
441
+ if [ " $CPU " == " arm" ]; then
442
+ INSTALL_ARM=true
443
+ elif [ " $CPU " == " arm64" ]; then
444
+ INSTALL_ARM64=true
445
+ else
446
+ error " Invalid CPU: $CPU . Use --help"
447
+ exit 1
448
+ fi
449
+ done
450
+ shift
451
+ ;;
313
452
--tizen-sdk-path)
314
453
TIZEN_SDK_ROOT=" $2 "
315
454
shift
@@ -336,6 +475,13 @@ while (($#)); do
336
475
shift
337
476
done
338
477
478
+ # ------------------------------------------------------------------------------
479
+ # Verify passed arguments and flags
480
+ if [ -z " $INSTALL_ARM " ] && [ -z " $INSTALL_ARM64 " ]; then
481
+ error " No CPU architecture provided. Use --help."
482
+ exit 1
483
+ fi
484
+
339
485
# ------------------------------------------------------------------------------
340
486
# Prepare a temporary directory and cleanup
341
487
trap cleanup EXIT
368
514
369
515
# ------------------------------------------------------------------------------
370
516
# Installation Tizen SDK
371
- install_tizen_sdk
517
+ install_tizen_sdk_common
518
+
519
+ if [ " $INSTALL_ARM " = true ]; then
520
+ install_tizen_sdk_arm
521
+ fi
522
+
523
+ if [ " $INSTALL_ARM64 " = true ]; then
524
+ install_tizen_sdk_arm64
525
+ fi
526
+
527
+ install_tizen_sdk_finalize
0 commit comments