Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 02bafd96 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge tag 'docs-4.9' of git://git.lwn.net/linux

Pull documentation updates from Jonathan Corbet:
 "This is the documentation update pull for the 4.9 merge window.

  The Sphinx transition is still creating a fair amount of work. Here we
  have a number of fixes and, importantly, a proper PDF output solution,
  thanks to Jani Nikula, Mauro Carvalho Chehab and Markus Heiser.

  I've started a couple of new books: a driver API book (based on the
  old device-drivers.tmpl) and a development tools book. Both are meant
  to show how we can integrate together our existing documentation into
  a more coherent and accessible whole. It involves moving some stuff
  around and formatting changes, but, I think, the results are worth it.
  The good news is that most of our existing Documentation/*.txt files
  are *almost* in RST format already; the amount of messing around
  required is minimal.

  And, of course, there's the usual set of updates, typo fixes, and
  more"

* tag 'docs-4.9' of git://git.lwn.net/linux: (120 commits)
  URL changed for Linux Foundation TAB
  dax : Fix documentation with respect to struct pages
  iio: Documentation: Correct the path used to create triggers.
  docs: Remove space-before-label guidance from CodingStyle
  docs-rst: add inter-document cross references
  Documentation/email-clients.txt: convert it to ReST markup
  Documentation/kernel-docs.txt: reorder based on timestamp
  Documentation/kernel-docs.txt: Add dates for online docs
  Documentation/kernel-docs.txt: get rid of broken docs
  Documentation/kernel-docs.txt: move in-kernel docs
  Documentation/kernel-docs.txt: remove more legacy references
  Documentation/kernel-docs.txt: add two published books
  Documentation/kernel-docs.txt: sort books per publication date
  Documentation/kernel-docs.txt: adjust LDD references
  Documentation/kernel-docs.txt: some improvements on the ReST output
  Documentation/kernel-docs.txt: Consistent indenting: 4 spaces
  Documentation/kernel-docs.txt: Add 4 paper/book references
  Documentation/kernel-docs.txt: Improve layouting of book list
  Documentation/kernel-docs.txt: Remove offline or outdated entries
  docs: Clean up bare :: lines
  ...
parents 2105b9ff 3c76ff47
Loading
Loading
Loading
Loading
+169 −95
Original line number Diff line number Diff line
.. _changes:

Minimal requerements to compile the Kernel
++++++++++++++++++++++++++++++++++++++++++

Intro
=====

This document is designed to provide a list of the minimum levels of
software necessary to run the 3.0 kernels.
software necessary to run the 4.x kernels.

This document is originally based on my "Changes" file for 2.0.x kernels
and therefore owes credit to the same people as that file (Jared Mauch,
@@ -10,9 +15,9 @@ Axel Boldt, Alessandro Sigala, and countless other users all over the
'net).

Current Minimal Requirements
============================
****************************

Upgrade to at *least* these software revisions before thinking you've
Upgrade to at **least** these software revisions before thinking you've
encountered a bug!  If you're unsure what version you're currently
running, the suggested command should tell you.

@@ -21,34 +26,40 @@ running a Linux kernel. Also, not all tools are necessary on all
systems; obviously, if you don't have any ISDN hardware, for example,
you probably needn't concern yourself with isdn4k-utils.

o  GNU C                  3.2                     # gcc --version
o  GNU make               3.80                    # make --version
o  binutils               2.12                    # ld -v
o  util-linux             2.10o                   # fdformat --version
o  module-init-tools      0.9.10                  # depmod -V
o  e2fsprogs              1.41.4                  # e2fsck -V
o  jfsutils               1.1.3                   # fsck.jfs -V
o  reiserfsprogs          3.6.3                   # reiserfsck -V
o  xfsprogs               2.6.0                   # xfs_db -V
o  squashfs-tools         4.0                     # mksquashfs -version
o  btrfs-progs            0.18                    # btrfsck
o  pcmciautils            004                     # pccardctl -V
o  quota-tools            3.09                    # quota -V
o  PPP                    2.4.0                   # pppd --version
o  isdn4k-utils           3.1pre1                 # isdnctrl 2>&1|grep version
o  nfs-utils              1.0.5                   # showmount --version
o  procps                 3.2.0                   # ps --version
o  oprofile               0.9                     # oprofiled --version
o  udev                   081                     # udevd --version
o  grub                   0.93                    # grub --version || grub-install --version
o  mcelog                 0.6                     # mcelog --version
o  iptables               1.4.2                   # iptables -V
o  openssl & libcrypto    1.0.0                   # openssl version
o  bc                     1.06.95                 # bc --version

====================== ===============  ========================================
        Program        Minimal version       Command to check the version
====================== ===============  ========================================
GNU C                  3.2              gcc --version
GNU make               3.80             make --version
binutils               2.12             ld -v
util-linux             2.10o            fdformat --version
module-init-tools      0.9.10           depmod -V
e2fsprogs              1.41.4           e2fsck -V
jfsutils               1.1.3            fsck.jfs -V
reiserfsprogs          3.6.3            reiserfsck -V
xfsprogs               2.6.0            xfs_db -V
squashfs-tools         4.0              mksquashfs -version
btrfs-progs            0.18             btrfsck
pcmciautils            004              pccardctl -V
quota-tools            3.09             quota -V
PPP                    2.4.0            pppd --version
isdn4k-utils           3.1pre1          isdnctrl 2>&1|grep version
nfs-utils              1.0.5            showmount --version
procps                 3.2.0            ps --version
oprofile               0.9              oprofiled --version
udev                   081              udevd --version
grub                   0.93             grub --version || grub-install --version
mcelog                 0.6              mcelog --version
iptables               1.4.2            iptables -V
openssl & libcrypto    1.0.0            openssl version
bc                     1.06.95          bc --version
Sphinx\ [#f1]_	       1.2		sphinx-build --version
====================== ===============  ========================================

.. [#f1] Sphinx is needed only to build the Kernel documentation

Kernel compilation
==================
******************

GCC
---
@@ -64,16 +75,16 @@ You will need GNU make 3.80 or later to build the kernel.
Binutils
--------

Linux on IA-32 has recently switched from using as86 to using gas for
assembling the 16-bit boot code, removing the need for as86 to compile
Linux on IA-32 has recently switched from using ``as86`` to using ``gas`` for
assembling the 16-bit boot code, removing the need for ``as86`` to compile
your kernel.  This change does, however, mean that you need a recent
release of binutils.

Perl
----

You will need perl 5 and the following modules: Getopt::Long, Getopt::Std,
File::Basename, and File::Find to build the kernel.
You will need perl 5 and the following modules: ``Getopt::Long``,
``Getopt::Std``, ``File::Basename``, and ``File::Find`` to build the kernel.

BC
--
@@ -93,7 +104,7 @@ and higher.


System utilities
================
****************

Architectural changes
---------------------
@@ -115,7 +126,7 @@ well as the desired DocBook stylesheets.
Util-linux
----------

New versions of util-linux provide *fdisk support for larger disks,
New versions of util-linux provide ``fdisk`` support for larger disks,
support new options to mount, recognize more supported partition
types, have a fdformat which works with 2.4 kernels, and similar goodies.
You'll probably want to upgrade.
@@ -125,54 +136,57 @@ Ksymoops

If the unthinkable happens and your kernel oopses, you may need the
ksymoops tool to decode it, but in most cases you don't.
It is generally preferred to build the kernel with CONFIG_KALLSYMS so
It is generally preferred to build the kernel with ``CONFIG_KALLSYMS`` so
that it produces readable dumps that can be used as-is (this also
produces better output than ksymoops).  If for some reason your kernel
is not build with CONFIG_KALLSYMS and you have no way to rebuild and
is not build with ``CONFIG_KALLSYMS`` and you have no way to rebuild and
reproduce the Oops with that option, then you can still decode that Oops
with ksymoops.

Module-Init-Tools
-----------------

A new module loader is now in the kernel that requires module-init-tools
A new module loader is now in the kernel that requires ``module-init-tools``
to use.  It is backward compatible with the 2.4.x series kernels.

Mkinitrd
--------

These changes to the /lib/modules file tree layout also require that
These changes to the ``/lib/modules`` file tree layout also require that
mkinitrd be upgraded.

E2fsprogs
---------

The latest version of e2fsprogs fixes several bugs in fsck and
The latest version of ``e2fsprogs`` fixes several bugs in fsck and
debugfs.  Obviously, it's a good idea to upgrade.

JFSutils
--------

The jfsutils package contains the utilities for the file system.
The ``jfsutils`` package contains the utilities for the file system.
The following utilities are available:
o fsck.jfs - initiate replay of the transaction log, and check

- ``fsck.jfs`` - initiate replay of the transaction log, and check
  and repair a JFS formatted partition.
o mkfs.jfs - create a JFS formatted partition.
o other file system utilities are also available in this package.

- ``mkfs.jfs`` - create a JFS formatted partition.

- other file system utilities are also available in this package.

Reiserfsprogs
-------------

The reiserfsprogs package should be used for reiserfs-3.6.x
(Linux kernels 2.4.x). It is a combined package and contains working
versions of mkreiserfs, resize_reiserfs, debugreiserfs and
reiserfsck. These utils work on both i386 and alpha platforms.
versions of ``mkreiserfs``, ``resize_reiserfs``, ``debugreiserfs`` and
``reiserfsck``. These utils work on both i386 and alpha platforms.

Xfsprogs
--------

The latest version of xfsprogs contains mkfs.xfs, xfs_db, and the
xfs_repair utilities, among others, for the XFS filesystem.  It is
The latest version of ``xfsprogs`` contains ``mkfs.xfs``, ``xfs_db``, and the
``xfs_repair`` utilities, among others, for the XFS filesystem.  It is
architecture independent and any version from 2.0.0 onward should
work correctly with this version of the XFS kernel code (2.6.0 or
later is recommended, due to some significant improvements).
@@ -180,7 +194,7 @@ later is recommended, due to some significant improvements).
PCMCIAutils
-----------

PCMCIAutils replaces pcmcia-cs. It properly sets up
PCMCIAutils replaces ``pcmcia-cs``. It properly sets up
PCMCIA sockets at system startup and loads the appropriate modules
for 16-bit PCMCIA devices if the kernel is modularized and the hotplug
subsystem is used.
@@ -198,7 +212,7 @@ Intel IA32 microcode

A driver has been added to allow updating of Intel IA32 microcode,
accessible as a normal (misc) character device.  If you are not using
udev you may need to:
udev you may need to::

  mkdir /dev/cpu
  mknod /dev/cpu/microcode c 10 184
@@ -209,8 +223,9 @@ get the user-space microcode_ctl utility to use with this.

udev
----
udev is a userspace application for populating /dev dynamically with
only entries for devices actually present.  udev replaces the basic

``udev`` is a userspace application for populating ``/dev`` dynamically with
only entries for devices actually present. ``udev`` replaces the basic
functionality of devfs, while allowing persistent device naming for
devices.

@@ -218,10 +233,10 @@ FUSE
----

Needs libfuse 2.4.0 or later.  Absolute minimum is 2.3.0 but mount
options 'direct_io' and 'kernel_cache' won't work.
options ``direct_io`` and ``kernel_cache`` won't work.

Networking
==========
**********

General changes
---------------
@@ -243,7 +258,7 @@ enable it to operate over diverse media layers. If you use PPP,
upgrade pppd to at least 2.4.0.

If you are not using udev, you must have the device file /dev/ppp
which can be made by:
which can be made by::

  mknod /dev/ppp c 108 0

@@ -260,22 +275,22 @@ NFS-utils

In ancient (2.4 and earlier) kernels, the nfs server needed to know
about any client that expected to be able to access files via NFS.  This
information would be given to the kernel by "mountd" when the client
mounted the filesystem, or by "exportfs" at system startup.  exportfs
would take information about active clients from /var/lib/nfs/rmtab.
information would be given to the kernel by ``mountd`` when the client
mounted the filesystem, or by ``exportfs`` at system startup.  exportfs
would take information about active clients from ``/var/lib/nfs/rmtab``.

This approach is quite fragile as it depends on rmtab being correct
which is not always easy, particularly when trying to implement
fail-over.  Even when the system is working well, rmtab suffers from
fail-over.  Even when the system is working well, ``rmtab`` suffers from
getting lots of old entries that never get removed.

With modern kernels we have the option of having the kernel tell mountd
when it gets a request from an unknown host, and mountd can give
appropriate export information to the kernel.  This removes the
dependency on rmtab and means that the kernel only needs to know about
dependency on ``rmtab`` and means that the kernel only needs to know about
currently active clients.

To enable this new functionality, you need to:
To enable this new functionality, you need to::

  mount -t nfsd nfsd /proc/fs/nfsd

@@ -287,8 +302,32 @@ mcelog
------

On x86 kernels the mcelog utility is needed to process and log machine check
events when CONFIG_X86_MCE is enabled. Machine check events are errors reported
by the CPU. Processing them is strongly encouraged.
events when ``CONFIG_X86_MCE`` is enabled. Machine check events are errors
reported by the CPU. Processing them is strongly encouraged.

Kernel documentation
********************

Sphinx
------

The ReST markups currently used by the Documentation/ files are meant to be
built with ``Sphinx`` version 1.2 or upper. If you're desiring to build
PDF outputs, it is recommended to use version 1.4.6.

.. note::

  Please notice that, for PDF and LaTeX output, you'll also need ``XeLaTeX``
  version 3.14159265. Depending on the distribution, you may also need
  to install a series of ``texlive`` packages that provide the minimal
  set of functionalities required for ``XeLaTex`` to work.

Other tools
-----------

In order to produce documentation from DocBook, you'll also need ``xmlto``.
Please notice, however, that we're currently migrating all documents to use
``Sphinx``.

Getting updated software
========================
@@ -298,114 +337,149 @@ Kernel compilation

gcc
---
o  <ftp://ftp.gnu.org/gnu/gcc/>

- <ftp://ftp.gnu.org/gnu/gcc/>

Make
----
o  <ftp://ftp.gnu.org/gnu/make/>

- <ftp://ftp.gnu.org/gnu/make/>

Binutils
--------
o  <ftp://ftp.kernel.org/pub/linux/devel/binutils/>

- <ftp://ftp.kernel.org/pub/linux/devel/binutils/>

OpenSSL
-------
o  <https://www.openssl.org/>

- <https://www.openssl.org/>

System utilities
****************

Util-linux
----------
o  <ftp://ftp.kernel.org/pub/linux/utils/util-linux/>

- <ftp://ftp.kernel.org/pub/linux/utils/util-linux/>

Ksymoops
--------
o  <ftp://ftp.kernel.org/pub/linux/utils/kernel/ksymoops/v2.4/>

- <ftp://ftp.kernel.org/pub/linux/utils/kernel/ksymoops/v2.4/>

Module-Init-Tools
-----------------
o  <ftp://ftp.kernel.org/pub/linux/kernel/people/rusty/modules/>

- <ftp://ftp.kernel.org/pub/linux/kernel/people/rusty/modules/>

Mkinitrd
--------
o  <https://code.launchpad.net/initrd-tools/main>

- <https://code.launchpad.net/initrd-tools/main>

E2fsprogs
---------
o  <http://prdownloads.sourceforge.net/e2fsprogs/e2fsprogs-1.29.tar.gz>

- <http://prdownloads.sourceforge.net/e2fsprogs/e2fsprogs-1.29.tar.gz>

JFSutils
--------
o  <http://jfs.sourceforge.net/>

- <http://jfs.sourceforge.net/>

Reiserfsprogs
-------------
o  <http://www.kernel.org/pub/linux/utils/fs/reiserfs/>

- <http://www.kernel.org/pub/linux/utils/fs/reiserfs/>

Xfsprogs
--------
o  <ftp://oss.sgi.com/projects/xfs/>

- <ftp://oss.sgi.com/projects/xfs/>

Pcmciautils
-----------
o  <ftp://ftp.kernel.org/pub/linux/utils/kernel/pcmcia/>

- <ftp://ftp.kernel.org/pub/linux/utils/kernel/pcmcia/>

Quota-tools
----------
o  <http://sourceforge.net/projects/linuxquota/>
-----------

- <http://sourceforge.net/projects/linuxquota/>

DocBook Stylesheets
-------------------
o  <http://sourceforge.net/projects/docbook/files/docbook-dsssl/>

- <http://sourceforge.net/projects/docbook/files/docbook-dsssl/>

XMLTO XSLT Frontend
-------------------
o  <http://cyberelk.net/tim/xmlto/>

- <http://cyberelk.net/tim/xmlto/>

Intel P6 microcode
------------------
o  <https://downloadcenter.intel.com/>

- <https://downloadcenter.intel.com/>

udev
----
o <http://www.freedesktop.org/software/systemd/man/udev.html>

- <http://www.freedesktop.org/software/systemd/man/udev.html>

FUSE
----
o <http://sourceforge.net/projects/fuse>

- <http://sourceforge.net/projects/fuse>

mcelog
------
o <http://www.mcelog.org/>

- <http://www.mcelog.org/>

Networking
**********

PPP
---
o  <ftp://ftp.samba.org/pub/ppp/>

- <ftp://ftp.samba.org/pub/ppp/>

Isdn4k-utils
------------
o  <ftp://ftp.isdn4linux.de/pub/isdn4linux/utils/>

- <ftp://ftp.isdn4linux.de/pub/isdn4linux/utils/>

NFS-utils
---------
o  <http://sourceforge.net/project/showfiles.php?group_id=14>

- <http://sourceforge.net/project/showfiles.php?group_id=14>

Iptables
--------
o  <http://www.iptables.org/downloads.html>

- <http://www.iptables.org/downloads.html>

Ip-route2
---------
o  <https://www.kernel.org/pub/linux/utils/net/iproute2/>

- <https://www.kernel.org/pub/linux/utils/net/iproute2/>

OProfile
--------
o  <http://oprofile.sf.net/download/>

- <http://oprofile.sf.net/download/>

NFS-Utils
---------
o  <http://nfs.sourceforge.net/>

- <http://nfs.sourceforge.net/>

Kernel documentation
********************

Sphinx
------

- <http://www.sphinx-doc.org/>
+1 −1
Original line number Diff line number Diff line
@@ -19,7 +19,7 @@ please contact the Linux Foundation's Technical Advisory Board at
will work to resolve the issue to the best of their ability.  For more
information on who is on the Technical Advisory Board and what their
role is, please see:
	http://www.linuxfoundation.org/programs/advisory-councils/tab
	http://www.linuxfoundation.org/projects/linux/tab

As a reviewer of code, please strive to keep things civil and focused on
the technical issues involved.  We are all humans, and frustrations can
+260 −144

File changed.

Preview size limit exceeded, changes collapsed.

+3 −5
Original line number Diff line number Diff line
@@ -699,7 +699,7 @@ to use the dma_sync_*() interfaces.
		dma_addr_t mapping;

		mapping = dma_map_single(cp->dev, buffer, len, DMA_FROM_DEVICE);
		if (dma_mapping_error(cp->dev, dma_handle)) {
		if (dma_mapping_error(cp->dev, mapping)) {
			/*
			 * reduce current DMA mapping usage,
			 * delay and try again later or
@@ -931,10 +931,8 @@ to "Closing".

1) Struct scatterlist requirements.

   Don't invent the architecture specific struct scatterlist; just use
   <asm-generic/scatterlist.h>. You need to enable
   CONFIG_NEED_SG_DMA_LENGTH if the architecture supports IOMMUs
   (including software IOMMU).
   You need to enable CONFIG_NEED_SG_DMA_LENGTH if the architecture
   supports IOMMUs (including software IOMMU).

2) ARCH_DMA_MINALIGN

+9 −1
Original line number Diff line number Diff line
@@ -6,7 +6,7 @@
# To add a new book the only step required is to add the book to the
# list of DOCBOOKS.

DOCBOOKS := z8530book.xml device-drivers.xml \
DOCBOOKS := z8530book.xml  \
	    kernel-hacking.xml kernel-locking.xml deviceiobook.xml \
	    writing_usb_driver.xml networking.xml \
	    kernel-api.xml filesystems.xml lsm.xml usb.xml kgdb.xml \
@@ -22,9 +22,15 @@ ifeq ($(DOCBOOKS),)
# Skip DocBook build if the user explicitly requested no DOCBOOKS.
.DEFAULT:
	@echo "  SKIP    DocBook $@ target (DOCBOOKS=\"\" specified)."
else
ifneq ($(SPHINXDIRS),)

# Skip DocBook build if the user explicitly requested a sphinx dir
.DEFAULT:
	@echo "  SKIP    DocBook $@ target (SPHINXDIRS specified)."
else


###
# The build process is as follows (targets):
#              (xmldocs) [by docproc]
@@ -66,6 +72,7 @@ installmandocs: mandocs

# no-op for the DocBook toolchain
epubdocs:
latexdocs:

###
#External programs used
@@ -221,6 +228,7 @@ silent_gen_xml = :
	   echo "</programlisting>")  > $@

endif # DOCBOOKS=""
endif # SPHINDIR=...

###
# Help targets as used by the top-level makefile
Loading