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