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