Commit Graph

1298 Commits

Author SHA1 Message Date
nl6720
ee4e4a96d2
Add changelog for 68 2022-10-30 10:39:45 +02:00
nl6720
e0e4d200c1
configs/releng/airootfs/etc/mkinitcpio.conf: replace the deprecated archiso_kms hook with kms
The archiso_kms hook was moved from mkinitcpio-archiso to the mkinitcpio project.

See 7bfe4861ea and dec17db532
2022-10-25 12:18:56 +03:00
nl6720
2f9cfdf42f
configs/: remove "Copy to RAM" boot entries since it is automatic now
The default is now copytoram=auto which enables copying to RAM when the rootfs image size is less than 4 GiB and free RAM exceeds the rootfs image size + 2 GiB.

See https://gitlab.archlinux.org/mkinitcpio/mkinitcpio-archiso/-/issues/13 and https://gitlab.archlinux.org/mkinitcpio/mkinitcpio-archiso/-/merge_requests/26.

Implements #177.
2022-10-22 17:31:46 +03:00
nl6720
11971619a6
mkarchiso: do not sign .sig files
Make sure existing sig files are deleted before creating new ones and make sure to not sign any sig files.

This allows retrying failed mkarchiso runs without ending up with files such as vmlinuz.ipxe.sig.ipxe.sig.

Fixes #198
2022-10-13 13:37:14 +03:00
nl6720
f4f0a3a5ec
configs/: Do not explicitly enable qemu-guest-agent.service
qemu-guest-agent.service will be started by the /usr/lib/udev/rules.d/99-qemu-guest-agent.rules udev rule.

Fixes #199
2022-10-06 15:56:18 +03:00
David Runge
fbc72247b8
Add changelog for version 67
CHANGELOG.rst:
Add changelog for version 67.
2022-09-25 19:59:58 +02:00
David Runge
3e962dbeda
Update PGP key ID for David Runge
README.rst:
Change referenced PGP key ID from `C7E7849466FE2358343588377258734B41C31549` to
`991F6E3F0765CF6295888586139B09DA5BF0D338`, as the latter is now in used. The keys are cross-signed and both available
via Arch Linux's WKD.
2022-09-25 19:59:05 +02:00
Anton Hvornum
326cfed7cc
Add the ability to generate rootfs signatures using openssl CMS module if `-c` is given.
(gitlab ci)

Added a CA structure to the codesigning certificates.
This to test the functionality of optional CA being in the signing message.

(mkarchiso)
Removed the ``sign_netboot_artifacts`` variable and instead
we'll now rely on ``if [[ -v cert_list ]]; then``.

Added ``ARCHISO_TLS_FD`` and ``ARCHISO_TLSCA_FD`` environment variables
to override the certificates used. This is so that third party CA's can
be used during building in a meaningful way without distrupting the
CA trust that is shipped by default.

_cms_sign_artifact() was added which signs the rootfs using OpenSSL CMS.
The files will be saved as "${artifact}.cms.sig". That would be for instance
"${isofs_dir}/${install_dir}/${arch}/airootfs.sfs.cms.sig".
2022-09-25 19:54:41 +02:00
David Runge
5f135b4342
Add changelog entry for ordering pacman-init after time-sync.target
CHANGELOG.rst:
Add changelog entry for ordering pacman-init after time-sync.target
2022-09-25 15:43:41 +02:00
David Runge
3f55c95613
Order pacman-init.service after time-sync.target
configs/releng/airootfs/etc/systemd/system/pacman-init.service:
Order pacman-init.service after time-sync.target, so that time on the host is synchronized before initializing pacman.
2022-09-25 15:39:28 +02:00
David Runge
69b22dc41f
Enable systemd-timesyncd and systemd-time-wait-sync
configs/releng/airootfs/etc/systemd/system/{dbus-org.freedesktop.timesync1},sysinit.target.wants/systemd-timesyncd}.service:
Enable systemd-timesyncd which aliases to dbus-org.freedesktop.timesync1 to ensure time gets synced on the host.

configs/releng/airootfs/etc/systemd/system/sysinit.target.wants/systemd-time-wait-sync.service:
Enable systemd-time-wait-sync to ensure time is finished syncing when time-sync.target is finished.
2022-09-25 15:36:18 +02:00
nl6720
8afa2b65d5
Merge remote-tracking branch 'origin/merge-requests/286'
By Tobias Powalowski
* origin/merge-requests/286:
  remove ipw2100-fw and ipw2200-fw, cleanup of [core]

