Skip to content

Commit 0d8aa32

Browse files
knurdJonathan Corbet
authored andcommitted
docs: quickly-build-trimmed-linux: various small fixes and improvements
* improve the short description of localmodconfig in the step-by-step guide while fixing its broken first sentence * briefly mention immutable Linux distributions * use '--shallow-exclude=v6.0' throughout the document * instead of "git reset --hard; git checkout ..." use "git checkout --force ..." in the step-by-step guide: this matches the TLDR and is one command less to execute. This led to a few small adjustments to the text and the flow in the surrounding area. * fix two thinkos in the section explaining full git clones Signed-off-by: Thorsten Leemhuis <linux@leemhuis.info> Link: https://lore.kernel.org/r/6f4684b9a5d11d3adb04e0af3cfc60db8b28eeb2.1684140700.git.linux@leemhuis.info Signed-off-by: Jonathan Corbet <corbet@lwn.net>
1 parent 96e3cc2 commit 0d8aa32

File tree

1 file changed

+27
-22
lines changed

1 file changed

+27
-22
lines changed

Documentation/admin-guide/quickly-build-trimmed-linux.rst

Lines changed: 27 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -215,12 +215,14 @@ again.
215215
reduce the compile time enormously, especially if you are running an
216216
universal kernel from a commodity Linux distribution.
217217

218-
There is a catch: the make target 'localmodconfig' will disable kernel
219-
features you have not directly or indirectly through some program utilized
220-
since you booted the system. You can reduce or nearly eliminate that risk by
221-
using tricks outlined in the reference section; for quick testing purposes
222-
that risk is often negligible, but it is an aspect you want to keep in mind
223-
in case your kernel behaves oddly.
218+
There is a catch: 'localmodconfig' is likely to disable kernel features you
219+
did not use since you booted your Linux -- like drivers for currently
220+
disconnected peripherals or a virtualization software not haven't used yet.
221+
You can reduce or nearly eliminate that risk with tricks the reference
222+
section outlines; but when building a kernel just for quick testing purposes
223+
it is often negligible if such features are missing. But you should keep that
224+
aspect in mind when using a kernel built with this make target, as it might
225+
be the reason why something you only use occasionally stopped working.
224226

225227
[:ref:`details<configuration>`]
226228

@@ -271,6 +273,9 @@ again.
271273
does nothing at all; in that case you have to manually install your kernel,
272274
as outlined in the reference section.
273275

276+
If you are running a immutable Linux distribution, check its documentation
277+
and the web to find out how to install your own kernel there.
278+
274279
[:ref:`details<install>`]
275280

276281
.. _another_sbs:
@@ -291,29 +296,29 @@ again.
291296
version you care about, as git otherwise might retrieve the entire commit
292297
history::
293298

294-
git fetch --shallow-exclude=v6.1 origin
295-
296-
If you modified the sources (for example by applying a patch), you now need
297-
to discard those modifications; that's because git otherwise will not be able
298-
to switch to the sources of another version due to potential conflicting
299-
changes::
300-
301-
git reset --hard
299+
git fetch --shallow-exclude=v6.0 origin
302300

303-
Now checkout the version you are interested in, as explained above::
301+
Now switch to the version you are interested in -- but be aware the command
302+
used here will discard any modifications you performed, as they would
303+
conflict with the sources you want to checkout::
304304

305-
git checkout --detach origin/master
305+
git checkout --force --detach origin/master
306306

307307
At this point you might want to patch the sources again or set/modify a build
308-
tag, as explained earlier; afterwards adjust the build configuration to the
309-
new codebase and build your next kernel::
308+
tag, as explained earlier. Afterwards adjust the build configuration to the
309+
new codebase using olddefconfig, which will now adjust the configuration file
310+
you prepared earlier using localmodconfig (~/linux/.config) for your next
311+
kernel::
310312

311313
# reminder: if you want to apply patches, do it at this point
312314
# reminder: you might want to update your build tag at this point
313315
make olddefconfig
316+
317+
Now build your kernel::
318+
314319
make -j $(nproc --all)
315320

316-
Install the kernel as outlined above::
321+
Afterwards install the kernel as outlined above::
317322

318323
command -v installkernel && sudo make modules_install install
319324

@@ -584,11 +589,11 @@ versions and individual commits at hand at any time::
584589
curl -L \
585590
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/clone.bundle \
586591
-o linux-stable.git.bundle
587-
git clone clone.bundle ~/linux/
592+
git clone linux-stable.git.bundle ~/linux/
588593
rm linux-stable.git.bundle
589594
cd ~/linux/
590-
git remote set-url origin
591-
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
595+
git remote set-url origin \
596+
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
592597
git fetch origin
593598
git checkout --detach origin/master
594599

0 commit comments

Comments
 (0)