Commit Graph

515 Commits

Author SHA1 Message Date
Hideki Yamane 2fa258cca2 use deb.debian.org as default
replace deprecated httpredir.debian.org to deb.debian.org and use
it as default mirror since it is appropriate for users
2018-10-13 12:39:42 +09:00
Luca Boccassi 46c9596926 Add options to build ONIE images
Open Network Install Environment is an open image format used by
networking vendor to ship a standardised image for networking white
box switches.

ONIE hardware takes this image at boot and a script to chain load
into the final environment via kexec. We can support Debian and
derivatives on such systems by packing an ISO which then gets
unpacked, kexec'ed and live-booted.

A base ONIE system can be tested in QEMU by building a VM following
these instrunctions:

https://github.com/opencomputeproject/onie/blob/master/machine/kvm_x86_64/INSTALL

Once built, boot onie-recovery-x86_64-kvm_x86_64-r0.iso in QEMU/libvirt
and on the console there will be the terminal prompt. Check the IP
assigned by libvirt and then scp the live image (ssh access is enabled
as root without password...). Then the .bin can be booted with:
 ONIE-RECOVERY:/ # onie-nos-install /tmp/live.hybrid.iso-ONIE.bin

The implementation is inspired by ONIE's own scripts that can be found
at:
https://github.com/opencomputeproject/onie/blob/master/contrib/debian-iso/cook-bits.sh

A new option, --onie (false by default) can be set to true to enable
building this new format in addition to an ISO.
An additional option, --onie-kernel-cmdline can be used to specify
additional options that the ONIE system should use when kexec'ing the
final image.
Note that only iso or hybrid-iso formats are supported.

For more information about the ONIE ecosystem see:
http://onie.org

Signed-off-by: Erik Ziegenbalg <eziegenb@Brocade.com>
Signed-off-by: Luca Boccassi <bluca@debian.org>
2018-03-22 16:14:01 +00:00
Luca Boccassi 035518ff69 UEFI: add support for Secure Boot on amd64 and arm64
Support for UEFI Secure Boot is modelled after how it currently works
in Ubuntu and on how it is going to work on Debian.
A minimal bootloader, shim, is used as the first-stage and it then
loads grub. Both have to be signed.
shim-signed is already available in Debian so the filenames are
already established, and the grub2 repository and packaging is common
between the 2 distros so we can already be reasonably sure of what it
is going to be.
So if both are available, copy /usr/lib/shim/shim[x64|aa64].efi.signed
as boot[x64|aa64].efi so that UEFI loads it first, and copy
/usr/lib/grub/[x86_64|arm64]-efi-signed/grub[x64|aa64].efi.signed as
grub[x64|aa64].efi.
This grub2 EFI monolithic image is currently hard-coded in grub2's
repository to look for a config file in efi/debian, so make a copy
of the previously added minimal grub.cfg that loads the real one in
that directory in both the fat32 and ISO 9660 partitions.

