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