Compare commits

..
Author SHA1 Message Date
Serge Schneider 496e41575e Revert "stage2: install fdisk"
This reverts commit e7e04fcde3.
2017-09-05 14:34:19 +01:00
Serge Schneider e7e04fcde3 stage2: install fdisk 2017-09-05 14:29:33 +01:00
Serge Schneider 5024709d70 Update release notes 2017-09-05 12:36:58 +01:00
Jacen 727db0ed63 [fixing] docker parts 2017-09-04 16:43:25 +01:00
Serge Schneider e64ea5bce4 stage3: install fonts-droid-fallback 2017-09-04 14:06:23 +01:00
Serge Schneider 63c312d1fe Update release notes 2017-09-04 12:17:49 +01:00
Serge Schneider 2f032b1d19 Update README.md
Fixes #105
2017-09-04 09:39:04 +01:00
Serge Schneider 05b31b287d Dockerfile: set DEBIAN_FRONTEND noninteractive 2017-08-31 11:27:33 +01:00
Serge Schneider b8c94731c5 stage1: fix symlink creation
Fixes #100
2017-08-31 11:24:01 +01:00
James Ruan c0513c547a export-image: when work in a non-English locale environment the PARTUUID will silently fail, resulting to an unbootable image file. (#96)
* use dd and xxd to get disk identifier

* add xxd as dependency
2017-08-31 11:22:33 +01:00
Serge Schneider dc0fb57fb9 stage2: install net-tools explicitly 2017-08-24 16:31:15 +01:00
Serge Schneider fcb8cca6ce NOOBS: bsdtar with --numeric-owner 2017-08-22 13:03:21 +01:00
Serge Schneider ce46fac1d4 Disable predictable network interface names 2017-08-21 10:15:50 +01:00
Russ K 3cc13f2aa2 Check for curl as a dependency for export-image (#95)
* Check for curl as a dependency for export-image

* Add curl to the Dockerfile
2017-08-21 09:48:55 +01:00
Serge Schneider 4dc1e1670e Update release notes 2017-08-17 14:46:35 +01:00
Serge Schneider aaaf0aea13 Update release notes 2017-08-14 15:33:06 +01:00
Serge Schneider c2db8285a1 Disable 64bit filesystem feature 2017-08-11 17:39:58 +01:00
Serge Schneider 3fe8d79947 Remove pulseaudio 2017-07-28 13:35:46 +01:00
Serge Schneider 8d40bc1bb4 stage3: Add gldriver-test 2017-07-28 13:35:46 +01:00
Serge Schneider 178b1e404b Remove NTP in favour of systemd-timesyncd 2017-07-28 13:35:46 +01:00
Serge Schneider f2060a8ee2 export-noobs: enable NOOBS config script here instead of stage2 2017-07-28 13:35:46 +01:00
Serge Schneider 7149e20f2d export-image: generate .info file 2017-07-28 13:35:46 +01:00
Serge Schneider 207003b5ed stage2: Move ssh host key regen and NOOBS config scripts to raspberrypi-sys-mods 2017-07-28 13:35:46 +01:00
Serge Schneider c77669ad9f stage2: firmware-ralink renamed to firmware-misc-nonfree 2017-07-28 13:35:46 +01:00
Serge Schneider 6618df4b08 stage2: update wait.conf 2017-07-28 13:35:46 +01:00
Serge Schneider 0f5f10d925 stage4: install liberation2 font 2017-07-28 13:35:46 +01:00
Serge Schneider 19fc4a367e stage2: Add htop 2017-07-28 13:35:46 +01:00
Serge Schneider 036e5242b3 stage2: Add libmtp-runtime and rsync 2017-07-28 13:35:46 +01:00
Serge Schneider 8f361a1c38 Switch to Stretch 2017-07-28 13:35:46 +01:00
29 changed files with 111 additions and 98 deletions
+3 -1
View File
@@ -1,10 +1,12 @@
FROM debian:stretch
ENV DEBIAN_FRONTEND noninteractive
RUN apt-get -y update && \
apt-get -y install \
git vim parted \
quilt realpath qemu-user-static debootstrap zerofree pxz zip dosfstools \
bsdtar libcap2-bin rsync grep udev xz-utils \
bsdtar libcap2-bin rsync grep udev xz-utils curl xxd \
&& rm -rf /var/lib/apt/lists/*
COPY . /pi-gen/
+1 -1
View File
@@ -166,7 +166,7 @@ from `./stage2` (if building a minimal system).
# Example for building a lite system
echo "IMG_NAME='Raspbian'" > config
touch ./stage3/SKIP ./stage4/SKIP ./stage5/SKIP
rm stage4/EXPORT*
rm stage4/EXPORT* stage5/EXPORT*
sudo ./build.sh # or ./build-docker.sh
```
+5 -5
View File
@@ -13,7 +13,6 @@ if ! $DOCKER ps >/dev/null; then
fi
set -e
config_mount=()
if [ -f config ]; then
config_mount=("-v" "$(pwd)/config:/pi-gen/config:ro")
@@ -47,13 +46,13 @@ fi
if [ "$CONTAINER_EXISTS" != "" ] && [ "$CONTINUE" != "1" ]; then
echo "Container $CONTAINER_NAME already exists and you did not specify CONTINUE=1. Aborting."
echo "You can delete the existing container like this:"
echo " docker rm -v $CONTAINER_NAME"
echo " $DOCKER rm -v $CONTAINER_NAME"
exit 1
fi
$DOCKER build -t pi-gen .
if [ "$CONTAINER_EXISTS" != "" ]; then
trap "echo 'got CTRL+C... please wait 5s';docker stop -t 5 ${CONTAINER_NAME}_cont" SIGINT SIGTERM
trap "echo 'got CTRL+C... please wait 5s'; $DOCKER stop -t 5 ${CONTAINER_NAME}_cont" SIGINT SIGTERM
time $DOCKER run --rm --privileged \
--volumes-from="${CONTAINER_NAME}" --name "${CONTAINER_NAME}_cont" \
-e IMG_NAME=${IMG_NAME}\
@@ -63,8 +62,8 @@ if [ "$CONTAINER_EXISTS" != "" ]; then
rsync -av work/*/build.log deploy/" &
wait
else
trap "echo 'got CTRL+C... please wait 5s'; docker stop -t 5 ${CONTAINER_NAME}" SIGINT SIGTERM
$DOCKER run --name "${CONTAINER_NAME}" --privileged \
trap "echo 'got CTRL+C... please wait 5s'; $DOCKER stop -t 5 ${CONTAINER_NAME}" SIGINT SIGTERM
time $DOCKER run --name "${CONTAINER_NAME}" --privileged \
-e IMG_NAME=${IMG_NAME}\
-v "$(pwd)/deploy:/pi-gen/deploy" \
"${config_mount[@]}" \
@@ -73,5 +72,6 @@ else
cd /pi-gen; ./build.sh &&
rsync -av work/*/build.log deploy/" &
wait
$DOCKER rm -v $CONTAINER_NAME
fi
echo "Done! Your image(s) should be in deploy/"
+2
View File
@@ -11,3 +11,5 @@ bsdtar
grep
rsync
xz:xz-utils
curl
xxd
@@ -3,7 +3,7 @@ Index: export-jessie/rootfs/etc/apt/sources.list.d/raspi.list
--- export-jessie.orig/rootfs/etc/apt/sources.list.d/raspi.list
+++ export-jessie/rootfs/etc/apt/sources.list.d/raspi.list
@@ -1,3 +1,3 @@
-deb http://archive.raspberrypi.org/debian/ jessie main ui staging
+deb http://archive.raspberrypi.org/debian/ jessie main ui
-deb http://archive.raspberrypi.org/debian/ stretch main ui staging
+deb http://archive.raspberrypi.org/debian/ stretch main ui
# Uncomment line below then 'apt-get update' to enable 'apt-get source'
#deb-src http://archive.raspberrypi.org/debian/ jessie main ui
#deb-src http://archive.raspberrypi.org/debian/ stretch main ui
+1 -1
View File
@@ -2,7 +2,7 @@
IMG_FILE="${STAGE_WORK_DIR}/${IMG_DATE}-${IMG_NAME}${IMG_SUFFIX}.img"
IMGID="$(fdisk -l ${IMG_FILE} | sed -n 's/Disk identifier: 0x\([^ ]*\)/\1/p')"
IMGID="$(dd if=${IMG_FILE} skip=440 bs=1 count=4 2>/dev/null | xxd -e | cut -f 2 -d' ')"
BOOT_PARTUUID="${IMGID}-01"
ROOT_PARTUUID="${IMGID}-02"
+21 -1
View File
@@ -1,6 +1,7 @@
#!/bin/bash -e
IMG_FILE="${STAGE_WORK_DIR}/${IMG_DATE}-${IMG_NAME}${IMG_SUFFIX}.img"
INFO_FILE="${STAGE_WORK_DIR}/${IMG_DATE}-${IMG_NAME}${IMG_SUFFIX}.info"
on_chroot << EOF
/etc/init.d/fake-hwclock stop
@@ -47,6 +48,24 @@ update_issue $(basename ${EXPORT_DIR})
install -m 644 ${ROOTFS_DIR}/etc/rpi-issue ${ROOTFS_DIR}/boot/issue.txt
install files/LICENSE.oracle ${ROOTFS_DIR}/boot/
cp "$ROOTFS_DIR/etc/rpi-issue" "$INFO_FILE"
firmware=$(zgrep "firmware as of" "$ROOTFS_DIR/usr/share/doc/raspberrypi-kernel/changelog.Debian.gz" | \
head -n1 | \
sed -n 's|.* \([^ ]*\)$|\1|p')
printf "\nFirmware: https://github.com/raspberrypi/firmware/tree/%s\n" "$firmware" >> "$INFO_FILE"
kernel=$(curl -s -L "https://github.com/raspberrypi/firmware/raw/$firmware/extra/git_hash")
printf "Kernel: https://github.com/raspberrypi/linux/tree/%s\n" "$kernel" >> "$INFO_FILE"
uname=$(curl -s -L "https://github.com/raspberrypi/firmware/raw/$firmware/extra/uname_string7")
printf "Uname string: %s\n" "$uname" >> "$INFO_FILE"
printf "\nPackages:\n">> "$INFO_FILE"
dpkg -l --root "$ROOTFS_DIR" >> "$INFO_FILE"
ROOT_DEV=$(mount | grep "${ROOTFS_DIR} " | cut -f1 -d' ')
unmount ${ROOTFS_DIR}
@@ -58,7 +77,8 @@ mkdir -p ${DEPLOY_DIR}
rm -f ${DEPLOY_DIR}/image_${IMG_DATE}-${IMG_NAME}${IMG_SUFFIX}.zip
echo zip ${DEPLOY_DIR}/image_${IMG_DATE}-${IMG_NAME}${IMG_SUFFIX}.zip ${IMG_FILE}
pushd ${STAGE_WORK_DIR} > /dev/null
zip ${DEPLOY_DIR}/image_${IMG_DATE}-${IMG_NAME}${IMG_SUFFIX}.zip $(basename ${IMG_FILE})
popd > /dev/null
cp "$INFO_FILE" "$DEPLOY_DIR"
+5 -3
View File
@@ -52,9 +52,11 @@ echo "/boot: offset $BOOT_OFFSET, length $BOOT_LENGTH"
echo "/: offset $ROOT_OFFSET, length $ROOT_LENGTH"
ROOT_FEATURES="^huge_file"
if grep -q "metadata_csum" /etc/mke2fs.conf; then
ROOT_FEATURES="^metadata_csum,$ROOT_FEATURES"
fi
for FEATURE in metadata_csum 64bit; do
if grep -q "$FEATURE" /etc/mke2fs.conf; then
ROOT_FEATURES="^$FEATURE,$ROOT_FEATURES"
fi
done
mkdosfs -n boot -F 32 -v $BOOT_DEV > /dev/null
mkfs.ext4 -O $ROOT_FEATURES $ROOT_DEV > /dev/null
+1 -1
View File
@@ -14,5 +14,5 @@
],
"url": "http://www.raspbian.org/",
"username": "pi",
"version": "jessie"
"version": "stretch"
}
@@ -1,5 +1,27 @@
UNRELEASED:
*
* Disable predictable network interface names for Ethernet devices
* Bug fix for keyboard settings dialog in Raspberry Pi Configuration
* Bug fix for crash on some videos and animations in Chromium
* Bug fix for taskbar crash when running RealVNC server
* Bug fix for reloading projects with extensions in Scratch 2
* Bug fix for MAC address problem in Bluetooth
* Simple mode and new icons in Thonny
* New Japanese translations in Raspberry Pi Configuration
* Install fonts-droid-fallback for international fonts
2017-08-16:
* Based on Raspbian Stretch (Debian version 9)
* Version 60 of Chromium browser included
* Version 3.0.1 of Sonic Pi included
* Version 6.1.1 of RealVNC included
* Version 0.17.4 of NodeRED included
* Bluetooth audio routed via ALSA rather than Pulseaudio
* SenseHAT extension added to Scratch 2
* Various desktop applications modified to prompt for sudo password if needed
* lxinput control options for mouse speed simplified
* lxpanel plugins moved into separate packages
* Wireless firmware for Pi 3 and Pi 0W modified to address Broadpwn exploit
* Latest kernel and firmware
* Various small tweaks, bug fixes and theme modifications
2017-07-05:
* New kernel and firmware
* Filesystem created without the metadata_csum feature
+4 -2
View File
@@ -31,8 +31,10 @@ mkdir -p ${NOOBS_DIR}
mount $ROOT_DEV ${STAGE_WORK_DIR}/rootfs
mount $BOOT_DEV ${STAGE_WORK_DIR}/rootfs/boot
bsdtar --format gnutar --use-compress-program pxz -C ${STAGE_WORK_DIR}/rootfs/boot -cpf ${NOOBS_DIR}/boot.tar.xz .
ln -sv "/lib/systemd/system/apply_noobs_os_config.service" "$ROOTFS_DIR/etc/systemd/system/multi-user.target.wants/apply_noobs_os_config.service"
bsdtar --numeric-owner --format gnutar --use-compress-program pxz -C ${STAGE_WORK_DIR}/rootfs/boot -cpf ${NOOBS_DIR}/boot.tar.xz .
umount ${STAGE_WORK_DIR}/rootfs/boot
bsdtar --format gnutar --use-compress-program pxz -C ${STAGE_WORK_DIR}/rootfs --one-file-system -cpf ${NOOBS_DIR}/root.tar.xz .
bsdtar --numeric-owner --format gnutar --use-compress-program pxz -C ${STAGE_WORK_DIR}/rootfs --one-file-system -cpf ${NOOBS_DIR}/root.tar.xz .
unmount_image ${IMG_FILE}
+2 -2
View File
@@ -1,3 +1,3 @@
deb http://archive.raspberrypi.org/debian/ jessie main ui staging
deb http://archive.raspberrypi.org/debian/ stretch main ui staging
# Uncomment line below then 'apt-get update' to enable 'apt-get source'
#deb-src http://archive.raspberrypi.org/debian/ jessie main ui
#deb-src http://archive.raspberrypi.org/debian/ stretch main ui
+2 -2
View File
@@ -1,3 +1,3 @@
deb http://mirrordirector.raspbian.org/raspbian/ jessie main contrib non-free rpi
deb http://mirrordirector.raspbian.org/raspbian/ stretch main contrib non-free rpi
# Uncomment line below then 'apt-get update' to enable 'apt-get source'
#deb-src http://archive.raspbian.org/raspbian/ jessie main contrib non-free rpi
#deb-src http://archive.raspbian.org/raspbian/ stretch main contrib non-free rpi
+1 -1
View File
@@ -1,5 +1,5 @@
#!/bin/bash -e
if [ ! -d ${ROOTFS_DIR} ]; then
bootstrap jessie ${ROOTFS_DIR} http://mirrordirector.raspbian.org/raspbian/
bootstrap stretch ${ROOTFS_DIR} http://mirrordirector.raspbian.org/raspbian/
fi
@@ -1,13 +0,0 @@
Index: jessie-stage1/rootfs/lib/udev/rules.d/75-persistent-net-generator.rules
===================================================================
--- jessie-stage1.orig/rootfs/lib/udev/rules.d/75-persistent-net-generator.rules
+++ jessie-stage1/rootfs/lib/udev/rules.d/75-persistent-net-generator.rules
@@ -22,7 +22,7 @@ IMPORT{cmdline}="net.ifnames"
ENV{net.ifnames}=="1", GOTO="persistent_net_generator_end"
# device name whitelist
-KERNEL!="eth*|ath*|wlan*[0-9]|msh*|ra*|sta*|ctc*|lcs*|hsi*", \
+KERNEL!="ath*|msh*|ra*|sta*|ctc*|lcs*|hsi*", \
GOTO="persistent_net_generator_end"
# ignore Xen virtual interfaces
-1
View File
@@ -1,2 +1 @@
01-hosts.diff
02-persistant-net.diff
+1 -4
View File
@@ -1,9 +1,6 @@
#!/bin/bash -e
install -m 644 files/ipv6.conf ${ROOTFS_DIR}/etc/modprobe.d/ipv6.conf
install -m 644 files/interfaces ${ROOTFS_DIR}/etc/network/interfaces
install -m 644 files/hostname ${ROOTFS_DIR}/etc/hostname
on_chroot << EOF
dpkg-divert --add --local /lib/udev/rules.d/75-persistent-net-generator.rules
EOF
ln -sf /dev/null ${ROOTFS_DIR}/etc/systemd/network/99-default.link
+5 -2
View File
@@ -1,4 +1,4 @@
ssh less fbset sudo psmisc strace module-init-tools ed ncdu crda
ssh less fbset sudo psmisc strace ed ncdu crda
console-setup keyboard-configuration debconf-utils parted unzip
build-essential manpages-dev python bash-completion gdb pkg-config
python-rpi.gpio v4l-utils
@@ -6,7 +6,7 @@ avahi-daemon
lua5.1
luajit
hardlink ca-certificates curl
fake-hwclock ntp nfs-common usbutils
fake-hwclock nfs-common usbutils
libraspberrypi-dev libraspberrypi-doc libfreetype6-dev
dosfstools
dphys-swapfile
@@ -17,3 +17,6 @@ usb-modeswitch
apt-transport-https
libpam-chksshpwd
rpi-update
libmtp-runtime
rsync
htop
-1
View File
@@ -2,5 +2,4 @@
02-swap.diff
04-inputrc.diff
05-path.diff
06-rc_local.diff
07-resize-init.diff
+2 -3
View File
@@ -1,7 +1,5 @@
#!/bin/bash -e
install -m 644 files/regenerate_ssh_host_keys.service ${ROOTFS_DIR}/lib/systemd/system/
install -m 755 files/apply_noobs_os_config ${ROOTFS_DIR}/etc/init.d/
install -m 755 files/resize2fs_once ${ROOTFS_DIR}/etc/init.d/
install -d ${ROOTFS_DIR}/etc/systemd/system/rc-local.service.d
@@ -11,13 +9,14 @@ install -m 644 files/50raspi ${ROOTFS_DIR}/etc/apt/apt.conf.d/
install -m 644 files/console-setup ${ROOTFS_DIR}/etc/default/
install -m 755 files/rc.local ${ROOTFS_DIR}/etc/
on_chroot << EOF
systemctl disable hwclock.sh
systemctl disable nfs-common
systemctl disable rpcbind
systemctl disable ssh
systemctl enable regenerate_ssh_host_keys
systemctl enable apply_noobs_os_config
systemctl enable resize2fs_once
EOF
@@ -1,31 +0,0 @@
#!/bin/sh
### BEGIN INIT INFO
# Provides: apply_noobs_os_config
# Required-Start:
# Required-Stop:
# Default-Start: 2
# Default-Stop:
# Short-Description: Apply config from /boot/os_config.json
# Description:
### END INIT INFO
. /lib/lsb/init-functions
set -e
case "$1" in
start)
log_daemon_msg "Applying config from /boot/os_config.json (if it exists)"
if raspi-config --apply-os-config; then
update-rc.d apply_noobs_os_config remove
rm /etc/init.d/apply_noobs_os_config
log_end_msg 0
else
log_end_msg 1
fi
;;
*)
echo "Usage: $0 start" >&2
exit 3
;;
esac
+20
View File
@@ -0,0 +1,20 @@
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
# Print the IP address
_IP=$(hostname -I) || true
if [ "$_IP" ]; then
printf "My IP address is %s\n" "$_IP"
fi
exit 0
@@ -1,11 +0,0 @@
[Unit]
Description=Regenerate SSH host keys
[Service]
Type=oneshot
ExecStartPre=/bin/sh -c "if [ -e /dev/hwrng ]; then dd if=/dev/hwrng of=/dev/urandom count=1 bs=4096; fi"
ExecStart=/usr/bin/ssh-keygen -A
ExecStartPost=/bin/rm /lib/systemd/system/regenerate_ssh_host_keys.service ; /usr/sbin/update-rc.d regenerate_ssh_host_keys remove
[Install]
WantedBy=multi-user.target
+2 -1
View File
@@ -1,3 +1,4 @@
wpasupplicant wireless-tools firmware-atheros firmware-brcm80211 firmware-libertas firmware-ralink firmware-realtek
wpasupplicant wireless-tools firmware-atheros firmware-brcm80211 firmware-libertas firmware-misc-nonfree firmware-realtek
raspberrypi-net-mods
dhcpcd5
net-tools
+1 -1
View File
@@ -1,3 +1,3 @@
[Service]
ExecStart=
ExecStart=/sbin/dhcpcd -q -w
ExecStart=/usr/lib/dhcpcd5/dhcpcd -q -w
+1 -1
View File
@@ -1,2 +1,2 @@
NOOBS_NAME="Raspbian Lite"
NOOBS_DESCRIPTION="A port of Debian jessie for the Raspberry Pi (minimal version)"
NOOBS_DESCRIPTION="A port of Debian Stretch for the Raspberry Pi (minimal version)"
+2
View File
@@ -8,3 +8,5 @@ policykit-1
gvfs
rfkill
chromium-browser rpi-chromium-mods
gldriver-test
fonts-droid-fallback
+2 -4
View File
@@ -8,11 +8,11 @@ python-serial python3-serial
python-picamera python3-picamera
debian-reference-en dillo x2x
raspberrypi-net-mods raspberrypi-ui-mods
smartsim penguinspuzzle
fonts-liberation2
smartsim
python-pip python3-pip
python3-numpy
pypy
python3-pifacecommon python3-pifacedigitalio python3-pifacedigital-scratch-handler python-pifacecommon python-pifacedigitalio
minecraft-pi python-minecraftpi
alacarte rc-gui sense-hat
claws-mail
@@ -23,14 +23,12 @@ nodered
libgl1-mesa-dri libgles1-mesa libgles2-mesa xcompmgr
geany
piclone
pulseaudio-module-bluetooth
wiringpi pigpio python-pigpio python3-pigpio raspi-gpio python-gpiozero python3-gpiozero python3-rpi.gpio
python-spidev python3-spidev
python-twython python3-twython
python-smbus python3-smbus
python-flask python3-flask
python-picraft python3-picraft
python3-codebug-tether python3-codebug-i2c-tether
python-sense-emu python3-sense-emu sense-emu-tools python-sense-emu-doc
pprompt
scratch2
+1 -1
View File
@@ -1,2 +1,2 @@
NOOBS_NAME="Raspbian"
NOOBS_DESCRIPTION="A port of Debian jessie for the Raspberry Pi (full desktop version)"
NOOBS_DESCRIPTION="A port of Debian Stretch for the Raspberry Pi (full desktop version)"