]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/blame - Documentation/process/changes.rst
drm/vc4: Convert timers to use timer_setup()
[mirror_ubuntu-bionic-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
212fa2f8 56Sphinx\ [#f1]_ 1.3 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
b8b07b5c
MCC
312Please see :ref:`sphinx_install` in ``Documentation/doc-guide/sphinx.rst``
313for details about Sphinx requirements.
81f10d19 314
1da177e4
LT
315Getting updated software
316========================
317
318Kernel compilation
319******************
320
a1365647
AM
321gcc
322---
840f6690
MCC
323
324- <ftp://ftp.gnu.org/gnu/gcc/>
1da177e4
LT
325
326Make
327----
840f6690
MCC
328
329- <ftp://ftp.gnu.org/gnu/make/>
1da177e4
LT
330
331Binutils
332--------
840f6690 333
3bdadc86 334- <https://www.kernel.org/pub/linux/devel/binutils/>
1da177e4 335
3f1d44ae
DH
336OpenSSL
337-------
840f6690
MCC
338
339- <https://www.openssl.org/>
3f1d44ae 340
1da177e4
LT
341System utilities
342****************
343
344Util-linux
345----------
840f6690 346
3bdadc86 347- <https://www.kernel.org/pub/linux/utils/util-linux/>
1da177e4
LT
348
349Ksymoops
350--------
840f6690 351
3bdadc86 352- <https://www.kernel.org/pub/linux/utils/kernel/ksymoops/v2.4/>
1da177e4
LT
353
354Module-Init-Tools
355-----------------
840f6690 356
3bdadc86 357- <https://www.kernel.org/pub/linux/utils/kernel/module-init-tools/>
1da177e4
LT
358
359Mkinitrd
360--------
840f6690
MCC
361
362- <https://code.launchpad.net/initrd-tools/main>
1da177e4
LT
363
364E2fsprogs
365---------
840f6690
MCC
366
367- <http://prdownloads.sourceforge.net/e2fsprogs/e2fsprogs-1.29.tar.gz>
1da177e4
LT
368
369JFSutils
370--------
840f6690
MCC
371
372- <http://jfs.sourceforge.net/>
1da177e4
LT
373
374Reiserfsprogs
375-------------
840f6690
MCC
376
377- <http://www.kernel.org/pub/linux/utils/fs/reiserfs/>
1da177e4
LT
378
379Xfsprogs
380--------
840f6690
MCC
381
382- <ftp://oss.sgi.com/projects/xfs/>
1da177e4 383
5085cb26
DB
384Pcmciautils
385-----------
840f6690 386
3bdadc86 387- <https://www.kernel.org/pub/linux/utils/kernel/pcmcia/>
5085cb26 388
1da177e4 389Quota-tools
840f6690
MCC
390-----------
391
392- <http://sourceforge.net/projects/linuxquota/>
1da177e4 393
8b0c2d98 394
1da177e4
LT
395Intel P6 microcode
396------------------
840f6690
MCC
397
398- <https://downloadcenter.intel.com/>
1da177e4 399
1da177e4
LT
400udev
401----
840f6690
MCC
402
403- <http://www.freedesktop.org/software/systemd/man/udev.html>
1da177e4 404
909021ea
MS
405FUSE
406----
840f6690
MCC
407
408- <http://sourceforge.net/projects/fuse>
909021ea 409
172d899d
AK
410mcelog
411------
840f6690
MCC
412
413- <http://www.mcelog.org/>
172d899d 414
1da177e4
LT
415Networking
416**********
417
418PPP
419---
840f6690
MCC
420
421- <ftp://ftp.samba.org/pub/ppp/>
1da177e4
LT
422
423Isdn4k-utils
424------------
840f6690
MCC
425
426- <ftp://ftp.isdn4linux.de/pub/isdn4linux/utils/>
1da177e4
LT
427
428NFS-utils
429---------
840f6690
MCC
430
431- <http://sourceforge.net/project/showfiles.php?group_id=14>
1da177e4
LT
432
433Iptables
434--------
840f6690
MCC
435
436- <http://www.iptables.org/downloads.html>
1da177e4
LT
437
438Ip-route2
439---------
840f6690
MCC
440
441- <https://www.kernel.org/pub/linux/utils/net/iproute2/>
1da177e4
LT
442
443OProfile
444--------
840f6690
MCC
445
446- <http://oprofile.sf.net/download/>
1da177e4
LT
447
448NFS-Utils
449---------
840f6690
MCC
450
451- <http://nfs.sourceforge.net/>
81f10d19
MCC
452
453Kernel documentation
454********************
455
456Sphinx
457------
458
459- <http://www.sphinx-doc.org/>