Page MenuHomeSolus

Kernel + drivers management / update is flaky
Closed, ResolvedPublic

Assigned To
Authored By
ikey
Jan 8 2017, 9:13 PM
Referenced Files
None
Tokens
"Party Time" token, awarded by m-delvalle."Party Time" token, awarded by baimafeima."Party Time" token, awarded by euoar."Love" token, awarded by Botanium.

Description

Currently the Solus kernel management is highly limited and very flaky.

In essence, we have a single kernel package (along with kernel-modules subpackage) that contains the entire target filesystem as it would be when installed.
Effectively, this limits us to hardcoded paths, and a single kernel type.

Additionally, this has the disastrous effect that upon upgrading the kernel to a new release/version, the existing kernel and modules are permanently removed from the filesystem.
This makes kernel upgrades entirely one way. Due to the current setup, we have various triggers running in several packages in what we hope is a sane order, which also results in breaking
the update-grub process. This is usually down to the fact that the ntfs kernel support is no longer present, so the Windows partition cannot be scanned. (If the module is already loaded then it continues fine.)

The proposal is to remove the current broken system, and implement clr-boot-manager.

kernel-modules and kernel will be replaced, on upgrade, to linux-lts (At 4.9.1)
A single new package will be provided for the integration triggers, which will invoke clr-boot-manager upgrade, and also linux-driver-manager when it is done.
Important to note is that the modules + kernel objects are tagged with permanent="True" in the metadata, so that they are not removed on
upgrade. They move into clr-boot-manager's domain.

Resolving this will unblock numerous issues, subtasked as appropriate.

Event Timeline

ikey triaged this task as Unbreak Now! priority.Jan 8 2017, 9:13 PM
ikey created this task.
ikey updated the task description. (Show Details)

Should also be noted this change will permit parallel kernel type installation, with LTS planned first, and mainline later in the year (4.10 series).
gl-driver-switch will be dropped from Solus, and the mesa driver + nvidia packages will make use of /usr/share/defaults/etc/ld.so.conf.d/*.conf files
to "switch" the GL implementation. LDM will then be invoked to write the appropriate xorg.conf and lightdm.conf changes, which will in turn
be the first enabling of Optimus in Solus.

Stage #1 of the enabling is now put up for initial review, going to take 2 rounds and testing to get this finished

https://github.com/ikeydoherty/clr-boot-manager/pull/27

GLVND may be another option to look into regarding multiple installed GL implementations

GLVND isn't an option for Solus, we support legacy NVIDIA drivers and need a standard, stable option. GLVND is none of those yet, and doesn't support 304/xx340xx

ikey changed the task status from Open to In Progress.Jan 9 2017, 4:25 AM

Next stage, adding permanent support to ypkg: https://github.com/solus-project/ypkg/issues/23

Once this is done I'll install my 4.9.1 kernel, and then install the 4.9.2 upgrade, to demonstrate that the
system is sane.

Permanent paths have now landed in ypkg, enabling the next steps (need to rebase PR on CBM)

https://github.com/solus-project/ypkg/commit/4556a8f895add65e32561ef5ad3ae5347e0ec99d

New PR now in flight to address basic configuration of CBM: https://github.com/ikeydoherty/clr-boot-manager/pull/28
Then we can do the initrd/grub stuff separate (complexity++)

OK that PR is now merged, progress++

Second part of unblocking a minor release is now in:
https://github.com/ikeydoherty/clr-boot-manager/pull/30

Full Solus support scoped for a v2:
https://github.com/ikeydoherty/clr-boot-manager/milestone/3

Solus will be using this before its released, obv, because we need this like yesterday

PR 32 now merged unblocking a 1.x release

1.2 unblocked and released https://github.com/ikeydoherty/clr-boot-manager/releases/tag/v1.2.0

PR 35 in second revision, going to merge shortly to form basis of 2.x

New PR37 in flight for enabling MBR & GPT, and automatic LUKS support:
https://github.com/ikeydoherty/clr-boot-manager/pull/37

Alright we're unblocked on that again
https://github.com/ikeydoherty/clr-boot-manager/pull/42

Not merging this PR yet, needs more to it, but Travis tests work again and UEFI is fully mocked

PR46 now merged https://github.com/ikeydoherty/clr-boot-manager/pull/46
This allows us to now add GRUB given we can actually test it.

Threw another tiny PR in to get coverage up another 2.8% before I start GRUB, so we can at least swallow any 1/2% coverage drop from its introduction

https://github.com/ikeydoherty/clr-boot-manager/pull/47

GRUB2 support is now in git - we just need to get this integrated and tested in Solus now

OK CBM is in Solus repos now, time to actually make things "work"

Can't wait to see how it goes :D

Very happy to finally resolve this :)