Commit Graph

252 Commits

Author SHA1 Message Date
Diederik de Haas 76fb71f4b1
ci: Add 'check yamls' job in (new) 'check input' stage
Add a new stage 'check input' to our CI configuration to check whether
our input files contain errors.
The first check is for the YAML files whether they contain errors or
warnings according to 'yamllint'.

Add 'yamllint' config file to not consider too long lines as errors.
And fix the errors/warnings in 'salsa-ci.yml' itself.

Apparently job names can contain space, so rename 'build-yamls' to
'build yamls'.
2022-11-11 19:52:12 +01:00
Diederik de Haas 90cc651d17 Merge branch 'add-bluez-firmware' into 'master'
Add 'bluez-firmware' package to images

See merge request raspi-team/image-specs!69
2022-11-11 15:59:30 +00:00
Diederik de Haas 6f016aa1ab
Add 'bluez-firmware' package to images
All RPi models which have wireless, also have bluetooth, so add the
firmware package to those images so that the hardware is supported.

Also remove the 'Extra' from the wireless firmware comment.
2022-11-11 12:53:54 +01:00
Diederik de Haas e522ff5f15
Remove unused/empty files
The `compress.sh` file hasn't been used for a long time.
The `.gitmodules` file was emptied as it wasn't used any more.

Just get rid of both of them.
2022-11-06 19:21:14 +01:00
Diederik de Haas b5ad7ef916
Upgrade pkgs separately before installing new ones
Upgrade the existing packages before installing new ones.
It's better to have a fully up-to-date system to work on and it could
also fix/prevent an installation issue if a package depends on an
existing, but un-upgraded one. With this change we get
"and 0 not upgraded", which was not always the case before.

Also add a '/' after the 'build' directory to make it clear it is a dir.
2022-11-05 12:48:22 +01:00
Diederik de Haas ab0c16505b Merge branch 'ci-use-eatmydata-for-apt-install' into 'master'
Use 'eatmydata' to speed up package install

See merge request raspi-team/image-specs!66
2022-11-04 21:53:43 +00:00
Diederik de Haas e8cd143468 Merge branch 'nuke-debos-stuff' into 'master'
Get rid of debos dir/stuff

Closes #18

See merge request raspi-team/image-specs!63
2022-11-04 21:48:48 +00:00
Diederik de Haas f11c05bf28
Use 'eatmydata' to speed up package install
The 'eatmydata' program is "designed to disable fsync and friends" and
can speed up tasks at the risk of potential data loss.
The speed up is welcome and the data loss not important as it would only
make the pipeline fail (most likely), but you can run it again.
2022-11-04 19:10:35 +01:00
Diederik de Haas 477ccf080b Merge branch 'ci-remove-only-keyword-statements' into 'master'
CI: Remove 'only' keyword statements

See merge request raspi-team/image-specs!65
2022-11-04 16:09:32 +00:00
Diederik de Haas 87fca3ceed
Remove 'only' keyword statements
It's unclear (to me) what they filter out. And why.

https://salsa.debian.org/help/ci/yaml/index#only-except says:
"NOTE: only and except are not being actively developed. rules is
the preferred keyword to control when to add jobs to pipelines."

So if filtering is desired, it should be added using the 'rules' keyword
and the reasoning behind it should be clarified in comments and/or
commit messages.
2022-11-04 16:07:58 +01:00
Diederik de Haas 8b680b005a
Get rid of debos dir/stuff
It's out of date, essentially unmaintained and we don't use it,
so lets get rid of it.
2022-11-04 14:04:33 +01:00
Diederik de Haas 11382958c5 Merge branch 'improve-salsa-ci' into 'master'
Various salsa CI improvements

See merge request raspi-team/image-specs!64
2022-11-04 13:00:52 +00:00
Diederik de Haas 02567af307
Don't retry on failure
As we're just starting out using CI, it is especially important to be
aware of any failure, so that we can fix it.

