]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/blame - Documentation/Changes
Documentation/SubmittingPatches: enrich the Sphinx output
[mirror_ubuntu-artful-kernel.git] / Documentation / Changes
CommitLineData
840f6690
MCC
1Minimal requerements to compile the Kernel
2++++++++++++++++++++++++++++++++++++++++++
3
1da177e4
LT
4Intro
5=====
6
7This document is designed to provide a list of the minimum levels of
81f10d19 8software necessary to run the 4.x kernels.
1da177e4
LT
9
10This document is originally based on my "Changes" file for 2.0.x kernels
11and therefore owes credit to the same people as that file (Jared Mauch,
12Axel Boldt, Alessandro Sigala, and countless other users all over the
13'net).
14
1da177e4 15Current Minimal Requirements
840f6690 16****************************
1da177e4 17
840f6690 18Upgrade to at **least** these software revisions before thinking you've
1da177e4
LT
19encountered a bug! If you're unsure what version you're currently
20running, the suggested command should tell you.
21
5adaf851
LT
22Again, keep in mind that this list assumes you are already functionally
23running a Linux kernel. Also, not all tools are necessary on all
24systems; obviously, if you don't have any ISDN hardware, for example,
25you probably needn't concern yourself with isdn4k-utils.
1da177e4 26
840f6690
MCC
27====================== =============== ========================================
28 Program Minimal version Command to check the version
29====================== =============== ========================================
30GNU C 3.2 gcc --version
31GNU make 3.80 make --version
32binutils 2.12 ld -v
33util-linux 2.10o fdformat --version
34module-init-tools 0.9.10 depmod -V
35e2fsprogs 1.41.4 e2fsck -V
36jfsutils 1.1.3 fsck.jfs -V
37reiserfsprogs 3.6.3 reiserfsck -V
38xfsprogs 2.6.0 xfs_db -V
39squashfs-tools 4.0 mksquashfs -version
40btrfs-progs 0.18 btrfsck
41pcmciautils 004 pccardctl -V
42quota-tools 3.09 quota -V
43PPP 2.4.0 pppd --version
44isdn4k-utils 3.1pre1 isdnctrl 2>&1|grep version
45nfs-utils 1.0.5 showmount --version
46procps 3.2.0 ps --version
47oprofile 0.9 oprofiled --version
48udev 081 udevd --version
49grub 0.93 grub --version || grub-install --version
50mcelog 0.6 mcelog --version
51iptables 1.4.2 iptables -V
52openssl & libcrypto 1.0.0 openssl version
53bc 1.06.95 bc --version
81f10d19 54Sphinx\ [#f1]_ 1.2 sphinx-build --version
840f6690 55====================== =============== ========================================
7a922637 56
81f10d19 57.. [#f1] Sphinx is needed only to build the Kernel documentation
1da177e4
LT
58
59Kernel compilation
840f6690 60******************
1da177e4
LT
61
62GCC
63---
64
65The gcc version requirements may vary depending on the type of CPU in your
a1365647 66computer.
1da177e4
LT
67
68Make
69----
70
bf5777bc 71You will need GNU make 3.80 or later to build the kernel.
1da177e4
LT
72
73Binutils
74--------
75
840f6690
MCC
76Linux on IA-32 has recently switched from using ``as86`` to using ``gas`` for
77assembling the 16-bit boot code, removing the need for ``as86`` to compile
1da177e4
LT
78your kernel. This change does, however, mean that you need a recent
79release of binutils.
80
08219624
JLPD
81Perl
82----
83
840f6690
MCC
84You will need perl 5 and the following modules: ``Getopt::Long``,
85``Getopt::Std``, ``File::Basename``, and ``File::Find`` to build the kernel.
08219624 86
221069be
A
87BC
88--
89
90You will need bc to build kernels 3.10 and higher
91
08219624 92
3f1d44ae
DH
93OpenSSL
94-------
95
96Module signing and external certificate handling use the OpenSSL program and
97crypto library to do key creation and signature generation.
98
99You will need openssl to build kernels 3.7 and higher if module signing is
100enabled. You will also need openssl development packages to build kernels 4.3
101and higher.
102
103
1da177e4 104System utilities
840f6690 105****************
1da177e4
LT
106
107Architectural changes
108---------------------
109
110DevFS has been obsoleted in favour of udev
111(http://www.kernel.org/pub/linux/utils/kernel/hotplug/)
112
11332-bit UID support is now in place. Have fun!
114
115Linux documentation for functions is transitioning to inline
116documentation via specially-formatted comments near their
117definitions in the source. These comments can be combined with the
118SGML templates in the Documentation/DocBook directory to make DocBook
119files, which can then be converted by DocBook stylesheets to PostScript,
120HTML, PDF files, and several other formats. In order to convert from
121DocBook format to a format of your choice, you'll need to install Jade as
122well as the desired DocBook stylesheets.
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
GKH
212accessible as a normal (misc) character device. If you are not using
213udev you may need to:
1da177e4 214
840f6690
MCC
215::
216
217 mkdir /dev/cpu
218 mknod /dev/cpu/microcode c 10 184
219 chmod 0644 /dev/cpu/microcode
1da177e4
LT
220
221as root before you can use this. You'll probably also want to
222get the user-space microcode_ctl utility to use with this.
223
1da177e4
LT
224udev
225----
840f6690
MCC
226
227``udev`` is a userspace application for populating ``/dev`` dynamically with
228only entries for devices actually present. ``udev`` replaces the basic
03a67a46 229functionality of devfs, while allowing persistent device naming for
890fbae2 230devices.
1da177e4 231
909021ea
MS
232FUSE
233----
234
235Needs libfuse 2.4.0 or later. Absolute minimum is 2.3.0 but mount
840f6690 236options ``direct_io`` and ``kernel_cache`` won't work.
909021ea 237
1da177e4 238Networking
840f6690 239**********
1da177e4
LT
240
241General changes
242---------------
243
244If you have advanced network configuration needs, you should probably
245consider using the network tools from ip-route2.
246
247Packet Filter / NAT
248-------------------
249The packet filtering and NAT code uses the same tools like the previous 2.4.x
250kernel series (iptables). It still includes backwards-compatibility modules
251for 2.2.x-style ipchains and 2.0.x-style ipfwadm.
252
253PPP
254---
255
256The PPP driver has been restructured to support multilink and to
257enable it to operate over diverse media layers. If you use PPP,
258upgrade pppd to at least 2.4.0.
259
890fbae2 260If you are not using udev, you must have the device file /dev/ppp
1da177e4
LT
261which can be made by:
262
840f6690
MCC
263::
264
265 mknod /dev/ppp c 108 0
1da177e4
LT
266
267as root.
268
1da177e4
LT
269Isdn4k-utils
270------------
271
272Due to changes in the length of the phone number field, isdn4k-utils
273needs to be recompiled or (preferably) upgraded.
274
275NFS-utils
276---------
277
5adaf851
LT
278In ancient (2.4 and earlier) kernels, the nfs server needed to know
279about any client that expected to be able to access files via NFS. This
840f6690
MCC
280information would be given to the kernel by ``mountd`` when the client
281mounted the filesystem, or by ``exportfs`` at system startup. exportfs
282would take information about active clients from ``/var/lib/nfs/rmtab``.
1da177e4
LT
283
284This approach is quite fragile as it depends on rmtab being correct
285which is not always easy, particularly when trying to implement
840f6690 286fail-over. Even when the system is working well, ``rmtab`` suffers from
1da177e4
LT
287getting lots of old entries that never get removed.
288
5adaf851
LT
289With modern kernels we have the option of having the kernel tell mountd
290when it gets a request from an unknown host, and mountd can give
291appropriate export information to the kernel. This removes the
840f6690 292dependency on ``rmtab`` and means that the kernel only needs to know about
5adaf851 293currently active clients.
1da177e4
LT
294
295To enable this new functionality, you need to:
296
840f6690
MCC
297::
298
e4121712 299 mount -t nfsd nfsd /proc/fs/nfsd
1da177e4
LT
300
301before running exportfs or mountd. It is recommended that all NFS
302services be protected from the internet-at-large by a firewall where
303that is possible.
304
172d899d
AK
305mcelog
306------
307
c8c3f7d6 308On x86 kernels the mcelog utility is needed to process and log machine check
840f6690
MCC
309events when ``CONFIG_X86_MCE`` is enabled. Machine check events are errors
310reported by the CPU. Processing them is strongly encouraged.
172d899d 311
81f10d19
MCC
312Kernel documentation
313********************
314
315Sphinx
316------
317
318The ReST markups currently used by the Documentation/ files are meant to be
319built with ``Sphinx`` version 1.2 or upper. If you're desiring to build
320PDF outputs, it is recommended to use version 1.4.6.
321
322.. note::
323
324 Please notice that, for PDF and LaTeX output, you'll also need ``XeLaTeX``
325 version 3.14159265. Depending on the distribution, you may also need
326 to install a series of ``texlive`` packages that provide the minimal
327 set of functionalities required for ``XeLaTex`` to work.
328
329Other tools
330-----------
331
332In order to produce documentation from DocBook, you'll also need ``xmlto``.
333Please notice, however, that we're currently migrating all documents to use
334``Sphinx``.
335
1da177e4
LT
336Getting updated software
337========================
338
339Kernel compilation
340******************
341
a1365647
AM
342gcc
343---
840f6690
MCC
344
345- <ftp://ftp.gnu.org/gnu/gcc/>
1da177e4
LT
346
347Make
348----
840f6690
MCC
349
350- <ftp://ftp.gnu.org/gnu/make/>
1da177e4
LT
351
352Binutils
353--------
840f6690
MCC
354
355- <ftp://ftp.kernel.org/pub/linux/devel/binutils/>
1da177e4 356
3f1d44ae
DH
357OpenSSL
358-------
840f6690
MCC
359
360- <https://www.openssl.org/>
3f1d44ae 361
1da177e4
LT
362System utilities
363****************
364
365Util-linux
366----------
840f6690
MCC
367
368- <ftp://ftp.kernel.org/pub/linux/utils/util-linux/>
1da177e4
LT
369
370Ksymoops
371--------
840f6690
MCC
372
373- <ftp://ftp.kernel.org/pub/linux/utils/kernel/ksymoops/v2.4/>
1da177e4
LT
374
375Module-Init-Tools
376-----------------
840f6690
MCC
377
378- <ftp://ftp.kernel.org/pub/linux/kernel/people/rusty/modules/>
1da177e4
LT
379
380Mkinitrd
381--------
840f6690
MCC
382
383- <https://code.launchpad.net/initrd-tools/main>
1da177e4
LT
384
385E2fsprogs
386---------
840f6690
MCC
387
388- <http://prdownloads.sourceforge.net/e2fsprogs/e2fsprogs-1.29.tar.gz>
1da177e4
LT
389
390JFSutils
391--------
840f6690
MCC
392
393- <http://jfs.sourceforge.net/>
1da177e4
LT
394
395Reiserfsprogs
396-------------
840f6690
MCC
397
398- <http://www.kernel.org/pub/linux/utils/fs/reiserfs/>
1da177e4
LT
399
400Xfsprogs
401--------
840f6690
MCC
402
403- <ftp://oss.sgi.com/projects/xfs/>
1da177e4 404
5085cb26
DB
405Pcmciautils
406-----------
840f6690
MCC
407
408- <ftp://ftp.kernel.org/pub/linux/utils/kernel/pcmcia/>
5085cb26 409
1da177e4 410Quota-tools
840f6690
MCC
411-----------
412
413- <http://sourceforge.net/projects/linuxquota/>
1da177e4 414
1da177e4
LT
415DocBook Stylesheets
416-------------------
840f6690
MCC
417
418- <http://sourceforge.net/projects/docbook/files/docbook-dsssl/>
1da177e4 419
8b0c2d98
MW
420XMLTO XSLT Frontend
421-------------------
840f6690
MCC
422
423- <http://cyberelk.net/tim/xmlto/>
8b0c2d98 424
1da177e4
LT
425Intel P6 microcode
426------------------
840f6690
MCC
427
428- <https://downloadcenter.intel.com/>
1da177e4 429
1da177e4
LT
430udev
431----
840f6690
MCC
432
433- <http://www.freedesktop.org/software/systemd/man/udev.html>
1da177e4 434
909021ea
MS
435FUSE
436----
840f6690
MCC
437
438- <http://sourceforge.net/projects/fuse>
909021ea 439
172d899d
AK
440mcelog
441------
840f6690
MCC
442
443- <http://www.mcelog.org/>
172d899d 444
1da177e4
LT
445Networking
446**********
447
448PPP
449---
840f6690
MCC
450
451- <ftp://ftp.samba.org/pub/ppp/>
1da177e4
LT
452
453Isdn4k-utils
454------------
840f6690
MCC
455
456- <ftp://ftp.isdn4linux.de/pub/isdn4linux/utils/>
1da177e4
LT
457
458NFS-utils
459---------
840f6690
MCC
460
461- <http://sourceforge.net/project/showfiles.php?group_id=14>
1da177e4
LT
462
463Iptables
464--------
840f6690
MCC
465
466- <http://www.iptables.org/downloads.html>
1da177e4
LT
467
468Ip-route2
469---------
840f6690
MCC
470
471- <https://www.kernel.org/pub/linux/utils/net/iproute2/>
1da177e4
LT
472
473OProfile
474--------
840f6690
MCC
475
476- <http://oprofile.sf.net/download/>
1da177e4
LT
477
478NFS-Utils
479---------
840f6690
MCC
480
481- <http://nfs.sourceforge.net/>
81f10d19
MCC
482
483Kernel documentation
484********************
485
486Sphinx
487------
488
489- <http://www.sphinx-doc.org/>