blob: 86b86399d61d7237aab919f87867bd984dddaa25 [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
Greg Kroah-Hartmanad7e14a52005-10-27 22:25:43 -070068o udev 071 # 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
Jesper Juhl62a07e62005-11-07 01:01:03 -0800142If the unthinkable happens and your kernel oopses, you may need the
143ksymoops tool to decode it, but in most cases you don't.
144In the 2.6 kernel it is generally preferred to build the kernel with
145CONFIG_KALLSYMS so that it produces readable dumps that can be used as-is
146(this also produces better output than ksymoops).
147If for some reason your kernel is not build with CONFIG_KALLSYMS and
148you have no way to rebuild and reproduce the Oops with that option, then
149you can still decode that Oops with ksymoops.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700150
151Module-Init-Tools
152-----------------
153
154A new module loader is now in the kernel that requires module-init-tools
155to use. It is backward compatible with the 2.4.x series kernels.
156
157Mkinitrd
158--------
159
160These changes to the /lib/modules file tree layout also require that
161mkinitrd be upgraded.
162
163E2fsprogs
164---------
165
166The latest version of e2fsprogs fixes several bugs in fsck and
167debugfs. Obviously, it's a good idea to upgrade.
168
169JFSutils
170--------
171
172The jfsutils package contains the utilities for the file system.
173The following utilities are available:
174o fsck.jfs - initiate replay of the transaction log, and check
175 and repair a JFS formatted partition.
176o mkfs.jfs - create a JFS formatted partition.
177o other file system utilities are also available in this package.
178
179Reiserfsprogs
180-------------
181
182The reiserfsprogs package should be used for reiserfs-3.6.x
183(Linux kernels 2.4.x). It is a combined package and contains working
184versions of mkreiserfs, resize_reiserfs, debugreiserfs and
185reiserfsck. These utils work on both i386 and alpha platforms.
186
187Xfsprogs
188--------
189
190The latest version of xfsprogs contains mkfs.xfs, xfs_db, and the
191xfs_repair utilities, among others, for the XFS filesystem. It is
192architecture independent and any version from 2.0.0 onward should
193work correctly with this version of the XFS kernel code (2.6.0 or
194later is recommended, due to some significant improvements).
195
Dominik Brodowski5085cb22005-06-27 16:28:45 -0700196PCMCIAutils
197-----------
198
199PCMCIAutils replaces pcmcia-cs (see below). It properly sets up
200PCMCIA sockets at system startup and loads the appropriate modules
201for 16-bit PCMCIA devices if the kernel is modularized and the hotplug
202subsystem is used.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700203
204Pcmcia-cs
205---------
206
207PCMCIA (PC Card) support is now partially implemented in the main
Dominik Brodowski5085cb22005-06-27 16:28:45 -0700208kernel source. The "pcmciautils" package (see above) replaces pcmcia-cs
209for newest kernels.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700210
211Quota-tools
212-----------
213
214Support for 32 bit uid's and gid's is required if you want to use
215the newer version 2 quota format. Quota-tools version 3.07 and
216newer has this support. Use the recommended version or newer
217from the table above.
218
219Intel IA32 microcode
220--------------------
221
222A driver has been added to allow updating of Intel IA32 microcode,
223accessible as both a devfs regular file and as a normal (misc)
224character device. If you are not using devfs you may need to:
225
226mkdir /dev/cpu
227mknod /dev/cpu/microcode c 10 184
228chmod 0644 /dev/cpu/microcode
229
230as root before you can use this. You'll probably also want to
231get the user-space microcode_ctl utility to use with this.
232
233Powertweak
234----------
235
236If you are running v0.1.17 or earlier, you should upgrade to
237version v0.99.0 or higher. Running old versions may cause problems
238with programs using shared memory.
239
240udev
241----
242udev is a userspace application for populating /dev dynamically with
243only entries for devices actually present. udev replaces devfs.
244
Miklos Szeredi909021e2005-09-27 21:45:20 -0700245FUSE
246----
247
248Needs libfuse 2.4.0 or later. Absolute minimum is 2.3.0 but mount
249options 'direct_io' and 'kernel_cache' won't work.
250
Linus Torvalds1da177e2005-04-16 15:20:36 -0700251Networking
252==========
253
254General changes
255---------------
256
257If you have advanced network configuration needs, you should probably
258consider using the network tools from ip-route2.
259
260Packet Filter / NAT
261-------------------
262The packet filtering and NAT code uses the same tools like the previous 2.4.x
263kernel series (iptables). It still includes backwards-compatibility modules
264for 2.2.x-style ipchains and 2.0.x-style ipfwadm.
265
266PPP
267---
268
269The PPP driver has been restructured to support multilink and to
270enable it to operate over diverse media layers. If you use PPP,
271upgrade pppd to at least 2.4.0.
272
273If you are not using devfs, you must have the device file /dev/ppp
274which can be made by:
275
276mknod /dev/ppp c 108 0
277
278as root.
279
280If you use devfsd and build ppp support as modules, you will need
281the following in your /etc/devfsd.conf file:
282
283LOOKUP PPP MODLOAD
284
285Isdn4k-utils
286------------
287
288Due to changes in the length of the phone number field, isdn4k-utils
289needs to be recompiled or (preferably) upgraded.
290
291NFS-utils
292---------
293
294In 2.4 and earlier kernels, the nfs server needed to know about any
295client that expected to be able to access files via NFS. This
296information would be given to the kernel by "mountd" when the client
297mounted the filesystem, or by "exportfs" at system startup. exportfs
298would take information about active clients from /var/lib/nfs/rmtab.
299
300This approach is quite fragile as it depends on rmtab being correct
301which is not always easy, particularly when trying to implement
302fail-over. Even when the system is working well, rmtab suffers from
303getting lots of old entries that never get removed.
304
305With 2.6 we have the option of having the kernel tell mountd when it
306gets a request from an unknown host, and mountd can give appropriate
307export information to the kernel. This removes the dependency on
308rmtab and means that the kernel only needs to know about currently
309active clients.
310
311To enable this new functionality, you need to:
312
313 mount -t nfsd nfsd /proc/fs/nfs
314
315before running exportfs or mountd. It is recommended that all NFS
316services be protected from the internet-at-large by a firewall where
317that is possible.
318
319Getting updated software
320========================
321
322Kernel compilation
323******************
324
325gcc 2.95.3
326----------
327o <ftp://ftp.gnu.org/gnu/gcc/gcc-2.95.3.tar.gz>
328
329Make
330----
331o <ftp://ftp.gnu.org/gnu/make/>
332
333Binutils
334--------
335o <ftp://ftp.kernel.org/pub/linux/devel/binutils/>
336
337System utilities
338****************
339
340Util-linux
341----------
342o <ftp://ftp.kernel.org/pub/linux/utils/util-linux/>
343
344Ksymoops
345--------
346o <ftp://ftp.kernel.org/pub/linux/utils/kernel/ksymoops/v2.4/>
347
348Module-Init-Tools
349-----------------
350o <ftp://ftp.kernel.org/pub/linux/kernel/people/rusty/modules/>
351
352Mkinitrd
353--------
354o <ftp://rawhide.redhat.com/pub/rawhide/SRPMS/SRPMS/>
355
356E2fsprogs
357---------
358o <http://prdownloads.sourceforge.net/e2fsprogs/e2fsprogs-1.29.tar.gz>
359
360JFSutils
361--------
362o <http://jfs.sourceforge.net/>
363
364Reiserfsprogs
365-------------
366o <http://www.namesys.com/pub/reiserfsprogs/reiserfsprogs-3.6.3.tar.gz>
367
368Xfsprogs
369--------
370o <ftp://oss.sgi.com/projects/xfs/download/>
371
Dominik Brodowski5085cb22005-06-27 16:28:45 -0700372Pcmciautils
373-----------
374o <ftp://ftp.kernel.org/pub/linux/utils/kernel/pcmcia/>
375
Linus Torvalds1da177e2005-04-16 15:20:36 -0700376Pcmcia-cs
377---------
Dominik Brodowski5085cb22005-06-27 16:28:45 -0700378o <http://pcmcia-cs.sourceforge.net/>
Linus Torvalds1da177e2005-04-16 15:20:36 -0700379
380Quota-tools
381----------
382o <http://sourceforge.net/projects/linuxquota/>
383
Linus Torvalds1da177e2005-04-16 15:20:36 -0700384DocBook Stylesheets
385-------------------
386o <http://nwalsh.com/docbook/dsssl/>
387
Martin Waitz8b0c2d92005-05-01 08:59:27 -0700388XMLTO XSLT Frontend
389-------------------
390o <http://cyberelk.net/tim/xmlto/>
391
Linus Torvalds1da177e2005-04-16 15:20:36 -0700392Intel P6 microcode
393------------------
394o <http://www.urbanmyth.org/microcode/>
395
396Powertweak
397----------
398o <http://powertweak.sourceforge.net/>
399
400udev
401----
402o <http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev.html>
403
Miklos Szeredi909021e2005-09-27 21:45:20 -0700404FUSE
405----
406o <http://sourceforge.net/projects/fuse>
407
Linus Torvalds1da177e2005-04-16 15:20:36 -0700408Networking
409**********
410
411PPP
412---
413o <ftp://ftp.samba.org/pub/ppp/ppp-2.4.0.tar.gz>
414
415Isdn4k-utils
416------------
417o <ftp://ftp.isdn4linux.de/pub/isdn4linux/utils/isdn4k-utils.v3.1pre1.tar.gz>
418
419NFS-utils
420---------
421o <http://sourceforge.net/project/showfiles.php?group_id=14>
422
423Iptables
424--------
425o <http://www.iptables.org/downloads.html>
426
427Ip-route2
428---------
429o <ftp://ftp.tux.org/pub/net/ip-routing/iproute2-2.2.4-now-ss991023.tar.gz>
430
431OProfile
432--------
433o <http://oprofile.sf.net/download/>
434
435NFS-Utils
436---------
437o <http://nfs.sourceforge.net/>
438