The new option --uefi-secure-boot can be set to auto (default,
enable or disable.
In auto, the lack of the signed EFI binaries is intentionally left as a
soft failure - live-build will simply fallback to using the locally
generated non-signed grub2 monolithic EFI binary as the only
bootloader. Given the difficulties surrounding the Secure Boot
signing infrastructure this approach gives the most flexibility and
makes sure things will "just work" once the packages are available,
without the need to change anything in the configuration.
This will also greatly help downstream distributions and users who
want to do self-signing.
The enable or disable options work as expected.

Closes: #821084
2018-03-09 20:57:54 +00:00
Raphaël Hertzog 2f54fcf3d7 Replace "kirkwood" and "orion5x" armel flavors with the new "marvell" one
As done by the linux source package since its version 4.4.
2017-09-18 18:00:20 +02:00
Raphaël Hertzog c5a334deb8 Update PREPARER data for consistency 2017-08-29 15:06:35 +02:00
Raphaël Hertzog 3f909bf486 Drop all references to live-systems.org and update copyright file
Also fix the version string in the manual pages.

Closes: #859290
2017-08-29 14:12:33 +02:00
Raphaël Hertzog d98f95bbbe Drop the versatile kernel flavour on armel. It's no longer built since Linux 4.9. 2017-02-13 16:52:10 +01:00
Raphaël Hertzog 61b92c654e Drop check on configuration version
The date based versioning scheme no longer allows such a check. And we
don't intend to break backwards compatibility for now.
2016-12-02 23:05:05 +01:00
Raphaël Hertzog 7ad6c408e5 Default for LB_UNION_FILESYSTEM is now "overlay" just like in live-boot. 2016-12-02 15:10:19 +01:00
Adrian Gibanel Lopez f811656150 Make: syslinux,grub-efi the default bootloaders because
UEFI is getting widely adopted but BIOS support is still
needed.
2016-07-31 15:09:13 +02:00
Adrian Gibanel Lopez ee9a6de2cc defaults.sh LB_BOOTLOADER updated to be: LB_BOOTLOADERS in incompatible warning 2016-07-31 15:09:13 +02:00
Adrian Gibanel Lopez 9d1a983cc8 Added new multi bootloader helper functions
* Added: functions/bootloaders.sh . This file adds bootloader functions that are heavily used in efi scenarios where a bootloader can act as a first or an extra bootloader.

Since the introduction of the new switch:

--bootloaders

you can setup it like this:

--bootloaders=syslinux,grub-efi

.

This means that syslinux is the first bootloader and grub-efi is the extra bootloader.

* Added new bootloader functions: Check_Non_First_Bootloader and Check_Non_Extra_Bootloader.

These functions let each one of the bootloaders abort the build because
they cannot perform a role either as a first bootloader or as an extra bootloader.

* Added bootloader functions: Check_First_Bootloader_Role, Check_Extra_Bootloader_Role and Check_Any_Bootloader_Role

These functions let bootloaders to force their default role in a single line.

At the same time many binary bootloaders were rewritten to make use of the new bootloader role functions explained above.

These roles were enforced:

binary_grub-legacy : First bootloader
binary_grub-pc : Either first or extra bootloader
binary_syslinux : Either first or extra bootloader

If a bootloader is tried to be used in a role that it's not meant to be used then the build fails because that might lead to a non-bootable system.
2016-07-31 15:08:11 +02:00
Adrian Gibanel Lopez 01a9df8ce3 functions/default.sh : Define LB_PRIMARY_BOOTLOADER at the Set_defaults function which it's the right place where to do it 2016-07-31 14:59:33 +02:00
Raphaël Hertzog 7f4e2654e4 Drop ixp4xx from available armel flavors
It's gone from Debian unstable/testing since Linux 3.17.

Sponsored-By: Offensive Security
2016-01-05 18:10:00 +01:00
Ben Armstrong 1f8975cc60 Remove 586 flavour for i386 architecture. (Closes: #807972) 2015-12-15 14:01:29 +00:00
Adrian Gibanel Lopez d515ae5684 Multi bootloader support
Note: OLDIFS use makes IFS to be reset to "" instead to it being unset.
Either we need to detect if old IFS was unset to unset it
or we need a proper way of setting it as a local variable.
Even more IFS it's not currently used in
Check_package (which it's called from: binary_hdd).
we should have a clean way of resetting/unsetting IFS when calling Check_package.

The other approach it's to explicitly define IFS with its default value in the
places inside live-build code where we implicitly suppose that it's going to have
its default value.
2015-08-29 23:56:41 +02:00
Daniel Baumann 9280926b11 Switching from http.debian.net to httpredir.debian.org as default binary mirror. 2015-05-10 19:10:28 +02:00
Daniel Baumann 279a149d8a Dropping automagics for ubuntu.
Future live-build versions will still allow to use casper,
but its configuration will be done differently by a custom
config tree, rather than embedded and maintenance intensive
code in live-build itself.
2015-05-03 16:03:10 +02:00
Daniel Baumann f93e83e351 Dropping automagics for casper.
Future live-build versions will still allow to use casper,
but its configuration will be done differently by hooks
in the config tree, rather than embedded and maintenance intensive
code in live-build itself.
2015-05-03 15:50:03 +02:00
Daniel Baumann 7e633e77f2 Moving grub and grub2 templates into shared bootloader config directory. 2015-04-29 07:52:56 +02:00
Daniel Baumann 4520daa5b9 Setting progress-linux default distribution to cairon. 2015-04-28 07:58:16 +02:00
Daniel Baumann ca9cfd8318 Setting debian default distribution to stretch. 2015-04-28 07:58:16 +02:00
Fathi Boudra 9d95afb9f6 Adding linux flavours for arm64/armhf architectures.
Signed-off-by: Fathi Boudra <fabo@debian.org>
2015-02-04 10:16:02 +02:00
Daniel Baumann e51315ae1e Switching to default to linux-image-586 on i386. 2015-01-26 06:30:49 +01:00
Daniel Baumann 1f0a9d9ee0 Enabling security and release updates for jessie. 2015-01-25 10:04:13 +01:00
Daniel Baumann 242aef5d83 Updating year in copyright notices to 2015. 2015-01-04 20:05:44 +01:00
Daniel Baumann 93592a81b6 Dropping some sparc leftovers (Closes: #774196). 2015-01-04 18:58:35 +01:00
Daniel Baumann b814f4e07e Dropping cdebootstrap support (Closes: #773657).
debootstrap is the official tool to bootstrap debian,
cdebootstrap has had the one or other bug making it
broken for times during the release cycles.

The extra effort of supporting both debootstrap
and cdebootstrap is hardly worth it since the bootstrap
stage is cached anyway.
2014-12-23 22:54:41 +01:00
Daniel Baumann cb7e5f256c Cleaning up from python removal (LIVE_IMAGE_PARENT_ARCHIVE_AREAS). 2014-12-10 09:19:07 +01:00
Daniel Baumann 07253b661c Updating misc settings for progress-linux. 2014-12-10 09:01:06 +01:00
jnqnfe 31dbf95d86 Address "should check that we're building on debian through e.g. a 'derivative-is-based-on' variable or somesuch" fixme. 2014-12-10 08:44:05 +01:00
Daniel Baumann b5e99b5b14 Dropping support for wheezy. 2014-12-10 08:38:42 +01:00
Daniel Baumann 048c0827ae Somewhat fixing sysvinit and casper legacy support, slightly improved patch from Rui Miguel P. Bernardo <rui.bernardo.pt@gmail.com> (Closes: #772522, #772651).
This however will still not work properly building upstart based
images but they have been broken/unsupported anyway since a long
time.
2014-12-10 08:19:48 +01:00
Daniel Baumann 2eecd1b814 Cleaning up from python removal (LIVE_IMAGE_ARCHIVE_AREAS). 2014-12-10 07:41:29 +01:00
Daniel Baumann 1f7f6dd88a Cleaning up from python removal (LIVE_IMAGE_ARCHITECTURE). 2014-12-10 07:39:58 +01:00
Raphaël Hertzog 571c89447b Update linux flavours for armhf/armel.
With linux 3.16 in Debian Jessie, armmp and armmp-lpae are the
only armhf flavours availale. On armel, we lost the support of
the iop32x flavour.
2014-12-10 06:19:55 +01:00
Daniel Baumann 7f1f542cea Updating default boot parameters for live-config 4.x. 2014-04-30 07:16:32 +02:00
Simon McVittie 5d6574552f Add support for making ext[234] or btrfs hdd images bootable with extlinux (Closes: #745816)
extlinux configuration for the bootable image is installed to
/boot/extlinux, matching the extlinux-install script in Debian.

From the configuration point of view it's still called "syslinux",
the same as the rest of the syslinux family (pxelinux, isolinux etc.)
2014-04-27 12:37:37 +02:00
Daniel Baumann 03e6d8d5a6 Switching default debian release to jessie. 2014-04-27 07:23:45 +02:00
Daniel Baumann eb336bb782 Updating copyright notices for 2014. 2014-02-08 17:47:24 +01:00
Daniel Baumann 1bcc449483 Automatically symlink hooks upon creation of the configuration tree. 2013-11-03 21:18:10 +01:00
Daniel Baumann 955175ac4b Dropping incomplete and not really supported exposed root mode.
This might come back in future if there's demand for it
and the base is sufficiently cleaned up first.
2013-10-23 10:47:48 +02:00
Daniel Baumann 34baf50ab3 Replacing s390 with s390x in architecture specific defaults. 2013-10-15 12:20:42 +02:00
Daniel Baumann dcf1ff484a Updating initsystem default for progress-linux releases. 2013-09-06 20:05:07 +02:00
Daniel Baumann 24cfdfc6a3 Adding hook to remove ssl-cert-snakeoil by default. 2013-06-19 08:01:03 +02:00
Daniel Baumann 01e91f9c21 Adding hook to disable 70-persistent-cd.rules udev rule to prevent udev remember the cd device name both the one of the build system and the one of the live system (Closes: #706926). 2013-05-06 20:07:09 +02:00
Daniel Baumann 45f1f9f0a0 Renaming remove-udev-persistent-rules.chroot hook to remove-udev-persistent-net-rules.chroot for future additional udev hooks. 2013-05-06 19:40:42 +02:00
Daniel Baumann aca016217d Enabling release updates (formerly known as volatile) for wheezy. 2013-05-06 14:50:08 +02:00
Daniel Baumann a99b0ab378 Updating bootstrap mirror for progress-linux. 2013-05-06 14:50:08 +02:00
Daniel Baumann 8f293ccd9c Dropping now unused intermediate config/image. 2013-05-06 14:50:07 +02:00