mirror of
https://github.com/riptidewave93/UNVR-NAS.git
synced 2025-02-12 10:31:55 +00:00
fix: move firmware extraction to docker
This should fix https://github.com/riptidewave93/UNVR-NAS/issues/13 and make building easier across different systems.
This commit is contained in:
parent
6f01afd72b
commit
d1aaa4bccd
4 changed files with 19 additions and 7 deletions
|
@ -45,6 +45,7 @@ RUN apt-get update && apt-get install -yq \
|
||||||
qemu-utils \
|
qemu-utils \
|
||||||
qemu-user-static \
|
qemu-user-static \
|
||||||
rsync \
|
rsync \
|
||||||
|
squashfs-tools \
|
||||||
swig \
|
swig \
|
||||||
u-boot-tools \
|
u-boot-tools \
|
||||||
unzip \
|
unzip \
|
||||||
|
|
|
@ -14,13 +14,6 @@ else
|
||||||
mkdir ${build_path}
|
mkdir ${build_path}
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Extract the goodies
|
|
||||||
${scripts_path}/ubnt-fw-parse.py "${root_path}/unifi-firmware/${firmware_filename}" "${build_path}/fw-extract/${firmware_filename%.bin}"
|
|
||||||
|
|
||||||
# Extract the squashfs rootfs
|
|
||||||
echo "Extracting unifi rootfs as root..."
|
|
||||||
sudo unsquashfs -f -d "${build_path}/fw-extract/${BOARD}-rootfs" "${build_path}/fw-extract/${firmware_filename%.bin}/rootfs.bin"
|
|
||||||
|
|
||||||
# Always build to pickup changes/updates/improvements
|
# Always build to pickup changes/updates/improvements
|
||||||
debug_msg "Building ${docker_tag}"
|
debug_msg "Building ${docker_tag}"
|
||||||
docker build -t ${docker_tag} ${root_path}
|
docker build -t ${docker_tag} ${root_path}
|
||||||
|
|
|
@ -14,6 +14,10 @@ if [ ! -d ${build_path}/toolchain ]; then
|
||||||
tar -xf ${root_path}/downloads/${toolchain_filename} -C ${build_path}/toolchain
|
tar -xf ${root_path}/downloads/${toolchain_filename} -C ${build_path}/toolchain
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Do our firmware extraction
|
||||||
|
debug_msg "Docker: Extracting Firmware..."
|
||||||
|
docker run --ulimit nofile=1024 --rm -v "${root_path}:/repo:Z" -e BOARD="${BOARD}" -it ${docker_tag} /repo/scripts/docker/extract_firmware.sh
|
||||||
|
|
||||||
if [ ! -d ${build_path}/kernel ]; then
|
if [ ! -d ${build_path}/kernel ]; then
|
||||||
debug_msg "Docker: Building Kernel..."
|
debug_msg "Docker: Building Kernel..."
|
||||||
docker run --ulimit nofile=1024 --rm -v "${root_path}:/repo:Z" -it ${docker_tag} /repo/scripts/docker/build_kernel.sh
|
docker run --ulimit nofile=1024 --rm -v "${root_path}:/repo:Z" -it ${docker_tag} /repo/scripts/docker/build_kernel.sh
|
||||||
|
|
14
scripts/docker/extract_firmware.sh
Executable file
14
scripts/docker/extract_firmware.sh
Executable file
|
@ -0,0 +1,14 @@
|
||||||
|
#!/bin/bash
|
||||||
|
set -e
|
||||||
|
|
||||||
|
scripts_path="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && cd .. && pwd )"
|
||||||
|
. ${scripts_path}/vars.sh
|
||||||
|
|
||||||
|
# Extract the goodies
|
||||||
|
${scripts_path}/ubnt-fw-parse.py "${root_path}/unifi-firmware/${firmware_filename}" "${build_path}/fw-extract/${firmware_filename%.bin}"
|
||||||
|
|
||||||
|
# Extract the squashfs rootfs
|
||||||
|
if ! [ -d "${build_path}/fw-extract/${BOARD}-rootfs" ]; then
|
||||||
|
echo "Extracting unifi rootfs as root..."
|
||||||
|
unsquashfs -f -d "${build_path}/fw-extract/${BOARD}-rootfs" "${build_path}/fw-extract/${firmware_filename%.bin}/rootfs.bin"
|
||||||
|
fi
|
Loading…
Reference in a new issue