Browse Source

Switch mender-conversion-tools to use mendersoftware/uboot-mender repository

U-Boot related file like: fw_printenv, u-boot.bin are
cross-compiled now.

boot.scr on the other hand is built with mkimage tool
created in the previous step.

Issues: MEN-2089

Changelog: None

Signed-off-by: Adam Podogrocki <a.podogrocki@gmail.com>
1.0.x
apodogrocki 7 years ago
committed by Adam Podogrocki
parent
commit
5c745056d1
  1. 72
      rpi3-convert-stage-5.sh

72
rpi3-convert-stage-5.sh

@ -16,26 +16,64 @@
application_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
output_dir=${application_dir}/output
uboot_dir=${output_dir}/uboot-mender
bin_dir_pi=${output_dir}/bin/raspberrypi
sdimg_base_dir=$output_dir/sdimg
GCC_VERSION="6.3.1"
echo "Running: $(basename $0)"
declare -a sdimgmappings
declare -a sdimg_partitions=("boot" "primary" "secondary" "data")
version() {
echo "$@" | awk -F. '{ printf("%d%03d%03d\n", $1,$2,$3); }'
}
# Takes following arguments:
#
# $1 - ARM toolchain
build_uboot_files() {
local CROSS_COMPILE=${1}-
local ARCH=arm
local branch="mender-rpi-2017.09"
local commit="988e0ec54"
local uboot_repo_vc_dir=$uboot_dir/.git
export CROSS_COMPILE=$CROSS_COMPILE
export ARCH=$ARCH
mkdir -p $bin_dir_pi
echo -e "Downloading U-Boot related files..."
echo -e "Building U-Boot related files..."
if [ ! -d $uboot_repo_vc_dir ]; then
git clone https://github.com/mendersoftware/uboot-mender.git -b $branch
git checkout $commit
fi
cd $uboot_dir
make --quiet distclean
make rpi_3_32b_defconfig && make
make envtools
cat<<-'EOF' >boot.cmd
fdt addr ${fdt_addr} && fdt get value bootargs /chosen bootargs
run mender_setup
mmc dev ${mender_uboot_dev}
load ${mender_uboot_root} ${kernel_addr_r} /boot/zImage
bootz ${kernel_addr_r} - ${fdt_addr}
run mender_try_to_recover
EOF
$uboot_dir/tools/mkimage -A arm -T script -C none -n "Boot script" -d "boot.cmd" boot.scr
wget -q -O $bin_dir_pi/boot.scr \
https://github.com/mirzak/mender-conversion-tools/raw/mirza/wip/bin/raspberrypi/boot.scr
wget -q -O $bin_dir_pi/fw_printenv \
https://github.com/mirzak/mender-conversion-tools/raw/mirza/wip/bin/raspberrypi/fw_printenv
wget -q -O $bin_dir_pi/init_resize.sh \
https://raw.githubusercontent.com/mirzak/mender-conversion-tools/mirza/wip/bin/raspberrypi/init_resize.sh
wget -q -O $bin_dir_pi/u-boot.bin \
https://github.com/mirzak/mender-conversion-tools/raw/mirza/wip/bin/raspberrypi/u-boot.bin
cp -t $bin_dir_pi $uboot_dir/boot.scr $uboot_dir/tools/env/fw_printenv $uboot_dir/u-boot.bin
cd $output_dir
}
# Takes following arguments:
@ -80,7 +118,6 @@ install_files() {
sudo cp ${bin_dir_pi}/u-boot.bin ${boot_dir}/kernel7.img
sudo cp ${bin_dir_pi}/boot.scr ${boot_dir}
sudo cp ${bin_dir_pi}/init_resize.sh ${rootfs_dir}/usr/lib/raspi-config/init-resize.sh
sudo cp ${boot_dir}/config.txt ${output_dir}/config.txt
@ -112,6 +149,23 @@ do_install_bootloader() {
exit 1
fi
if [ -z "${toolchain}" ]; then
echo "ARM toolchain not set. Aborting."
exit 1
fi
if [[ $(which ${toolchain}-gcc) = 1 ]]; then
echo "Error: ARM GCC not found in PATH. Aborting."
exit 1
fi
local gcc_version=$(${toolchain}-gcc -dumpversion)
if [ $(version $gcc_version) -ne $(version $GCC_VERSION) ]; then
echo "Error: Invalid ARM GCC version ($gcc_version). Expected $GCC_VERSION. Aborting."
exit 1
fi
[ ! -f $image ] && { echo "$image - file not found. Aborting."; exit 1; }
# Map & mount Mender compliant image.
@ -120,7 +174,7 @@ do_install_bootloader() {
mkdir -p $output_dir && cd $output_dir
# Build patched U-Boot files.
build_uboot_files
build_uboot_files $toolchain
mount_sdimg ${sdimgmappings[@]}

Loading…
Cancel
Save