merge all scripts to build.sh
This commit is contained in:
parent
777ef3f6d5
commit
1b9f37c704
16
README.md
16
README.md
@ -63,23 +63,19 @@ git clone https://github.com/tianocore/edk2-platforms.git -o cfdc7f907d545b14302
|
||||
git clone https://github.com/edk2-porting/edk2-sdm845.git
|
||||
```
|
||||
|
||||
3.Initialize environment
|
||||
|
||||
3.Build this project
|
||||
```bash
|
||||
cd edk2-sdm845
|
||||
bash firstrun.sh
|
||||
bash build.sh --device DEVICE
|
||||
```
|
||||
|
||||
4.Build this project
|
||||
```bash
|
||||
bash build_*.sh
|
||||
```
|
||||
5.Debug and use
|
||||
4.Debug and use
|
||||
|
||||
```bash
|
||||
fastboot boot boot_*.img
|
||||
fastboot boot boot_DEVICE.img
|
||||
```
|
||||
|
||||
(DEVICE is the codename of your phone.)
|
||||
|
||||
## Credits
|
||||
|
||||
Special thanks to [fxsheep](https://github.com/fxsheep)
|
||||
|
74
build.sh
Executable file
74
build.sh
Executable file
@ -0,0 +1,74 @@
|
||||
#!/bin/bash
|
||||
##### Change this to add device #####
|
||||
DEVICES=(
|
||||
dipper
|
||||
enchilada
|
||||
fajita
|
||||
polaris
|
||||
)
|
||||
#####################################
|
||||
function _help(){
|
||||
echo "Usage: build.sh --device DEV"
|
||||
echo
|
||||
echo "Build edk2 for Qualcomm SDM845 platform."
|
||||
echo
|
||||
echo "Options: "
|
||||
echo " --device DEV, -d DEV: build for DEV. (${DEVICES[*]})"
|
||||
echo " --help, -h: show this help."
|
||||
echo
|
||||
echo "MainPage: https://github.com/edk2-porting/edk2-sdm845"
|
||||
exit "${1}"
|
||||
}
|
||||
cd "$(dirname "$0")"
|
||||
if ! [ -f sdm845Pkg/sdm845Pkg.dsc ]
|
||||
then echo "cannot found sdm845Pkg/sdm845Pkg.dsc" >&2
|
||||
exit 1
|
||||
fi
|
||||
typeset -l DEVICE
|
||||
DEVICE=""
|
||||
OPTS="$(getopt -o d:h -l device:,help -n 'build.sh' -- "$@")"||exit 1
|
||||
eval set -- "${OPTS}"
|
||||
while true
|
||||
do case "${1}" in
|
||||
-d|--device)DEVICE="${2}";shift 2;;
|
||||
-h|--help)_help 0;shift;;
|
||||
--)shift;break;;
|
||||
*)_help 1;;
|
||||
esac
|
||||
done
|
||||
[ -z "${DEVICE}" ]&&_help 1
|
||||
HAS=false
|
||||
for i in "${DEVICES[@]}"
|
||||
do [ "${i}" == "${DEVICE}" ]||continue
|
||||
HAS=true
|
||||
break
|
||||
done
|
||||
if [ "${HAS}" != "true" ]
|
||||
then echo "build.sh: unknown build target device ${DEVICE}." >&2
|
||||
exit 1
|
||||
fi
|
||||
_EDK2="$(realpath "$PWD/../edk2")"
|
||||
_EDK2_PLATFORMS="$(realpath "$PWD/../edk2-platforms")"
|
||||
if ! [ -d "${_EDK2}" ]
|
||||
then echo "${_EDK2} not found, please see README.md" >&2
|
||||
exit 1
|
||||
fi
|
||||
if ! [ -d "${_EDK2_PLATFORMS}" ]
|
||||
then echo "${_EDK2_PLATFORMS} not found, please see README.md" >&2
|
||||
exit 1
|
||||
fi
|
||||
set -e
|
||||
export PACKAGES_PATH="$_EDK2:$_EDK2_PLATFORMS:$PWD"
|
||||
export WORKSPACE="$PWD/workspace"
|
||||
source ../edk2/edksetup.sh
|
||||
[ -d "${WORKSPACE}" ]||mkdir "${WORKSPACE}"
|
||||
set -x
|
||||
make -C ../edk2/BaseTools -j "$(nproc)"
|
||||
# based on the instructions from edk2-platform
|
||||
rm -f "boot_${DEVICE}.img" uefi_img
|
||||
# not actually GCC5, it's GCC7 on Ubuntu 18.04.
|
||||
GCC5_AARCH64_PREFIX=aarch64-linux-gnu- build -s -n 0 -a AARCH64 -t GCC5 -p "sdm845Pkg/${DEVICE}.dsc"
|
||||
gzip -c < workspace/Build/sdm845Pkg/DEBUG_GCC5/FV/SDM845PKG_UEFI.fd > "uefi-${DEVICE}.img"
|
||||
cat "uefi-${DEVICE}.img" "device_specific/${DEVICE}.dtb" >> "uefi-${DEVICE}.img-dtb"
|
||||
abootimg --create "boot-${DEVICE}.img" -k "uefi-${DEVICE}.img-dtb" -r ramdisk -f bootimg.cfg
|
||||
echo "Build done: boot-${DEVICE}.img"
|
@ -1,13 +0,0 @@
|
||||
#!/bin/bash
|
||||
# based on the instructions from edk2-platform
|
||||
echo cleanning BuidFiles
|
||||
rm -rf boot_dipper.img
|
||||
echo Done.
|
||||
set -e
|
||||
. firstrun_common.sh
|
||||
# not actually GCC5; it's GCC7 on Ubuntu 18.04.
|
||||
GCC5_AARCH64_PREFIX=aarch64-linux-gnu- build -s -n 0 -a AARCH64 -t GCC5 -p sdm845Pkg/dipper.dsc
|
||||
gzip -c < workspace/Build/sdm845Pkg/DEBUG_GCC5/FV/SDM845PKG_UEFI.fd >uefi_img
|
||||
cat ./device_specific/dipper.dtb >>uefi_img
|
||||
abootimg --create boot_dipper.img -k uefi_img -r ramdisk -f bootimg.cfg
|
||||
rm -rf ./uefi_img
|
@ -1,13 +0,0 @@
|
||||
#!/bin/bash
|
||||
# based on the instructions from edk2-platform
|
||||
echo cleanning BuidFiles
|
||||
rm -rf boot_enchilada.img
|
||||
echo Done.
|
||||
set -e
|
||||
. firstrun_common.sh
|
||||
# not actually GCC5; it's GCC7 on Ubuntu 18.04.
|
||||
GCC5_AARCH64_PREFIX=aarch64-linux-gnu- build -s -n 0 -a AARCH64 -t GCC5 -p sdm845Pkg/enchilada.dsc
|
||||
gzip -c < workspace/Build/sdm845Pkg/DEBUG_GCC5/FV/SDM845PKG_UEFI.fd >uefi_img
|
||||
cat ./device_specific/enchilada.dtb >>uefi_img
|
||||
abootimg --create boot_enchilada.img -k uefi_img -r ramdisk -f bootimg.cfg
|
||||
rm -rf ./uefi_img
|
@ -1,13 +0,0 @@
|
||||
#!/bin/bash
|
||||
# based on the instructions from edk2-platform
|
||||
echo cleanning BuidFiles
|
||||
rm -rf boot_fajita.img
|
||||
echo Done.
|
||||
set -e
|
||||
. firstrun_common.sh
|
||||
# not actually GCC5; it's GCC7 on Ubuntu 18.04.
|
||||
GCC5_AARCH64_PREFIX=aarch64-linux-gnu- build -s -n 0 -a AARCH64 -t GCC5 -p sdm845Pkg/fajita.dsc
|
||||
gzip -c < workspace/Build/sdm845Pkg/DEBUG_GCC5/FV/SDM845PKG_UEFI.fd >uefi_img
|
||||
cat ./device_specific/fajita.dtb >>uefi_img
|
||||
abootimg --create boot_fajita.img -k uefi_img -r ramdisk -f bootimg.cfg
|
||||
rm -rf ./uefi_img
|
@ -1,13 +0,0 @@
|
||||
#!/bin/bash
|
||||
# based on the instructions from edk2-platform
|
||||
echo cleanning BuidFiles
|
||||
rm -rf boot_polaris.img
|
||||
echo Done.
|
||||
set -e
|
||||
. firstrun_common.sh
|
||||
# not actually GCC5; it's GCC7 on Ubuntu 18.04.
|
||||
GCC5_AARCH64_PREFIX=aarch64-linux-gnu- build -s -n 0 -a AARCH64 -t GCC5 -p sdm845Pkg/polaris.dsc
|
||||
gzip -c < workspace/Build/sdm845Pkg/DEBUG_GCC5/FV/SDM845PKG_UEFI.fd >uefi_img
|
||||
cat ./device_specific/polaris.dtb >>uefi_img
|
||||
abootimg --create boot_polaris.img -k uefi_img -r ramdisk -f bootimg.cfg
|
||||
rm -rf ./uefi_img
|
@ -1,8 +0,0 @@
|
||||
#!/bin/bash
|
||||
# based on the instructions from edk2-platform
|
||||
# do this first:
|
||||
# https://github.com/tianocore/tianocore.github.io/wiki/Using-EDK-II-with-Native-GCC#Install_required_software_from_apt
|
||||
set -e
|
||||
. firstrun_common.sh
|
||||
make -C ../edk2/BaseTools
|
||||
|
@ -1,3 +0,0 @@
|
||||
export PACKAGES_PATH=$PWD/../edk2:$PWD/../edk2-platforms:$PWD
|
||||
export WORKSPACE=$PWD/workspace
|
||||
. ../edk2/edksetup.sh
|
Loading…
Reference in New Issue
Block a user