|
4 | 4 |
|
5 | 5 | set -e |
6 | 6 |
|
7 | | -supported_boards=("jetson-nano" "jetson-nano-2gb" "jetson-orin-nano" "jetson-agx-xavier" "jetson-xavier-nx") |
| 7 | +supported_boards=("jetson-nano" "jetson-nano-2gb" "jetson-orin-nano" "jetson-agx-xavier" "jetson-xavier-nx" "jetson-agx-orin") |
8 | 8 |
|
9 | 9 | function usage() { |
10 | | - echo "Usage: $0 -b <board> -r <revision> -d <device> -l <l4t>" |
11 | | - echo "" |
12 | | - echo "board: the board name, one of the following names:" |
13 | | - for supported_board in "${supported_boards[@]}"; do |
14 | | - echo " ${supported_board}" |
15 | | - done |
16 | | - echo "" |
17 | | - echo "revision: the revision number. Only required for jetson-nano board. The possible values are: 100, 200 or 300." |
18 | | - echo "" |
19 | | - echo "device: the rootfs device SD/USB. Only required for the following boards:" |
20 | | - echo " - jetson-orin-nano" |
21 | | - echo " - jetson-agx-xavier" |
22 | | - echo " - jetson-xavier-nx" |
23 | | - echo "" |
24 | | - echo "l4t version. The possible values are: 32, 35, 36" |
25 | | - exit 1 |
| 10 | + echo "Usage: $0 -b <board> -r <revision> -d <device> -l <l4t>" |
| 11 | + echo "" |
| 12 | + echo "board: the board name, one of the following names:" |
| 13 | + for supported_board in "${supported_boards[@]}"; do |
| 14 | + echo " ${supported_board}" |
| 15 | + done |
| 16 | + echo "" |
| 17 | + echo "revision: the revision number. Only required for jetson-nano board. The possible values are: 100, 200 or 300." |
| 18 | + echo "" |
| 19 | + echo "device: the rootfs device SD/USB. Only required for the following boards:" |
| 20 | + echo " - jetson-orin-nano" |
| 21 | + echo " - jetson-agx-orin" |
| 22 | + echo " - jetson-agx-xavier" |
| 23 | + echo " - jetson-xavier-nx" |
| 24 | + echo "" |
| 25 | + echo "l4t version. The possible values are: 32, 35, 36" |
| 26 | + exit 1 |
26 | 27 | } |
27 | 28 |
|
28 | 29 | while getopts b:r:d:l:h opts; do |
29 | | - case "$opts" in |
30 | | - |
31 | | - b) |
32 | | - board=${OPTARG} |
33 | | - if [[ ! " ${supported_boards[@]} " =~ " ${board} " ]]; then |
34 | | - printf "\e[31mError: Unsupported board: %s \n\e[0m" "$board" |
35 | | - echo "The supported boards are:" |
36 | | - for supported_board in "${supported_boards[@]}"; do |
37 | | - echo "- ${supported_board}" |
38 | | - done |
39 | | - exit 1 |
40 | | - fi |
41 | | - ;; |
42 | | - |
43 | | - r) |
44 | | - revision=${OPTARG} |
45 | | - ;; |
46 | | - |
47 | | - d) |
48 | | - device=${OPTARG} |
49 | | - ;; |
50 | | - |
51 | | - l) |
52 | | - l4t=${OPTARG} |
53 | | - if [[ "$l4t" != 32 && "$l4t" != 35 && "$l4t" != 36 ]]; then |
54 | | - printf "\e[31mError: Unsupported l4t value: %s \n\e[0m" "$l4t" |
55 | | - echo "The possible values are: 32, 35, 36." |
56 | | - exit 1 |
57 | | - fi |
58 | | - ;; |
59 | | - |
60 | | - h) |
61 | | - usage |
62 | | - ;; |
63 | | - |
64 | | - *) usage ;; |
65 | | - esac |
| 30 | + case "$opts" in |
| 31 | + |
| 32 | + b) |
| 33 | + board=${OPTARG} |
| 34 | + if [[ ! " ${supported_boards[@]} " =~ " ${board} " ]]; then |
| 35 | + printf "\e[31mError: Unsupported board: %s \n\e[0m" "$board" |
| 36 | + echo "The supported boards are:" |
| 37 | + for supported_board in "${supported_boards[@]}"; do |
| 38 | + echo "- ${supported_board}" |
| 39 | + done |
| 40 | + exit 1 |
| 41 | + fi |
| 42 | + ;; |
| 43 | + |
| 44 | + r) |
| 45 | + revision=${OPTARG} |
| 46 | + ;; |
| 47 | + |
| 48 | + d) |
| 49 | + device=${OPTARG} |
| 50 | + ;; |
| 51 | + |
| 52 | + l) |
| 53 | + l4t=${OPTARG} |
| 54 | + if [[ "$l4t" != 32 && "$l4t" != 35 && "$l4t" != 36 ]]; then |
| 55 | + printf "\e[31mError: Unsupported l4t value: %s \n\e[0m" "$l4t" |
| 56 | + echo "The possible values are: 32, 35, 36." |
| 57 | + exit 1 |
| 58 | + fi |
| 59 | + ;; |
| 60 | + |
| 61 | + h) |
| 62 | + usage |
| 63 | + ;; |
| 64 | + |
| 65 | + *) usage ;; |
| 66 | + esac |
66 | 67 | done |
67 | 68 |
|
68 | 69 | if [ "$board" = "" ]; then |
69 | | - printf "\e[31mError: board argument in required.\e[0m \n\n" |
70 | | - usage |
| 70 | + printf "\e[31mError: board argument in required.\e[0m \n\n" |
| 71 | + usage |
71 | 72 | fi |
72 | 73 |
|
73 | 74 | case $board in |
74 | 75 | "jetson-nano") |
75 | | - if [[ "$revision" != "100" && "$revision" != "200" && "$revision" != "300" ]]; then |
76 | | - printf "\e[31mError: Unknown revision for Jetson nano board.\n\e[0m" |
77 | | - echo "Supported revision: 100, 200 or 300" |
78 | | - exit 1 |
79 | | - fi |
80 | | - ;; |
| 76 | + if [[ "$revision" != "100" && "$revision" != "200" && "$revision" != "300" ]]; then |
| 77 | + printf "\e[31mError: Unknown revision for Jetson nano board.\n\e[0m" |
| 78 | + echo "Supported revision: 100, 200 or 300" |
| 79 | + exit 1 |
| 80 | + fi |
| 81 | + ;; |
81 | 82 |
|
82 | | -"jetson-orin-nano" | "jetson-xavier-nx" | "jetson-agx-xavier") |
| 83 | +"jetson-orin-nano" | "jetson-xavier-nx" | "jetson-agx-xavier" | "jetson-agx-orin") |
83 | 84 |
|
84 | | - if [ "$device" = "" ]; then |
85 | | - printf "\e[31mError: device argument required.\n\e[0m" |
86 | | - usage |
87 | | - fi |
| 85 | + if [ "$device" = "" ]; then |
| 86 | + printf "\e[31mError: device argument required.\n\e[0m" |
| 87 | + usage |
| 88 | + fi |
88 | 89 |
|
89 | | - if [[ "$device" != "SD" && "$device" != "USB" ]]; then |
90 | | - printf "\e[31mError: Unknown device.\n\e[0m" |
91 | | - echo "device must be SD or USB" |
92 | | - exit 1 |
93 | | - fi |
94 | | - ;; |
| 90 | + if [[ "$device" != "SD" && "$device" != "USB" ]]; then |
| 91 | + printf "\e[31mError: Unknown device.\n\e[0m" |
| 92 | + echo "device must be SD or USB" |
| 93 | + exit 1 |
| 94 | + fi |
| 95 | + ;; |
95 | 96 |
|
96 | 97 | *) ;; |
97 | 98 | esac |
98 | 99 |
|
99 | 100 | case $board in |
100 | 101 | "jetson-nano" | "jetson-nano-2gb") |
101 | | - l4t=32 |
102 | | - ;; |
| 102 | + l4t=32 |
| 103 | + ;; |
103 | 104 |
|
104 | 105 | "jetson-agx-xavier" | "jetson-xavier-nx") |
105 | | - if [[ "$l4t" == "" ]]; then |
106 | | - echo "Error: l4t version not provided." |
107 | | - echo "l4t must be 32 or 35" |
108 | | - exit 1 |
109 | | - fi |
110 | | - if [[ "$l4t" != 32 && "$l4t" != 35 ]]; then |
111 | | - echo "The $board only supports 32.x or 35.x versions." |
112 | | - exit 1 |
113 | | - fi |
114 | | - ;; |
| 106 | + if [[ "$l4t" == "" ]]; then |
| 107 | + echo "Error: l4t version not provided." |
| 108 | + echo "l4t must be 32 or 35" |
| 109 | + exit 1 |
| 110 | + fi |
| 111 | + if [[ "$l4t" != 32 && "$l4t" != 35 ]]; then |
| 112 | + echo "The $board only supports 32.x or 35.x versions." |
| 113 | + exit 1 |
| 114 | + fi |
| 115 | + ;; |
115 | 116 |
|
116 | | -"jetson-orin-nano") |
117 | | - if [[ "$l4t" == "" ]]; then |
118 | | - echo "Error: l4t version not provided." |
119 | | - echo "l4t must be 35 or 36" |
120 | | - exit 1 |
121 | | - fi |
| 117 | +"jetson-orin-nano" | "jetson-agx-orin") |
| 118 | + if [[ "$l4t" == "" ]]; then |
| 119 | + echo "Error: l4t version not provided." |
| 120 | + echo "l4t must be 35 or 36" |
| 121 | + exit 1 |
| 122 | + fi |
122 | 123 |
|
123 | | - if [[ "$l4t" != 35 && "$l4t" != 36 ]]; then |
124 | | - echo "The $board only supports 35.x or 36.x versions." |
125 | | - exit 1 |
126 | | - fi |
| 124 | + if [[ "$l4t" != 35 && "$l4t" != 36 ]]; then |
| 125 | + echo "The $board only supports 35.x or 36.x versions." |
| 126 | + exit 1 |
| 127 | + fi |
127 | 128 |
|
128 | | - ;; |
| 129 | + ;; |
129 | 130 | *) ;; |
130 | 131 | esac |
131 | 132 |
|
132 | 133 | L4T_PACKAGES="" |
133 | 134 |
|
134 | 135 | if [[ -f "l4t_packages.txt" ]]; then |
135 | | - while IFS= read -r line; do |
136 | | - if [[ ${line} != \#* ]]; then |
137 | | - L4T_PACKAGES+=" $line" |
138 | | - fi |
139 | | - done <"l4t_packages.txt" |
| 136 | + while IFS= read -r line; do |
| 137 | + if [[ ${line} != \#* ]]; then |
| 138 | + L4T_PACKAGES+=" $line" |
| 139 | + fi |
| 140 | + done <"l4t_packages.txt" |
140 | 141 |
|
141 | 142 | fi |
142 | 143 |
|
143 | 144 | L4T_PACKAGES="${L4T_PACKAGES# }" |
144 | 145 |
|
145 | 146 | sudo -E XDG_RUNTIME_DIR= DBUS_SESSION_BUS_ADDRESS= podman build \ |
146 | | - --cap-add=all \ |
147 | | - --jobs=4 \ |
148 | | - --build-arg L4T_PACKAGES="$L4T_PACKAGES" \ |
149 | | - -f Containerfile.image.l4t"$l4t" \ |
150 | | - -t jetson-build-image-l4t"$l4t" |
| 147 | + --cap-add=all \ |
| 148 | + --jobs=4 \ |
| 149 | + --build-arg L4T_PACKAGES="$L4T_PACKAGES" \ |
| 150 | + -f Containerfile.image.l4t"$l4t" \ |
| 151 | + -t jetson-build-image-l4t"$l4t" |
151 | 152 |
|
152 | 153 | sudo podman run \ |
153 | | - --rm \ |
154 | | - --privileged \ |
155 | | - -v .:/jetson \ |
156 | | - -e JETSON_BOARD="$board" \ |
157 | | - -e JETSON_DEVICE="$device" \ |
158 | | - -e JETSON_REVISION="$revision" \ |
159 | | - localhost/jetson-build-image-l4t"$l4t":latest \ |
160 | | - create-jetson-image.sh |
| 154 | + --rm \ |
| 155 | + --privileged \ |
| 156 | + -v .:/jetson \ |
| 157 | + -e JETSON_BOARD="$board" \ |
| 158 | + -e JETSON_DEVICE="$device" \ |
| 159 | + -e JETSON_REVISION="$revision" \ |
| 160 | + localhost/jetson-build-image-l4t"$l4t":latest \ |
| 161 | + create-jetson-image.sh |
0 commit comments