Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(240)

Side by Side Diff: platform_tools/barelinux/bin/arm64_download

Issue 753633002: Simplfy DEPS: always pull all deps, remove unused barelinux platform. (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Created 6 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 #!/bin/sh
2
3 # Copyright 2014 Google Inc.
4 #
5 # Use of this source code is governed by a BSD-style license that can be
6 # found in the LICENSE file.
7
8
9 usage() {
10 cat >&2 <<EOF
11 arm64_download - this script downloads the Linaro's ARMv8 Aarch64
12 toolchain and minimal embedded Linux system as well as ARM's
13 foundation model. The required files are mirrored on Google Cloud.
14
15 If the files are already located in the working directory, the
16 download can be skipped if the checksums match.
17
18 The script then starts a emulated Arm64 Linux system in the
19 background. After the boot is complete, you can SSH into the system
20 at port 8022 via user@localhost. The SSH key will be downloaded into
21 the working directery as well.
22
23 Requires gsutil, xz, tar, and gunzip.
24
25 Usage:
26 $0 WORKING_DIRECTORY
27 ssh-add WORKING_DIRECTORY/key
28 ...wait...
29 ssh -p 8022 user@localhost
30 EOF
31 return 1
32 }
33
34 try() {
35 # print an error on nonzero return code
36 "$@"
37 local ret=$?
38 if [ $ret != 0 ] ; then
39 echo "'$@' failed and returned ${ret}." >&2
40 return $ret
41 fi
42 }
43
44 download_necessary_software_to_dir() (
45 cd "$1"
46 local location="chromium-skia-gm/arm64env"
47 try gsutil cp "gs://${location}/md5sum.txt" . || return
48 if md5sum -c --quiet "md5sum.txt"; then
49 return 0
50 fi
51 try gsutil cp "gs://${location}/*" . || return
52 )
53
54 install_compiler() {
55 local working_dir="$1"
56 local toolchain="gcc-linaro-aarch64-linux-gnu-4.8-2013.12_linux"
57 (
58 try cd "$working_dir" || return
59 try test -f "${toolchain}.tar.xz" || return
60 try xz --decompress --stdout < "${toolchain}.tar.xz" | \
61 try tar xf - || return
62 )
63 local dir="${working_dir}/${toolchain}"
64 try test -d "$dir" || return
65 try test -x "${dir}/bin/aarch64-linux-gnu-gcc" || return
66 try test -x "${dir}/bin/aarch64-linux-gnu-g++" || return
67 }
68
69 install_runtime() {
70 local working_dir="$1"
71
72 local firmware='img-foundation.axf'
73 local rootfs='vexpress64-openembedded_lamp-armv8-gcc-4.8_20131215-557'
74 local compressed_rootfs="${rootfs}.img.CLEAN_AND_CONFIGURED.xz"
75 local compressed_foundation_model='FM000-KT-00035-r0p8-52rel06.tgz'
76 local keyfile='CLEAN_AND_CONFIGURED_key'
77
78 try cp "${working_dir}/$firmware" "${working_dir}/firmware" || return
79
80 try xz --decompress --stdout \
81 < "${working_dir}/${compressed_rootfs}" \
82 > "${working_dir}/rootfs" || return
83 try test -f "${working_dir}/rootfs" || return
84
85 (
86 try cd "$working_dir" || return
87 try test -f "$compressed_foundation_model" || return
88 try gunzip -c "$compressed_foundation_model" | try tar xf - || return
89 try test -d "Foundation_v8pkg" || return # Assert.
90 )
91
92 try cp "${working_dir}/${keyfile}" "${working_dir}/key" || return
93 chmod 'go=' "${working_dir}/key"
94 }
95
96 start_arm64_image() {
97 local working_dir="$1"
98 local foundation_dir="${working_dir}/Foundation_v8pkg"
99 local foundation="${foundation_dir}/models/Linux64_GCC-4.1/Foundation_v8"
100 local firmware="${working_dir}/firmware"
101 local rootfs="${working_dir}/rootfs"
102
103 try test -d "$foundation_dir" || return
104 try test -x "$foundation" || return
105 try test -f "$firmware" || return
106 try test -f "$rootfs" || return
107
108 for PID in $(ps -o 'pid=' -C 'Foundation_v8') ; do
109 kill $PID
110 done
111
112 DISPLAY='' nohup \
113 "$foundation" \
114 --image="${firmware}" \
115 --cores=4 \
116 --block-device="${rootfs}" \
117 --network="nat" \
118 --network-nat-subnet="192.168.31.0/24" \
119 --network-nat-ports="8022=22" \
120 > /dev/null 2>&1 &
121 echo 'Waiting for foundation model to boot...'
122 while ! ssh -i "${working_dir}/key" \
123 -o NoHostAuthenticationForLocalhost=yes \
124 -p 8022 user@localhost true 2> /dev/null; do
125 sleep 5
126 done
127 echo 'Listening to SSH on port 8022.'
128 }
129
130 arm64_download() {
131 local working_directory="$1"
132 try mkdir -p "$working_directory" || return
133
134 try download_necessary_software_to_dir "$working_directory" || return
135
136 try install_compiler "$working_directory" || return
137
138 try install_runtime "$working_directory" || return
139
140 try start_arm64_image "$working_directory" || return
141 }
142
143 for command in gsutil xz tar md5sum gunzip; do
144 try command -v "$command" > /dev/null || usage || exit
145 done
146
147 if [ -z "$1" ] ; then
148 usage || exit
149 fi
150 try arm64_download "$1"
OLDNEW
« DEPS ('K') | « DEPS ('k') | platform_tools/barelinux/bin/arm64_make » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698