Compare commits

..
Author SHA1 Message Date
Serge Schneider a0060bd475 export-image: increase free space padding 2017-06-21 10:56:07 +01:00
Serge Schneider d2b8d634b9 export-image: switch from fallocate to truncate 2017-06-21 10:46:10 +01:00
Serge Schneider d347d8d5f7 stage0: configure apt before locales 2017-06-21 08:55:30 +01:00
Serge Schneider 530b66fd3f bootstrap: cope with NFS and FUSE filesystems 2017-06-20 16:17:12 +01:00
Serge Schneider 02728fe65e export-image: use apparent size when calculating disk usage 2017-06-20 16:13:59 +01:00
Serge Schneider e583c18eba stage4: install python3-thonny 2017-06-20 16:12:32 +01:00
Serge Schneider 046db2d3d3 NOOBS: update kernel version number 2017-06-20 16:11:17 +01:00
Serge Schneider f9637fb24e Update release notes 2017-05-15 16:46:18 +01:00
Serge Schneider 921202e371 stage4: add /etc/mtab symlink 2017-05-15 16:40:31 +01:00
Serge Schneider dc7b589e7a Move rpi-update from stage3 to stage2 2017-05-15 15:46:59 +01:00
Serge Schneider 3c0b364028 stage0: Install locales
fixes #65
2017-05-15 14:48:25 +01:00
Serge Schneider 51f27e752c stage4: Add Thonny 2017-05-10 13:43:50 +01:00
Serge Schneider f89ebe2382 stage4: Add Scratch 2 2017-05-10 13:43:50 +01:00
Serge Schneider d64c21bfc9 stage4: Add pimoroni's packages 2017-05-10 13:43:50 +01:00
Ben Nuttall 7bbaac3344 Shorten config.txt url
Because why not? :)
2017-05-10 13:32:43 +01:00
Serge Schneider 8e377c407f stage0: Verify Releases during bootstrap
Fixes #5
2017-05-10 13:09:20 +01:00
Serge Schneider 4e5dc43a36 stage4: Install 'git' instead of transitional package 'git-core'
Fixes #11
2017-05-08 16:49:13 +01:00
T. Joseph Carter d729fc2dbb README.md: Describe more config variables, cleanup
Added some documentation of environment variables to README.md,
specifically WORK_DIR and DEPLOY_DIR.  Explicitly did not include
SCRIPT_DIR at this time because that appears to require some small work
before it can be changed.

