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