USB FEL working inside docker (#1892)

This commit is contained in:
Hugo 2020-04-16 18:26:45 +02:00 committed by GitHub
parent 9231036eb0
commit 88f2596744
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 17 additions and 1 deletions

View File

@ -18,6 +18,11 @@ RUN apt update && DEBIAN_FRONTEND=noninteractive apt -y upgrade && \
libc6-i386 lib32ncurses5 lib32tinfo5 locales ncurses-base zlib1g:i386 pixz bison libbison-dev flex libfl-dev \
pigz aptly aria2 cryptsetup cryptsetup-bin python3-distutils --no-install-recommends
RUN locale-gen en_US.UTF-8
# Static port for NFSv3 server used for USB FEL boot
RUN sed -i 's/\(^STATDOPTS=\).*/\1"--port 32765 --outgoing-port 32766"/' /etc/default/nfs-common && \
sed -i 's/\(^RPCMOUNTDOPTS=\).*/\1"--port 32767"/' /etc/default/nfs-kernel-server
ENV LANG='en_US.UTF-8' LANGUAGE='en_US:en' LC_ALL='en_US.UTF-8' TERM=screen
WORKDIR /root/armbian
ENTRYPOINT [ "/bin/bash", "/root/armbian/compile.sh" ]

View File

@ -30,6 +30,7 @@ fi
DOCKER_FLAGS=()
# Running this container in privileged mode is a simple way to solve loop device access issues
# Required for USB FEL
#DOCKER_FLAGS+=(--privileged)
# add only required capabilities instead (though MKNOD should be already present)
@ -70,6 +71,11 @@ else
display_alert "and will be able to create only Kernel and u-boot packages (KERNEL_ONLY=yes)" "" "wrn"
fi
# Expose ports for NFS server inside docker container, required for USB FEL
#DOCKER_FLAGS+=(-p 0.0.0.0:2049:2049 -p 0.0.0.0:2049:2049/udp -p 0.0.0.0:111:111 -p 0.0.0.0:111:111/udp -p 0.0.0.0:32765:32765 -p 0.0.0.0:32765:32765/udp -p 0.0.0.0:32767:32767 -p 0.0.0.0:32767:32767/udp)
# Export usb device for FEL, required for USB FEL
#DOCKER_FLAGS+=(-v /dev/bus/usb:/dev/bus/usb:ro)
# map source to Docker Working dir.
DOCKER_FLAGS+=(-v=$SRC/:/root/armbian/)

View File

@ -15,10 +15,15 @@
fel_prepare_host()
{
# Start rpcbind for NFS if inside docker container
[ `systemd-detect-virt` == 'docker' ] && service rpcbind start
# remove and re-add NFS share
rm -f /etc/exports.d/armbian.exports
mkdir -p /etc/exports.d
echo "$FEL_ROOTFS *(rw,async,no_subtree_check,no_root_squash,fsid=root)" > /etc/exports.d/armbian.exports
# Start NFS server if inside docker container
[ `systemd-detect-virt` == 'docker' ] && service nfs-kernel-server start
exportfs -ra
}
@ -65,7 +70,7 @@ fel_load()
[[ $(type -t fel_pre_load) == function ]] && fel_pre_load
display_alert "Loading files via" "FEL USB" "info"
sunxi-fel "${FEL_EXTRA_ARGS}" -p uboot "${FEL_ROOTFS}/usr/lib/${CHOSEN_UBOOT}_${REVISION}_armhf/u-boot-sunxi-with-spl.bin" \
sunxi-fel ${FEL_EXTRA_ARGS} -p uboot "${FEL_ROOTFS}/usr/lib/${CHOSEN_UBOOT}_${REVISION}_armhf/u-boot-sunxi-with-spl.bin" \
write 0x42000000 "${FEL_ROOTFS}"/boot/zImage \
write 0x43000000 "${FEL_ROOTFS}/${dtb_file}" \
write 0x43300000 "${FEL_ROOTFS}"/boot/uInitrd \