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 kmod 13 # 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 46o openssl & libcrypto 1.0.0 # openssl version 47o bc 1.06.95 # bc --version 48 49 50Kernel compilation 51================== 52 53GCC 54--- 55 56The gcc version requirements may vary depending on the type of CPU in your 57computer. 58 59Make 60---- 61 62You will need GNU make 3.80 or later to build the kernel. 63 64Binutils 65-------- 66 67Linux on IA-32 has recently switched from using as86 to using gas for 68assembling the 16-bit boot code, removing the need for as86 to compile 69your kernel. This change does, however, mean that you need a recent 70release of binutils. 71 72Perl 73---- 74 75You will need perl 5 and the following modules: Getopt::Long, Getopt::Std, 76File::Basename, and File::Find to build the kernel. 77 78BC 79-- 80 81You will need bc to build kernels 3.10 and higher 82 83 84OpenSSL 85------- 86 87Module signing and external certificate handling use the OpenSSL program and 88crypto library to do key creation and signature generation. 89 90You will need openssl to build kernels 3.7 and higher if module signing is 91enabled. You will also need openssl development packages to build kernels 4.3 92and higher. 93 94 95System utilities 96================ 97 98Architectural changes 99--------------------- 100 101DevFS has been obsoleted in favour of udev 102(http://www.kernel.org/pub/linux/utils/kernel/hotplug/) 103 10432-bit UID support is now in place. Have fun! 105 106Linux documentation for functions is transitioning to inline 107documentation via specially-formatted comments near their 108definitions in the source. These comments can be combined with the 109SGML templates in the Documentation/DocBook directory to make DocBook 110files, which can then be converted by DocBook stylesheets to PostScript, 111HTML, PDF files, and several other formats. In order to convert from 112DocBook format to a format of your choice, you'll need to install Jade as 113well as the desired DocBook stylesheets. 114 115Util-linux 116---------- 117 118New versions of util-linux provide *fdisk support for larger disks, 119support new options to mount, recognize more supported partition 120types, have a fdformat which works with 2.4 kernels, and similar goodies. 121You'll probably want to upgrade. 122 123Ksymoops 124-------- 125 126If the unthinkable happens and your kernel oopses, you may need the 127ksymoops tool to decode it, but in most cases you don't. 128It is generally preferred to build the kernel with CONFIG_KALLSYMS so 129that it produces readable dumps that can be used as-is (this also 130produces better output than ksymoops). If for some reason your kernel 131is not build with CONFIG_KALLSYMS and you have no way to rebuild and 132reproduce the Oops with that option, then you can still decode that Oops 133with ksymoops. 134 135Mkinitrd 136-------- 137 138These changes to the /lib/modules file tree layout also require that 139mkinitrd be upgraded. 140 141E2fsprogs 142--------- 143 144The latest version of e2fsprogs fixes several bugs in fsck and 145debugfs. Obviously, it's a good idea to upgrade. 146 147JFSutils 148-------- 149 150The jfsutils package contains the utilities for the file system. 151The following utilities are available: 152o fsck.jfs - initiate replay of the transaction log, and check 153 and repair a JFS formatted partition. 154o mkfs.jfs - create a JFS formatted partition. 155o other file system utilities are also available in this package. 156 157Reiserfsprogs 158------------- 159 160The reiserfsprogs package should be used for reiserfs-3.6.x 161(Linux kernels 2.4.x). It is a combined package and contains working 162versions of mkreiserfs, resize_reiserfs, debugreiserfs and 163reiserfsck. These utils work on both i386 and alpha platforms. 164 165Xfsprogs 166-------- 167 168The latest version of xfsprogs contains mkfs.xfs, xfs_db, and the 169xfs_repair utilities, among others, for the XFS filesystem. It is 170architecture independent and any version from 2.0.0 onward should 171work correctly with this version of the XFS kernel code (2.6.0 or 172later is recommended, due to some significant improvements). 173 174PCMCIAutils 175----------- 176 177PCMCIAutils replaces pcmcia-cs. It properly sets up 178PCMCIA sockets at system startup and loads the appropriate modules 179for 16-bit PCMCIA devices if the kernel is modularized and the hotplug 180subsystem is used. 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 283On x86 kernels the mcelog utility is needed to process and log machine check 284events when CONFIG_X86_MCE is enabled. Machine check events are errors reported 285by the CPU. Processing them is strongly encouraged. 286 287Getting updated software 288======================== 289 290Kernel compilation 291****************** 292 293gcc 294--- 295o <ftp://ftp.gnu.org/gnu/gcc/> 296 297Make 298---- 299o <ftp://ftp.gnu.org/gnu/make/> 300 301Binutils 302-------- 303o <ftp://ftp.kernel.org/pub/linux/devel/binutils/> 304 305OpenSSL 306------- 307o <https://www.openssl.org/> 308 309System utilities 310**************** 311 312Util-linux 313---------- 314o <ftp://ftp.kernel.org/pub/linux/utils/util-linux/> 315 316Kmod 317---- 318o <https://www.kernel.org/pub/linux/utils/kernel/kmod/> 319o <https://git.kernel.org/pub/scm/utils/kernel/kmod/kmod.git> 320 321Ksymoops 322-------- 323o <ftp://ftp.kernel.org/pub/linux/utils/kernel/ksymoops/v2.4/> 324 325Mkinitrd 326-------- 327o <https://code.launchpad.net/initrd-tools/main> 328 329E2fsprogs 330--------- 331o <http://prdownloads.sourceforge.net/e2fsprogs/e2fsprogs-1.29.tar.gz> 332 333JFSutils 334-------- 335o <http://jfs.sourceforge.net/> 336 337Reiserfsprogs 338------------- 339o <http://www.kernel.org/pub/linux/utils/fs/reiserfs/> 340 341Xfsprogs 342-------- 343o <ftp://oss.sgi.com/projects/xfs/> 344 345Pcmciautils 346----------- 347o <ftp://ftp.kernel.org/pub/linux/utils/kernel/pcmcia/> 348 349Quota-tools 350---------- 351o <http://sourceforge.net/projects/linuxquota/> 352 353DocBook Stylesheets 354------------------- 355o <http://sourceforge.net/projects/docbook/files/docbook-dsssl/> 356 357XMLTO XSLT Frontend 358------------------- 359o <http://cyberelk.net/tim/xmlto/> 360 361Intel P6 microcode 362------------------ 363o <https://downloadcenter.intel.com/> 364 365udev 366---- 367o <http://www.freedesktop.org/software/systemd/man/udev.html> 368 369FUSE 370---- 371o <http://sourceforge.net/projects/fuse> 372 373mcelog 374------ 375o <http://www.mcelog.org/> 376 377Networking 378********** 379 380PPP 381--- 382o <ftp://ftp.samba.org/pub/ppp/> 383 384Isdn4k-utils 385------------ 386o <ftp://ftp.isdn4linux.de/pub/isdn4linux/utils/> 387 388NFS-utils 389--------- 390o <http://sourceforge.net/project/showfiles.php?group_id=14> 391 392Iptables 393-------- 394o <http://www.iptables.org/downloads.html> 395 396Ip-route2 397--------- 398o <https://www.kernel.org/pub/linux/utils/net/iproute2/> 399 400OProfile 401-------- 402o <http://oprofile.sf.net/download/> 403 404NFS-Utils 405--------- 406o <http://nfs.sourceforge.net/> 407