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