https://lists.archlinux.org/archives/list/arch-dev-public@lists.archlinux.org/thread/UKXPJEJZPU5PFKAPSATNL2DSWFGNEUCK/

See merge request https://gitlab.archlinux.org/archlinux/archiso/-/merge_requests/286
2022-09-22 12:16:24 +03:00
Tobias Powalowski
4d64a58a90 remove ipw2100-fw and ipw2200-fw, cleanup of [core] 2022-09-22 11:01:03 +02:00
nl6720
ced3d3ffa3
Order pacman-init.service before archlinux-keyring-wkd-sync.service
archlinux-keyring-wkd-sync.service needs an initialized pacman keyring to work.

Add BindsTo=etc-pacman.d-gnupg.mount to stop pacman-init.service if the mount unit suddenly enters inactive state.
2022-09-01 09:41:00 +03:00
nl6720
674f004170
Add changelog for 66 2022-08-28 15:19:52 +03:00
nl6720
8ed192b705
Merge remote-tracking branch 'origin/merge-requests/281'
By Christian Hesse
* origin/merge-requests/281:
  mkarchiso: touch clock-epoch for extra hint on date and time

See merge request https://gitlab.archlinux.org/archlinux/archiso/-/merge_requests/281

While it feels dirty to place files in /usr/lib/, since it is the package manager's teritory, the path is unfortunately hardcoded.
5170afbc55
2022-08-28 15:10:12 +03:00
Christian Hesse
aef242720d mkarchiso: touch clock-epoch for extra hint on date and time
This helps on systems with screwed or broken RTC.
2022-08-26 14:46:59 +02:00
nl6720
642beb7e70
Merge remote-tracking branch 'origin/merge-requests/277'
By Kristian Klausen
* origin/merge-requests/277:
  Use VM runners[1] for building

See merge request https://gitlab.archlinux.org/archlinux/archiso/-/merge_requests/277
2022-08-22 10:01:55 +03:00
Kristian Klausen
a2e886b4b9
Use VM runners[1] for building
Building inside a TCG accelerated qemu VM is slow and painful, but it is
the only option when running in a non-privileged container.

arch-boxes has been built inside a KVM accelerated VMs ("VM runner") for
over 11 months[2] and recently the MR[1] was merged into the
infrastructure repo. With it now being a official part of arch's
infrastructure we should switch to it and get much faster builds.

Doing some quick testing, the whole pipeline is now roughly ~29-84
minutes faster (taking between 7-9 minutes, instead of 36-93 minutes).

[1] https://gitlab.archlinux.org/archlinux/infrastructure/-/merge_requests/385
[2] 3bda5b26a6

Fix #161
2022-08-21 19:24:47 +02:00
nl6720
7bc4c54245
mkarchiso: preload more GRUB modules and disable shim_lock verifier
--disable-shim-lock is required to support Secure Boot with custom signatures without using shim.
Otherwise GRUB will trow an error when trying to boot a kernel:

    error: shim_lock protocol not found.
    error: you need to load the kernel first.

The modules GRUB will use need to be preloaded otherwise the EFI binaries cannot be signed and used for Secure Boot.
See https://bugs.archlinux.org/task/71382.
GRUB will trow en error:

    error: verification requested but nobody cares

These changes are done to support Secure Boot using custom keys (not shim) by simply extracting the boot loader
(BOOTx64.EFI and BOOTIA32.EFI), kernel, UEFI shell, signing them and then repacking the ISO.

For example.
Extract the files:

    $ osirrox -indev archlinux-YYYY.MM.DD-x86_64.iso \
        -extract_boot_images ./ \
        -extract /EFI/BOOT/BOOTx64.EFI BOOTx64.EFI \
        -extract /EFI/BOOT/BOOTIA32.EFI BOOTIA32.EFI \
        -extract /shellx64.efi shellx64.efi \
        -extract /shellia32.efi shellia32.efi \
        -extract /arch/boot/x86_64/vmlinuz-linux vmlinuz-linux

Make the files writable:

    $ chmod +w BOOTx64.EFI BOOTIA32.EFI shellx64.efi shellia32.efi vmlinuz-linux

Sign the files:

    $ sbsign --key db.key --cert db.crt --output BOOTx64.EFI BOOTx64.EFI
    $ sbsign --key db.key --cert db.crt --output BOOTIA32.EFI BOOTIA32.EFI
    $ sbsign --key db.key --cert db.crt --output shellx64.efi shellx64.efi
    $ sbsign --key db.key --cert db.crt --output shellia32.efi shellia32.efi
    $ sbsign --key db.key --cert db.crt --output vmlinuz-linux vmlinuz-linux

