blob: 82098ed2b86f0881fde2afe1a62e7ea3bf03e1fc [file] [log] [blame]
Jeongik Chad8f46552024-10-04 20:23:57 +09001#!/bin/bash
2
Saswat Padhibf8a9cb2024-12-04 02:32:33 +00003show_help() {
4 echo "Usage: sudo $0 [OPTION]..."
5 echo "Builds a debian image and save it to image.raw."
6 echo "Options:"
7 echo "-h Print usage and this help message and exit."
8 echo "-a ARCH Architecture of the image [default is host arch: $(uname -m)]"
Saswat Padhi8ba4a532025-02-19 12:37:03 -08009 echo "-g Use Debian generic kernel [default is our custom kernel]"
Saswat Padhibf8a9cb2024-12-04 02:32:33 +000010 echo "-r Release mode build"
11 echo "-s Leave a shell open [default: only if the build fails]"
Saswat Padhi8d02dfe2025-03-19 17:11:53 -070012 echo "-u Set VM boot mode to u-boot [default is to load kernel directly]"
Saswat Padhibf8a9cb2024-12-04 02:32:33 +000013 echo "-w Save temp work directory in the container [for debugging]"
14}
Jeongik Chad8f46552024-10-04 20:23:57 +090015
Saswat Padhibf8a9cb2024-12-04 02:32:33 +000016arch="$(uname -m)"
Saswat Padhiac62a8b2024-12-06 00:48:07 +000017kernel_flag=
Jeongik Cha06f4ac52024-11-12 15:56:05 +090018release_flag=
Saswat Padhi26c4ef32024-11-29 19:46:53 +000019save_workdir_flag=
Saswat Padhibf8a9cb2024-12-04 02:32:33 +000020shell_condition="||"
Saswat Padhi8d02dfe2025-03-19 17:11:53 -070021uboot_flag=
Saswat Padhi26c4ef32024-11-29 19:46:53 +000022
Saswat Padhi8d02dfe2025-03-19 17:11:53 -070023while getopts "a:ghrsuw" option; do
maciek swiech0fdd0512024-10-11 15:12:44 +000024 case ${option} in
25 a)
maciek swiech0fdd0512024-10-11 15:12:44 +000026 arch="$OPTARG"
27 ;;
Saswat Padhi8ba4a532025-02-19 12:37:03 -080028 g)
29 kernel_flag="-g"
30 ;;
Saswat Padhibf8a9cb2024-12-04 02:32:33 +000031 h)
32 show_help ; exit
33 ;;
Jeongik Cha06f4ac52024-11-12 15:56:05 +090034 r)
35 release_flag="-r"
36 ;;
Saswat Padhibf8a9cb2024-12-04 02:32:33 +000037 s)
38 shell_condition=";"
39 ;;
Saswat Padhi8d02dfe2025-03-19 17:11:53 -070040 u)
41 uboot_flag="-u"
42 ;;
Saswat Padhi26c4ef32024-11-29 19:46:53 +000043 w)
44 save_workdir_flag="-w"
45 ;;
maciek swiech0fdd0512024-10-11 15:12:44 +000046 *)
Saswat Padhibf8a9cb2024-12-04 02:32:33 +000047 echo "Invalid option: $OPTARG" ; exit 1
maciek swiech0fdd0512024-10-11 15:12:44 +000048 ;;
49 esac
50done
51
Saswat Padhibf8a9cb2024-12-04 02:32:33 +000052if [[ "$arch" != "aarch64" && "$arch" != "x86_64" ]]; then
53 echo "Invalid architecture: $arch" ; exit 1
54fi
55
56if [ -z "$ANDROID_BUILD_TOP" ] ; then
57 echo '`ANDROID_BUILD_TOP` is undefined.'
58 echo 'Please `lunch` an Android target, or manually set the variable.'
59 exit 1
60fi
61
Saswat Padhi957afce2024-11-27 23:04:22 +000062docker run --privileged -it -v /dev:/dev \
63 -v "$ANDROID_BUILD_TOP/packages/modules/Virtualization:/root/Virtualization" \
64 --workdir /root/Virtualization/build/debian \
65 ubuntu:22.04 \
Saswat Padhi8d02dfe2025-03-19 17:11:53 -070066 bash -c "./build.sh -a $arch $release_flag $kernel_flag $uboot_flag $save_workdir_flag $shell_condition bash"