Page MenuHomeSolus

Kernel + drivers management / update is flaky
Closed, ResolvedPublic

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.
Assigned To
Authored By
ikey, Jan 8 2017

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

ben added a subscriber: ben.Jan 9 2017, 3:27 AM

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
W-Floyd added a subscriber: W-Floyd.Jan 9 2017, 4:27 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.

cybre added a subscriber: cybre.Jan 9 2017, 5:20 PM

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++

BearzR added a subscriber: BearzR.Jan 11 2017, 12:11 PM

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 in flight to unblock new release of 1.x branch: https://github.com/ikeydoherty/clr-boot-manager/pull/32

PR 32 now merged unblocking a 1.x release

Thisuu added a subscriber: Thisuu.Jan 14 2017, 7:52 AM
Botanium added a subscriber: Botanium.

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

PR35 merged for 2.x basis

Riokei added a subscriber: Riokei.Jan 19 2017, 9:50 PM

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

PR37 is now merged

Tearow added a subscriber: Tearow.Jan 30 2017, 6:41 PM
skmlcd added a subscriber: skmlcd.Jan 31 2017, 12:40 AM

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

ikey closed this task as Resolved.Mar 26 2017, 4:52 PM

Very happy to finally resolve this :)