linux/Documentation/Changes
<<
>>
Prefs
   1Intro
   2=====
   3
   4This document is designed to provide a list of the minimum levels of
   5software necessary to run the 3.0 kernels.
   6
   7This document is originally based on my "Changes" file for 2.0.x kernels
   8and therefore owes credit to the same people as that file (Jared Mauch,
   9Axel Boldt, Alessandro Sigala, and countless other users all over the
  10'net).
  11
  12Current Minimal Requirements
  13============================
  14
  15Upgrade to at *least* these software revisions before thinking you've
  16encountered a bug!  If you're unsure what version you're currently
  17running, the suggested command should tell you.
  18
  19Again, keep in mind that this list assumes you are already functionally
  20running a Linux kernel.  Also, not all tools are necessary on all
  21systems; obviously, if you don't have any ISDN hardware, for example,
  22you probably needn't concern yourself with isdn4k-utils.
  23
  24o  GNU C                  3.2                     # gcc --version
  25o  GNU make               3.80                    # make --version
  26o  binutils               2.12                    # ld -v
  27o  util-linux             2.10o                   # fdformat --version
  28o  module-init-tools      0.9.10                  # depmod -V
  29o  e2fsprogs              1.41.4                  # e2fsck -V
  30o  jfsutils               1.1.3                   # fsck.jfs -V
  31o  reiserfsprogs          3.6.3                   # reiserfsck -V
  32o  xfsprogs               2.6.0                   # xfs_db -V
  33o  squashfs-tools         4.0                     # mksquashfs -version
  34o  btrfs-progs            0.18                    # btrfsck
  35o  pcmciautils            004                     # pccardctl -V
  36o  quota-tools            3.09                    # quota -V
  37o  PPP                    2.4.0                   # pppd --version
  38o  isdn4k-utils           3.1pre1                 # isdnctrl 2>&1|grep version
  39o  nfs-utils              1.0.5                   # showmount --version
  40o  procps                 3.2.0                   # ps --version
  41o  oprofile               0.9                     # oprofiled --version
  42o  udev                   081                     # udevd --version
  43o  grub                   0.93                    # grub --version || grub-install --version
  44o  mcelog                 0.6                     # mcelog --version
  45o  iptables               1.4.2                   # iptables -V
  46o  openssl & libcrypto    1.0.0                   # openssl version
  47o  bc                     1.06.95                 # bc --version
  48
  49
  50Kernel compilation
  51==================
  52
  53GCC
  54---
  55
  56The gcc version requirements may vary depending on the type of CPU in your
  57computer.
  58
  59Make
  60----
  61
  62You will need GNU make 3.80 or later to build the kernel.
  63
  64Binutils
  65--------
  66
  67Linux on IA-32 has recently switched from using as86 to using gas for
  68assembling the 16-bit boot code, removing the need for as86 to compile
  69your kernel.  This change does, however, mean that you need a recent
  70release of binutils.
  71
  72Perl
  73----
  74
  75You will need perl 5 and the following modules: Getopt::Long, Getopt::Std,
  76File::Basename, and File::Find to build the kernel.
  77
  78BC
  79--
  80
  81You will need bc to build kernels 3.10 and higher
  82
  83
  84OpenSSL
  85-------
  86
  87Module signing and external certificate handling use the OpenSSL program and
  88crypto library to do key creation and signature generation.
  89
  90You will need openssl to build kernels 3.7 and higher if module signing is
  91enabled.  You will also need openssl development packages to build kernels 4.3
  92and higher.
  93
  94
  95System utilities
  96================
  97
  98Architectural changes
  99---------------------
 100
 101DevFS has been obsoleted in favour of udev
 102(http://www.kernel.org/pub/linux/utils/kernel/hotplug/)
 103
 10432-bit UID support is now in place.  Have fun!
 105
 106Linux documentation for functions is transitioning to inline
 107documentation via specially-formatted comments near their
 108definitions in the source.  These comments can be combined with the
 109SGML templates in the Documentation/DocBook directory to make DocBook
 110files, which can then be converted by DocBook stylesheets to PostScript,
 111HTML, PDF files, and several other formats.  In order to convert from
 112DocBook format to a format of your choice, you'll need to install Jade as
 113well as the desired DocBook stylesheets.
 114
 115Util-linux
 116----------
 117
 118New versions of util-linux provide *fdisk support for larger disks,
 119support new options to mount, recognize more supported partition
 120types, have a fdformat which works with 2.4 kernels, and similar goodies.
 121You'll probably want to upgrade.
 122
 123Ksymoops
 124--------
 125
 126If the unthinkable happens and your kernel oopses, you may need the
 127ksymoops tool to decode it, but in most cases you don't.
 128It is generally preferred to build the kernel with CONFIG_KALLSYMS so
 129that it produces readable dumps that can be used as-is (this also
 130produces better output than ksymoops).  If for some reason your kernel
 131is not build with CONFIG_KALLSYMS and you have no way to rebuild and
 132reproduce the Oops with that option, then you can still decode that Oops
 133with ksymoops.
 134
 135Module-Init-Tools
 136-----------------
 137
 138A new module loader is now in the kernel that requires module-init-tools
 139to use.  It is backward compatible with the 2.4.x series kernels.
 140
 141Mkinitrd
 142--------
 143
 144These changes to the /lib/modules file tree layout also require that
 145mkinitrd be upgraded.
 146
 147E2fsprogs
 148---------
 149
 150The latest version of e2fsprogs fixes several bugs in fsck and
 151debugfs.  Obviously, it's a good idea to upgrade.
 152
 153JFSutils
 154--------
 155
 156The jfsutils package contains the utilities for the file system.
 157The following utilities are available:
 158o fsck.jfs - initiate replay of the transaction log, and check
 159  and repair a JFS formatted partition.
 160o mkfs.jfs - create a JFS formatted partition.
 161o other file system utilities are also available in this package.
 162
 163Reiserfsprogs
 164-------------
 165
 166The reiserfsprogs package should be used for reiserfs-3.6.x
 167(Linux kernels 2.4.x). It is a combined package and contains working
 168versions of mkreiserfs, resize_reiserfs, debugreiserfs and
 169reiserfsck. These utils work on both i386 and alpha platforms.
 170
 171Xfsprogs
 172--------
 173
 174The latest version of xfsprogs contains mkfs.xfs, xfs_db, and the
 175xfs_repair utilities, among others, for the XFS filesystem.  It is
 176architecture independent and any version from 2.0.0 onward should
 177work correctly with this version of the XFS kernel code (2.6.0 or
 178later is recommended, due to some significant improvements).
 179
 180PCMCIAutils
 181-----------
 182
 183PCMCIAutils replaces pcmcia-cs. It properly sets up
 184PCMCIA sockets at system startup and loads the appropriate modules
 185for 16-bit PCMCIA devices if the kernel is modularized and the hotplug
 186subsystem is used.
 187
 188Quota-tools
 189-----------
 190
 191Support for 32 bit uid's and gid's is required if you want to use
 192the newer version 2 quota format.  Quota-tools version 3.07 and
 193newer has this support.  Use the recommended version or newer
 194from the table above.
 195
 196Intel IA32 microcode
 197--------------------
 198
 199A driver has been added to allow updating of Intel IA32 microcode,
 200accessible as a normal (misc) character device.  If you are not using
 201udev you may need to:
 202
 203mkdir /dev/cpu
 204mknod /dev/cpu/microcode c 10 184
 205chmod 0644 /dev/cpu/microcode
 206
 207as root before you can use this.  You'll probably also want to
 208get the user-space microcode_ctl utility to use with this.
 209
 210udev
 211----
 212udev is a userspace application for populating /dev dynamically with
 213only entries for devices actually present.  udev replaces the basic
 214functionality of devfs, while allowing persistent device naming for
 215devices.
 216
 217FUSE
 218----
 219
 220Needs libfuse 2.4.0 or later.  Absolute minimum is 2.3.0 but mount
 221options 'direct_io' and 'kernel_cache' won't work.
 222
 223Networking
 224==========
 225
 226General changes
 227---------------
 228
 229If you have advanced network configuration needs, you should probably
 230consider using the network tools from ip-route2.
 231
 232Packet Filter / NAT
 233-------------------
 234The packet filtering and NAT code uses the same tools like the previous 2.4.x
 235kernel series (iptables).  It still includes backwards-compatibility modules
 236for 2.2.x-style ipchains and 2.0.x-style ipfwadm.
 237
 238PPP
 239---
 240
 241The PPP driver has been restructured to support multilink and to
 242enable it to operate over diverse media layers.  If you use PPP,
 243upgrade pppd to at least 2.4.0.
 244
 245If you are not using udev, you must have the device file /dev/ppp
 246which can be made by:
 247
 248mknod /dev/ppp c 108 0
 249
 250as root.
 251
 252Isdn4k-utils
 253------------
 254
 255Due to changes in the length of the phone number field, isdn4k-utils
 256needs to be recompiled or (preferably) upgraded.
 257
 258NFS-utils
 259---------
 260
 261In ancient (2.4 and earlier) kernels, the nfs server needed to know
 262about any client that expected to be able to access files via NFS.  This
 263information would be given to the kernel by "mountd" when the client
 264mounted the filesystem, or by "exportfs" at system startup.  exportfs
 265would take information about active clients from /var/lib/nfs/rmtab.
 266
 267This approach is quite fragile as it depends on rmtab being correct
 268which is not always easy, particularly when trying to implement
 269fail-over.  Even when the system is working well, rmtab suffers from
 270getting lots of old entries that never get removed.
 271
 272With modern kernels we have the option of having the kernel tell mountd
 273when it gets a request from an unknown host, and mountd can give
 274appropriate export information to the kernel.  This removes the
 275dependency on rmtab and means that the kernel only needs to know about
 276currently active clients.
 277
 278To enable this new functionality, you need to:
 279
 280  mount -t nfsd nfsd /proc/fs/nfsd
 281
 282before running exportfs or mountd.  It is recommended that all NFS
 283services be protected from the internet-at-large by a firewall where
 284that is possible.
 285
 286mcelog
 287------
 288
 289On x86 kernels the mcelog utility is needed to process and log machine check
 290events when CONFIG_X86_MCE is enabled. Machine check events are errors reported
 291by the CPU. Processing them is strongly encouraged.
 292
 293Getting updated software
 294========================
 295
 296Kernel compilation
 297******************
 298
 299gcc
 300---
 301o  <ftp://ftp.gnu.org/gnu/gcc/>
 302
 303Make
 304----
 305o  <ftp://ftp.gnu.org/gnu/make/>
 306
 307Binutils
 308--------
 309o  <ftp://ftp.kernel.org/pub/linux/devel/binutils/>
 310
 311OpenSSL
 312-------
 313o  <https://www.openssl.org/>
 314
 315System utilities
 316****************
 317
 318Util-linux
 319----------
 320o  <ftp://ftp.kernel.org/pub/linux/utils/util-linux/>
 321
 322Ksymoops
 323--------
 324o  <ftp://ftp.kernel.org/pub/linux/utils/kernel/ksymoops/v2.4/>
 325
 326Module-Init-Tools
 327-----------------
 328o  <ftp://ftp.kernel.org/pub/linux/kernel/people/rusty/modules/>
 329
 330Mkinitrd
 331--------
 332o  <https://code.launchpad.net/initrd-tools/main>
 333
 334E2fsprogs
 335---------
 336o  <http://prdownloads.sourceforge.net/e2fsprogs/e2fsprogs-1.29.tar.gz>
 337
 338JFSutils
 339--------
 340o  <http://jfs.sourceforge.net/>
 341
 342Reiserfsprogs
 343-------------
 344o  <http://www.kernel.org/pub/linux/utils/fs/reiserfs/>
 345
 346Xfsprogs
 347--------
 348o  <ftp://oss.sgi.com/projects/xfs/>
 349
 350Pcmciautils
 351-----------
 352o  <ftp://ftp.kernel.org/pub/linux/utils/kernel/pcmcia/>
 353
 354Quota-tools
 355----------
 356o  <http://sourceforge.net/projects/linuxquota/>
 357
 358DocBook Stylesheets
 359-------------------
 360o  <http://sourceforge.net/projects/docbook/files/docbook-dsssl/>
 361
 362XMLTO XSLT Frontend
 363-------------------
 364o  <http://cyberelk.net/tim/xmlto/>
 365
 366Intel P6 microcode
 367------------------
 368o  <https://downloadcenter.intel.com/>
 369
 370udev
 371----
 372o <http://www.freedesktop.org/software/systemd/man/udev.html>
 373
 374FUSE
 375----
 376o <http://sourceforge.net/projects/fuse>
 377
 378mcelog
 379------
 380o <http://www.mcelog.org/>
 381
 382Networking
 383**********
 384
 385PPP
 386---
 387o  <ftp://ftp.samba.org/pub/ppp/>
 388
 389Isdn4k-utils
 390------------
 391o  <ftp://ftp.isdn4linux.de/pub/isdn4linux/utils/>
 392
 393NFS-utils
 394---------
 395o  <http://sourceforge.net/project/showfiles.php?group_id=14>
 396
 397Iptables
 398--------
 399o  <http://www.iptables.org/downloads.html>
 400
 401Ip-route2
 402---------
 403o  <https://www.kernel.org/pub/linux/utils/net/iproute2/>
 404
 405OProfile
 406--------
 407o  <http://oprofile.sf.net/download/>
 408
 409NFS-Utils
 410---------
 411o  <http://nfs.sourceforge.net/>
 412