public inbox for gentoo-user@lists.gentoo.org
 help / color / mirror / Atom feed
From: Paige Thompson <spam@yourstruly.sx>
To: "gentoo-user@lists.gentoo.org" <gentoo-user@lists.gentoo.org>
Subject: Re: [gentoo-user] Re: Using an old kernel .config as the basis for a new .config
Date: Fri, 29 Dec 2017 01:24:08 +0000	[thread overview]
Message-ID: <1a9b60fec5f541e8bb4232d9b3a4c839@yourstruly.sx> (raw)
In-Reply-To: <uigghe-i96.ln1@hurikhan77.spdns.de>

From: Kai Krakow <hurikhan77@gmail.com>
Sent: Thursday, December 28, 2017 4:58 PM
To: gentoo-user@lists.gentoo.org
Cc: Spam Account
Subject: [gentoo-user] Re: Using an old kernel .config as the basis for a new .config

Am Thu, 28 Dec 2017 15:05:04 -0500 schrieb Jack:

> On 2017.12.28 14:52, Alan Mackenzie wrote:
>> Hello, Gentoo.
>>
>> Having just built linux-4.14.7-gentoo, suddenly a new version of the
>> kernel, linux-4.14.8-gentoo-r1 has become stable.  Configuring a kernel
>> from scratch is a repetitive drudge.
>>
>> There is some way of initialising a new kernel .config from an existing
>> one, I am sure, but I can't find it.  I've looked at the Gentoo wiki,
>> I've looked at (some of) the kernel's own documentation.  The nearest I
>> can find is make oldconfig, which supposedly does what I want, but it
>> just seems to start off with a default .config and go through the
>> hundreds of questions one at a time.
>>
>> So, would some kind soul please tell me how to get my old .config into
>> a new one properly.  Thanks!
>
> You need to copy your old .config into the new kernel source directory.
> "make oldconfig" then uses those values, and only asks you about new
> items.  It sounds like it was asking about everything because it didn't
> have the old file as a starting point - so was starting from scratch.

You actually even don't have to copy the old config file as long as the
currently running system provides the config you want to migrate.

You can just run

# make oldconfig

and it will figure out the config, looking at the current directory
first. It will then interactively ask for each new config option. You can
type "?" at each step to get a description. This is the way I do it.

I only copy a .config file if I want a specific known base configuration.

You can then run

# make menuconfig

to further fine-tune your decisions, or

# make localmodconfig

to disable modules not currently loaded. You should double-check it
didn't disable important stuff. Take a backup of .config first, then run
a diff. If in doubt, leave an option enabled as module.


# make olddefconfig

Doesn't ask questions but instead uses defaults. I wouldn't recommend
this if you are already running optimized manual configs.


There are many more (and interesting ones), have a look at

# make help


You can also "emerge -a kergen" and let it build a .config based on and
optimized for your hardware, tho it didn't work too well for me. You may
want to double check what it does, and then manually change the config.
You can also use it to migrate configs between kernel upgrades.


--
Regards,
Kai

Replies to list-only preferred.

________________________________________
If you were a genkernel user I'd say what I normally do is copy the current kernel config to match the name scheme of the new kernel / version:

