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