Such a workaround can be added later in case it is deemed necessary.
2022-11-04 13:52:34 +01:00
Diederik de Haas 8b06d14925
Rename 'build' job to 'build-yamls'
This is more describtive and also to distinguish from the build stage.
2022-11-04 13:52:34 +01:00
Diederik de Haas ad77890ede
Switch to using images maintained by salsa ci team
Debian's Salsa team has their own registry of images they maintain, so
use them instead of ones maintained by gitlab.
At https://salsa.debian.org/salsa-ci-team/pipeline/container_registry
one can view the various images they maintain.

Switch to using 'unstable' instead of 'sid'. The idea is to later also
add steps based on 'stable' and then 'unstable' matches better.
2022-11-04 13:52:34 +01:00
Diederik de Haas 5e42c6360a
Move some lines to other position in the file
It's common to define variables/constants in the top of a file, so do
that here too.

Move 'stage' field directly under step name as it's quite significant
and seen in other salsa-ci.yml as well.

Move 'image' line after 'stage' line as it's quite important as well.
2022-11-04 13:52:33 +01:00
Diederik de Haas b7df4bf849
Move .gitlab-ci.yml to debian/salsa-ci.yml
This seems to be the standard location for Salsa's CI.
2022-11-04 13:52:33 +01:00
Diederik de Haas 758b72391c Merge branch 'rename-partition-tags' into 'master'
Replace 'path' tags with 'tag-X'

See merge request raspi-team/image-specs!61
2022-11-04 12:51:38 +00:00
Diederik de Haas 55246ca61a
Replace '/boot' tag with 'tag-firmware'
This was the initial trigger for the tag-rename 'operation' as it caused
confusion (with me) as it was also a mislabeled tag, so remove the
ambiguity by renaming it to 'tag-firmware'.
2022-11-04 13:45:49 +01:00
Diederik de Haas a7d78af8a3
Replace '/' tag with 'tag-root'
Using path identifiers for tag names causes ambiguity as it's not
(immediately) clear whether a reference to it is a path or a tagname.
This causes hard to read/interpret log files and can lead to subtle and
hard to detect bugs.

The same tag can refer to different things based on the context
(partition/device/mountpoint/etc), so just use the 'tag-' prefix.

On the previous 'mount: /' step, I also added that it's to be mounted on
"dirname: '/'" to make it (more) explicit.
And removed it again as it seems you need to specify both 'dirname' AND
'mount-on' or neither. See https://bugs.debian.org/1023321
2022-11-04 13:45:49 +01:00
Diederik de Haas 189a145e0e Merge branch 'add_basic_ci' into 'master'
Add basic .gitlab-ci.yml

See merge request raspi-team/image-specs!55
2022-11-03 20:43:19 +00:00
Anton Gladky 3d9acc17d1 Add basic .gitlab-ci.yml 2022-11-03 20:43:17 +00:00
Ansgar 105c2a7621
add __RELEASE__-updates to sources.list
Closes: #62
2022-11-01 23:54:06 +01:00
Diederik de Haas b81aa80301
Enlarge firmware partition to 508MB
The firmware partition holds a copy of the initramfs and the kernel and
over the years we have seen a steady increase in its sizes.
Resizing the firmware partition later on is cumbersome as the root
partition follows directly, so it's better to make the firmware
partition not too small. A size of 508MB should be enough to accommodate
4-5 kernels+initramfs, which seems desirable.
2022-11-01 23:51:45 +01:00
Diederik de Haas 05bb2b3557
Switch to MiB units for partition sizes.
Previously one had to calculate how large the /boot/firmware partition
would be, but expressing it directly in MiB units is much clearer.

This also has the benefit that the /boot/firmware partition's size would
not change if the total image size would be changed.
Such a change should be a deliberate decision and not some side-effect.
As that 'side-effect' did happen since first submitting this patch,
revert the /boot/firmware partition's size back to 300MB.

