435 Commits

Author SHA1 Message Date
Michael Vogt
946fb0db42 Merge pull request #12285 from alfonsosanchezbeato/fix-grub-no-system
bootloader/assets: fix grub.cfg when there are no labels
2022-11-01 14:24:24 +01:00
Valentin David
2670743b56 bootloader: do not specify Core version in grub entry
Ubuntu Core 22 now shows "Run Ubuntu Core 20" as boot entry.
2022-10-24 17:15:15 +02:00
Alfonso Sánchez-Beato
d4036a5b7a bootloader/assets: fix grub.cfg when there are no labels
grub's regexp does not change the store variable if there is no match,
so checking for empty variable after the regexp call was not really
working. Instead, check for successful regexp call.
2022-10-20 16:23:56 +01:00
Michael Vogt
d0059ad859 Merge pull request #11128 from kubiko/lk-boot-device-state-lock
include/lk: update LK recovery environment definition to include devi…
2022-09-14 15:30:41 +02:00
Ondrej Kubik
2f2b1ff2c2 bootloader/lk,include/lk: more typo fixing in the descriptions
Signed-off-by: Ondrej Kubik <ondrej.kubik@canonical.com>
2022-08-24 16:33:21 +03:00
Michael Vogt
bae7d30786 bootloader,systemd: fix don't use Yoda conditions (ST1017)
Fix all the `don't use Yoda conditions (ST1017)` warnings found
by staticcheck.io.
2022-08-19 10:05:25 +02:00
Ondrej Kubik
4863490140 bootloader/lk,include/lk: fix typo DEVICE_STATE_UNKNOW->DEVICE_STATE_UNKNOWN
Signed-off-by: Ondrej Kubik <ondrej.kubik@canonical.com>
2022-08-08 16:27:42 +03:00
Ondrej Kubik
73ffeb72a3 Merge remote-tracking branch 'snapcore/master' into lk-boot-device-state-lock 2022-08-08 16:10:54 +03:00
Ondrej Kubik
1db1cedacc bootloader/lk,include/lk: correct description of the device_lock_state variable
Signed-off-by: Ondrej Kubik <ondrej.kubik@canonical.com>
2022-08-08 16:10:12 +03:00
Michael Vogt
5595253031 bootloader/assets: add ttyS0,115200n8 to grub.cfg
This commit will help the boot speed on most PC devices and
requested by the Taipei team.

The changes to the auto-generated parts are done via:
```
$ cd boot/assets
$ go build  -o ./genasset/genasset  ./genasset/
$ ./genasset/genasset -in ./data/grub.cfg -out grub_cfg_asset.go -name grub.cfg
```
and the `Snapd-Boot-Config-Edition` for `grub.cfg` was bumped.

Note that no changes for the recovery grub configuration are done
in this commit. I'm happy to do a follwup for this.
2022-07-20 11:54:17 +02:00
Alfonso Sánchez-Beato
9844963c4a Merge branch 'master' into add-grub-fallback 2022-07-06 10:37:34 +01:00
Samuele Pedroni
b8e364fa47 many: switch to UC20+ in user messages (instead of UC20) 2022-04-29 14:30:24 +02:00
Alfonso Sánchez-Beato
87dcd7b7f7 b/a/grub_cfg_asset.go: update as we have changed grub.cfg 2022-04-21 13:26:14 +02:00
Alfonso Sánchez-Beato
8cf83e1524 b/a/d/grub.cfg: remove kernel_fallback varible
Not needed anymore as we reboot instead of chainloading after a
failure.
2022-04-21 12:53:35 +02:00
Alfonso Sánchez-Beato
b7eca4e8d0 Merge branch 'master' into add-grub-fallback 2022-04-21 12:44:19 +02:00
Michael Vogt
f045e881eb Merge pull request #11606 from bboozzoo/bboozzoo/factory-reset-spread-no-encrypt
bootloader/assets, tests: add factory-reset mode, test non-encrypted factory-reset
2022-04-19 15:20:48 +02:00
Paweł Stołowski
bb52a67991 Renaming related to inclusive language. 2022-04-14 14:30:47 +02:00
Michael Vogt
d9cf7c9647 Merge remote-tracking branch 'upstream/master' into bboozzoo/factory-reset-spread-no-encrypt 2022-04-11 15:30:58 +02:00
alfonsosanchezbeato
4cc40898a9 b/piboot.go: check EEPROM version for RPi4
* b/piboot.go: check EEPROM version for RPi4

