aboutsummaryrefslogtreecommitdiff
path: root/src/docs/Kernel.html
blob: 5f3eb9dcb2f0b72d0803dd7bd18d26054dabc4d4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- Copyright (C) 2020 Cem Keylan

Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
any later version published by the Free Software Foundation; with no
Invariant Sections, with no Front-Cover Texts and no Back-Cover Texts.
A copy of the license is included in the section entitled "GNU Free
Documentation License." -->
<!-- Created by GNU Texinfo 6.7, http://www.gnu.org/software/texinfo/ -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Kernel (Carbs Linux User Manual)</title>

<meta name="description" content="Kernel (Carbs Linux User Manual)">
<meta name="keywords" content="Kernel (Carbs Linux User Manual)">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<link href="index.html" rel="start" title="Top">
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="Installation.html" rel="up" title="Installation">
<link href="Making-your-system-bootable.html" rel="next" title="Making your system bootable">
<link href="System-Configuration.html" rel="prev" title="System Configuration">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.indentedblock {margin-right: 0em}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
kbd {font-style: oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
span.nolinebreak {white-space: nowrap}
span.roman {font-family: initial; font-weight: normal}
span.sansserif {font-family: sans-serif; font-weight: normal}
ul.no-bullet {list-style: none}
-->
</style>


</head>

<body lang="en">
<span id="Kernel"></span><div class="header">
<p>
Next: <a href="Making-your-system-bootable.html" accesskey="n" rel="next">Making your system bootable</a>, Previous: <a href="System-Configuration.html" accesskey="p" rel="prev">System Configuration</a>, Up: <a href="Installation.html" accesskey="u" rel="up">Installation</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>]</p>
</div>
<hr>
<span id="Kernel-1"></span><h3 class="section">1.4 Kernel</h3>

<p>Kernel isn&rsquo;t managed under the main repositories, even though you could package
one for your personal use. Here is an <a href="https://github.com/cemkeylan/kiss-repository/tree/master/personal/linux">example kernel package</a>,
which you will need to reconfigure for your specific setup if you want to make
use of it.
</p>


<span id="Obtaining-the-kernel-sources"></span><h4 class="subsection">1.4.1 Obtaining the kernel sources</h4>

<p>You can visit the https://kernel.org website to choose a kernel that you want
to install. Though only the latest stable and longterm (LTS) versions are
supported.
</p>
<div class="example">
<pre class="example">Download the kernel and extract it
$ wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.7.6.tar.xz
$ tar xf linux-5.7.6.tar.xz

Change directory into the kernel sources
$ cd linux-5.7.6
</pre></div>



<span id="Installing-dependencies"></span><h4 class="subsection">1.4.2 Installing dependencies</h4>

<p>In order to compile the kernel you will need to install some dependencies. You
will need <code>libelf</code> to compile the kernel. If you want to configure using the menu
interface you will also need <code>ncurses</code>.
</p>
<div class="example">
<pre class="example">The package manager asks to install if you are building more than one package,
so no need to run 'cpt i ...'
$ cpt b libelf ncurses
</pre></div>

<p>In the vanilla kernel sources, you need perl to compile the kernel, but it can
be easily patched out. You will need to apply the following patch. Patch was
written by <a href="https://github.com/E5ten">E5ten</a>. You will need to obtain and
apply the patch in the kernel source directory.
</p>
<div class="example">
<pre class="example">$ wget https://dl.carbslinux.org/distfiles/kernel-no-perl.patch
$ patch -p1 &lt; kernel-no-perl.patch
</pre></div>



<span id="Compiling-the-kernel"></span><h4 class="subsection">1.4.3 Compiling the kernel</h4>

<p>Next step is configuring and building the kernel. You can check Gentoo&rsquo;s <a href="https://wiki.gentoo.org/wiki/Kernel/Configuration">kernel configuration guide</a>
to learn more about the matter. Overall, Gentoo Wiki is a good place to learn
about configuration according to your hardware. The following will assume a
monolithic kernel.
</p>
<div class="example">
<pre class="example">$ make menuconfig
$ make
$ install -Dm755 $(make -s image_name) /boot/vmlinuz-linux
</pre></div>



<hr>
<div class="header">
<p>
Next: <a href="Making-your-system-bootable.html" accesskey="n" rel="next">Making your system bootable</a>, Previous: <a href="System-Configuration.html" accesskey="p" rel="prev">System Configuration</a>, Up: <a href="Installation.html" accesskey="u" rel="up">Installation</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>]</p>
</div>



</body>
</html>