blob: 27232be26e1a94eb3b258eeb3a28132326d6bd80 [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001Intro
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
18The latest revision of this document, in various formats, can always
19be found at <http://cyberbuzz.gatech.edu/kaboom/linux/Changes-2.4/>.
20
21Feel free to translate this document. If you do so, please send me a
22URL to your translation for inclusion in future revisions of this
23document.
24
25Smotrite file <http://oblom.rnc.ru/linux/kernel/Changes.ru>, yavlyaushisya
26russkim perevodom dannogo documenta.
27
28Visite <http://www2.adi.uam.es/~ender/tecnico/> para obtener la traducción
29al español de este documento en varios formatos.
30
31Eine deutsche Version dieser Datei finden Sie unter
32<http://www.stefan-winter.de/Changes-2.4.0.txt>.
33
34Last updated: October 29th, 2002
35
36Chris Ricker (kaboom@gatech.edu or chris.ricker@genetics.utah.edu).
37
38Current Minimal Requirements
39============================
40
41Upgrade to at *least* these software revisions before thinking you've
42encountered a bug! If you're unsure what version you're currently
43running, the suggested command should tell you.
44
45Again, keep in mind that this list assumes you are already
46functionally running a Linux 2.4 kernel. Also, not all tools are
Dominik Brodowski5085cb22005-06-27 16:28:45 -070047necessary on all systems; obviously, if you don't have any ISDN
48hardware, for example, you probably needn't concern yourself with
49isdn4k-utils.
Linus Torvalds1da177e2005-04-16 15:20:36 -070050
51o Gnu C 2.95.3 # gcc --version
52o Gnu make 3.79.1 # make --version
53o binutils 2.12 # ld -v
54o util-linux 2.10o # fdformat --version
55o module-init-tools 0.9.10 # depmod -V
56o e2fsprogs 1.29 # tune2fs
57o jfsutils 1.1.3 # fsck.jfs -V
58o reiserfsprogs 3.6.3 # reiserfsck -V 2>&1|grep reiserfsprogs
59o xfsprogs 2.6.0 # xfs_db -V
Dominik Brodowskieb05bfe2005-06-30 02:58:47 -070060o pcmciautils 004
Linus Torvalds1da177e2005-04-16 15:20:36 -070061o pcmcia-cs 3.1.21 # cardmgr -V
62o quota-tools 3.09 # quota -V
63o PPP 2.4.0 # pppd --version
64o isdn4k-utils 3.1pre1 # isdnctrl 2>&1|grep version
65o nfs-utils 1.0.5 # showmount --version
66o procps 3.2.0 # ps --version
John Levon0c0a4002005-06-23 22:02:47 -070067o oprofile 0.9 # oprofiled --version
Adrian Bunkec0344a2005-07-27 11:45:15 -070068o udev 058 # udevinfo -V
Linus Torvalds1da177e2005-04-16 15:20:36 -070069
70Kernel compilation
71==================
72
73GCC
74---
75
76The gcc version requirements may vary depending on the type of CPU in your
77computer. The next paragraph applies to users of x86 CPUs, but not
78necessarily to users of other CPUs. Users of other CPUs should obtain
79information about their gcc version requirements from another source.
80
81The recommended compiler for the kernel is gcc 2.95.x (x >= 3), and it
82should be used when you need absolute stability. You may use gcc 3.0.x
83instead if you wish, although it may cause problems. Later versions of gcc
84have not received much testing for Linux kernel compilation, and there are
85almost certainly bugs (mainly, but not exclusively, in the kernel) that
86will need to be fixed in order to use these compilers. In any case, using
87pgcc instead of plain gcc is just asking for trouble.
88
89The Red Hat gcc 2.96 compiler subtree can also be used to build this tree.
90You should ensure you use gcc-2.96-74 or later. gcc-2.96-54 will not build
91the kernel correctly.
92
93In addition, please pay attention to compiler optimization. Anything
94greater than -O2 may not be wise. Similarly, if you choose to use gcc-2.95.x
95or derivatives, be sure not to use -fstrict-aliasing (which, depending on
96your version of gcc 2.95.x, may necessitate using -fno-strict-aliasing).
97
98Make
99----
100
101You will need Gnu make 3.79.1 or later to build the kernel.
102
103Binutils
104--------
105
106Linux on IA-32 has recently switched from using as86 to using gas for
107assembling the 16-bit boot code, removing the need for as86 to compile
108your kernel. This change does, however, mean that you need a recent
109release of binutils.
110
111System utilities
112================
113
114Architectural changes
115---------------------
116
117DevFS has been obsoleted in favour of udev
118(http://www.kernel.org/pub/linux/utils/kernel/hotplug/)
119
12032-bit UID support is now in place. Have fun!
121
122Linux documentation for functions is transitioning to inline
123documentation via specially-formatted comments near their
124definitions in the source. These comments can be combined with the
125SGML templates in the Documentation/DocBook directory to make DocBook
126files, which can then be converted by DocBook stylesheets to PostScript,
127HTML, PDF files, and several other formats. In order to convert from
128DocBook format to a format of your choice, you'll need to install Jade as
129well as the desired DocBook stylesheets.
130
131Util-linux
132----------
133
134New versions of util-linux provide *fdisk support for larger disks,
135support new options to mount, recognize more supported partition
136types, have a fdformat which works with 2.4 kernels, and similar goodies.
137You'll probably want to upgrade.
138
139Ksymoops
140--------
141
142If the unthinkable happens and your kernel oopses, you'll need a 2.4
143version of ksymoops to decode the report; see REPORTING-BUGS in the
144root of the Linux source for more information.
145
146Module-Init-Tools
147-----------------
148
149A new module loader is now in the kernel that requires module-init-tools
150to use. It is backward compatible with the 2.4.x series kernels.
151
152Mkinitrd
153--------
154
155These changes to the /lib/modules file tree layout also require that
156mkinitrd be upgraded.
157
158E2fsprogs
159---------
160
161The latest version of e2fsprogs fixes several bugs in fsck and
162debugfs. Obviously, it's a good idea to upgrade.
163
164JFSutils
165--------
166
167The jfsutils package contains the utilities for the file system.
168The following utilities are available:
169o fsck.jfs - initiate replay of the transaction log, and check
170 and repair a JFS formatted partition.
171o mkfs.jfs - create a JFS formatted partition.
172o other file system utilities are also available in this package.
173
174Reiserfsprogs
175-------------
176
177The reiserfsprogs package should be used for reiserfs-3.6.x
178(Linux kernels 2.4.x). It is a combined package and contains working
179versions of mkreiserfs, resize_reiserfs, debugreiserfs and
180reiserfsck. These utils work on both i386 and alpha platforms.
181
182Xfsprogs
183--------
184
185The latest version of xfsprogs contains mkfs.xfs, xfs_db, and the
186xfs_repair utilities, among others, for the XFS filesystem. It is
187architecture independent and any version from 2.0.0 onward should
188work correctly with this version of the XFS kernel code (2.6.0 or
189later is recommended, due to some significant improvements).
190
Dominik Brodowski5085cb22005-06-27 16:28:45 -0700191PCMCIAutils
192-----------
193
194PCMCIAutils replaces pcmcia-cs (see below). It properly sets up
195PCMCIA sockets at system startup and loads the appropriate modules
196for 16-bit PCMCIA devices if the kernel is modularized and the hotplug
197subsystem is used.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700198
199Pcmcia-cs
200---------
201
202PCMCIA (PC Card) support is now partially implemented in the main
Dominik Brodowski5085cb22005-06-27 16:28:45 -0700203kernel source. The "pcmciautils" package (see above) replaces pcmcia-cs
204for newest kernels.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700205
206Quota-tools
207-----------
208
209Support for 32 bit uid's and gid's is required if you want to use
210the newer version 2 quota format. Quota-tools version 3.07 and
211newer has this support. Use the recommended version or newer
212from the table above.
213
214Intel IA32 microcode
215--------------------
216
217A driver has been added to allow updating of Intel IA32 microcode,
218accessible as both a devfs regular file and as a normal (misc)
219character device. If you are not using devfs you may need to:
220
221mkdir /dev/cpu
222mknod /dev/cpu/microcode c 10 184
223chmod 0644 /dev/cpu/microcode
224
225as root before you can use this. You'll probably also want to
226get the user-space microcode_ctl utility to use with this.
227
228Powertweak
229----------
230
231If you are running v0.1.17 or earlier, you should upgrade to
232version v0.99.0 or higher. Running old versions may cause problems
233with programs using shared memory.
234
235udev
236----
237udev is a userspace application for populating /dev dynamically with
238only entries for devices actually present. udev replaces devfs.
239
Miklos Szeredi909021e2005-09-27 21:45:20 -0700240FUSE
241----
242
243Needs libfuse 2.4.0 or later. Absolute minimum is 2.3.0 but mount
244options 'direct_io' and 'kernel_cache' won't work.
245
Linus Torvalds1da177e2005-04-16 15:20:36 -0700246Networking
247==========
248
249General changes
250---------------
251
252If you have advanced network configuration needs, you should probably
253consider using the network tools from ip-route2.
254
255Packet Filter / NAT
256-------------------
257The packet filtering and NAT code uses the same tools like the previous 2.4.x
258kernel series (iptables). It still includes backwards-compatibility modules
259for 2.2.x-style ipchains and 2.0.x-style ipfwadm.
260
261PPP
262---
263
264The PPP driver has been restructured to support multilink and to
265enable it to operate over diverse media layers. If you use PPP,
266upgrade pppd to at least 2.4.0.
267
268If you are not using devfs, you must have the device file /dev/ppp
269which can be made by:
270
271mknod /dev/ppp c 108 0
272
273as root.
274
275If you use devfsd and build ppp support as modules, you will need
276the following in your /etc/devfsd.conf file:
277
278LOOKUP PPP MODLOAD
279
280Isdn4k-utils
281------------
282
283Due to changes in the length of the phone number field, isdn4k-utils
284needs to be recompiled or (preferably) upgraded.
285
286NFS-utils
287---------
288
289In 2.4 and earlier kernels, the nfs server needed to know about any
290client that expected to be able to access files via NFS. This
291information would be given to the kernel by "mountd" when the client
292mounted the filesystem, or by "exportfs" at system startup. exportfs
293would take information about active clients from /var/lib/nfs/rmtab.
294
295This approach is quite fragile as it depends on rmtab being correct
296which is not always easy, particularly when trying to implement
297fail-over. Even when the system is working well, rmtab suffers from
298getting lots of old entries that never get removed.
299
300With 2.6 we have the option of having the kernel tell mountd when it
301gets a request from an unknown host, and mountd can give appropriate
302export information to the kernel. This removes the dependency on
303rmtab and means that the kernel only needs to know about currently
304active clients.
305
306To enable this new functionality, you need to:
307
308 mount -t nfsd nfsd /proc/fs/nfs
309
310before running exportfs or mountd. It is recommended that all NFS
311services be protected from the internet-at-large by a firewall where
312that is possible.
313
314Getting updated software
315========================
316
317Kernel compilation
318******************
319
320gcc 2.95.3
321----------
322o <ftp://ftp.gnu.org/gnu/gcc/gcc-2.95.3.tar.gz>
323
324Make
325----
326o <ftp://ftp.gnu.org/gnu/make/>
327
328Binutils
329--------
330o <ftp://ftp.kernel.org/pub/linux/devel/binutils/>
331
332System utilities
333****************
334
335Util-linux
336----------
337o <ftp://ftp.kernel.org/pub/linux/utils/util-linux/>
338
339Ksymoops
340--------
341o <ftp://ftp.kernel.org/pub/linux/utils/kernel/ksymoops/v2.4/>
342
343Module-Init-Tools
344-----------------
345o <ftp://ftp.kernel.org/pub/linux/kernel/people/rusty/modules/>
346
347Mkinitrd
348--------
349o <ftp://rawhide.redhat.com/pub/rawhide/SRPMS/SRPMS/>
350
351E2fsprogs
352---------
353o <http://prdownloads.sourceforge.net/e2fsprogs/e2fsprogs-1.29.tar.gz>
354
355JFSutils
356--------
357o <http://jfs.sourceforge.net/>
358
359Reiserfsprogs
360-------------
361o <http://www.namesys.com/pub/reiserfsprogs/reiserfsprogs-3.6.3.tar.gz>
362
363Xfsprogs
364--------
365o <ftp://oss.sgi.com/projects/xfs/download/>
366
Dominik Brodowski5085cb22005-06-27 16:28:45 -0700367Pcmciautils
368-----------
369o <ftp://ftp.kernel.org/pub/linux/utils/kernel/pcmcia/>
370
Linus Torvalds1da177e2005-04-16 15:20:36 -0700371Pcmcia-cs
372---------
Dominik Brodowski5085cb22005-06-27 16:28:45 -0700373o <http://pcmcia-cs.sourceforge.net/>
Linus Torvalds1da177e2005-04-16 15:20:36 -0700374
375Quota-tools
376----------
377o <http://sourceforge.net/projects/linuxquota/>
378
Linus Torvalds1da177e2005-04-16 15:20:36 -0700379DocBook Stylesheets
380-------------------
381o <http://nwalsh.com/docbook/dsssl/>
382
Martin Waitz8b0c2d92005-05-01 08:59:27 -0700383XMLTO XSLT Frontend
384-------------------
385o <http://cyberelk.net/tim/xmlto/>
386
Linus Torvalds1da177e2005-04-16 15:20:36 -0700387Intel P6 microcode
388------------------
389o <http://www.urbanmyth.org/microcode/>
390
391Powertweak
392----------
393o <http://powertweak.sourceforge.net/>
394
395udev
396----
397o <http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev.html>
398
Miklos Szeredi909021e2005-09-27 21:45:20 -0700399FUSE
400----
401o <http://sourceforge.net/projects/fuse>
402
Linus Torvalds1da177e2005-04-16 15:20:36 -0700403Networking
404**********
405
406PPP
407---
408o <ftp://ftp.samba.org/pub/ppp/ppp-2.4.0.tar.gz>
409
410Isdn4k-utils
411------------
412o <ftp://ftp.isdn4linux.de/pub/isdn4linux/utils/isdn4k-utils.v3.1pre1.tar.gz>
413
414NFS-utils
415---------
416o <http://sourceforge.net/project/showfiles.php?group_id=14>
417
418Iptables
419--------
420o <http://www.iptables.org/downloads.html>
421
422Ip-route2
423---------
424o <ftp://ftp.tux.org/pub/net/ip-routing/iproute2-2.2.4-now-ss991023.tar.gz>
425
426OProfile
427--------
428o <http://oprofile.sf.net/download/>
429
430NFS-Utils
431---------
432o <http://nfs.sourceforge.net/>
433