Copy the boot loader and UEFI shell to the EFI system partition image:

    $ mcopy -D oO -i eltorito_img2_uefi.img BOOTx64.EFI BOOTIA32.EFI ::/EFI/BOOT/
    $ mcopy -D oO -i eltorito_img2_uefi.img shellx64.efi shellia32.efi ::/

Repack the ISO using the modified El Torito UEFI boot image and add the signed boot loader files, UEFI shell and
kernel to ISO9660:

    $ xorriso -indev archlinux-YYYY.MM.DD-x86_64.iso \
        -outdev archlinux-YYYY.MM.DD-x86_64-Secure_Boot.iso \
        -boot_image any replay \
        -append_partition 2 0xef eltorito_img2_uefi.img \
        -map BOOTx64.EFI /EFI/BOOT/BOOTx64.EFI \
        -map BOOTIA32.EFI /EFI/BOOT/BOOTIA32.EFI \
        -map shellx64.efi /shellx64.efi \
        -map shellia32.efi /shellia32.efi \
        -map vmlinuz-linux /arch/boot/x86_64/vmlinuz-linux

Boot the resulting archlinux-YYYY.MM.DD-x86_64-Secure_Boot.iso.
2022-08-19 10:22:40 +03:00
nl6720
b13e5e3379
mkarchiso: copy all GRUB files to the ISO
Do not limit file copying to only grub.cfg and instead copy all GRUB configuration files and assets to both the ISO9660 and FAT image.
This will allow for including custom images, fonts, etc.

To easily match all non-configuration files (i.e. files without the .cfg extension), bash's extended glob feature will be enabled.
Actions common to multiple _make_bootmode_uefi-*.grub are split off into dedicated functions:

* _make_common_bootmode_grub_copy_to_efibootimg,
* _make_common_bootmode_grub_copy_to_isofs,
* _make_common_bootmode_grub_cfg.

Use the same du command in all efiboot_imgsize variable assignments.

Fixes #185.
2022-08-17 17:24:01 +03:00
nl6720
6ac2230953
mkarchiso: unset LANGUAGE
LC_ALL=C.UTF-8, unlike LC_ALL=C, does not override LANGUAGE.
See https://sourceware.org/bugzilla/show_bug.cgi?id=16621 and https://savannah.gnu.org/bugs/?62815
2022-08-07 16:16:52 +03:00
nl6720
3050203137
Merge remote-tracking branch 'origin/merge-requests/273'
* origin/merge-requests/273:
  Add efibootimg variable in place of full path

See merge request https://gitlab.archlinux.org/archlinux/archiso/-/merge_requests/273
2022-07-17 16:12:34 +03:00
Pellegrino Prevete
211572dda2
Add efibootimg variable in place of full path
Update authors

Update CHANGELOG
2022-07-16 12:02:53 +00:00
nl6720
b7373f5a45
Add changelog for 65 2022-06-30 17:42:45 +03:00
nl6720
86540647db
configs/*/grub/grub.cfg: enable serial input and output
Try to initialize a serial device and use it for input and output.

Add more comments to grub.cfg to explain what is done.

Related to #75
2022-06-26 13:16:29 +03:00
nl6720
fda1907581
mkarchiso: work arround GRUB's cmdpath having incorect case on some firmware
Fixes #183
2022-06-24 10:38:27 +03:00
nl6720
e654106ecf
configs/*/grub/grub.cfg: auto-boot after 15 seconds
* Set the default boot entry and its timeout.
* Add classes to menu entries to allow theming them.

Fixes #179
2022-06-23 08:27:44 +03:00
nl6720
9a98ae6040
Merge remote-tracking branch 'origin/merge-requests/266'
By Alexander Epaneshnikov
* origin/merge-requests/266:
  change grub init tune

Closes #180

See merge request https://gitlab.archlinux.org/archlinux/archiso/-/merge_requests/266
2022-06-23 08:22:16 +03:00
Alexander Epaneshnikov
eaa2f8ae78
change grub init tune
yes it was descriptive but too large. this fixes #180
2022-06-18 15:53:03 +03:00
nl6720
53a3ad25af
mkarchiso: add SBAT metadata to grub-mkstandalone created EFI binaries
Even though archiso created ISOs do not support Secure Boot, having SBAT would allow users to more easily repack the files in the ISO to add a signed shim.

