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