Signed-off-by: Diederik de Haas <didi.debian@cknow.org>
2022-11-01 23:51:35 +01:00
Diederik de Haas 0f80bfa650
Remove unneeded apt-get update step.
Vmdb2 already does more then enough 'apt-get update', so no need to add
one ourselves.

Signed-off-by: Diederik de Haas <didi.debian@cknow.org>
2022-11-01 16:50:40 +01:00
Diederik de Haas a712206f62
Add raspi_*_bookworm.yaml to .gitignore 2022-11-01 16:05:31 +01:00
Diederik de Haas dc7558eb3f
Re-add 'non-free' to sources till all firmware is moved
The wireless firmware is in the firmware-brcm80211 package, but that is
still in 'non-free', so add 'non-free' back to the sources until all
the needed firmware packages are in 'non-free-firmware'.

https://salsa.debian.org/kernel-team/firmware-nonfree/-/merge_requests/36
is where the move to non-free-firmware is proposed, but not yet merged.
2022-10-31 01:32:47 +01:00
Diederik de Haas d71140b08a
Move 'contrib' removal comment to git commit msg
Previous commit not only replaced 'non-free' with 'non-free-firmware',
it also removed the 'contrib' archive area from the sources.list.
It added a note about it in the code comments, which I think is the
wrong place. The 'why' of a change belongs in a git commit message,
where one can be as verbose as needed.
Code comments should be used to clarify the 'what' (it does) in case it
would not be immediately obvious.

The removal of 'contrib' totally makes sense though.
We did not use it and 'contrib' and 'non-free' are not part of
(official) Debian, whereas 'non-free-firmware' is now part of Debian
(official media) as a consequence of the change to the Debian Social
Contract following the GR vote.
With this change, we only use what Debian itself would only use.

Fixes: 1ffce8e6bb
2022-10-30 23:56:51 +01:00
Gunnar Wolf 1ffce8e6bb For Bookworm, use the new non-free-firmware section instead of non-free 2022-10-12 10:25:53 -05:00
Diederik de Haas 1211f8af04
Add buildtime to raspi-image-id in the image itself
When the image was build also determines which package versions got
installed in the generated image and could help explain why a user has
problems with the downloaded image.