Fixes #174
2022-06-18 09:59:19 +03:00
nl6720
91b48f82f3
mkarchiso: improve comments
* Fix typos and wording,
* Remove impossible TODO.
2022-06-18 09:53:21 +03:00
nl6720
b72523e389
configs/baseline/profiledef.sh: add -E ztailpacking to airootfs_image_tool_options for mkfs.erofs
As the man page says, it saves more space, although the feature is experimental.
2022-06-18 08:47:25 +03:00
nl6720
052987bfbb
Merge remote-tracking branch 'origin/merge-requests/261'
By plainlinen
* origin/merge-requests/261:
  Add implicit package dependencies to PACKAGE_LIST in .gitlab-ci.yml

Closes #176

See merge request https://gitlab.archlinux.org/archlinux/archiso/-/merge_requests/261
2022-06-18 08:43:37 +03:00
nl6720
2a8fc3bbc0
Merge remote-tracking branch 'origin/merge-requests/256'
After more than ten years, archiso is once again using GRUB. GRUB! Only this time, it's for UEFI not BIOS boot.

By plainlinen
* origin/merge-requests/256:
  Update documentation for uefi x64 grub boot modes
  Use grub for uefi x64 boot modes in profiledef.sh
  Add *_uefi-x64.grub.* functions to mkarchiso
  Add useful grub menu entries to grub.cfg

Closes #63 and #159

See merge request https://gitlab.archlinux.org/archlinux/archiso/-/merge_requests/256.
2022-06-18 08:38:29 +03:00
plainlinen
b8957f0fa0 Add implicit package dependencies to PACKAGE_LIST in .gitlab-ci.yml
CI was working before because these dependencies were already in
the official ISO but include them explicitly to be safe.
2022-06-17 21:03:39 -07:00
plainlinen
39fddfa51b Update documentation for uefi x64 grub boot modes 2022-06-10 22:37:32 -07:00
plainlinen
e51b6f6199 Use grub for uefi x64 boot modes in profiledef.sh 2022-06-09 22:39:43 -07:00
plainlinen
550b5be07d Add *_uefi-x64.grub.* functions to mkarchiso 2022-06-09 22:37:10 -07:00
plainlinen
98de411847 Add useful grub menu entries to grub.cfg 2022-06-09 22:36:03 -07:00
nl6720
de151089ce
mkarchiso: use C.UTF-8
The glibc 2.35-6 package ships with the C.UTF-8 locale included, so mkarchiso does not need to use a non-UTF-8 locale anymore.

Implements #175.
2022-06-09 08:31:41 +03:00
nl6720
ba11c40e49
configs/: use the C.UTF-8 locale
The glibc 2.35-6 package ships with the C.UTF-8 locale included.
This means there is now a UTF-8 locale available by default and en_US.UTF-8, which requires editing /etc/locale.gen and running locale-gen, is not needed anymore.

Implements #175.
2022-06-09 08:27:50 +03:00
nl6720
89292ce818
.gitignore: ignore *.cer, *.crt, *.key, *.pem and *.img
* .cer, .crt, .key and .pem are typical file name extensions for TLS certificates and keys. They are used when codesigning with openssl and should never be commited in the repo.
* .img is a generic image file. Such files could be used when repacking an ISO to attach cloud-init CIDATA.
2022-05-31 10:18:07 +03:00
nl6720
568ed4b25c
Fix release date for v64 in CHANGELOG.rst 2022-05-30 09:53:13 +03:00
nl6720
fd9becced3
Add changelog for 64 2022-05-28 16:08:18 +03:00
nl6720
f4e2d68599
Merge remote-tracking branch 'origin/merge-requests/254'
By Alexander Epaneshnikov
* origin/merge-requests/254:
  fix boot menu entry sorting
  add accessible copytoram entry
  enable beeps in boot menu

See merge request !254
2022-05-28 15:31:10 +03:00
Alexander Epaneshnikov
2a1f44bbbf
fix boot menu entry sorting
I guess new systemd changed this
2022-05-28 15:23:02 +03:00
Alexander Epaneshnikov
3bacf05618
add accessible copytoram entry 2022-05-28 13:35:26 +03:00
Alexander Epaneshnikov
a7e33374fd
enable beeps in boot menu 2022-05-28 13:35:26 +03:00
nl6720
376e9282da
Merge remote-tracking branch 'origin/merge-requests/216'
* origin/merge-requests/216:
  Update CHANGELOG.
  Update baseline and releng profiledef.sh to support ia32 uefi mode.
  Add GRUB configuration files to baseline and releng profiles.
  Add support for GRUB ia32 UEFI in mkarchiso, update READMEs.

Closes #107

See merge request !216
2022-05-27 20:03:45 +03:00