unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Efraim Flashner <efraim@flashner.co.il>
To: Pierre Neidhardt <mail@ambrevar.xyz>
Cc: guix-devel@gnu.org
Subject: Re: custom kernel config
Date: Wed, 3 Apr 2019 23:27:58 +0300	[thread overview]
Message-ID: <20190403202758.GC1203@macbook41> (raw)
In-Reply-To: <871s2iuavs.fsf@mimimi.i-did-not-set--mail-host-address--so-tickle-me>

[-- Attachment #1: Type: text/plain, Size: 2989 bytes --]

On Wed, Apr 03, 2019 at 09:49:59PM +0200, Pierre Neidhardt wrote:
> Thank you Efraim, this is awesome!
> 
> Efraim Flashner <efraim@flashner.co.il> writes:
> 
> > For the first one I used the #:extra-options route and compiled a list.
> > The second one I tried I created a custom kernel and left #:defconfig as
> > #f and inherited that to add a kconfig to the native-inputs.
> 
> Oh, I think I had missed the #:defconfig option when I tried.
> 
> > Once I read a bit more of the kernel documentation it wasn't too bad to
> > create a list of what I needed.
> 
> Which documentation in particular?

Documentation/admin-guide/README.rst from inside the kernel tarball
source.

> 
> > tar xf $(guix build linux-libre -S)
> > cd linux-libre<tab>
> > touch .config
> > guix environment linux-libre
> >     make localmodconfig
> >
> > copy that into .config
> 
> Copy what into .config?

the .config you just created at the root of the source tarball

> 
> > and fix the formatting
> >
> >     make localmodconfig
> 
> Why fixing the formatting?  How?  With a second `make localmodconfig'?
> 

running make localconfig spits out a bunch of pseudo-error messages
about modules that are missing in .config. If you copy that whole
message, minus the lines starting with 'WARING', into .config and
then format it as UPERCASE_OPTION=(y|m) it gives the kernel a config
that is usable for it.

so turning lines that look like:
module nouveau did not have configs CONFIG_DRM_NOUVEAU

into lines that look like:
CONFIG_DRM_NOUVEAU=m

> > if that works well enough then add "CONFIG_MODULES=y" to .config and
> > you're ready to try it out.
> 
> What does CONFIG_MODULES=y change?  (Not on my computer now, can't check
> in my local linux checkout.)

CONFIG_MODULES=y lets the modules be loaded and installed separately, if I
remember correctly. Either way, without it the build errors right at the
beginning of the install phase:

starting phase `install'

The present kernel configuration has modules disabled.
Type 'make config' and enable loadable module support.
Then build a kernel with module support enabled.

make: *** [Makefile:1318: modules_install] Error 1

> 
> This walkthrough is invaluable in my opinion.  So far I was under the
> impression that many members of the Guix community were annoyed by
> kernel compilation time and had tried to customize it, but it's really
> hard.  This process would make for an excellent blog article in my
> opinion! :D

I'll try to go ahead and write it up more nicely then. Custom compiling
a kernel sounds really scary, but with Guix's rollbacks and declarative
everything it's actually not too bad.


Currently this doesn't take into account the initrd.

-- 
Efraim Flashner   <efraim@flashner.co.il>   אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

  reply	other threads:[~2019-04-03 20:31 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-04-01 18:04 custom kernel config Efraim Flashner
2019-04-01 18:30 ` Pierre Neidhardt
2019-04-02  5:37   ` Efraim Flashner
2019-04-02  8:04     ` Pierre Neidhardt
2019-04-02 14:49       ` Efraim Flashner
2019-04-01 19:46 ` Ludovic Courtès
2019-04-02 14:50   ` Efraim Flashner
2019-04-03  8:08 ` Chris Marusich
2019-04-03 19:04   ` Efraim Flashner
2019-04-03 19:49     ` Pierre Neidhardt
2019-04-03 20:27       ` Efraim Flashner [this message]
2019-04-04  8:44         ` Chris Marusich
2019-04-07 14:36           ` Efraim Flashner
2019-04-07 17:25             ` Pierre Neidhardt
2019-04-08 14:52             ` Ludovic Courtès
2019-04-08 15:03               ` Pierre Neidhardt
2019-05-01  7:54                 ` Pierre Neidhardt
2019-05-06  3:46                   ` Chris Marusich
2019-05-06  8:01                     ` Efraim Flashner
2019-05-06  8:34                       ` Pierre Neidhardt
2019-05-01  9:31               ` Mark H Weaver
2019-05-01 14:15                 ` Ludovic Courtès
2019-05-15 18:09 ` [BLOG] " Efraim Flashner
2019-05-16 11:10   ` Pierre Neidhardt
2019-05-16 19:15     ` Efraim Flashner
2019-05-16 11:48   ` Pierre Neidhardt
2019-05-16 14:29   ` Marius Bakke
2019-05-16 14:33     ` Pierre Neidhardt
2019-05-16 19:14     ` Efraim Flashner
2019-05-17  0:15     ` Mark H Weaver
2019-05-17  7:50       ` Efraim Flashner
2019-05-20 14:57         ` Ludovic Courtès
2019-05-20 17:38           ` Efraim Flashner
2019-05-21 10:07             ` Ludovic Courtès
2019-05-21 12:46               ` zimoun
2019-05-18  2:04       ` ison

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190403202758.GC1203@macbook41 \
    --to=efraim@flashner.co.il \
    --cc=guix-devel@gnu.org \
    --cc=mail@ambrevar.xyz \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).