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