blob: 5eaab0441d7629dbbae004317df4292ca724e57f [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
240Networking
241==========
242
243General changes
244---------------
245
246If you have advanced network configuration needs, you should probably
247consider using the network tools from ip-route2.
248
249Packet Filter / NAT
250-------------------
251The packet filtering and NAT code uses the same tools like the previous 2.4.x
252kernel series (iptables). It still includes backwards-compatibility modules
253for 2.2.x-style ipchains and 2.0.x-style ipfwadm.
254
255PPP
256---
257
258The PPP driver has been restructured to support multilink and to
259enable it to operate over diverse media layers. If you use PPP,
260upgrade pppd to at least 2.4.0.
261
262If you are not using devfs, you must have the device file /dev/ppp
263which can be made by:
264
265mknod /dev/ppp c 108 0
266
267as root.
268
269If you use devfsd and build ppp support as modules, you will need
270the following in your /etc/devfsd.conf file:
271
272LOOKUP PPP MODLOAD
273
274Isdn4k-utils
275------------
276
277Due to changes in the length of the phone number field, isdn4k-utils
278needs to be recompiled or (preferably) upgraded.
279
280NFS-utils
281---------
282
283In 2.4 and earlier kernels, the nfs server needed to know about any
284client that expected to be able to access files via NFS. This
285information would be given to the kernel by "mountd" when the client
286mounted the filesystem, or by "exportfs" at system startup. exportfs
287would take information about active clients from /var/lib/nfs/rmtab.
288
289This approach is quite fragile as it depends on rmtab being correct
290which is not always easy, particularly when trying to implement
291fail-over. Even when the system is working well, rmtab suffers from
292getting lots of old entries that never get removed.
293
294With 2.6 we have the option of having the kernel tell mountd when it
295gets a request from an unknown host, and mountd can give appropriate
296export information to the kernel. This removes the dependency on
297rmtab and means that the kernel only needs to know about currently
298active clients.
299
300To enable this new functionality, you need to:
301
302 mount -t nfsd nfsd /proc/fs/nfs
303
304before running exportfs or mountd. It is recommended that all NFS
305services be protected from the internet-at-large by a firewall where
306that is possible.
307
308Getting updated software
309========================
310
311Kernel compilation
312******************
313
314gcc 2.95.3
315----------
316o <ftp://ftp.gnu.org/gnu/gcc/gcc-2.95.3.tar.gz>
317
318Make
319----
320o <ftp://ftp.gnu.org/gnu/make/>
321
322Binutils
323--------
324o <ftp://ftp.kernel.org/pub/linux/devel/binutils/>
325
326System utilities
327****************
328
329Util-linux
330----------
331o <ftp://ftp.kernel.org/pub/linux/utils/util-linux/>
332
333Ksymoops
334--------
335o <ftp://ftp.kernel.org/pub/linux/utils/kernel/ksymoops/v2.4/>
336
337Module-Init-Tools
338-----------------
339o <ftp://ftp.kernel.org/pub/linux/kernel/people/rusty/modules/>
340
341Mkinitrd
342--------
343o <ftp://rawhide.redhat.com/pub/rawhide/SRPMS/SRPMS/>
344
345E2fsprogs
346---------
347o <http://prdownloads.sourceforge.net/e2fsprogs/e2fsprogs-1.29.tar.gz>
348
349JFSutils
350--------
351o <http://jfs.sourceforge.net/>
352
353Reiserfsprogs
354-------------
355o <http://www.namesys.com/pub/reiserfsprogs/reiserfsprogs-3.6.3.tar.gz>
356
357Xfsprogs
358--------
359o <ftp://oss.sgi.com/projects/xfs/download/>
360
Dominik Brodowski5085cb22005-06-27 16:28:45 -0700361Pcmciautils
362-----------
363o <ftp://ftp.kernel.org/pub/linux/utils/kernel/pcmcia/>
364
Linus Torvalds1da177e2005-04-16 15:20:36 -0700365Pcmcia-cs
366---------
Dominik Brodowski5085cb22005-06-27 16:28:45 -0700367o <http://pcmcia-cs.sourceforge.net/>
Linus Torvalds1da177e2005-04-16 15:20:36 -0700368
369Quota-tools
370----------
371o <http://sourceforge.net/projects/linuxquota/>
372
Linus Torvalds1da177e2005-04-16 15:20:36 -0700373DocBook Stylesheets
374-------------------
375o <http://nwalsh.com/docbook/dsssl/>
376
Martin Waitz8b0c2d92005-05-01 08:59:27 -0700377XMLTO XSLT Frontend
378-------------------
379o <http://cyberelk.net/tim/xmlto/>
380
Linus Torvalds1da177e2005-04-16 15:20:36 -0700381Intel P6 microcode
382------------------
383o <http://www.urbanmyth.org/microcode/>
384
385Powertweak
386----------
387o <http://powertweak.sourceforge.net/>
388
389udev
390----
391o <http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev.html>
392
393Networking
394**********
395
396PPP
397---
398o <ftp://ftp.samba.org/pub/ppp/ppp-2.4.0.tar.gz>
399
400Isdn4k-utils
401------------
402o <ftp://ftp.isdn4linux.de/pub/isdn4linux/utils/isdn4k-utils.v3.1pre1.tar.gz>
403
404NFS-utils
405---------
406o <http://sourceforge.net/project/showfiles.php?group_id=14>
407
408Iptables
409--------
410o <http://www.iptables.org/downloads.html>
411
412Ip-route2
413---------
414o <ftp://ftp.tux.org/pub/net/ip-routing/iproute2-2.2.4-now-ss991023.tar.gz>
415
416OProfile
417--------
418o <http://oprofile.sf.net/download/>
419
420NFS-Utils
421---------
422o <http://nfs.sourceforge.net/>
423