Signed-off-by: Diederik de Haas <didi.debian@cknow.org>
2022-01-14 00:19:57 +01:00
Anton Gladky afe64f3b1f
Add git commit information into the image. Fixes #43 2022-01-13 23:49:27 +01:00
Cyril Brulebois 7c65ab3d7d Mention bookworm in addition to buster and bullseye. 2021-12-09 00:07:11 +01:00
Cyril Brulebois 71bff50a8d Drop first buster mention.
We know how to build buster, bullseye, and bookworm at this point.
2021-12-09 00:07:11 +01:00
Cyril Brulebois 30850be68e Document python3 as a requirement.
It's pulled in via vmdb2 at least, but let's be explicit.
2021-12-09 00:07:00 +01:00
Cyril Brulebois 773d24900d Fix buster builds.
Regression introduced in f89f71560d2ca1bd60d97dbb26b89782657d56ae:
the sed call modifies /etc/default/raspi-firmware, which used to be
/etc/default/raspi3-firmware; while not ideal, working on
/etc/default/raspi*-firmware shouldn't interfere on unrelated files.
2021-12-08 21:59:12 +01:00
Cyril Brulebois 96ac1dcec7 Install systemd-timesyncd explicitly (fixes: #58).
It used to be pulled this way (up to Bullseye), via systemd:

    Depends: […] systemd-timesyncd | time-daemon […]

Starting with Bookworm, this was downgraded to:

    Recommends: […] systemd-timesyncd | time-daemon

Install it all the time: NTP support is important on Raspberry Pi
devices, which usually don't feature an RTC.

But be careful since Buster had systemd itself provide that feature (no
separate systemd-timesyncd package yet).

Thanks, David Tomaschik!
2021-12-08 21:38:36 +01:00
Cyril Brulebois 53b35993c7 Merge branch 'pythonize' 2021-12-08 20:49:34 +01:00
Gunnar Wolf 2ef7490999 Bumping up original image to 2GB, as we are hitting ENOSPC while building 2021-12-06 00:11:02 -06:00
Cyril Brulebois cab748ab0c Drop cma= tweaking in /etc/kernel/postinst.d/z50-raspi-firmware.
See 3f9e671fed in the boot-consistency
branch, later adjusted in 2b2bb9d6d7 for
the master branch and the new bookworm builds.

With the pythonize approach, a single change is needed.
2021-11-20 15:11:25 +01:00
Cyril Brulebois 7bcb42a2ba Merge branch 'master' into pythonize
Let's catch up with the recent changes (boot-consistency merge, mainly).

Conflicts:
	Makefile
	raspi_master.yaml
2021-11-20 14:01:01 +01:00
Cyril Brulebois 2b2bb9d6d7 Drop extraneous sed-ing of cma= in z50-raspi-firmware hook for Pi 4 (bookworm).
Commit 3f9e671fed in the boot-consistency
branch, which requires an extension to cover the new raspi_4_bookworm
build.
2021-11-20 13:57:20 +01:00
Cyril Brulebois cba96ddb16 Merge branch 'boot-consistency' 2021-11-20 13:43:53 +01:00
Diederik de Haas 66f43b854f Fix _clean_shasums to also remove *.img.sha256.
Commit 422a0d60 fixed the img.sha256 target itself, but it didn't update
the corresponding clean variant, so add that too.

Signed-off-by: Diederik de Haas <didi.debian@cknow.org>
(cherry picked from commit 60513d46f6)
Signed-off-by: Cyril Brulebois <cyril@debamax.com>
2021-11-20 04:19:23 +01:00
Cyril Brulebois 650da9d351 Pull firmware-brcm80211 from buster-backports for the Pi 3.
Commit 611b5c6d5c in master.
2021-11-20 04:17:26 +01:00
Cyril Brulebois 592c0df22e Adjust /etc/machine-id logic for buster.
Commit 26a7de63b0 in master:
/etc/machine-id needs to exist and be empty on buster, while bullseye
needs this file not to exist at all. For now, treat both bullseye and
bookworm the same way.
2021-11-20 04:09:52 +01:00
Cyril Brulebois 5f7a28d8ec Add support for bookworm. 2021-11-20 03:57:19 +01:00
Gunnar Wolf 68ebe5c385 Enable builds for Bookworm 2021-11-09 23:48:29 -06:00
Cyril Brulebois 6251ebfbe0 Move the console= parameter for the serial console.
See https://salsa.debian.org/raspi-team/image-specs/-/issues/57 for
detailed background.

Summary, e.g. on the Pi 4:
 - fresh build and first boot means:
    console=ttyS1,115200 console=tty0
 - after dpkg-reconfigure raspi-firmware has run, with the default
   settings:
    console=tty0 console=ttyS1,115200

Having some consistency across boots seems desirable (esp. when the Pi
fails to boot and the hints are on a serial console which might not be
wired), so insert the console= parameter for the serial console right
before the root= parameter.

Currently, the /etc/kernel/postinst.d/z50-raspi-firmware hook uses:

    ${pre_cmdline} root=$ROOTPART […]

and console= parameters are inserted via ${pre_cmdline}, so inserting
the serial console before root= should get us the same results.
2021-10-21 16:59:14 +02:00
Cyril Brulebois f89f71560d Make label-based booting persistent (see: #996915).
Without this, the block device holding the root filesystem would be
resolved at the first boot when reconfiguring raspi-firmware (e.g.
/dev/mmcblk1p2) which would then make the system fail to boot if it
ever shows up under a different name (e.g. /dev/mmcblk0p2).

Set ROOTPART parameter explicitly to stick to label-based booting.
2021-10-21 16:35:43 +02:00