Compare commits
27
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e577677b62 | ||
|
|
87f7a59cab | ||
|
|
306c7eba3b | ||
|
|
b4ea63c045 | ||
|
|
bdbd85892e | ||
|
|
ca31aef1f7 | ||
|
|
0a6624b26d | ||
|
|
24bb01dec2 | ||
|
|
f8f3d6fe93 | ||
|
|
f9375cdcec | ||
|
|
9d334bee66 | ||
|
|
024840034e | ||
|
|
271177a0f7 | ||
|
|
9d15c0f7d1 | ||
|
|
32353a162b | ||
|
|
18c3cebe94 | ||
|
|
8bdbbfb099 | ||
|
|
d7c1ae21ca | ||
|
|
5456c3801f | ||
|
|
5e19033387 | ||
|
|
7f143a185e | ||
|
|
a449c75fac | ||
|
|
95ba042c83 | ||
|
|
d30343f626 | ||
|
|
19c0188798 | ||
|
|
336ff2107e | ||
|
|
8026d9dc8f |
+1
-1
@@ -6,7 +6,7 @@ RUN apt-get -y update && \
|
||||
apt-get -y install \
|
||||
git vim parted \
|
||||
quilt coreutils qemu-user-static debootstrap zerofree zip dosfstools \
|
||||
bsdtar libcap2-bin rsync grep udev xz-utils curl xxd file kmod\
|
||||
bsdtar libcap2-bin rsync grep udev xz-utils curl xxd file kmod bc\
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
COPY . /pi-gen/
|
||||
|
||||
@@ -14,7 +14,7 @@ To install the required dependencies for pi-gen you should run:
|
||||
|
||||
```bash
|
||||
apt-get install coreutils quilt parted qemu-user-static debootstrap zerofree zip \
|
||||
dosfstools bsdtar libcap2-bin grep rsync xz-utils file git curl
|
||||
dosfstools bsdtar libcap2-bin grep rsync xz-utils file git curl bc
|
||||
```
|
||||
|
||||
The file `depends` contains a list of tools needed. The format of this
|
||||
@@ -82,18 +82,33 @@ The following environment variables are supported:
|
||||
|
||||
Default system locale.
|
||||
|
||||
* `TARGET_HOSTNAME` (Default: "raspberrypi" )
|
||||
|
||||
Setting the hostname to the specified value.
|
||||
|
||||
* `KEYBOARD_KEYMAP` (Default: "gb" )
|
||||
|
||||
Default keyboard keymap.
|
||||
|
||||
To get the current value from a running system, run `debconf-show
|
||||
keyboard-configuration` and look at the
|
||||
`keyboard-configuration/xkb-keymap` value.
|
||||
|
||||
* `KEYBOARD_LAYOUT` (Default: "English (UK)" )
|
||||
|
||||
Default keyboard layout.
|
||||
|
||||
To get the current value from a running system, run `debconf-show
|
||||
keyboard-configuration` and look at the
|
||||
`keyboard-configuration/variant` value.
|
||||
|
||||
* `TIMEZONE_DEFAULT` (Default: "Europe/London" )
|
||||
|
||||
Default keyboard layout.
|
||||
|
||||
To get the current value from a running system, look in
|
||||
`/etc/timezone`.
|
||||
|
||||
* `FIRST_USER_NAME` (Default: "pi" )
|
||||
|
||||
Username for the first user
|
||||
@@ -104,11 +119,11 @@ The following environment variables are supported:
|
||||
|
||||
* `WPA_ESSID`, `WPA_PASSWORD` and `WPA_COUNTRY` (Default: unset)
|
||||
|
||||
If these are set, they are use to configure `wpa_supplicant.conf`, so that the raspberry pi can automatically connect to a wifi network on first boot.
|
||||
If these are set, they are use to configure `wpa_supplicant.conf`, so that the Raspberry Pi can automatically connect to a wifi network on first boot. If `WPA_ESSID` is set and `WPA_PASSWORD` is unset an unprotected wifi network will be configured. If set, `WPA_PASSWORD` must be between 8 and 63 characters.
|
||||
|
||||
* `ENABLE_SSH` (Default: `0`)
|
||||
|
||||
Setting to `1` will enable ssh server for remote log in. Note that if you are using a common password such as the defaults there is a high risk of attackers taking over you RaspberryPi.
|
||||
Setting to `1` will enable ssh server for remote log in. Note that if you are using a common password such as the defaults there is a high risk of attackers taking over you Raspberry Pi.
|
||||
|
||||
* `STAGE_LIST` (Default: `stage*`)
|
||||
|
||||
@@ -262,14 +277,13 @@ maintenance and allows for more easy customization.
|
||||
enhancements, etc. This is a base desktop system, with some development
|
||||
tools installed.
|
||||
|
||||
- **Stage 4** - Raspbian system meant to fit on a 4GB card. More development
|
||||
tools, an email client, learning tools like Scratch, specialized packages
|
||||
like sonic-pi, system documentation, office productivity, etc. This is the
|
||||
stage that installs all of the things that make Raspbian friendly to new
|
||||
users.
|
||||
- **Stage 4** - Normal Raspbian image. System meant to fit on a 4GB card. This is the
|
||||
stage that installs most things that make Raspbian friendly to new
|
||||
users like system documentation.
|
||||
|
||||
- **Stage 5** - The official Raspbian Desktop image. Right now only adds
|
||||
Mathematica.
|
||||
- **Stage 5** - The Raspbian Full image. More development
|
||||
tools, an email client, learning tools like Scratch, specialized packages
|
||||
like sonic-pi, office productivity, etc.
|
||||
|
||||
### Stage specification
|
||||
|
||||
@@ -277,7 +291,7 @@ If you wish to build up to a specified stage (such as building up to stage 2
|
||||
for a lite system), place an empty file named `SKIP` in each of the `./stage`
|
||||
directories you wish not to include.
|
||||
|
||||
Then add an empty file named `SKIP_IMAGES` to `./stage4` (if building up to stage 2) or
|
||||
Then add an empty file named `SKIP_IMAGES` to `./stage4` and `./stage5` (if building up to stage 2) or
|
||||
to `./stage2` (if building a minimal system).
|
||||
|
||||
```bash
|
||||
|
||||
+3
-1
@@ -31,7 +31,9 @@ do
|
||||
done
|
||||
|
||||
# Ensure that the configuration file is an absolute path
|
||||
CONFIG_FILE=$(realpath -s "$CONFIG_FILE")
|
||||
if test -x /usr/bin/realpath; then
|
||||
CONFIG_FILE=$(realpath -s "$CONFIG_FILE")
|
||||
fi
|
||||
|
||||
# Ensure that the confguration file is present
|
||||
if test -z "${CONFIG_FILE}"; then
|
||||
|
||||
@@ -122,6 +122,8 @@ if [ "$(id -u)" != "0" ]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
BASE_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
export BASE_DIR
|
||||
|
||||
if [ -f config ]; then
|
||||
# shellcheck disable=SC1091
|
||||
@@ -154,13 +156,14 @@ export IMG_DATE="${IMG_DATE:-"$(date +%Y-%m-%d)"}"
|
||||
export IMG_FILENAME="${IMG_FILENAME:-"${IMG_DATE}-${IMG_NAME}"}"
|
||||
export ZIP_FILENAME="${ZIP_FILENAME:-"image_${IMG_DATE}-${IMG_NAME}"}"
|
||||
|
||||
BASE_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
export SCRIPT_DIR="${BASE_DIR}/scripts"
|
||||
export WORK_DIR="${WORK_DIR:-"${BASE_DIR}/work/${IMG_DATE}-${IMG_NAME}"}"
|
||||
export DEPLOY_DIR=${DEPLOY_DIR:-"${BASE_DIR}/deploy"}
|
||||
export DEPLOY_ZIP="${DEPLOY_ZIP:-1}"
|
||||
export LOG_FILE="${WORK_DIR}/build.log"
|
||||
|
||||
export TARGET_HOSTNAME=${TARGET_HOSTNAME:-raspberrypi}
|
||||
|
||||
export FIRST_USER_NAME=${FIRST_USER_NAME:-pi}
|
||||
export FIRST_USER_PASS=${FIRST_USER_PASS:-raspberry}
|
||||
export WPA_ESSID
|
||||
@@ -177,8 +180,6 @@ export TIMEZONE_DEFAULT="${TIMEZONE_DEFAULT:-Europe/London}"
|
||||
|
||||
export GIT_HASH=${GIT_HASH:-"$(git rev-parse HEAD)"}
|
||||
|
||||
export BASE_DIR
|
||||
|
||||
export CLEAN
|
||||
export IMG_NAME
|
||||
export APT_PROXY
|
||||
@@ -219,6 +220,11 @@ if [[ -n "${APT_PROXY}" ]] && ! curl --silent "${APT_PROXY}" >/dev/null ; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ -n "${WPA_PASSWORD}" && ${#WPA_PASSWORD} -lt 8 || ${#WPA_PASSWORD} -gt 63 ]] ; then
|
||||
echo "WPA_PASSWORD" must be between 8 and 63 characters
|
||||
exit 1
|
||||
fi
|
||||
|
||||
mkdir -p "${WORK_DIR}"
|
||||
log "Begin ${BASE_DIR}"
|
||||
|
||||
@@ -246,7 +252,7 @@ for EXPORT_DIR in ${EXPORT_DIRS}; do
|
||||
fi
|
||||
done
|
||||
|
||||
if [ -x postrun.sh ]; then
|
||||
if [ -x ${BASE_DIR}/postrun.sh ]; then
|
||||
log "Begin postrun.sh"
|
||||
cd "${BASE_DIR}"
|
||||
./postrun.sh
|
||||
|
||||
@@ -18,7 +18,7 @@ ALIGN="$((4 * 1024 * 1024))"
|
||||
# some overhead (since actual space usage is usually rounded up to the
|
||||
# filesystem block size) and gives some free space on the resulting
|
||||
# image.
|
||||
ROOT_MARGIN=$((800*1024*1024))
|
||||
ROOT_MARGIN="$(echo "($ROOT_SIZE * 0.2 + 200 * 1024 * 1024) / 1" | bc)"
|
||||
|
||||
BOOT_PART_START=$((ALIGN))
|
||||
BOOT_PART_SIZE=$(((BOOT_SIZE + ALIGN - 1) / ALIGN * ALIGN))
|
||||
|
||||
@@ -1,4 +1,29 @@
|
||||
UNRELEASED:
|
||||
* Version 3.2.6 of Thonny included - significant improvements in speed, particularly when debugging
|
||||
* Version 1.0.4 of Scratch 3 included - adds new "display stage" and "display sprite" blocks to SenseHAT extension, and loading of files from command line
|
||||
* Version 32.0.0.314 of Flash player included
|
||||
* Version 1.0.3 of NodeRED included
|
||||
* Version 6.6.0 of RealVNC Server and version 6.19.923 of RealVNC Viewer included - adds support for audio
|
||||
* Version 78.0.3904.108 of Chromium included
|
||||
* Mesa updated to 19.3.2 for OpenGL ES 3.1 conformance
|
||||
* Pixel doubling option added in Raspberry Pi Configuration on platforms using FKMS display driver
|
||||
* Orca screen reader added to Recommended Software
|
||||
* Code The Classics Python games added to Recommended Software
|
||||
* File manager - new "places" pane added at top of sidebar to show mounted drives in simplified view; "new folder" icon added to taskbar; expanders in directory browser now correctly show state of subfolders
|
||||
* Multiple monitor support improved - alignment of icons on second desktop corrected, Appearance Settings opens on correct tab when launched from context menu
|
||||
* Raspberry Pi Touchscreen correctly aligned with display
|
||||
* System clock synchronised before installing new packages in startup wizard and Recommended Software
|
||||
* Mixer dialogs added to taskbar volume plugin; separate Audio Preferences application removed
|
||||
* Raspberry Pi Configuration - separate tab added for display options; screen blanking control added
|
||||
* Volume taskbar plugin and raspi-config modified to support separate ALSA devices for internal audio outputs (analogue and HDMI 1 and 2)
|
||||
* Robustness improvements in volume, ejecter and battery taskbar plugins
|
||||
* Movement of mouse pointer to menu button on startup now controlled by point_at_menu parameter in Global section of lxpanel configuration file
|
||||
* Ctrl-Alt-Del and Ctrl-Alt-End shortcuts added to open shutdown options box
|
||||
* Ctrl-Shift-Esc shortcut added to open task manager
|
||||
* Enabled NEON routines in OpenSSL
|
||||
* Linux kernel 4.19.93
|
||||
* Raspberry Pi firmware 67392a7a32bddad7f571047fccafca9eeb65d29c
|
||||
2019-09-26:
|
||||
* rpi-eeprom included
|
||||
- This will automatically update the SPI EEPROM on the Raspberry Pi 4 to the latest stable version.
|
||||
See https://rpf.io/eeprom for more information.
|
||||
|
||||
+2
-1
@@ -17,8 +17,9 @@ bootstrap(){
|
||||
BOOTSTRAP_ARGS+=(--components "main,contrib,non-free")
|
||||
BOOTSTRAP_ARGS+=(--keyring "${STAGE_DIR}/files/raspberrypi.gpg")
|
||||
BOOTSTRAP_ARGS+=("$@")
|
||||
printf -v BOOTSTRAP_STR '%q ' "${BOOTSTRAP_ARGS[@]}"
|
||||
|
||||
setarch linux32 capsh --drop=cap_setfcap -- "${BOOTSTRAP_CMD}" "${BOOTSTRAP_ARGS[@]}" || true
|
||||
setarch linux32 capsh --drop=cap_setfcap -- -c "'${BOOTSTRAP_CMD}' $BOOTSTRAP_STR" || true
|
||||
|
||||
if [ -d "$2/debootstrap" ]; then
|
||||
rmdir "$2/debootstrap"
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
Index: jessie-stage1/rootfs/etc/hosts
|
||||
===================================================================
|
||||
--- jessie-stage1.orig/rootfs/etc/hosts
|
||||
+++ jessie-stage1/rootfs/etc/hosts
|
||||
@@ -3,3 +3,4 @@
|
||||
ff02::1 ip6-allnodes
|
||||
ff02::2 ip6-allrouters
|
||||
|
||||
+127.0.1.1 raspberrypi
|
||||
@@ -1 +0,0 @@
|
||||
01-hosts.diff
|
||||
@@ -1,5 +1,6 @@
|
||||
#!/bin/bash -e
|
||||
|
||||
install -m 644 files/hostname "${ROOTFS_DIR}/etc/hostname"
|
||||
echo "${TARGET_HOSTNAME}" > "${ROOTFS_DIR}/etc/hostname"
|
||||
echo "127.0.1.1 ${TARGET_HOSTNAME}" >> "${ROOTFS_DIR}/etc/hosts"
|
||||
|
||||
ln -sf /dev/null "${ROOTFS_DIR}/etc/systemd/network/99-default.link"
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
raspberrypi
|
||||
@@ -12,11 +12,20 @@ fi
|
||||
|
||||
if [ -v WPA_ESSID ] && [ -v WPA_PASSWORD ]; then
|
||||
on_chroot <<EOF
|
||||
wpa_passphrase "${WPA_ESSID}" "${WPA_PASSWORD}" >> "/etc/wpa_supplicant/wpa_supplicant.conf"
|
||||
set -o pipefail
|
||||
wpa_passphrase "${WPA_ESSID}" "${WPA_PASSWORD}" | tee -a "/etc/wpa_supplicant/wpa_supplicant.conf"
|
||||
EOF
|
||||
elif [ -v WPA_ESSID ]; then
|
||||
cat >> "${ROOTFS_DIR}/etc/wpa_supplicant/wpa_supplicant.conf" << EOL
|
||||
|
||||
network={
|
||||
ssid="${WPA_ESSID}"
|
||||
key_mgmt=NONE
|
||||
}
|
||||
EOL
|
||||
fi
|
||||
|
||||
# Disable wifi on 5GHz models
|
||||
mkdir -p "${ROOTFS_DIR}/var/lib/systemd/rfkill/"
|
||||
echo 1 > "${ROOTFS_DIR}/var/lib/systemd/rfkill/platform-3f300000.mmc:wlan"
|
||||
echo 1 > "${ROOTFS_DIR}/var/lib/systemd/rfkill/platform-fe300000.mmc:wlan"
|
||||
echo 1 > "${ROOTFS_DIR}/var/lib/systemd/rfkill/platform-3f300000.mmcnr:wlan"
|
||||
echo 1 > "${ROOTFS_DIR}/var/lib/systemd/rfkill/platform-fe300000.mmcnr:wlan"
|
||||
|
||||
@@ -18,7 +18,6 @@ python-spidev python3-spidev
|
||||
python-twython python3-twython
|
||||
python-smbus python3-smbus
|
||||
python-flask python3-flask
|
||||
python-picraft python3-picraft
|
||||
pprompt
|
||||
piwiz
|
||||
rp-prefapps
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
#!/bin/sh -e
|
||||
|
||||
magpi_regex="MagPi[[:digit:]]*.pdf"
|
||||
magpi_loc="https://www.raspberrypi.org/magpi-issues"
|
||||
magpi_latest="$(curl "$magpi_loc/?C=M;O=D" -s | grep "$magpi_regex" -m 1 -o | head -n 1)"
|
||||
magpi_loc="$(curl -s https://magpi.raspberrypi.org/latest-pdf)"
|
||||
magpi_latest="$(echo "$magpi_loc" | grep "$magpi_regex" -m 1 -o)"
|
||||
|
||||
if [ ! -f "files/$magpi_latest" ]; then
|
||||
find files/ -regextype grep -regex "files/$magpi_regex" -delete
|
||||
wget "$magpi_loc/$magpi_latest" -O "files/$magpi_latest"
|
||||
wget "$magpi_loc" -O "files/$magpi_latest"
|
||||
fi
|
||||
|
||||
file "files/$magpi_latest" | grep -q "PDF document"
|
||||
|
||||
@@ -3,7 +3,7 @@ sonic-pi
|
||||
scratch nuscratch scratch2 scratch3
|
||||
smartsim
|
||||
|
||||
minecraft-pi python-minecraftpi
|
||||
minecraft-pi python-minecraftpi python-picraft python3-picraft
|
||||
python-sense-emu sense-emu-tools python-sense-emu-doc
|
||||
|
||||
wolfram-engine
|
||||
@@ -13,3 +13,4 @@ nodered
|
||||
realvnc-vnc-viewer
|
||||
|
||||
python-games
|
||||
code-the-classics
|
||||
|
||||
Reference in New Issue
Block a user