Compare commits
12
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
175dfb027f | ||
|
|
37482277d3 | ||
|
|
4118f8d524 | ||
|
|
1143530351 | ||
|
|
fd21eff626 | ||
|
|
ae4ec6445e | ||
|
|
57ef9b88e3 | ||
|
|
3db1168fbd | ||
|
|
4ca539cb45 | ||
|
|
3c559aeb56 | ||
|
|
cf50ff26d2 | ||
|
|
a4be08e275 |
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
FROM debian:stretch
|
FROM debian:buster
|
||||||
|
|
||||||
ENV DEBIAN_FRONTEND noninteractive
|
ENV DEBIAN_FRONTEND noninteractive
|
||||||
|
|
||||||
|
|||||||
@@ -295,6 +295,9 @@ follows:
|
|||||||
|
|
||||||
# Troubleshooting
|
# Troubleshooting
|
||||||
|
|
||||||
|
## `64 Bit Systems`
|
||||||
|
Please note there is currently an issue when compiling with a 64 Bit OS. See https://github.com/RPi-Distro/pi-gen/issues/271
|
||||||
|
|
||||||
## `binfmt_misc`
|
## `binfmt_misc`
|
||||||
|
|
||||||
Linux is able execute binaries from other architectures, meaning that it should be
|
Linux is able execute binaries from other architectures, meaning that it should be
|
||||||
|
|||||||
+41
-28
@@ -1,36 +1,44 @@
|
|||||||
#!/bin/bash -e
|
#!/bin/bash -eu
|
||||||
|
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
|
||||||
|
|
||||||
BUILD_OPTS="$*"
|
BUILD_OPTS="$*"
|
||||||
|
|
||||||
DOCKER="docker"
|
DOCKER="docker"
|
||||||
set +e
|
|
||||||
if ! $DOCKER ps >/dev/null 2>&1; then
|
if ! ${DOCKER} ps >/dev/null 2>&1; then
|
||||||
DOCKER="sudo docker"
|
DOCKER="sudo docker"
|
||||||
fi
|
fi
|
||||||
if ! $DOCKER ps >/dev/null; then
|
if ! ${DOCKER} ps >/dev/null; then
|
||||||
echo "error connecting to docker:"
|
echo "error connecting to docker:"
|
||||||
$DOCKER ps
|
${DOCKER} ps
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
set -e
|
|
||||||
|
|
||||||
if [ -f config ]; then
|
CONFIG_FILE=""
|
||||||
# shellcheck disable=SC1091
|
if [ -f "${DIR}/config" ]; then
|
||||||
source config
|
CONFIG_FILE="${DIR}/config"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
while getopts "c:" flag
|
while getopts "c:" flag
|
||||||
do
|
do
|
||||||
case "$flag" in
|
case "${flag}" in
|
||||||
c)
|
c)
|
||||||
# shellcheck disable=SC1090
|
CONFIG_FILE="${OPTARG}"
|
||||||
source "$OPTARG"
|
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|
||||||
|
# Ensure that the confguration file is present
|
||||||
|
if test -z "${CONFIG_FILE}"; then
|
||||||
|
echo "Configuration file need to be present in '${DIR}/config' or path passed as parameter"
|
||||||
|
exit 1
|
||||||
|
else
|
||||||
|
# shellcheck disable=SC1090
|
||||||
|
source "${CONFIG_FILE}"
|
||||||
|
fi
|
||||||
|
|
||||||
CONTAINER_NAME=${CONTAINER_NAME:-pigen_work}
|
CONTAINER_NAME=${CONTAINER_NAME:-pigen_work}
|
||||||
CONTINUE=${CONTINUE:-0}
|
CONTINUE=${CONTINUE:-0}
|
||||||
PRESERVE_CONTAINER=${PRESERVE_CONTAINER:-0}
|
PRESERVE_CONTAINER=${PRESERVE_CONTAINER:-0}
|
||||||
@@ -41,23 +49,27 @@ if [ -z "${IMG_NAME}" ]; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
CONTAINER_EXISTS=$($DOCKER ps -a --filter name="$CONTAINER_NAME" -q)
|
CONTAINER_EXISTS=$(${DOCKER} ps -a --filter name="${CONTAINER_NAME}" -q)
|
||||||
CONTAINER_RUNNING=$($DOCKER ps --filter name="$CONTAINER_NAME" -q)
|
CONTAINER_RUNNING=$(${DOCKER} ps --filter name="${CONTAINER_NAME}" -q)
|
||||||
if [ "$CONTAINER_RUNNING" != "" ]; then
|
if [ "${CONTAINER_RUNNING}" != "" ]; then
|
||||||
echo "The build is already running in container $CONTAINER_NAME. Aborting."
|
echo "The build is already running in container ${CONTAINER_NAME}. Aborting."
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
if [ "$CONTAINER_EXISTS" != "" ] && [ "$CONTINUE" != "1" ]; then
|
if [ "${CONTAINER_EXISTS}" != "" ] && [ "${CONTINUE}" != "1" ]; then
|
||||||
echo "Container $CONTAINER_NAME already exists and you did not specify CONTINUE=1. Aborting."
|
echo "Container ${CONTAINER_NAME} already exists and you did not specify CONTINUE=1. Aborting."
|
||||||
echo "You can delete the existing container like this:"
|
echo "You can delete the existing container like this:"
|
||||||
echo " $DOCKER rm -v $CONTAINER_NAME"
|
echo " ${DOCKER} rm -v ${CONTAINER_NAME}"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
$DOCKER build -t pi-gen .
|
# Modify original build-options to allow config file to be mounted in the docker container
|
||||||
if [ "$CONTAINER_EXISTS" != "" ]; then
|
BUILD_OPTS="$(echo ${BUILD_OPTS:-} | sed -r 's@\-c\s?([^ ]+)@-c /config@')"
|
||||||
trap 'echo "got CTRL+C... please wait 5s"; $DOCKER stop -t 5 ${CONTAINER_NAME}_cont' SIGINT SIGTERM
|
|
||||||
time $DOCKER run --rm --privileged \
|
${DOCKER} build -t pi-gen "${DIR}"
|
||||||
|
if [ "${CONTAINER_EXISTS}" != "" ]; then
|
||||||
|
trap 'echo "got CTRL+C... please wait 5s" && ${DOCKER} stop -t 5 ${CONTAINER_NAME}_cont' SIGINT SIGTERM
|
||||||
|
time ${DOCKER} run --rm --privileged \
|
||||||
|
--volume "${CONFIG_FILE}":/config:ro \
|
||||||
--volumes-from="${CONTAINER_NAME}" --name "${CONTAINER_NAME}_cont" \
|
--volumes-from="${CONTAINER_NAME}" --name "${CONTAINER_NAME}_cont" \
|
||||||
pi-gen \
|
pi-gen \
|
||||||
bash -e -o pipefail -c "dpkg-reconfigure qemu-user-static &&
|
bash -e -o pipefail -c "dpkg-reconfigure qemu-user-static &&
|
||||||
@@ -65,8 +77,9 @@ if [ "$CONTAINER_EXISTS" != "" ]; then
|
|||||||
rsync -av work/*/build.log deploy/" &
|
rsync -av work/*/build.log deploy/" &
|
||||||
wait "$!"
|
wait "$!"
|
||||||
else
|
else
|
||||||
trap 'echo "got CTRL+C... please wait 5s"; $DOCKER stop -t 5 ${CONTAINER_NAME}' SIGINT SIGTERM
|
trap 'echo "got CTRL+C... please wait 5s" && ${DOCKER} stop -t 5 ${CONTAINER_NAME}' SIGINT SIGTERM
|
||||||
time $DOCKER run --name "${CONTAINER_NAME}" --privileged \
|
time ${DOCKER} run --name "${CONTAINER_NAME}" --privileged \
|
||||||
|
--volume "${CONFIG_FILE}":/config:ro \
|
||||||
pi-gen \
|
pi-gen \
|
||||||
bash -e -o pipefail -c "dpkg-reconfigure qemu-user-static &&
|
bash -e -o pipefail -c "dpkg-reconfigure qemu-user-static &&
|
||||||
cd /pi-gen; ./build.sh ${BUILD_OPTS} &&
|
cd /pi-gen; ./build.sh ${BUILD_OPTS} &&
|
||||||
@@ -74,12 +87,12 @@ else
|
|||||||
wait "$!"
|
wait "$!"
|
||||||
fi
|
fi
|
||||||
echo "copying results from deploy/"
|
echo "copying results from deploy/"
|
||||||
$DOCKER cp "${CONTAINER_NAME}":/pi-gen/deploy .
|
${DOCKER} cp "${CONTAINER_NAME}":/pi-gen/deploy .
|
||||||
ls -lah deploy
|
ls -lah deploy
|
||||||
|
|
||||||
# cleanup
|
# cleanup
|
||||||
if [ "$PRESERVE_CONTAINER" != "1" ]; then
|
if [ "${PRESERVE_CONTAINER}" != "1" ]; then
|
||||||
$DOCKER rm -v "$CONTAINER_NAME"
|
${DOCKER} rm -v "${CONTAINER_NAME}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "Done! Your image(s) should be in deploy/"
|
echo "Done! Your image(s) should be in deploy/"
|
||||||
|
|||||||
@@ -197,6 +197,8 @@ source "${SCRIPT_DIR}/common"
|
|||||||
# shellcheck source=scripts/dependencies_check
|
# shellcheck source=scripts/dependencies_check
|
||||||
source "${SCRIPT_DIR}/dependencies_check"
|
source "${SCRIPT_DIR}/dependencies_check"
|
||||||
|
|
||||||
|
dependencies_check "${BASE_DIR}/depends"
|
||||||
|
|
||||||
#check username is valid
|
#check username is valid
|
||||||
if [[ ! "$FIRST_USER_NAME" =~ ^[a-z][-a-z0-9_]*$ ]]; then
|
if [[ ! "$FIRST_USER_NAME" =~ ^[a-z][-a-z0-9_]*$ ]]; then
|
||||||
echo "Invalid FIRST_USER_NAME: $FIRST_USER_NAME"
|
echo "Invalid FIRST_USER_NAME: $FIRST_USER_NAME"
|
||||||
@@ -208,8 +210,6 @@ if [[ -n "${APT_PROXY}" ]] && ! curl --silent "${APT_PROXY}" >/dev/null ; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
dependencies_check "${BASE_DIR}/depends"
|
|
||||||
|
|
||||||
mkdir -p "${WORK_DIR}"
|
mkdir -p "${WORK_DIR}"
|
||||||
log "Begin ${BASE_DIR}"
|
log "Begin ${BASE_DIR}"
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,48 @@
|
|||||||
UNRELEASED:
|
UNRELEASED:
|
||||||
*
|
* Clearer options for switching of Pi 4 video output in Raspberry Pi Configuration
|
||||||
|
* Option added to Appearance Settings to move taskbar to second monitor
|
||||||
|
* Option added to Recommended Software to restrict package installs by architecture
|
||||||
|
* New version of Adobe Flash player (32.0.0.223)
|
||||||
|
* Selection of screen refresh rates added to Screen Configuration
|
||||||
|
* Fix for missing text insertion cursor in LibreOffice on Pi 4
|
||||||
|
* Fix for Wi-fi interruption when Wi-fi icon on taskbar is clicked
|
||||||
|
* FIx for incorrect desktop background behind desktop login prompt
|
||||||
|
* Fix for segmentation faults when launching obconf and lxapperarance
|
||||||
|
* Fix for unclosed file pointer in Screen Configuration
|
||||||
|
* Fix for Bluetooth plugin freeze when large numbers of devices detected
|
||||||
|
* Fix for opening URLs not working in lxterminal
|
||||||
|
* Fix for start menu opening on incorrect monitor when launched from keyboard
|
||||||
|
* Fix for taskbar item not having [] removed when un-minimising on second monitor
|
||||||
|
* Linux kernel 4.19.57
|
||||||
|
* Raspberry Pi firmware cb3a32adf39f45a49be454e30c7464920ad7c605
|
||||||
|
2019-06-20:
|
||||||
|
* Based on Debian Buster
|
||||||
|
* Support for Raspberry Pi 4 hardware
|
||||||
|
* FKMS OpenGL desktop graphics driver and xcompmgr compositing window manager used when running on Raspberry Pi 4
|
||||||
|
* Screen Configuration application added for use with FKMS driver
|
||||||
|
* Raspberry Pi 4 video output options added to Raspberry Pi Configuration
|
||||||
|
* Uses new PiXflat UI theme for GTK and Openbox
|
||||||
|
* CPU activity gauge plugin no longer shown on taskbar by default
|
||||||
|
* CPU temperature gauge plugin added (not shown by default)
|
||||||
|
* USB ejecter and Bluetooth taskbar icons hidden when not appropriate
|
||||||
|
* Version 74.0.3729.157 of Chromium web browser included
|
||||||
|
* Version 32.0.0.207 of Flash player included
|
||||||
|
* IDLE Python IDE removed
|
||||||
|
* Wolfram Mathematica removed temporarily due to incompatibility with Buster
|
||||||
|
* Display of package sizes removed from Recommended Software
|
||||||
|
* Appearance Settings modified to support independent settings for two monitors
|
||||||
|
* Oracle Java 7 and 8 replaced with OpenJDK 11
|
||||||
|
* Miscellaneous small bug fixes
|
||||||
|
* On-board 5GHz WiFi blocked by rfkill by default
|
||||||
|
The block is removed when taking one of the following actions:
|
||||||
|
- Selecting a locale in the first run wizard
|
||||||
|
- Setting the WiFi country in the Raspberry Pi Configuration tool or the Network Settings applet
|
||||||
|
- Setting the WiFi country in raspi-config
|
||||||
|
- Providing a wpa_supplicant.conf file through the boot partition
|
||||||
|
- Running 'rfkill unblock wifi'
|
||||||
|
* Boot partition size set to 256M
|
||||||
|
* Linux kernel 4.19.50
|
||||||
|
* Raspberry Pi firmware 88ca9081f5e51cdedd16d5dbc85ed12a25123201
|
||||||
2019-04-08:
|
2019-04-08:
|
||||||
* Chromium browser updated to version 72
|
* Chromium browser updated to version 72
|
||||||
* VLC media player updated to version 3.0.6
|
* VLC media player updated to version 3.0.6
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
#!/bin/bash -e
|
#!/bin/bash -e
|
||||||
|
|
||||||
install -m 644 files/ipv6.conf "${ROOTFS_DIR}/etc/modprobe.d/ipv6.conf"
|
|
||||||
install -m 644 files/hostname "${ROOTFS_DIR}/etc/hostname"
|
install -m 644 files/hostname "${ROOTFS_DIR}/etc/hostname"
|
||||||
|
|
||||||
ln -sf /dev/null "${ROOTFS_DIR}/etc/systemd/network/99-default.link"
|
ln -sf /dev/null "${ROOTFS_DIR}/etc/systemd/network/99-default.link"
|
||||||
|
|||||||
@@ -1,3 +0,0 @@
|
|||||||
# Don't load ipv6 by default
|
|
||||||
alias net-pf-10 off
|
|
||||||
#alias ipv6 off
|
|
||||||
@@ -1,3 +1,6 @@
|
|||||||
#!/bin/bash -e
|
#!/bin/bash -e
|
||||||
|
|
||||||
|
if [ -f "${ROOTFS_DIR}/etc/ld.so.preload" ]; then
|
||||||
mv "${ROOTFS_DIR}/etc/ld.so.preload" "${ROOTFS_DIR}/etc/ld.so.preload.disabled"
|
mv "${ROOTFS_DIR}/etc/ld.so.preload" "${ROOTFS_DIR}/etc/ld.so.preload.disabled"
|
||||||
|
fi
|
||||||
|
|
||||||
|
|||||||
@@ -14,7 +14,6 @@ raspberrypi-sys-mods
|
|||||||
pi-bluetooth
|
pi-bluetooth
|
||||||
apt-listchanges
|
apt-listchanges
|
||||||
usb-modeswitch
|
usb-modeswitch
|
||||||
apt-transport-https
|
|
||||||
libpam-chksshpwd
|
libpam-chksshpwd
|
||||||
rpi-update
|
rpi-update
|
||||||
libmtp-runtime
|
libmtp-runtime
|
||||||
@@ -25,3 +24,4 @@ policykit-1
|
|||||||
ssh-import-id
|
ssh-import-id
|
||||||
rng-tools
|
rng-tools
|
||||||
ethtool
|
ethtool
|
||||||
|
vl805fw
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ smartsim
|
|||||||
minecraft-pi python-minecraftpi
|
minecraft-pi python-minecraftpi
|
||||||
python-sense-emu sense-emu-tools python-sense-emu-doc
|
python-sense-emu sense-emu-tools python-sense-emu-doc
|
||||||
|
|
||||||
|
wolfram-engine
|
||||||
claws-mail
|
claws-mail
|
||||||
greenfoot-unbundled bluej
|
greenfoot-unbundled bluej
|
||||||
nodered
|
nodered
|
||||||
|
|||||||
Reference in New Issue
Block a user