summaryrefslogtreecommitdiff
path: root/Documentation/Changes (plain)
blob: 76d6dc0d32274250937f626e9f677cbd5ab6c24d
1.. _changes:
2
3Minimal requerements to compile the Kernel
4++++++++++++++++++++++++++++++++++++++++++
5
6Intro
7=====
8
9This document is designed to provide a list of the minimum levels of
10software necessary to run the 4.x kernels.
11
12This document is originally based on my "Changes" file for 2.0.x kernels
13and therefore owes credit to the same people as that file (Jared Mauch,
14Axel Boldt, Alessandro Sigala, and countless other users all over the
15'net).
16
17Current Minimal Requirements
18****************************
19
20Upgrade to at **least** these software revisions before thinking you've
21encountered a bug! If you're unsure what version you're currently
22running, the suggested command should tell you.
23
24Again, keep in mind that this list assumes you are already functionally
25running a Linux kernel. Also, not all tools are necessary on all
26systems; obviously, if you don't have any ISDN hardware, for example,
27you probably needn't concern yourself with isdn4k-utils.
28
29====================== =============== ========================================
30 Program Minimal version Command to check the version
31====================== =============== ========================================
32GNU C 3.2 gcc --version
33GNU make 3.80 make --version
34binutils 2.12 ld -v
35util-linux 2.10o fdformat --version
36kmod 13 depmod -V
37e2fsprogs 1.41.4 e2fsck -V
38jfsutils 1.1.3 fsck.jfs -V
39reiserfsprogs 3.6.3 reiserfsck -V
40xfsprogs 2.6.0 xfs_db -V
41squashfs-tools 4.0 mksquashfs -version
42btrfs-progs 0.18 btrfsck
43pcmciautils 004 pccardctl -V
44quota-tools 3.09 quota -V
45PPP 2.4.0 pppd --version
46isdn4k-utils 3.1pre1 isdnctrl 2>&1|grep version
47nfs-utils 1.0.5 showmount --version
48procps 3.2.0 ps --version
49oprofile 0.9 oprofiled --version
50udev 081 udevd --version
51grub 0.93 grub --version || grub-install --version
52mcelog 0.6 mcelog --version
53iptables 1.4.2 iptables -V
54openssl & libcrypto 1.0.0 openssl version
55bc 1.06.95 bc --version
56Sphinx\ [#f1]_ 1.2 sphinx-build --version
57====================== =============== ========================================
58
59.. [#f1] Sphinx is needed only to build the Kernel documentation
60
61Kernel compilation
62******************
63
64GCC
65---
66
67The gcc version requirements may vary depending on the type of CPU in your
68computer.
69
70Make
71----
72
73You will need GNU make 3.80 or later to build the kernel.
74
75Binutils
76--------
77
78Linux on IA-32 has recently switched from using ``as86`` to using ``gas`` for
79assembling the 16-bit boot code, removing the need for ``as86`` to compile
80your kernel. This change does, however, mean that you need a recent
81release of binutils.
82
83Perl
84----
85
86You will need perl 5 and the following modules: ``Getopt::Long``,
87``Getopt::Std``, ``File::Basename``, and ``File::Find`` to build the kernel.
88
89BC
90--
91
92You will need bc to build kernels 3.10 and higher
93
94
95OpenSSL
96-------
97
98Module signing and external certificate handling use the OpenSSL program and
99crypto library to do key creation and signature generation.
100
101You will need openssl to build kernels 3.7 and higher if module signing is
102enabled. You will also need openssl development packages to build kernels 4.3
103and higher.
104
105
106System utilities
107****************
108
109Architectural changes
110---------------------
111
112DevFS has been obsoleted in favour of udev
113(http://www.kernel.org/pub/linux/utils/kernel/hotplug/)
114
11532-bit UID support is now in place. Have fun!
116
117Linux documentation for functions is transitioning to inline
118documentation via specially-formatted comments near their
119definitions in the source. These comments can be combined with the
120SGML templates in the Documentation/DocBook directory to make DocBook
121files, which can then be converted by DocBook stylesheets to PostScript,
122HTML, PDF files, and several other formats. In order to convert from
123DocBook format to a format of your choice, you'll need to install Jade as
124well as the desired DocBook stylesheets.
125
126Util-linux
127----------
128
129New versions of util-linux provide ``fdisk`` support for larger disks,
130support new options to mount, recognize more supported partition
131types, have a fdformat which works with 2.4 kernels, and similar goodies.
132You'll probably want to upgrade.
133
134Ksymoops
135--------
136
137If the unthinkable happens and your kernel oopses, you may need the
138ksymoops tool to decode it, but in most cases you don't.
139It is generally preferred to build the kernel with ``CONFIG_KALLSYMS`` so
140that it produces readable dumps that can be used as-is (this also
141produces better output than ksymoops). If for some reason your kernel
142is not build with ``CONFIG_KALLSYMS`` and you have no way to rebuild and
143reproduce the Oops with that option, then you can still decode that Oops
144with ksymoops.
145
146Mkinitrd
147--------
148
149These changes to the ``/lib/modules`` file tree layout also require that
150mkinitrd be upgraded.
151
152E2fsprogs
153---------
154
155The latest version of ``e2fsprogs`` fixes several bugs in fsck and
156debugfs. Obviously, it's a good idea to upgrade.
157
158JFSutils
159--------
160
161The ``jfsutils`` package contains the utilities for the file system.
162The following utilities are available:
163
164- ``fsck.jfs`` - initiate replay of the transaction log, and check
165 and repair a JFS formatted partition.
166
167- ``mkfs.jfs`` - create a JFS formatted partition.
168
169- other file system utilities are also available in this package.
170
171Reiserfsprogs
172-------------
173
174The reiserfsprogs package should be used for reiserfs-3.6.x
175(Linux kernels 2.4.x). It is a combined package and contains working
176versions of ``mkreiserfs``, ``resize_reiserfs``, ``debugreiserfs`` and
177``reiserfsck``. These utils work on both i386 and alpha platforms.
178
179Xfsprogs
180--------
181
182The latest version of ``xfsprogs`` contains ``mkfs.xfs``, ``xfs_db``, and the
183``xfs_repair`` utilities, among others, for the XFS filesystem. It is
184architecture independent and any version from 2.0.0 onward should
185work correctly with this version of the XFS kernel code (2.6.0 or
186later is recommended, due to some significant improvements).
187
188PCMCIAutils
189-----------
190
191PCMCIAutils replaces ``pcmcia-cs``. It properly sets up
192PCMCIA sockets at system startup and loads the appropriate modules
193for 16-bit PCMCIA devices if the kernel is modularized and the hotplug
194subsystem is used.
195
196Quota-tools
197-----------
198
199Support for 32 bit uid's and gid's is required if you want to use
200the newer version 2 quota format. Quota-tools version 3.07 and
201newer has this support. Use the recommended version or newer
202from the table above.
203
204Intel IA32 microcode
205--------------------
206
207A driver has been added to allow updating of Intel IA32 microcode,
208accessible as a normal (misc) character device. If you are not using
209udev you may need to::
210
211 mkdir /dev/cpu
212 mknod /dev/cpu/microcode c 10 184
213 chmod 0644 /dev/cpu/microcode
214
215as root before you can use this. You'll probably also want to
216get the user-space microcode_ctl utility to use with this.
217
218udev
219----
220
221``udev`` is a userspace application for populating ``/dev`` dynamically with
222only entries for devices actually present. ``udev`` replaces the basic
223functionality of devfs, while allowing persistent device naming for
224devices.
225
226FUSE
227----
228
229Needs libfuse 2.4.0 or later. Absolute minimum is 2.3.0 but mount
230options ``direct_io`` and ``kernel_cache`` won't work.
231
232Networking
233**********
234
235General changes
236---------------
237
238If you have advanced network configuration needs, you should probably
239consider using the network tools from ip-route2.
240
241Packet Filter / NAT
242-------------------
243The packet filtering and NAT code uses the same tools like the previous 2.4.x
244kernel series (iptables). It still includes backwards-compatibility modules
245for 2.2.x-style ipchains and 2.0.x-style ipfwadm.
246
247PPP
248---
249
250The PPP driver has been restructured to support multilink and to
251enable it to operate over diverse media layers. If you use PPP,
252upgrade pppd to at least 2.4.0.
253
254If you are not using udev, you must have the device file /dev/ppp
255which can be made by::
256
257 mknod /dev/ppp c 108 0
258
259as root.
260
261Isdn4k-utils
262------------
263
264Due to changes in the length of the phone number field, isdn4k-utils
265needs to be recompiled or (preferably) upgraded.
266
267NFS-utils
268---------
269
270In ancient (2.4 and earlier) kernels, the nfs server needed to know
271about any client that expected to be able to access files via NFS. This
272information would be given to the kernel by ``mountd`` when the client
273mounted the filesystem, or by ``exportfs`` at system startup. exportfs
274would take information about active clients from ``/var/lib/nfs/rmtab``.
275
276This approach is quite fragile as it depends on rmtab being correct
277which is not always easy, particularly when trying to implement
278fail-over. Even when the system is working well, ``rmtab`` suffers from
279getting lots of old entries that never get removed.
280
281With modern kernels we have the option of having the kernel tell mountd
282when it gets a request from an unknown host, and mountd can give
283appropriate export information to the kernel. This removes the
284dependency on ``rmtab`` and means that the kernel only needs to know about
285currently active clients.
286
287To enable this new functionality, you need to::
288
289 mount -t nfsd nfsd /proc/fs/nfsd
290
291before running exportfs or mountd. It is recommended that all NFS
292services be protected from the internet-at-large by a firewall where
293that is possible.
294
295mcelog
296------
297
298On x86 kernels the mcelog utility is needed to process and log machine check
299events when ``CONFIG_X86_MCE`` is enabled. Machine check events are errors
300reported by the CPU. Processing them is strongly encouraged.
301
302Kernel documentation
303********************
304
305Sphinx
306------
307
308The ReST markups currently used by the Documentation/ files are meant to be
309built with ``Sphinx`` version 1.2 or upper. If you're desiring to build
310PDF outputs, it is recommended to use version 1.4.6.
311
312.. note::
313
314 Please notice that, for PDF and LaTeX output, you'll also need ``XeLaTeX``
315 version 3.14159265. Depending on the distribution, you may also need
316 to install a series of ``texlive`` packages that provide the minimal
317 set of functionalities required for ``XeLaTex`` to work.
318
319Other tools
320-----------
321
322In order to produce documentation from DocBook, you'll also need ``xmlto``.
323Please notice, however, that we're currently migrating all documents to use
324``Sphinx``.
325
326Getting updated software
327========================
328
329Kernel compilation
330******************
331
332gcc
333---
334
335- <ftp://ftp.gnu.org/gnu/gcc/>
336
337Make
338----
339
340- <ftp://ftp.gnu.org/gnu/make/>
341
342Binutils
343--------
344
345- <ftp://ftp.kernel.org/pub/linux/devel/binutils/>
346
347OpenSSL
348-------
349
350- <https://www.openssl.org/>
351
352System utilities
353****************
354
355Util-linux
356----------
357
358- <ftp://ftp.kernel.org/pub/linux/utils/util-linux/>
359
360Kmod
361----
362
363- <https://www.kernel.org/pub/linux/utils/kernel/kmod/>
364- <https://git.kernel.org/pub/scm/utils/kernel/kmod/kmod.git>
365
366Ksymoops
367--------
368
369- <ftp://ftp.kernel.org/pub/linux/utils/kernel/ksymoops/v2.4/>
370
371Mkinitrd
372--------
373
374- <https://code.launchpad.net/initrd-tools/main>
375
376E2fsprogs
377---------
378
379- <http://prdownloads.sourceforge.net/e2fsprogs/e2fsprogs-1.29.tar.gz>
380
381JFSutils
382--------
383
384- <http://jfs.sourceforge.net/>
385
386Reiserfsprogs
387-------------
388
389- <http://www.kernel.org/pub/linux/utils/fs/reiserfs/>
390
391Xfsprogs
392--------
393
394- <ftp://oss.sgi.com/projects/xfs/>
395
396Pcmciautils
397-----------
398
399- <ftp://ftp.kernel.org/pub/linux/utils/kernel/pcmcia/>
400
401Quota-tools
402-----------
403
404- <http://sourceforge.net/projects/linuxquota/>
405
406DocBook Stylesheets
407-------------------
408
409- <http://sourceforge.net/projects/docbook/files/docbook-dsssl/>
410
411XMLTO XSLT Frontend
412-------------------
413
414- <http://cyberelk.net/tim/xmlto/>
415
416Intel P6 microcode
417------------------
418
419- <https://downloadcenter.intel.com/>
420
421udev
422----
423
424- <http://www.freedesktop.org/software/systemd/man/udev.html>
425
426FUSE
427----
428
429- <http://sourceforge.net/projects/fuse>
430
431mcelog
432------
433
434- <http://www.mcelog.org/>
435
436Networking
437**********
438
439PPP
440---
441
442- <ftp://ftp.samba.org/pub/ppp/>
443
444Isdn4k-utils
445------------
446
447- <ftp://ftp.isdn4linux.de/pub/isdn4linux/utils/>
448
449NFS-utils
450---------
451
452- <http://sourceforge.net/project/showfiles.php?group_id=14>
453
454Iptables
455--------
456
457- <http://www.iptables.org/downloads.html>
458
459Ip-route2
460---------
461
462- <https://www.kernel.org/pub/linux/utils/net/iproute2/>
463
464OProfile
465--------
466
467- <http://oprofile.sf.net/download/>
468
469NFS-Utils
470---------
471
472- <http://nfs.sourceforge.net/>
473
474Kernel documentation
475********************
476
477Sphinx
478------
479
480- <http://www.sphinx-doc.org/>
481