Took the chance for some other syntax cleanups while I was at it, mostly
breaking long lines and inserting whitespace where some Markdown parsers
require it.
2017-05-08 16:25:04 +01:00
22 changed files with 109 additions and 30 deletions
-3
View File
@@ -1,3 +0,0 @@
test:
script:
- echo "test"
+57 -9
View File
@@ -1,12 +1,24 @@
# pi-gen
_Tool used to create the raspberrypi.org Raspbian images_
### TODO
1. Documentation
## Dependencies
`quilt parted realpath qemu-user-static debootstrap zerofree pxz zip dosfstools bsdtar libcap2-bin grep rsync`
On Debian-based systems:
```bash
apt-get install quilt parted realpath qemu-user-static debootstrap zerofree pxz zip \
dosfstools bsdtar libcap2-bin grep rsync
```
The file `depends` contains a list of tools needed. The format of this
package is `<tool>[:<debian-package>]`.
## Config
@@ -29,29 +41,57 @@ The following environment variables are supported:
will not be included in the image, making it safe to use an `apt-cacher` or
similar package for development.
* `BASE_DIR` (Default: location of `build.sh`)
**CAUTION**: Currently, changing this value will probably break build.sh
Top-level directory for `pi-gen`. Contains stage directories, build
scripts, and by default both work and deployment directories.
* `WORK_DIR` (Default: `"$BASE_DIR/work"`)
Directory in which `pi-gen` builds the target system. This value can be
changed if you have a suitably large, fast storage location for stages to
be built and cached. Note, `WORK_DIR` stores a complete copy of the target
system for each build stage, amounting to tens of gigabytes in the case of
Raspbian.
* `DEPLOY_DIR` (Default: `"$BASE_DIR/deploy"`)
Output directory for target system images and NOOBS bundles.
A simple example for building Raspbian:
```bash
IMG_NAME='Raspbian'
```
## Docker Build
```bash
vi config # Edit your config file. See above.
./build-docker.sh
```
If everything goes well, your finished image will be in the `deploy/` folder.
You can then remove the build container with `docker rm pigen_work`
If something breaks along the line, you can edit the corresponding scripts, and
continue:
```
```bash
CONTINUE=1 ./build-docker.sh
```
There is a possibility that even when running from a docker container, the installation of `qemu-user-static` will silently fail when building the image because `binfmt-support` _must be enabled on the underlying kernel_. An easy fix is to ensure `binfmt-support` is installed on the host machine before starting the `./build-docker.sh` script (or using your own docker build solution).
There is a possibility that even when running from a docker container, the
installation of `qemu-user-static` will silently fail when building the image
because `binfmt-support` _must be enabled on the underlying kernel_. An easy
fix is to ensure `binfmt-support` is installed on the host machine before
starting the `./build-docker.sh` script (or using your own docker build
solution).
## Stage Anatomy
@@ -104,14 +144,22 @@ maintenance and allows for more easy customization.
the stage that installs all of the things that make Raspbian friendly to
new users.
### Stage specification
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 remove the `EXPORT*` files from `./stage4` (if building up to stage 2) or from `./stage2` (if building a minimal system).
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 remove the `EXPORT*` files from `./stage4` (if building up to stage 2) or
from `./stage2` (if building a minimal system).
```bash
# Example for building a lite system
$ touch ./stage3/SKIP ./stage4/SKIP
$ rm stage4/EXPORT*
touch ./stage3/SKIP ./stage4/SKIP
rm stage4/EXPORT*
```
If you wish to build further configurations upon (for example) the lite system, you can also delete the contents of `./stage3` and `./stage4` and replace with your own contents in the same format.
If you wish to build further configurations upon (for example) the lite
system, you can also delete the contents of `./stage3` and `./stage4` and
replace with your own contents in the same format.
+2
View File
@@ -35,6 +35,8 @@ rm -f ${ROOTFS_DIR}/var/lib/dbus/machine-id
true > ${ROOTFS_DIR}/etc/machine-id
ln -nsf /proc/mounts ${ROOTFS_DIR}/etc/mtab
for _FILE in $(find ${ROOTFS_DIR}/var/log/ -type f); do
true > ${_FILE}
done
+4 -4
View File
@@ -8,12 +8,12 @@ rm -f ${IMG_FILE}
rm -rf ${ROOTFS_DIR}
mkdir -p ${ROOTFS_DIR}
BOOT_SIZE=$(du -s ${EXPORT_ROOTFS_DIR}/boot --block-size=1 | cut -f 1)
TOTAL_SIZE=$(du -s ${EXPORT_ROOTFS_DIR} --exclude var/cache/apt/archives --block-size=1 | cut -f 1)
BOOT_SIZE=$(du --apparent-size -s ${EXPORT_ROOTFS_DIR}/boot --block-size=1 | cut -f 1)
TOTAL_SIZE=$(du --apparent-size -s ${EXPORT_ROOTFS_DIR} --exclude var/cache/apt/archives --block-size=1 | cut -f 1)
IMG_SIZE=$((BOOT_SIZE + TOTAL_SIZE + (400 * 1024 * 1024)))
IMG_SIZE=$((BOOT_SIZE + TOTAL_SIZE + (800 * 1024 * 1024)))
fallocate -l ${IMG_SIZE} ${IMG_FILE}
truncate -s ${IMG_SIZE} ${IMG_FILE}
fdisk -H 255 -S 63 ${IMG_FILE} <<EOF
o
n
+1 -1
View File
@@ -1,7 +1,7 @@
{
"description": "NOOBS_DESCRIPTION",
"feature_level": 35120124,
"kernel": "4.4",
"kernel": "4.9",
"name": "NOOBS_NAME",
"password": "raspberry",
"release_date": "UNRELEASED",
@@ -1,4 +1,13 @@
UNRELEASED:
* Scratch 2 application included
* Thonny Python IDE included
* New icons with thinner outlines
* Volume control more linear in behaviour
* Updated Flash player
* Updated RealVNC server and viewer
* Various tweaks and bugfixes
* New kernel and firmware
2017-04-10:
* Wolfram Mathematica updated to version 11.0.1
* Adobe Flash Player updated to version 25.0.0.127
* Use PARTUUID to support USB boot
+3 -3
View File
@@ -16,9 +16,9 @@ bootstrap(){
fi
capsh --drop=cap_setfcap -- -c "${BOOTSTRAP_CMD} --components=main,contrib,non-free \
--arch armhf\
--no-check-gpg \
$1 $2 $3"
--arch armhf \
--keyring "${STAGE_DIR}/files/raspberrypi.gpg" \
$1 $2 $3" || rmdir "$2/debootstrap"
}
export -f bootstrap
File diff suppressed because one or more lines are too long
+1
View File
@@ -0,0 +1 @@
locales
Binary file not shown.
+1 -1
View File
@@ -1,5 +1,5 @@
# For more options and information see
# http://rpf.io/configtxtreadme
# http://rpf.io/configtxt
# Some settings may impact device functionality. See link above for details
# uncomment if you get no picture on HDMI for a default "safe" mode
File diff suppressed because one or more lines are too long
+2 -1
View File
@@ -1,4 +1,4 @@
ssh locales less fbset sudo psmisc strace module-init-tools ed ncdu crda
ssh less fbset sudo psmisc strace module-init-tools 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
@@ -16,3 +16,4 @@ apt-listchanges
usb-modeswitch
apt-transport-https
libpam-chksshpwd
rpi-update
+1 -1
View File
@@ -1,7 +1,7 @@
gstreamer1.0-x gstreamer1.0-omx gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-alsa gstreamer1.0-libav
xpdf gtk2-engines alsa-utils
desktop-base
git-core rpi-update
git
omxplayer
raspberrypi-artwork
policykit-1
+2
View File
@@ -33,3 +33,5 @@ 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
python3-thonny
+19
View File
@@ -0,0 +1,19 @@
python-automationhat python3-automationhat
python-blinkt python3-blinkt
python-cap1xxx python3-cap1xxx
python-drumhat python3-drumhat
python-envirophat python3-envirophat
python-explorerhat python3-explorerhat
python-fourletterphat python3-fourletterphat
python-microdotphat python3-microdotphat
python-mote python3-mote
python-motephat python3-motephat
python-phatbeat python3-phatbeat
python-pianohat python3-pianohat
python-piglow python3-piglow
python-rainbowhat python3-rainbowhat
python-scrollphat python3-scrollphat
python-scrollphathd python3-scrollphathd
python-sn3218 python3-sn3218
python-skywriter python3-skywriter
python-touchphat python3-touchphat
+1 -1
View File
@@ -1,2 +1,2 @@
NOOBS_NAME="Raspbian with PIXEL"
NOOBS_NAME="Raspbian"
NOOBS_DESCRIPTION="A port of Debian jessie for the Raspberry Pi (full desktop version)"