612c1a73f1
Missing /dev/pts causing "Can not write log, openpty() failed (/dev/pts not mounted?)"
69 lines
1.3 KiB
Plaintext
69 lines
1.3 KiB
Plaintext
log (){
|
|
date +"[%T] $@" | tee -a ${LOG_FILE}
|
|
}
|
|
|
|
bootstrap(){
|
|
ARCH=$(dpkg --print-architecture)
|
|
|
|
export http_proxy=${APT_PROXY}
|
|
|
|
if [ "$ARCH" != "armhf" ]; then
|
|
BOOTSTRAP_CMD=qemu-debootstrap
|
|
else
|
|
BOOTSTRAP_CMD=debootstrap
|
|
fi
|
|
|
|
${BOOTSTRAP_CMD} --components=main,contrib,non-free \
|
|
--arch armhf\
|
|
--no-check-gpg \
|
|
$1 $2 $3
|
|
}
|
|
|
|
copy_previous(){
|
|
if [ ! -d ${PREV_ROOTFS_DIR} ]; then
|
|
echo "Previous stage rootfs not found"
|
|
false
|
|
fi
|
|
mkdir -p ${ROOTFS_DIR}
|
|
rsync -aHAX ${PREV_ROOTFS_DIR}/ ${ROOTFS_DIR}/
|
|
}
|
|
|
|
unmount(){
|
|
if [ -z "$1" ]; then
|
|
DIR=$PWD
|
|
else
|
|
DIR=$1
|
|
fi
|
|
|
|
while mount | grep -q $DIR; do
|
|
LOCS=`mount | grep $DIR | cut -f 3 -d ' ' | sort -r`
|
|
for loc in $LOCS; do
|
|
sudo umount $loc
|
|
done
|
|
done
|
|
}
|
|
|
|
on_chroot() {
|
|
if ! mount | grep -q `realpath ${ROOTFS_DIR}/proc`; then
|
|
mount -t proc proc ${ROOTFS_DIR}/proc
|
|
fi
|
|
|
|
if ! mount | grep -q `realpath ${ROOTFS_DIR}/dev`; then
|
|
mount --bind /dev ${ROOTFS_DIR}/dev
|
|
fi
|
|
|
|
if ! mount | grep -q `realpath ${ROOTFS_DIR}/dev/pts`; then
|
|
mount --bind /dev/pts ${ROOTFS_DIR}/dev/pts
|
|
fi
|
|
|
|
if ! mount | grep -q `realpath ${ROOTFS_DIR}/sys`; then
|
|
mount --bind /sys ${ROOTFS_DIR}/sys
|
|
fi
|
|
|
|
chroot ${ROOTFS_DIR}/ "$@"
|
|
}
|
|
|
|
update_issue() {
|
|
echo -e "Raspberry Pi reference ${DATE}\nGenerated using Pi-gen, https://github.com/RPi-Distro/Pi-gen, ${1}" > ${ROOTFS_DIR}/etc/rpi-issue
|
|
}
|