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