Skip to content

Commit 70b7784

Browse files
committed
Add arm64 target
1 parent ff7398a commit 70b7784

File tree

3 files changed

+201
-20
lines changed

3 files changed

+201
-20
lines changed
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
117 : [TI] Update java version for chip-build-vscode
1+
118 : [Tizen] Add arm64 target - Docker part

integrations/docker/images/stage-2/chip-build-tizen/Dockerfile

+5
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ ENV TIZEN_SDK_ROOT /opt/tizen-sdk
2626
COPY tizen-sdk-installer $TIZEN_SDK_ROOT/files/installer
2727
RUN set -x \
2828
&& bash $TIZEN_SDK_ROOT/files/installer/install.sh \
29+
--cpu arm,arm64 \
2930
--tizen-sdk-path $TIZEN_SDK_ROOT \
3031
--tizen-sdk-data-path /home/ubuntu/tizen-sdk-data \
3132
--tizen-version $TIZEN_VERSION \
@@ -38,6 +39,10 @@ ENV TIZEN_SDK_TOOLCHAIN $TIZEN_SDK_ROOT/tools/arm-linux-gnueabi-gcc-9.2
3839
ENV TIZEN_SDK_SYSROOT $TIZEN_SDK_ROOT/platforms/tizen-$TIZEN_VERSION/tizen/rootstraps/tizen-$TIZEN_VERSION-device.core
3940
ENV PATH="$TIZEN_SDK_TOOLCHAIN/bin:$TIZEN_SDK_ROOT/tools/ide/bin:$TIZEN_SDK_ROOT/tools:$PATH"
4041

42+
ENV TIZEN_SDK_TOOLCHAIN_ARM64 $TIZEN_SDK_ROOT/tools/aarch64-linux-gnu-gcc-9.2
43+
ENV TIZEN_SDK_SYSROOT_ARM64 $TIZEN_SDK_ROOT/platforms/tizen-$TIZEN_VERSION/tizen/rootstraps/tizen-$TIZEN_VERSION-device64.core
44+
ENV PATH="$TIZEN_SDK_TOOLCHAIN_ARM64/bin:$PATH"
45+
4146
# ------------------------------------------------------------------------------
4247
# Switch to the non-root user
4348
USER ubuntu

integrations/docker/images/stage-2/chip-build-tizen/tizen-sdk-installer/install.sh

