Documentation/Changes: convert it to ReST markup
[GitHub/moto-9609/android_kernel_motorola_exynos9610.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
5adaf851 8software necessary to run the 3.0 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
54====================== =============== ========================================
7a922637 55
1da177e4
LT
56
57Kernel compilation
840f6690 58******************
1da177e4
LT
59
60GCC
61---
62
63The gcc version requirements may vary depending on the type of CPU in your
a1365647 64computer.
1da177e4
LT
65
66Make
67----
68
bf5777bc 69You will need GNU make 3.80 or later to build the kernel.
1da177e4
LT
70
71Binutils
72--------
73
840f6690
MCC
74Linux on IA-32 has recently switched from using ``as86`` to using ``gas`` for
75assembling the 16-bit boot code, removing the need for ``as86`` to compile
1da177e4
LT
76your kernel. This change does, however, mean that you need a recent
77release of binutils.
78
08219624
JLPD
79Perl
80----
81
840f6690
MCC
82You will need perl 5 and the following modules: ``Getopt::Long``,
83``Getopt::Std``, ``File::Basename``, and ``File::Find`` to build the kernel.
08219624 84
221069be
A
85BC
86--
87
88You will need bc to build kernels 3.10 and higher
89
08219624 90
3f1d44ae
DH
91OpenSSL
92-------
93
94Module signing and external certificate handling use the OpenSSL program and
95crypto library to do key creation and signature generation.
96
97You will need openssl to build kernels 3.7 and higher if module signing is
98enabled. You will also need openssl development packages to build kernels 4.3
99and higher.
100
101
1da177e4 102System utilities
840f6690 103****************
1da177e4
LT
104
105Architectural changes
106---------------------
107
108DevFS has been obsoleted in favour of udev
109(http://www.kernel.org/pub/linux/utils/kernel/hotplug/)
110
11132-bit UID support is now in place. Have fun!
112
113Linux documentation for functions is transitioning to inline
114documentation via specially-formatted comments near their
115definitions in the source. These comments can be combined with the
116SGML templates in the Documentation/DocBook directory to make DocBook
117files, which can then be converted by DocBook stylesheets to PostScript,
118HTML, PDF files, and several other formats. In order to convert from
119DocBook format to a format of your choice, you'll need to install Jade as
120well as the desired DocBook stylesheets.
121
122Util-linux
123----------
124
840f6690 125New versions of util-linux provide ``fdisk`` support for larger disks,
1da177e4
LT
126support new options to mount, recognize more supported partition
127types, have a fdformat which works with 2.4 kernels, and similar goodies.
128You'll probably want to upgrade.
129
130Ksymoops
131--------
132
62a07e6e
JJ
133If the unthinkable happens and your kernel oopses, you may need the
134ksymoops tool to decode it, but in most cases you don't.
840f6690 135It is generally preferred to build the kernel with ``CONFIG_KALLSYMS`` so
5adaf851
LT
136that it produces readable dumps that can be used as-is (this also
137produces better output than ksymoops). If for some reason your kernel
840f6690 138is not build with ``CONFIG_KALLSYMS`` and you have no way to rebuild and
5adaf851
LT
139reproduce the Oops with that option, then you can still decode that Oops
140with ksymoops.
1da177e4
LT
141
142Module-Init-Tools
143-----------------
144
840f6690 145A new module loader is now in the kernel that requires ``module-init-tools``
1da177e4
LT
146to use. It is backward compatible with the 2.4.x series kernels.
147
148Mkinitrd
149--------
150
840f6690 151These changes to the ``/lib/modules`` file tree layout also require that
1da177e4
LT
152mkinitrd be upgraded.
153
154E2fsprogs
155---------
156
840f6690 157The latest version of ``e2fsprogs`` fixes several bugs in fsck and
1da177e4
LT
158debugfs. Obviously, it's a good idea to upgrade.
159
160JFSutils
161--------
162
840f6690 163The ``jfsutils`` package contains the utilities for the file system.
1da177e4 164The following utilities are available:
840f6690
MCC
165
166- ``fsck.jfs`` - initiate replay of the transaction log, and check
1da177e4 167 and repair a JFS formatted partition.
840f6690
MCC
168
169- ``mkfs.jfs`` - create a JFS formatted partition.
170
171- other file system utilities are also available in this package.
1da177e4
LT
172
173Reiserfsprogs
174-------------
175
176The reiserfsprogs package should be used for reiserfs-3.6.x
177(Linux kernels 2.4.x). It is a combined package and contains working
840f6690
MCC
178versions of ``mkreiserfs``, ``resize_reiserfs``, ``debugreiserfs`` and
179``reiserfsck``. These utils work on both i386 and alpha platforms.
1da177e4
LT
180
181Xfsprogs
182--------
183
840f6690
MCC
184The latest version of ``xfsprogs`` contains ``mkfs.xfs``, ``xfs_db``, and the
185``xfs_repair`` utilities, among others, for the XFS filesystem. It is
1da177e4
LT
186architecture independent and any version from 2.0.0 onward should
187work correctly with this version of the XFS kernel code (2.6.0 or
188later is recommended, due to some significant improvements).
189
5085cb26
DB
190PCMCIAutils
191-----------
192
840f6690 193PCMCIAutils replaces ``pcmcia-cs``. It properly sets up
5085cb26
DB
194PCMCIA sockets at system startup and loads the appropriate modules
195for 16-bit PCMCIA devices if the kernel is modularized and the hotplug
196subsystem is used.
1da177e4 197
1da177e4
LT
198Quota-tools
199-----------
200
201Support for 32 bit uid's and gid's is required if you want to use
202the newer version 2 quota format. Quota-tools version 3.07 and
203newer has this support. Use the recommended version or newer
204from the table above.
205
206Intel IA32 microcode
207--------------------
208
209A driver has been added to allow updating of Intel IA32 microcode,
890fbae2
GKH
210accessible as a normal (misc) character device. If you are not using
211udev you may need to:
1da177e4 212
840f6690
MCC
213::
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
1da177e4
LT
259which can be made by:
260
840f6690
MCC
261::
262
263 mknod /dev/ppp c 108 0
1da177e4
LT
264
265as root.
266
1da177e4
LT
267Isdn4k-utils
268------------
269
270Due to changes in the length of the phone number field, isdn4k-utils
271needs to be recompiled or (preferably) upgraded.
272
273NFS-utils
274---------
275
5adaf851
LT
276In ancient (2.4 and earlier) kernels, the nfs server needed to know
277about any client that expected to be able to access files via NFS. This
840f6690
MCC
278information would be given to the kernel by ``mountd`` when the client
279mounted the filesystem, or by ``exportfs`` at system startup. exportfs
280would take information about active clients from ``/var/lib/nfs/rmtab``.
1da177e4
LT
281
282This approach is quite fragile as it depends on rmtab being correct
283which is not always easy, particularly when trying to implement
840f6690 284fail-over. Even when the system is working well, ``rmtab`` suffers from
1da177e4
LT
285getting lots of old entries that never get removed.
286
5adaf851
LT
287With modern kernels we have the option of having the kernel tell mountd
288when it gets a request from an unknown host, and mountd can give
289appropriate export information to the kernel. This removes the
840f6690 290dependency on ``rmtab`` and means that the kernel only needs to know about
5adaf851 291currently active clients.
1da177e4
LT
292
293To enable this new functionality, you need to:
294
840f6690
MCC
295::
296
e4121712 297 mount -t nfsd nfsd /proc/fs/nfsd
1da177e4
LT
298
299before running exportfs or mountd. It is recommended that all NFS
300services be protected from the internet-at-large by a firewall where
301that is possible.
302
172d899d
AK
303mcelog
304------
305
c8c3f7d6 306On x86 kernels the mcelog utility is needed to process and log machine check
840f6690
MCC
307events when ``CONFIG_X86_MCE`` is enabled. Machine check events are errors
308reported by the CPU. Processing them is strongly encouraged.
172d899d 309
1da177e4
LT
310Getting updated software
311========================
312
313Kernel compilation
314******************
315
a1365647
AM
316gcc
317---
840f6690
MCC
318
319- <ftp://ftp.gnu.org/gnu/gcc/>
1da177e4
LT
320
321Make
322----
840f6690
MCC
323
324- <ftp://ftp.gnu.org/gnu/make/>
1da177e4
LT
325
326Binutils
327--------
840f6690
MCC
328
329- <ftp://ftp.kernel.org/pub/linux/devel/binutils/>
1da177e4 330
3f1d44ae
DH
331OpenSSL
332-------
840f6690
MCC
333
334- <https://www.openssl.org/>
3f1d44ae 335
1da177e4
LT
336System utilities
337****************
338
339Util-linux
340----------
840f6690
MCC
341
342- <ftp://ftp.kernel.org/pub/linux/utils/util-linux/>
1da177e4
LT
343
344Ksymoops
345--------
840f6690
MCC
346
347- <ftp://ftp.kernel.org/pub/linux/utils/kernel/ksymoops/v2.4/>
1da177e4
LT
348
349Module-Init-Tools
350-----------------
840f6690
MCC
351
352- <ftp://ftp.kernel.org/pub/linux/kernel/people/rusty/modules/>
1da177e4
LT
353
354Mkinitrd
355--------
840f6690
MCC
356
357- <https://code.launchpad.net/initrd-tools/main>
1da177e4
LT
358
359E2fsprogs
360---------
840f6690
MCC
361
362- <http://prdownloads.sourceforge.net/e2fsprogs/e2fsprogs-1.29.tar.gz>
1da177e4
LT
363
364JFSutils
365--------
840f6690
MCC
366
367- <http://jfs.sourceforge.net/>
1da177e4
LT
368
369Reiserfsprogs
370-------------
840f6690
MCC
371
372- <http://www.kernel.org/pub/linux/utils/fs/reiserfs/>
1da177e4
LT
373
374Xfsprogs
375--------
840f6690
MCC
376
377- <ftp://oss.sgi.com/projects/xfs/>
1da177e4 378
5085cb26
DB
379Pcmciautils
380-----------
840f6690
MCC
381
382- <ftp://ftp.kernel.org/pub/linux/utils/kernel/pcmcia/>
5085cb26 383
1da177e4 384Quota-tools
840f6690
MCC
385-----------
386
387- <http://sourceforge.net/projects/linuxquota/>
1da177e4 388
1da177e4
LT
389DocBook Stylesheets
390-------------------
840f6690
MCC
391
392- <http://sourceforge.net/projects/docbook/files/docbook-dsssl/>
1da177e4 393
8b0c2d98
MW
394XMLTO XSLT Frontend
395-------------------
840f6690
MCC
396
397- <http://cyberelk.net/tim/xmlto/>
8b0c2d98 398
1da177e4
LT
399Intel P6 microcode
400------------------
840f6690
MCC
401
402- <https://downloadcenter.intel.com/>
1da177e4 403
1da177e4
LT
404udev
405----
840f6690
MCC
406
407- <http://www.freedesktop.org/software/systemd/man/udev.html>
1da177e4 408
909021ea
MS
409FUSE
410----
840f6690
MCC
411
412- <http://sourceforge.net/projects/fuse>
909021ea 413
172d899d
AK
414mcelog
415------
840f6690
MCC
416
417- <http://www.mcelog.org/>
172d899d 418
1da177e4
LT
419Networking
420**********
421
422PPP
423---
840f6690
MCC
424
425- <ftp://ftp.samba.org/pub/ppp/>
1da177e4
LT
426
427Isdn4k-utils
428------------
840f6690
MCC
429
430- <ftp://ftp.isdn4linux.de/pub/isdn4linux/utils/>
1da177e4
LT
431
432NFS-utils
433---------
840f6690
MCC
434
435- <http://sourceforge.net/project/showfiles.php?group_id=14>
1da177e4
LT
436
437Iptables
438--------
840f6690
MCC
439
440- <http://www.iptables.org/downloads.html>
1da177e4
LT
441
442Ip-route2
443---------
840f6690
MCC
444
445- <https://www.kernel.org/pub/linux/utils/net/iproute2/>
1da177e4
LT
446
447OProfile
448--------
840f6690
MCC
449
450- <http://oprofile.sf.net/download/>
1da177e4
LT
451
452NFS-Utils
453---------
840f6690
MCC
454
455- <http://nfs.sourceforge.net/>