Check EEPROM version for RPi4 to make sure that tryboot is
supported. If the EEPROM need updating, return an error when
installing the kernel.

* bootloader: add unit tests for detection of RPi4 EEPROM

* bootloader/piboot: use osutil instead of using directly os.Stat

* bootloader: address review comments
2022-04-07 19:22:08 +02:00
Alfonso Sánchez-Beato
7dd912b49d boot,bootloader: add missing grub.cfg assets mocks in some tests
This is the same fix as commit 17fbdc7c, but in other tests.

The current code will mock the `amd64` architecture when running some
tests but it does not mock the `grub.cfg:static-cmdline` or the
`grub-recovery.cfg:static-cmdline`. This is needed because the
`bootloader/asserts` package registers the cmdline via `init()` so
this happens before the architecture is mocked in the testing
code. Hence the tests will fail when inspecting the command line on
non amd64/i386 machines.

This commit makes the mocking explicit. An alternative approach would
be to move the snippet registration out of `init()` and run it on
first boot but that has it's own problems so this other approach was
followed.
2022-04-06 16:24:25 +02:00
Maciej Borzecki
cb691abb05 bootloader/assets: regenerate the assets after merge
Signed-off-by: Maciej Borzecki <maciej.zenon.borzecki@canonical.com>
2022-04-06 14:36:12 +02:00
Maciej Borzecki
c60b4d40d6 Merge remote-tracking branch 'upstream/master' into bboozzoo/factory-reset-spread-no-encrypt 2022-04-06 14:34:46 +02:00
alfonsosanchezbeato
d5b3bcc309 b/a: do not set console in kernel command line for arm64
* b/assets: use different kernel command line for arm64

Do not set console in the kernel command line for arm64. The defaults
are better than setting ttyS0 as in x86, also this is our choice in
server images. The kernel will choose the preferred console depending
on whether dtb or ACPI is available:

1. When having a device tree, it will take the content of the
   /chosen/stdout-path node [1]. This node is properly filled in most
   of the cases.

2. If using ACPI tables, it will look for the console in the ACPI SPCR
   table [2,3]. This is different to what is done in x86 [4], as in that
   case the SPCR table is used only if earlycon is set.

[1] https://www.kernel.org/doc/Documentation/devicetree/bindings/chosen.txt
[2] https://docs.microsoft.com/en-us/windows-hardware/drivers/serports/serial-port-console-redirection-table
[3] https://elixir.bootlin.com/linux/v5.17/source/arch/arm64/kernel/acpi.c#L229
[4] https://elixir.bootlin.com/linux/v5.17/source/arch/x86/kernel/acpi/boot.c#L1615

* b/assets: register different grub snippets per arch

This is needed now as the kernel command line parameters will differ
across architectures.

* b/a/grub.go: fix tests for ubuntu-18.04-32

Co-authored-by: Michael Vogt <mvo@ubuntu.com>
2022-04-05 11:27:25 +02:00
Maciej Borzecki
8a5df3a869 Merge remote-tracking branch 'upstream/master' into bboozzoo/factory-reset-spread-no-encrypt 2022-04-04 13:46:41 +02:00
Michael Vogt
bc390e47b7 Merge pull request #11591 from alfonsosanchezbeato/piboot-support-armhf
bootloader/piboot: add support for armhf
2022-04-01 10:23:19 +02:00