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. 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 175Quota-tools 176----------- 177 178Support for 32 bit uid's and gid's is required if you want to use 179the newer version 2 quota format. Quota-tools version 3.07 and 180newer has this support. Use the recommended version or newer 181from the table above. 182 183Intel IA32 microcode 184-------------------- 185 186A driver has been added to allow updating of Intel IA32 microcode, 187accessible as a normal (misc) character device. If you are not using 188udev you may need to: 189 190mkdir /dev/cpu 191mknod /dev/cpu/microcode c 10 184 192chmod 0644 /dev/cpu/microcode 193 194as root before you can use this. You'll probably also want to 195get the user-space microcode_ctl utility to use with this. 196 197udev 198---- 199udev is a userspace application for populating /dev dynamically with 200only entries for devices actually present. udev replaces the basic 201functionality of devfs, while allowing persistent device naming for 202devices. 203 204FUSE 205---- 206 207Needs libfuse 2.4.0 or later. Absolute minimum is 2.3.0 but mount 208options 'direct_io' and 'kernel_cache' won't work. 209 210Networking 211========== 212 213General changes 214--------------- 215 216If you have advanced network configuration needs, you should probably 217consider using the network tools from ip-route2. 218 219Packet Filter / NAT 220------------------- 221The packet filtering and NAT code uses the same tools like the previous 2.4.x 222kernel series (iptables). It still includes backwards-compatibility modules 223for 2.2.x-style ipchains and 2.0.x-style ipfwadm. 224 225PPP 226--- 227 228The PPP driver has been restructured to support multilink and to 229enable it to operate over diverse media layers. If you use PPP, 230upgrade pppd to at least 2.4.0. 231 232If you are not using udev, you must have the device file /dev/ppp 233which can be made by: 234 235mknod /dev/ppp c 108 0 236 237as root. 238 239Isdn4k-utils 240------------ 241 242Due to changes in the length of the phone number field, isdn4k-utils 243needs to be recompiled or (preferably) upgraded. 244 245NFS-utils 246--------- 247 248In ancient (2.4 and earlier) kernels, the nfs server needed to know 249about any client that expected to be able to access files via NFS. This 250information would be given to the kernel by "mountd" when the client 251mounted the filesystem, or by "exportfs" at system startup. exportfs 252would take information about active clients from /var/lib/nfs/rmtab. 253 254This approach is quite fragile as it depends on rmtab being correct 255which is not always easy, particularly when trying to implement 256fail-over. Even when the system is working well, rmtab suffers from 257getting lots of old entries that never get removed. 258 259With modern kernels we have the option of having the kernel tell mountd 260when it gets a request from an unknown host, and mountd can give 261appropriate export information to the kernel. This removes the 262dependency on rmtab and means that the kernel only needs to know about 263currently active clients. 264 265To enable this new functionality, you need to: 266 267 mount -t nfsd nfsd /proc/fs/nfsd 268 269before running exportfs or mountd. It is recommended that all NFS 270services be protected from the internet-at-large by a firewall where 271that is possible. 272 273mcelog 274------ 275 276On x86 kernels the mcelog utility is needed to process and log machine check 277events when CONFIG_X86_MCE is enabled. Machine check events are errors reported 278by the CPU. Processing them is strongly encouraged. 279 280Getting updated software 281======================== 282 283Kernel compilation 284****************** 285 286gcc 287--- 288o <ftp://ftp.gnu.org/gnu/gcc/> 289 290Make 291---- 292o <ftp://ftp.gnu.org/gnu/make/> 293 294Binutils 295-------- 296o <ftp://ftp.kernel.org/pub/linux/devel/binutils/> 297 298System utilities 299**************** 300 301Util-linux 302---------- 303o <ftp://ftp.kernel.org/pub/linux/utils/util-linux/> 304 305Ksymoops 306-------- 307o <ftp://ftp.kernel.org/pub/linux/utils/kernel/ksymoops/v2.4/> 308 309Module-Init-Tools 310----------------- 311o <ftp://ftp.kernel.org/pub/linux/kernel/people/rusty/modules/> 312 313Mkinitrd 314-------- 315o <https://code.launchpad.net/initrd-tools/main> 316 317E2fsprogs 318--------- 319o <http://prdownloads.sourceforge.net/e2fsprogs/e2fsprogs-1.29.tar.gz> 320 321JFSutils 322-------- 323o <http://jfs.sourceforge.net/> 324 325Reiserfsprogs 326------------- 327o <http://www.kernel.org/pub/linux/utils/fs/reiserfs/> 328 329Xfsprogs 330-------- 331o <ftp://oss.sgi.com/projects/xfs/> 332 333Pcmciautils 334----------- 335o <ftp://ftp.kernel.org/pub/linux/utils/kernel/pcmcia/> 336 337Quota-tools 338---------- 339o <http://sourceforge.net/projects/linuxquota/> 340 341DocBook Stylesheets 342------------------- 343o <http://sourceforge.net/projects/docbook/files/docbook-dsssl/> 344 345XMLTO XSLT Frontend 346------------------- 347o <http://cyberelk.net/tim/xmlto/> 348 349Intel P6 microcode 350------------------ 351o <https://downloadcenter.intel.com/> 352 353udev 354---- 355o <http://www.freedesktop.org/software/systemd/man/udev.html> 356 357FUSE 358---- 359o <http://sourceforge.net/projects/fuse> 360 361mcelog 362------ 363o <http://www.mcelog.org/> 364 365Networking 366********** 367 368PPP 369--- 370o <ftp://ftp.samba.org/pub/ppp/> 371 372Isdn4k-utils 373------------ 374o <ftp://ftp.isdn4linux.de/pub/isdn4linux/utils/> 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 <https://www.kernel.org/pub/linux/utils/net/iproute2/> 387 388OProfile 389-------- 390o <http://oprofile.sf.net/download/> 391 392NFS-Utils 393--------- 394o <http://nfs.sourceforge.net/> 395 396