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