+195-19
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ function show_help() {
4545
echo
4646
echo "Options:"
4747
echo " -h, --help Display this information"
48+
echo " --cpu Comma separated list of CPUs. Like `arm` or `arm64`"
4849
echo " --tizen-sdk-path Set directory for Tizen SDK installation. Default is $TIZEN_SDK_ROOT"
4950
echo " --tizen-sdk-data-path Set directory for Tizen SDK runtime data. Default is $TIZEN_SDK_DATA_PATH"
5051
echo " --install-dependencies This option installs all required dependencies"
@@ -141,8 +142,8 @@ function cleanup() {
141142
}
142143

143144
# ------------------------------------------------------------------------------
144-
# Function for installing Tizen SDK.
145-
function install_tizen_sdk() {
145+
# Function for installing Tizen SDK (arm).
146+
function install_tizen_sdk_arm() {
146147

147148
mkdir -p "$TIZEN_SDK_ROOT" || return
148149

@@ -209,17 +210,9 @@ function install_tizen_sdk() {
209210
'app-core-common-*.rpm'
210211
'aul-0*.armv7l.rpm'
211212
'aul-devel-*.armv7l.rpm'
212-
'bluetooth-frwk-0*.armv7l.rpm'
213213
'bundle-0*.armv7l.rpm'
214214
'bundle-devel-*.armv7l.rpm'
215215
'buxton2-*.armv7l.rpm'
216-
'capi-network-bluetooth-0*.armv7l.rpm'
217-
'capi-network-bluetooth-devel-*.armv7l.rpm'
218-
'capi-network-nsd-*.armv7l.rpm'
219-
'capi-network-thread-*.armv7l.rpm'
220-
'capi-system-peripheral-io-*.armv7l.rpm'
221-
'capi-system-peripheral-io-devel-*.armv7l.rpm'
222-
'capi-system-resource-1*.armv7l.rpm'
223216
'cynara-devel-*.armv7l.rpm'
224217
'dbus-1*.armv7l.rpm'
225218
'dbus-devel-*.armv7l.rpm'
@@ -232,23 +225,26 @@ function install_tizen_sdk() {
232225
'libcynara-commons-*.armv7l.rpm'
233226
'libdns_sd-*.armv7l.rpm'
234227
'libjson-glib-*.armv7l.rpm'
235-
'libnsd-dns-sd-*.armv7l.rpm'
236228
'libsessiond-0*.armv7l.rpm'
237229
'libsystemd-*.armv7l.rpm'
238230
'libtzplatform-config-*.armv7l.rpm'
239231
'parcel-0*.armv7l.rpm'
240232
'parcel-devel-*.armv7l.rpm'
241233
'pkgmgr-info-*.armv7l.rpm'
242-
'sensord-*.armv7l.rpm'
243234
'sensord-devel-*.armv7l.rpm'
244235
'sensord-dummy-*.armv7l.rpm'
245236
'vconf-compat-*.armv7l.rpm'
246-
'vconf-internal-keys-devel-*.armv7l.rpm')
247-
download "$URL" "${PKG_ARR[@]}"
248-
249-
# Unified packages (snapshots)
250-
URL="http://download.tizen.org/snapshots/TIZEN/Tizen/Tizen-Unified/latest/repos/standard/packages/armv7l/"
251-
PKG_ARR=()
237+
'vconf-internal-keys-devel-*.armv7l.rpm'
238+
'bluetooth-frwk-0*.armv7l.rpm'
239+
'capi-network-bluetooth-0*.armv7l.rpm'
240+
'capi-network-bluetooth-devel-*.armv7l.rpm'
241+
'capi-network-nsd-*.armv7l.rpm'
242+
'capi-network-thread-*.armv7l.rpm'
243+
'capi-system-peripheral-io-*.armv7l.rpm'
244+
'capi-system-peripheral-io-devel-*.armv7l.rpm'
245+
'capi-system-resource-1*.armv7l.rpm'
246+
'libnsd-dns-sd-*.armv7l.rpm'
247+
'sensord-*.armv7l.rpm')
252248
download "$URL" "${PKG_ARR[@]}"
253249

254250
# Tizen Developer Platform Certificate
@@ -304,12 +300,185 @@ function install_tizen_sdk() {
304300
echo -n "$COLOR_NONE"
305301
}
306302

303+
# Function for installing Tizen SDK (arm64).
304+
function install_tizen_sdk_arm64() {
305+
306+
mkdir -p "$TIZEN_SDK_ROOT" || return
307+
308+
info "Tizen SDK installation directory: $TIZEN_SDK_ROOT"
309+
310+
TIZEN_SDK_SYSROOT="$TIZEN_SDK_ROOT/platforms/tizen-$TIZEN_VERSION/tizen/rootstraps/tizen-$TIZEN_VERSION-device64.core"
311+
312+
cd "$TMP_DIR" || return
313+
314+
# Get Tizen Studio CLI
315+
info "Downloading Tizen Studio CLI..."
316+
317+
# Download
318+
URL="http://download.tizen.org/sdk/tizenstudio/official/binary/"
319+
PKG_ARR=(
320+
'certificate-encryptor_1.0.10_ubuntu-64.zip'
321+
'certificate-generator_0.1.4_ubuntu-64.zip'
322+
'new-common-cli_2.5.64_ubuntu-64.zip'
323+
'new-native-cli_2.5.64_ubuntu-64.zip'
324+
'sdb_4.2.23_ubuntu-64.zip')
325+
download "$URL" "${PKG_ARR[@]}"
326+
327+
# Get toolchain
328+
info "Downloading Tizen toolchain..."
329+
330+
# Download
331+
URL="http://download.tizen.org/sdk/tizenstudio/official/binary/"
332+
PKG_ARR=(
333+
"cross-aarch64-gcc-9.2_0.1.9_ubuntu-64.zip"
334+
"sbi-toolchain-gcc-9.2.cpp.app_2.2.16_ubuntu-64.zip")
335+
download "$URL" "${PKG_ARR[@]}"
336+
337+
# Get Tizen sysroot
338+
info "Downloading Tizen sysroot..."
339+
340+
# Base sysroot
341+
# Different versions of Tizen have different rootstrap versions
342+
URL="http://download.tizen.org/sdk/tizenstudio/official/binary/"
343+
PKG_ARR=(
344+
"tizen-$TIZEN_VERSION-core-add-ons_*_ubuntu-64.zip"
345+
"tizen-$TIZEN_VERSION-rs-device64.core_*_ubuntu-64.zip")
346+
download "$URL" "${PKG_ARR[@]}"
347+
348+
# Base packages
349+
URL="http://download.tizen.org/releases/milestone/TIZEN/Tizen-$TIZEN_VERSION/Tizen-$TIZEN_VERSION-Base/latest/repos/standard/packages/aarch64/"
350+
PKG_ARR=(
351+
'iniparser-*.aarch64.rpm'
352+
'libblkid-devel-*.aarch64.rpm'
353+
'libcap-*.aarch64.rpm'
354+
'libffi-devel-*.aarch64.rpm'
355+
'liblzma-*.aarch64.rpm'
356+
'libmount-devel-*.aarch64.rpm'
357+
'libncurses6-*.aarch64.rpm'
358+
'libreadline-*.aarch64.rpm'
359+
'libuuid-*.aarch64.rpm'
360+
'pcre-devel-*.aarch64.rpm'
361+
'readline-devel-*.aarch64.rpm'
362+
'xdgmime-*.aarch64.rpm')
363+
download "$URL" "${PKG_ARR[@]}"
364+
365+
# Unified packages
366+
URL="http://download.tizen.org/releases/milestone/TIZEN/Tizen-$TIZEN_VERSION/Tizen-$TIZEN_VERSION-Unified/latest/repos/standard/packages/aarch64/"
367+
PKG_ARR=(
368+
'app-core-common-*.rpm'
369+
'aul-0*.aarch64.rpm'
370+
'aul-devel-*.aarch64.rpm'
371+
'bundle-0*.aarch64.rpm'
372+
'bundle-devel-*.aarch64.rpm'
373+
'buxton2-*.aarch64.rpm'
374+
'cynara-devel-*.aarch64.rpm'
375+
'dbus-1*.aarch64.rpm'
376+
'dbus-devel-*.aarch64.rpm'
377+
'dbus-libs-1*.aarch64.rpm'
378+
'glib2-devel-2*.aarch64.rpm'
379+
'hal-api-common-*.aarch64.rpm'
380+
'hal-api-sensor-*.aarch64.rpm'
381+
'json-glib-devel-*.aarch64.rpm'
382+
'libcynara-client-*.aarch64.rpm'
383+
'libcynara-commons-*.aarch64.rpm'
384+
'libdns_sd-*.aarch64.rpm'
385+
'libjson-glib-*.aarch64.rpm'
386+
'libsessiond-0*.aarch64.rpm'
387+
'libsystemd-*.aarch64.rpm'
388+
'libtzplatform-config-*.aarch64.rpm'
389+
'parcel-0*.aarch64.rpm'
390+
'parcel-devel-*.aarch64.rpm'
391+
'pkgmgr-info-*.aarch64.rpm'
392+
'sensord-devel-*.aarch64.rpm'
393+
'sensord-dummy-*.aarch64.rpm'
394+
'vconf-compat-*.aarch64.rpm'
395+
'vconf-internal-keys-devel-*.aarch64.rpm'
396+
'bluetooth-frwk-0*.aarch64.rpm'
397+
'capi-network-bluetooth-0*.aarch64.rpm'
398+
'capi-network-bluetooth-devel-*.aarch64.rpm'
399+
'capi-network-nsd-*.aarch64.rpm'
400+
'capi-network-thread-*.aarch64.rpm'
401+
'capi-system-peripheral-io-*.aarch64.rpm'
402+
'capi-system-peripheral-io-devel-*.aarch64.rpm'
403+
'capi-system-resource-1*.aarch64.rpm'
404+
'libnsd-dns-sd-*.aarch64.rpm'
405+
'sensord-*.aarch64.rpm')
406+
download "$URL" "${PKG_ARR[@]}"
407+
408+
# Tizen Developer Platform Certificate
409+
URL="http://download.tizen.org/sdk/extensions/Tizen_IoT_Headless/binary/"
410+
# Tizen site does not have this package available in version 8.0.
411+
# Certificates are the same for 7.0 and 8.0, though.
412+
PKG_ARR=(
413+
"7.0-iot-things-add-ons_*_ubuntu-64.zip")
414+
download "$URL" "${PKG_ARR[@]}"
415+
416+
# Install all
417+
info "Installing Tizen SDK..."
418+
419+
unzip -o '*.zip'
420+
cp -rf data/* "$TIZEN_SDK_ROOT"
421+
422+
unrpm *.rpm
423+
cp -rf lib64 usr "$TIZEN_SDK_SYSROOT"
424+
425+
# Install secret tool or not
426+
if ("$SECRET_TOOL"); then
427+
info "Overriding secret tool..."
428+
install "$SCRIPT_DIR/secret-tool.py" "$TIZEN_SDK_ROOT/tools/certificate-encryptor/secret-tool"
429+
fi
430+
431+
# Configure Tizen CLI
432+
echo "TIZEN_SDK_INSTALLED_PATH=$TIZEN_SDK_ROOT" >"$TIZEN_SDK_ROOT/sdk.info"
433+
echo "TIZEN_SDK_DATA_PATH=$TIZEN_SDK_DATA_PATH" >>"$TIZEN_SDK_ROOT/sdk.info"
434+
ln -sf "$TIZEN_SDK_DATA_PATH/.tizen-cli-config" "$TIZEN_SDK_ROOT/tools/.tizen-cli-config"
435+
436+
# Use Tizen developer platform certificate as defaultls
437+
cp "$TIZEN_SDK_ROOT"/tools/certificate-generator/certificates/distributor/sdk-platform/* \
438+
"$TIZEN_SDK_ROOT"/tools/certificate-generator/certificates/distributor/
439+
440+
# Make symbolic links relative
441+
find "$TIZEN_SDK_SYSROOT/usr/lib64" -maxdepth 1 -type l | while IFS= read -r LNK; do
442+
ln -sf "$(basename "$(readlink "$LNK")")" "$LNK"
443+
done
444+
445+
ln -sf ../../lib64/libcap.so.2 "$TIZEN_SDK_SYSROOT/usr/lib64/libcap.so"
446+
ln -sf openssl3.pc "$TIZEN_SDK_SYSROOT/usr/lib64/pkgconfig/openssl.pc"
447+
448+
info "Done."
449+
echo
450+
451+
# Information on necessary environment variables
452+
warning "Before proceeding with Matter export environment variables as follows:"
453+
echo -n "$COLOR_YELLOW"
454+
echo "export TIZEN_VERSION=\"$TIZEN_VERSION\""
455+
echo "export TIZEN_SDK_ROOT=\"$(realpath "$TIZEN_SDK_ROOT")\""
456+
echo "export TIZEN_SDK_TOOLCHAIN_ARM64=\"\$TIZEN_SDK_ROOT/tools/aarch64-linux-gnu-gcc-9.2\""
457+
echo "export TIZEN_SDK_SYSROOT_ARM64=\"\$TIZEN_SDK_ROOT/platforms/tizen-$TIZEN_VERSION/tizen/rootstraps/tizen-$TIZEN_VERSION-device64.core\""
458+
echo "export PATH=\"\$TIZEN_SDK_TOOLCHAIN_ARM64/bin:\$TIZEN_SDK_ROOT/tools/ide/bin:\$TIZEN_SDK_ROOT/tools:\$PATH\""
459+
echo -n "$COLOR_NONE"
460+
}
461+
307462
while (($#)); do
308463
case $1 in
309464
-h | --help)
310465
show_help
311466
exit 0
312467
;;
468+
--cpu)
469+
IFS=',' read -r -a array <<< "$2"
470+
for CPU in "${array[@]}"; do
471+
if [ "$CPU" == "arm" ]; then
472+
INSTALL_ARM=true
473+
elif [ "$CPU" == "arm64" ]; then
474+
INSTALL_ARM64=true
475+
else
476+
error "Invalid CPU: $CPU. Use --help"
477+
exit 1
478+
fi
479+
done
480+
shift
481+
;;
313482
--tizen-sdk-path)
314483
TIZEN_SDK_ROOT="$2"
315484
shift
@@ -368,4 +537,11 @@ fi
368537

369538
# ------------------------------------------------------------------------------
370539
# Installation Tizen SDK
371-
install_tizen_sdk
540+
541+
if [ "$INSTALL_ARM" = true ]; then
542+
install_tizen_sdk_arm
543+
fi
544+
545+
if [ "$INSTALL_ARM64" = true ]; then
546+
install_tizen_sdk_arm64
547+
fi

0 commit comments

Comments
 (0)