➜  kernels ls -l
total 4452
-rw-r--r-- 1 root root 183895 May 22  2017 kernel-config-x86_64-4.10.10-aufs
-rw-r--r-- 1 root root 183895 May 22  2017 kernel-config-x86_64-4.10.11-aufs
-rw-r--r-- 1 root root 183895 May 22  2017 kernel-config-x86_64-4.10.12-aufs
-rw-r--r-- 1 root root 183895 May 22  2017 kernel-config-x86_64-4.10.13-aufs
-rw-r--r-- 1 root root 183895 May 22  2017 kernel-config-x86_64-4.10.14-aufs
-rw-r--r-- 1 root root 183895 May 22  2017 kernel-config-x86_64-4.10.15-aufs
-rw-r--r-- 1 root root 183894 May 22  2017 kernel-config-x86_64-4.10.8-aufs
-rw-r--r-- 1 root root 183894 May 22  2017 kernel-config-x86_64-4.10.9-aufs
-rw-r--r-- 1 root root 168142 May 22  2017 kernel-config-x86_64-4.4.52-aufs
-rw-r--r-- 1 root root 168109 May 22  2017 kernel-config-x86_64-4.4.65-aufs
-rw-r--r-- 1 root root 168109 May 22  2017 kernel-config-x86_64-4.4.66-aufs
-rw-r--r-- 1 root root 176132 Aug  3 16:36 kernel-config-x86_64-4.4.67-aufs
-rw-r--r-- 1 root root 181019 Sep 12  2016 kernel-config-x86_64-4.6.3-gentoo
-rw-r--r-- 1 root root 182663 Oct  2  2016 kernel-config-x86_64-4.7.3-gentoo
-rw-r--r-- 1 root root 178168 Nov 17  2016 kernel-config-x86_64-4.8.0-gentoo
-rw-r--r-- 1 root root 178213 Dec 25  2016 kernel-config-x86_64-4.8.9-gentoo
-rw-r--r-- 1 root root 180503 Jan 13  2017 kernel-config-x86_64-4.9.0-gentoo
-rw-r--r-- 1 root root 180737 Mar 28  2017 kernel-config-x86_64-4.9.10-gentoo
-rw-r--r-- 1 root root 181246 May 22  2017 kernel-config-x86_64-4.9.16-aufs
-rw-r--r-- 1 root root 180734 May 14  2017 kernel-config-x86_64-4.9.16-gentoo
-rw-r--r-- 1 root root 181246 May 22  2017 kernel-config-x86_64-4.9.25-aufs
-rw-r--r-- 1 root root 181246 May 22  2017 kernel-config-x86_64-4.9.26-aufs
-rw-r--r-- 1 root root 181246 May 22  2017 kernel-config-x86_64-4.9.27-aufs
-rw-r--r-- 1 root root 180654 Feb  8  2017 kernel-config-x86_64-4.9.2-gentoo
-rw-r--r-- 1 root root 183895 May 22  2017 kernel-config-x86_64-linux-aufs ➜  kernels

then after copying the file from the old version to a new version I just run `genkernel all` and that usually works just fine. Sometimes some options can get missed if the option name changes but it's rarely ever a problem; you usually find out pretty quick. I have changed some options in genkernel. If you'd like to try this for yourself you can probably also start with `zcat /proc/config.gz > /etc/kernels/kernel-config-<version_format_here> also here is my genkernel.conf: 

OLDCONFIG="yes"
MENUCONFIG="no"
CLEAN="yes"
MRPROPER="yes"
MOUNTBOOT="yes"
SAVE_CONFIG="yes"
USECOLOR="yes"
MAKEOPTS="$(portageq envvar MAKEOPTS)"
LVM="yes"
LUKS="yes"
GPG="yes"
BUSYBOX="yes"
MDADM="yes"
MDADM_CONFIG="/etc/mdadm.conf"
E2FSPROGS="yes"
BTRFS="yes"
FIRMWARE_DIR="/lib/firmware"
DISKLABEL="yes"
SPLASH_THEME="gentoo"
TMPDIR="/tmp/genkernel"
BOOTDIR="/boot"
GK_SHARE="${GK_SHARE:-/usr/share/genkernel}"
CACHE_DIR="/var/cache/genkernel"
DISTDIR="${GK_SHARE}/distfiles"
LOGFILE="/var/log/genkernel.log"
LOGLEVEL=3
DEFAULT_KERNEL_SOURCE="/usr/src/linux"
DEFAULT_KERNEL_CONFIG=/root/my_kernel_config
ALLRAMDISKMODULES="1"
COMPRESS_INITRD="yes"
COMPRESS_INITRD_TYPE="best"


  reply	other threads:[~2017-12-29  1:24 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-12-28 19:52 [gentoo-user] Using an old kernel .config as the basis for a new .config Alan Mackenzie
2017-12-28 20:05 ` Jack
2017-12-28 20:13   ` Alan Mackenzie
2017-12-28 20:16   ` Rich Freeman
2017-12-28 20:31     ` Neil Bothwick
2017-12-29  0:58   ` [gentoo-user] " Kai Krakow
2017-12-29  1:24     ` Paige Thompson [this message]
2017-12-28 20:24 ` [gentoo-user] " Francesco Turco
2017-12-28 20:35 ` Ralph Seichter

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

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

  git send-email \
    --in-reply-to=1a9b60fec5f541e8bb4232d9b3a4c839@yourstruly.sx \
    --to=spam@yourstruly.sx \
    --cc=gentoo-user@lists.gentoo.org \
    /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.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox