diff -ur --new-file old/linux/CREDITS new/linux/CREDITS --- old/linux/CREDITS Fri Nov 1 12:04:07 1996 +++ new/linux/CREDITS Wed May 14 06:52:27 1997 @@ -68,7 +68,7 @@ N: Dario Ballabio E: dario@milano.europe.dg.com D: Author and maintainer of the Ultrastor 14F/34F SCSI driver -D: Author and maintainer of the EATA ISA/EISA SCSI driver +D: Author and maintainer of the EATA ISA/EISA/PCI SCSI driver S: Data General Corporation S: Milano S: Italy @@ -108,8 +108,8 @@ N: Randolph Bentson E: bentson@grieg.seaslug.org D: author of driver for Cyclades Cyclom-Y async mux -S: 2500 Gilman Dr W, #404 -S: Seattle, Washington 98119-2102 +S: 2322 37th Ave SW +S: Seattle, Washington 98126-2010 S: USA N: Stephen R. van den Berg (AKA BuGless) @@ -122,7 +122,9 @@ S: The Netherlands N: Hennus Bergman -E: hennus@sky.ow.nl [My uucp-fed Linux box at home] +E: hennus@cybercomm.nl +W: http://www.cybercomm.nl/~hennus/ +P: 1024/77D50909 76 99 FD 31 91 E1 96 1C 90 BB 22 80 62 F6 BD 63 D: Author and maintainer of the QIC-02 tape driver S: The Netherlands @@ -131,29 +133,24 @@ D: Original author of the Linux networking code N: Philip Blundell -E: pjb27@cam.ac.uk -E: pb@nexus.co.uk -E: phil@tazenda.demon.co.uk +E: Philip.Blundell@pobox.com D: Device driver hacking (especially EtherExpress16/3C505 net cards) D: Some Linux/ARM stuff -S: Trinity College -S: Cambridge, UK. CB2 1TQ +D: Co-architect of the parallel port sharing system +S: 201 Gilbert Road +S: Cambridge, UK. CB4 3PA N: Thomas Bogendoerfer -E: tsbogend@bigbug.franken.de -D: Lance32 driver +E: tsbogend@alpha.franken.de +D: PCnet32 driver D: strace for Linux/Alpha S: Baumgartenweg 5 S: 91452 Wilhermsdorf S: Germany N: Bill Bogstad -E: bogstad@cs.jhu.edu -D: Wrote /proc/self patch -S: Johns Hopkins University -S: Computer Science Department -S: Baltimore, Maryland 21218 -S: USA +E: bogstad@pobox.com +D: wrote /proc/self hack, minor samba & dosemu patches N: Axel Boldt E: boldt@math.ucsb.edu @@ -192,7 +189,7 @@ N: Remy Card E: Remy.Card@masi.ibp.fr E: Remy.Card@linux.org -D: Extended file system designer and developer +D: Extended file system [defunct] designer and developer D: Second extended file system designer and developer S: Institut Blaise Pascal S: 4 Place Jussieu @@ -256,14 +253,12 @@ N: Alan Cox E: alan@lxorguk.ukuu.org.uk (linux related - except big patches) -E: iialan@www.linux.org.uk (linux.org.uk/big patches) +E: iialan@www.uk.linux.org (linux.org.uk/big patches) E: alan@cymru.net (commercial CymruNET stuff) -E: gw4pts@gw4pts.ampr.org (amateur radio stuff) -E: GW4PTS@GB7SWN (packet radio) -E: Please don't use iialan@iifeak.swan.ac.uk for Linux stuff -S: c/o 3Com/I^2IT Limited +E: Alan.Cox@linux.org (if others fail) +S: CymruNet Limited S: The Innovation Centre -S: University Of Wales +S: Singleton Park S: Swansea, SA2 8PP S: Wales, UK D: NET2Debugged/NET3 author @@ -285,6 +280,7 @@ N: Ray Dassen E: jdassen@wi.LeidenUniv.nl W: http://www.wi.leidenuniv.nl/~jdassen/ +P: 1024/672D05C1 DD 60 32 60 F7 90 64 80 E7 6F D4 E4 F8 C9 4A 58 D: Debian GNU/Linux: www.debian.org maintainer, FAQ co-maintainer, D: packages testing, nit-picking & fixing. Enjoying BugFree (TM) kernels. S: Zuidsingel 10A @@ -307,7 +303,9 @@ N: Terry Dawson E: terry@perf.no.itg.telecom.com.au E: terry@albert.vk2ktj.ampr.org (Amateur Radio use only) +D: trivial hack to add variable address length routing to Rose. D: AX25-HOWTO, HAM-HOWTO, IPX-HOWTO, NET-2-HOWTO +D: ax25-utils maintainer. N: Todd J. Derr E: tjd@fore.com @@ -348,7 +346,7 @@ D: SCSI code D: Assorted snippets elsewhere D: Boot sector "..." printing -S: 2255 Spruce +S: 2037 Walnut #6 S: Boulder, Colorado 80302 S: USA @@ -389,6 +387,14 @@ D: Debugging: SCSI code; Cyclades serial driver; APM driver D: Debugging: XFree86 Mach 32 server, accelerated server code +N: János Farkas +E: chexum@shadow.banki.hu +D: romfs, various (mostly networking) fixes +P: 1024/F81FB2E1 41 B7 E4 E6 3E D4 A6 71 6D 9C F3 9F F2 BF DF 6E +S: Madarász Viktor utca 25 +S: 1131 Budapest +S: Hungary + N: Jürgen Fischer E: fischer@et-inf.fho-emden.de (=?iso-8859-1?q?J=FCrgen?= Fischer) D: Author of Adaptec AHA-152x scsi driver @@ -458,7 +464,7 @@ S: USA N: Philip Gladstone -E: philipg@onsett.com +E: philip@raptor.com D: Kernel / timekeeping stuff N: Michael A. Griffith @@ -496,7 +502,8 @@ N: Grant Guenther E: grant@torque.net -D: Iomega PPA / ZIP driver +D: drivers for parallel port devices: ppa, ez, bpcd +D: original architect of the parallel-port sharing scheme. S: 906-1001 Bay St. S: Toronto, Ontario, M5S 3A6 S: Canada @@ -543,14 +550,13 @@ D: Selection mechanism N: Jochen Hein -E: jochen.hein@informatik.tu-clausthal.de +E: jochen.hein@delphi.central.de P: 1024/4A27F015 25 72 FB E3 85 9F DE 3B CB 0A DA DA 40 77 05 6C D: National Language Support -D: German Support-Disks for SLS/Slackware called SLT D: Linux Internationalization Project -D: DOSemu -S: Muehlenweg 19 -S: 34266 Niestetal +D: German Localization for Linux and GNU software +S: Frankenstraße +S: 34131 Kassel S: Germany N: Richard Henderson @@ -620,6 +626,13 @@ S: D-69126 Heidelberg S: Germany +N: Christopher Horn +E: chorn@warwick.net +D: Miscellaneous sysctl hacks +S: 36 Mudtown Road +S: Wantage, NJ 07461 +S: USA + N: Miguel de Icaza Amozurrutia E: miguel@nuclecu.unam.mx D: Linux/SPARC team, Midnight Commander maintainer @@ -652,6 +665,16 @@ S: RG6 2NU S: United Kingdom +N: Jakub Jelinek +E: jj@sunsite.mff.cuni.cz +W: http://sunsite.mff.cuni.cz/~jj +P: 1024/0F7623C5 53 95 71 3C EB 73 99 97 02 49 40 47 F9 19 68 20 +D: Sparc hacker, SILO, mc +D: Maintain sunsite.mff.cuni.cz +S: Na Orechovce 7 +S: 160 00 Praha 6 +S: Czech Republic + N: Michael K. Johnson E: johnsonm@redhat.com W: http://www.redhat.com/~johnsonm @@ -667,9 +690,11 @@ S: USA N: Bernhard Kaindl +E: bkaindl@netway.at E: edv@bartelt.via.at D: Author of a menu based configuration tool, kmenu, which D: is the predecessor of 'make menuconfig' and 'make xconfig'. +D: digiboard driver update(modularisation work and 2.1.x upd) S: Tallak 95 S: 8103 Rein S: Austria @@ -706,12 +731,15 @@ S: USA N: Alain L. Knaff -E: Alain.Knaff@imag.fr +E: Alain.Knaff@poboxes.com D: floppy driver -S: Appartement 310B -S: 11, rue General Mangin -S: 38100 Grenoble -S: France +S: 2a, rue de l'Acier +S: L-4505 Differdange +S: Luxembourg + +N: Gerd Knorr +E: kraxel@cs.tu-berlin.de +D: SCSI CD-ROM driver hacking, minor bug fixes N: Harald Koenig E: koenig@tat.physik.uni-tuebingen.de @@ -733,6 +761,16 @@ S: 1098 VA Amsterdam S: The Netherlands +N: Gene Kozin +E: 74604.152@compuserve.com +W: http://www.sangoma.com +D: WAN Router & Sangoma WAN drivers +S: Sangoma Technologies Inc. +S: 7170 Warden Avenue, Unit 2 +S: Markham, Ontario +S: L3R 8B2 +S: Canada + N: Gero Kuhlmann E: gero@gkminix.han.de D: mounting root via NFS @@ -760,6 +798,13 @@ D: Author of the dialog utility, foundation D: for Menuconfig's lxdialog. +N: David van Leeuwen +E: david@tm.tno.nl +D: Philips/LMS cm206 cdrom driver, generic cdrom driver +S: Scheltemalaan 14 +S: 3817 KS Amersfoort +S: The Netherlands + N: Volker Lendecke E: lendecke@namu01.Num.Math.Uni-Goettingen.de D: Kernel smbfs (to mount WfW, NT and OS/2 network drives.) @@ -777,7 +822,8 @@ N: Hans Lermen E: lermen@elserv.ffm.fgan.de -D: Author of the LOADLIN Linux loader +D: Author of the LOADLIN Linux loader, hacking on boot stuff +D: Co-ordinator of DOSEMU releases S: Am Muehlenweg 38 S: D53424 Remagen S: Germany @@ -839,7 +885,7 @@ N: James B. MacLean E: macleajb@ednet.ns.ca W: http://www.ednet.ns.ca/~macleajb/dosemu.html -D: Coordinator of DOSEMU releases +D: Former Co-ordinator of DOSEMU releases D: Program in DOSEMU S: PO BOX 220, HFX. CENTRAL S: Halifax, Nova Scotia @@ -855,8 +901,9 @@ N: Martin Mares E: mj@k332.feld.cvut.cz +W: http://atrey.karlin.mff.cuni.cz/~mj/ D: BIOS video mode handling code -D: Miscellaneous kernel fixes +D: Miscellaneous kernel fixes and hacks D: MOXA C-218 serial board driver D: BOOTP support S: Kankovskeho 1241 @@ -919,11 +966,8 @@ S: LS2 7PS, UK N: Craig Metz -E: cmetz@tjhsst.edu -D: Some of PAS 16 mixer & PCM support -S: 12305 Country Ridge Lane -S: Fairfax, Virginia 22033 -S: USA +E: cmetz@inner.net +D: Some of PAS 16 mixer & PCM support, inet6-apps N: William (Bill) Metzenthen E: billm@suburbia.net @@ -952,7 +996,7 @@ S: USA N: Rick Miller -E: rdmiller@execpc.com +E: rick@digalogsys.com D: Original Linux Device Registrar (Major/minor numbers), au-play, bwBASIC S: S78 W16203 Woods Road S: Muskego, Wisconsin 53150 @@ -1006,8 +1050,8 @@ N: Jonathan Naylor E: jsn@cs.nott.ac.uk E: g4klx@amsat.org -E: G4KLX@GB7DAD (Packet Radio) -D: AX.25 and NET/ROM protocol suites +D: AX.25, NET/ROM and ROSE amateur radio protocol suites +D: CCITT X.25 PLP and LAPB. S: 24 Castle View Drive S: Cromford S: Matlock @@ -1047,6 +1091,21 @@ E: greg@caldera.com D: IPX development and support +N: Barak A. Pearlmutter +E: bap@cs.unm.edu +W: http://www.cs.unm.edu/~bap/ +P: 512/602D785D 9B A1 83 CD EE CB AD 93 20 C6 4C B7 F5 E9 60 D4 +D: Author of mark-and-sweep GC integrated by Alan Cox +S: Computer Science Department +S: FEC 313 +S: University of New Mexico +S: Albuquerque, NM 87131 +S: USA + +N: David Parsons +E: orc@pell.chi.il.us +D: improved memory detection code. + N: Avery Pennarun E: apenwarr@foxnet.net D: ARCnet driver @@ -1117,6 +1176,12 @@ S: 79539 Loerrach S: Germany +N: Joerg Reuter +E: jreuter@lykos.oche.de +E: dl1bke@db0pra.ampr.org +D: Generic Z8530 driver, AX.25 DAMA slave implementation +D: Several AX.25 hacks + N: William E. Roadcap E: roadcapw@cfw.com W: http://www.cfw.com/~roadcapw @@ -1125,6 +1190,11 @@ S: Waynesboro, Virginia 22980 S: USA +N: Andrew J. Robinson +E: arobinso@nyx.net +W: http://www.nyx.net/~arobinso +D: Hayes ESP serial port driver + N: Florian La Roche E: rzsfl@rz.uni-sb.de E: flla@stud.uni-sb.de @@ -1154,7 +1224,8 @@ N: Thomas Sailer E: sailer@ife.ee.ethz.ch -D: Baycom radio modem driver +E: HB9JNX@HB9W.CHE.EU (packet radio) +D: Baycom and Soundcard radio modem driver S: Weinbergstrasse 76 S: 8408 Winterthur S: Switzerland @@ -1319,10 +1390,10 @@ E: Linus.Torvalds@Helsinki.FI W: http://www.cs.helsinki.fi/~torvalds/ P: 1024/A86B35C5 96 54 50 29 EC 11 44 7A BE 67 3C 24 03 13 62 C8 -D: General kernel hacker -S: Kalevankatu 55 B 37 -S: 00180 Helsinki -S: Finland +D: Original kernel hacker +S: 3665 Benton Street #36 +S: Santa Clara, California 95051 +S: USA N: Jeff Tranter E: Jeff_Tranter@Mitel.COM @@ -1448,6 +1519,13 @@ S: 1098 VA Amsterdam S: The Netherlands +N: Tim Waugh +E: tmw20@cyberelk.demon.co.uk +D: Co-architect of the parallel-port sharing system +S: 51 Frensham Road +S: Southsea +S: Hampshire, UK. PO4 8AE + N: Juergen Weigert E: jnweiger@immd4.informatik.uni-erlangen.de D: The Linux Support Team Erlangen @@ -1525,7 +1603,7 @@ N: Frank Xia E: qx@math.columbia.edu -D: Xiafs filesystem +D: Xiafs filesystem [defunct] S: 542 West 112th Street, 5N S: New York, New York 10025 S: USA diff -ur --new-file old/linux/Documentation/00-INDEX new/linux/Documentation/00-INDEX --- old/linux/Documentation/00-INDEX Thu Jun 6 13:57:43 1996 +++ new/linux/Documentation/00-INDEX Mon May 12 19:35:37 1997 @@ -1,8 +1,8 @@ This is a brief list of all the files in ./linux/Documentation and what they contain. If you add a documentation file, please list it here in -alphabetical order as well. Note that subdirectories have their own -index files too. - Thanks -- Paul. +alphabetical order as well, or risk being hunted down like a rabid dog. +Note that subdirectories have their own index files too. + Thanks -- Paul G. 00-INDEX - this file. @@ -14,6 +14,8 @@ - how the boss likes the C code in the kernel to look. Configure.help - text file that is used for help when you run "make config" +IO-mapping.txt + - how to access I/O mapped memory from within device drivers. SMP.txt - notes, and "To Fix" list for multi-processor Linux. (see smp.tex) cdrom/ @@ -24,6 +26,12 @@ - plain ASCII listing of all the nodes in /dev/ with major minor #'s digiboard.txt - info on the Digiboard PC/X{i,e,eve} multiport boards. +digiepca.txt + - info on Digi Intl. {PC,PCI,EISA}Xx and Xem series cards. +exception.txt + - how linux v2.1 handles exceptions without verify_area etc. +ez.txt + - documentation for the SyQuest parallel port EZ drive support. filesystems/ - directory with info on the various filesystems that Linux supports. ide.txt @@ -38,10 +46,18 @@ - info on the in-kernel binary support for Java(tm) locks.txt - info on file locking implementations, flock() vs. fcntl(), etc. +logo.gif + - Full colour GIF image of Linux logo (penguin) +logo.txt + - Info on creator of above logo & site to get additional images from. magic-number.txt - list of magic numbers used to mark/protect kernel data structures. mandatory.txt - info on the linux implementation of Sys V mandatory file locking. +memory.txt + - info on typical Linux memory problems. +mca.txt + - info on supporting Micro Channel Architecture (e.g. PS/2) systems. modules.txt - short guide on how to make kernel parts into loadable modules networking/ @@ -66,4 +82,7 @@ - info on the Unicode character/font mapping used in Linux. watchdog.txt - how to auto-reboot Linux if it has "fallen and can't get up". ;-) +xterm-linux.xpm + - XPM image of penguin logo (see logo.txt) sitting on an xterm. + diff -ur --new-file old/linux/Documentation/Changes new/linux/Documentation/Changes --- old/linux/Documentation/Changes Thu Oct 17 15:20:29 1996 +++ new/linux/Documentation/Changes Tue May 13 05:47:22 1997 @@ -1,584 +1,182 @@ Intro ===== -This document contains a list of the latest stable releases of the most -important packages for Linux as well as instructions for newcomers to -the 2.0.x series of kernels. By glancing through it, you should be -able to find out what you need to upgrade in order to successfully run -the latest kernels. - - It was originally based on material from the linux-kernel mailing -list, Jared Mauch's web page "Software Victims of the 1.3 Kernel -Development" (http://www2.nether.net/~jared/victim.html), and Axel -Boldt's (boldt@math.ucsb.edu) Configure.help file, among other sources, -and was originally written and maintained by Alessandro Sigala -(ssigala@globalnet.it). - - There is now a web page based on this material, thanks to John -Taylor. Check out http://www.cviog.uga.edu/LinuxBleed.html if you -prefer a HTML-ized shopping list. - - Para aquellos que prefieran una version en castellano de este -documento, consultad la traduccion de Alfredo Sanjuan en -http://slug.ctv.es/~alfredo/Cambios.html (Spanish translation). - - Akik magyarul szeretnenek olvasni az uj kernellel kapcsolatos -valtozasokrol, az alabbi cimen megtalaljak Nyitrai Tamas forditasat: -http://www.datanet.hu/generations/linux/newkernel.html (Hungarian -translation). - - Tamas also maintains a version of this file at -http://www.datanet.hu/generations/linux/Changes.html (English version). - - For people who prefer Japanese (thanks to Mitsuhiro Kojima): Kono -bunshou no nihongo ban wa -http://jf.gee.kyoto-u.ac.jp/JF/v2.0/Changes-2.0.html ni arimasu. +This document is designed to provide a list of the minimum levels of +software necessary to run the 2.1.x kernels, as well as provide brief +instructions regarding any other "Gotchas" users may encounter when +trying life on the Bleeding Edge. If upgrading from a pre-2.0.x +kernel, please consult the Changes file included with 2.0.x kernels for +additional information; most of that information will not be repeated +here. Basically, this document assumes that your system is already +functional and running at least 2.0.x. + + It is originally based on my "Changes" file for 2.0.x kernels and +therefore owes credit to the same people as that file (Jared Mauch, +Axel Boldt, Alessandro Sigala, and countless other users all over the +'net). Please feel free to submit changes, corrections, gripes, +flames, money, etc. to me (gt1355b@prism.gatech.edu). If you do so, +you don't need to bother doing so in the form of a diff, as this is +generated by texinfo so a diff is useless anyway (though I can +incorporate one by hand if you insist upon sending it that way ;-). + + Check out http://www.cviog.uga.edu/Misc/info/LinuxBleed.html for an +HTML-ized shopping list. + + For those of you in Europe, +http://www.datanet.hu/generations/linux/Changes2.html is an +English-language HTML version. -Last updated: October 12, 1996. + Also, don't forget http://www.linuxhq.com/ for all your Linux kernel +needs. + +Last updated: May 12, 1997. Current Author: Chris Ricker (gt1355b@prism.gatech.edu). -Current Releases -**************** +Current Minimal Requirements +**************************** + + Upgrade to at *least* these software revisions before thinking you've +encountered a bug! -- Kernel modules 2.0.0 -- PPP daemon 2.2.0f -- Dynamic linker (ld.so) 1.7.14 -- GNU CC 2.7.2 -- Binutils 2.7.0.3 -- Linux C Library Stable: 5.2.18, Beta: 5.3.12 / 5.4.7 -- Linux C++ Library 2.7.1.4 -- Termcap 2.0.8 +- Kernel modules modutils-2.1.34 +- Gnu C 2.7.2.1 +- Binutils 2.8.0.3 +- Linux C Library 5.4.23 +- Dynamic Linker (ld.so) 1.8.5 +- Linux C++ Library 2.7.2.1 - Procps 1.01 -- Gpm 1.10 -- SysVinit 2.64 -- Util-linux 2.5 -- Mount 2.5k -- Net-tools 1.32-alpha -- Kbd 0.91 +- Mount 2.6g +- Net-tools 1.41 +- Loadlin 1.6a +- Sh-utils 1.16 +- Autofs 0.3.0 +- NFS 0.4.21 Upgrade notes ************* -Network errors with recent kernels -================================== - - Many default network scripts are set up to add a route to the -localhost at 127.0.0.1 at startup. However, they do this incorrectly. -To fix the error, which is now spotted by the kernel (causing many -daemons to quit working), look for a line like `route add -net -127.0.0.1' in your network configuration files and change it to `route -add -net 127.0.0.0'. - - This error is present in all Red Hat distributions (and derivative -distributions like Caldera). If you're running one of these, edit -/etc/sysconfig/network-scripts/ifup-lo, changing the line `route add --net $(IPADDR)' to `route add -net 127.0.0.0' and you should be fine. -The new Red Hat 4.0 (Colgate) distribution does not have this problem. - - People have also reported problems due to the naming of the dummy -network interface driver. If the dummy driver is compiled into the -kernel, its name is "dummy." If the dummy driver is compiled as a -module, its name is "dummy0." Furthermore, more than one dummy driver -can be loaded if compiled as a module. Each subsequent loading of the -driver adds a new dummy interface whose name is incremented by one -("dummy1," "dummy2," etc.). - -Booting Changes -=============== - - The boot support in 2.0.x (for arch/i386) has been enhanced so that -it now can load bigger kernels (bzImage) and that the loaders now can -load an initial ramdisk (initrd). For initrd see -Documentation/initrd.txt. For building bigger kernels use one of the -following make targets: bzImage, bzlilo, bzdisk (equivalent to make -targets zImage, zlilo, and zdisk respectively). If you want or need to -use the new features you'll need to upgrade your bootloaders. Lilo can -be found at ftp://lrcftp.epfl.ch/pub/linux/local/lilo/lilo.19.tar.gz. -LOADLIN is at -ftp://sunsite.unc.edu/pub/Linux/system/Linux-boot/lodlin16.tgz. If -you're using more unusual loaders like SysLinux or etherboot, the -latest versions are 1.3 and 2.0, respectively. - - Ramdisk support does not work with the latest kernels if ramdisk=0 -option is present. Many older distributions (mainly Slackware) have -this option in their lilo.config file. Comment it out and re-run lilo -if you need ramdisks. - - The definition of SIOCSARP in /usr/include/linux/sockios.h was -changed. This means bootpd has to be re-compiled in order to work. - - The kernel reboot method is now, by default, a cold reboot so that -the kernel will work on systems that don't support other methods. If -you want to be able to do a warm reboot, add a reboot=warm option to -lilo.conf. - -The Linux C Library +General Information =================== - The latest stable Linux C Library release is 5.2.18. If you upgrade -to this from 5.0.9 or earlier, be sure to read the -`release.libc-5.2.18' file, since GNU make and a few other fairly -important utils can be broken by the upgrade. - - The current (beta) Linux C Library release is 5.3.12. In this -release there are some important changes that may cause troubles to -buggy programs (programs that call free() on a pointer not returned by -malloc() work with previous libc, but not with this release) so read the -`release.libc-5.3.12' file carefully! In the latest libc releases a -dirent bug, which erroneously defined d->reclen to d->namlen if USE_GNU -was defined, has been fixed. Unfortunately, some GNU packages depend -on this bug. GNU make 3.xx is one of them. To fix that you need to -patch and recompile those programs (a patch for make is included in the -file `release.libc-.5.3.9', and the address to obtain a precompiled -binary is at the end of this file). - - Also, the libc-5.3.x line has a known security hole relating to -rlogin. Libc-5.3.12 fixes this, so if you're going to run an -experimental libc, be sure to upgrade to 5.3.12. Libc-5.4.7 is -currently available as well, but it has a few problems of its own (a -few missing symbols, for example, that will break existing apps). - - If you're getting an error message that is something to the effect of - - `fcntl_setlk() called by process 123 with broken flock() emulation' - - then you need to upgrade to at least libc-5.2.18 as well. A proper -(in other words, BSD-style ;-) flock system call was added to 2.0.x, -and older libc's will now give this error. It doesn't *really* matter, -so you can just ignore it. If it really annoys you, upgrade libc (and -recompile any static binaries you might have that are linked against -the old libc). If you're feeling lazy, just comment out - - ` printk(KERN_WARNING -"fcntl_setlk() called by process %d with broken flock() - emulation\n", current->pid);' - - in linux/fs/locks.c and recompile. If you're still running a.out, -there's an unofficial libc-4.7.6 release out to which you can upgrade -to fix this problem. Libc is available from -ftp://sunsite.unc.edu/pub/Linux/GCC/. - -GCC Signal 11 error -=================== - - Many people have been reporting messages like the following, -especially when compiling a new kernel: - - `gcc: Internal compiler error: program cc1 got fatal signal 11'. - - This is NOT a kernel bug. Rather, these messages are generally -caused by hardware problems. See http://www.bitwizard.nl/sig11/ for -the sig11 FAQ. - - On the other hand, if you're using a gcc patched for Pentium -optimization and are getting these errors, downgrade to a standard GNU -gcc before assuming your hardware (or the kernel) is to blame. - - On a related note, if you get random OOPses that don't seem to be -related to anything and you have a motherboard with APM support, try -disabling the APM support and/or compiling the kernel with APM support. - -Procps utilities -================ - - Due to changes in the structure of the /proc filesystem, you need to -upgrade procps to the latest release, currently 1.01. Otherwise, -you'll get floating point errors with some ps commands or other similar -surprises. Grab -ftp://sunsite.unc.edu/pub/Linux/system/Status/ps/procps-1.01.tgz. - -Kernel Modules -============== - - Almost all drivers in 2.0.x can be modules, and kerneld is now -incorporated into the kernel. To take advantage of this, you'll need -the latest version of the module support apps. These are available at -http://www.pi.se/blox/modules/modules-2.0.0.tar.gz. Note: If you try to -load a module and get a message like - - `gcc2_compiled, undefined Failed to load module! The symbols from -kernel 1.3.foo don't match 1.3.foo' - - where `foo' is a number for a recent kernel, then it's definitely -time to upgrade module utilities. - - Another little tip: you can't have both a.out *and* ELF support -compiled as modules. Otherwise, you get a nice Catch-22 when you try -to run insmod to install a.out/ELF support so you can run insmod ;-). -If you have an all-ELF system, but need a.out for the occasional legacy -app, then you can do a.out support as a module. Otherwise, you should -probably leave it in the kernel, and if you haven't gone ELF yet, you -can probably say no to ELF support. Similarly, any partitions that you -have to mount at startup have to have their necessary file system and -device drivers compiled into the kernel, so don't get grandiose ideas -about going completely modular and then forget to compile ext2fs -support and ide/SCSI drive support into your kernel ;-). - -Kernel messages -=============== - - Kernel messages without a specific log level use the kernel's -default log level. In 1.2 kernels, the default log level was 6 -(information), while in 2.0.x kernels it is 4 (warning). Adjust your -configuration of syslogd appropriately (or edit printk.c in the kernel -source ;-). - -PPP driver -========== - - You need to be running a pppd from ppp-2.2.0.tar.gz or greater. The -latest stable release is 2.2.0f and is available at -ftp://sunsite.unc.edu/pub/Linux/system/Network/serial/ppp/ppp-2.2.0f.tar.gz. - -Named pipes (SysVinit) -====================== - - Linux's handling of named pipes changed (it now does it The Right Way -instead of the SunOS way ;-). This broke some programs that depended -on the SunOS behavior, most notably SysVinit. If you're running 2.59 -or earlier, you will probably get a weird error on shutdown in which -your computer shuts down fine but "INIT: error reading initrequest" or -words to that effect scroll across your screen hundreds of times. To -fix, upgrade to -ftp://sunsite.unc.edu/pub/Linux/system/Daemons/init/sysvinit-2.64.tar.gz. - - If you're trying to run NCSA httpd, you might have problems with -pre-spawning daemons. Upgrade to the latest release (1.5.2), available -from http://hoohoo.ncsa.uiuc.edu/ or check out Apache -(http://www.apache.org/). - - The new named pipe behavior also causes problems with Hylafax. If -you're running the hylafax daemon, it will just keep eating up CPU time -until you have no idle time free. To fix this, edit port.h included -with the Hylafax distribution and change the line - - CONFIG_OPENFIFO="O_RDONLY" - - to - - CONFIG_OPENFIFO="O_RDWR" - - A similar method (finding all named pipes opened read-only and -changing them to read-write) will fix any program that is broken -because of this change. - -File Locking (Sendmail) -======================= - - As of pre2.0.6 (aka 1.99.6), mixed-style file locking is no longer -allowed. For example, a file cannot be simultaneously locked with -`flock' and `fcntl'. See Documentation/locks.txt for all the gory -details. Among the programs this has impacted are older sendmails. If -you get a message that sendmail cannot lock aliases.dir (or other -files), you'll need to upgrade to at least 8.7.x. The latest sendmail -is at ftp://ftp.cs.berkeley.edu/ucb/src/sendmail/sendmail.8.7.5.tar.gz. - -Uugetty -======= - - Older uugettys will not allow use of a bidirectional serial line. To -fix this problem, upgrade to -ftp://sunsite.unc.edu/pub/Linux/system/Serial/getty_ps-2.0.7i.tar.gz. - -Kbd -=== - - For those of you needing non-ASCII character/font support, you should -upgrade to ftp.funet.fi:/pub/OS/Linux/PEOPLE/Linus/kbd-0.91.tar.gz. - -Mount -===== - - The mount util is distributed as part of util-linux, which is -currently at release 2.5. Some may find, especially when using the -loop or xiafs file system, NFS, or automounting, that they need to -upgrade to the latest release of mount, available from -ftp://ftp.win.tue.nl/pub/linux/util/mount-2.5k.tar.gz. - -Console -======= - - The Linux console type has changed. If your setup is old enough -that you have problems, you'll need to update your termcap. To fix, -add linux to one of the types in /etc/termcap or snoop around -http://www.ccil.org/~esr/ncurses.html (reputedly the latest universal -termcap maintainer). You may also need to update terminfo by running -the following as root: - - ln -s /usr/lib/terminfo/l/linux /usr/lib/terminfo/c/console - - Better yet, just get the latest official Linux termcap from -ftp://sunsite.unc.edu/pub/Linux/GCC/termcap-2.0.8.tar.gz. If you -upgrade to this release read the `README' file contained into the -package to get some important information about the `tgetent' function -changes! Note that there is now a fixed version at -ftp://sunsite.unc.edu/pub/Linux/GCC/termcap-2.0.8.fix. If some of your -apps complain that termcap entries are too long and you don't need some -of the more esoteric terms in the standard 2.0.8 termcap, just download -termcap-2.0.8.fix and move it to /etc/termcap. - - Also, the console driver is now responsible for keeping track of -correspondence between character codes and glyph bitmaps. If you -encounter problems, try `loadunimap def' to get back the default -correspondence. - -Hdparm -====== - - Hdparm has been upgraded to take advantage of the latest features of -the kernel drivers. The latest non-beta version can be found at -ftp://sunsite.unc.edu/pub/Linux/kernel/patches/diskdrives/hdparm-3.1.tar.gz. - -IP Accounting -============= - - All IP packets coming in or going out via one of the network -interfaces are now passing the accounting chain. So, packets being -forwarded are passing this chain twice. Since pre2.0.7 (aka 1.99.7), -accounting rules can be defined so that they will only match in one -direction (either incoming or outgoing). - - There also exists a possibility to match on device names and/or -device addresses, so that only packets coming in/going out via that -device (network interface) match with a rule. You'll need to get -ipfwadm from ftp://ftp.xos.nl/pub/linux/ipfwadm/ipfwadm-2.3.0.tar.gz to -use this. - -IP Firewalls -============ - - The IP firewall code has been changed drastically for 2.0.x. There -are now 3 categories of firewall rules: one for incoming packets, one -for outgoing packets, and one for packets being forwarded. There also -exists a possibility to match on device names and/or device addresses, -so that only packets coming in/going out via that device (network -interface) match with a rule. This is especially useful to prevent -spoofing. You'll need to get -ftp://ftp.xos.nl/pub/linux/ipfwadm/ipfwadm-2.3.0.tar.gz to use this. - -IP Masquerading -=============== - - IP masquerading is now part of the standard kernel. However, you -always need to load separate modules (ip_masq_ftp.o and/or -ip_masq_irc.o) if you are going to use FTP or IRC in combination with -masquerading. You'll need to get -ftp://ftp.xos.nl/pub/linux/ipfwadm/ipfwadm-2.3.0.tar.gz to use this. - -ISDN support -============ - - The new kernels support ISDN. You'll need ISDN utils available from -ftp://ftp.franken.de/pub/isdn4linux/v2.0/isdn4k-utils-2.0.tar.gz to try -this. - -Frame Relay -=========== - - Frame relay support for Linux is now available as well. Currently, -only Sangoma cards are supported, but the interface is such that others -will be as drivers become available. To use this, grab -ftp://linux.invlogic.com/pub/fr/frad-0.15.tgz (soon to be -frad-0.20.tgz). Another package of interest is -ftp://linux.invlogic.com/pub/routing/routing.tgz (which allows Linux to -make routing decisions based on packet source). - -Networking -========== - - Some of the /proc/net entries have changed. You'll need to upgrade -to the latest net-tools in -ftp://ftp.inka.de/pub/comp/Linux/networking/NetTools/, where the latest -is currently net-tools-1.32-alpha.tar.gz. See -http://www.inka.de/sites/lina/linux/NetTools/index_en.html for more -information. Note that there is currently no ipfw (which is part of -net-tools) which works with 2.0.x kernels. If you need its functions, -learn how to use ipfwadm or patch ipfw to get it to work (ipfw's current -maintainer does not currently have time to fix it). + now performs a cold reboot instead of a warm reboot +for increased hardware compatibility. If you want a warm reboot and +know it works on your hardware, add a "reboot=warm" command line option +in Lilo. A small number of machines need "reboot=bios" to reboot via +the BIOS. -Xntpd -===== - - Older versions of xntpd will not work with the latest kernels. -Upgrade to xntp3.5f.tar.Z, available from -ftp://louie.udel.edu/pub/ntp/xntp3.5f.tar.Z. - -Sound driver -============ - - The sound driver was upgraded in the 2.0.x kernels, breaking vplay. -To fix this problem, get a new version of the sndkit from -ftp://ftp.best.com/pub/front/tasd/snd-util-3.5.tar.gz. Some users -report that various other sound utils (cdd2wav-sbpcd, for example) need -to be recompiled before they will work with the new kernels. - -Tcsh +Libc ==== - If tcsh acts funny, get the source from -ftp://anise.ee.cornell.edu/pub/tcsh and add #define SYSMALLOC in -config_f.h before recompiling tcsh. Binaries can be found in -ftp://sunsite.unc.edu/pub/Linux/system/Shells/ and a corrected one will -probably wind up there eventually. + Linux-2.1.x is ELF-only. You can still compile a.out apps if you +really want, but your kernel must be compiled ELF. If you can't +currently compile ELF, consult the ELF howto at +http://sunsite.unc.edu/mdw/HOWTO/ELF-HOWTO.html and upgrade your system +accordingly. + + For modules to work, you need to be running libc-5.4.x or greater. +Since updates to libc fix other problems as well (security flaws, for +example) and since 5.4.7 is missing a few needed symbols, try to get +the latest 5.4.x you can. Currently, libc-5.4.23 is the latest public +release. + + If you upgrade to libc-5.4.x, you also have to upgrade your dynamic +linker (ld.so) to at least 1.8.5, or all sorts of weirdness will +happen. Actually, ld.so-1.8.2 and later will work, but 1.8.5 is widely +available, so if you need to upgrade, use it. If you get a release +later than 1.8.5, avoid 1.8.10 as it introduces a few bugs that are +fixed in later releases. -Make -==== - - If make no longer works, you need to read the release notes for the -libc you upgraded to. The latest libc and release notes can be found at -ftp://tsx-11.mit.edu/pub/linux/packages/GCC. This is NOT an error due -to the kernel, though many people have mistakenly thought it is. When -you upgrade to libc-5.3.9, you have to patch make to get it to work. -All of this is documented in the release notes with libc. Upgrading -libc can also break xterm support. If it does, you need to recompile -xterm. - -Loop device -=========== - - 2.0.x kernels include loop device support which lets you mount a -file as a file system, which can allow for all sorts of cool things -like encrypted file systems and such. To use it, you'll need a -modified version of mount from -ftp://ftp.win.tue.nl/pub/linux/util/mount-2.5k.tar.gz; preliminary work -on encrypted file system support can be found in -ftp.funet.fi:/pub/Linux/BETA/loop/des.1.tar.gz. - -Multiple device -=============== +Modules +======= - Multiple device support (allowing you to group several partitions -into one logical device) has also been added. Check out -ftp://sweet-smoke.ufr-info-p7.ibp.fr/pub/Linux/md035.tar.gz to try this -out. + You need to upgrade to modutils-2.1.34 for kernels 2.1.34 and later. -Arp -=== +Binutils +======== - Arp daemon support has been added. Check out -http://www.loran.com/~layes/arpd/index.html for more info and -http://www.loran.com/~layes/arpd/arpd-1.0.2.tar.gz for a copy of arpd. + If you upgrade binutils, please read its accompanying release notes +to find out the proper way to upgrade it. No, the instruction to "rm +`which encaps`" is not a joke. -Quota +Gnu C ===== - Quota support has also been added. You need to get quotas-1.55 from -ftp://ftp.funet.fi/pub/Linux/kernel/src/subsystems/quota/all.tar.gz. You -may need to copy its mntent.h over to /usr/include/mntent.h to get it to -compile. + You need at least GCC 2.7.2 to compile the kernel. If you're +upgrading from an earlier release, you might as well get GCC 2.7.2.1, +the latest public release. If you already have GCC 2.7.2 on your +system, you don't have to upgrade just so the kernel will work (though +feel free to upgrade if you want the gcc bug fixes). -Process Accounting +Networking Changes ================== - Process accounting support has also been integrated into the new -kernels. To use this feature, you'll need to get -ftp://iguana.hut.fi/pub/linux/Kernel/process_accounting/acct_1.3.73.tar.gz. - -Bdflush and Updated -=================== + Please read Documentation/networking/routing.txt and +Documentation/networking/policy-routing.txt for more information about +changes in routing code. OSPF classes have been added, and interface +routes are generated automatically. + + If for some reason you need to override this automatic default +routing, you have to specify the complete route specification (netmask, +device, etc.) for the kernel to accept it. Consequently, you need to +either remove interface routes from your init scripts or add missing +information to them if you need to replace the automatic routes. + + Also note that some routes, such as loopback routes, do not show up +in some standard tools. Check in /proc/net/rt_local to verify their +presence. + + To turn on IP forwarding, issue the following command: echo 1 > +/proc/sys/net/ipv4/ip_forwarding + + To run bootpd, you'll need to issue the following command: echo 1 +>/proc/sys/net/ipv4/ip_boot_agent + + For support for new features like IPv6, upgrade to the latest +net-tools. + +Mount and network file systems +============================== + + The NFS code in the kernel is currently being revised, resulting in +much-improved performance. As a result, you'll need to upgrade mount +to a 2.6 release. Also, amd is being phased out in favor of the much +better autofs. You'll also have to get the appropriate utils to use +autofs as well as the new NFS utils. - Bdflush has also been integrated into the new kernels, so those of -you using it on older systems no longer need to hunt for the patches to -implement it once you upgrade to 2.0.x. You do still need to run the -update daemon, however. You should probably upgrade to the latest -updated, currently -ftp://sunsite.unc.edu/pub/Linux/system/Daemons/updated-1.2.tar.gz. This -(and later) versions will not spawn a bdflush daemon, since that is now -done by the kernel (kflushd). If you upgrade, be sure to leave update -in your init scripts and remove bdflush. - -APM support -=========== - - Advanced Power Management (APM) support has been added to the kernel -as well. APM, which is primarily of use in laptops, provides access to -battery status information and may help to conserve battery power. The -support files can be found in -ftp://tsx-11.mit.edu/pub/linux/packages/laptops/apm/apmd-2.4.tar.gz - -iBCS and Dosemu -=============== - - For a version of iBCS that works with 2.0.x kernels, grab -ftp://tsx-11.mit.edu/pub/linux/BETA/ibcs2/ibcs-2.0-960610.tar.gz +RPM +=== - For a version of Dosemu that works (well, at least as well as DOS -ever works ;-), get -ftp://tsx-11.mit.edu/pub/linux/ALPHA/dosemu/Development/dosemu-0.63.1.55.tgz -or check out http://www.ednet.ns.ca/auto/rddc. Be sure to follow the -instructions in README.newkernels about patching your include files, or -it will not compile. + If you run RedHat Linux or any other distribution that uses RPM, you +need to upgrade RPM to version 2.2.7 or later. -Mtools and Fdutils -================== +DOSEMU +====== - The floppy ioctl numbering scheme has changed for 2.0.x. For -backwards compatibility, the old system was supported through 1.3.x and -will generate a warning in 2.0. In 2.1.x, the old scheme will -disappear entirely. - - To avoid trouble (or at least annoying messages), you'll need to -recompile any programs which emit floppy ioctls, including mtools and -fdutils. For mtools, get -ftp://sunsite.unc.edu/pub/Linux/utils/disk-management/mtools-3.0.src.tar.gz -and for fdutils, get -ftp://sunsite.unc.edu/pub/Linux/system/Misc/fdutils-4.3.src.tar.gz. - - In the future, fdformat might disappear entirely, so get used to -using superformat instead. - -Cyclades Serial Driver -====================== - - The Cyclades driver has been changed so that the minor numbers start -at 0 instead of 32 (for example, ttyC0 should be major 19, minor 0 for -2.0.x kernels; in older kernels, it would have been major 19, minor -32). Use mknod or a sufficiently new version of MAKEDEV to fix this. - -NCR 53c810 SCSI Driver -====================== - - Drivers for this card are now included in the standard linux source. -However, they require Perl to be installed before they will compile. -As far as I know, this is the only code in the kernel source that -requires Perl to compile. If your kernel compile fails and you happen -to have included this driver in your configuration, make sure you have -Perl installed. + A new "stable" version of DOSEMU is available for 2.1.x kernels. +Upgrade to 0.66.1 or later. -Perl -==== +Loadlin +======= - While we're on the subject, changes made for the 2.0.x series cause -the connect() Perl (both 4 and 5) call to time out while connecting to -remote systems. The problem is not actually in the connect() call; -rather, the optional bind() call usually used with connect() causes the -problem. Remove the bind() call and your Perl scripts should connect. - - Also, Perl scripts using the readdir call now misbehave if you're -using an old version of Perl, due to changes in libc. Upgrade to a -more current Perl to avoid any unpleasantness. + Linux 2.1.22 and later releases use a new method of memory size +detection, requiring loadlin users to upgrade to loadlin-1.6a. -Groff -===== +Sh-utils +======== - Those of you running Slackware may experience weirdness with man -pages due to changes in groff. If your man pages display for - -when present at the end of a line, try setting an appropriate value -(many have reported success with "latin1", for example) for the -environmental variable LESSCHARSET. Another, and probably better, -solution is to edit the file /usr/lib/man.config and change all -`-Tlatin1' options to `-Tascii'. An alternate solution, for those of -you who can't reformat your man files in .../cat* directories is to -edit /usr/lib/man.config, setting the PAGER to `PAGER -(LESSCHARSET=latin1;export LESSCHARSET;/usr/bin/less -is)'. + As of Linux-2.1.26, the Configure script ("make config") has been +updated to be POSIX-compliant. As a result, your expr needs to be +updated. Use sh-utils 1.16 or later. -E2fsprogs -========= +Parallel Ports +============== - e2fsprogs 1.02 will work with the latest kernels, but it cannot be -compiled on them. If you need (or want) to compile your own copy, -you'll need to get the latest version, currently available at -ftp://tsx-11.mit.edu/pub/linux/packages/ext2fs/e2fsprogs-1.06.tar.gz. + As of 2.1.33, parallel port support can now by handled by the parport +driver. Be aware that with Plug-and-Play support turned on, your +parallel port may no longer be where you expect it; for example, LPT1 +(under DOS) was sometimes /dev/lp1 in Linux, but will probably be +/dev/lp0 with the new Plug-and-Play driver. If printing breaks with +the new driver, try checking your lpd configuration. How to know the version of the installed programs ************************************************* @@ -586,15 +184,18 @@ There are some simple methods useful to know the version of the installed programs and libraries. -GNU CC: gcc -v and gcc --version -PPP: pppd -h (wrong but it show the version) -Libc: ls -l /lib/libc.so.5 -Libc++: ls -l /usr/lib/libg++.so Binutils: ld -v -ldd: ldd -v and ldd -V -termcap: ls -l /lib/libtermcap.so.* -modules: insmod -V -procps: ps --version +Gnu C: gcc -v or gcc --version +Kbd: dumpkeys -h +Ld.so: ldd -v +Libc: ls -l /lib/libc.so.* +Libc++: ls -l /usr/lib/libg++.so.* +Modutils: insmod -V +Mount: mount --version +Net-tools: hostname -V +Procps: ps --version +RPM: rpm --version +Sh-utils: expr --v Where to get the files ********************** @@ -602,97 +203,123 @@ Binutils ======== -ftp://sunsite.unc.edu/pub/Linux/GCC/binutils-2.7.0.3.bin.tar.gz +The 2.8.0.3 release: +ftp://tsx-11.mit.edu/pub/linux/packages/GCC/binutils-2.8.0.3.bin.tar.gz +ftp://sunsite.unc.edu/pub/Linux/GCC/binutils-2.8.0.3.bin.tar.gz Installation notes: -ftp://sunsite.unc.edu/pub/Linux/GCC/release.binutils-2.7.0.3 +ftp://tsx-11.mit.edu/pub/linux/packages/GCC/release.binutils-2.8.0.3 +ftp://sunsite.unc.edu/pub/Linux/GCC/release.binutils-2.8.0.3 -GNU CC -====== +Gnu C +===== -ftp://sunsite.unc.edu/pub/Linux/GCC/gcc-2.7.2.bin.tar.gz +The 2.7.2.1 release: +ftp://tsx-11.mit.edu/pub/linux/packages/GCC/gcc-2.7.2.1.bin.tar.gz +ftp://sunsite.unc.edu/pub/Linux/GCC/gcc-2.7.2.1.bin.tar.gz Installation notes: -ftp://sunsite.unc.edu/pub/Linux/GCC/release.gcc-2.7.2 +ftp://tsx-11.mit.edu/pub/linux/packages/GCC/release.gcc-2.7.2.1 +ftp://sunsite.unc.edu/pub/Linux/GCC/release.gcc-2.7.2.1 Linux C Library =============== -The stable 5.2.18 release: -ftp://sunsite.unc.edu/pub/Linux/GCC/libc-5.2.18.bin.tar.gz -Installation notes for 5.2.18: -ftp://sunsite.unc.edu/pub/Linux/GCC/release.libc-5.2.18 - -The latest 5.3.12 release: -ftp://sunsite.unc.edu/pub/Linux/GCC/libc-5.3.12.bin.tar.gz -Installation notes for 5.3.12: -ftp://sunsite.unc.edu/pub/Linux/GCC/release.libc-5.3.12 - -Patched make sources: -ftp://sunsite.unc.edu/pub/Linux/devel/make/make-3.74.patched.tar.gz -Patched make binary: -ftp://sunsite.unc.edu/pub/Linux/devel/make/make-3.74-direntfix-elf.tgz +The 5.4.23 release: +ftp://tsx-11.mit.edu/pub/linux/packages/GCC/libc-5.4.23.bin.tar.gz +ftp://sunsite.unc.edu/pub/Linux/GCC/libc-5.4.23.bin.tar.gz +Installation notes for 5.4.23: +ftp://tsx-11.mit.edu/pub/linux/packages/GCC/release.libc-5.4.23 +ftp://sunsite.unc.edu/pub/Linux/GCC/release.libc-5.4.23 Linux C++ Library ================= -ftp://sunsite.unc.edu/pub/Linux/GCC/libg++-2.7.1.4.bin.tar.gz -ftp://sunsite.unc.edu/pub/Linux/GCC/libg++-2.7.1.3.bin.tar.gz +The 2.7.2.1 release: +ftp://tsx-11.mit.edu/pub/linux/packages/GCC/libg++-2.7.2.1.bin.tar.gz +ftp://sunsite.unc.edu/pub/Linux/GCC/libg++-2.7.2.1.bin.tar.gz Installation notes: -ftp://sunsite.unc.edu/pub/Linux/GCC/release.libg++-2.7.1.4 -ftp://sunsite.unc.edu/pub/Linux/GCC/release.libg++-2.7.1.3 -Use 2.7.13 with libc 5.2.18 and 2.7.14 with libc 5.3.12. +ftp://tsx-11.mit.edu/pub/linux/packages/GCC/release.libg++-2.7.2.1 +ftp://sunsite.unc.edu/pub/Linux/GCC/release.libg++-2.7.2.1 Dynamic Linker ============== -ftp://sunsite.unc.edu/pub/Linux/GCC/ld.so-1.7.14.tar.gz - -Termcap Library -=============== - -ftp://sunsite.unc.edu/pub/Linux/GCC/termcap-2.0.8.tar.gz +The 1.8.5 release: +ftp://tsx-11.mit.edu/pub/linux/packages/GCC/ld.so-1.8.5.tar.gz +ftp://sunsite.unc.edu/pub/Linux/GCC/ld.so-1.8.5.tar.gz Modules utilities ================= -The latest public release: -ftp://sunsite.unc.edu/pub/Linux/kernel/modules-2.0.0.tar.gz - -PPP Daemon and utilities -======================== - -The latest public release: -ftp://sunsite.unc.edu/pub/Linux/system/Network/serial/ppp/ppp-2.2.0f.tar.gz +The 2.1.34 release: +ftp://ftp.redhat.com/pub/alphabits/modutils-2.1.34.tar.gz +ftp://ftp.kernel.org/pub/linux/kernel/v2.1/modutils-2.1.34.tar.gz Procps utilities ================ -ftp://sunsite.unc.edu/pub/Linux/system/Status/ps/procps-1.01.tgz +The 1.01 release: +ftp://tsx-11.mit.edu/pub/linux/sources/usr.bin/procps-1.01.tgz +ftp://sunsite.unc.edu/pub/Linux/system/status/ps/procps-1.01.tgz -Gpm mouse utilities -=================== +RPM utilities +============= -ftp://iride.unipv.it/pub/gpm/gpm-1.10.tar.gz -ftp://sunsite.unc.edu/pub/Linux/system/Daemons/gpm-1.10.tar.gz +The 2.2.7 release for Intel: +ftp://ftp.redhat.com/pub/redhat/redhat-4.0/updates/i386/rpm-2.2.7-1.i386.rpm +ftp://ftp.redhat.com/pub/redhat/redhat-4.0/updates/i386/rpm-devel-2.2.7-1.i386.rpm +The 2.2.7 release for Alpha: +ftp://ftp.redhat.com/pub/redhat/redhat-4.0/updates/axp/rpm-2.2.7-1.axp.rpm +ftp://ftp.redhat.com/pub/redhat/redhat-4.0/updates/axp/rpm-devel-2.2.7-1.axp.rpm +The 2.2.7 release for SPARC: +ftp://ftp.redhat.com/pub/redhat/redhat-4.0/updates/i386/rpm-2.2.7-1.sparc.rpm +ftp://ftp.redhat.com/pub/redhat/redhat-4.0/updates/i386/rpm-devel-2.2.7-1.sparc.rpm -SysVinit utilities -================== +DOSEMU +====== -ftp://sunsite.unc.edu/pub/Linux/system/Daemons/init/sysvinit-2.64.tar.gz +The 0.66.1 release: +ftp://tsx-11.mit.edu/pub/linux/ALPHA/dosemu/dosemu0.66.1.tgz +ftp://sunsite.unc.edu/pub/Linux/system/emulators/dosemu0.66.1.tgz -Util-linux -========== +Loadlin +======= -ftp://sunsite.unc.edu/pub/Linux/system/Misc/util-linux-2.5.tar.gz +The 1.6a release: +ftp://ftp.suse.com/pub/loadlin/update-1.6a/loadlin.exe.gz +ftp://elserv.ffm.fgan.de/pub/linux/loadlin-1.6/update-1.6a/loadlin.exe.gz -Mtools +Sh-utils +======== + +The 1.16 release: +ftp://sunsite.unc.edu/pub/gnu/sh-utils-1.16.tar.gz +ftp://prep.ai.mit.edu/pub/gnu/sh-utils-1.16.tar.gz + +Mount +===== + +The 2.6g release: +ftp://ftp.win.tue.nl/pub/linux/util/mount-2.6g.tar.gz + +Autofs ====== -ftp://sunsite.unc.edu/pub/Linux/utils/disk-management/mtools-3.0.src.tar.gz +The 0.3.0 release: +ftp://ftp.kernel.org/pub/linux/daemons/autofs/autofs-0.3.0.tar.gz -Fdutils -======= +NFS +=== + +The 0.4.21 release: +ftp://ftp.mathematik.th-darmstadt.de/pub/linux/okir/linux-nfs-0.4.21.tar.gz +ftp://linux.nrao.edu/pub/people/okir/linux-nfs-0.4.21.tar.gz + +Net-tools +========= -ftp://sunsite.unc.edu/pub/Linux/system/Misc/fdutils-4.3.src.tar.gz +The 0.41 release: +ftp://ftp.london.uk.eu.org/pub/ipv6/net-tools-1.41.tar.gz +ftp://ftp.cs-ipv6.lancs.ac.uk/pub/Code/Linux/Net_Tools/net-tools-1.41.tar.gz Other Info ========== @@ -705,23 +332,15 @@ distribution), most of these are available in RPM format. Check around your favorite Red Hat mirror site before installing the non-RPM version. Remember, you might need to use the -force option to get the -upgrade to install. Almost everything you need is available in -ftp://ftp.redhat.com/pub/current/i386/updates/2.0-kernel/ and its -mirrors. +upgrade to install. ftp://ftp.redhat.com/pub/contrib/ will have almost +everything you need. For others, David Bourgin has put together a package of everything -necessary to quickly and easily upgrade to 2.0.x. See -ftp://ftp.wsc.com/pub/freeware/linux/update.linux/ for more information -and the files. This package also includes many bug-fixes, including -one for a recently discovered bug in sendmail-8.7.5 (just look at -/pub/freeware/linux/update.linux/updat2-0.addon1/sendmail-8.7.5a.tar.gz -if you only need the bug fix). There's also an alternate lightweight -termcap in the same directory that works well for many people. - -Please send info about any other packages that 2.0.x "broke" or about -any new features of 2.0.x that require extra or new packages for use to -Chris Ricker (gt1355b@prism.gatech.edu). I generate this from a -modified texinfo setup, so you don't need to bother generating a diff -against the current version before you send the additional information -to me. +necessary to quickly and easily upgrade to 2.1.x. See +ftp://ftp.wsc.com/pub/freeware/linux/update.linux/kernel-v2.1.x/ for +more information and the files. + +Please send info about any other packages that 2.1.x "broke" or about +any new features of 2.1.x that require extra or new packages for use to +Chris Ricker (gt1355b@prism.gatech.edu). diff -ur --new-file old/linux/Documentation/CodingStyle new/linux/Documentation/CodingStyle --- old/linux/Documentation/CodingStyle Thu Jan 4 06:43:40 1996 +++ new/linux/Documentation/CodingStyle Tue Sep 24 06:54:40 1996 @@ -183,14 +183,8 @@ "C mode with adjusted defaults for use with the Linux kernel." (interactive) (c-mode) - (setq c-indent-level 8) - (setq c-brace-imaginary-offset 0) - (setq c-brace-offset -8) - (setq c-argdecl-indent 8) - (setq c-label-offset -8) - (setq c-continued-statement-offset 8) - (setq indent-tabs-mode nil) - (setq tab-width 8)) + (c-set-style "K&R") + (setq c-basic-offset 8)) This will define the M-x linux-c-mode command. When hacking on a module, if you put the string -*- linux-c -*- somewhere on the first diff -ur --new-file old/linux/Documentation/Configure.help new/linux/Documentation/Configure.help --- old/linux/Documentation/Configure.help Thu Jul 10 18:26:34 1997 +++ new/linux/Documentation/Configure.help Mon May 12 19:35:37 1997 @@ -1,7 +1,8 @@ # Maintained by Axel Boldt (boldt@math.ucsb.edu) # # This version of the Linux kernel configuration help texts -# corresponds to the kernel versions 2.0.x. +# corresponds to the kernel versions 2.1.x. Be aware that these are +# development kernels and need not be completely stable. # # International versions of this file available on the WWW: # - http://jf.gee.kyoto-u.ac.jp/JF/JF-ftp/euc/Configure.help.euc @@ -9,33 +10,43 @@ # (tetsu@cauchy.nslab.ntt.jp). # - http://nevod.perm.su/service/linux/doc/kernel/Configure.help # is a Russian translation, maintained by kaf@linux.nevod.perm.su. +# - http://www.linux-kheops.com/traduc/kernels/ +# has a French translation of the whole kernel, including +# Configure.help. This is maintained by David Bourgin +# (dbourgin@wsc.com). # # Information about what a kernel is, what it does, how to patch and # compile it and much more is contained in the Kernel-HOWTO, available # via ftp (user: anonymous) from sunsite.unc.edu in the directory # /pub/Linux/docs/HOWTO. # -# Format of this file: descriptionvariablehelptext. -# If the question being documented is of type "choice", we list -# only the first occurring config variable. The help texts -# must not contain empty lines. No variable should occur twice; if it -# does, only the first occurrence will be used by Configure. The lines -# in a help text should be indented two positions. Lines starting with -# `#' are ignored. To be nice to menuconfig, limit your lines to 70 -# characters. Use emacs' kfill.el to edit this file or you lose. +# Format of this file: descriptionvariablehelptext. +# If the question being documented is of type "choice", we list only +# the first occurring config variable. The help texts must not contain +# empty lines. Order of the help texts does not matter, however, no +# variable should be documented twice: if it is, only the first +# occurrence will be used by Configure. It is not absolutely necessary +# that the one-line descriptions of the variables used here are +# exactly the same as the ones in the corresponding Config.in +# scripts. The lines in a help text should be indented two +# positions. Lines starting with `#' are ignored. To be nice to +# menuconfig, limit your lines to 70 characters. Use emacs' kfill.el +# to edit this file or you lose. # # If you add a help text to this file, please try to be as gentle as # possible. Don't use unexplained acronyms and generally write for the -# hypothetical user who has just bought a PC, removed Windows, -# installed Linux and is now recompiling the kernel for the first -# time. Tell them what to do if they're unsure. Technical information -# should go in a README in the Documentation directory. Mention all -# the relevant READMEs and HOWTOs in the help text. +# hypothetical ignorant but intelligent user who has just bought a PC, +# removed Windows, installed Linux and is now recompiling the kernel +# for the first time. Tell them what to do if they're +# unsure. Technical information should go in a README in the +# Documentation directory. Mention all the relevant READMEs and HOWTOs +# in the help text. # # All this was shamelessly stolen from several different sources. Many # thanks to all the contributors. Feel free to use these help texts # in your own kernel configuration tools. The texts are copyrighted -# (c) 1995,1996 by Axel Boldt and governed by the GNU Public License. +# (c) 1995-1997 by Axel Boldt and others and governed by the GNU +# Public License. Prompt for development and/or incomplete code/drivers CONFIG_EXPERIMENTAL @@ -49,14 +60,17 @@ avoid "Why doesn't this work?" type mail messages. However, active testing and use of these systems is welcomed. Just be aware that it may not meet the normal level of reliability or it may fail to work - in some special cases. Detailed bug reports from people familiar with - the kernel internals are usually welcomed by the developers. + in some special cases. Detailed bug reports from people familiar + with the kernel internals are usually welcomed by the developers + (before submitting bug reports, please read the documents README, + MAINTAINERS, Documentation/BUG-HUNTING, and + Documentation/oops-tracing.txt in the kernel source). Unless you intend to help test and develop a feature or driver that - falls into this category, or you have a situation that requires using - these features you should probably say N here, which will cause this - configure script to present you with fewer choices. If you say Y here, - you will be offered the choice of using features or drivers that are - currently considered to be in the alpha-test phase. + falls into this category, or you have a situation that requires + using these features you should probably say N here, which will + cause this configure script to present you with fewer choices. If + you say Y here, you will be offered the choice of using features or + drivers that are currently considered to be in the alpha-test phase. Kernel math emulation CONFIG_MATH_EMULATION @@ -65,83 +79,87 @@ a math coprocessor built in, 486SX and 386 do not, unless you added a 487DX or 387, respectively. (The messages during boot time can give you some hints here ["man dmesg"]) Everyone needs either a - coprocessor or this emulation. If you enable this emulation even + coprocessor or this emulation. If you say Y here even though you have a coprocessor, the coprocessor will be used nevertheless. (This behavior can be changed with the kernel command line option "no387", which comes handy if your coprocessor is - broken. See the documentation of your boot loader (lilo or loadlin) - about how to pass options to the kernel at boot time. The lilo - procedure is also explained in the SCSI-HOWTO, available via ftp - (user: anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO.) This - means that it is a good idea to say Y here if you intend to use this - kernel on different machines. More information about the internals - of Linux math coprocessor emulation can be found in - arch/i386/math-emu/README. If you are not sure, say Y; apart from - resulting in a 45kB bigger kernel, it won't hurt. + broken. Try "man bootparam" or see the documentation of your boot + loader (lilo or loadlin) about how to pass options to the kernel at + boot time. The lilo procedure is also explained in the SCSI-HOWTO, + available via ftp (user: anonymous) in + sunsite.unc.edu:/pub/Linux/docs/HOWTO.) This means that it is a good + idea to say Y here if you intend to use this kernel on different + machines. More information about the internals of Linux math + coprocessor emulation can be found in arch/i386/math-emu/README. If + you are not sure, say Y; apart from resulting in a 45kB bigger + kernel, it won't hurt. Normal floppy disk support CONFIG_BLK_DEV_FD If you want to use your floppy disk drive(s) under Linux, say Y. Information about this driver, especially important for IBM - Thinkpad users, is contained in drivers/block/README.fd. This - driver is also available as a module ( = code which can be inserted - in and removed from the running kernel whenever you want). If you - want to compile it as a module, say M here and read + Thinkpad users, is contained in drivers/block/README.fd. This file + also contains the location of the Floppy driver FAQ as well as + location of the fdutils package used to configure additional + parameters of the driver at run time. This driver is also available + as a module ( = code which can be inserted in and removed from the + running kernel whenever you want). The module will be called + floppy.o. If you want to compile it as a module, say M here and read Documentation/modules.txt. RAM disk support CONFIG_BLK_DEV_RAM - Enabling this option will allow you to use a portion of your RAM - memory as a block device, so that you can make filesystems on it, - read and write to it and do all the other things that normal block - devices (such as harddrives) can do. It is usually used to load and + Saying Y here will allow you to use a portion of your RAM memory as + a block device, so that you can make filesystems on it, read and + write to it and do all the other things that you can do with normal + block devices (such as harddrives). It is usually used to load and store a copy of a minimal root file system off of a floppy into RAM during the initial install of Linux. Note that the kernel command line option "ramdisk=XX" is now obsolete. For details, read Documentation/ramdisk.txt. If you want to compile this as a module ( = code which can be inserted in and removed from the running kernel - whenever you want), say M and read Documentation/modules.txt. Most - normal users won't need the RAM disk functionality, and can thus say - N here. + whenever you want), say M and read Documentation/modules.txt. The + module will be called rd.o. Most normal users won't need the RAM + disk functionality, and can thus say N here. Initial RAM disk (initrd) support CONFIG_BLK_DEV_INITRD The initial RAM disk is a RAM disk that is loaded by the boot loader - (LOADLIN or LILO) and that is mounted as root before the normal boot + (loadlin or lilo) and that is mounted as root before the normal boot procedure. It is typically used to load modules needed to mount the "real" root file system, etc. See Documentation/initrd.txt for details. Loop device support CONFIG_BLK_DEV_LOOP - Enabling this option will allow you to mount a file as a file - system. This is useful if you want to check an ISO9660 file system - before burning the CD, or want to use floppy images without first - writing them to floppy. This option also allows one to mount a - filesystem with encryption. To use these features, you need a - recent version of mount (check the file Documentation/Changes for - location and latest version). Note that this loop device has + Saying Y here will allow you to mount a file as a file system. This + is useful if you want to check an ISO9660 file system before burning + the CD, or want to use floppy images without first writing them to + floppy. This option also allows one to mount a filesystem with + encryption. To use these features, you need a recent version of + mount (available via ftp (user: anonymous) from + ftp.win.tue.nl/pub/linux/util/). Note that this loop device has nothing to do with the loopback device used for network connections from the machine to itself. Most users will answer N here. -Enhanced IDE/MFM/RLL disk/cdrom/tape support +Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support CONFIG_BLK_DEV_IDE This will use the full-featured IDE driver to control up to four IDE - interfaces, for a combination of up to eight IDE disk/cdrom/tape - drives. Useful information about large (>540MB) IDE disks, - soundcard IDE ports, and other topics, is all contained in - Documentation/ide.txt. If you have one or more IDE drives, say Y - here. If your system has no IDE drives, or if memory requirements - are really tight, you could say N here, and select the Old harddisk - driver instead to save about 13kB of memory in the kernel. To - fine-tune IDE drive/interface parameters for improved performance, - look for the hdparm package at + interfaces, for a combination of up to eight IDE + disk/cdrom/tape/floppy drives. Useful information about large + (>540MB) IDE disks, soundcard IDE ports, module support, and other + topics, is all contained in Documentation/ide.txt. If you have one + or more IDE drives, say Y here. If your system has no IDE drives, or + if memory requirements are really tight, you could say N here, and + select the Old harddisk driver instead to save about 13kB of memory + in the kernel. To fine-tune IDE drive/interface parameters for + improved performance, look for the hdparm package at sunsite.unc.edu:/pub/Linux/kernel/patches/diskdrives/ Old harddisk (MFM/RLL/IDE) driver CONFIG_BLK_DEV_HD_ONLY There are two drivers for MFM/RLL/IDE disks. Most people use the - newer enhanced driver, but the old one is still around for two + newer enhanced driver, but this old one is still around for two reasons. Some older systems have strange timing problems and seem to work only with the old driver (which itself does not work with some newer systems). The other reason is that the old driver is @@ -155,8 +173,8 @@ Use old disk-only driver on primary interface CONFIG_BLK_DEV_HD_IDE There are two drivers for MFM/RLL/IDE disks. Most people use just - the new enhanced driver by itself. This option installs the old - harddisk driver to control the primary IDE/disk interface in the + the new enhanced driver by itself. This option however installs the + old harddisk driver to control the primary IDE/disk interface in the system, leaving the new enhanced IDE driver take care of only the 2nd/3rd/4th IDE interfaces. Doing this will prevent you from having an IDE/ATAPI CDROM or tape drive connected to the primary IDE @@ -165,7 +183,19 @@ address (0x1f0), along with IDE drives at the secondary/3rd/4th port addresses. Normally, just say N here; you will then use the new driver for all 4 interfaces. - + +Include IDE/ATA-2 DISK support +CONFIG_BLK_DEV_IDEDISK + This will include enhanced support for MFM/RLL/IDE harddisks. If you + have a MFM/RLL/IDE disk, and there is no special reason to use the + old harddisk driver instead, say Y. If you want to compile this + driver as a module ( = code which can be inserted in and removed + from the running kernel whenever you want), say M here and read + Documentation/modules.txt. The module will be called ide-disk.o. Do + not compile this driver as a module if your root filesystem (the one + containing the directory /) is located on the IDE disk. If unsure, + say Y. + Include IDE/ATAPI CDROM support CONFIG_BLK_DEV_IDECD If you have a CDROM drive using the ATAPI protocol, say Y. ATAPI is @@ -173,31 +203,54 @@ SCSI protocol. Most new CDROM drives use ATAPI, including the NEC-260, Mitsumi FX400, Sony 55E, and just about all non-SCSI double(2X), quad(4X), and six(6X) speed drives. At boot time, the - TAPE drive will be identified along with other IDE devices, as "hdb" - or "hdc", or something similar. - If this is your only CDROM drive, you can say N to all other CDROM - options, but be sure to say Y to the ISO9660 filesystem. Read the - CDROM-HOWTO, available via ftp (user: anonymous) in + CDROM drive will be identified along with other IDE devices, as + "hdb" or "hdc", or something similar. If this is your only CDROM + drive, you can say N to all other CDROM options, but be sure to say + Y to "ISO9660 cdrom filesystem support". Read the CDROM-HOWTO, + available via ftp (user: anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO and the file Documentation/cdrom/ide-cd. Note that older versions of lilo (the linux boot loader) cannot properly deal with IDE/ATAPI CDROMs, so install lilo-16 or higher, available from - sunsite.unc.edu:/pub/Linux/system/Linux-boot/lilo. + sunsite.unc.edu:/pub/Linux/system/Linux-boot/lilo. If you want to + compile the driver as a module ( = code which can be inserted in and + removed from the running kernel whenever you want), say M here and + read Documentation/modules.txt. The module will be called ide-cd.o. Include IDE/ATAPI TAPE support CONFIG_BLK_DEV_IDETAPE If you have an IDE tape drive using the ATAPI protocol, say Y. - ATAPI is a new protocol used by IDE TAPE and ATAPI drives, - similar to the SCSI protocol. At boot time, the TAPE drive will - be identified along with other IDE devices, as "hdb" or "hdc", - or something similar. Be sure to consult the drivers/block/ide-tape.c - and Documentation/ide.txt files for usage information. - -Support removable IDE interfaces (PCMCIA) -CONFIG_BLK_DEV_IDE_PCMCIA - This option adds code to the IDE driver to handle hot insertion - and removal of IDE interfaces and drives, under direction of an - external utility (?). Normally, just say N here. + ATAPI is a new protocol used by IDE tape and CDROM drives, similar + to the SCSI protocol. At boot time, the tape drive will be + identified along with other IDE devices, as "hdb" or "hdc", or + something similar, and will be mapped to a character device such as + "ht0". Be sure to consult the drivers/block/ide-tape.c and + Documentation/ide.txt files for usage information. If you want to + compile the driver as a module ( = code which can be inserted in and + removed from the running kernel whenever you want), say M here and + read Documentation/modules.txt. The module will be called ide-tape.o. + +Include IDE/ATAPI FLOPPY support +CONFIG_BLK_DEV_IDEFLOPPY + If you have an IDE floppy drive which uses the ATAPI protocol, say + Y. Chances are that you don't, because these animals are rare. + ATAPI is a new protocol used by IDE CDROM/tape/floppy drives, + similar to the SCSI protocol. At boot time, the FLOPPY drive will + be identified along with other IDE devices, as "hdb" or "hdc", or + something similar. If you want to compile the driver as a module ( = + code which can be inserted in and removed from the running kernel + whenever you want), say M here and read Documentation/modules.txt. + The module will be called ide-floppy.o. + +SCSI emulation support +CONFIG_BLK_DEV_IDESCSI + This will provide SCSI host adapter emulation for IDE ATAPI devices, + and will allow you to use a SCSI device driver instead of a native + ATAPI driver. This is useful if you have an ATAPI device for which + no native driver has been written; you can then use this emulation + together with an appropriate SCSI device driver. If both this SCSI + emulation and native ATAPI support are compiled into the kernel, the + native support will be used. Normally, say N. CMD640 chipset bugfix/support CONFIG_BLK_DEV_CMD640 @@ -234,6 +287,18 @@ Linux. This may slow disk throughput by a few percent, but at least things will operate 100% reliably. If unsure, say Y. +Intel 82371 PIIX (Triton I/II) DMA support +CONFIG_BLK_DEV_TRITON + If your PCI system uses an IDE harddrive (as opposed to SCSI, say) + and includes the Intel Triton I/II IDE interface chipset (i82371FB, + i82371SB or i82371AB), you will want to enable this option to allow + use of bus-mastering DMA data transfers. Read the comments at the + beginning of drivers/block/triton.c and Documentation/ide.txt. + You can get the latest version of the hdparm utility via + ftp (user: anonymous) from + sunsite.unc.edu/pub/Linux/kernel/patches/diskdrives/; it is + used to tune your harddisk. It is safe to say Y to this question. + Other IDE chipset support CONFIG_IDE_CHIPSETS Say Y here if you want to include enhanced support for various IDE @@ -259,6 +324,18 @@ of the Holtek card, and permits faster I/O speeds to be set as well. See the Documentation/ide.txt and ht6560b.c files for more info. +PROMISE DC4030 support (EXPERIMENTAL) +CONFIG_BLK_DEV_PROMISE + This driver provides support for the second port and cache of + Promise IDE interfaces, e.g. DC4030 and DC5030. It is enabled at + kernel runtime using the "ide0=dc4030" kernel boot parameter. See + the file drivers/block/promise.c file for more info. + +OPTi 82C621 support (EXPERIMENTAL) +CONFIG_BLK_DEV_OPTI621 + This is a driver for the OPTi 82C621 EIDE controller. + Please read the comments at the top of drivers/block/opti621.c. + QDI QD6580 support CONFIG_BLK_DEV_QD6580 This driver is enabled at runtime using the "ide0=qd6580" kernel @@ -296,8 +373,18 @@ include a driver for these, say Y. If you want to compile the driver as a module ( = code which can be inserted in and removed from the running kernel whenever you want), say M here and read - Documentation/modules.txt. It's pretty unlikely that you have one of - these: say N. + Documentation/modules.txt. The module will be called xd.o. It's + pretty unlikely that you have one of these: say N. + +SyQuest EZ parallel port disk support +CONFIG_BLK_DEV_EZ + If you have a parallel port version of SyQuest's EZ135 or EZ230 + removable media devices you can use this driver. Answer Y to build + the driver into the kernel, or M if you would like to build it as a + loadable module. The module will be called ez.o. Read the file + linux/Documentation/ez.txt. If you have several different devices + that will share a common parallel port you should build them all as + modules. Multiple devices driver support CONFIG_BLK_DEV_MD @@ -310,23 +397,25 @@ Linear (append) mode CONFIG_MD_LINEAR - If you enable this, then your multiple devices driver will be able - to use the so-called linear mode, i.e. it will combine the harddisk + If you say Y here, then your multiple devices driver will be able to + use the so-called linear mode, i.e. it will combine the harddisk partitions by simply appending one to the other. If you want to compile this as a module ( = code which can be inserted in and removed from the running kernel whenever you want), say M here and - read Documentation/modules.txt. If unsure, say Y. + read Documentation/modules.txt. The module will be called + linear.o. If unsure, say Y. RAID-0 (striping) mode CONFIG_MD_STRIPED - If you enable this, then your multiple devices driver will be able - to use the so-called raid0 mode, i.e. it will combine the harddisk + If you say Y here, then your multiple devices driver will be able to + use the so-called raid0 mode, i.e. it will combine the harddisk partitions into one logical device in such a fashion as to fill them up evenly, one chunk here and one chunk there. This will increase the throughput rate if the partitions reside on distinct disks. If you want to compile this as a module ( = code which can be inserted in and removed from the running kernel whenever you want), say M - here and read Documentation/modules.txt. If unsure, say Y. + here and read Documentation/modules.txt. The module will be called + raid0.o. If unsure, say Y. Support for Deskstation RPC44 CONFIG_DESKSTATION_RPC44 @@ -401,40 +490,61 @@ Networking support CONFIG_NET Unless you really know what you are doing, you should say Y - here. The reason is that some programs need it even if you configure - a stand-alone machine that won't be connected to any other computer. - from an older kernel, you should consider updating your networking - tools too; read net/README for details. + here. The reason is that some programs need kernel networking + support even if you configure a stand-alone machine that won't be + connected to any other computer. If you are upgrading from an older + kernel, you should consider updating your networking tools too + because changes in the kernel and the tools often go hand in hand; + see http://www.inka.de/sites/lina/linux/NetTools/index_en.html for + details. Network aliasing CONFIG_NET_ALIAS - This is for setting multiple IP addresses on the same low-level - network device driver. Typically used for services that act - differently based on the address they listen on (e.g. "multihosting" - on Apache httpd) or for connecting to different logical networks - through the same physical interface. This is the generic part, - later when configuring network protocol options you will be asked - for protocol-specific aliasing support. See - Documentation/networking/alias.txt for more info. If you need this - feature (for any protocol, like IP) say Y; if unsure, say N. + This will allow you to set multiple network addresses on the same + low-level network device driver. Typically used for services that + act differently based on the address they listen on + (e.g. "multihosting" or "virtual domains" on the web server apache + and the ftp server wuftpd) or for connecting to different logical + networks through the same physical interface (most commonly an + ethernet networking card). This is the generic part, later when + configuring network protocol options you will be asked for + protocol-specific aliasing support, and you will have to say Y to at + least one of them. See Documentation/networking/alias.txt for more + info. If you need this feature (for any protocol, like IP) say Y; + if unsure, say N. Network firewalls CONFIG_FIREWALL A firewall is a computer which protects a local network from the - rest of the World: all traffic to and from computers on the local - net is inspected by the firewall first. If you want to configure - your Linux box as a firewall for a local network, say Y here. If - your local network is TCP/IP based, you will have to say Y to "IP: - firewalling", below. You also need to say Y here and enable "IP - firewalling" below in order to be able to use IP masquerading - (i.e. local computers can chat with an outside host, but that - outside host is made to think that it is talking to the firewall - box. Makes the local network completely invisible and avoids the - need to allocate valid IP host addresses for the machines on the - local net) or to use the ip packet accounting to see what is using - all your network bandwidth. Chances are that you should use this on - any machine being run as a router and not on a host. If unsure, say - N. + rest of the world: all traffic to and from computers on the local + net is inspected by the firewall first, and sometimes blocked. If + you want to configure your Linux box as a firewall for a local + network, say Y here. If your local network is TCP/IP based, you will + then also have to say Y to "IP: firewalling", below. + You also need to say Y here and say Y to "IP firewalling" below in + order to be able to use IP masquerading (i.e. local computers can + chat with an outside host, but that outside host is made to think + that it is talking to the firewall box -- makes the local network + completely invisible and avoids the need to allocate valid IP host + addresses for the machines on the local net) and IP packet + accounting (keeping track of what is using all your network + bandwidth) and IP transparent proxying (makes the computers on the + local network think they're talking to a remote computer, while in + reality the traffic is redirected by your Linux firewall to a local + proxy server). Chances are that you should use this on every machine + being run as a router and not on any regular host. If unsure, say N. + +Socket Security API Support (EXPERIMENTAL) +CONFIG_NET_SECURITY + Enable use of the socket security API. Note that Linux does not include + any security protocols currently and that this option only really supports + security on IPv4 links at the moment. + +Socket Security API Support (EXPERIMENTAL) +CONFIG_NET_SECURITY + Enable use of the socket security API. Note that Linux does not include + any security protocols currently and that this option only really supports + security on IPv4 links at the moment. Sun floppy controller support CONFIG_BLK_DEV_SUNFD @@ -452,7 +562,7 @@ choices: ** Avanti: This is for Mustang (AS200), M3 (AS250), Avanti (AS400) and XL (a.k.a. "Windows NT Dream Machine" :-) AlphaStations. - These usually come with a TGA graphics adaptor, so you'll want to + These usually come with a TGA graphics adapter, so you'll want to say Y to "TGA Console support", below, if you have one of these. ** Jensen: a.k.a. DEC 2000 a.k.a. DECpc AXP 150, the oldest Alpha PC; it sports an EISA bus. The boot process on Jensen machines is @@ -477,79 +587,98 @@ Machine") (as opposed to Mustang (AS200), M3 (AS250) or Avanti (AS400)), say Y, otherwise N. -Limit memory to low 16MB -CONFIG_MAX_16M - This is for some buggy motherboards which cannot properly deal with - the memory above 16MB. If you have more than 16MB of RAM and - experience weird problems, you might want to try Y, everyone else - says N. Note for machines with more that 64MB of RAM: in order for - the kernel to be able to use the memory above 64MB, pass the command - line option "mem=XXXM" (where XXX is the memory size in megabytes) - to your kernel during boot time. See the documentation of your boot - loader (lilo or loadlin) about how to pass options to the - kernel. The lilo procedure is also explained in the SCSI-HOWTO, - available via ftp (user: anonymous) in - sunsite.unc.edu:/pub/Linux/docs/HOWTO. You also need at least 512kB - of RAM cache if you have more than 64MB of RAM. Some other things - to try when experiencing seemingly random, "weird" problems: 1) - passing the "no-hlt" option to the kernel 2) passing the "no-387" - option to the kernel 3) passing the "mem=4M" option to the kernel - (thereby disabling all but the first 4M of RAM) 4) disabling the - cache from your BIOS settings 5) exchanging RAM chips 6) exchanging - the motherboard. - Using SRM as bootloader CONFIG_ALPHA_SRM There are two different types of booting firmware on Alphas: SRM, which is command line driven, and ARC, which uses menus and arrow keys. The usual way to load Linux on an Alpha machine is to use MILO (a bootloader that lets you pass command line parameters to the - kernel just like LILO does) which can be loaded either from ARC or - can be installed directly as a permanent firmware replacement from - floppy (which requires changing a certain jumper on the - motherboard). If you want to do either of these, say N here. If MILO - doesn't work on your system (true for Jensen motherboards), you can - bypass it altogether and boot Linux directly from an SRM console; - say Y here in order to do that. Note that you won't be able to boot - from an IDE disk using SRM. If unsure, say N. Details about the - Linux/Alpha booting process are contained in the Linux/Alpha FAQ, - accessible on the WWW from http://www.azstarnet.com/~axplinux/ (To - browse the WWW, you need to have access to a machine on the Internet - that has one of the programs lynx, netscape or Mosaic). + kernel just like lilo does for the 386 architecture) which can be + loaded either from ARC or can be installed directly as a permanent + firmware replacement from floppy (which requires changing a certain + jumper on the motherboard). If you want to do either of these, say N + here. If MILO doesn't work on your system (true for Jensen + motherboards), you can bypass it altogether and boot Linux directly + from an SRM console; say Y here in order to do that. Note that you + won't be able to boot from an IDE disk using SRM. If unsure, say + N. Details about the Linux/Alpha booting process are contained in + the Linux/Alpha FAQ, accessible on the WWW from + http://www.azstarnet.com/~axplinux/ (To browse the WWW, you need to + have access to a machine on the Internet that has one of the + programs lynx, netscape or Mosaic). -Echo console messages on /dev/ttyS1 -CONFIG_SERIAL_ECHO - If you enable this option, all kernel messages that would usually go - to the console will also be sent to the device /dev/ttyS1 which - corresponds to a serial port; this could be useful if you attached - a terminal or printer to that port. +Non-standard serial port support +CONFIG_SERIAL_NONSTANDARD + Say Y here if you have any non-standard serial boards --- boards + which aren't supported using the standard "dumb" serial driver. + This includes intelligent serial boards such as Cyclades, + Digiboards, etc. These are usually used for systems that need many + serial ports because they serve many terminals or dial-in + connections. Note that the answer to this question won't directly + affect the kernel: saying N will just cause this configure script to + skip all the questions about non-standard serial boards. Most people + can say N here. + +Extended dumb serial driver options +CONFIG_SERIAL_EXTENDED + If you wish to use any non-standard features of the standard "dumb" + driver, say Y here. This includes HUB6 support, shared serial + interrupts, special multiport support, support for more than the + four COM 1/2/3/4 boards, etc. Note that the answer to this question + won't directly affect the kernel: saying N will just cause this + configure script to skip all the questions about serial driver + options. If unsure, say N. + +Support more than 4 serial ports +CONFIG_SERIAL_MANY_PORTS + Enable this option if you have dumb serial boards other than the + four standard COM 1/2/3/4 ports. This may happen if you have an AST + FourPort, Accent Async, Boca, or other custom serial port hardware + which acts similar to standard serial port hardware. If you only + use the standard COM 1/2/3/4 ports, you can say N here to save some + memory. + +Support for sharing serial interrupts +CONFIG_SERIAL_SHARE_IRQ + Some serial boards have hardware support which allows multiple dumb + serial ports on the same board to share a single IRQ. To enable + support for this in the serial driver, say Y here. + +Support special multiport boards +CONFIG_SERIAL_MULTIPORT + Some multiport serial ports have special ports which are used to + signal when there are any serial ports on the board which need + servicing. Say Y here to enable the serial driver to take advantage + of those special I/O ports. + +Support the Bell Technologies HUB6 card +CONFIG_HUB6 + Say Y here to enable support in the dumb serial driver to support + the HUB6 card. TGA Console Support CONFIG_TGA_CONSOLE Many Alpha systems (e.g the Multia) are shipped with a graphics card that implements the TGA interface (much like the VGA standard, but - older TGA adaptors are *not* VGA compatible). On such systems, this - option needs to be enabled so that the TGA driver rather than the - standard VGA driver is used. Note that, at this time, there is no X - server for these systems. If unsure, try N. + older TGA adapters are *not* VGA compatible). On such systems, you + should say Y here so that the TGA driver rather than the standard + VGA driver is used. Note that, at this time, there is no X server + for these systems. If unsure, try N. PCI bios support CONFIG_PCI Find out whether you have a PCI motherboard. PCI is the name of a bus system, i.e. the way the CPU talks to the other stuff inside your box. Other bus systems are ISA, EISA, Microchannel (MCA) or - VESA. If you have PCI, say Y, otherwise N. Note1: MCA systems - (notably some IBM PS/2's) are not supported by the standard kernels, - but patches exist at - http://www.undergrad.math.uwaterloo.ca/~cpbeaure/mca-linux.html on - the WWW. Note2: some old PCI motherboards have BIOS bugs and may - crash if "PCI bios support" is enabled (but they run fine without - this option). The PCI-HOWTO, available via ftp (user: anonymous) in + VESA. If you have PCI, say Y, otherwise N. Note: some old PCI + motherboards have BIOS bugs and may crash if "PCI bios support" is + enabled (but they run fine without this option). The PCI-HOWTO, + available via ftp (user: anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO, contains valuable information about which PCI hardware does work under Linux and which doesn't. If some of your PCI devices don't work and you get a warning during boot time ("man dmesg"), please follow the instructions at the top - of include/linux/pci.h. + of include/linux/pci.h. PCI bridge optimization (experimental) CONFIG_PCI_OPTIMIZE @@ -557,21 +686,20 @@ certain BIOSes if your computer uses a PCI bus system. This is recommended; say Y. -Intel 82371 PIIX (Triton I/II) DMA support -CONFIG_BLK_DEV_TRITON - If your PCI system uses an IDE harddrive (as opposed to SCSI, say) - and includes the Intel 430FX PCI Triton chipset, you will want to - enable this option to allow use of bus-mastering DMA data transfers. - Read the comments at the beginning of drivers/block/triton.c. Check - the file Documentation/Changes for location and latest version of - the hdparm utility. It is safe to say Y to this question. +MCA support +CONFIG_MCA + MicroChannel Architecture is found in some IBM PS/2 machines and + laptops. It is a bus system similar to PCI or ISA. See + Documentation/mca.txt (and especially the web page given there) + before attempting to build an MCA bus kernel. Note that this is + still experimental code. System V IPC CONFIG_SYSVIPC Inter Process Communication is a suite of library functions and system calls which let processes (= running programs) synchronize and exchange information. It is generally considered to be a good thing, - and some programs won't run unless you enable this. In particular, + and some programs won't run unless you say Y here. In particular, if you want to run the DOS emulator dosemu under Linux (read the DOSEMU-HOWTO, available via ftp (user: anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO), you'll need to say Y here. You @@ -579,9 +707,21 @@ sunsite.unc.edu:/pub/Linux/docs/man/info.tar.gz (extract with "tar xzvf filename"). These docs are in the info format which is used to document GNU software and can be read from within emacs ("Ctrl-h i") - or with the program info ("man info"). Enabling this option enlarges + or with the program info ("man info"). Saying Y here enlarges your kernel by about 7kB. Just say Y. +Sysctl support +CONFIG_SYSCTL + The sysctl interface provides a means of dynamically changing certain + kernel parameters and variables on the fly without requiring a + recompile of the kernel or reboot of the system. The primary interface + consists of a system call, but if the /proc filesystem is enabled, a + tree of modifiable sysctl entries will be generated beneath the + /proc/sys directory. Note that enabling this option will enlarge the + kernel by at least 8kB. As it is generally a good thing, you probably + want to say Y here unless building a kernel for install/rescue disks + or your system is very limited in memory. + Kernel support for ELF binaries CONFIG_BINFMT_ELF ELF (Executable and Linkable Format) is a format for libraries and @@ -603,21 +743,9 @@ file Documentation/Changes for location and latest version). If you want to compile this as a module ( = code which can be inserted in and removed from the running kernel whenever you want), say M here - and read Documentation/modules.txt. Saying M or N here is dangerous - because some crucial programs on your system might be in ELF format. - -Compile kernel as ELF - if your GCC is ELF-GCC -CONFIG_KERNEL_ELF - The gcc version 2.7.0 and newer produces the new ELF binary format - as default. If you have such a compiler (try "gcc -v"), say Y here, - otherwise N. - It is possible, albeit almost pointless, to compile the kernel in - a.out (i.e. QMAGIC) format even if your compiler produces ELF as - default. For that, you would have to say N here and change the - variables LD and CC in the toplevel Makefile. Similarly, if your - compiler produces a.out by default but is able to produce ELF, you - can compile the kernel in ELF by saying Y here and editing the - variables CC and LD in the toplevel Makefile. + and read Documentation/modules.txt. The module will be called + binfmt_elf.o. Saying M or N here is dangerous because some crucial + programs on your system might be in ELF format. Kernel support for A.OUT binaries CONFIG_BINFMT_AOUT @@ -632,55 +760,66 @@ wish to ensure that absolutely none of your programs will use this older executable format. If you don't know what to answer at this point then answer Y. If someone told you "You need a kernel with - QMAGIC support" then you'll have to say Y here. You may answer M - to compile a.out support as a module and later load the module when - you want to use a program or library in a.out format. Saying M or N - here is dangerous though, because some crucial programs on your - system might still be in A.OUT format. + QMAGIC support" then you'll have to say Y here. You may answer M to + compile a.out support as a module and later load the module when you + want to use a program or library in a.out format. The module will be + called binfmt_aout.o. Saying M or N here is dangerous though, + because some crucial programs on your system might still be in A.OUT + format. Kernel support for JAVA binaries CONFIG_BINFMT_JAVA - JAVA is an object oriented programming language developed by SUN; - JAVA programs are compiled into "JAVA bytecode" which can then be - interpreted by run time systems on many different operating systems. - These JAVA binaries are becoming a universal executable format. This - option allows you to run a Java binary just like any other Linux - program: by typing in its name. As more and more Java programs - become available, the use for this will gradually increase. You can - even execute HTML files containing JAVA applets (= JAVA binaries) if - those files start with the string "". If you want to - use this, read Documentation/java.txt and the Java on Linux HOWTO, - available via ftp (user: anonymous) at + JAVA(tm) is an object oriented programming language developed by + SUN; JAVA programs are compiled into "JAVA bytecode" binaries which + can then be interpreted by run time systems on many different + operating systems. These JAVA binaries are becoming a universal + executable format. If you want to execute JAVA binaries, read the + Java on Linux HOWTO, available via ftp (user: anonymous) at sunsite.unc.edu:/pub/Linux/docs/HOWTO. You will then need to install the run time system contained in the Java Developers Kit (JDK) as - described in the HOWTO. If you disable this option it will reduce + described in the HOWTO. This is completely independent of the Linux + kernel and you do NOT need to say Y here for this to work. + Saying Y here allows you to execute a JAVA bytecode binary just like + any other Linux program: by simply typing in its name. (You also + need to have the JDK installed for this to work). As more and more + Java programs become available, the use for this will gradually + increase. You can even execute HTML files containing JAVA applets (= + JAVA binaries) if those files start with the string + "". If you want to use this, say Y here and read + Documentation/java.txt. If you disable this option it will reduce your kernel by about 4kB. This is not much and by itself does not warrant removing support. However its removal is a good idea if you - do not have the JDK installed. If you don't know what to answer at - this point then answer Y. You may answer M for module support and - later load the module when you install the JDK or find an interesting - Java program that you can't live without. + do not have the JDK installed. You may answer M for module support + and later load the module when you install the JDK or find an + interesting Java program that you can't live without. The module + will be called binfmt_java.o. If you don't know what to answer at + this point then answer Y. Processor type CONFIG_M386 - This is the processor type of your CPU. It is used for optimizing - purposes. In order to compile a kernel that can run on all CPU types - (albeit not optimally fast), you can specify "386" here. If you - specify "486" or "Pentium" or "PPro", then the kernel will run on - 486 and Pentium (=586) and Pentium Pro (=686) CPUs. In rare cases, - it can make sense to specify "Pentium" even if running a 486: the - kernel will be smaller but slower. On the other hand, if you use a - compiler before gcc 2.7 (say "gcc -v" to find out), then you have to - say "386" or "486" here even if running on a Pentium or PPro - machine. If you don't know what to do, say "386". - -Support for big physical area reservation -CONFIG_BIGPHYS_AREA - Enables kernel support for reserving large areas of physical memory - at boot-time for use by certain device drivers (such as video - framegrabbers, etc.) which require it. To use this feature, boot - the kernel with the boot-time option 'bigphysarea=nnn' where - 'nnn' is the number of pages (a page is usually 4K) to reserve. + This is the processor type of your CPU. This information is used for + optimizing purposes. In order to compile a kernel that can run on + all Intel CPU types (albeit not optimally fast), you can specify + "386" here. If you specify one of "486" or "Pentium" or "PPro", + then the kernel will run on all of these CPUs: 486 and Pentium + (=586) and Pentium Pro (=686). In rare cases, it can make sense to + specify "Pentium" even if running on a 486: the kernel will be + smaller but slower. If you don't know what to do, say "386". + +Video mode selection support +CONFIG_VIDEO_SELECT + This enables support for text mode selection on kernel startup. If + you want to take advantage of some high-resolution text mode your + card's BIOS offers, but the traditional Linux utilities like + SVGATextMode don't, you can say Y here and set the mode using the + "vga=" option from your boot loader (lilo or loadlin) or set + "vga=ask" which brings up a video mode menu on kernel startup. Try + "man bootparam" or see the documentation of your boot loader about + how to pass options to the kernel. The lilo procedure is also + explained in the SCSI-HOWTO, available via ftp (user: anonymous) in + sunsite.unc.edu:/pub/Linux/docs/HOWTO. Read Documentation/svga.txt + for more information about the Video mode selection support. If + unsure, say N. Compile the kernel into the ELF object format CONFIG_ELF_KERNEL @@ -703,6 +842,23 @@ be necessary to run older Mips systems, such as the Sony News and MIPS RC3xxx, in big endian mode. +Plug and Play support +CONFIG_PNP + Plug and Play support allows the kernel to automatically configure some + peripheral devices. Say Y to enable PnP. + +Parallel-port support +CONFIG_PNP_PARPORT + If you want to use devices connected to your parallel port (printer, + Zip driver, PLIP link, ...) then you should enable this option and + read Documentation/parport.txt. + +Autoprobe for parallel device IDs +CONFIG_PNP_PARPORT_AUTOPROBE + Some IEEE-1284 conformant parallel-port devices can identify themselves + when requested. If this option is enabled the kernel will probe to see + what devices are connected at boot time. + Enable loadable module support CONFIG_MODULES Kernel modules are small pieces of compiled code which can be @@ -716,7 +872,7 @@ Set version information on all symbols for modules CONFIG_MODVERSIONS Usually, modules have to be recompiled whenever you switch to a new - kernel. Enabling this option makes it possible, and safe, to use the + kernel. Saying Y here makes it possible, and safe, to use the same modules even after compiling a new kernel; this requires the program modprobe. All the software needed for module support is in the modules package (check the file Documentation/Changes for @@ -735,12 +891,12 @@ use it. If you select Y here, the kernel will take care of this all by itself, together with the user level daemon "kerneld". Note that "kerneld" will also automatically unload all unused modules, so you - don't have to use "rmmod" either. - kerneld will also provide support for different user-level beeper - and screen blanker programs later on. - The "kerneld" daemon is included in the package "modules-1.2.8" and - later. You will probably want to read the kerneld mini-HOWTO, - available via ftp (user: anonymous) from + don't have to use "rmmod" either. kerneld will also provide support + for different user-level beeper and screen blanker programs later + on. The "kerneld" daemon is included in the modules package (check + Documentation/Changes for latest version and location). You will + probably want to read the kerneld mini-HOWTO, available via ftp + (user: anonymous) from sunsite.unc.edu:/pub/Linux/docs/HOWTO/mini. If unsure, say Y. ARP daemon support (EXPERIMENTAL) @@ -753,12 +909,12 @@ resolution (ARP) cache inside the kernel works well. However, maintaining an internal ARP cache does not work well for very large switched networks, and will use a lot of kernel memory if TCP/IP - connections are made to many machines on the network. By enabling - this option, the kernel's internal ARP cache will never grow to more - than 256 entries (the oldest entries are expired in a LIFO manner) - and communication will be attempted with an external ARP daemon, - arpd. This code is still experimental. If you do enable arpd - support, you should obtain a copy of arpd from + connections are made to many machines on the network. By saying Y + here, the kernel's internal ARP cache will never grow to more than + 256 entries (the oldest entries are expired in a LIFO manner) and + communication will be attempted with an external ARP daemon, arpd. + This code is still experimental. If you do say Y here, you + should obtain a copy of arpd from http://www.loran.com/~layes/arpd/index.html. If unsure, say N. TCP/IP networking @@ -776,41 +932,6 @@ on sunsite.unc.edu:/pub/Linux/docs/HOWTO). Short answer: say Y. -IP: forwarding/gatewaying -CONFIG_IP_FORWARD - People who want to use their Linux box as the router for a local - network (i.e. the computer responsible for distributing Internet - traffic to and from the machines in the local network and the - subnetworks) should say Y here (thereby enlarging their kernel by - about 5 kB). Note that in this case, you possibly have two ethernet - devices in your computer: one for the "outside world" and one for - your local net. The kernel is not able to recognize both at boot - time without help; for details read the - Multiple-Ethernet-mini-HOWTO, available via ftp (user: anonymous) in - sunsite.unc.edu:/pub/Linux/docs/HOWTO/mini. If your box is - connected to two networks, it may still make sense to say N here, - namely if you want to turn your box into a firewall protecting a - local network from the internet. The Firewall-HOWTO tells you how to - do this. If your setup is more complex, say you are connected to - three networks and you want to act as a firewall between two of them - and route traffic for the others, you need to say Y here and enable - IP firewalling below. If you intend to use IP masquerading (i.e. IP - traffic from one of the local computers and destined for an outside - host is changed by your box so that it appears to come from you), - you'll have to say Y here and also to IP firewalling and IP - masquerading below. You should also say Y here if you want to - configure your box as a SLIP (the protocol for sending internet - traffic over telephone lines) or PPP (a better SLIP) server for - other people to dial into and your box is connected to a local - network at the same time. You would then most likely use proxy-ARP - (Address Resolution Protocol), explained in the Proxy-Arp mini howto - on sunsite in /pub/Linux/docs/HOWTO/mini. You also need to say Y - here if you want to run mrouted in order to do multicast routing as - used on the MBONE (a high bandwidth network on top of the internet - which carries audio and video broadcasts) for example. In this case, - say Y to "IP: multicasting" and "IP: multicast routing" as well. If - unsure, say N. - IP: multicasting CONFIG_IP_MULTICAST This is code for addressing several networked computers at once, @@ -841,32 +962,41 @@ about 2kB. You may need to read the FIREWALL-HOWTO, available via ftp (user: anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO. Also, you will need the - ipfwadm tool (check the file Documentation/Changes for location and - latest version) to allow selective blocking of internet traffic - based on type, origin and destination. You need to enable IP - firewalling in order to be able to use IP masquerading (i.e. local - computers can chat with an outside host, but that outside host is - made to think that it is talking to the firewall box. Makes the - local network completely invisible and avoids the need to allocate - valid IP host addresses for the machines on the local net) or to use - the IP packet accounting to see what is using all your network - bandwidth. This option is also needed when you want to enable the - transparent proxying support (makes the computers on the local - network think they're talking to a remote computer, while in reality - the traffic is redirected by your Linux firewall to a local proxy - server). + ipfwadm tool (available via ftp (user: anonymous) from + ftp.xos.nl/pub/linux/ipfwadm/) to allow selective blocking of + internet traffic based on type, origin and destination. You need to + say Y to "IP firewalling" in order to be able to use IP masquerading + (i.e. local computers can chat with an outside host, but that + outside host is made to think that it is talking to the firewall box + -- makes the local network completely invisible and avoids the need + to allocate valid IP host addresses for the machines on the local + net) and IP packet accounting (keeping track of what is using all + your network bandwidth) and IP transparent proxying (makes the + computers on the local network think they're talking to a remote + computer, while in reality the traffic is redirected by your Linux + firewall to a local proxy server). If unsure, say N. + +IP: firewall packet netlink device +CONFIG_IP_FIREWALL_NETLINK + If you say Y here and when packets hit your Linux firewall and are + blocked, the first 128 bytes of each such packet are passed on to + optional user space monitoring software that can then look for + attacks and take actions such as paging the administrator of the + site. To use this, you need to create a character special file under + /dev with major number 36 and minor number 3 using mknod ("man + mknod"), and you need (to write) a program that reads from that + device and takes appropriate action. IP: accounting CONFIG_IP_ACCT This keeps track of your IP network traffic and produces some statistics. Usually, you only want to say Y here if your box will be - a router or a firewall for some local network, in which case you - naturally should have said Y to IP forwarding/gatewaying resp. IP - firewalling. The data is accessible with "cat /proc/net/ip_acct", so - you want to say Y to the /proc filesystem below, if you say Y - here. To specify what exactly should be recorded, you need the tool - ipfwadm (check the file Documentation/Changes for location and - latest version). + a router or a firewall for some local network. For the latter, you + need to say Y to IP firewalling. The data is accessible with "cat + /proc/net/ip_acct", so you want to say Y to the /proc filesystem + below, if you say Y here. To specify what exactly should be + recorded, you need the tool ipfwadm (available via ftp (user: + anonymous) from ftp.xos.nl/pub/linux/ipfwadm/). IP: tunneling CONFIG_NET_IPIP @@ -878,11 +1008,12 @@ appear on a different network than it physically is, or to use mobile-IP facilities (allowing laptops to seamlessly move between networks without changing their IP addresses; check out - http://anchor.cs.binghamton.edu/~mobileip/LJ/index.html). Enabling - this option will produce two modules ( = code which can be inserted - in and removed from the running kernel whenever you want), one - encapsulator and one decapsulator. You can read details in - drivers/net/README.tunnel. Most people can say N. + http://anchor.cs.binghamton.edu/~mobileip/LJ/index.html). Saying Y + to this option will produce two modules ( = code which can be + inserted in and removed from the running kernel whenever you want), + one encapsulator called tunnel.o and one decapsulator called + ipip.o. You can read details in drivers/net/README.tunnel. Most + people won't need this and can say N. IP: firewall packet logging CONFIG_IP_FIREWALL_VERBOSE @@ -890,7 +1021,7 @@ packets it received. The information is handled by the klogd demon which is responsible for kernel messages ("man klogd"). -IP: transparent proxying (EXPERIMENTAL) +IP: transparent proxying CONFIG_IP_TRANSPARENT_PROXY This enables your Linux firewall to transparently redirect any network traffic originating from the local network and destined @@ -901,27 +1032,32 @@ rules (using the ipfwadm utility) and/or by doing an appropriate bind() system call. -IP: masquerading (EXPERIMENTAL) +IP: masquerading CONFIG_IP_MASQUERADE If one of the computers on your local network for which your Linux box acts as a firewall wants to send something to the outside, your - box can "masquerade" as that host, i.e. it forwards the traffic to - the intended destination, but makes it look like it came from the - firewall box itself. It works both ways: if the outside host - answers, the firewall will silently forward the traffic to the - corresponding local computer. This way, the computers on your local - net are completely invisible to the outside world, even though they - can reach the outside and can be reached. This makes it possible to - have the computers on the local network participate on the internet - even if they don't have officially registered IP addresses. (This - last problem can also be solved by connecting the Linux box to the - Internet using SLiRP [SLiRP is a SLIP/PPP emulator that works if you - have a regular dial up shell account on some UNIX computer; get it - from ftp://sunsite.unc.edu/pub/Linux/system/Network/serial/].) - Details on how to set things up are contained in the - IP Masquerading FAQ, available at http://www.indyramp.com/masq/ - This is EXPERIMENTAL code, which means that it need not be completely - stable. If you want this, say Y. + box can "masquerade" as that computer, i.e. it forwards the traffic + to the intended outside destination, but makes it look like it came + from the firewall box itself. It works both ways: if the outside + host replies, the Linux firewall will silently forward the traffic + to the corresponding local computer. This way, the computers on your + local net are completely invisible to the outside world, even though + they can reach the outside and can be reached. This makes it + possible to have the computers on the local network participate on + the internet even if they don't have officially registered IP + addresses. (This last problem can also be solved by connecting the + Linux box to the Internet using SLiRP [SLiRP is a SLIP/PPP emulator + that works if you have a regular dial up shell account on some UNIX + computer; get it via ftp (user: anonymous) from + ftp://sunsite.unc.edu/pub/Linux/system/Network/serial/].) Details + on how to set things up are contained in the IP Masquerading FAQ, + available at http://www.indyramp.com/masq/. If you say Y here, then + the modules ip_masq_ftp.o (for ftp transfers through the firewall), + ip_masq_irc.o (for irc chats through the firewall), and + ip_masq_raudio.o (for realaudio downloads through the firewall) will + automatically be compiled. Modules are pieces of code which can be + inserted in and removed from the running kernel whenever you want; + read Documentation/modules.txt for details. IP: always defragment CONFIG_IP_ALWAYS_DEFRAG @@ -930,26 +1066,26 @@ that the IP packets were too large and cut them in pieces) will be reassembled (defragmented) before being processed, even if they are about to be forwarded. This option is highly recommended if you - have enabled the masquerading support (CONFIG_IP_MASQUERADE), - because this facility requires that second and further fragments can - be related to TCP or UDP port numbers, which are only stored in the - first fragment. When using IP firewall support - (CONFIG_IP_FIREWALL), you might also want to enable this option, to + have said Y to "IP: masquerading" because that facility requires + that second and further fragments can be related to TCP or UDP port + numbers, which are only stored in the first fragment. When using + "IP: firewalling" support , you might also want to say Y here, to have a more reliable firewall (otherwise second and further - fragments will always be accepted by the firewall). When using - transparent proxying (CONFIG_IP_TRANSPARENT_PROXY), this option is - implicit, although it is safe to say Y here. Do not say Y to this - option except when running either a firewall that is the sole link - to your network or a transparent proxy. Never ever say Y to this for - a normal router or host. + fragments will always be accepted by the firewall). When using "IP: + transparent proxying", this option is implicit, although it is safe + to say Y here. Do not say Y to this option except when running + either a firewall that is the sole link to your network or a + transparent proxy. Never ever say Y to this for a normal router or + host. IP: aliasing support CONFIG_IP_ALIAS - Sometimes it is useful to give several addresses to a single network - interface (= serial port or ethernet card). The most common case is - that you want to serve different WWW documents to the outside - according to which of your host names they used to connect to - you. This is explained in detail on the WWW at + Sometimes it is useful to give several IP addresses to a single + physical network interface (= serial port or ethernet card). The + most common case is that you want to serve different WWW or ftp + documents to the outside according to which of your host names was + used to connect to you. This is called "multihosting" or "virtual + domains" and is explained in detail on the WWW at http://www.thesphere.com/~dlp/TwoServers/ (to browse the WWW, you need to have access to a machine on the Internet that has one of the programs lynx, netscape or Mosaic). Another scenario would be that @@ -959,7 +1095,7 @@ syntax explained in Documentation/networking/alias.txt. If you want this, say Y. Most people don't need it and say N. -IP: multicast routing (EXPERIMENTAL) +IP: multicast routing CONFIG_IP_MROUTE This is used if you want your machine to act as a router for IP packets that have several destination addresses. It is needed on the @@ -974,8 +1110,8 @@ CONFIG_INET_PCTCP If you have been having difficulties telneting to your Linux machine from a DOS system that uses (broken) PC/TCP networking software (all - versions up to OnNet 2.0) over your local ethernet try enabling this - option. Everyone else says N. People having problems with NCSA telnet + versions up to OnNet 2.0) over your local ethernet try saying Y + here. Everyone else says N. People having problems with NCSA telnet should see the file linux/Documentation/networking/ncsa-telnet. Reverse ARP @@ -997,8 +1133,9 @@ http://web.syr.edu/~jmwobus/comfaqs/dhcp.faq.html for details. If you want to compile RARP support as a module ( = code which can be inserted in and removed from the running kernel whenever you want), - say M here and read Documentation/modules.txt. If you don't - understand a word of the above, say N and rest in peace. + say M here and read Documentation/modules.txt. The module will be + called rarp.o. If you don't understand a word of the above, say N + and rest in peace. Assume subnets are local CONFIG_INET_SNARL @@ -1015,10 +1152,22 @@ sending very small chunks, we start out sending big ones and if we then discover that some host along the way likes its chunks smaller, we adjust to a smaller size. This is good, so most people say - N. However, some versions of DOS NCSA telnet (and other software) + N here. However, some versions of DOS NCSA telnet (and other software) are broken and can only connect to your Linux machine if you say Y - here. See also Documentation/networking/ncsa-telnet for the location - of fixed NCSA telnet clients. + here. See Documentation/networking/ncsa-telnet for the location + of fixed NCSA telnet clients. If in doubt, say N. + +Path MTU Discovery (normally enabled) +CONFIG_PATH_MTU_DISCOVERY + MTU (maximal transfer unit) is the size of the chunks we send out + over the net. "Path MTU Discovery" means that, instead of always + sending very small chunks, we start out sending big ones and if we + then discover that some host along the way likes its chunks smaller, + we adjust to a smaller size. This is good, so most people say + Y here. However, some versions of DOS NCSA telnet (and other software) + are broken and can only connect to your Linux machine if you say N + here. See Documentation/networking/ncsa-telnet for the location + of fixed NCSA telnet clients. If in doubt, say Y. Disable NAGLE algorithm (normally enabled) CONFIG_TCP_NAGLE_OFF @@ -1055,6 +1204,23 @@ a second or satellite links this option will make no difference to performance. +The IPv6 protocol +CONFIG_IPV6 + This is experimental support for the next version of the Internet + Protocol IP version 6 (also called IPng "IP next + generation"). Features of this new protocol include: expanded + address space, authentication and privacy, and seamless + interoperability with the current version of IP. For general + information about IPv6, see + http://playground.sun.com/pub/ipng/html/ipng-main.html; for specific + information about IPv6 under Linux read the HOWTO at + http://www.terra.net/ipv6/ and the file net/ipv6/README in the + kernel source. The IPv6 support is also available as a module ( = + code which can be inserted in and removed from the running kernel + whenever you want). The module will be called ipv6.o. If you want to + compile it as a module, say M here and read + Documentation/modules.txt. It's safe to say N for now. + The IPX protocol CONFIG_IPX This is support for the Novell networking protocol, IPX, commonly @@ -1072,36 +1238,56 @@ IPX-HOWTO in sunsite.unc.edu:/pub/Linux/docs/howto. The IPX driver would enlarge your kernel by about 5 kB. This driver is also available as a module ( = code which can be inserted in and removed - from the running kernel whenever you want). If you want to compile - it as a module, say M here and read Documentation/modules.txt. - Unless you want to integrate your Linux box with a local Novell - network, say N. + from the running kernel whenever you want). The module will be + called ipx.o. If you want to compile it as a module, say M here + and read Documentation/modules.txt. Unless you want to integrate + your Linux box with a local Novell network, say N. Full internal IPX network CONFIG_IPX_INTERN + Every IPX network has an address that identifies it. Sometimes it is + useful to give an IPX "network" address to your Linux box as well + (for example if your box is acting as a fileserver for different IPX + networks: it will then be accessible form everywhere using the same + address). The way this is done is to create a virtual internal + "network" inside your box and to assign an IPX address to this + network. Say Y here if you want to do this; read the IPX-HOWTO at + sunsite.unc.edu:/pub/Linux/docs/howto for details. The full internal IPX network enables you to allocate sockets on different virtual nodes of the internal network. This is done by - evaluating the field sipx_node of the socket address given to the bind - call. So applications should always initialize the node field to 0 - when binding a socket on the primary network. In this case the socket - is assigned the default node that has been given to the kernel when - the internal network was created. - By enabling the full internal IPX network the cross-forwarding of - packets targeted at 'special' sockets to sockets listening on the - primary network is disabled. This might break existing applications, - especially RIP/SAP daemons. A RIP/SAP daemon that works well with the - full internal net can be found on ftp.gwdg.de:/pub/linux/misc/ncpfs. - If you don't know what you are doing, say N. + evaluating the field sipx_node of the socket address given to the + bind call. So applications should always initialize the node field + to 0 when binding a socket on the primary network. In this case the + socket is assigned the default node that has been given to the + kernel when the internal network was created. By enabling the full + internal IPX network the cross-forwarding of packets targeted at + 'special' sockets to sockets listening on the primary network is + disabled. This might break existing applications, especially RIP/SAP + daemons. A RIP/SAP daemon that works well with the full internal net + can be found on ftp.gwdg.de:/pub/linux/misc/ncpfs. If you don't + know what you are doing, say N. + +IPX Type 20 Routing +CONFIG_IPX_PPROP_ROUTING + IPX Type 20 packets are special broadcast messages designed to work + across routers. If you are using an internal network, have multiple + interfaces that route IPX, or will want to route IPX connections over + ppp to internal networks, setting this will allow the type 20 packets + to be propagated to all connected networks. These packets are used by + Novell NETBIOS and the NETBIOS name functions of SMB protocols that + work over IPX (e.g. the "Network Neighborhood" on another popular OS + cum GUI). In brief, if your Linux box needs to route IPX packets, + this should be set to Y. Appletalk DDP CONFIG_ATALK Appletalk is the way Apple computers speak to each other on a network. EtherTalk is the name used for appletalk over ethernet and - Localtalk is appletalk over the apple serial links. If your linux box - is connected to such a network and you want to join the conversation, - say Y. You will need to use the netatalk package so that your Linux - box can act as a print and file server for macs as well as access - appletalk printers. Check out + Localtalk is appletalk over the apple serial links. If your linux + box is connected to such a network and you want to join the + conversation, say Y. You will need to use the netatalk package so + that your Linux box can act as a print and file server for macs as + well as access appletalk printers. Check out http://artoo.hitchcock.org/~flowerpt/projects/linux-netatalk/ on the WWW for details (to browse the WWW, you need to have access to a machine on the Internet that has one of the programs lynx, netscape @@ -1109,13 +1295,32 @@ sunsite.unc.edu:/pub/Linux/docs/HOWTO contains valuable information as well. This driver is also available as a module ( = code which can be inserted in and removed from the running kernel whenever you - want). If you want to compile it as a module, say M here and read - Documentation/modules.txt. I hear that the GNU boycott of Apple is - over, so even politically correct people are allowed to say Y here. - At the time the kernel is released the localtalk drivers are not - yet ready to ship. The kernel however supports localtalk and when - such drivers become available all you will need to do is download - and install the localtalk driver. + want). The module will be called appletalk.o. If you want to compile + it as a module, say M here and read Documentation/modules.txt. I + hear that the GNU boycott of Apple is over, so even politically + correct people are allowed to say Y here. At the time the kernel is + released the localtalk drivers are not yet ready to ship. The kernel + however supports localtalk and when such drivers become available + all you will need to do is download and install the localtalk + driver. + +IP-over-DDP support +CONFIG_IPDDP + This allows IP networking for users who only have Appletalk + networking available. This feature is experimental. Please see + http://www.maths.unm.edu/~bradford/ltpc.html for support software. + +LocalTalk PC card support +CONFIG_LTPC + This allows you to use the AppleTalk PC card to connect to LocalTalk + networks. The card is also known as the Farallon PhoneNet PC card. + If you are in doubt, this card is the one with the 65C02 chip on it. + You also need version 1.3.3 or later of the netatalk package. + This driver is experimental, which means that it may not work. + In particular the module support is not yet working for the 2.1.xx + kernels, so choose Y or N, but not M for now. + See README.ltpc in the drivers/net directory, and the web site + http://www.math.unm.edu/~bradford/ltpc.html Amateur Radio AX.25 Level 2 CONFIG_AX25 @@ -1126,35 +1331,41 @@ use a low speed TNC (a Terminal Node Controller acts as a kind of modem connecting your computer's serial port to your radio's microphone input and speaker output) supporting the KISS protocol or - the various SCC cards that are supported by the Ottawa PI, the - Gracilis Packetwin and the generic Z8530 driver. Another option are - the Baycom modem serial and parallel port hacks (supported by their - own driver) and the other baycom cards (SCC) (supported by the Z8530 - driver). Information about where to get supporting software for - Linux amateur radio as well as information about how to configure an - AX.25 port is contained in the HAM-HOWTO, available via ftp (user: - anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO. You might also - want to check out the file Documentation/networking/ax25.txt in the - kernel source. More information about digital amateur radio in - general is on the WWW at - http://www.cis.ohio-state.edu/hypertext/faq/usenet/radio/ham-radio/digital-faq/faq.html - (To browse the WWW, you need to have access to a machine on the - Internet that has one of the programs lynx, netscape or Mosaic). + one of the various SCC cards that are supported by the Ottawa PI, + the Gracilis Packetwin or the generic Z8530 driver. Another option + are the Baycom modem serial and parallel port hacks or the soundcard + modem (supported by their own drivers). If you say Y here, you also + have to say Y to one of those drivers. Information about where to + get supporting software for Linux amateur radio as well as + information about how to configure an AX.25 port is contained in the + AX25-HOWTO, available via ftp (user: anonymous) in + sunsite.unc.edu:/pub/Linux/docs/HOWTO. You might also want to check + out the file Documentation/networking/ax25.txt in the kernel + source. More information about digital amateur radio in general is + on the WWW at http://www.tapr.org/tapr/html/pkthome.html. (To + browse the WWW, you need to have access to a machine on the Internet + that has one of the programs lynx, netscape or Mosaic). This driver + is also available as a module ( = code which can be inserted in and + removed from the running kernel whenever you want). The module will + be called ax25.o. If you want to compile it as a module, say M here + and read Documentation/modules.txt. Amateur Radio NET/ROM CONFIG_NETROM NET/ROM is a network layer protocol on top of AX.25 useful for routing. A comprehensive listing of all the software for Linux amateur radio users as well as information about how to configure an - AX.25 port is contained in the HAM-HOWTO, available via ftp (user: + AX.25 port is contained in the AX25-HOWTO, available via ftp (user: anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO. You also might - also want to check out the file - Documentation/networking/ax25.txt. More information about digital - amateur radio in general is on the WWW at - http://www.cis.ohio-state.edu/hypertext/faq/usenet/radio/ham-radio/digital-faq/faq.html - (To browse the WWW, you need to have access to a machine on the - Internet that has one of the programs lynx, netscape or - Mosaic). + want to check out the file Documentation/networking/ax25.txt. More + information about digital amateur radio in general is on the WWW at + http://www.tapr.org/tapr/html/pkthome.html (To browse the WWW, you + need to have access to a machine on the Internet that has one of the + programs lynx, netscape or Mosaic). This driver is also available + as a module ( = code which can be inserted in and removed from the + running kernel whenever you want). The module will be called + netrom.o. If you want to compile it as a module, say M here and read + Documentation/modules.txt. AX.25 over Ethernet CONFIG_BPQETHER @@ -1164,6 +1375,72 @@ useful if some other computer on your local network has a direct amateur radio connection. +Amateur Radio X.25 PLP (Rose) +CONFIG_ROSE + The Packet Layer Protocol (PLP) is a way to route packets over X.25 + connections in general and amateur radio AX.25 connections in + particular, essentially an alternative to NET/ROM. A comprehensive + listing of all the software for Linux amateur radio users as well as + information about how to configure an AX.25 port is contained in the + AX25-HOWTO, available via ftp (user: anonymous) in + sunsite.unc.edu:/pub/Linux/docs/HOWTO. You also might want to check + out the file Documentation/networking/ax25.txt. More information + about digital amateur radio in general is on the WWW at + http://www.tapr.org/tapr/html/pkthome.html (To browse the WWW, you + need to have access to a machine on the Internet that has one of the + programs lynx, netscape or Mosaic). This driver is also available + as a module ( = code which can be inserted in and removed from the + running kernel whenever you want). The module will be called + rose.o. If you want to compile it as a module, say M here and read + Documentation/modules.txt. + +CCITT X.25 Packet Layer +CONFIG_X25 + X.25 is a set of standardized network protocols, similar in scope to + frame relay; the one physical line from your box to the entry point + to the X.25 network can carry several logical point-to-point + connections (called "virtual circuits") to other computers connected + to the X.25 network. Governments, banks, and other organizations + tend to use it to connect to each other or to form Wide Area + Networks. Many countries have public X.25 networks. X.25 consists + of two protocols: the higher level Packet Layer Protocol (PLP) (say + Y here if you want that) and the lower level data link layer + protocol LAPB (say Y to "LAPB Data Link Driver" below if you want + that). You can read more about X.25 at + http://www.sangoma.com/x25.html and + http://www.cisco.com/univercd/data/doc/software/11_0/rpcg/cx25.htm. + Information about X.25 for Linux is contained in the files + Documentation/networking/x25.txt and + Documentation/networking/x25-iface.txt. One connects to an X.25 + network either with a dedicated network card using the X.21 protocol + (not yet supported by Linux) or one can do X.25 over ethernet using + an ordinary ethernet card and either the 802.2 LLC protocol (say Y + to "802.2 LLC" below) or LAPB over ethernet (say Y to "LAPB Data + Link Driver" and "LAPB over Ethernet driver" below). If you want to + compile this driver as a module though ( = code which can be + inserted in and removed from the running kernel whenever you want), + say M here and read Documentation/modules.txt. The module will be + called x25.o. If unsure, say N. + +LAPB Data Link Driver (EXPERIMENTAL) +CONFIG_LAPB + Link Access Procedure, Balanced (LAPB) is the data link layer part + of the X.25 protocol. It offers a reliable connection service to + exchange data frames with one other host, and it is used to + transport higher level protocols (mostly X.25 Packet Layer, but + others are possible as well). If you want to use LAPB connections + over ethernet, say Y here and to "LAPB over Ethernet driver" below. + Read Documentation/networking/lapb-module.txt for technical details. + If you want to compile this driver as a module though ( = code which + can be inserted in and removed from the running kernel whenever you + want), say M here and read Documentation/modules.txt. The module + will be called lapb.o. If unsure, say N. + +802.2 LLC (VERY EXPERIMENTAL) +CONFIG_LLC + This is a Logical Link Layer protocol used for X.25 connections over + ethernet, using ordinary ethernet cards. + Bridging (EXPERIMENTAL) CONFIG_BRIDGE If you say Y here, then your Linux box will be able to act as an @@ -1182,151 +1459,43 @@ sunsite.unc.edu:/pub/Linux/docs/HOWTO/mini. The Bridging code is still in test. If unsure, say N. -Kernel/User network link driver (EXPERIMENTAL) +Kernel/User network link driver CONFIG_NETLINK This driver allows for two-way communication between certain parts of the kernel or modules and user processes; the user processes are able to read from and write to character special files in the /dev directory having major mode 36. So far, the kernel uses it to - publish some network related information if you enable "Routing - messages", below. Say Y if you want to experiment with it; this is - EXPERIMENTAL code, which means that it need not be completely stable. - You need to include this if you want to use arpd, a daemon that - helps keep the internal ARP cache (a mapping between IP addresses - and hardware addresses on the local network) small. If unsure, say - N. + publish some network related information if you say Y to "Routing + messages", below. It is also used by the firewall code if you say Y + to "Kernel/User network link driver" further down. You also need to + say Y here if you want to use arpd, a daemon that helps keep the + internal ARP cache (a mapping between IP addresses and hardware + addresses on the local network) small. If unsure, say N. Routing messages CONFIG_RTNETLINK - If you enable this and create a character special file /dev/route + If you say Y here and create a character special file /dev/route with major number 36 and minor number 0 using mknod ("man mknod"), you can read some network related routing information from that file. Everything you write to that file will be discarded. -Asynchronous Transfer Mode (ATM) -CONFIG_ATM - You are likely to want to enable this. - -Enable single-copy -CONFIG_MMU_HACKS - Single-copy avoids intermediate buffering of AAL5 PDUs when using the - native ATM API. Enabling single-copy may lead to significant throughput - improvements. Note that single-copy probably still has bugs, so - enabling it may de-stabilize the system. - -Extended debugging for single-copy -CONFIG_MMU_HACKS_DEBUG - Extended debugging records various events and displays that list when - an inconsistency is detected. This mechanism is faster than generally - using printks, but still has some impact on performance. Enable this - if you suspect problems with single-copy. - -Classical IP over ATM with ATMARP -CONFIG_ATM_ATMARP - Classical IP over ATM for PVCs and SVCs, supporting InARP and ATMARP. - This interface is younger than the old "CLIP" interface (next item) - and it may therefore still have some bugs. In the future, it will - replace the old interface entirely. - -Classical IP over ATM for PVCs (obsolete) -CONFIG_ATM_CLIP - Classical IP over ATM for PVCs only and without InARP. This interface - is obsolete and will be removed in later versions of ATM on Linux, as - soon as ATMARP is fully mature. - -Application REQUested IP over ATM -CONFIG_AREQUIPA - Arequipa is an experimental mechanism to create short-cut ATM SVCs for - IP traffic. See - ftp://lrcftp.epfl.ch/pub/arequipa/draft-almesberger-arequipa-01.txt - for details. - -LANE support -CONFIG_ATM_LANE - Lan Emulation emulates services of existing LANs across an ATM network. - Client in Linux currently supports only one virtual LAN, and it has - not been tested in environment which uses other than DIX Ethernet- - data frames, i.e. Appletalk, IPX support has not been tested. - Specification for LANE can be found from ATM Forum's specification - LAN Emulation Over ATM - Version 1.0. - -ATM over TCP -CONFIG_ATM_TCP - ATM over TCP driver. Useful for doing some simple experiments with the - native ATM socket API, but not for many other things. You don't need - this is you have a "real" ATM card. - -Efficient Networks ENI155P -CONFIG_ATM_ENI - Driver for the Efficient Networks ENI155p series and SMC ATM Power155 - 155 Mbps ATM adapters. Both, the versions with 512kB and 2MB ob-board - RAM (Efficient calls them "C" and "S", respectively), and the FPGA and - the ASIC Tonga versions of the board are supported. The driver works - with MMF (-MF or ...F) and UTP-5 (-U5 or ...D) adapters. - -Enable extended debugging -CONFIG_ATM_ENI_DEBUG - Extended debugging records various events and displays that list when - an inconsistency is detected. This mechanism is faster than generally - using printks, but still has some impact on performance. Note that - extended debugging may create certain race conditions itself. Enable - this ONLY if you suspect problems with the driver. - -ZeitNet ZN1221/ZN1225 -CONFIG_ATM_ZATM - Driver for the ZeitNet ZN1221 (MMF) and ZN1225 (UTP-5) 155 Mbps ATM - adapters. - -Enable extended debugging -CONFIG_ATM_ZATM_DEBUG - Extended debugging records various events and displays that list when - an inconsistency is detected. This mechanism is faster than generally - using printks, but still has some impact on performance. Note that - extended debugging may create certain race conditions itself. Enable - this ONLY if you suspect problems with the driver. - -Enable usec resolution timestamps -CONFIG_ATM_ZATM_EXACT_TS - The uPD98401 SAR chip supports a high-resolution timer (approx. 30 MHz) - that is used for very accurate reception timestamps. Because that timer - overflows after 140 seconds, and also to avoid timer drift, time - measurements need to be periodically synchronized with the normal - system time. Enabling this feature will add some general overhead for - timer synchronization and also per-packet overhead for time conversion. - -Rolfs TI TNETA1570 -CONFIG_ATM_TNETA1570 - Driver for the TNETA1570 (or UniNET 1570) 155 Mbps ATM adapter, both - (driver and adapter) developed by Rolf Fiedler at TU Chemnitz, see also - ftp://ftp.infotech.tu-chemnitz.de/pub/linux-atm - -Enable extended debugging -CONFIG_ATM_TNETA1570_DEBUG - Extended debugging records various events and displays that list when - an inconsistency is detected. This mechanism is faster than generally - using printks, but still has some impact on performance. Note that - extended debugging may create certain race conditions itself. Enable - this ONLY if you suspect problems with the driver. - -IDT 77201 (NICStAR) -CONFIG_ATM_NICSTAR - Driver for the IDT 77901/77903 ("NICStAR", 77201/77211 SAR) ATM adapters. - Written by Matt Welsh and Stuart Daniel . - SCSI support? CONFIG_SCSI If you want to use a SCSI harddisk, SCSI tapedrive, SCSI CDROM or any other SCSI device under Linux, say Y and make sure that you know - the name of your SCSI host adaptor (the card inside your computer + the name of your SCSI host adapter (the card inside your computer that "speaks" the SCSI protocol), because you will be asked for it. You also need to say Y here if you want support for the parallel port version of the 100MB IOMEGA ZIP drive. Please read the SCSI-HOWTO, available via ftp (user: anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO. This driver is also available as a module ( = code which can be inserted in and removed - from the running kernel whenever you want). If you want to compile - it as a module, say M here and read Documentation/modules.txt and - Documentation/scsi.txt. + from the running kernel whenever you want). The module will be + called scsi_mod.o. If you want to compile it as a module, say M here + and read Documentation/modules.txt and + Documentation/scsi.txt. However, do not compile this as a module if + your root filesystem (the one containing the directory /) is located + on a SCSI disk. SCSI disk support CONFIG_BLK_DEV_SD @@ -1336,8 +1505,12 @@ sunsite.unc.edu:/pub/Linux/docs/HOWTO. This is NOT for SCSI CDROMs. This driver is also available as a module ( = code which can be inserted in and removed from the running kernel whenever you - want). If you want to compile it as a module, say M here and read - Documentation/modules.txt and Documentation/scsi.txt. + want). The module will be called sd_mod.o. If you want to compile it + as a module, say M here and read Documentation/modules.txt and + Documentation/scsi.txt. Do not compile this driver as a module if + your root filesystem (the one containing the directory /) is located + on a SCSI disk. In this case, do not compile the driver for your + SCSI host adapter (below) as a module either. SCSI tape support CONFIG_CHR_DEV_ST @@ -1346,20 +1519,28 @@ sunsite.unc.edu:/pub/Linux/docs/HOWTO and drivers/scsi/README.st in the kernel source. This is NOT for SCSI CDROMs. This driver is also available as a module ( = code which can be inserted in and removed - from the running kernel whenever you want). If you want to compile - it as a module, say M here and read Documentation/modules.txt and - Documentation/scsi.txt . + from the running kernel whenever you want). The module will be + called st.o. If you want to compile it as a module, say M here + and read Documentation/modules.txt and Documentation/scsi.txt . SCSI CDROM support CONFIG_BLK_DEV_SR If you want to use a SCSI CDROM under Linux, say Y and read the SCSI-HOWTO and the CDROM-HOWTO from - sunsite.unc.edu:/pub/Linux/docs/HOWTO. Also make sure to enable the - ISO9660 filesystem later. This driver is also available as a module - ( = code which can be inserted in and removed from the running - kernel whenever you want). If you want to compile it as a module, - say M here and read Documentation/modules.txt and - Documentation/scsi.txt . + sunsite.unc.edu:/pub/Linux/docs/HOWTO. Also make sure to say Y to + "ISO9660 cdrom filesystem support" later. This driver is also + available as a module ( = code which can be inserted in and removed + from the running kernel whenever you want). The module will be + called sr_mod.o. If you want to compile it as a module, say M here + and read Documentation/modules.txt and Documentation/scsi.txt . + +Enable vendor-specific extensions (for SCSI CDROM) +CONFIG_BLK_DEV_SR_VENDOR + This enables the usage of vendor specific SCSI commands. This is + required for some stuff which is newer than the SCSI-II standard: + MultiSession CD support and some ioctls for reading Mode 2 Form 2 + sectors. You'll probably want to say Y here, unless you have a + _real old_ CD-ROM drive. SCSI generic support CONFIG_CHR_DEV_SG @@ -1376,153 +1557,187 @@ sunsite.unc.edu:/pub/Linux/docs/HOWTO. If you want to compile this as a module ( = code which can be inserted in and removed from the running kernel whenever you want), say M here and read - Documentation/modules.txt and Documentation/scsi.txt. + Documentation/modules.txt and Documentation/scsi.txt. The module + will be called sg.o. If unsure, say N. Probe all LUNs on each SCSI device CONFIG_SCSI_MULTI_LUN If you have a SCSI device that supports more than one LUN (Logical - Unit Number), e.g. a CD jukebox, you should say Y here so that all - will be found by the SCSI driver. An SCSI device with multiple LUNs - acts logically like multiple SCSI devices. The vast majority of SCSI - devices have only one LUN, and so most people can say N here and - should in fact do so, because it is safer. + Unit Number), e.g. a CD jukebox, and only one LUN is detected, you + can say Y here to force the SCSI driver to probe for multiple LUNs. + A SCSI device with multiple LUNs acts logically like multiple SCSI + devices. The vast majority of SCSI devices have only one LUN, and + so most people can say N here and should in fact do so, because it + is safer. Verbose SCSI error reporting (kernel size +=12K) CONFIG_SCSI_CONSTANTS The error messages regarding your SCSI hardware will be easier to - understand if you enable this; it will enlarge your kernel by about + understand if you say Y here; it will enlarge your kernel by about 12KB. If in doubt, say Y. AdvanSys SCSI support CONFIG_SCSI_ADVANSYS - This is a driver for all SCSI host adaptors manufactured by + This is a driver for all SCSI host adapters manufactured by AdvanSys. It is documented in the kernel source in drivers/scsi/advansys.c. This driver is also available as a module ( = code which can be inserted in and removed from the running kernel whenever you want). If you want to compile it as a module, say M - here and read Documentation/modules.txt. + here and read Documentation/modules.txt. The module will be called + advansys.o. Adaptec AHA152X/2825 support CONFIG_SCSI_AHA152X This is support for the AHA-1510, AHA-1520, AHA-1522, and AHA-2825 - SCSI host adaptors. It is explained in section 3.3 of the + SCSI host adapters. It is explained in section 3.3 of the SCSI-HOWTO, available via ftp (user: anonymous) at sunsite.unc.edu:/pub/Linux/docs/HOWTO. You might also want to read the comments at the top of drivers/scsi/aha152x.c. This driver is also available as a module ( = code which can be inserted in and - removed from the running kernel whenever you want). If you want to - compile it as a module, say M here and read - Documentation/modules.txt. + removed from the running kernel whenever you want). The module will + be called aha152x.o. If you want to compile it as a module, say M here + and read Documentation/modules.txt. Adaptec AHA1542 support CONFIG_SCSI_AHA1542 - This is support for a SCSI host adaptor. It is explained in section + This is support for a SCSI host adapter. It is explained in section 3.4 of the SCSI-HOWTO, available via ftp (user: anonymous) at sunsite.unc.edu:/pub/Linux/docs/HOWTO. Note that Trantor was recently purchased by Adaptec, and some former Trantor products are - being sold under the Adaptec name. If it doesn't work out of - the box, you may have to change some settings in - drivers/scsi/aha1542.h. If you want to compile this as a module ( = - code which can be inserted in and removed from the running kernel - whenever you want), say M here and read Documentation/modules.txt. + being sold under the Adaptec name. If it doesn't work out of the + box, you may have to change some settings in drivers/scsi/aha1542.h. + If you want to compile this as a module ( = code which can be + inserted in and removed from the running kernel whenever you want), + say M here and read Documentation/modules.txt. The module will be + called aha1542.o. Adaptec AHA1740 support CONFIG_SCSI_AHA1740 - This is support for a SCSI host adaptor. It is explained in section + This is support for a SCSI host adapter. It is explained in section 3.5 of the SCSI-HOWTO, available via ftp (user: anonymous) at sunsite.unc.edu:/pub/Linux/docs/HOWTO. If it doesn't work out of the box, you may have to change some settings in drivers/scsi/aha1740.h. This driver is also available as a module ( = code which can be inserted in and removed from the running kernel - whenever you want). If you want to compile it as a module, say M - here and read Documentation/modules.txt. + whenever you want). The module will be called aha17400.o. If you + want to compile it as a module, say M here and read + Documentation/modules.txt. Adaptec AHA274X/284X/294X support CONFIG_SCSI_AIC7XXX - Information about this SCSI host adaptor is contained in + Information about this SCSI host adapter is contained in drivers/scsi/README.aic7xxx and in the SCSI-HOWTO, available via ftp (user: anonymous) at sunsite.unc.edu:/pub/Linux/docs/HOWTO. If it doesn't work out of the box, you may have to change some settings in - drivers/scsi/aic7xxx.h. If you want to compile this as a module ( = - code which can be inserted in and removed from the running kernel - whenever you want), say M here and read Documentation/modules.txt. + drivers/scsi/aic7xxx.h. It has been reported that the "wide + negotiation" on these cards is not quite working and should be + disabled. Note that the AHA2920 SCSI host adapter is *not* supported + by this driver; choose "Future Domain 16xx SCSI support" instead. If + you want to compile this driver a module ( = code which can be + inserted in and removed from the running kernel whenever you want), + say M here and read Documentation/modules.txt. The module will be + called aic7xxx.o. BusLogic SCSI support CONFIG_SCSI_BUSLOGIC - This is support for BusLogic MultiMaster SCSI Host Adaptors. - Consult the SCSI-HOWTO, available via anonymous ftp from - sunsite.unc.edu:/pub/Linux/docs/HOWTO and the file - drivers/scsi/README.BusLogic for more information. BusLogic - FlashPoint SCSI Host Adapters are not supported by this driver, but - BusLogic has initiated an upgrade program which allows you to get a - better adaptor for few $$. Read about it in - drivers/scsi/README.FlashPoint. If this driver does not work - correctly without modification, please contact the author. You can - build this driver also as a module ( = code which can be inserted in - and removed from the running kernel whenever you want), but only a - single instance may be loaded. If you want to compile it as a - module, say M here and read Documentation/modules.txt. + This is support for BusLogic MultiMaster and FlashPoint SCSI Host + Adapters. Consult the SCSI-HOWTO, available via anonymous ftp from + sunsite.unc.edu in /pub/Linux/docs/HOWTO, and the files + README.BusLogic and README.FlashPoint in drivers/scsi for more + information. If this driver does not work correctly without + modification, please contact the author, Leonard N. Zubkoff, by + email to lnz@dandelion.com. You can also build this driver as a + module ( = code which can be inserted in and removed from the + running kernel whenever you want), but only a single instance may be + loaded. If you want to compile it as a module, say M here and read + Documentation/modules.txt. The module will be called BusLogic.o. + +Omit BusLogic SCSI FlashPoint support +CONFIG_SCSI_OMIT_FLASHPOINT + This option allows you to omit the FlashPoint support from the + BusLogic SCSI driver. The FlashPoint SCCB Manager code is + substantial, so users of MultiMaster Host Adapters may wish to omit + it. + DTC3180/3280 SCSI support CONFIG_SCSI_DTC3280 - This is support for DTC 3180/3280 SCSI Host Adaptors. Please read + This is support for DTC 3180/3280 SCSI Host Adapters. Please read the SCSI-HOWTO, available via ftp (user: anonymous) at sunsite.unc.edu:/pub/Linux/docs/HOWTO and the file drivers/scsi/README.dtc3x80. This driver is also available as a module (= code which can be inserted in and removed from the running - kernel whenever you want). If you want to compile it as a module, - say M here and read Documentation/modules.txt. + kernel whenever you want). The module will be called dtc.o. If you + want to compile it as a module, say M here and read + Documentation/modules.txt. EATA-DMA (DPT, NEC, AT&T, SNI, AST, Olivetti, Alphatronix) support CONFIG_SCSI_EATA_DMA This is support for the EATA-DMA protocol compliant SCSI Host - Adaptors like the SmartCache III/IV, SmartRAID controller families - and the DPT PM2011B and PM2012B controllers. Please read the + Adapters like the SmartCache III/IV, SmartRAID controller families + and the DPT PM2011B and PM2012B controllers. Note that there is + also another driver for the same hardware: "EATA ISA/EISA/PCI + support". You should only say Y to one of them. Please read the SCSI-HOWTO, available via ftp (user: anonymous) at sunsite.unc.edu:/pub/Linux/docs/HOWTO. This driver is also available as a module (= code which can be inserted in and removed - from the running kernel whenever you want). If you want to compile - it as a module, say M here and read Documentation/modules.txt. + from the running kernel whenever you want). The module will be + called eata_dma.o. If you want to compile it as a module, say M here + and read Documentation/modules.txt. EATA-PIO (old DPT PM2001, PM2012A) support CONFIG_SCSI_EATA_PIO This driver supports all EATA-PIO protocol compliant SCSI Host - Adaptors like the DPT PM2001 and the PM2012A. EATA-DMA compliant - host adaptors could also use this driver but are discouraged from + Adapters like the DPT PM2001 and the PM2012A. EATA-DMA compliant + host adapters could also use this driver but are discouraged from doing so, since this driver only supports harddisks and lacks numerous features. You might want to have a look at the SCSI-HOWTO, available via ftp (user: anonymous) at sunsite.unc.edu:/pub/Linux/docs/HOWTO. If you want to compile this as a module ( = code which can be inserted in and removed from the running kernel whenever you want), say M here and read - Documentation/modules.txt. + Documentation/modules.txt. The module will be called eata_pio.o. UltraStor 14F/34F support CONFIG_SCSI_U14_34F - This is support for the UltraStor 14F, 24F and 34F SCSI-2 host - adaptor family. The source at drivers/scsi/u14-34f.c contains some - information about this hardware. If the driver doesn't work out of - the box, you may have to change some settings in - drivers/scsi/u14-34f.h. Read the SCSI-HOWTO, available via ftp - (user: anonymous) at sunsite.unc.edu:/pub/Linux/docs/HOWTO. Note - that there is also another driver for the same hardware: "UltraStor - SCSI support", below. You should only enable one of them. This - driver is also available as a module ( = code which can be inserted - in and removed from the running kernel whenever you want). If you - want to compile it as a module, say M here and read - Documentation/modules.txt. + This is support for the UltraStor 14F and 34F SCSI-2 host adapters. + The source at drivers/scsi/u14-34f.c contains some information about + this hardware. If the driver doesn't work out of the box, you may + have to change some settings in drivers/scsi/u14-34f.c. Read the + SCSI-HOWTO, available via ftp (user: anonymous) at + sunsite.unc.edu:/pub/Linux/docs/HOWTO. Note that there is also + another driver for the same hardware: "UltraStor SCSI support", + below. You should say Y to both only if you want 24F support as + well. This driver is also available as a module ( = code which can + be inserted in and removed from the running kernel whenever you + want). The module will be called u14-34f.o. If you want to compile + it as a module, say M here and read Documentation/modules.txt. + +enable linked commands +CONFIG_SCSI_U14_34F_LINKED_COMMANDS + This is a feature of SCSI-2 which improves performance: the host + adapter can send a whole list of commands to a device in one + batch. Some SCSI devices might not implement this properly, so the + save answer is N. + +maximum number of queued commands +CONFIG_SCSI_U14_34F_MAX_TAGS + This specifies how many SCSI commands can be maximally queued for a + given SCSI device. Go with the default unless you know what you're + doing. Minimum is 2 and maximum is 8. -Future Domain 16xx SCSI support +Future Domain 16xx SCSI/AHA 2920 support CONFIG_SCSI_FUTURE_DOMAIN - This is support for Future Domain's 16-bit SCSI host adaptors - (TMC-1660/1680, TMC-1650/1670, TMC-3260, TMC-1610M/MER/MEX) and other - adaptors based on the Future Domain chipsets (Quantum ISA-200S, - ISA-250MG; Adaptec AHA-2920; and at least one IBM board). It is - explained in section 3.7 of the SCSI-HOWTO, available via ftp (user: - anonymous) at sunsite.unc.edu:/pub/Linux/docs/HOWTO. This driver is - also available as a module ( = code which can be inserted in and - removed from the running kernel whenever you want). If you want to - compile it as a module, say M here and read Documentation/modules.txt. + This is support for Future Domain's 16-bit SCSI host adapters + (TMC-1660/1680, TMC-1650/1670, TMC-3260, TMC-1610M/MER/MEX) and + other adapters based on the Future Domain chipsets (Quantum + ISA-200S, ISA-250MG; Adaptec AHA-2920; and at least one IBM board). + It is explained in section 3.7 of the SCSI-HOWTO, available via ftp + (user: anonymous) at sunsite.unc.edu:/pub/Linux/docs/HOWTO. This + driver is also available as a module ( = code which can be inserted + in and removed from the running kernel whenever you want). The + module will be called fdomain.o. If you want to compile it as a + module, say M here and read Documentation/modules.txt. Generic NCR5380/53c400 SCSI support CONFIG_SCSI_GENERIC_NCR5380 @@ -1533,8 +1748,9 @@ the box, you may have to change some settings in drivers/scsi/g_NCR5380.h. This driver is also available as a module ( = code which can be inserted in and removed from the running - kernel whenever you want). If you want to compile it as a module, - say M here and read Documentation/modules.txt. + kernel whenever you want). The module will be called g_NCR5380.o. If + you want to compile it as a module, say M here and read + Documentation/modules.txt. Enable NCR53c400 extensions CONFIG_SCSI_GENERIC_NCR53C400 @@ -1543,8 +1759,7 @@ the Trantor T130B in its default configuration; you might have to pass a command line option to the kernel at boot time if it doesn't detect your card. See the file drivers/scsi/README.g_NCR5380 for - details. If you want to compile it as a module, say M here and read - Documentation/modules.txt. + details. NCR5380/53c400 mapping method (use Port for T130B) CONFIG_SCSI_G_NCR5380_PORT @@ -1561,8 +1776,9 @@ box, you may have to change some settings in drivers/scsi/53c7,8xx.h. This driver is also available as a module ( = code which can be inserted in and removed from the running kernel - whenever you want). If you want to compile it as a module, say M - here and read Documentation/modules.txt. + whenever you want). The module will be called 53c7,8xx.o. If you + want to compile it as a module, say M here and read + Documentation/modules.txt. always negotiate synchronous transfers CONFIG_SCSI_NCR53C7xx_sync @@ -1573,13 +1789,13 @@ allow FAST-SCSI [10MHz] CONFIG_SCSI_NCR53C7xx_FAST This will enable 10MHz FAST-SCSI transfers with your host - adaptor. Some systems have problems with that speed, so it's safest + adapter. Some systems have problems with that speed, so it's safest to say N here. allow DISCONNECT CONFIG_SCSI_NCR53C7xx_DISCONNECT This enables the disconnect/reconnect feature of the NCR SCSI - controller. When this is enabled, a slow SCSI device will not lock + controller. When you say Y here, a slow SCSI device will not lock the SCSI bus while processing a request, allowing simultaneous use of e.g. a SCSI hard disk and SCSI tape or CD-ROM drive, and providing much better performance when using slow and fast SCSI @@ -1594,24 +1810,41 @@ of PCI-SCSI controllers. This driver supports parity checking, tagged command queuing, fast scsi II transfer up to 10 MB/s with narrow scsi devices and 20 MB/s with wide scsi devices. - This driver has been tested OK with linux/i386 and is currently - untested under linux/Alpha. If you intend to use this driver under - linux/Alpha, just try it first with read-only or mounted read-only - devices. Memory mapped io is currently not supported under - linux/Alpha. Please read drivers/scsi/README.ncr53c8xx for more - information. + Support of Ultra SCSI data transfers with NCR53C860 and NCR53C875 + controllers has been recently added to the driver. + Please read drivers/scsi/README.ncr53c8xx for more information. + Linux/i386 and Linux/Alpha are supported by this driver. + +synchronous data transfers frequency +CONFIG_SCSI_NCR53C8XX_SYNC + SCSI-2 specifications allow scsi devices to negotiate a synchronous + transfer period of 25 nano-seconds or more. + The transfer period value is 4 times the agreed transfer period. + So, data can be transferred at a 10 MHz frequency, allowing 10 + MB/second throughput with 8 bits scsi-2 devices and 20 MB/second + with wide16 devices. This frequency can be used safely with + differential devices but may cause problems with singled-ended + devices. + Specify 0 if you want to only use asynchronous data transfers. + Otherwise, specify a value between 5 and 10. Commercial O/Ses + generally use 5 Mhz frequency for synchronous transfers. It is a + reasonable default value. + However, a flawless singled-ended scsi bus supports 10 MHz data + transfers. Regardless the value chosen in the Linux configuration, + the synchronous period can be changed after boot-up through the + /proc/scsi file system. The generic command is: + echo "setsync #target period" >/proc/scsi/ncr53c8xx/0 + Use a 25 ns period for 10 Mhz synchronous data transfers. + If you don't know what to do now, go with the default. -force normal IO +use normal IO CONFIG_SCSI_NCR53C8XX_IOMAPPED - Under linux/Alpha only normal io is currently supported. - Under linux/i386, this option allows you to force the driver to use - normal IO. Memory mapped IO has less latency than normal IO. - During the initialization phase, the driver first tries to use - memory mapped io. If nothing seems wrong, it will use memory mapped - io. If a flaw is detected, it will use normal io. However, it's - possible that memory mapped does not work properly for you and the - driver has not detected the problem; then you would want to say Y - here. The normal answer therefore is N. + This option allows you to force the driver to use normal IO. + Memory mapped IO has less latency than normal IO and works for most + Intel-based hardware. + Under Linux/Alpha only normal IO is currently supported by the driver + and so, this option has no effect. + The normal answer therefore is N. not allow targets to disconnect CONFIG_SCSI_NCR53C8XX_NO_DISCONNECT @@ -1636,54 +1869,83 @@ The safe answer therefore is N. The normal answer therefore is Y. -force asynchronous transfer mode -CONFIG_SCSI_NCR53C8XX_FORCE_ASYNCHRONOUS - This option allows you to force asynchronous transfer mode for all - devices at linux startup. You can enable synchronous negotiation - with the "setsync" control command after boot-up, for example: - echo "setsync 2 25" >/proc/scsi/ncr53c8xx/0 - asks the driver to set the period to 25 ns (10MB/sec) for target 2 - of controller 0 (please read drivers/scsi/README.ncr53c8xx for more - information). The safe answer therefore is Y. The normal answer - therefore is N. - -force synchronous negotiation -CONFIG_SCSI_NCR53C8XX_FORCE_SYNC_NEGO - Some scsi-2 devices support synchronous negotiations but do not - report this feature in byte 7 of inquiry data. - Answer Y only if you suspect some device to be so humble. - The normal answer therefore is N. - -disable master parity checking -CONFIG_SCSI_NCR53C8XX_DISABLE_MPARITY_CHECK - Some hardware may have problems with parity during master cycles on - PCI bus. Only seen once. Answer Y if you suspect such problem. The - normal answer therefore is N. - -disable scsi parity checking -CONFIG_SCSI_NCR53C8XX_DISABLE_PARITY_CHECK - Parity on scsi bus is a system option. If one device checks parity, - then all devices on the scsi bus must generate parity. However, the - parity can be ignored by the scsi devices. Answer Y only if you - know what you are doing. The normal answer therefore is N. +maximum number of queued commands +CONFIG_SCSI_NCR53C8XX_MAX_TAGS + This option allows you to specify the maximum number of commands + that can be queued to a device, when tagged command queuing is + possible. The default value is 4. Minimum is 2, maximum is 12. The + normal answer therefore is the default one. + +assume boards are SYMBIOS compatible +CONFIG_SCSI_NCR53C8XX_SYMBIOS_COMPAT + This option allows you to enable some features depending on GPIO wiring. + These general purpose input/output pins can be used for vendor specific + features or implementation of the standard SYMBIOS features. + Genuine SYMBIOS boards use GPIO0 in output for controller LED and GPIO3 + bit as a flag indicating singled-ended/differential interface. + If all the boards of your system are genuine SYMBIOS boards or use + BIOS and drivers from SYMBIOS, you would want to enable this option, + obviously at your own risks. + The driver behaves correctly on my system with this option enabled. + (SDMS 4.0 + Promise SCSI ULTRA 875 rev 0x3 + ASUS SC200 810A rev 0x12). + This option must be set to N if your system has at least one 53C8XX based + scsi board with a vendor-specific BIOS (example: Tekram DC-390/U/W/F). + +assume boards are SYMBIOS compatible +CONFIG_SCSI_NCR53C8XX_SYMBIOS_COMPAT + This option allows you to enable some features depending on GPIO + wiring. These General Purpose Input/Output pins can be used for + vendor specific features or implementation of the standard SYMBIOS + features. Genuine SYMBIOS boards use GPIO0 in output for controller + LED and GPIO3 bit as a flag indicating singled-ended/differential + interface. + If all the boards of your system are genuine SYMBIOS boards or use + BIOS and drivers from SYMBIOS, you would want to enable this option, + obviously at your own risks. + The driver behaves correctly on my system with this option enabled. + (SDMS 4.0 + Promise SCSI ULTRA 875 rev 0x3 + ASUS SC200 810A rev + 0x12). This option must be set to N if your system has at least one + 53C8XX based scsi board with a vendor-specific BIOS (example: Tekram + DC-390/U/W/F). If unsure, say N. + +IBMMCA SCSI support +CONFIG_SCSI_IBMMCA + If your computer sports an MCA bus system architecture (IBM PS/2) + with an SCSI harddrive, say Y here. Please read + Documentation/mca.txt. This driver is also available as a module ( = + code which can be inserted in and removed from the running kernel + whenever you want). The module will be called ibmmca.o. If you want + to compile it as a module, say M here and read + Documentation/modules.txt. + Normally, all IBM MCA SCSI adapters are automatically detected. You + can completely override auto-detection by specifying + "ibmmcascsi=io1,io2,..." at the boot loader's command prompt or + "io_port=io1,io2,... scsi_id=id1,id2,..." as a parameter of insmod. + "io" and "id" are the I/O base address and the SCSI ID of each + adapter, respectively. Always IN2000 SCSI support CONFIG_SCSI_IN2000 - This is support for an ISA bus SCSI host adaptor. You'll find - more information in drivers/scsi/in2000.readme. If it doesn't - work out of the box, you may have to change the jumpers for IRQ - or address selection. If you want to compile this as a module - ( = code which can be inserted in and removed from the running - kernel whenever you want), say M here and read - Documentation/modules.txt. + This is support for an ISA bus SCSI host adapter. You'll find more + information in drivers/scsi/in2000.readme. If it doesn't work out of + the box, you may have to change the jumpers for IRQ or address + selection. If you want to compile this as a module ( = code which + can be inserted in and removed from the running kernel whenever you + want), say M here and read Documentation/modules.txt. The module + will be called in2000.o. PAS16 SCSI support CONFIG_SCSI_PAS16 - This is support for a SCSI host adaptor. It is explained in section + This is support for a SCSI host adapter. It is explained in section 3.10 of the SCSI-HOWTO, available via ftp (user: anonymous) at sunsite.unc.edu:/pub/Linux/docs/HOWTO. If it doesn't work out of the box, you may have to change some settings in drivers/scsi/pas16.h. - + This driver is also available as + a module ( = code which can be inserted in and removed from the + running kernel whenever you want). The module will be called + pas16.o. If you want to compile it as a module, say M here and read + Documentation/modules.txt. + Qlogic FAS SCSI support CONFIG_SCSI_QLOGIC_FAS This driver works only with the ISA, VLB, and PCMCIA versions of the @@ -1695,12 +1957,13 @@ the SCSI-HOWTO, available via ftp (user: anonymous) at sunsite.unc.edu:/pub/Linux/docs/HOWTO. This driver is also available as a module ( = code which can be inserted in and removed from the - running kernel whenever you want). If you want to compile it as a - module, say M here and read Documentation/modules.txt. + running kernel whenever you want). The module will be called + qlogicfas.o. If you want to compile it as a module, say M here and + read Documentation/modules.txt. Qlogic ISP SCSI support (EXPERIMENTAL) CONFIG_SCSI_QLOGIC_ISP - This driver works for all QLogic PCI SCSI host adaptors (IQ-PCI, + This driver works for all QLogic PCI SCSI host adapters (IQ-PCI, IQ-PCI-10, IQ_PCI-D) except for the PCI-basic card. (This latter card is supported by the "AM53/79C974 PCI SCSI" driver). If you say Y here, make sure to say Y to "PCI BIOS support" as well. More @@ -1709,65 +1972,94 @@ available via ftp (user: anonymous) at sunsite.unc.edu:/pub/Linux/docs/HOWTO. This driver is also available as a module ( = code which can be inserted in and removed from the - running kernel whenever you want). If you want to compile it as a - module, say M here and read Documentation/modules.txt. + running kernel whenever you want). The module will be called + qlogicisp.o. If you want to compile it as a module, say M here and + read Documentation/modules.txt. Seagate ST-02 and Future Domain TMC-8xx SCSI support CONFIG_SCSI_SEAGATE - These are 8-bit SCSI controllers; the ST-01 is also supported by this - driver. It is explained in section 3.9 of the SCSI-HOWTO, available - via ftp (user: anonymous) at + These are 8-bit SCSI controllers; the ST-01 is also supported by + this driver. It is explained in section 3.9 of the SCSI-HOWTO, + available via ftp (user: anonymous) at sunsite.unc.edu:/pub/Linux/docs/HOWTO. If it doesn't work out of the box, you may have to change some settings in drivers/scsi/seagate.h. This driver is also available as a module ( = code which can be inserted in and removed from the running kernel whenever you - want). If you want to compile it as a module, say M here and read - Documentation/modules.txt. + want). The module will be called seagate.o. If you want to compile + it as a module, say M here and read Documentation/modules.txt. Trantor T128/T128F/T228 SCSI support CONFIG_SCSI_T128 - This is support for a SCSI host adaptor. It is explained in section + This is support for a SCSI host adapter. It is explained in section 3.11 of the SCSI-HOWTO, available via ftp (user: anonymous) at sunsite.unc.edu:/pub/Linux/docs/HOWTO. If it doesn't work out of the box, you may have to change some settings in - drivers/scsi/t128.h. Note that Trantor was recently purchased by - Adaptec, and some former Trantor products are being sold under the - Adaptec name. + drivers/scsi/t128.h. Note that Trantor was purchased by Adaptec, and + some former Trantor products are being sold under the Adaptec + name. This driver is also available as a module ( = code which can + be inserted in and removed from the running kernel whenever you + want). The module will be called t128.o. If you want to compile it + as a module, say M here and read Documentation/modules.txt. UltraStor SCSI support CONFIG_SCSI_ULTRASTOR This is support for the UltraStor 14F, 24F and 34F SCSI-2 host - adaptor family. This driver is explained in section 3.12 of the + adapter family. This driver is explained in section 3.12 of the SCSI-HOWTO, available via ftp (user: anonymous) at sunsite.unc.edu:/pub/Linux/docs/HOWTO. If it doesn't work out of the box, you may have to change some settings in drivers/scsi/ultrastor.h. If you want to compile this as a module ( = code which can be inserted in and removed from the running kernel - whenever you want), say M here and read Documentation/modules.txt. + whenever you want), say M here and read + Documentation/modules.txt. The module will be called ultrastor.o. Note that there is also another driver for the same hardware: - "UltraStor 14F/34F support", above. You should only enable one of - them. + "UltraStor 14F/34F support", above. 7000FASST SCSI support CONFIG_SCSI_7000FASST - This driver supports the Western Digital 7000 SCSI host adaptor. + This driver supports the Western Digital 7000 SCSI host adapter. Some information is in the source: drivers/scsi/wd7000.c. This driver is also available as a module ( = code which can be inserted - in and removed from the running kernel whenever you want). If you - want to compile it as a module, say M here and read - Documentation/modules.txt. + in and removed from the running kernel whenever you want). The + module will be called wd7000.o. If you want to compile it as a + module, say M here and read Documentation/modules.txt. -EATA ISA/EISA (DPT PM2011/021/012/022/122/322) support +EATA ISA/EISA/PCI (DPT and generic EATA/DMA-compliant boards) support CONFIG_SCSI_EATA - This driver supports all the DPT SCSI host adapters, such as - PM2011B/9X, PM2021A/9X, PM2012A, PM1012B, PM2022A/9X, PM2122A/9X and - PM2322A/9X. Note that the PM2001 is not supported by this - driver. You want to read the start of drivers/scsi/eata.c and the - SCSI-HOWTO, available via ftp (user: anonymous) at - sunsite.unc.edu:/pub/Linux/docs/HOWTO. If you want to compile this - as a module ( = code which can be inserted in and removed from the - running kernel whenever you want), say M here and read - Documentation/modules.txt. + This driver supports all the EATA/DMA-compliant SCSI host adapters + and does not need any BIOS32 service. DPT ISA and all EISA i/o + addresses are probed looking for the "EATA" signature. If you said Y + to "PCI bios support", the addresses of all the PCI SCSI controllers + reported by BIOS32 are probed as well. Note that there is also + another driver for the same hardware available: "EATA-DMA + support". You should say Y to only one of them. You want to read + the start of drivers/scsi/eata.c and the SCSI-HOWTO, available via + ftp (user: anonymous) at sunsite.unc.edu:/pub/Linux/docs/HOWTO. If + you want to compile this as a module ( = code which can be inserted + in and removed from the running kernel whenever you want), say M + here and read Documentation/modules.txt. The module will be called + eata.o. + +enable tagged command queuing +CONFIG_SCSI_EATA_TAGGED_QUEUE + This is a feature of SCSI-2 which improves performance: the host + adapter can send several SCSI commands to a device's queue even if + previous commands haven't finished yet. Some SCSI devices don't + implement this properly, so the save answer is N. + +enable linked commands +CONFIG_SCSI_EATA_LINKED_COMMANDS + This is a feature of SCSI-2 which improves performance: the host + adapter can send a whole list of commands to a device in one + batch. Some SCSI devices might not implement this properly, so the + save answer is N. + +maximum number of queued commands +CONFIG_SCSI_EATA_MAX_TAGS + This specifies how many SCSI commands can be maximally queued for a + given SCSI device. Go with the default unless you know what you're + doing. Minimum is 2 and maximum is 16. This number will only have an + effect if you said Y to "enable tagged command queuing", above. NCR53c406a SCSI support CONFIG_SCSI_NCR53C406A @@ -1777,14 +2069,33 @@ anonymous) at sunsite.unc.edu:/pub/Linux/docs/HOWTO. If you want to compile this driver as a module ( = code which can be inserted in and removed from the running kernel whenever you want), say M here - and read Documentation/modules.txt. + and read Documentation/modules.txt. The module will be called + NCR53c406.o. + +Tekram DC390W/U/F (T) SCSI support +CONFIG_SCSI_DC390W + This driver supports the Tekram DC390W/U/F (T) PCI SCSI host adapters with + the NCR/Symbios 53c825/875 chips. If you have a DC390 (T) adaptor with the + Am53C974A chip use the DC390(T) driver. + +Tekram DC390(T) (AMD PCscsi) SCSI support +CONFIG_SCSI_DC390T + This driver supports the Tekram DC390(T) PCI SCSI Hostadapter with + the Am53C974A chip, and perhaps other cards using the same chip. + + This driver does _not_ support the DC390W/U/F adaptor with the + NCR/Symbios chips. AM53/79C974 PCI SCSI support CONFIG_SCSI_AM53C974 This is support for the AM53/79C974 SCSI host adapters. Please read drivers/scsi/README.AM53C974 for details. Also, the SCSI-HOWTO, available via ftp (user: anonymous) at - sunsite.unc.edu:/pub/Linux/docs/HOWTO, is for you. + sunsite.unc.edu:/pub/Linux/docs/HOWTO, is for you. If you want to + compile this driver as a module ( = code which can be inserted in + and removed from the running kernel whenever you want), say M here + and read Documentation/modules.txt. The module will be called + AM53C974.o. IOMEGA Parallel Port ZIP drive SCSI support CONFIG_SCSI_PPA @@ -1799,9 +2110,23 @@ drive, a parallel printer or PLIP on the same parallel port, you should compile the drivers as modules and only insert them as needed. To compile this driver as a module, say M here and read - Documentation/modules.txt. Note that you can say N here if you have - the SCSI version of the ZIP drive: it will be supported - automatically if you enabled the generic "SCSI disk support", above. + Documentation/modules.txt. The module will be called ppa.o. Note + that you can say N here if you have the SCSI version of the ZIP + drive: it will be supported automatically if you said Y to the + generic "SCSI disk support", above. + +EPP FIFO Checking +CONFIG_SCSI_PPA_HAVE_PEDANTIC + Some chipsets are slower then their motherboard. We have to control + the state of the FIFO now and then. The values are 0 (don't check + FIFO), 1 (check FIFO every 4 bytes), 2 (check FIFO every other byte) + and 3 (check FIFO every time). If your EPP chipset is from the SMC + series, you are likely to have to set this value greater than 0. + +EPP Timing +CONFIG_SCSI_PPA_EPP_TIME + This is the "reset time period", a delay time. Too low a value may + cause all sorts of mid-level SCSI problems. Network device support? CONFIG_NETDEVICES @@ -1847,16 +2172,17 @@ this device is consigned into oblivion) with a configurable IP address. It is most commonly used in order to make your currently inactive SLIP address seem like a real address for local - programs. If you use SLIP or PPP, you might want to enable it. Read + programs. If you use SLIP or PPP, you might want to say Y here. Read about it in the Network Administrator's Guide, available via ftp (user: anonymous) from sunsite.unc.edu:/pub/Linux/docs/LDP. Since this thing comes often handy, the default is Y. It won't enlarge your kernel either. What a deal. If you want to compile this as a module ( = code which can be inserted in and removed from the running kernel whenever you want), say M here and read - Documentation/modules.txt. If you want to use more than one dummy - device at a time, you need to compile it as a module. Instead of - 'dummy', it will they will then be called 'dummy0', 'dummy1' etc. + Documentation/modules.txt. The module will be called dummy.o. If you + want to use more than one dummy device at a time, you need to + compile it as a module. Instead of 'dummy', it will they will then + be called 'dummy0', 'dummy1' etc. SLIP (serial line) support CONFIG_SLIP @@ -1882,7 +2208,8 @@ want to compile this as a module ( = code which can be inserted in and removed from the running kernel whenever you want), say M here and read Documentation/modules.txt as well as - Documentation/networking/net-modules.txt. + Documentation/networking/net-modules.txt. The module will be called + slip.o. CSLIP compressed headers CONFIG_SLIP_COMPRESSED @@ -1918,11 +2245,23 @@ CONFIG_NET_RADIO Radio based interfaces for Linux. This includes amateur radio (AX.25), support for wireless ethernet and other systems. Note that - the answer to this question won't directly affect the kernel: - saying N will just cause this configure script to skip all the - questions about radio interfaces. Some user-level drivers for scarab - devices which don't require special kernel support are available via - ftp (user: anonymous) from shadow.cabi.net. If unsure, say N. + the answer to this question won't directly affect the kernel: saying + N will just cause this configure script to skip all the questions + about radio interfaces. Some user-level drivers for scarab devices + which don't require special kernel support are available via ftp + (user: anonymous) from shadow.cabi.net. + If unsure, say N. + +AX.25 network interfaces +CONFIG_NET_HAM + Say Y here if you want support for a device that connects your Linux + box to your amateur radio (HAM). AX.25 is the protocol used for + digital traffic over amateur radio connections. You might want to + read the HAM-HOWTO and the AX25-HOWTO, both available via ftp (user: + anonymous) from sunsite.unc.edu:/pub/Linux/docs/HOWTO. Note that the + answer to this question won't directly affect the kernel: saying N + will just cause this configure script to skip all the questions + about amateur radio interfaces. PPP (point-to-point) support CONFIG_PPP @@ -1935,17 +2274,19 @@ anonymous) from sunsite.unc.edu:/pub/Linux/system/Network/serial/). To use PPP, you need an additional program called pppd as described in Documentation/networking/ppp.txt and in the PPP-HOWTO, available - from sunsite.unc.edu:/pub/Linux/docs/HOWTO. Note that you don't need - this option if you just want to run term (term is a program which - gives you almost full Internet connectivity if you have a regular - dial up shell account on some Internet connected UNIX computer. Read - the Term-HOWTO). The PPP option enlarges your kernel by about - 16kB. This driver is also available as a module ( = code which can - be inserted in and removed from the running kernel whenever you - want). If you said Y to "Version information on all symbols" above, - then you cannot compile the PPP driver into the kernel; you can only - compile it as a module. If you want to compile it as a module, say M - here and read Documentation/modules.txt as well as + from sunsite.unc.edu:/pub/Linux/docs/HOWTO. If you upgrade from an + older kernel, you might need to upgrade pppd as well. Note that you + don't need "PPP support" if you just want to run term (term is a + program which gives you almost full Internet connectivity if you + have a regular dial up shell account on some Internet connected UNIX + computer. Read the Term-HOWTO). The PPP option enlarges your kernel + by about 16kB. This driver is also available as a module ( = code + which can be inserted in and removed from the running kernel + whenever you want). If you said Y to "Version information on all + symbols" above, then you cannot compile the PPP driver into the + kernel; you can then only compile it as a module. The module will be + called ppp.o. If you want to compile it as a module, say M here + and read Documentation/modules.txt as well as Documentation/networking/net-modules.txt. Note that, no matter what you do, the BSD compression code (used to compress the IP packets sent over the serial line; has to be supported at the other end as @@ -1953,13 +2294,7 @@ will show up in the directory modules once you have said "make modules". If unsure, say N. -16 channels instead of 4 -CONFIG_PPP_LOTS - Saying Y here will allow you to have up to 16 PPP connections - running in parallel. This is mainly useful if you intend your linux - box to act as a dial-in PPP server. Most people can say N. - -STRIP (Starmode Radio IP) support +STRIP (Metricom Starmode radio IP) CONFIG_STRIP Say Y if you have a Metricom radio and intend to use Starmode Radio IP. STRIP is a radio protocol developed for the MosquitoNet project @@ -1972,39 +2307,157 @@ phone line and use it as a modem.) You can use STRIP on any Linux machine with a serial port, although it is obviously most useful for people with laptop computers. If you think you might get a Metricom - radio in the future, there is no harm in saying yes to STRIP now, - except that it makes the kernel a bit bigger. + radio in the future, there is no harm in saying Y to STRIP now, + except that it makes the kernel a bit bigger. You can also compile + this as a module ( = code which can be inserted in and removed from + the running kernel whenever you want), say M here and read + Documentation/modules.txt. The module will be called strip.o. -WIC (Radio IP bridge) -CONFIG_WIC - Support for the WIC parallel port radio bridge. You'll probably want - to say N. If you want to compile this driver as a module though ( = - code which can be inserted in and removed from the running kernel - whenever you want), say M here and read Documentation/modules.txt. +CONFIG_LAPBETHER +LAPB over Ethernet driver + This is a driver for a pseudo device (usually called /dev/lapb0) + which allows you to open an LAPB point-to-point connection to some + other computer on your ethernet network. In order to do this, you + need to say Y or M to the driver for your ethernet card as well as + to "LAPB Data Link Driver". If you want to compile this driver as a + module ( = code which can be inserted in and removed from the + running kernel whenever you want), say M here and read + Documentation/modules.txt. The module will be called lapbether.o. + If unsure, say N. -Z8530 SCC kiss emulation driver for AX.25 +Z8530 SCC driver for AX.25 CONFIG_SCC These cards are used to connect your Linux box to an amateur radio in order to communicate with other computers. If you want to use - this, read Documentation/networking/z8530drv.txt and the HAM-HOWTO, - available via ftp (user: anonymous) at - sunsite.unc.edu:/pub/Linux/docs/HOWTO. If you want to compile this + this, read Documentation/networking/z8530drv.txt and the + AX.25-HOWTO, available via ftp (user: anonymous) at + sunsite.unc.edu:/pub/Linux/docs/HOWTO. Also make sure to say Y to + "Amateur Radio AX.25 Level 2" support. If you want to compile this as a module ( = code which can be inserted in and removed from the running kernel whenever you want), say M here and read - Documentation/modules.txt. + Documentation/modules.txt. The module will be called scc.o. -BAYCOM ser12 and par96 kiss emulation driver for AX.25 +BAYCOM ser12 and par96 driver for AX.25 CONFIG_BAYCOM This is an experimental driver for Baycom style simple amateur radio modems that connect to either a serial interface or a parallel interface. The driver supports the ser12 and par96 designs. To - configure the driver, use the setbaycom utility available from - http://www.ife.ee.ethz.ch/~sailer/ham/ham.html#lnxbay. For - information on the modems, see http://www.baycom.de and - drivers/char/README.baycom. If you want to compile this as a module - ( = code which can be inserted in and removed from the running - kernel whenever you want), say M here and read - Documentation/modules.txt. This is recommended. + configure the driver, use the sethdlc utility available in the + standard ax25 utilities package. For information on the modems, see + http://www.baycom.de and drivers/net/README.baycom. If you want to + compile this driver as a module ( = code which can be inserted in + and removed from the running kernel whenever you want), say M here + and read Documentation/modules.txt. This is recommended. The module + will be called baycom.o. + +Soundcard modem driver for AX.25 +CONFIG_SOUNDMODEM + This experimental driver allows a standard SoundBlaster or + WindowsSoundSystem compatible soundcard to be used as a packet radio + modem, to send digital traffic over amateur radio. To configure the + driver, use the sethdlc, smdiag and smmixer utilities available in + the standard ax25 utilities package. For information on how to key + the transmitter, see + http://www.ife.ee.ethz.ch/~sailer/pcf/ptt_circ/ptt.html and + drivers/net/README.soundmodem. If you want to compile this driver as + a module ( = code which can be inserted in and removed from the + running kernel whenever you want), say M here and read + Documentation/modules.txt. This is recommended. The module will be + called soundmodem.o. + +Soundcard modem support for SoundBlaster and compatible cards +CONFIG_SOUNDMODEM_SBC + This option enables the soundmodem driver to use SoundBlaster and + compatible cards. If you have a dual mode card (i.e. a WSS cards + with a SoundBlaster emulation) you should say N here and Y to + "Soundcard modem support for WSS and Crystal cards", below, because + this usually results in better performance. + +Soundcard modem support for WSS and Crystal cards +CONFIG_SOUNDMODEM_WSS + This option enables the soundmodem driver to use WindowsSoundSystem + compatible cards. These cards feature a codec chip from either + Analog Devices (such as AD1848, AD1845, AD1812) or Crystal + Semiconductors (such as CS4248, CS423x). This option also supports + the WSS full duplex operation which currently works with Crystal + CS423x chips. If you don't need full duplex operation, do not enable + it to save performance. + +Soundcard modem support for 1200 baud AFSK modulation +CONFIG_SOUNDMODEM_AFSK1200 + This option enables the soundmodem driver 1200 baud AFSK modem, + compatible to popular modems using TCM3105 or AM7911. The demodulator + requires about 12% of the CPU power of a Pentium 75 CPU per channel. + +Soundmodem 1200 baud AFSK using floating point +CONFIG_SOUNDMODEM_AFSK1200_FP + This option enables floating point calculations to be used for the + AFSK1200 baud modem. The Intel Pentium is a perverted chip because + integer multiplications are, although easier to implement in silicon, + an order of magnitude slower than floating point calculations. + Enabling this option uses a highly optimized assembler routine for + correlations, modeled after the one published by Phil Karn, KA9Q. + This reduces the computing power needed on Intel Pentium chips to + about 50%. On the other hand, Pentium clones with faster integer + multiply and slower floating point multiply will probably take + longer with this option turned on. As a rule of thumb, enable it for + Intel Pentium and Pentium Pro processors, and disable it for + anything else. + I (sailer@ife.ee.ethz.ch) am very interested in figures. If you are + willing to give me a feedback, please compile the driver once with + this option enabled and once with it disabled, and send me the cycle + counter numbers obtained with both compilations, and your exact + chip. The cycle counter numbers can be obtained with a recent + sethdlc utility. + +Soundcard modem support for 4800 baud HAPN-1 modulation +CONFIG_SOUNDMODEM_HAPN4800 + This option enables the soundmodem driver 4800 baud HAPN-1 + compatible modem. This modulation seems to be widely used 'down + under' and in the Netherlands. Here, nobody uses it, so I could not + test if it works. It is compatible to itself, however :-) + +Soundcard modem support for 9600 baud FSK G3RUH modulation +CONFIG_SOUNDMODEM_FSK9600 + This option enables the soundmodem driver 9600 baud FSK modem, + compatible to the G3RUH standard. The demodulator requires about 4% + of the CPU power of a Pentium 75 CPU per channel. You can say Y to + both 1200 baud AFSK and 9600 baud FSK if you want (but obviously you + can only use one protocol at a time, depending on what the other end + can understand). + +Soundcard modem support using floating point arithmetic +CONFIG_SOUNDMODEM_FLOAT + This option enables floating point calculations to be used for the + AFSK1200 baud modem. The Intel Pentium is a perverted chip because + integer multiplications are, although easier to implement in silicon, + an order of a magnitude slower than floating point calculations. + Enabling this option uses a highly optimized assembler routine for + correlations, modeled after the one published by Phil Karn, KA9Q. + This reduces the computing power needed on Intel Pentium chips to + about 50%. On the other hand, Pentium clones with faster integer + multiply and slower floating point multiply will probably take + longer with this option turned on. As a rule of thumb, enable it for + Intel Pentium and Pentium Pro processors, and disable it for + anything else. + I (sailer@ife.ee.ethz.ch) am very interested in figures. If you are + willing to give me a feedback, please compile the driver once with + this option enabled and once with it disabled, and send me the cycle + counter numbers obtained with both compilations, and your exact + chip. The cycle counter numbers can be obtained by a recent sethdlc + utility. + +Serial port KISS driver for AX.25 +CONFIG_MKISS + KISS is the protocol used to send IP traffic over AX.25 radio + connections, somewhat similar to SLIP for telephone lines. Say Y + here if you intend to send internet traffic over amateur radio, + using some device connected to your machine's serial port. In that + case, you also have to say Y to "Amateur Radio AX.25 Level 2" + support. If you want to compile this driver as a module ( = code + which can be inserted in and removed from the running kernel + whenever you want), say M here and read + Documentation/modules.txt. The module will be called mkiss.o. PLIP (parallel port) support CONFIG_PLIP @@ -2028,25 +2481,25 @@ your kernel by about 8kB. If you want to compile this as a module ( = code which can be inserted in and removed from the running kernel whenever you want), say M here and read Documentation/modules.txt as - well as Documentation/networking/net-modules.txt. If you want to use - both a parallel printer and PLIP, there are two cases: 1) If the - printer and the PLIP cable are to use the same parallel port - (presumably because you have just one), it is best to compile both - drivers as modules and load and unload them as needed. 2) To use - different parallel ports for the printer and the PLIP cable, you can - say Y to the printer driver, specify the base address of the - parallel port(s) to use for the printer(s) with the "lp" kernel - command line option. (See the documentation of your boot loader - (lilo or loadlin) about how to pass options to the kernel at boot - time. The lilo procedure is also explained in the SCSI-HOWTO, - available via ftp (user: anonymous) in - sunsite.unc.edu:/pub/Linux/docs/HOWTO.) The standard base addresses - as well as the syntax of the "lp" command line option can be found - in drivers/char/lp.c. You can then say Y to this PLIP driver or, - preferably, M in which case Documentation/networking/net-modules.txt - tells you how to specify the port and IRQ to be used by PLIP at - module load time. - It's safe to say N here. + well as Documentation/networking/net-modules.txt. The module will be + called plip.o. If you want to use both a parallel printer and PLIP, + there are two cases: 1) If the printer and the PLIP cable are to use + the same parallel port (presumably because you have just one), it is + best to compile both drivers as modules and load and unload them as + needed. 2) In order to use different parallel ports for the printer + and the PLIP cable, you can say Y to the printer driver and specify + the base address of the parallel port(s) to use for the printer(s) + with the "lp" kernel command line option. (Try "man bootparam" or + see the documentation of your boot loader (lilo or loadlin) about + how to pass options to the kernel at boot time. The lilo procedure + is also explained in the SCSI-HOWTO, available via ftp (user: + anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO.) The standard + base addresses as well as the syntax of the "lp" command line option + can be found in drivers/char/lp.c. You can then say Y to this PLIP + driver or, preferably, M in which case + Documentation/networking/net-modules.txt tells you how to specify + the port and IRQ to be used by PLIP at module load time. It's safe + to say N here. EQL (serial line load balancing) support CONFIG_EQUALIZER @@ -2059,8 +2512,9 @@ EQL Linux driver or with a Livingston Portmaster 2e. Say Y if you want this and read drivers/net/README.eql. This driver is also available as a module ( = code which can be inserted in and removed - from the running kernel whenever you want). If you want to compile - it as a module, say M here and read Documentation/modules.txt. + from the running kernel whenever you want). The module will be + called eql.o. If you want to compile it as a module, say M here + and read Documentation/modules.txt. Frame Relay (DLCI) support CONFIG_DLCI @@ -2078,8 +2532,9 @@ the net-tools package as explained in Documentation/networking/framerelay.txt. This driver is also available as a module ( = code which can be inserted in and removed - from the running kernel whenever you want). If you want to compile - it as a module, say M here and read Documentation/modules.txt. + from the running kernel whenever you want). The module will be + called dlci.o. If you want to compile it as a module, say M here + and read Documentation/modules.txt. Max open DLCI CONFIG_DLCI_COUNT @@ -2097,24 +2552,111 @@ Sangoma S502A FRAD support CONFIG_SDLA Say Y here if you need a driver for the Sangoma S502A, S502E, and - S508 Frame Relay Access Devices. These are multi-protocol - cards, but only frame relay is supported by the driver at this - time. Please read Documentation/framerelay.txt. This driver is also - available as a module ( = code which can be inserted in and removed - from the running kernel whenever you want). If you want to compile - it as a module, say M here and read Documentation/modules.txt. + S508 Frame Relay Access Devices. These are multi-protocol cards, but + only frame relay is supported by the driver at this time. Please + read Documentation/framerelay.txt. This driver is also available as + a module ( = code which can be inserted in and removed from the + running kernel whenever you want). The module will be called + sdla.o. If you want to compile it as a module, say M here and read + Documentation/modules.txt. + +WAN Router +CONFIG_WAN_ROUTER + Wide Area Networks (WANs), such as X.25, frame relay and leased + lines, are used to interconnect Local Area Networks (LANs) over vast + distances with data transfer rates significantly higher than those + achievable with commonly used asynchronous modem connections. + Usually, a quite expensive external device called `WAN router' is + needed to connect to a WAN. + As an alternative, WAN routing can be built into the Linux + kernel. With relatively inexpensive WAN interface cards available + on the market, a perfectly usable router can be built for less than + half the price of an external router. If you have one of those + cards (with appropriate WAN Link Driver) and wish to use your Linux + box as a WAN router, you may say 'Y' to this option. You will also + need a wan-tools package available via FTP (user: anonymous) from + ftp.sangoma.com. Read Documentation/networking/wan-router.txt for + more information. + WAN routing is always built as a module ( = code which can be + inserted in and removed from the running kernel whenever you want). + The module will be called wanrouter.o. For general information + about modules read Documentation/modules.txt. + +WAN Drivers +CONFIG_WAN_DRIVERS + Say 'Y' to this option if you are planning to use your Linux box + as a WAN router ( = device used to interconnect local area networks + over wide area communication links, such as leased lines and public + data networks, e.g. X.25 and frame relay) and you will be offered a + list of WAN drivers currently available. For more information, read + Documentation/networking/wan-router.txt. + +Sangoma WANPIPE(tm) multiprotocol cards +CONFIG_VENDOR_SANGOMA + WANPIPE from Sangoma Technologies Inc. (http://www.sangoma.com) + is a family of intelligent multiprotocol WAN adapters with data + transfer rates up to T1 (1.544 Mbps). They are also known as + Synchronous Data Link Adapters (SDLA) and designated S502E(A), S503 + or S508. These cards support the X.25, Frame Relay, and PPP + protocols. If you have one or more of these cards, say 'Y' to this + option. The next questions will ask you about the protocols you + want the driver to support. The driver will be compiled as a module + ( = code which can be inserted in and removed from the running + kernel whenever you want). The module will be called wanpipe.o. + For general information about modules read + Documentation/modules.txt. + +Maximum number of cards +CONFIG_WANPIPE_CARDS + Enter number of WANPIPE adapters installed in your machine. The + driver can support up to 8 cards. You may enter more than you + actually have if you plan to add more cards in the future without + re-compiling the driver, but remember that in this case you'll waste + some kernel memory (about 1K per card). + +WANPIPE X.25 support +CONFIG_WANPIPE_X25 + Say 'Y' to this option, if you are planning to connect a WANPIPE + card to an X.25 network. If you say 'N', the X.25 support will not + be included in the driver (saves about 16K of kernel memory). + +WANPIPE Frame Relay support +CONFIG_WANPIPE_FR + Say 'Y' to this option, if you are planning to connect a WANPIPE + card to a frame relay network. If you say 'N', the frame relay + support will not be included in the driver (saves about 16K of + kernel memory). + +WANPIPE PPP support +CONFIG_WANPIPE_PPP + Say 'Y' to this option, if you are planning to connect a WANPIPE + card to a leased line using Point-to-Point protocol (PPP). If you + say 'N', the PPP support will not be included in the driver (saves + about 16K of kernel memory). Sun LANCE Ethernet support CONFIG_SUN_LANCE This is support for lance ethernet cards on Sun workstations such as the Sparcstation IPC (any Sparc with a network interface 'le0' under - SunOS basically). + SunOS basically). This driver is also available as a module ( = code + which can be inserted in and removed from the running kernel + whenever you want). The module will be called lance.o. If you want + to compile it as a module, say M here and read + Documentation/modules.txt. Sun Intel Ethernet support CONFIG_SUN_INTEL This is support for the intel ethernet cards on some Sun workstations (all those with a network interface 'ie0' under SunOS). +Ethernet (10 or 100Mbit) +CONFIG_NET_ETHERNET + Ethernet is a widely used protocol on local area networks. If you + have a ethernet card in your computer and want to use it under + Linux, say Y here. Note that the answer to this question doesn't + directly affect the kernel: saying N will just cause this configure + script to skip all the questions about ethernet card drivers. + Western Digital/SMC cards CONFIG_NET_VENDOR_SMC If you have a network (ethernet) card belonging to this class, say Y @@ -2136,8 +2678,9 @@ the Ethernet-HOWTO, available via ftp (user: anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO. This driver is also available as a module ( = code which can be inserted in and removed from the - running kernel whenever you want). If you want to compile it as a - module, say M here and read Documentation/modules.txt as well as + running kernel whenever you want). The module will be called + wd.o. If you want to compile it as a module, say M here and read + Documentation/modules.txt as well as Documentation/networking/net-modules.txt. If you plan to use more than one network card under linux, read the Multiple-Ethernet-mini-HOWTO, available from @@ -2149,15 +2692,16 @@ the Ethernet-HOWTO, available via ftp (user: anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO. This driver is also available as a module ( = code which can be inserted in and removed - from the running kernel whenever you want). If you want to compile - it as a module, say M here and read Documentation/modules.txt as - well as Documentation/networking/net-modules.txt. If you plan to use - more than one network card under linux, read the + from the running kernel whenever you want). The module will be + called smc-ultra.o. If you want to compile it as a module, say M + here and read Documentation/modules.txt as well as + Documentation/networking/net-modules.txt. If you plan to use more + than one network card under linux, read the Multiple-Ethernet-mini-HOWTO, available from - sunsite.unc.edu:/pub/Linux/docs/HOWTO/mini. - Important: There have been many reports that, with some motherboards - mixing an SMC Ultra and an Adaptec AHA1542 SCSI card causes corruption - problems with many operating systems. + sunsite.unc.edu:/pub/Linux/docs/HOWTO/mini. Important: There have + been many reports that, with some motherboards mixing an SMC Ultra + and an Adaptec AHA1542 SCSI card causes corruption problems with + many operating systems. SMC 9194 Support CONFIG_SMC9194 @@ -2168,10 +2712,11 @@ the Ethernet-HOWTO, available via ftp (user: anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO. This driver is also available as a module ( = code which can be inserted in and removed - from the running kernel whenever you want). If you want to compile - it as a module, say M here and read Documentation/modules.txt as - well as Documentation/networking/net-modules.txt. If you plan to use - more than one network card under linux, read the + from the running kernel whenever you want). The module will be + called smc9194.o. If you want to compile it as a module, say M here + and read Documentation/modules.txt as well as + Documentation/networking/net-modules.txt. If you plan to use more + than one network card under linux, read the Multiple-Ethernet-mini-HOWTO, available from sunsite.unc.edu:/pub/Linux/docs/HOWTO/mini. @@ -2179,9 +2724,10 @@ CONFIG_LANCE If you have a network (ethernet) card of this type, say Y and read the Ethernet-HOWTO, available via ftp (user: anonymous) in - sunsite.unc.edu:/pub/Linux/docs/HOWTO. If you plan to use more than - one network card under linux, read the Multiple-Ethernet-mini-HOWTO, - available from sunsite.unc.edu:/pub/Linux/docs/HOWTO/mini. + sunsite.unc.edu:/pub/Linux/docs/HOWTO. Some LinkSys cards are of + this type. If you plan to use more than one network card under + linux, read the Multiple-Ethernet-mini-HOWTO, available from + sunsite.unc.edu:/pub/Linux/docs/HOWTO/mini. 3COM cards CONFIG_NET_VENDOR_3COM @@ -2200,13 +2746,16 @@ If you have a network (ethernet) card of this type, say Y and read the Ethernet-HOWTO, available via ftp (user: anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO. Also, consider buying a new - card, since the 3c501 is slow and obsolete. This driver is also + card, since the 3c501 is slow, broken, and obsolete: you will have + problems. Some people suggest to ping ("man ping") a nearby machine + every minute ("man cron") when using this card. This driver is also available as a module ( = code which can be inserted in and removed - from the running kernel whenever you want). If you want to compile - it as a module, say M here and read Documentation/modules.txt as well - as Documentation/networking/net-modules.txt. If you plan to use more - than one network card under linux, read the - Multiple-Ethernet-mini-HOWTO, available from + from the running kernel whenever you want). The module will be + called 3c501.o. If you want to compile it as a module, say M here + and read Documentation/modules.txt as well as + Documentation/networking/net-modules.txt. If you plan to use more + than one network card under linux, read the + Multiple-Ethernet-mini-HOWTO, available from sunsite.unc.edu:/pub/Linux/docs/HOWTO/mini - and don't use 3c501s. 3c503 support @@ -2215,8 +2764,9 @@ the Ethernet-HOWTO, available via ftp (user: anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO. This driver is also available as a module ( = code which can be inserted in and removed from the - running kernel whenever you want). If you want to compile it as a - module, say M here and read Documentation/modules.txt as well as + running kernel whenever you want). The module will be called + 3c503.o. If you want to compile it as a module, say M here and read + Documentation/modules.txt as well as Documentation/networking/net-modules.txt. If you plan to use more than one network card under linux, read the Multiple-Ethernet-mini-HOWTO, available from @@ -2231,19 +2781,34 @@ compile this as a module ( = code which can be inserted in and removed from the running kernel whenever you want), say M here and read Documentation/modules.txt as well as + Documentation/networking/net-modules.txt. The module will be called + 3c505.o. If you plan to use more than one network card under linux, + read the Multiple-Ethernet-mini-HOWTO, available from + sunsite.unc.edu:/pub/Linux/docs/HOWTO/mini. + +3c507 support +CONFIG_EL16 + If you have a network (ethernet) card of this type, say Y and read + the Ethernet-HOWTO, available via ftp (user: anonymous) in + sunsite.unc.edu:/pub/Linux/docs/HOWTO. This driver is also available + as a module ( = code which can be inserted in and removed from the + running kernel whenever you want). The module will be called + 3c507.o. If you want to compile it as a module, say M here and read + Documentation/modules.txt as well as Documentation/networking/net-modules.txt. If you plan to use more than one network card under linux, read the Multiple-Ethernet-mini-HOWTO, available from sunsite.unc.edu:/pub/Linux/docs/HOWTO/mini. -3c507 support -CONFIG_EL16 +3c523 support +CONFIG_ELMC If you have a network (ethernet) card of this type, say Y and read the Ethernet-HOWTO, available via ftp (user: anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO. This driver is also available as a module ( = code which can be inserted in and removed from the - running kernel whenever you want). If you want to compile it as a - module, say M here and read Documentation/modules.txt as well as + running kernel whenever you want). The module will be called + 3c523.o. If you want to compile it as a module, say M here and read + Documentation/modules.txt as well as Documentation/networking/net-modules.txt. If you plan to use more than one network card under linux, read the Multiple-Ethernet-mini-HOWTO, available from @@ -2257,9 +2822,9 @@ If you want to compile this as a module ( = code which can be inserted in and removed from the running kernel whenever you want), say M here and read Documentation/modules.txt as well as - Documentation/networking/net-modules.txt. If you plan to use more - than one network card under linux, read the - Multiple-Ethernet-mini-HOWTO, available from + Documentation/networking/net-modules.txt. The module will be called + 3c509.o. If you plan to use more than one network card under linux, + read the Multiple-Ethernet-mini-HOWTO, available from sunsite.unc.edu:/pub/Linux/docs/HOWTO/mini. If your card is not working you may need to use the DOS setup disk to disable Plug & Play mode, and to select the default media type. @@ -2270,13 +2835,13 @@ the Ethernet-HOWTO, available via ftp (user: anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO. More specific information is in Documentation/networking/vortex.txt and in the comments at the - beginning of drivers/net/3c59x.c. If you want to compile this - as a module ( = code which can be inserted in and removed from the + beginning of drivers/net/3c59x.c. If you want to compile this as a + module ( = code which can be inserted in and removed from the running kernel whenever you want), say M here and read Documentation/modules.txt as well as - Documentation/networking/net-modules.txt. If you plan to use more - than one network card under linux, read the - Multiple-Ethernet-mini-HOWTO, available from + Documentation/networking/net-modules.txt. The module will be called + 3c59x.o. If you plan to use more than one network card under linux, + read the Multiple-Ethernet-mini-HOWTO, available from sunsite.unc.edu:/pub/Linux/docs/HOWTO/mini Other ISA cards @@ -2297,13 +2862,14 @@ ARCnet support CONFIG_ARCNET If you have a network card of this type, say Y and check out the - (arguably) beautiful poetry in Documentation/networking/arcnet.txt. + (arguably) beautiful poetry in Documentation/networking/arcnet.txt. You might also want to have a look at the Ethernet-HOWTO, available via ftp (user: anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO (even though ARCnet is not really ethernet). This driver is also available as a module ( = code which can be inserted in and removed - from the running kernel whenever you want). If you want to compile it - as a module, say M here and read Documentation/modules.txt as well as + from the running kernel whenever you want). The module will be + called arcnet.o. If you want to compile it as a module, say M here + and read Documentation/modules.txt as well as Documentation/networking/net-modules.txt. If you plan to use more than one network card under linux, read the Multiple-Ethernet-mini-HOWTO, available from @@ -2311,14 +2877,14 @@ Enable arc0e (ARCnet "ether-encap" packet format) CONFIG_ARCNET_ETH - This allows you to use "ethernet encapsulation" with your ARCnet card - via the virtual arc0e device. You only need arc0e if you want to - talk to nonstandard ARCnet software, specifically, DOS/Windows-style - "NDIS" drivers. You do not need to enable this option to communicate - with industry-standard RFC1201 implementations, like the arcether.com - packet driver or most DOS/Windows ODI drivers. RFC1201 is included - automatically as the arc0 device. Please read the ARCnet - documentation in Documentation/networking/arcnet.txt for more + This allows you to use "ethernet encapsulation" with your ARCnet + card via the virtual arc0e device. You only need arc0e if you want + to talk to nonstandard ARCnet software, specifically, + DOS/Windows-style "NDIS" drivers. You do not need to say Y here to + communicate with industry-standard RFC1201 implementations, like the + arcether.com packet driver or most DOS/Windows ODI drivers. RFC1201 + is included automatically as the arc0 device. Please read the + ARCnet documentation in Documentation/networking/arcnet.txt for more information about using arc0e and arc0s. Enable arc0s (ARCnet RFC1051 packet format) @@ -2326,8 +2892,8 @@ This allows you to use RFC1051 with your ARCnet card via the virtual arc0s device. You only need arc0s if you want to talk to ARCnet software complying with the "old" standard, specifically, the DOS - arcnet.com packet driver, Amigas running AmiTCP, and some variants of - NetBSD. You do not need to enable this option to communicate with + arcnet.com packet driver, Amigas running AmiTCP, and some variants + of NetBSD. You do not need to say Y here to communicate with industry-standard RFC1201 implementations, like the arcether.com packet driver or most DOS/Windows ODI drivers. RFC1201 is included automatically as the arc0 device. Please read the ARCnet @@ -2340,13 +2906,29 @@ the Ethernet-HOWTO, available via ftp (user: anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO. This driver is also available as a module ( = code which can be inserted in and removed from the - running kernel whenever you want). If you want to compile it as a - module, say M here and read Documentation/modules.txt as well as + running kernel whenever you want). The module will be called + e2100.o. If you want to compile it as a module, say M here and read + Documentation/modules.txt as well as Documentation/networking/net-modules.txt. If you plan to use more than one network card under linux, read the Multiple-Ethernet-mini-HOWTO, available from sunsite.unc.edu:/pub/Linux/docs/HOWTO/mini. +CS89x0 support +CONFIG_CS89x0 + Support for CS89x0 chipset based ethernet cards. If you have a + network (ethernet) card of this type, say Y and read the + Ethernet-HOWTO, available via ftp (user: anonymous) in + sunsite.unc.edu:/pub/Linux/docs/HOWTO as well as + Documentation/networking/cs89x0.txt. If you want to compile this as + a module ( = code which can be inserted in and removed from the + running kernel whenever you want), say M here and read + Documentation/modules.txt as well as + Documentation/networking/net-modules.txt. The module will be called + cs89x.o. If you plan to use more than one network card under linux, + read the Multiple-Ethernet-mini-HOWTO, available from + sunsite.unc.edu:/pub/Linux/docs/HOWTO/mini. + DEPCA support CONFIG_DEPCA If you have a network (ethernet) card of this type, say Y and read @@ -2355,9 +2937,9 @@ drivers/net/depca.c. If you want to compile this as a module ( = code which can be inserted in and removed from the running kernel whenever you want), say M here and read Documentation/modules.txt as - well as Documentation/networking/net-modules.txt. If you plan to use - more than one network card under linux, read the - Multiple-Ethernet-mini-HOWTO, available from + well as Documentation/networking/net-modules.txt. The module will be + called depca.o. If you plan to use more than one network card under + linux, read the Multiple-Ethernet-mini-HOWTO, available from sunsite.unc.edu:/pub/Linux/docs/HOWTO/mini. EtherWorks 3 support @@ -2369,9 +2951,9 @@ If you want to compile this as a module ( = code which can be inserted in and removed from the running kernel whenever you want), say M here and read Documentation/modules.txt as well as - Documentation/networking/net-modules.txt. If you plan to use more - than one network card under linux, read the - Multiple-Ethernet-mini-HOWTO, available from + Documentation/networking/net-modules.txt. The module will be called + ewrk3.o. If you plan to use more than one network card under linux, + read the Multiple-Ethernet-mini-HOWTO, available from sunsite.unc.edu:/pub/Linux/docs/HOWTO/mini. SEEQ8005 support @@ -2391,19 +2973,20 @@ as a module ( = code which can be inserted in and removed from the running kernel whenever you want). If you want to compile it as a module, say M here and read Documentation/modules.txt as well as - Documentation/networking/net-modules.txt. If you plan to use more - than one network card under linux, read the - Multiple-Ethernet-mini-HOWTO, available from + Documentation/networking/net-modules.txt. The module will be called + at1700.o. If you plan to use more than one network card under linux, + read the Multiple-Ethernet-mini-HOWTO, available from sunsite.unc.edu:/pub/Linux/docs/HOWTO/mini. FMV-181/182/183/184 support CONFIG_FMV18X If you have a Fujitsu FMV-181/182/183/184 network (ethernet) card, - say Y and read the Ethernet-HOWTO, available via ftp (user: anonymous) - in sunsite.unc.edu:/pub/Linux/docs/HOWTO. This driver is also - available as a module ( = code which can be inserted in and removed - from the running kernel whenever you want). If you want to compile it - as a module, say M here and read Documentation/modules.txt as well as + say Y and read the Ethernet-HOWTO, available via ftp (user: + anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO. This driver is + also available as a module ( = code which can be inserted in and + removed from the running kernel whenever you want). The module will + be called fmv18x.o. If you want to compile it as a module, say M + here and read Documentation/modules.txt as well as Documentation/networking/net-modules.txt. If you plan to use more than one network card under linux, read the Multiple-Ethernet-mini-HOWTO, available from @@ -2417,8 +3000,9 @@ the Ethernet-HOWTO, available via ftp (user: anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO. This driver is also available as a module ( = code which can be inserted in and removed from the - running kernel whenever you want). If you want to compile it as a - module, say M here and read Documentation/modules.txt as well as + running kernel whenever you want). The module will be called + eepro.o. If you want to compile it as a module, say M here and read + Documentation/modules.txt as well as Documentation/networking/net-modules.txt. If you plan to use more than one network card under linux, read the Multiple-Ethernet-mini-HOWTO, available from @@ -2435,16 +3019,21 @@ module ( = code which can be inserted in and removed from the running kernel whenever you want), say M here and read Documentation/modules.txt as well as - Documentation/networking/net-modules.txt. If you plan to use more - than one network card under linux, read the - Multiple-Ethernet-mini-HOWTO, available from + Documentation/networking/net-modules.txt. The module will be called + eexpress.o. If you plan to use more than one network card under + linux, read the Multiple-Ethernet-mini-HOWTO, available from sunsite.unc.edu:/pub/Linux/docs/HOWTO/mini. NI5210 support CONFIG_NI52 If you have a network (ethernet) card of this type, say Y and read the Ethernet-HOWTO, available via ftp (user: anonymous) in - sunsite.unc.edu:/pub/Linux/docs/HOWTO. If you plan to use more than + sunsite.unc.edu:/pub/Linux/docs/HOWTO. This driver is also available + as a module ( = code which can be inserted in and removed from the + running kernel whenever you want). The module will be called + ni52.o. If you want to compile it as a module, say M here and read + Documentation/modules.txt as well as + Documentation/networking/net-modules.txt. If you plan to use more than one network card under linux, read the Multiple-Ethernet-mini-HOWTO, available from sunsite.unc.edu:/pub/Linux/docs/HOWTO/mini. @@ -2452,14 +3041,17 @@ CONFIG_NI65 If you have a network (ethernet) card of this type, say Y and read the Ethernet-HOWTO, available via ftp (user: anonymous) in - sunsite.unc.edu:/pub/Linux/docs/HOWTO. If you plan to use more than - one network card under linux, read the Multiple-Ethernet-mini-HOWTO, - available from sunsite.unc.edu:/pub/Linux/docs/HOWTO/mini. + sunsite.unc.edu:/pub/Linux/docs/HOWTO. If you want to compile it as + a module, say M here and read Documentation/modules.txt as well as + Documentation/networking/net-modules.txt. The module will be called + ni65.o. If you plan to use more than one network card under linux, + read the Multiple-Ethernet-mini-HOWTO, available from + sunsite.unc.edu:/pub/Linux/docs/HOWTO/mini. Ottawa PI and PI/2 support CONFIG_PI This is a driver for the Ottawa Amateur Radio Club PI and PI2 cards, - which are commonly used to send internet traffic over amateur radio. + which are commonly used to send internet traffic over amateur radio. More information about these cards is on the WWW at http://hydra.carleton.ca/info/pi2.html (To browse the WWW, you need to have access to a machine on the Internet that has one of the @@ -2467,32 +3059,39 @@ you can say Y here and should read the HAM-HOWTO, available via ftp (user: anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO. Also, you should have said Y to "AX.25 support" above, because AX.25 is - the protocol used for digital traffic over radio links. + the protocol used for digital traffic over radio links. If you want + to compile this as a module ( = code which can be inserted in and + removed from the running kernel whenever you want), say M here and + read Documentation/modules.txt. The module will be called pi2.o. Gracilis PackeTwin support CONFIG_PT - This card is similar to the PI card (mentioned above). It is used - mainly by amateur radio operators for packet radio. You should have - already said Y to "AX.25 support" as this card uses that protocol. - More information about this driver can be found in the file - drivers/net/README.pt. NOTE: The card is capable of DMA and full - duplex but neither of these have been coded in the driver as yet. + This is a card used mainly by amateur radio operators for packet + radio. You should have already said Y to "AX.25 support" as this + card uses that protocol. More information about this driver can be + found in the file drivers/net/README.pt. NOTE: The card is capable + of DMA and full duplex but neither of these have been coded in the + driver as yet. This driver is also available as a module ( = code + which can be inserted in and removed from the running kernel + whenever you want). If you want to compile it as a module, say M + here and read Documentation/modules.txt as well as + Documentation/networking/net-modules.txt. The module will be called + pt.o. -WaveLAN support +AT&T WaveLAN & DEC RoamAbout DS support CONFIG_WAVELAN - These are cards for wireless ethernet-like networking. Supported are - AT&T GIS and NCR WaveLAN cards. If you want to use a card of this - type under Linux, say Y and read the Ethernet-HOWTO, available via - ftp (user: anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO. Some - more specific information is contained in - drivers/net/README.wavelan. This driver is also available as a - module ( = code which can be inserted in and removed from the - running kernel whenever you want). If you want to compile it as a - module, say M here and read Documentation/modules.txt as well as - Documentation/networking/net-modules.txt. If you plan to use more - than one network card under linux, read the - Multiple-Ethernet-mini-HOWTO, available from - sunsite.unc.edu:/pub/Linux/docs/HOWTO/mini. + The Lucent Wavelan (formerly NCR and AT&T ; or DEC RoamAbout DS) + is a Radio LAN (wireless ethernet-like) at 900 MHz and 2.4 GHz. + This driver support the ISA version of the Wavelan. A driver for + the pcmcia hardware is available in David Hinds's pcmcia package. + This driver is fairly stable and may be compiled as a module + (wavelan.o). It implements many nice feature and the Wireless + Extensions (you must get the Wireless tools from the net). + For documentation, refer to : + o the wavelan man page, wireless tools man pages + o wavelan.p.h and the source code + o Ethernet-HOWTO, Multiple-Ethernet-mini-HOWTO, Module-HOWTO + o More documentation to come when I will have the time :-) HP PCLAN+ (27247B and 27252A) support CONFIG_HPLAN_PLUS @@ -2500,8 +3099,9 @@ the Ethernet-HOWTO, available via ftp (user: anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO. This driver is also available as a module ( = code which can be inserted in and removed from the - running kernel whenever you want). If you want to compile it as a - module, say M here and read Documentation/modules.txt as well as + running kernel whenever you want). The module will be called + hp-plus.o. If you want to compile it as a module, say M here and + read Documentation/modules.txt as well as Documentation/networking/net-modules.txt. If you plan to use more than one network card under linux, read the Multiple-Ethernet-mini-HOWTO, available from @@ -2513,8 +3113,9 @@ the Ethernet-HOWTO, available via ftp (user: anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO. This driver is also available as a module ( = code which can be inserted in and removed from the - running kernel whenever you want). If you want to compile it as a - module, say M here and read Documentation/modules.txt as well as + running kernel whenever you want). The module will be called + hp.o. If you want to compile it as a module, say M here and read + Documentation/modules.txt as well as Documentation/networking/net-modules.txt. If you plan to use more than one network card under linux, read the Multiple-Ethernet-mini-HOWTO, available from @@ -2528,19 +3129,21 @@ as a module ( = code which can be inserted in and removed from the running kernel whenever you want), say M here and read Documentation/modules.txt as well as - Documentation/networking/net-modules.txt. If you plan to use more - than one network card under linux, read the - Multiple-Ethernet-mini-HOWTO, available from + Documentation/networking/net-modules.txt. The module will be called + hp100.o. If you plan to use more than one network card under linux, + read the Multiple-Ethernet-mini-HOWTO, available from sunsite.unc.edu:/pub/Linux/docs/HOWTO/mini. NE2000/NE1000 support CONFIG_NE2000 If you have a network (ethernet) card of this type, say Y and read the Ethernet-HOWTO, available via ftp (user: anonymous) in - sunsite.unc.edu:/pub/Linux/docs/HOWTO. This driver is also available - as a module ( = code which can be inserted in and removed from the - running kernel whenever you want). If you want to compile it as a - module, say M here and read Documentation/modules.txt as well as + sunsite.unc.edu:/pub/Linux/docs/HOWTO. Many ethernet cards without a + specific driver are compatible with NE2000. This driver is also + available as a module ( = code which can be inserted in and removed + from the running kernel whenever you want). The module will be + called ne.o. If you want to compile it as a module, say M here and + read Documentation/modules.txt as well as Documentation/networking/net-modules.txt. If you plan to use more than one network card under linux, read the Multiple-Ethernet-mini-HOWTO, available from @@ -2574,8 +3177,23 @@ the Ethernet-HOWTO, available via ftp (user: anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO. This driver is also available as a module ( = code which can be inserted in and removed from the - running kernel whenever you want). If you want to compile it as a - module, say M here and read Documentation/modules.txt as well as + running kernel whenever you want). The module will be called + ac3200.o. If you want to compile it as a module, say M here and read + Documentation/modules.txt as well as + Documentation/networking/net-modules.txt. If you plan to use more + than one network card under linux, read the + Multiple-Ethernet-mini-HOWTO, available from + sunsite.unc.edu:/pub/Linux/docs/HOWTO/mini. + +Racal-Interlan EISA ES3210 support +CONFIG_ES3210 + If you have a network (ethernet) card of this type, say Y and read + the Ethernet-HOWTO, available via ftp (user: anonymous) in + sunsite.unc.edu:/pub/Linux/docs/HOWTO. This driver is also available + as a module ( = code which can be inserted in and removed from the + running kernel whenever you want). The module will be called + es3210.o. If you want to compile it as a module, say M here and read + Documentation/modules.txt as well as Documentation/networking/net-modules.txt. If you plan to use more than one network card under linux, read the Multiple-Ethernet-mini-HOWTO, available from @@ -2589,22 +3207,23 @@ as a module ( = code which can be inserted in and removed from the running kernel whenever you want), say M here and read Documentation/modules.txt as well as - Documentation/networking/net-modules.txt. If you plan to use more - than one network card under linux, read the - Multiple-Ethernet-mini-HOWTO, available from + Documentation/networking/net-modules.txt. The module will be called + apricot.o. If you plan to use more than one network card under + linux, read the Multiple-Ethernet-mini-HOWTO, available from sunsite.unc.edu:/pub/Linux/docs/HOWTO/mini. -DE425, DE434, DE435 support +Generic DECchip & DIGITAL EtherWORKS PCI/EISA CONFIG_DE4X5 This is support for the DIGITAL series of PCI/EISA ethernet cards. These include the DE425, DE434, DE435, DE450 and DE500 - models. If you have a network card of this type, say Y and read - the Ethernet-HOWTO, available via ftp (user: anonymous) in + models. If you have a network card of this type, say Y and read the + Ethernet-HOWTO, available via ftp (user: anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO. More specific information is contained in drivers/net/README.de4x5. This driver is also available as a module ( = code which can be inserted in and removed from the - running kernel whenever you want). If you want to compile it as a - module, say M here and read Documentation/modules.txt as well as + running kernel whenever you want). The module will be called + de4x5.o. If you want to compile it as a module, say M here and read + Documentation/modules.txt as well as Documentation/networking/net-modules.txt. If you plan to use more than one network card under linux, read the Multiple-Ethernet-mini-HOWTO, available from @@ -2614,29 +3233,32 @@ CONFIG_DEC_ELCP This driver is developed for the SMC EtherPower series ethernet cards and also works with cards based on the DECchip - 21040/21041/21140 (Tulip series) chips. (If your card is NOT SMC - EtherPower 10/100 PCI (smc9332dst), you can also try the driver from - "DE425, DE434, DE435 support", above.) However, most people with a - network card of this type will say Y here. Do read the - Ethernet-HOWTO, available via ftp (user: anonymous) in - sunsite.unc.edu:/pub/Linux/docs/HOWTO. More specific information is - contained in Documentation/networking/tulip.txt. This driver is also - available as a module ( = code which can be inserted in and removed - from the running kernel whenever you want). If you want to compile - it as a module, say M here and read Documentation/modules.txt as - well as Documentation/networking/net-modules.txt. + 21040/21041/21140 (Tulip series) chips. Some LinkSys PCI cards are + of this type. (If your card is NOT SMC EtherPower 10/100 PCI + (smc9332dst), you can also try the driver for "Generic DECchip" + cards, above. However, most people with a network card of this type + will say Y here.) Do read the Ethernet-HOWTO, available via ftp + (user: anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO. More + specific information is contained in + Documentation/networking/tulip.txt. This driver is also available as + a module ( = code which can be inserted in and removed from the + running kernel whenever you want). The module will be called + tulip.o. If you want to compile it as a module, say M here and read + Documentation/modules.txt as well as + Documentation/networking/net-modules.txt. Digi Intl. RightSwitch support CONFIG_DGRS This is support for the Digi International RightSwitch series of PCI/EISA ethernet switch cards. These include the SE-4 and the SE-6 - models. If you have a network card of this type, say Y and read - the Ethernet-HOWTO, available via ftp (user: anonymous) in + models. If you have a network card of this type, say Y and read the + Ethernet-HOWTO, available via ftp (user: anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO. More specific information is contained in drivers/net/README.dgrs. This driver is also available as a module ( = code which can be inserted in and removed from the - running kernel whenever you want). If you want to compile it as a - module, say M here and read Documentation/modules.txt as well as + running kernel whenever you want). The module will be called + dgrs.o. If you want to compile it as a module, say M here and read + Documentation/modules.txt as well as Documentation/networking/net-modules.txt. If you plan to use more than one network card under linux, read the Multiple-Ethernet-mini-HOWTO, available from @@ -2648,8 +3270,9 @@ the Ethernet-HOWTO, available via ftp (user: anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO. This driver is also available as a module ( = code which can be inserted in and removed from the - running kernel whenever you want). If you want to compile it as a - module, say M here and read Documentation/modules.txt as well as + running kernel whenever you want). The module will be called + eth16i.o. If you want to compile it as a module, say M here and read + Documentation/modules.txt as well as Documentation/networking/net-modules.txt. If you plan to use more than one network card under linux, read the Multiple-Ethernet-mini-HOWTO, available from @@ -2663,10 +3286,10 @@ by this driver. Read the Ethernet-HOWTO, available via ftp (user: anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO. -Pocket and portable adaptors +Pocket and portable adapters CONFIG_NET_POCKET Cute little network (ethernet) devices which attach to the parallel - port ("pocket adaptors"), commonly used with laptops. If you have + port ("pocket adapters"), commonly used with laptops. If you have one of those, say Y and read the Ethernet-HOWTO, available via ftp (user: anonymous) from sunsite.unc.edu:/pub/Linux/docs/HOWTO. If you want to plug a network card into the PCMCIA slot of your laptop @@ -2680,10 +3303,10 @@ plan to use more than one network device under linux, read the Multiple-Ethernet-mini-HOWTO, available from sunsite.unc.edu:/pub/Linux/docs/HOWTO/mini. If you intend to use an - adaptor attaching to the parallel port as well as a parallel + adapter attaching to the parallel port as well as a parallel printer, you should compile both drivers as modules (if possible). -AT-LAN-TEC/RealTek pocket adaptor support +AT-LAN-TEC/RealTek pocket adapter support CONFIG_ATP This is a network (ethernet) device which attaches to your parallel port. Read drivers/net/atp.c as well as the Ethernet-HOWTO, @@ -2695,7 +3318,7 @@ this driver, you should have said N to the Parallel Printer support, because the two drivers don't like each other. -D-Link DE600 pocket adaptor support +D-Link DE600 pocket adapter support CONFIG_DE600 This is a network (ethernet) device which attaches to your parallel port. Read drivers/net/README.DLINK as well as the Ethernet-HOWTO, @@ -2703,13 +3326,14 @@ sunsite.unc.edu:/pub/Linux/docs/HOWTO if you want to use this. If you want to compile this as a module ( = code which can be inserted in and removed from the running kernel whenever you want), say M - here and read Documentation/modules.txt. If you intend to use this - pocket adaptor as well as a parallel printer, you should compile - both drivers as modules. If you plan to use more than one network - card under linux, read the Multiple-Ethernet-mini-HOWTO, available - from sunsite.unc.edu:/pub/Linux/docs/HOWTO/mini. + here and read Documentation/modules.txt. The module will be called + de600.o. If you intend to use this pocket adapter as well as a + parallel printer, you should compile both drivers as modules. If you + plan to use more than one network card under linux, read the + Multiple-Ethernet-mini-HOWTO, available from + sunsite.unc.edu:/pub/Linux/docs/HOWTO/mini. -D-Link DE620 pocket adaptor support +D-Link DE620 pocket adapter support CONFIG_DE620 This is a network (ethernet) device which attaches to your parallel port. Read drivers/net/README.DLINK as well as the Ethernet-HOWTO, @@ -2717,11 +3341,12 @@ sunsite.unc.edu:/pub/Linux/docs/HOWTO if you want to use this. If you want to compile this as a module ( = code which can be inserted in and removed from the running kernel whenever you want), say M - here and read Documentation/modules.txt. If you intend to use this - pocket adaptor as well as a parallel printer, you should compile - both drivers as modules. If you plan to use more than one network - card under linux, read the Multiple-Ethernet-mini-HOWTO, available - from sunsite.unc.edu:/pub/Linux/docs/HOWTO/mini. + here and read Documentation/modules.txt. The module will be called + de620.o. If you intend to use this pocket adapter as well as a + parallel printer, you should compile both drivers as modules. If you + plan to use more than one network card under linux, read the + Multiple-Ethernet-mini-HOWTO, available from + sunsite.unc.edu:/pub/Linux/docs/HOWTO/mini. Token Ring driver support CONFIG_TR @@ -2730,15 +3355,42 @@ ring network and want to use your Token Ring card under Linux, say Y. Most people can say N here. -IBM Tropic chipset based adaptor support +IBM Tropic chipset based adapter support CONFIG_IBMTR This is support for all IBM Token Ring cards that don't use DMA. If you have such a beast, say Y, otherwise N. Warning: this driver will almost definitely fail if more than one active Token Ring card is present. This driver is also available as a module ( = code which can be inserted in and removed from the running kernel whenever you - want). If you want to compile it as a module, say M here and read - Documentation/modules.txt. + want). The module will be called ibmtr.o. If you want to compile it + as a module, say M here and read Documentation/modules.txt. + +Traffic Shaper (EXPERIMENTAL) +CONFIG_SHAPER + The traffic shaper is a virtual network device that allows you to + limit the rate of outgoing data flow over another network + device. See Documentation/networking/shaper.txt for more + information. To set up and configure shaper devices, you need the + shapecfg program, available via ftp (user: anonymous) from + shadow.cabi.net/pub/Linux in the shaper package. This driver is + also available as a module ( = code which can be inserted in and + removed from the running kernel whenever you want). The module will + be called shaper.o. If you want to compile it as a module, say M + here and read Documentation/modules.txt. If unsure, say N. + +FDDI driver support +CONFIG_FDDI + Fiber Distributed Data Interface is a high speed local area network + design; essentially a replacement for high speed ethernet. FDDI can + run over copper or fiber. If you are connected to such a network and + want a driver for the FDDI card in your computer, say Y here (and + then also Y to the driver for your FDDI card, below). Most people + will say N. + +Digital DEFEA and DEFPA adapter support +CONFIG_DEFXX + This is support for the DIGITAL series of EISA (DEFEA) and PCI + (DEFPA) controllers which can connect you to a local FDDI network. Support non-SCSI/IDE/ATAPI drives CONFIG_CD_NO_IDESCSI @@ -2770,23 +3422,37 @@ will not be auto detected by the kernel at boot time; you have to provide the interface address as an option to the kernel at boot time as described in Documentation/cdrom/cdu31a or fill in your - parameters into linux/drivers/cdrom/cdu31a.c. See the documentation - of your boot loader (lilo or loadlin) about how to pass options to - the kernel. The lilo procedure is also explained in the SCSI-HOWTO. + parameters into linux/drivers/cdrom/cdu31a.c. Try "man bootparam" or + see the documentation of your boot loader (lilo or loadlin) about + how to pass options to the kernel. The lilo procedure is also + explained in the SCSI-HOWTO. If you say Y here, you should also say + Y to "ISO9660 cdrom filesystem support" below, because that's the + filesystem used on CDROMs. This driver is also available as a module + ( = code which can be inserted in and removed from the running + kernel whenever you want). The module will be called cdu31a.o. If + you want to compile it as a module, say M here and read + Documentation/modules.txt. Standard Mitsumi [no XA/Multisession] CDROM support CONFIG_MCD This is the older of the two drivers for the older Mitsumi models - LU-005, FX-001 and FX-001D. This is not the right driver for the - FX-001DE and the triple or quad speed models (all these are IDE/ATAPI - models). - With the old LU-005 model, the whole drive chassis slides out for - cd insertion. The FX-xxx models use a motorized tray type mechanism. - Note that this driver does not support XA or MultiSession CDs (PhotoCDs). - There is a new driver (next question) which can do this. If you want - that one, say N here. - If the driver doesn't work out of the box, you might want to have - a look at linux/include/linux/mcd.h. + LU-005, FX-001 and FX-001D. This is not the right driver for the + FX-001DE and the triple or quad speed models (all these are + IDE/ATAPI models). + With the old LU-005 model, the whole drive chassis slides out for cd + insertion. The FX-xxx models use a motorized tray type mechanism. + Note that this driver does not support XA or MultiSession CDs + (PhotoCDs). There is a new driver (next question) which can do + this. If you want that one, say N here. + If the driver doesn't work out of the box, you might want to have a + look at linux/include/linux/mcd.h. If you say Y here, you should + also say Y to "ISO9660 cdrom filesystem support" below, because + that's the filesystem used on CDROMs. Please also read the file + Documentation/cdrom/mcd. This driver is also available as a module ( + = code which can be inserted in and removed from the running kernel + whenever you want). The module will be called mcd.o. If you want to + compile it as a module, say M here and read + Documentation/modules.txt. Mitsumi [XA/MultiSession] support CONFIG_MCDX @@ -2795,7 +3461,14 @@ FX-001 or FX-001D CDROM drive. In addition, this driver uses much less kernel memory than the old one, if that is a concern. This driver is able to support more than one drive, but each drive needs a separate - interface card. Check out Documentation/cdrom/mcdx. + interface card. + If you say Y here, you should also say Y to "ISO9660 cdrom + filesystem support" below, because that's the filesystem used on + CDROMs. Please also read the file Documentation/cdrom/mcdx. This + driver is also available as a module ( = code which can be inserted + in and removed from the running kernel whenever you want). The + module will be called mcdx.o. If you want to compile it as a module, + say M here and read Documentation/modules.txt. Matsushita/Panasonic/Creative, Longshine, TEAC CDROM support CONFIG_SBPCD @@ -2821,14 +3494,22 @@ card can support up to four CDROM drives; if you say Y here, you will be asked how many controllers you have. If compiled as a module, only one interface card (but with up to four drives) is - usable. + usable. + If you say Y here, you should also say Y to "ISO9660 cdrom + filesystem support" below, because that's the filesystem used on + CDROMs. Please also read the file Documentation/cdrom/sbpcd. This + driver is also available as a module ( = code which can be inserted + in and removed from the running kernel whenever you want). The + module will be called sbpcd.o. If you want to compile it as a + module, say M here and read Documentation/modules.txt. Matsushita/Panasonic, ... second CDROM controller support CONFIG_SBPCD2 Say Y here only if you have two CDROM controller boards of this type (usually only if you have more than four drives). You should enter the parameters for the second, third and fourth interface card into - linux/include/linux/sbpcd.h before compiling the new kernel. + linux/include/linux/sbpcd.h before compiling the new kernel. Read + the file Documentation/cdrom/sbpcd. Aztech/Orchid/Okano/Wearnes/TXC/CyDROM CDROM support CONFIG_AZTCD @@ -2836,23 +3517,60 @@ CD-3110, Okano or Wearnes CDD110, Conrad TXC, or CyCDROM CR520 or CR540 CDROM drive. This driver - just like all these CDROM drivers - is NOT for CDROM drives with IDE/ATAPI interface, such as Aztech - CDA269-031SE. + CDA269-031SE. If you say Y here, you should also say Y to "ISO9660 + cdrom filesystem support" below, because that's the filesystem used + on CDROMs. Please also read the file Documentation/cdrom/aztcd. This + driver is also available as a module ( = code which can be inserted + in and removed from the running kernel whenever you want). The + module will be called aztcd.o. If you want to compile it as a + module, say M here and read Documentation/modules.txt. Sony CDU535 CDROM support CONFIG_CDU535 - This is the driver for the older Sony CDU-535 and CDU-531 CDROM drives. + This is the driver for the older Sony CDU-535 and CDU-531 CDROM + drives. If you say Y here, you should also say Y to "ISO9660 cdrom + filesystem support" below, because that's the filesystem used on + CDROMs. Please also read the file Documentation/cdrom/sonycd535. + This driver is also available as a module ( = code which can be + inserted in and removed from the running kernel whenever you + want). The module will be called sonycd535.o. If you want to compile + it as a module, say M here and read Documentation/modules.txt. Goldstar R420 CDROM support CONFIG_GSCD - If this is your CDROM drive, say Y here. - As described in linux/Documentation/cdrom/gscd, you might have to - change a setting in the file include/linux/gscd.h before compiling - the kernel. + If this is your CDROM drive, say Y here. As described in + linux/Documentation/cdrom/gscd, you might have to change a setting + in the file include/linux/gscd.h before compiling the kernel. Please + read the file Documentation/cdrom/gscd. If you say Y here, you + should also say Y to "ISO9660 cdrom filesystem support" below, + because that's the filesystem used on CDROMs. This driver is also + available as a module ( = code which can be inserted in and removed + from the running kernel whenever you want). The module will be + called gscd.o. If you want to compile it as a module, say M here and + read Documentation/modules.txt. + +MicroSolutions backpack CDROM support +CONFIG_BPCD + MicroSolutions backpack CDROM is an external drive that connects to + the parallel port. This driver supports model 164550 (and perhaps + other models). Say Y if you have one of these, and read the file + Documentation/cdrom/bpcd. If you say Y here, you should also say Y + to "ISO9660 cdrom filesystem support" below, because that's the + filesystem used on CDROMs. If you have several different devices + that will share a common parallel port, say M and build them as + modules. This module will be called bpcd.o. Philips/LMS CM206 CDROM support CONFIG_CM206 If you have a Philips/LMS CDROM drive cm206 in combination with a - cm260 host adapter card, say Y here. + cm260 host adapter card, say Y here. Please also read the file + Documentation/cdrom/cm206. If you say Y here, you should also say Y + to "ISO9660 cdrom filesystem support" below, because that's the + filesystem used on CDROMs. This driver is also available as a module + ( = code which can be inserted in and removed from the running + kernel whenever you want). The module will be called cm206.o. If you + want to compile it as a module, say M here and read + Documentation/modules.txt. Optics Storage DOLPHIN 8000AT CDROM support CONFIG_OPTCD @@ -2860,62 +3578,55 @@ compatible interface. It also works with the Lasermate CR328A. If you have one of those, say Y. This driver does not work for the Optics Storage 8001 drive; use the IDE-ATAPI CDROM driver for that - one. + one. Please read the file Documentation/cdrom/optcd. + If you say Y here, you should also say Y to "ISO9660 cdrom + filesystem support" below, because that's the filesystem used on + CDROMs. This driver is also available as a module ( = code which can + be inserted in and removed from the running kernel whenever you + want). The module will be called optcd.o. If you want to compile it + as a module, say M here and read Documentation/modules.txt. Sanyo CDR-H94A CDROM support CONFIG_SJCD - If this is your CDROM drive, say Y here. Command line option - (or 'append=' option in /etc/lilo.conf) is: - sjcd= - Here 'port' is the base i/o address used by the drive. It defaults - to port=0x340. + If this is your CDROM drive, say Y here and read the file + Documentation/cdrom/sjcd. You should then also say Y to "ISO9660 + cdrom filesystem support" below, because that's the filesystem used + on CDROMs. This driver is also available as a module ( = code which + can be inserted in and removed from the running kernel whenever you + want). The module will be called sjcd.o. If you want to compile it + as a module, say M here and read Documentation/modules.txt. Soft configurable cdrom interface card support CONFIG_CDI_INIT If you want to include boot-time initialization of any cdrom - interface card that is software configurable, say Y here. - Currently only the ISP16/MAD16/Mozart cards are supported. + interface card that is software configurable, say Y here. Currently + only the ISP16/MAD16/Mozart soundcards with built-in cdrom + interfaces are supported. Note that the answer to this question + doesn't directly affect the kernel: saying N will just cause this + configure script to skip all the questions about these CDROM drives. ISP16/MAD16/Mozart soft configurable cdrom interface support CONFIG_ISP16_CDI - If you want any of these cdrom interface cards based on the - OPTi 82C928 or 82C929 chips get detected and possibly configured - at boot time, please say Y. Boot time command line options (or - 'append=' options in /etc/lilo.conf) are: - isp16=,,, - Here 'port','irq' and 'dma' are the base i/o address, irq number and - dma line assumed to be used by the attached cdrom - drive. 'drive_type' is the type of cdrom drive or its emulation - mode. Valid values for drive_type include: Sanyo, Panasonic (same as - Sanyo), Sony and Mitsumi. Default values are: port=0x340, irq=0, - dma=0, drive_type=Sanyo. - The command line - isp16=noisp16 - will skip detection and configuration after all. - N.B. options are case sensitive. - Read Documentation/cdrom/isp16 for details. + These are soundcards with with built-in cdrom interfaces using the + OPTi 82C928 or 82C929 chips. Say Y here to have them detected and + possibly configured at boot time. In addition, You'll have to say Y + to a driver for the particular cdrom drive you have attached to the + card. Read Documentation/cdrom/isp16 for details. This driver is + also available as a module ( = code which can be inserted in and + removed from the running kernel whenever you want). The module will + be called isp16.o. If you want to compile it as a module, say M here + and read Documentation/modules.txt. Quota support CONFIG_QUOTA If you say Y here, you will be able to set per user limits for disk usage (also called diskquotas). Currently, it works only for the ext2 filesystem. You need additional software in order to use quota - support; check the file Documentation/Changes for that. Probably the + support; it is available via ftp (user: anonymous) from + ftp.funet.fi/pub/Linux/kernel/src/subsystems/quota/. Probably the quota support is only useful for multi user systems. If unsure, say N. -Mandatory lock support -CONFIG_LOCK_MANDATORY - File locking is a system designed to prevent that several processes - write to the same file at the same time, causing data - corruption. Mandatory file locking is more secure than the usual - algorithm and is used by some Unix System 5 style database - applications. For details, read Documentation/mandatory.txt. To use - this option safely you must have newer NFS daemons, new samba, new - netatalk, new mars-nwe and other file servers. At the time of - writing none of these are available. So it's safest to say N here - unless you really know that you need this feature. - Minix fs support CONFIG_MINIX_FS Minix is a simple operating system used in many classes about @@ -2926,18 +3637,12 @@ leaner. You don't want to use it on your harddisk because of certain built-in restrictions. This option will enlarge your kernel by about 25 kB. Everyone should say Y or M so that they are able to read this - common floppy format. If you want to compile this as a module - ( = code which can be inserted in and removed from the - running kernel whenever you want), say M here and read - Documentation/modules.txt. Note that the filesystem of your root - partition cannot be compiled as a module. - -Extended fs support -CONFIG_EXT_FS - This is the old Linux filesystem (= method to organize files on a - harddisk partition or a floppy disk) and not in use anymore. It - enlarges your kernel by about 25 kB. Let's all kill this beast. Say - N. + common floppy format. If you want to compile this as a module ( = + code which can be inserted in and removed from the running kernel + whenever you want), say M here and read + Documentation/modules.txt. The module will be called minix.o. Note + that the filesystem of your root partition cannot be compiled as a + module. Second extended fs support CONFIG_EXT2_FS @@ -2954,37 +3659,33 @@ transition to a *real* Linux partition later. Another (rare) case which doesn't require ext2fs is a diskless Linux box which mounts all files over the network using NFS (in this case it's sufficient - to enable NFS filesystem support below; if you are planning to do - this, have a look at the netboot package in - /pub/Linux/system/Linux-boot/, available via ftp (user: anonymous) - from sunsite.unc.edu, extract with "tar xzvf filename"). There is a - short ext2fs-FAQ, available via ftp (user: anonymous) in + to say Y to "NFS filesystem support" below). There is a short + ext2fs-FAQ, available via ftp (user: anonymous) in sunsite.unc.edu:/pub/Linux/docs/faqs. This option will enlarge your - kernel by about 41 kB. Default is Y. - -xiafs filesystem support -CONFIG_XIA_FS - This is an old filesystem (= method to organize files on a harddisk - partition or a floppy disk) and not in use anymore. This option - would enlarge your kernel by about 28 kB. Let's all kill this beast: - say N. If you want to compile this as a module ( = code which can - be inserted in and removed from the running kernel whenever you - want), say M here and read Documentation/modules.txt. Note that the - filesystem of your root partition cannot be compiled as a module. + kernel by about 41 kB. If you want to compile this filesystem as a + module ( = code which can be inserted in and removed from the + running kernel whenever you want), say M here and read + Documentation/modules.txt. The module will be called ext2.o. Be + aware however that the filesystem of your root partition cannot be + compiled as a module, and so this could be dangerous. Most everyone + wants to say Y here. fat fs support CONFIG_FAT_FS If you want to use one of the FAT-based filesystems (the MS-DOS, - VFAT (Windows'95) and UMSDOS filesystems), then you must include - FAT support. This is not a filesystem in itself, but it provides - the foundation for the other filesystems. This option will enlarge - your kernel about 24 kB. If unsure, say Y. If you want to compile - this as a module however ( = code which can be inserted in and - removed from the running kernel whenever you want), say M here and - read Documentation/modules.txt. Note that if you compile the FAT - support as a module, you cannot compile any of the FAT-based file- - systems into the kernel - they will have to be modules as well. - The filesystem of your root partition cannot be a module. + VFAT (Windows'95) and UMSDOS (used to run Linux on top of an + ordinary DOS partition) filesystems), then you must include FAT + support. This is not a filesystem in itself, but it provides the + foundation for the other filesystems. This option will enlarge your + kernel by about 24 kB. If unsure, say Y. If you want to compile this + as a module however ( = code which can be inserted in and removed + from the running kernel whenever you want), say M here and read + Documentation/modules.txt. The module will be called fat.o. Note + that if you compile the FAT support as a module, you cannot compile + any of the FAT-based filesystems into the kernel - they will have to + be modules as well. The filesystem of your root partition cannot be + a module, so don't say M here if you intend to use UMSDOS as your + root filesystem. msdos fs support CONFIG_MSDOS_FS @@ -3010,8 +3711,8 @@ work if you said Y to "fat fs support" as well. If you want to compile this as a module however ( = code which can be inserted in and removed from the running kernel whenever you want), say M here - and read Documentation/modules.txt. Note that the filesystem of your - root partition cannot be a module. + and read Documentation/modules.txt. The module will be called + msdos.o. vfat fs support CONFIG_VFAT_FS @@ -3021,11 +3722,12 @@ partitions. It does not support Windows'95 compressed filesystems. You cannot use the VFAT filesystem for your root partition; use UMSDOS instead. This option enlarges your kernel by about 10 kB and - it only works if you enabled the "fat fs support" above. Please read + it only works if you said Y to the "fat fs support" above. Please read the file Documentation/filesystems/vfat.txt for details. If unsure, say N. If you want to compile this as a module ( = code which can be inserted in and removed from the running kernel whenever - you want), say M here and read Documentation/modules.txt. + you want), say M here and read Documentation/modules.txt. The module + will be called vfat.o. umsdos: Unix like fs on top of std MSDOS fs CONFIG_UMSDOS_FS @@ -3039,14 +3741,14 @@ is to write files with long unix filenames to MSDOS floppies; it also allows unix style softlinks and owner/permissions of files on MSDOS floppies. You will need a program called umssync in order to - make use of umsdos. Read Documentation/filesystems/umsdos.txt. This + make use of umsdos; read Documentation/filesystems/umsdos.txt. This option enlarges your kernel by about 25 kB and it only works if you - enabled both "fat fs support" and "msdos fs support" above. If - unsure, say N. If you want to compile this as a module ( = code - which can be inserted in and removed from the running kernel - whenever you want), say M here and read - Documentation/modules.txt. Note that the filesystem of your root - partition cannot be a module. + said Y to both "fat fs support" and "msdos fs support" above. If you + want to compile this as a module ( = code which can be inserted in + and removed from the running kernel whenever you want), say M here + and read Documentation/modules.txt. The module will be called + umsdos.o. Note that the filesystem of your root partition cannot be + a module, so this could be dangerous. If unsure, say N. /proc filesystem support CONFIG_PROC_FS @@ -3055,28 +3757,28 @@ your harddisk: the files are created on the fly when you access them. Also, you cannot read the files with less: you need to use more or cat. The filesystem is explained in the Kernel Hacker's - Guide, available via ftp (user: anonymous) in - sunsite.unc.edu:/pub/Linux/docs/LDP and also on the proc(8) manpage - ("man 8 proc"). This option will enlarge your kernel by about 18 - kB. It's totally cool; for example, "cat /proc/interrupts" gives - information about what the different IRQs are used for at the moment - (there is a small number of Interrupt ReQuest lines in your computer - that are used by the periphery to gain the CPU's attention - often a - source of trouble if two devices are mistakenly configured to use - the same IRQ). Several programs depend on this, so everyone should - say Y here. + Guide at http://www.redhat.com:8080/HyperNews/get/khg.html on the + Web, and also on the proc(8) manpage ("man 8 proc"). This option + will enlarge your kernel by about 18 kB. It's totally cool; for + example, "cat /proc/interrupts" gives information about what the + different IRQs are used for at the moment (there is a small number + of Interrupt ReQuest lines in your computer that are used by the + attached devices to gain the CPU's attention - often a source of + trouble if two devices are mistakenly configured to use the same + IRQ). Several programs depend on this, so everyone should say Y + here. NFS filesystem support CONFIG_NFS_FS If you are connected to some other (usually local) Unix computer - (using SLIP, PLIP, PPP or ethernet) and want to mount files - residing on that computer (the NFS server) using the Network - File Sharing protocol, say Y. "Mounting files" means that the client - can access the files with usual UNIX commands as if they were - sitting on the client's harddisk. For this to work, the server must - run the programs nfsd and mountd (but does not need to have NFS - filesystem support enabled). NFS is explained in the Network - Administrator's Guide, available via ftp (user: anonymous) in + (using SLIP, PLIP, PPP or ethernet) and want to mount files residing + on that computer (the NFS server) using the Network File Sharing + protocol, say Y. "Mounting files" means that the client can access + the files with usual UNIX commands as if they were sitting on the + client's harddisk. For this to work, the server must run the + programs nfsd and mountd (but does not need to have NFS filesystem + support enabled). NFS is explained in the Network Administrator's + Guide, available via ftp (user: anonymous) in sunsite.unc.edu:/pub/Linux/docs/LDP, and on its man page: "man nfs". There is also a NFS-FAQ in sunsite.unc.edu:/pub/Linux/docs/faqs which presumes that you know @@ -3084,11 +3786,15 @@ to TCP/IP networking also. This option would enlarge your kernel by about 27 kB. This filesystem is also available as a module ( = code which can be inserted in and removed from the running kernel - whenever you want). If you want to compile it as a module, say M - here and read Documentation/modules.txt. If you configure a diskless - machine which will mount its root filesystem over nfs, you cannot - compile this driver as a module. If you don't know what all this is - about, say N. + whenever you want). The module is called nfs.o. If you want to + compile it as a module, say M here and read + Documentation/modules.txt. If you configure a diskless machine which + will mount its root filesystem over nfs (in order to do that, check + out the netboot package, available via ftp (user: anonymous) from + sunsite.unc.edu in /pub/Linux/system/Linux-boot/, extract with "tar + xzvf filename", and say Y to "Root file system on NFS" below), then + you cannot compile this driver as a module. If you don't know what + all this is about, say N. Root file system on NFS CONFIG_ROOT_NFS @@ -3133,7 +3839,7 @@ kernel by about 27 kB; otherwise say N. If you want to compile this as a module ( = code which can be inserted in and removed from the running kernel whenever you want), say M here and read - Documentation/modules.txt. + Documentation/modules.txt. The module will be called isofs.o. OS/2 HPFS filesystem support (read only) CONFIG_HPFS_FS @@ -3145,17 +3851,18 @@ able to read them. Read Documentation/filesystems/hpfs.txt. This filesystem is also available as a module ( = code which can be inserted in and removed from the running kernel whenever you - want). If you want to compile it as a module, say M here and read - Documentation/modules.txt. If unsure, say N. + want). The module is called hpfs.o. If you want to compile it as a + module, say M here and read Documentation/modules.txt. If unsure, + say N. System V and Coherent filesystem support CONFIG_SYSV_FS SCO, Xenix and Coherent are commercial Unix systems for intel - machines. Enabling this option would allow you to read and write to - and from their floppies and harddisk partitions. If you have a - floppy or harddisk partition like that, it is probable that they - contain binaries from those other Unix systems; in order to run - these binaries, you will want to install iBCS2 (iBCS2 [Intel Binary + machines. Saying Y here would allow you to read and write to and + from their floppies and harddisk partitions. If you have a floppy or + harddisk partition like that, it is probable that they contain + binaries from those other Unix systems; in order to run these + binaries, you will want to install iBCS2 (iBCS2 [Intel Binary Compatibility Standard] is a kernel module which lets you run SCO, Xenix, Wyse, Unix Ware, Dell Unix and System V programs under Linux and is often needed to run commercial software, most prominently @@ -3172,61 +3879,73 @@ kernel by about 34 kB. If you want to compile this as a module ( = code which can be inserted in and removed from the running kernel whenever you want), say M here and read - Documentation/modules.txt. If you haven't heard about all of this - before, it's safe to say N. + Documentation/modules.txt. The module will be called sysv.o. If you + haven't heard about all of this before, it's safe to say N. + +Kernel automounter support (experimental) +CONFIG_AUTOFS_FS + The automounter is a tool to automatically mount remote filesystems + on demand. This implementation is partially kernel-based to reduce + overhead in the already-mounted case; this is unlike the BSD + automounter (amd), which is only in user space. To use the + automounter you also need the user-space tools from + ftp.kernel.org:/pub/linux/daemons/autofs. If you are not a part of + a fairly large, distributed network, you probably do not need an + automounter, and can say N here. BSD UFS filesystem support (read only) CONFIG_UFS_FS BSD and derivate versions of Unix (such as SunOS, FreeBSD, NetBSD and NeXTstep) use a filesystem called UFS. Some System V Unixes can - create and mount partitions and diskettes using this filesystem - as well. Enabling this option allows you to mount these partitions - and diskettes read-only. If you only intend to mount files from - some other Unix over the network using NFS, you don't need the - UFS filesystem support (but you need nfs filesystem support + create and mount partitions and diskettes using this filesystem as + well. Saying Y here allows you to mount these partitions and + diskettes read-only. If you only intend to mount files from some + other Unix over the network using NFS, you don't need the UFS + filesystem support (but you need nfs filesystem support obviously). Note that this option is generally not needed for floppies, since a good portable way to transport files and - directories between unixes (and even other operating systems) - is given by the tar program ("man tar"). When accessing NeXTstep - files, you may need to convert them from the NeXT character set - to the Latin1 character set; use GNU recode for this purpose. - Say Y to build UFS support into your kernel. If you want to compile - this as a module ( = code which can be inserted in and removed from - the running kernel whenever you want), say M here and read - Documentation/modules.txt. If you haven't heard about all of this - before, it's safe to say N. + directories between unixes (and even other operating systems) is + given by the tar program ("man tar"). When accessing NeXTstep files, + you may need to convert them from the NeXT character set to the + Latin1 character set; use GNU recode for this purpose. Say Y to + build UFS support into your kernel. If you want to compile this as a + module ( = code which can be inserted in and removed from the + running kernel whenever you want), say M here and read + Documentation/modules.txt. The module will be called ufs.o. If you + haven't heard about all of this before, it's safe to say N. BSD disklabel (FreeBSD partition tables) support CONFIG_BSD_DISKLABEL FreeBSD uses its own partition scheme on your PC. It requires only one entry in the primary partition table of your disk and manages it similarly to DOS extended partitions, putting in its first sector a - new partition table in disklabel format. Enabling this option allows - you to read these disklabels and further mount FreeBSD partitions on - your Linux box if you also have configured BSD ufs filesystem - support. If you don't know what all this is about, say N. + new partition table in disklabel format. Saying Y here allows you to + read these disklabels and further mount FreeBSD partitions on your + Linux box if you also have configured BSD ufs filesystem support. If + you don't know what all this is about, say N. SMD disklabel (Sun partition tables) support CONFIG_SMD_DISKLABEL Like most systems, SunOS uses its own partition table format, - incompatible with all others. Enabling this option allows you to read - these partition tables and further mount SunOS disks on your Linux - box if you also have configured BSD ufs filesystem support. This is - mainly used to carry data from a Sparc under SunOS to your Linux box - via a removable medium like magneto-optical or ZIP drives. If you - don't know what all this is about, say N. + incompatible with all others. Saying Y here allows you to read these + partition tables and further mount SunOS disks on your Linux box if + you also have configured BSD ufs filesystem support. This is mainly + used to carry data from a Sparc under SunOS to your Linux box via a + removable medium like magneto-optical or ZIP drives. If you don't + know what all this is about, say N. SMB filesystem support (to mount WfW shares etc..) CONFIG_SMB_FS SMB (Server Message Buffer) is the protocol Windows for Workgroups - (WfW), Windows NT and Lan Manager use to talk to each other over an - ethernet. Enabling this allows you to mount their filesystems and - access them just like any other unix directory. For details, read + (WfW), Windows 95, Windows NT and Lan Manager use to share files and + printers over local networks. Saying Y here allows you to mount + their filesystems (often called "shares" in this context) and access + them just like any other unix directory. For details, read Documentation/filesystems/smbfs.txt. Note: if you just want your box to act as an SMB *server* and make files and printing services available to Windows clients (which need to have a TCP/IP stack), - you don't need to enable this filesystem support; you can use the - program samba (available via ftp (user: anonymous) in + you don't need to say Y here; you can use the program samba + (available via ftp (user: anonymous) in sunsite.unc.edu:/pub/Linux/system/Network/samba) for that. General information about how to connect Linux, Windows machines and Macs is on the WWW at http://eats.com/linux_mac_win.html (to browse the WWW, @@ -3234,48 +3953,73 @@ the programs lynx, netscape or Mosaic). If you want to compile the SMB support as a module ( = code which can be inserted in and removed from the running kernel whenever you want), say M here and - read Documentation/modules.txt. Most people say N, however. + read Documentation/modules.txt. The module will be called + smbfs.o. Most people say N, however. -SMB long filename support (EXPERIMENTAL) -CONFIG_SMB_LONG - SMBFS was designed to support long filenames using the LanManager - 2.0 protocol. I had to find out that the support for long filenames - sometimes causes problems, which can even result in kernel OOPSes. I - did not yet find out what the problem is, but hopefully I will find - this bug eventually. As many people seem to run long filenames with - no problems, I leave this support in the kernel as an option. The - careful among you should say N here. +SMB Win95 bug work-around +CONFIG_SMB_WIN95 + If you want to connect to a share exported by Windows 95, you should + say Y here. The Windows 95 server contains a bug that makes listing + directories unreliable. This option slows down the listing of + directories. This makes the Windows 95 server a bit more stable. NCP filesystem support (to mount NetWare volumes) CONFIG_NCP_FS NCP (NetWare Core Protocol) is a protocol that runs over IPX and is - used by Novel NetWare clients to talk to file servers. It is to IPX - what nfs is to tcp/ip, if that helps. Enabling this option allows - you to mount NetWare file server volumes and to access them just - like any other Unix directory. For details, please read the file + used by Novell NetWare clients to talk to file servers. It is to IPX + what nfs is to tcp/ip, if that helps. Saying Y here allows you to + mount NetWare file server volumes and to access them just like any + other Unix directory. For details, please read the file Documentation/filesystems/ncpfs.txt in the kernel source and the IPX-HOWTO on sunsite.unc.edu:/pub/Linux/docs/howto. If you want to compile this as a module ( = code which can be inserted in and removed from the running kernel whenever you want), say M here and - read Documentation/modules.txt. + read Documentation/modules.txt. The module will be called + ncpfs.o. Say N unless you are connected to a Novell network. -Amiga FFS filesystem support (EXPERIMENTAL) +Amiga FFS filesystem support CONFIG_AFFS_FS - The Fast File System (FFS) is the common filesystem used on harddisks - by Amiga (tm) Systems since AmigaOS Version 1.3 (34.20). It's also - possible to mount diskfiles used by the Un*X Amiga Emulator by Bernd - Schmidt (http://www-users.informatik.rwth-aachen.de/~crux/uae.html) - If you want to do the latter, you will also need the loop device - support. Say Y if you want to be able to read and write files from - and to an Amiga FFS partition of your harddrive. Amiga floppies - however cannot be read with this driver due to an incompatibility of - the floppy controller used in an Amiga and the standard floppy - controller in PCs and workstations. Read - Documentation/filesystems/affs.txt. This filesystem is also available - as a module ( = code which can be inserted in and removed from the - running kernel whenever you want). If you want to compile it as a - module, say M here and read Documentation/modules.txt. - If unsure, say N. + The Fast File System (FFS) is the common filesystem used on + harddisks by Amiga(tm) Systems since AmigaOS Version 1.3 + (34.20). With this driver you can also mount diskfiles used by the + Un*X Amiga Emulator by Bernd Schmidt + (http://www-users.informatik.rwth-aachen.de/~crux/uae.html). If you + want to do the latter, you will also need to say Y to "Loop device + support", above. Say Y if you want to be able to read and write + files from and to an Amiga FFS partition on your harddrive. Amiga + floppies however cannot be read with this driver due to an + incompatibility of the floppy controller used in an Amiga and the + standard floppy controller in PCs and workstations. Read + Documentation/filesystems/affs.txt. This filesystem is also + available as a module ( = code which can be inserted in and removed + from the running kernel whenever you want). The module is called + affs.o. If you want to compile it as a module, say M here and read + Documentation/modules.txt. If unsure, say N. + +ROM filesystem support +CONFIG_ROMFS_FS + This is a very small read-only filesystem mainly intended for + initial ram disks of installation disk, but it could be used for + other read-only media as well. Read + Documentation/filesystems/romfs.txt for details. This filesystem is + also available as a module ( = code which can be inserted in and + removed from the running kernel whenever you want). The module is + called romfs.o. If you want to compile it as a module, say M here + and read Documentation/modules.txt. If you don't know whether you + need it, then you don't need it: say N. + +Virtual terminal +CONFIG_VT + This includes support for a terminal device using display and + keyboard devices. Only people using embedded systems want to say N + here. Most say Y here. + +Console on virtual terminal +CONFIG_VT_CONSOLE + If you enable this option, all kernel messages will be sent to the + device /dev/tty which corresponds to the virtual terminal you have + visible on your display. You should say Y here if you have no other + console device. Standard/generic serial support CONFIG_SERIAL @@ -3284,15 +4028,37 @@ setting up dedicated ethernet WWW/ftp servers, or users that have one of the various bus mice instead of a serial mouse. (Note that the Cyclades and Stallion multi serial port drivers do not need this - driver built in for them to work. They are completely independent of - each other.) If you want to compile this driver as a module, say M - here and read Documentation/modules.txt. [WARNING: Do not compile - this driver as a module if you are using non-standard serial ports, - since the configuration information will be lost when kerneld - automatically unloads the driver. This limitation may be lifted in - the future.] Most people will say Y or M here, so that they can use - serial mice, modems and similar devices connecting to the standard - serial ports. + driver built in for them to work.) If you want to compile this + driver as a module, say M here and read + Documentation/modules.txt. The module will be called + serial.o. [WARNING: Do not compile this driver as a module if you + are using non-standard serial ports, since the configuration + information will be lost when kerneld automatically unloads the + driver. This limitation may be lifted in the future.] BTW: If you + have a mouseman serial mouse which is not recognized by the X window + system, try running gpm first. Most people will say Y or M here, so + that they can use serial mice, modems and similar devices connecting + to the standard serial ports. + +Console on serial port +CONFIG_SERIAL_CONSOLE + If you enable this option, all kernel messages will be sent to the + device /dev/ttyS1 which corresponds to a serial port; this could be + useful if you attached a terminal or printer to that port. You can + use this in combination with console on virtual terminal, in which + case you get the output on both serial and display. Most people say + N here so that they can use the serial port for modem, mouse or some + other device. + +Digi Intl. epca support +CONFIG_DIGIEPCA + This is a driver for Digi Internationals Xx, Xeve, and Xem + series of cards. This driver supports the original PC (ISA) boards as + well as PCI, and EISA. If you have a card like this, say Y here and read + the file Documentation/digiepca.txt. NOTE: This driver is seperate from + the driver written and copyrighted by Troy De Jongh. Because they both + attempt (In some cases) to access the same hardware only one of these + drivers (CONFIG_DIGIEPCA or CONFIG_DIGI) should be selected. Digiboard PC/Xx Support CONFIG_DIGI @@ -3300,16 +4066,19 @@ that give you many serial ports. You would need something like this to connect more than two modems to your linux box, for instance in order to become a BBS. If you have a card like that, say Y here and - read the file Documentation/digiboard.txt. + read the file Documentation/digiboard.txt. If you want to compile + this driver as a module, say M here and read + Documentation/modules.txt. The module will be called pcxx.o. SDL RISCom/8 card support CONFIG_RISCOM8 This is a driver for the SDL Communications RISCom/8 multiport card, - that give you many serial ports. You would need something like this - to connect more than two modems to your linux box, for instance in - order to become a BBS. If you have a card like that, say Y here and - read the file Documentation/riscom8.txt. Also it's possible to say - M here and compile this driver as kernel loadable module. + which gives you many serial ports. You would need something like + this to connect more than two modems to your linux box, for instance + in order to become a BBS. If you have a card like that, say Y here + and read the file Documentation/riscom8.txt. Also it's possible to + say M here and compile this driver as kernel loadable module; the + module will be called riscom8.o. Cyclades async mux support CONFIG_CYCLADES @@ -3318,9 +4087,10 @@ your linux box, for instance in order to become a BBS. If you want to compile this as a module ( = code which can be inserted in and removed from the running kernel whenever you want), say M here and - read Documentation/modules.txt. If you haven't heard about it, it's - safe to say N. (As of 1.3.9x kernels, this driver's minor numbers - start at 0 instead of 32.) + read Documentation/modules.txt. The module will be called + cyclades.o. If you haven't heard about it, it's safe to say N. (As + of 1.3.9x kernels, this driver's minor numbers start at 0 instead of + 32.) Stallion multiport serial support CONFIG_STALDRV @@ -3332,21 +4102,45 @@ heard about all this, it's safe to say N. Stallion EasyIO or EC8/32 support -CONFIG_STALLION n +CONFIG_STALLION If you have an EasyIO or EasyConnection 8/32 multiport Stallion card, then this is for you; say Y. Make sure to read - drivers/char/README.stallion. If you want to compile this as a + Documentation/stallion.txt. If you want to compile this as a module ( = code which can be inserted in and removed from the running kernel whenever you want), say M here and read - Documentation/modules.txt. + Documentation/modules.txt. The module will be called stallion.o. Stallion EC8/64, ONboard, Brumby support CONFIG_ISTALLION If you have an EasyConnection 8/64, ONboard, Brumby or Stallion serial multiport card, say Y here. Make sure to read - drivers/char/README.stallion. To compile it as a module ( = code + Documentation/stallion.txt. To compile it as a module ( = code which can be inserted in and removed from the running kernel - whenever you want), say M here and read Documentation/modules.txt. + whenever you want), say M here and read + Documentation/modules.txt. The module will be called istallion.o. + +Hayes ESP serial port support +CONFIG_ESPSERIAL + This is a driver which supports Hayes ESP serial ports. It uses DMA + to transfer data to and from the host. Make sure to read + drivers/char/README.esp. To compile this driver as a module ( = code + which can be inserted in and removed from the running kernel + whenever you want), say M here and read + Documentation/modules.txt. The module will be called esp.o. + If unsure, say N. + +Hayes ESP serial port DMA channel +CONFIG_ESPSERIAL_DMA_CHANNEL + This is the DMA channel to be used to transfer data to and from the + host. One DMA channel is shared between all the ESP ports. Valid + values are 1 and 3. + +Hayes ESP serial port trigger level +CONFIG_ESPSERIAL_TRIGGER_LEVEL + This is the trigger level (in bytes) of the transmit FIFO and the + receive FIFO. Larger values may result in fewer interrupts; + however, a value too high could result in data loss. Valid values + are 1 through 1015. Parallel printer support CONFIG_PRINTER @@ -3357,24 +4151,12 @@ sunsite.unc.edu:/pub/Linux/docs/HOWTO. If you want to compile this as a module ( = code which can be inserted in and removed from the running kernel whenever you want), say M here and read - Documentation/modules.txt. If you want to use both a parallel - printer and PLIP, there are two cases: 1) If the printer and the - PLIP cable are to use the same parallel port (presumably because you - have just one), it is best to compile both drivers as modules and - load and unload them as needed. 2) To use different parallel ports - for the printer and the PLIP cable, you can say Y to this printer - driver, specify the base address of the parallel port(s) to use for - the printer(s) with the "lp" kernel command line option. (See the - documentation of your boot loader (lilo or loadlin) about how to - pass options to the kernel at boot time. The lilo procedure is also - explained in the SCSI-HOWTO, available via ftp (user: anonymous) in - sunsite.unc.edu:/pub/Linux/docs/HOWTO.) The standard base addresses - as well as the syntax of the "lp" command line option can be found - in drivers/char/lp.c. You can then say Y to the PLIP driver or, - preferably, M in which case Documentation/networking/net-modules.txt - tells you how to specify the port and IRQ to be used by PLIP at - module load time. + Documentation/modules.txt. +CONFIG_PRINTER_READBACK + If your printer conforms to IEEE 1284, it may be able to provide a status + indication when you read from it (for example, with `cat /dev/lp1'). To + use this feature, say Y here. Mouse Support (not serial mice) CONFIG_MOUSE @@ -3401,8 +4183,9 @@ sunsite.unc.edu:/pub/Linux/docs/HOWTO. If you want to compile this as a module ( = code which can be inserted in and removed from the running kernel whenever you want), say M here and read - Documentation/modules.txt. If you are unsure, say N and read the - HOWTO nevertheless: it will tell you what you have. + Documentation/modules.txt. The module will be called busmouse.o. If + you are unsure, say N and read the HOWTO nevertheless: it will tell + you what you have. PS/2 mouse (aka "auxiliary device") support CONFIG_PSMOUSE @@ -3415,11 +4198,15 @@ particular, the C&T 82C710 mouse on TI Travelmates is a PS/2 mouse. Although PS/2 mice are not technically bus mice, they are explained in detail in the Busmouse-HOWTO, available via ftp (user: - anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO. If you want to - compile this as a module ( = code which can be inserted in and - removed from the running kernel whenever you want), say M here and - read Documentation/modules.txt. If you are unsure, say N and read - the HOWTO nevertheless: it will tell you what you have. + anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO. When using a + PS/2 mouse, you can get problems if you want to use the mouse both + on the Linux console and under X. The mconv utility, available in + sunsite.unc.edu:/pub/Linux/system/Misc, solves this problem. If you + want to compile this mouse driver as a module ( = code which can be + inserted in and removed from the running kernel whenever you want), + say M here and read Documentation/modules.txt. The module will be + called psaux.o. If you are unsure, say N and read the HOWTO + nevertheless: it will tell you what you have. C&T 82C710 mouse port support (as on TI Travelmate) CONFIG_82C710_MOUSE @@ -3436,10 +4223,11 @@ (user: anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO. If you want to compile this as a module ( = code which can be inserted in and removed from the running kernel whenever you want), say M here - and read Documentation/modules.txt. If you are unsure, say N and - read the HOWTO nevertheless: it will tell you what you have. Also be - aware that several vendors talk about 'Microsoft busmouse' and - actually mean PS/2 busmouse - so count the pins on the connector. + and read Documentation/modules.txt. The module will be called + msbusmouse.o. If you are unsure, say N and read the HOWTO + nevertheless: it will tell you what you have. Also be aware that + several vendors talk about 'Microsoft busmouse' and actually mean + PS/2 busmouse - so count the pins on the connector. ATIXL busmouse support CONFIG_ATIXL_BUSMOUSE @@ -3449,8 +4237,9 @@ anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO. If you want to compile this as a module ( = code which can be inserted in and removed from the running kernel whenever you want), say M here and - read Documentation/modules.txt. If you are unsure, say N and read - the HOWTO nevertheless: it will tell you what you have. + read Documentation/modules.txt. The module will be called + atixlmouse.o. If you are unsure, say N and read the HOWTO + nevertheless: it will tell you what you have. Support for user miscellaneous modules CONFIG_UMISC @@ -3462,30 +4251,38 @@ QIC-02 tape support CONFIG_QIC02_TAPE - If you have a non-SCSI tape drive like that, say Y. + If you have a non-SCSI tape drive like that, say Y. Or, if you want + to compile this driver as a module ( = code which can be inserted in + and removed from the running kernel whenever you want), say M here + and read Documentation/modules.txt. The module will be called + tpqic02.o. Do you want runtime configuration for QIC-02 CONFIG_QIC02_DYNCONF You can either configure this driver once and for all by editing a - header file, in which case you should say N, or you can fetch a - program via anonymous ftp which is able to configure this driver - during runtime. If you want this, say Y. + header file (include/linux/tpqic02.h), in which case you should + say N, or you can fetch a program via anonymous ftp which is able + to configure this driver during runtime. The program to do this is + called 'qic02conf' and it is part of the 'tpqic02-support-X.Y.tar.gz' + support package. + If you want to use the qic02conf program, say Y. Ftape (QIC-80/Travan) support CONFIG_FTAPE If you have a tape drive that is connected to your floppy controller, say Y here. Some tape drives (like the Iomega Ditto 3200) come with a high speed controller of its own. These drives - (and their companion controller) is also supported. If you have a - special controller (such as the CMS FC-10, FC-20, Iomega Mach-II, or - Ditto Dash), you must configure it by editing the file + (and their companion controller) are also supported by this driver, + so say Y if you have one. If you have a special controller (such as + the CMS FC-10, FC-20, Iomega Mach-II, or Ditto Dash), you must say Y + here and configure it by editing the file drivers/char/ftape/Makefile. If you want to use such a tape drive on a PCI-bus based system, please read the file drivers/char/ftape/README.PCI. This driver is also available as a runtime loadable module ( = code which can be inserted in and removed from the running kernel whenever you want). If you want to compile it as a module, say M here and read - Documentation/modules.txt. + Documentation/modules.txt. The module will be called ftape.o. Zilog serial support CONFIG_SUN_ZS @@ -3499,19 +4296,31 @@ APM compliant BIOSes. Specifically, the time will be reset after a USER RESUME operation, the /proc/apm device will provide battery status information, and user-space programs will receive - notification of APM "events" (e.g., battery status change). This - driver does not spin down disk drives (see hdparm(8) for that); and - it doesn't turn off VESA-compliant "green" monitors. This driver - does not support the TI 4000M TravelMate and the ACER 486/DX4/75 - because they don't have compliant BIOSes. Many "green" desktop - machines also don't have compliant BIOSes, and this driver will - cause those machines to panic during the boot phase (typically, - these machines are using a data segment of 0040, which is reserved - for the Linux kernel). If you get random kernel OOPSes that don't - seem to be related to anything and you have a motherboard with APM - support, try disabling/enabling this option. Generally, if you don't - have a battery in your machine, there isn't much point in using this - driver. + notification of APM "events" (e.g., battery status + change). Supporting software can be gotten via ftp (user: anonymous) + from tsx-11.mit.edu/pub/linux/packages/laptops/apm/. This driver + does not spin down disk drives (see hdparm(8) for that); and it + doesn't turn off VESA-compliant "green" monitors. This driver does + not support the TI 4000M TravelMate and the ACER 486/DX4/75 because + they don't have compliant BIOSes. Many "green" desktop machines + also don't have compliant BIOSes, and this driver will cause those + machines to panic during the boot phase (typically, these machines + are using a data segment of 0040, which is reserved for the Linux + kernel). Generally, if you don't have a battery in your machine, + there isn't much point in using this driver and you should say N. + If you get random kernel OOPSes or reboots that don't seem to be + related to anything, try disabling/enabling this option. Some other + things to try when experiencing seemingly random, "weird" problems: + 1) passing the "no-hlt" option to the kernel + 2) passing the "no-387" option to the kernel + 3) passing the "floppy=nodma" option to the kernel + 4) passing the "mem=4M" option to the kernel (thereby disabling + all but the first 4M of RAM) + 5) reading the sig11 FAQ at http://www.bitwizard.nl/sig11/ + 6) disabling the cache from your BIOS settings + 7) installing a better fan + 8) exchanging RAM chips + 9) exchanging the motherboard. Ignore USER SUSPEND CONFIG_APM_IGNORE_USER_SUSPEND @@ -3563,28 +4372,32 @@ Watchdog Timer Support CONFIG_WATCHDOG - If you enable this option and create a character special file - /dev/watchdog with major number 10 and minor number 130 using mknod - ("man mknod"), you will get a watchdog, i.e.: subsequently opening - the file and failing to write to it for longer than 1 minute will - result in rebooting the machine. This could be useful for a - networked machine that needs to come back online as fast as possible - after a lock-up. There's a watchdog implementation entirely in - software (which can sometimes fail to reboot the machine) and a - driver for hardware watchdog boards, which are more robust and can - also keep track of the temperature inside your computer. For - details, read Documentation/watchdog.txt in the kernel source. If - unsure, say N. This driver is also available as a module ( = code - which can be inserted in and removed from the running kernel - whenever you want). If you want to compile it as a module, say M - here and read Documentation/modules.txt. + If you say Y here (and to one of the following options) and create a + character special file /dev/watchdog with major number 10 and minor + number 130 using mknod ("man mknod"), you will get a watchdog, i.e.: + subsequently opening the file and failing to write to it for longer + than 1 minute will result in rebooting the machine. This could be + useful for a networked machine that needs to come back online as + fast as possible after a lock-up. There's both a watchdog + implementation entirely in software (which can sometimes fail to + reboot the machine) and a driver for hardware watchdog boards, which + are more robust and can also keep track of the temperature inside + your computer. For details, read Documentation/watchdog.txt in the + kernel source. + The watchdog is usually used together with the watchdog daemon which + is available via ftp (user: anonymous) from + tsx-11.mit.edu/pub/linux/sources/sbin/. This daemon can also monitor + NFS connections and can reboot the machine when the process table is + full. + If unsure, say N. Disable watchdog shutdown on close CONFIG_WATCHDOG_NOWAYOUT - The default watchdog behaviour is to stop the timer if the process - managing it closes the file /dev/watchdog. It's always remotely - possible that this process might get killed. If you enable this - option, the watchdog cannot be stopped once it has been started. + The default watchdog behaviour (which you get if you say N here) is + to stop the timer if the process managing it closes the file + /dev/watchdog. It's always remotely possible that this process might + get killed. If you say Y here, the watchdog cannot be stopped once + it has been started. WDT Watchdog timer CONFIG_WDT @@ -3594,7 +4407,7 @@ source at the top of drivers/char/wdt.c. If you want to compile this as a module ( = code which can be inserted in and removed from the running kernel whenever you want), say M here and read - Documentation/modules.txt. + Documentation/modules.txt. The module will be called wdt.o. WDT501 features CONFIG_WDT_501 @@ -3617,35 +4430,43 @@ from. Equally it's a lot cheaper to install. This driver is also available as a module ( = code which can be inserted in and removed from the running kernel whenever you want). If you want to compile - it as a module, say M here and read Documentation/modules.txt. + it as a module, say M here and read Documentation/modules.txt. The + module will be called softdog.o. -Berkshire Products PC Watchdog card +Berkshire Products PC Watchdog CONFIG_PCWATCHDOG This is the driver for the Berkshire Products PC Watchdog card. This card simply watches your kernel to make sure it doesn't freeze, and if it does, it resets your computer after a certain amount of time. This driver is like the WDT501 driver but for different - hardware. The PC watchdog cards can be ordered from - http://www.berkprod.com. Some example rc.local files are available - from ftp.bitgate.com. This driver is also available as a module ( = - code which can be inserted in and removed from the running kernel - whenever you want). If you want to compile it as a module, say M - here and read Documentation/modules.txt. Most people will say N. + hardware. Please read Documentation/pcwd-watchdog.txt. The PC + watchdog cards can be ordered from http://www.berkprod.com. Some + example rc.local files are available from ftp.bitgate.com. This + driver is also available as a module ( = code which can be inserted + in and removed from the running kernel whenever you want). The + module is called pcwd.o. If you want to compile it as a module, say + M here and read Documentation/modules.txt. Most people will say N. Enhanced Real Time Clock Support CONFIG_RTC - If you enable this option and create a character special file - /dev/rtc with major number 10 and minor number 135 using mknod ("man - mknod"), you will get access to the real time clock built into your + If you say Y here and create a character special file /dev/rtc with + major number 10 and minor number 135 using mknod ("man mknod"), you + will get access to the real time clock built into your computer. Every PC has such a clock built in. It can be used to generate signals from as low as 1Hz up to 8192Hz, and can also be used as a 24 hour alarm. It reports status information via the file /proc/rtc and its behaviour is set by various ioctls on /dev/rtc. People running SMP (= multiprocessor) versions of Linux - should enable this option to read and set the RTC clock in a SMP - compatible fashion. If you think you have a use for such a device - (such as periodic data sampling), then say Y here, and go read the - file Documentation/rtc.txt for details. + should say Y here to read and set the RTC clock in a SMP compatible + fashion. (They should also read Documentation/smp.) If you think you + have a use for such a device (such as periodic data sampling), then + say Y here, and go read the file Documentation/rtc.txt for details. + +ARC console time +CONFIG_RTC_ARC + If you boot your Alpha using the ARC firmware, say Y here. This option + adjusts the RTC clock to take into account the different starting epoch + used by ARC. Sound card support CONFIG_SOUND @@ -3668,13 +4489,13 @@ ProAudioSpectrum 16 support CONFIG_PAS Answer Y only if you have a Pro Audio Spectrum 16, ProAudio Studio - 16 or Logitech SoundMan 16. Don't answer 'y' if you have some other + 16 or Logitech SoundMan 16. Don't answer Y if you have some other card made by Media Vision or Logitech since they are not PAS16 compatible. SoundBlaster (SB, SBPro, SB16, clones) support CONFIG_SB - Answer "y" if you have an original SoundBlaster card made by + Answer Y if you have an original SoundBlaster card made by Creative Labs or a 100% hardware compatible clone (like the Thunderboard or SM Games). If your card was in the list of supported cards look at the card specific instructions in the @@ -3692,14 +4513,14 @@ Gravis Ultrasound support CONFIG_GUS - Enable this option for any type of Gravis Ultrasound card, including + Say Y here for any type of Gravis Ultrasound card, including the GUS or GUS MAX. MPU-401 support (NOT for SB16) CONFIG_MPU401 Be careful with this question. The MPU401 interface is supported by all soundcards. However, some natively supported cards have their - own driver for MPU401. Enabling the MPU401 option with these cards + own driver for MPU401. Enabling this MPU401 option with these cards will cause a conflict. Also, enabling MPU401 on a system that doesn't really have a MPU401 could cause some trouble. If your card was in the list of supported cards, look at the card specific @@ -3721,8 +4542,8 @@ 16 bit sampling option of GUS (_NOT_ GUS MAX) CONFIG_GUS16 Answer Y if you have installed the 16 bit sampling daughtercard on - your GUS. Answer N if you have a GUS MAX, since enabling this - option disables GUS MAX support. + your GUS. Answer N if you have a GUS MAX, since saying Y here + disables GUS MAX support. GUS MAX support CONFIG_GUSMAX @@ -3749,7 +4570,7 @@ synthesizers (OPL2, OPL3 and OPL4), 6850 UART MIDI Interface. For cards having native support in VoxWare, consult the card specific instructions in drivers/sound/Readme.cards. Some drivers - have their own MSS support and enabling this option will cause a + have their own MSS support and saying Y to this option will cause a conflict. Ensoniq Soundscape support @@ -3774,11 +4595,11 @@ Support for Crystal CS4232 based (PnP) cards CONFIG_CS4232 - Enable this if you have a card based on the Crystal CS4232 chip set. + Say Y here if you have a card based on the Crystal CS4232 chip set. Support for Turtle Beach Wave Front (Maui, Tropez) synthesizers CONFIG_MAUI - Enable this option if you have a Turtle Beach Wave Front, Maui, or + Say Y here if you have a Turtle Beach Wave Front, Maui, or Tropez sound card. Support for Crystal CS4232 based (PnP) cards @@ -3807,50 +4628,80 @@ This is support for the soundcards on Sun workstations. The code does not exist yet, so you might as well say N here. +SB32/AWE support +CONFIG_AWE32_SYNTH + Say Y here if you have a SB32 or SB AWE soundcard. See + linux/drivers/sound/lowlevel/README.awe for more info. + +Additional low level drivers +CONFIG_LOWLEVEL_SOUND + If you need additional low level sound drivers which are not part + of USS/Lite (UNIX Sound System), say Y. The only such driver at + present is the ACI driver for the miroSOUND PCM12 and PCM20. + +ACI mixer (miroPCM12) +CONFIG_ACI_MIXER + Audio Command Interface (ACI) driver. ACI is a protocol used to + communicate with the microcontroller on some sound cards produced + by miro, e.g. the miroSOUND PCM12 and PCM20. The main function + of the ACI is to control the mixer and to get a product + identification. This Voxware ACI driver currently only supports + the ACI functions on the miroSOUND PCM12 card. On the PCM20, ACI + also controls the radio tuner on this card, however this is not + yet supported in this software. + Kernel profiling support CONFIG_PROFILE This is for kernel hackers who want to know how much time the kernel spends in the various procedures. The information is stored in - /proc/profile (enable the /proc filesystem!) and in order to read - it, you need the readprofile package from sunsite.unc.edu. Its + /proc/profile (say Y to "/proc filesystem support"!) and in order to + read it, you need the readprofile package from sunsite.unc.edu. Its manpage gives information regarding the format of profiling data. To - become a kernel hacker, you can start with the Kernel Hacker's - Guide, available via ftp (user: anonymous) from - sunsite.unc.edu:/pub/Linux/docs/LDP. Mere mortals say N. + become a kernel hacker, you can start with the Kernel Hacker's Guide + at http://www.redhat.com:8080/HyperNews/get/khg.html. Mere mortals + say N. Profile shift count CONFIG_PROFILE_SHIFT This is used to adjust the granularity with which the addresses of executed instructions get recorded in /proc/profile. But since you - enabled "Kernel profiling support", you must be a kernel hacker and + said Y to "Kernel profiling support", you must be a kernel hacker and hence you know what this is about :-) ISDN subsystem CONFIG_ISDN - ISDN ("Integrated Services Digital Networks", called RNIS in - France) is a special type of fully digital telephone line; it's - mostly used to connect to your Internet service provider (with SLIP - or PPP). The main advantage is that the speed is higher than - ordinary modem/telephone connections. It only works if your computer - is equipped with an ISDN card and both you and your service provider - purchased an ISDN line from your phone company. For details, read - http://alumni.caltech.edu/~dank/isdn/ on the WWW. (To browse the - WWW, you need to have access to a machine on the Internet that has - one of the programs lynx, netscape or Mosaic.) This driver allows - you to use an ISDN-card for networking connections and as dialin/out - device. The isdn-tty's have a built in AT-compatible modem - emulator. Network devices support autodial, channel-bundling, + ISDN ("Integrated Services Digital Networks", called RNIS in France) + is a special type of fully digital telephone service; it's mostly + used to connect to your Internet service provider (with SLIP or + PPP). The main advantage is that the speed is higher than ordinary + modem/telephone connections, and that you can have voice + conversations while downloading stuff. It only works if your + computer is equipped with an ISDN card and both you and your service + provider purchased an ISDN line from the phone company. For + details, read http://alumni.caltech.edu/~dank/isdn/ on the WWW. (To + browse the WWW, you need to have access to a machine on the Internet + that has one of the programs lynx, netscape or Mosaic.) This driver + allows you to use an ISDN-card for networking connections and as + dialin/out device. The isdn-tty's have a built in AT-compatible + modem emulator. Network devices support autodial, channel-bundling, callback and caller-authentication without having a daemon running. A reduced T.70 protocol is supported with tty's suitable for German BTX. On D-Channel, the protocols EDSS1 and 1TR6 are - supported. See Documentation/isdn/README for more information. + supported. See Documentation/isdn/README for more information. If + you want to compile the ISDN as a module ( = code which can be + inserted in and removed from the running kernel whenever you want), + say M here and read Documentation/modules.txt. The module will be + called isdn.o. If unsure, say N. Support synchronous PPP CONFIG_ISDN_PPP - This enables synchronous PPP via ISDN. This protocol is used by - Cisco or Sun for example. So you want say Y here if the other end of - your ISDN connection supports it. You will need a special version of - pppd (called ipppd) for using this feature. See + Over digital connections such as ISDN, there is no need to + synchronize sender and recipient's clocks with start and stop bits + as is done over telephone lines. Instead, one can use "synchronous + PPP". Saying Y here will include this protocol. This protocol is + used by Cisco and Sun for example. So you want to say Y here if the + other end of your ISDN connection supports it. You will need a + special version of pppd (called ipppd) for using this feature. See Documentation/isdn/README.syncppp and Documentation/isdn/syncPPP.FAQ for more information. @@ -3866,13 +4717,13 @@ Support audio via ISDN CONFIG_ISDN_AUDIO - With this option enabled, the modem-emulator supports a subset - of the EIA Class 8 Voice commands. Using a getty with voice-support + If you say Y here, the modem-emulator will support a subset of the + EIA Class 8 Voice commands. Using a getty with voice-support (mgetty+sendfax by gert@greenie.muc.de with an extension, available - with the ISDN utility package for example), you will be able - to use your Linux box as an ISDN-answering machine. Of course, this - must be supported by the lowlevel driver also. Currently, the Teles - driver is the only voice-supporting one. See + with the ISDN utility package for example), you will be able to use + your Linux box as an ISDN-answering machine. Of course, this must be + supported by the lowlevel driver also. Currently, the Teles and + HiSax drivers are the only voice-supporting drivers. See Documentation/isdn/README.audio for more information. ICN 2B and 4B support @@ -3883,16 +4734,87 @@ this card, additional firmware is necessary, which has to be downloaded into the card using a utility which is distributed separately. See Documentation/isdn/README and README.icn for more - information. + information. If you want to compile this as a module ( = code which + can be inserted in and removed from the running kernel whenever you + want), say M here and read Documentation/modules.txt. The module + will be called icn.o. Teles, NICCY1016PC, Creatix support CONFIG_ISDN_DRV_TELES This enables support for the Teles ISDN-cards S0-16.0, S0-16.3, S0-8 - and many compatibles. By default, the driver is configured to - support a 16.0-type using EDSS1-protocol. See - Documentation/isdn/README on how to configure it using 16.3, a - different D-channel protocol, or non-standard irq/port/shmem - settings. + and many compatibles. + There is a new, heavily improved driver called HiSax which can be + enabled in the next section. This driver will be removed soon. Please + use this driver only if you cannot get the HiSax driver to work. + By default, the driver is configured to support a 16.0-type using + EDSS1-protocol. See Documentation/isdn/README on how to configure + it using 16.3, a different D-channel protocol, or non-standard + irq/port/shmem settings. + +HiSax SiemensChipSet driver support +CONFIG_ISDN_DRV_HISAX + This is an alternative driver supporting the Siemens chipset on + various ISDN-cards (like AVM A1, Elsa ISDN cards, Teles S0-16.0, + Teles S0-16.3, Teles S0-8, Teles/Creatix PnP, ITK micro ix1 and many + compatibles). It's a complete rewrite of the original Teles driver. + So you either say M or Y here and N in the above Teles section. If + you want to compile this as a module ( = code which can be inserted + in and removed from the running kernel whenever you want), say M + here and read Documentation/modules.txt. The module will be called + hisax.o. See Documentation/isdn/README.HiSax for further + informations on using this driver. + +HiSax Support for Teles 16.0/8.0 +CONFIG_HISAX_16_0 + This enables HiSax support for the Teles ISDN-cards S0-16.0, + S0-8 and many compatibles. + See Documentation/isdn/README.HiSax on how to configure it + using the different cards, a different D-channel protocol, or + non-standard irq/port/shmem settings. + +HiSax Support for Teles 16.3 or PNP or PCMCIA +CONFIG_HISAX_16_3 + This enables HiSax support for the Teles ISDN-cards S0-16.3 + the Teles/Creatix PnP and the Teles PCMCIA. + See Documentation/isdn/README.HiSax on how to configure it + using the different cards, a different D-channel protocol, or + non-standard irq/port/shmem settings. + +HiSax Support for AVM A1 (Fritz) +CONFIG_HISAX_AVM_A1 + This enables HiSax support for the AVM A1 (aka "Fritz"). + See Documentation/isdn/README.HiSax on how to configure it + using the different cards, a different D-channel protocol, or + non-standard irq/port/shmem settings. + +HiSax Support for Elsa cards +CONFIG_HISAX_ELSA_PCC + This enables HiSax support for the Elsa Mircolink cards and + for the Elsa Quickstep series cards. + See Documentation/isdn/README.HiSax on how to configure it + using the different cards, a different D-channel protocol, or + non-standard irq/port/shmem settings. + +HiSax Support for ITK ix1-micro Revision 2 +CONFIG_HISAX_IX1MICROR2 + This enables HiSax support for the ITK ix1-micro Revision 2 card. + See Documentation/isdn/README.HiSax on how to configure it + using the different cards, a different D-channel protocol, or + non-standard irq/port/shmem settings. + +HiSax Support for EURO/DSS1 +CONFIG_HISAX_EURO + You should choose the D-channel protocol your local + telephone service provider uses here by saying Y or N. + NOTE: This is mutually exclusive with HiSax Support for + German 1TR6 if you have only one ISDN card installed. + +HiSax Support for German 1TR6 +CONFIG_HISAX_1TR6 + You should choose the D-channel protocol your local + telephone service provider uses here by saying Y or N. + NOTE: This is mutually exclusive with HiSax Support for + EURO/DSS1 if you have only one ISDN card installed. PCBIT-D support CONFIG_ISDN_DRV_PCBIT @@ -3901,15 +4823,453 @@ firmware is necessary, which has to be downloaded into the card using a utility which is distributed separately. See Documentation/isdn/README and Documentation/isdn/README.pcbit for - more information. + more information. If you want to compile this as a module ( = code + which can be inserted in and removed from the running kernel + whenever you want), say M here and read + Documentation/modules.txt. The module will be called pcbit.o. + +Spellcaster support (EXPERIMENTAL) +CONFIG_ISDN_DRV_SC + This enables support for the Spellcaster BRI ISDN boards. This + driver currently builds only in a modularized version ( = code which + can be inserted in and removed from the running kernel whenever you + want, details in Documentation/modules.txt); the module will be + called sc.o. See Documentation/isdn/README.sc and + http://www.spellcast.com for more information. Support for AP1000 multicomputer CONFIG_AP1000 This enables support for a sparc based parallel multi-computer - called an AP1000+. For details on our efforts to port Linux to this + called AP1000+. For details on our efforts to port Linux to this machine see http://cap.anu.edu.au/cap/projects/linux or mail to hackers@cafe.anu.edu.au +Sparc ESP SCSI support +CONFIG_SCSI_SUNESP + This is the driver for the Sun ESP SCSI host adapter. The ESP + chipset is present in most SPARC-based computers. + +Sparc /dev/openprom compatibility driver +CONFIG_SUN_OPENPROMIO + This driver provides user programs with an interface to the Sparc + PROM device tree. The driver implements a SunOS-compatible + interface and a NetBSD-compatible interface. If you want to + compile this as a module ( = code which can be inserted in and + removed from the running kernel whenever you want), say M and read + Documentation/modules.txt. If unsure, say Y. + +# m68k-specific kernel options +# Documented by Chris Lawrence et al. + +Amiga support +CONFIG_AMIGA + This option enables support for the Amiga series of computers. If + you plan to use this kernel on an Amiga, say Y here; otherwise say N. + +Atari support +CONFIG_ATARI + This option enables support for the 68000-based Atari series of + computers (including the TT, Falcon and Medusa). If you plan to use + this kernel on an Atari, say Y here; otherwise say N. + +Macintosh support +CONFIG_MAC + This option would enable support for the Apple Macintosh if there was + any for it. Say N unless you've coded all the necessary support. ;) + +# CONFIG_APOLLO, etc. coming soon (?) + +68020 support +CONFIG_M68020 + If you anticipate running this kernel on a computer with a MC68020 + processor, say Y. Otherwise, say N. Note that the 68020 requires a + 68851 MMU (= memory management unit) to run Linux/m68k. + +68030 support +CONFIG_M68030 + If you anticipate running this kernel on a computer with a MC68030 + processor, say Y. Otherwise, say N. Note that a MC68EC030 will not + work, as it does not include an MMU (= memory management unit). + +68040 support +CONFIG_M68040 + If you anticipate running this kernel on a computer with a MC68LC040 + or MC68040 processor, say Y. Otherwise, say N. Note that an + MC68EC040 will not work, as it does not include an MMU (= memory + management unit). + +Use -m68040 flag for 68040 specific optimizations +CONFIG_OPTIMIZE_040 + If you will only be running this kernel on a 68040-series processor, + this will make the kernel run somewhat faster. However, it will no + longer run on a 68020 or 68030, no matter whether you included 68020 + and 68030 support or not. Say N unless the only processor you are + compiling support for is the 68040 (or 68LC040). + +68060 support +CONFIG_M68060 + If you anticipate running this kernel on a computer with a MC68060 + processor, say Y. Otherwise, say N. + +Use -m68060 flag for 68060 specific optimizations +CONFIG_OPTIMIZE_060 + If you will only be running this kernel on a 68060-series processor, + this will make the kernel run somewhat faster. However, it will no + longer run on a 68020, 68030 or 68040, no matter whether you + included support for those processors or not. Say N unless the only + processor you are compiling support for is the 68060. + +Advanced processor options +CONFIG_ADVANCED_CPU + This gives you access to some advanced options for the CPU. The + defaults should be fine for most users, but these options may make + it possible for you to improve performance somewhat if you know what + you are doing. Most users should say N to this question. + +Use read-modify-write instructions +CONFIG_RMW_INSNS + This allows to use certain instructions that work with indivisible + read-modify-write bus cycles. While this is faster than the + workaround of disabling interrupts, it can conflict with DMA (= + direct memory access) on many Amiga systems, and it is also said to + destabilize other machines. It is very likely that this will cause + serious problems on any Amiga or Atari Medusa if set. The only + configuration where it should work are 68030-based Ataris, where it + apparently improves performance. But you've been warned! Unless you + really know what you are doing, say N. Try Y only if you're + quite adventurous. + +Amiga AutoConfig Identification +CONFIG_ZORRO + This enables support for automatic identification of Amiga expansion + cards that obey the AutoConfig(tm) specification. + Say Y if you want your expansion cards to be identified on bootup; + it will enlarge your kernel by about 10KB. The identification + information is also available through /proc/zorro (say Y to + "/proc filesystem support"!). + Note that even if you say N here, you can still use your expansion + cards. If in doubt, say Y. + +Amiga OCS chipset support +CONFIG_AMIFB_OCS + This enables support for the original Agnus and Denise video chips, + found in the Amiga 1000 and most A500's and A2000's. If you intend + to run Linux on any of these systems, say Y; otherwise say N. + +Amiga ECS chipset support +CONFIG_AMIFB_ECS + This enables support for the Enhanced Chip Set, found in later + A500's, later A2000's, the A600, the A3000, the A3000T and CDTV. If + you intend to run Linux on any of these systems, say Y; otherwise + say N. + +Amiga AGA chipset support +CONFIG_AMIFB_AGA + This enables support for the Advanced Graphics Architecture (also + known as the AGA or AA) Chip Set, found in the A1200, A4000, A4000T + and CD32. If you intend to run Linux on any of these systems, say Y; + otherwise say N. + +Amiga Cybervision support +CONFIG_FB_CYBER + This enables support for the Cybervision 64 graphics card from Phase5. + Please note that its use is not all that intuitive (i.e. if you have + any questions, be sure to ask!). Say N unless you have a Cybervision + 64 or plan to get one before you next recompile the kernel. + Please note that this driver DOES NOT support the Cybervision 64 3D + card at present, as they use incompatible video chips. + +Amiga GSP (TMS340x0) support +CONFIG_AMIGA_GSP + Include support for Amiga graphics cards that use the Texas + Instruments TMS340x0 GSP (= graphics signal processor) chips. Say Y + if you want to use a DMI Resolver or Commodore A2410 (Lowell) + graphics card on an Amiga; otherwise, say N. + +DMI Resolver support +CONFIG_GSP_RESOLVER + Include support in the kernel for the DMI Resolver graphics card. If + you have one, say Y; otherwise, say N. + +A2410 support +CONFIG_GSP_A2410 + Include support in the kernel for the Commodore/University of Lowell + A2410 graphics card. If you have one, say Y; otherwise, say N. + +Amiga Zorro II ramdisk support +CONFIG_AMIGA_Z2RAM + This enables support for using Chip RAM and Zorro II RAM as a + ramdisk or as a swap partition. Say Y if you want to include this + driver in the kernel. This driver is also available as a module ( = + code which can be inserted in and removed from the running kernel + whenever you want). The module is called z2ram.o. If you want to + compile it as a module, say M here and read + Documentation/modules.txt. + +Atari ACSI support +CONFIG_ATARI_ACSI + This enables support for the Atari ACSI interface. The driver + supports hard disks and CD-ROMs, which have 512-byte sectors, or can + be switched to that mode. Due to the ACSI command format, only disks + up to 1 GB are supported. Special support for certain ACSI to SCSI + adapters, which could relax that, isn't included yet. The ACSI + driver is also the basis for certain other drivers for devices + attached to the ACSI bus: Atari SLM laser printer, BioNet-100 + Ethernet, and PAMsNet Ethernet. If you want to use one of these + devices, you need ACSI support, too. This driver is + also available as a module ( = code which can be inserted in and + removed from the running kernel whenever you want). The module will + be called acsi.o. + +Probe all LUNs on each ACSI device +CONFIG_ACSI_MULTI_LUN + If you have a ACSI device that supports more than one LUN (Logical + Unit Number), e.g. a CD jukebox, you should say Y here so that all + will be found by the ACSI driver. An ACSI device with multiple LUNs + acts logically like multiple ACSI devices. The vast majority of ACSI + devices have only one LUN, and so most people can say N here and + should in fact do so, because it is safer. + +Atari SLM laser printer support +CONFIG_ATARI_SLM + If you have an Atari SLM laser printer, say Y to include support for + it in the kernel. Otherwise, say N. This driver is also available as + a module ( = code which can be inserted in and removed from the + running kernel whenever you want). The module will be called + acsi_slm.o. Be warned: the driver needs much ST-RAM and can cause + problems due to that fact! + +A3000 WD33C93A support +CONFIG_A3000_SCSI + If you have an Amiga 3000 and have SCSI devices connected to the + built-in SCSI controller, say Y. Otherwise, say N. This driver is + also available as a module ( = code which can be inserted in and + removed from the running kernel whenever you want). The module is + called wd33c93.o. If you want to compile it as a module, say M here + and read Documentation/modules.txt. + +A2091 WD33C93A support +CONFIG_A2091_SCSI + If you have a Commodore A2091 SCSI controller, say Y. Otherwise, + say N. This driver is also available as a module ( = code which can + be inserted in and removed from the running kernel whenever you + want). The module is called wd33c93.o. If you want to compile it as + a module, say M here and read Documentation/modules.txt. + +GVP Series II WD33C93A support +CONFIG_GVP11_SCSI + If you have a Great Valley Products Series II SCSI controller, say + Y. Also say Y if you have a later model of GVP SCSI controller + (such as the GVP A4008 or a Combo board). Otherwise, say N. + This driver does NOT work for the T-Rex series of accelerators from + TekMagic and GVP-M. + This driver is also available as a module ( = code which can be + inserted in and removed from the running kernel whenever you + want). The module will be called gvp11.o. If you want to compile it + as a module, say M here and read Documentation/modules.txt. + +Cyberstorm SCSI support +CONFIG_CYBERSTORM_SCSI + If you have an Amiga with an original (MkI) Phase5 Cyberstorm + accelerator board and the optional Cyberstorm SCSI controller, say + Y. Otherwise, say N. + +Cyberstorm II SCSI support +CONFIG_CYBERSTORMII_SCSI + If you have an Amiga with a Phase5 Cyberstorm MkII accelerator board + and the optional Cyberstorm SCSI controller, say Y. Otherwise, say N. + +Blizzard 2060 SCSI support +CONFIG_BLZ2060_SCSI + If you have an Amiga with a Phase5 Blizzard 2060 accelerator board + and want to use the onboard SCSI controller, say Y. Otherwise, say + N. + +Blizzard 1230IV/1260 SCSI support +CONFIG_BLZ1230_SCSI + If you have an Amiga 1200 with a Phase5 Blizzard 1230IV or Blizzard + 1260 accelerator, and the optional SCSI module, say Y. Otherwise, + say N. + +Atari native SCSI support +CONFIG_ATARI_SCSI + If you have an Atari with built-in NCR5380 SCSI controller (TT, + Falcon, ...) say Y to get it supported. Of course also, if you have + an compatible SCSI controller (e.g. for Medusa). This driver is also + available as a module ( = code which can be inserted in and removed + from the running kernel whenever you want). The module is called + atari_scsi.o. If you want to compile it as a module, say M here and + read Documentation/modules.txt. This driver supports both styles of + NCR integration into the system: the TT style (separate DMA), and + the Falcon style (via ST-DMA, replacing ACSI). It does NOT support + other schemes, like in the Hades (without DMA). + +Long delays for Toshiba CD-ROMs +CONFIG_ATARI_SCSI_TOSHIBA_DELAY + This option increases the delay after a SCSI arbitration to + accommodate some flaky Toshiba CD-ROM drives. Say Y if you intend to + use a Toshiba CD-ROM drive; otherwise, the option is not needed and + would impact performance a bit, so say N. + +Ariadne support +CONFIG_ARIADNE + If you have a VillageTronics Ariadne Ethernet adapter, say Y. + Otherwise, say N. + This driver is also available as a module ( = code which can be + inserted in and removed from the running kernel whenever you + want). The module is called ariadne.o. If you want to compile it as + a module, say M here and read Documentation/modules.txt. + +A2065 support +CONFIG_A2065 + If you have a Commodore A2065 Ethernet adapter, say Y. Otherwise, + say N. + This driver is also available as a module ( = code which can be + inserted in and removed from the running kernel whenever you + want). The module is called a2065.o. If you want to compile it as a + module, say M here and read Documentation/modules.txt. + +Hydra support +CONFIG_HYDRA + If you have a Hydra Ethernet adapter, say Y. Otherwise, say N. + This driver is also available as a module ( = code which can be + inserted in and removed from the running kernel whenever you + want). The module is called hydra.o. If you want to compile it as a + module, say M here and read Documentation/modules.txt. + +Atari Lance support +CONFIG_ATARILANCE + Say Y to include support for several Atari Ethernet adapters based + on the AMD Lance chipset: RieblCard (with or without battery), or + PAMCard VME (also the version by Rhotron, with different addresses). + +BioNet-100 support +CONFIG_ATARI_BIONET + Say Y to include support for BioData's BioNet-100 Ethernet adapter + for the ACSI port. The driver works (has to work...) with a polled + I/O scheme, so it's rather slow :-( + +PAMsNet support +CONFIG_ATARI_PAMSNET + Say Y to include support for the PAMsNet Ethernet adapter for the + ACSI port ("ACSI node"). The driver works (has to work...) with a + polled I/O scheme, so it's rather slow :-( + +Multiface Card III parallel support +CONFIG_MULTIFACE_III_LP + If you have a Multiface III card for your Amiga, and want to use its + parallel port in Linux, say Y. Otherwise, say N. This driver is + also available as a module ( = code which can be inserted in and + removed from the running kernel whenever you want). The module is + called lp_m68k.o. If you want to compile it as a module, say M here + and read Documentation/modules.txt. + +Amiga mouse support +CONFIG_AMIGAMOUSE + If you want to be able to use an Amiga mouse in Linux, say Y. This + driver is also available as a module ( = code which can be inserted + in and removed from the running kernel whenever you want). The + module is called amigamouse.o. If you want to compile it as a + module, say M here and read Documentation/modules.txt. + +Amiga Copper Console +CONFIG_COPCON + This configures the console to use the Amiga's graphics coprocessor + for scrolling, instead of using the CPU. This option markedly + improves response times in the high color modes (5 bitplanes and + up). If you would like to use this, say Y; otherwise, say N. + +Atari mouse support +CONFIG_ATARIMOUSE + If you want to be able to use an Atari mouse in Linux, say Y. This + driver is also available as a module ( = code which can be inserted + in and removed from the running kernel whenever you want). The + module is called atarimouse.o. If you want to compile it as a + module, say M here and read Documentation/modules.txt. + +Atari MFP serial support +CONFIG_ATARI_MFPSER + If you like to use the MFP serial ports ("Modem1", "Serial1") under + Linux, say Y. The driver equally supports all kinds of MFP serial + ports and automatically detects whether Serial1 is available. This + driver is also available as a module ( = code which can be inserted + in and removed from the running kernel whenever you want). If you + want to compile it as a module, say M here and read + Documentation/modules.txt. + Note for Falcon users: You also have an MFP port, it's just not + wired to the outside... But you could use the port under Linux. + +Atari SCC serial support +CONFIG_ATARI_SCC + If you have serial ports based on a Zilog SCC chip (Modem2, Serial2, + LAN) and like to use them under Linux, say Y. All built-in SCC's are + supported (TT, MegaSTE, Falcon), and also the ST-ESCC. If you have + two connectors for channel A (Serial2 and LAN), they are visible as + two separate devices. This driver is also available as a module ( = + code which can be inserted in and removed from the running kernel + whenever you want). If you want to compile it as a module, say M + here and read Documentation/modules.txt. + +Atari MIDI serial support +CONFIG_ATARI_MIDI + If you want to use your Atari's MIDI port in Linux, say Y. + This driver is also available as a module ( = code which can be + inserted in and removed from the running kernel whenever you + want). If you want to compile it as a module, say M here and read + Documentation/modules.txt. + +Atari DSP56k Digital Signal Processor support +CONFIG_ATARI_DSP56K + If you want to be able to use the DSP56001 in Falcons, say Y. + This driver is still experimental, and if you don't know what it is, + or if you don't have this processor, just say N. + This driver is also available as a module ( = code which can be inserted + in and removed from the running kernel whenever you want). If you + want to compile it as a module, say M here and read + Documentation/modules.txt. + +Amiga builtin serial support +CONFIG_AMIGA_BUILTIN_SERIAL + If you want to use your Amiga's built-in serial port in Linux, say + Y. + This driver is also available as a module ( = code which can be + inserted in and removed from the running kernel whenever you + want). If you want to compile it as a module, say M here and read + Documentation/modules.txt. + +GVP IO-Extender support +CONFIG_GVPIOEXT + If you want to use a GVP IO-Extender serial card in Linux, say Y. + Otherwise, say N. + +Multiface Card III serial support +CONFIG_MULTIFACE_III_TTY + If you want to use a Multiface III card's serial port in Linux, say + Y. + This driver is also available as a module ( = code which can be inserted + in and removed from the running kernel whenever you want). If you + want to compile it as a module, say M here and read + Documentation/modules.txt. + +Amiga or Atari DMA sound support +CONFIG_DMASOUND + If you want to use the internal audio of your Atari or Amiga in + Linux, answer Y to this question. This will provide a Sun-like + /dev/audio, compatible with the Linux/i386 sound system. Otherwise, + say N. + This driver is also available as a module ( = code which can be + inserted in and removed from the running kernel whenever you + want). If you want to compile it as a module, say M here and read + Documentation/modules.txt. + +MSDOS partition support +CONFIG_MSDOS_PARTITION + This option enables support for using hard disks that were + partitioned on an MS-DOS system. This may be useful if you are + sharing a hard disk between i386 and m68k Linux boxes, for example. + Say Y if you need this feature; users who are only using their + system-native partitioning scheme can say N here. + # need an empty line after last entry, for sed script in Configure. # @@ -3967,7 +5327,7 @@ # LocalWords: wdt hdb hdc bugfix SiS vlb Acculogic CSA DTC dtc Holtek ht QDI # LocalWords: QD qd UMC umc ALI ali lena fnet fr homepage azstarnet axplinux # LocalWords: Avanti XL AlphaStations Jensen DECpc AXPpci UDB Cabriolet MCA RC -# LocalWords: AlphaPC uwaterloo cpbeaure mca AOUT OUTput PPro sipx gwdg lo nwe +# LocalWords: AlphaPC mca AOUT OUTput PPro sipx gwdg lo nwe FourPort Boca unm # LocalWords: Keepalive linefill RELCOM keepalive analogue CDR conf CDI INIT # LocalWords: OPTi isp irq noisp VFAT vfat NTFS losetup dmsdosfs dosfs ISDN MP # LocalWords: NOWAYOUT behaviour dialin isdn callback BTX Teles ICN EDSS Cisco @@ -3997,4 +5357,35 @@ # LocalWords: mgetty sendfax gert greenie muc lowlevel Lasermate LanManager io # LocalWords: OOPSes trackball binghamton mobileip ncr IOMAPPED settags ns ser # LocalWords: setsync NEGO MPARITY autotuning prefetch PIIX cdwrite utils rc -# LocalWords: PCWATCHDOG berkprod bitgate +# LocalWords: PCWATCHDOG berkprod bitgate boldt ucsb jf kyoto jp euc Tetsuyasu +# LocalWords: YAMADA tetsu cauchy nslab ntt nevod perm su doc kaf kheops wsc +# LocalWords: traduc Bourgin dbourgin helptext menuconfig kfill READMEs HOWTOs +# LocalWords: IDEDISK IDEFLOPPY EIDE firewalls QMAGIC ZMAGIC LocalWords opti +# LocalWords: SVGATextMode vga svga Xterminal Xkernel syr jmwobus comfaqs dhcp +# LocalWords: IPv IPng interoperability ipng ipv radio's tapr pkthome PLP nano +# LocalWords: Ses Mhz sethdlc SOUNDMODEM WindowsSoundSystem smdiag pcf inka ES +# LocalWords: smmixer ptt circ soundmodem MKISS FDDI DEFEA DEFPA DEFXX redhat +# LocalWords: HyperNews khg mconv sed lina wuftpd MicroChannel netlink irc cum +# LocalWords: raudio realaudio PPROP NETBIOS GUI IBMMCA ELMC Racal Interlan fi +# LocalWords: eth shapecfg src esp PCWD PREVSTAT bootparam sig bitwizard SBC +# LocalWords: downloads AFSK TCM FP Karn KA FSK RUH LinkSys cron mouseman LLC +# LocalWords: SyQuest SyQuest's CCITT MicroSolutions BPCD bpcd ESPSERIAL PROM +# LocalWords: SUNESP openprom OPENPROMIO quango themall al TT MC MMU LC RMW AA +# LocalWords: INSNS Ataris AutoConfig ZORRO OCS AMIFB Agnus Denise ECS CDTV GB +# LocalWords: AGA Cybervision CYBER GSP TMS DMI Zorro ACSI ROMs SLM BioNet GVP +# LocalWords: PAMsNet TekMagic Cyberstorm MkI CYBERSTORMII MkII BLZ onboard cx +# LocalWords: VillageTronics ATARILANCE RieblCard PAMCard VME MFP sangoma LAPB +# LocalWords: Rhotron BioData's Multiface AMIGAMOUSE COPCON Amiga's bitplanes +# LocalWords: ATARIMOUSE MFPSER SCC's MegaSTE ESCC Atari's GVPIOEXT DMASOUND +# LocalWords: fdutils cisco univercd rpcg htm iface lapb LAPBETHER tpqic qic +# LocalWords: SYNTH xd en binfmt aout ipip terra ipx fileserver sd sr sg wic +# LocalWords: ibmmca lapbether mkiss dlci sdla fmv eepro eexpress ni hp ne es +# LocalWords: ibmtr isofs ROMFS romfs pcxx cyclades istallion psaux msbusmouse +# LocalWords: atixlmouse sbin softdog pcwd USS Lite ACI miroSOUND PCM miroPCM +# LocalWords: microcontroller miro Voxware downloading teles acsi slm gvp ltpc +# LocalWords: atari ariadne amigamouse atarimouse builtin IPDDP maths bradford +# LocalWords: LocalTalk AppleTalk Farallon PhoneNet Zubkoff lnz SCCB HAPN WANs +# LocalWords: wanrouter WANPIPE multiprotocol Mbps wanpipe EtherWORKS nodma SC +# LocalWords: smp HiSax SiemensChipSet Siemens AVM Elsa ITK hisax PCC MICROR +# LocalWords: Mircolink EURO DSS Spellcaster BRI sc spellcast Digiboards GPIO +# LocalWords: SYMBIOS COMPAT SDMS rev ASUS Tekram diff -ur --new-file old/linux/Documentation/cdrom/00-INDEX new/linux/Documentation/cdrom/00-INDEX --- old/linux/Documentation/cdrom/00-INDEX Sat Aug 17 20:19:25 1996 +++ new/linux/Documentation/cdrom/00-INDEX Wed Dec 18 14:57:28 1996 @@ -2,6 +2,9 @@ - this file (info on CD-ROMs and Linux) aztcd - info on Aztech/Orchid/Okano/Wearnes/Conrad/CyCDROM driver. +bpcd + - info on MicroSolutions backpack CDROM + cdrom-standard.tex - LaTeX document on standardizing the CD-ROM programming interface. cdu31a diff -ur --new-file old/linux/Documentation/cdrom/bpcd new/linux/Documentation/cdrom/bpcd --- old/linux/Documentation/cdrom/bpcd Thu Jan 1 01:00:00 1970 +++ new/linux/Documentation/cdrom/bpcd Wed Dec 18 14:57:28 1996 @@ -0,0 +1,74 @@ +linux/Documentation/cdrom/bpcd (c) 1996 Grant R. Guenther + +This file documents the bpcd driver for the MicroSolutions backpack CDrom, +an external parallel port device. + +There are apparently two versions of the backpack protocol. This +driver knows about the version 2 protocol - as is used in the 4x +and 6x products. There is no support for the sound hardware that +is included in some models. It should not be difficult to add +support for the ATAPI audio play functions and the corresponding +ioctls. + +The driver was developed by reverse engineering the protocol +and testing it on the backpack model 164550. This model +is actually a stock ATAPI drive packaged with a custom +ASIC that implements the IDE over parallel protocol. +I tested with a backpack that happened to contain a Goldstar +drive, but I've seen reports of Sony and Mitsumi drives as well. + +Before attempting to use the driver, you will need to +create a new device special file. The following commands will +do that for you: + + mknod /dev/bpcd b 41 0 + chown root:disk /dev/bpcd + chmod 660 /dev/bpcd + +Afterward, you can mount a disk in the usual way: + + mount -t iso9660 /dev/bpcd /cdrom + +(assuming you have made a directory /cdrom to use as a mount point). + +The driver will attempt to detect which parallel port your +backpack is connected to. If this fails for any reason, you +can override it by specifying a port on the LILO command line +(for built in drivers) or the insmod command (for drivers built +as modules). If your drive is on the port at 0x3bc, you would +use one of these commands: + + LILO: bpcd=0x3bc + + insmod: insmod bpcd bp_base=0x3bc + +The driver can detect if the parallel port supports 8-bit +transfers. If so, it will use them. You can force it to use +4-bit (nybble) mode by setting the variable bp_nybble to 1 on +an insmod command, or using the following LILO parameters: + + bpcd=0x3bc,1 + +(you must specify the correct port address if you use this method.) + +There is currently no support for EPP or ECP modes. Also, +as far as I can tell, the MicroSolutions protocol does not +support interrupts in the 4-bit and 8-bit modes. + +MicroSolutions' protocol allows for several drives to be +chained together off the same parallel port. Currently, this +driver will recognise only one of them. If you do have more +than one drive, it will choose the one with the lowest id number, +where the id number is the last two digits of the product's +serial number. + +It is not currently possible to connect a printer to the chained +port on the BackPack and expect Linux to use both devices at once. +If you need to use this driver together with a printer on the +same port, build both the bpcd and lp drivers as modules. + +Keep an eye on http://www.torque.net/bpcd.html for news and +other information about the driver. If you have any problems +with this driver, please send me, grant@torque.net, some mail +directly before posting into the newsgroups or mailing lists. + diff -ur --new-file old/linux/Documentation/cdrom/cdrom-standard.tex new/linux/Documentation/cdrom/cdrom-standard.tex --- old/linux/Documentation/cdrom/cdrom-standard.tex Sat Aug 17 20:19:25 1996 +++ new/linux/Documentation/cdrom/cdrom-standard.tex Sun Jan 26 11:07:03 1997 @@ -1,5 +1,5 @@ \documentclass{article} -\def\version{$Id: cdrom-standard.tex,v 0.8 1996/08/10 10:57:16 david Exp $} +\def\version{$Id: cdrom-standard.tex,v 1.6 1996/12/29 20:45:18 davem Exp $} \evensidemargin=0pt \oddsidemargin=0pt @@ -128,17 +128,19 @@ one of the cheapest \cdrom\ drives was a Philips cm206, a double-speed proprietary drive. In the months that I was busy writing a \linux\ driver for it, proprietary drives became old-fashioned and IDE/ATAPI -drives became standard. At the time of writing (April 1996) the -cheapest double speed drive is IDE and at one fifth of the price of -its predecessor. Eight speed drives are available now.) - -This document defines (in pre-release versions: proposes) the various -$ioctl$s, and the way the drivers should implement this. +drives became standard. At the time of writing (December 1996) the +cheapest drive is quadruple speed IDE and at less than half the price +of its predecessor. Twelve speed drives are available now.) + +This document defines the various $ioctl$s, and the way the drivers +should implement this. Currently (in the kernel 2.1.$n$ development +line) three low-level \cdrom\ drivers use this interface, among +which are the most important drivers for IDE and SCSI. \section{Standardizing through another software level} \label{cdrom.c} -At the time this document is written, all drivers directly implement +At the time this document was conceived, all drivers directly implement the $ioctl()$ calls through their own routines, with the danger of forgetting calls to $verify_area()$ and the risk of divergence in implementation. @@ -160,12 +162,13 @@ The extra interfacing level routines are implemented in a file \cdromc, and a low-level \cdrom\ driver hands over the interfacing to -the kernel by registering the following general $struct\ file_operations$: +the kernel by registering the following general $struct\ +file_operations$: $$ \halign{$#$\ \hfil&$#$\ \hfil&$/*$ \rm# $*/$\hfil\cr struct& file_operations\ cdrom_fops = \{\hidewidth\cr &NULL, & lseek \cr - &block_read, & read---general\ block-dev\ read \cr + &block_read, & read---general block-dev read \cr &block_write, & write---general block-dev write \cr &NULL, & readdir \cr &NULL, & select \cr @@ -175,7 +178,7 @@ &cdrom_release, & release \cr &NULL, & fsync \cr &NULL, & fasync \cr - &cdrom_media_changed, & media_change \cr + &cdrom_media_changed, & media change \cr &NULL & revalidate \cr \};\cr } @@ -189,15 +192,35 @@ are typical to \cdrom\ (removable-media) devices. Registration of the \cdrom\ device driver should now be to the general -routines in \cdromc, not to the VFS any more. This is done though the -call -$$register_cdrom(int\ major, char * name, - struct\ cdrom_device_ops\ device_options) -$$ +routines in \cdromc, not to the VFS any more. The interfacing with +\cdromc\ is implemented trough two general structures, that contain +information about the capabilities of the driver, and the specific +drives on which the driver operates. The structures are separated to +contain information about +\begin{description} +\item[the low-level driver] It lists the routines that actually + implement \cdrom\ operations, and hence the structure is called + $cdrom_device_ops$. The structure is conceptually connected to the + major number of the device (although some drivers may have have + different major numbers, as is the case for the IDE driver). +\item[the specific drive] It lists the variables informative of the + drive that is driven, and hence the structure is called + $cdrom_device_info$. The structure is conceptually connected to the + minor number of the device. +\end{description} + +The registration is done for each drive found by the driver (and hence +for each minor number) though the call +$$register_cdrom(struct\ cdrom_device_info * _info, char * name) +$$ +This device information structure $_info$ (described +shortly) contains all information needed for the kernel to interface +with the low-level \cdrom\ device driver. One of the main entries of +this structure is a pointer to the $cdrom_device_ops$ structure of the +driver. -The device operations structure lists the implemented routines for -interfacing to the hardware, and some specifications of capabilities -of the device, such as the maximum head-transfer rate. [It is +This device operations structure $cdrom_device_ops$ lists the +implemented routines for interfacing to the hardware. [It is impossible to come up with a complete list of all capabilities of (future) \cdrom\ drives, as the developments in technology follow-up at an incredible rate. Maybe write-operation (WORM devices) will @@ -206,80 +229,116 @@ \halign{$#$\ \hfil&$#$\ \hfil&\hbox to 10em{$#$\hss}& $/*$ \rm# $*/$\hfil\cr struct& cdrom_device_ops\ \{ \hidewidth\cr - &int& (* open)(kdev_t, int)\cr - &void& (* release)(kdev_t);\cr - &int& (* open_files)(kdev_t); \cr - &int& (* drive_status)(kdev_t);\cr - &int& (* disc_status)(kdev_t);\cr - &int& (* media_changed)(kdev_t);\cr - &int& (* tray_move)(kdev_t, int);\cr - &int& (* lock_door)(kdev_t, int);\cr - &int& (* select_speed)(kdev_t, int);\cr - &int& (* select_disc)(kdev_t, int);\cr - &int& (* get_last_session) (kdev_t, struct\ cdrom_multisession *{});\cr - &int& (* get_mcn)(kdev_t, struct\ cdrom_mcn *{});\cr - &int& (* reset)(kdev_t);\cr - &int& (* audio_ioctl)(kdev_t, unsigned\ int, void *{});\cr - &int& (* dev_ioctl)(kdev_t, unsigned\ int, unsigned\ long);\cr + &int& (* open)(struct\ cdrom_device_info *, int)\cr + &void& (* release)(struct\ cdrom_device_info *);\cr + &int& (* drive_status)(struct\ cdrom_device_info *);\cr + &int& (* disc_status)(struct\ cdrom_device_info *);\cr + &int& (* media_changed)(struct\ cdrom_device_info *, int);\cr + &int& (* tray_move)(struct\ cdrom_device_info *, int);\cr + &int& (* lock_door)(struct\ cdrom_device_info *, int);\cr + &int& (* select_speed)(struct\ cdrom_device_info *, int);\cr + &int& (* select_disc)(struct\ cdrom_device_info *, int);\cr + &int& (* get_last_session) (struct\ cdrom_device_info *, + struct\ cdrom_multisession *{});\cr + &int& (* get_mcn)(struct\ cdrom_device_info *, struct\ cdrom_mcn *{});\cr + &int& (* reset)(struct\ cdrom_device_info *);\cr + &int& (* audio_ioctl)(struct\ cdrom_device_info *, unsigned\ int, + void *{});\cr + &int& (* dev_ioctl)(struct\ cdrom_device_info *, unsigned\ int, + unsigned\ long);\cr \noalign{\medskip} &\llap{const\ }int& capability;& capability flags \cr - &int& mask;& mask of capability: disables them \cr - &\llap{$const\ $}int& speed;& maximum speed for reading data \cr - &\llap{$const\ $}int& minors;& number of supported minor devices \cr - &\llap{$const\ $}int& capacity;& number of discs in jukebox \cr -\noalign{\medskip} - &int& options;& options flags \cr - &long& mc_flags;& media-change buffer flags ($2\times16$) \cr -\}\cr + &int& n_minors;& number of active minor devices \cr } -$$ The \cdrom-driver should simply implement (some of) these +$$ +The \cdrom-driver should simply implement (some of) these functions, and register the functions to the global \cdrom\ driver, which performs interfacing with the Virtual File System and system $ioctl$s. The flags $capability$ specify the hardware-capabilities on -registration of the device, the flags $mask$ can be used to mask some -of those capabilities (for one reason or another). The value $minors$ -should be a positive value indicating the number of minor devices that -are supported by the driver, normally~1. (They are supposed to be -numbered from 0 upwards). The value $capacity$ should be the number of -discs the drive can hold simultaneously, if it is designed as a -juke-box, or otherwise~1. - -Two registers contain variables local to the \cdrom\ device. The flags -$options$ are used to specify how the general \cdrom\ routines -should behave. These various flags registers should provide enough -flexibility to adapt to the different user's wishes (and {\em not\/} -the `arbitrary' wishes of the author of the low-level device driver, -as is the case in the old scheme). The register $mc_flags$ is used to -buffer the information from $media_changed()$ to two separate queues. +registration of the device. The value $n_minors$ should be a positive +value indicating the number of minor devices that are supported by the +driver, normally~1. Although these two variables are `informative' +rather than `operational,' they are included in $cdrom_device_ops$ +because they describe the capability of the {\em driver\/} rather than +the {\em drive}. Nomenclature has always been difficult in computer +programming. Note that most functions have fewer parameters than their $blkdev_fops$ counterparts. This is because very little of the information in the structures $inode$ and $file$ are used, the main -parameter is the device $dev$, from which the minor-number can be +parameter is the first, from which the major and minor number can be extracted. (Most low-level \cdrom\ drivers don't even look at that value -as only one device is supported.) +as only one device is supported.) This will be available through $dev$ +in $cdrom_device_info$ described below. + +The drive-specific, minor-like information that is registered to +\cdromc, contains the following fields: +$$ +\halign{$#$\ \hfil&$#$\ \hfil&\hbox to 10em{$#$\hss}& + $/*$ \rm# $*/$\hfil\cr +struct& cdrom_device_info\ \{ \hidewidth\cr + & struct\ cdrom_device_ops *& ops;& device operations for this major\cr + & struct\ cdrom_device_info *& next;& next device_info for this major\cr + & void *& handle;& driver-dependent data\cr +\noalign{\medskip} + & kdev_t& dev;& device number (incorporates minor)/\cr + & int& mask;& mask of capability: disables them \cr + &\llap{$const\ $}int& speed;& maximum speed for reading data \cr + &\llap{$const\ $}int& n_discs;& number of discs in jukebox \cr +\noalign{\medskip} + &int& options : 30;& options flags \cr + &long& mc_flags : 2;& media-change buffer flags \cr + & int& use_count;& number of times devices is opened\cr +\}\cr +}$$ + +With this $struct$, a linked list of minor devices registered with +the same low-level driver is built, though the field $next$. The +device number, the device operations struct and specifications of +properties of the drive are stored in this structure. + +The flags $mask$ can be used to mask out some of the capabilities +listed in $ops\to capability$, if a specific drive doesn't support a +feature of the driver. The value $speed$ specifies the maximum +head-rate of the drive, measured in units of normal audio speed +(176\,kB/sec raw data or 150\,kB/sec file system data). The value +$n_discs$ should reflect the number of discs the drive can hold +simultaneously, if it is designed as a juke-box, or otherwise~1. +The parameters are declared $const$ because they describe properties +of the drive, which don't change after registration. + +A few registers contain variables local to the \cdrom\ drive. The +flags $options$ are used to specify how the general \cdrom\ routines +should behave. These various flags registers should provide enough +flexibility to adapt to the different user's wishes (and {\em not\/} +the `arbitrary' wishes of the author of the low-level device driver, +as is the case in the old scheme). The register $mc_flags$ is used to +buffer the information from $media_changed()$ to two separate queues. +Other data that is specific to minor drive, can be accessed through +$handle$, which can point to a data structure specific to the +low-level driver. The fields $use_count$, $next$, $options$ and +$mc_flags$ need not be initialized. The intermediate software layer that \cdromc\ forms will performs some -additional bookkeeping. The minor number of the device is checked -against the maximum registered in $_dops$. The function -$cdrom_ioctl()$ will verify the appropriate user-memory regions for -read and write, and in case a location on the CD is transferred, it -will `sanitize' the format by making requests to the low-level drivers -in a standard format, and translating all formats between the -user-software and low level drivers. This relieves much of the drivers -memory checking and format checking and translation. Also, the -necessary structures will be declared on the program stack. +additional bookkeeping. The use count of the device (the number of +processes that have the device opened) is registered in $use_count$. +The function $cdrom_ioctl()$ will verify the appropriate user-memory +regions for read and write, and in case a location on the CD is +transferred, it will `sanitize' the format by making requests to the +low-level drivers in a standard format, and translating all formats +between the user-software and low level drivers. This relieves much of +the drivers memory checking and format checking and translation. Also, +the necessary structures will be declared on the program stack. The implementation of the functions should be as defined in the -following sections. Three functions {\em must\/} be implemented, -namely $open()$, $release()$ and $open_files()$. Other functions may -be omitted, their corresponding capability flags will be cleared upon -registration. Generally, a function returns zero on success and -negative on error. A function call should return only after the -command has completed, but of course waiting for the device should not -use processor time. +following sections. Two functions {\em must\/} be implemented, namely +$open()$ and $release()$. Other functions may be omitted, their +corresponding capability flags will be cleared upon registration. +Generally, a function returns zero on success and negative on error. A +function call should return only after the command has completed, but +of course waiting for the device should not use processor time. -\subsection{$Open(kdev_t\ dev, int\ purpose)$} +\subsection{$Open(struct\ cdrom_device_info * cdi, int\ purpose)$} $Open()$ should try to open the device for a specific $purpose$, which can be either: @@ -289,36 +348,27 @@ \item[1] Open for $ioctl$ commanding, as is used for audio-CD playing programs mostly. \end{itemize} -In this routine, a static counter should be updated, reflecting the -number of times the specific device is successfully opened (and in -case the driver supports modules, the call $MOD_INC_USE_COUNT$ -should be performed exactly once, if successful). The return value is -negative on error, and zero on success. The open-for-ioctl call can -only fail if there is no hardware. +In case the driver supports modules, the call $MOD_INC_USE_COUNT$ +should be performed exactly once, if the $open()$ was successful. The +return value is negative on error, and zero on success. The +open-for-ioctl call can only fail if there is no hardware. Notice that any strategic code (closing tray upon $open()$, etc.)\ is done by the calling routine in \cdromc, so the low-level routine should only be concerned with proper initialization and device-use count. -\subsection{$Release(kdev_t\ dev)$} +\subsection{$Release(struct\ cdrom_device_info * cdi)$} -The use-count of the device $dev$ should be decreased by 1, and a -single call $MOD_DEC_USE_COUNT$ should be coded here. Possibly other -device-specific actions should be taken such as spinning down the -device. However, strategic actions such as ejection of the tray, or -unlocking the door, should be left over to the general routine -$cdrom_release()$. Also, the invalidation of the allocated buffers in -the VFS is taken care of by the routine in \cdromc. - -\subsection{$Open_files(kdev_t\ dev)$} - -This function should return the internal variable use-count of the -device $dev$. The use-count is not implemented in the routines in -\cdromc\ itself, because there may be many minor devices connected to -a single low-level driver. +In case of module support, a single call $MOD_DEC_USE_COUNT$ should be +coded here. Possibly other device-specific actions should be taken +such as spinning down the device. However, strategic actions such as +ejection of the tray, or unlocking the door, should be left over to +the general routine $cdrom_release()$. Also, the invalidation of the +allocated buffers in the VFS is taken care of by the routine in +\cdromc. -\subsection{$Drive_status(kdev_t\ dev)$} +\subsection{$Drive_status(struct\ cdrom_device_info * cdi)$} \label{drive status} The function $drive_status$, if implemented, should provide @@ -334,15 +384,19 @@ CDS_DISC_OK& a disc is loaded and everything is fine\cr } $$ +%For a juke-box, the second argument $drive_nr$ specifies information +%is requested for another than the default disc ($drive_nr=0$), +%possibly only a subset of the return values can be returned. -\subsection{$Disc_status(kdev_t\ dev)$} +\subsection{$Disc_status(struct\ cdrom_device_info * cdi)$} \label{disc status} As a complement to $drive_status()$, this function can provide the -general \cdrom-routines with information about the current disc that is -inserted in the drive represented by $dev$. The history of development -of the CD's use as a carrier medium for various digital information -has lead to many different disc types, hence this function can return: +general \cdrom-routines with information about the current disc that +is inserted in the drive represented by $cdi\to dev$. The history of +development of the CD's use as a carrier medium for various digital +information has lead to many different disc types, hence this function +can return: $$ \halign{$#$\ \hfil&$/*$ \rm# $*/$\hfil\cr CDS_NO_INFO& no information available\cr @@ -358,16 +412,18 @@ some information concerning frame layout of the various disc types, see a recent version of {\tt cdrom.h}. -\subsection{$Media_changed(dev\_t\ dev)$} +\subsection{$Media_changed(struct\ cdrom_device_info * cdi, int disc_nr)$} -This function is very similar to the original function in $struct\ -file_operations$. It returns 1 if the medium of the device $dev$ has -changed since the last call, and 0 otherwise. Note that by `re-routing' -this function through $cdrom_media_changed()$, we can implement -separate queues for the VFS and a new $ioctl()$ function that can -report device changes to software (e.g., an auto-mounting daemon). +This function is very similar to the original function in $struct\ +file_operations$. It returns 1 if the medium of the device $cdi\to +dev$ has changed since the last call, and 0 otherwise. The parameter +$disc_nr$ identifies a specific slot in a juke-box, it should be +ignored for single-disc drives. Note that by `re-routing' this +function through $cdrom_media_changed()$, we can implement separate +queues for the VFS and a new $ioctl()$ function that can report device +changes to software (e.g., an auto-mounting daemon). -\subsection{$Tray_move(kdev_t\ dev, int\ position)$} +\subsection{$Tray_move(struct\ cdrom_device_info * cdi, int\ position)$} This function, if implemented, should control the tray movement. (No other function should control this.) The parameter $position$ controls @@ -380,7 +436,7 @@ error. Note that if the tray is already in the desired position, no action need be taken, and the return value should be 0. -\subsection{$Lock_door(kdev_t\ dev, int\ lock)$} +\subsection{$Lock_door(struct\ cdrom_device_info * cdi, int\ lock)$} This function (and no other code) controls locking of the door, if the drive allows this. The value of $lock$ controls the desired locking @@ -391,7 +447,7 @@ \end{itemize} Return values are as for $tray_move()$. -\subsection{$Select_speed(kdev_t\ dev, int\ speed)$} +\subsection{$Select_speed(struct\ cdrom_device_info * cdi, int\ speed)$} Although none of the drivers has implemented this function so far, some drives are capable of head-speed selection, and hence this is a @@ -402,53 +458,59 @@ rate. If the drive doesn't have this `auto-selection' capability, the decision should be made on the current disc loaded and the return value should be positive. A negative return value indicates an -error. (Although the audio-low-pass filters probably aren't designed -for it, more than real-time playback of audio might be used for -high-speed copying of audio tracks). Badly pressed \cdrom s may -benefit from less-than-maximum head rate. - -\subsection{$Select_disc(kdev_t\ dev, int\ number)$} - -If the drive can store multiple discs (a juke-box), it is likely that -a disc selection can be made by software. This function should perform -disc selection. It should return the number of the selected disc on -success, a negative value on error. Currently, none of the \linux\ -\cdrom\ drivers appears to support such functionality, but it is defined -here for future purposes. +error. + +There are a few reasons for having the speed to be selectable. Badly +pressed \cdrom s may benefit from less-than-maximum head rate. Modern +\cdrom\ drives can obtain very high head rates (up to twelve times +audio speed is common), but these drives tend to make an annoyingly +loud noise. A lower speed may reduce this. Finally, although the +audio-low-pass filters probably aren't designed for it, more than +real-time playback of audio might be used for high-speed copying of +audio tracks. + +\subsection{$Select_disc(struct\ cdrom_device_info * cdi, int\ number)$} + +If the drive can store multiple discs (a juke-box) this function +should perform disc selection. It should return the number of the +selected disc on success, a negative value on error. Currently, only +the IDE-cd driver supports such functionality. -\subsection{$Get_last_session(kdev_t\ dev, struct\ cdrom_multisession * -ms_info)$} +\subsection{$Get_last_session(struct\ cdrom_device_info * cdi, struct\ + cdrom_multisession * ms_info)$} This function should implement the old corresponding $ioctl()$. For -device $dev$, the start of the last session of the current disc should -be returned in the pointer argument $ms_info$. Note that routines in \cdromc\ have sanitized this argument: its -requested format will {\em always\/} be of the type $CDROM_LBA$ -(linear block addressing mode), whatever the calling software -requested. But sanitization goes even further: the low-level -implementation may return the requested information in $CDROM_MSF$ -format if it wishes so (setting the $ms_info\rightarrow addr_format$ -field appropriately, of course) and the routines in \cdromc\ will make -the transform if necessary. The return value is 0 upon success. +device $cdi->dev$, the start of the last session of the current disc +should be returned in the pointer argument $ms_info$. Note that +routines in \cdromc\ have sanitized this argument: its requested +format will {\em always\/} be of the type $CDROM_LBA$ (linear block +addressing mode), whatever the calling software requested. But +sanitization goes even further: the low-level implementation may +return the requested information in $CDROM_MSF$ format if it wishes so +(setting the $ms_info\rightarrow addr_format$ field appropriately, of +course) and the routines in \cdromc\ will make the transform if +necessary. The return value is 0 upon success. -\subsection{$Get_mcn(kdev_t\ dev, struct\ cdrom_mcn * mcn)$} +\subsection{$Get_mcn(struct\ cdrom_device_info * cdi, struct\ + cdrom_mcn * mcn)$} Some discs carry a `Media Catalog Number' (MCN), also called -`Universal Product Code' (UPC). This number should reflect the number that -is generally found in the bar-code on the product. Unfortunately, the -few discs that carry such a number on the disc don't even use the same -format. The return argument to this function is a pointer to a +`Universal Product Code' (UPC). This number should reflect the number +that is generally found in the bar-code on the product. Unfortunately, +the few discs that carry such a number on the disc don't even use the +same format. The return argument to this function is a pointer to a pre-declared memory region of type $struct\ cdrom_mcn$. The MCN is expected as a 13-character string, terminated by a null-character. -\subsection{$Reset(kdev_t dev)$} +\subsection{$Reset(struct\ cdrom_device_info * cdi)$} This call should implement hard-resetting the drive (although in circumstances that a hard-reset is necessary, a drive may very well not listen to commands anymore). Preferably, control is returned to the caller only after the drive has finished resetting. -\subsection{$Audio_ioctl(kdev_t\ dev, unsigned\ int\ cmd, void * -arg)$} +\subsection{$Audio_ioctl(struct\ cdrom_device_info * cdi, unsigned\ + int\ cmd, void * arg)$} Some of the \cdrom-$ioctl$s defined in {\tt cdrom.h} can be implemented by the routines described above, and hence the function @@ -471,8 +533,8 @@ may decide to sanitize the return value in $cdrom_ioctl()$, in order to guarantee a uniform interface to the audio-player software.) -\subsection{$Dev_ioctl(kdev_t\ dev, unsigned\ int\ cmd, unsigned\ long\ -arg)$} +\subsection{$Dev_ioctl(struct\ cdrom_device_info * cdi, unsigned\ int\ + cmd, unsigned\ long\ arg)$} Some $ioctl$s seem to be specific to certain \cdrom\ drives. That is, they are introduced to service some capabilities of certain drives. In @@ -485,17 +547,18 @@ so either the audio-file-system should ask for 75264 bytes at once (the least common multiple of 512 and 2352), or the drivers should bend their backs to cope with this incoherence (to which I would be -opposed). Once this question is resolved, this code should be standardized in -\cdromc. +opposed). Once this question is resolved, this code should be +standardized in \cdromc. Because there are so many $ioctl$s that seem to be introduced to -satisfy certain drivers,\footnote{Is there software around that actually uses -these? I'd be interested!} any `non-standard' $ioctl$s are routed through -the call $dev_ioctl()$. In principle, `private' $ioctl$s should be -numbered after the device's major number, and not the general \cdrom\ -$ioctl$ number, {\tt 0x53}. Currently the non-supported $ioctl$s are: -{\it CDROMREADMODE1, CDROMREADMODE2, CDROMREADAUDIO, CDROMREADRAW, -CDROMREADCOOKED, CDROMSEEK, CDROMPLAY\-BLK and CDROMREADALL}. +satisfy certain drivers,\footnote{Is there software around that + actually uses these? I'd be interested!} any `non-standard' $ioctl$s +are routed through the call $dev_ioctl()$. In principle, `private' +$ioctl$s should be numbered after the device's major number, and not +the general \cdrom\ $ioctl$ number, {\tt 0x53}. Currently the +non-supported $ioctl$s are: {\it CDROMREADMODE1, CDROMREADMODE2, + CDROMREADAUDIO, CDROMREADRAW, CDROMREADCOOKED, CDROMSEEK, + CDROMPLAY\-BLK and CDROMREADALL}. \subsection{\cdrom\ capabilities} @@ -518,24 +581,24 @@ } $$ The capability flag is declared $const$, to prevent drivers from -accidentally tampering with the contents. However, upon registration, -some (claimed) capability flags may be cleared if the supporting -function has not been implemented (see $register_cdrom()$ in -\cdromc). - -If you want to disable any of the capabilities, there is a special -flag register $_dops.mask$ that may (temporarily) disable -certain capabilities. In the file \cdromc\ you will encounter many -constructions of the type +accidentally tampering with the contents. The capability fags actually +inform \cdromc\ on what the driver is capable of. If the drive found +by the driver does not have the capability, is can be masked out by +the $cdrom_device_info$ variable $mask$. For instance, the SCSI \cdrom\ +driver has implemented the code for loading and ejecting \cdrom's, and +hence its corresponding flags in $capability$ will be set. But a SCSI +\cdrom\ drive might be a caddy system, which can't load the tray, and +hence for this drive the $cdrom_device_info$ struct will have set +the $CDC_CLOSE_TRAY$ bit in $mask$. + +In the file \cdromc\ you will encounter many constructions of the type $$\it -if\ (cdo\rightarrow capability \mathrel\& \mathord{\sim} cdo\rightarrow mask +if\ (cdo\rightarrow capability \mathrel\& \mathord{\sim} cdi\rightarrow mask \mathrel{\&} CDC_) \ldots $$ -The $mask$ could be set in the low-level driver code to disable -certain capabilities for special brands of the device that can't -perform the actions. However, there is not (yet) an $ioctl$ to set -the mask\dots The reason is that I think it is better to control the -{\em behavior\/} rather than the {\em capabilities}. +There is no $ioctl$ to set the mask\dots The reason is that +I think it is better to control the {\em behavior\/} rather than the +{\em capabilities}. \subsection{Options} @@ -638,7 +701,7 @@ control both the hardware and software of their supported products, and are large enough to set their own standard. They do not have to deal with a dozen or more different, competing hardware -configurations.\footnote{Personally, I think that SUN's approach to +configurations.\footnote{Incidentally, I think that SUN's approach to mounting \cdrom s is very good in origin: under Solaris a volume-daemon automatically mounts a newly inserted \cdrom\ under {\tt /cdrom/$$/}. In my opinion they should have pushed this @@ -698,7 +761,7 @@ belonging to \cdromc\ is called \ucdrom, but may be included in {\tt cdrom.h} in the future. -\subsection{$struct\ file_operations\ cdrom_fops$} +\subsection{$Struct\ file_operations\ cdrom_fops$} The contents of this structure has been described in section~\ref{cdrom.c}, and this structure should be used in @@ -707,22 +770,37 @@ register_blkdev(major, , \&cdrom_fops); $$ -\subsection{$Int\ register_cdrom(int\ major, char * name, struct\ -cdrom_device_ops\ * cdo)$} +\subsection{$Int\ register_cdrom( struct\ cdrom_device_info\ * cdi, + char * name,)$} Similar to registering $cdrom_fops$ to the kernel, the device -operations structure, as described in section~\ref{cdrom.c}, should be -registered to the general \cdrom\ interface: -$$ -register_cdrom(major, , \&_dops); -$$ -This function returns zero upon success, and non-zero upon failure. - -\subsection{$Int\ unregister_cdrom(int\ major, char * name)$} - -Unregistering device $name$ with major number $major$ disconnects the -registered device-operation routines from the \cdrom\ interface. -This function returns zero upon success, and non-zero upon failure. +operations and information structures, as described in +section~\ref{cdrom.c}, should be registered to the general \cdrom\ +interface: +$$ +register_cdrom(\&_info), ); +$$ +This function returns zero upon success, and non-zero upon +failure. The structure $_info$ should have a pointer the +driver's $_dops$, as in +$$ +\vbox{\halign{&$#$\hfil\cr +struct\ &cdrom_device_info\ _info = \{\cr +& _dops;\cr +&\ldots\cr +\}\cr +}}$$ +Note that a drivers has one static structure, $_dops$, while +it has as many structures $_info$ as there are minor devices +active. $Register_cdrom()$ builds a linked list from these. + +\subsection{$Int\ unregister_cdrom(struct\ cdrom_device_info * cdi)$} + +Unregistering device $cdi$ with minor number $MINOR(cdi\to dev)$ +removes the minor device from the list. If it was the last minor for +the driver, this disconnects the registered device-operation routines +from the \cdrom\ interface. This function returns zero upon success, +and non-zero upon failure. \subsection{$Int\ cdrom_open(struct\ inode * ip, struct\ file * fp)$} @@ -786,7 +864,7 @@ \item[CDROMPLAYMSF] Play audio fragment specified in Minute, Second, Frame format, delimited by $arg$ of type $struct\ cdrom_msf *{}$. \item[CDROMPLAYTRKIND] Play audio fragment in track-index format -delimited by $arg$ of type $struct cdrom_ti *{}$. +delimited by $arg$ of type $struct\ \penalty-1000 cdrom_ti *{}$. \item[CDROMVOLCTRL] Set volume specified by $arg$ of type $struct\ cdrom_volctrl *{}$. \item[CDROMVOLREAD] Read volume into by $arg$ of type $struct\ @@ -819,16 +897,23 @@ \item[CDROM_MEDIA_CHANGED] Returns 1 if a disc has been changed since the last call. Note that calls to $cdrom_media_changed$ by the VFS are treated by an independent queue, so both mechanisms will detect - a media change once. Currently, \cdromc\ implements maximum 16 minors - per major device. + a media change once. For Juke-boxes, an extra argument $arg$ + specifies the slot for which the information is given. The special + value $CDSL_CURRENT$ requests that information about the currently + selected slot is returned. \item[CDROM_DRIVE_STATUS] Returns the status of the drive by a call to $drive_status()$. Return values are as defined in section~\ref{drive status}. Note that this call doesn't return information on the current playing activity of the drive; this can be polled through an - $ioctl$ call to $CDROMSUBCHNL$. + $ioctl$ call to $CDROMSUBCHNL$. For Juke-boxes, an extra argument + $arg$ specifies the slot for which (possibly limited) information is + given. The special value $CDSL_CURRENT$ requests that information + about the currently selected slot is returned. \item[CDROM_DISC_STATUS] Returns the type of the disc currently in the drive by a call to $disc_status()$. Return values are as defined in section~\ref{disc status}. +\item[CDROM_CHANGER_NSLOTS] Returns the number of slots in a + juke-box. \end{description} \subsubsection{Device dependent $ioct$s} @@ -841,58 +926,153 @@ \begin{enumerate} \item Make a backup of your current driver. \item Get hold of the files \cdromc\ and \ucdrom, they should be in -the directory tree that came with this documentation. + the directory tree that came with this documentation. \item Include {\tt \char`\} just after {\tt cdrom.h}. \item Change the 3rd argument of $register_blkdev$ from $\&_fops$ to $\&cdrom_fops$. -\item Just after that line, add a line to register to the \cdrom\ -routines: -$$register_cdrom(major, , _dops);$$ -Similarly, add a call to $unregister_cdrom()$. -\item Copy an example of the device-operations $struct$ to your source, -e.g., from {\tt cm206.c} $cm206_dops$, and change all entries to names -corresponding to your driver, or names you just happen to like. If -your driver doesn't support a certain function, make the entry -$NULL$. At the entry $capability$ you should list all capabilities -your drive could support, in principle. If your drive has a capability -that is not listed, please send me a message. +\item Just after that line, add a line to register to the \cdrom\ + routines: + $$register_cdrom(\&_info, );$$ + Similarly, add a + call to $unregister_cdrom()$. +\item Copy an example of the device-operations $struct$ to your + source, e.g., from {\tt cm206.c} $cm206_dops$, and change all + entries to names corresponding to your driver, or names you just + happen to like. If your driver doesn't support a certain function, + make the entry $NULL$. At the entry $capability$ you should list all + capabilities your drive could support, in principle. If your drive + has a capability that is not listed, please send me a message. +\item Copy the $cdrom_device_info$ declaration from the same example + driver, and modify the entries according to your needs. If your + driver dynamically determines the capabilities of the hardware, this + structure should also be declared dynamically. \item Implement all functions in your $_dops$ structure, -according to prototypes listed in \ucdrom, and specifications given in -section~\ref{cdrom.c}. Most likely you have already implemented -the code in a large part, and you may just have to adapt the prototype -and return values. + according to prototypes listed in \ucdrom, and specifications given + in section~\ref{cdrom.c}. Most likely you have already implemented + the code in a large part, and you may just have to adapt the + prototype and return values. \item Rename your $_ioctl()$ function to $audio_ioctl$ and -change the prototype a little. Remove entries listed in the first part -in section~\ref{cdrom-ioctl}, if your code was OK, these are just calls -to the routines you adapted in the previous step. + change the prototype a little. Remove entries listed in the first + part in section~\ref{cdrom-ioctl}, if your code was OK, these are + just calls to the routines you adapted in the previous step. \item You may remove all remaining memory checking code in the -$audio_ioctl()$ function that deals with audio commands (these are -listed in the second part of section~\ref{cdrom-ioctl}). There is no -need for memory allocation either, so most $case$s in the $switch$ -statement look similar to: -$$ -case\ CDROMREADTOCENTRY\colon -get_toc_entry\bigl((struct\ cdrom_tocentry *{})\ arg\bigr); -$$ + $audio_ioctl()$ function that deals with audio commands (these are + listed in the second part of section~\ref{cdrom-ioctl}). There is no + need for memory allocation either, so most $case$s in the $switch$ + statement look similar to: + $$ + case\ CDROMREADTOCENTRY\colon get_toc_entry\bigl((struct\ + cdrom_tocentry *{})\ arg\bigr); + $$ \item All remaining $ioctl$ cases must be moved to a separate -function, $_ioctl$, the device-dependent $ioctl$s. Note that -memory checking and allocation must be kept in this code! + function, $_ioctl$, the device-dependent $ioctl$s. Note that + memory checking and allocation must be kept in this code! \item Change the prototypes of $_open()$ and -$_release()$, and remove any strategic code (i.e., tray -movement, door locking, etc.). + $_release()$, and remove any strategic code (i.e., tray + movement, door locking, etc.). \item Try to recompile the drivers. We advice you to use modules, both -for {\tt cdrom.o} and your driver, as debugging is much easier this -way. + for {\tt cdrom.o} and your driver, as debugging is much easier this + way. \end{enumerate} \section{Thanks} -Thanks to all the people involved. Thanks to Thomas Quinot, Jon Tombs, -Ken Pizzini, Eberhard M\"onkeberg and Andrew Kroll, the \linux\ -\cdrom\ device driver developers who were kind enough to give +Thanks to all the people involved. Thanks to Scott Snyder and Gerd +Knorr, who were the first to implement this interface for SCSI and +IDE-CD drivers and added many ideas for extension of the data +structures relative to kernel~2.0. Further thanks to Thomas Quinot, +Jon Tombs, Ken Pizzini, Eberhard M\"onkeberg and Andrew Kroll, the +\linux\ \cdrom\ device driver developers who were kind enough to give suggestions and criticisms during the writing. Finally of course, I want to thank Linus Torvalds for making this possible in the first place. +\vfill +$ \version\ $ +\eject \end{document} +\def\versionlog{ +$Log: cdrom-standard.tex,v $ +Revision 1.6 1996/12/29 20:45:18 davem +Merge to 2.1.18, versioned module symbols are +disabled until new modutils is released. + +Revision 1.6 1996/12/23 21:17:44 david +Added reasons for speed selection. + +Revision 1.5 1996/12/22 21:54:25 david +Repared version definition. + +Revision 1.4 1996/12/22 21:40:26 david +Added older version log at end of text. + +Revision 1.3 1996/12/22 21:31:58 david +Adapted text to fit kernel changes up to 2.1.15. + +Sun Dec 22 21:31:58 1996 David A. van Leeuwen + + * cdrom-standard.tex: Adapted text to fit kernel changes up to 2.1.15. + +Sun Sep 22 20:18:00 1996 David + + * cdrom-standard.tex: + Documentation adapted to align with developments started by Scott + Snyder, Gerd Knorr and myself. + + Split _ops in _info (minor stuff) and _ops (major stuff). + Moved capability back to _ops, added n_minors. + Implemented use_count in _info. + Removed open_files(). + +Sat Aug 10 10:57:16 1996 David + + * cdrom-standard.tex: + Weakened Eberhard's annoying comments by making it a quotation and + having it appear smaal-type. He doesn't react to my email-messages. + + Changed float speed to int speed. + +Tue May 21 15:27:10 1996 David + + * cdrom-standard.tex: + Typographic errors introduced by Eberhard Moenkeberg were corrected, + as well one of my own typos. I deepfully respect the person that + corrects all typos i make in code and documentation! + + Linux version 1.99.6. + + * cdrom-standard.tex: + Changes made by Eberhard Moenkeberg, much to my annoyance. The + contents of the introduction were altered completely so that it now + says the opposite of what I wrote before: that there is no need for an + additional unform cdrom layer. This makes the whole document and the + project for that matter worthless. + + ---david + + * cdrom-standard.tex: + Version as it appeared first in the official kernel documentation + tree, Linux 1.99.2, Documentation/cdrom/cdrom-standard.tex. + + Some improvements in use of English language have been made by people + that know better English than me. + +Wed Apr 17 20:46:34 1996 David + + * cdrom-standard.tex: changed #minors from 4 to 16. + +Sun Apr 14 20:53:17 1996 David + + * cdrom-standard.tex: + Update to go with cdrom.c version 0.3. More ioctl stuff. + +Wed Apr 10 18:00:28 1996 David + + * cdrom-standard.tex: + Version as first distributed among CDrom device driver authors. + +Mon Apr 8 18:25:21 1996 David A. van Leeuwen + + * cdrom-standard.tex: *** empty log message *** +} diff -ur --new-file old/linux/Documentation/cdrom/ide-cd new/linux/Documentation/cdrom/ide-cd --- old/linux/Documentation/cdrom/ide-cd Wed Sep 25 10:12:11 1996 +++ new/linux/Documentation/cdrom/ide-cd Tue Nov 12 09:32:40 1996 @@ -32,10 +32,11 @@ function; the only ones which i've heard of successes with are Sony and Toshiba drives. - - There is now rudimentary support for cdrom changers which comply - with the ATAPI 2.6 draft standard (such as the NEC CDR-251). This - merely adds a function to switch between the slots of the changer - under control of an external program. A sample such program is + - There is now support for cdrom changers which comply with the + ATAPI 2.6 draft standard (such as the NEC CDR-251). This additional + functionality includes a function call to query which slot is the + currently selected slot, a function call to query which slots contain + CDs, etc. A sample program which demonstrates this functionality is appended to the end of this file. The Sanyo 3-disc changer (which does not conform to the standard) is also now supported. Please note the driver refers to the first CD as slot # 0. @@ -150,11 +151,11 @@ this are Sony and Toshiba drives. You will get errors if you try to use this function on a drive which does not support it. -For supported changers, you can use the `cdload' program (appended to +For supported changers, you can use the `cdchange' program (appended to the end of this file) to switch between changer slots. Note that the drive should be unmounted before attempting this. The program takes -two arguments: the cdrom device, and the slot number to which to change. -If the slot number is -1, the drive is unloaded. +two arguments: the cdrom device, and the slot number to which you wish +to change. If the slot number is -1, the drive is unloaded. 4. Compilation options @@ -360,16 +361,22 @@ expense of low system performance. -6. cdload.c ------------ +6. cdchange.c +------------- /* - * cdload.c + * cdchange.c [-v] [] * - * Load a cdrom from a specified slot in a changer. The drive should be - * unmounted before executing this. + * This load a cdrom from a specified slot in a changer, and displays + * information about the changer status. The drive should be unmounted before + * using this program. + * + * Changer information is displayed if either the -v flag is specified + * or no slot was specified. * * Based on code originally from Gerhard Zuber . + * Changer status information, and rewrite for the new common cdrom driver + * interface by Erik Andersen . */ #include @@ -377,7 +384,6 @@ #include #include #include -#include #include @@ -386,19 +392,34 @@ { char *program; char *device; - int x_slot; int fd; /* file descriptor for CD-ROM device */ int status; /* return status for system calls */ + int verbose = 0; + int x_slot = -1; + int total_slots_available; program = argv[0]; - if (argc != 3) { - fprintf (stderr, "usage: %s \n", program); + ++argv; + --argc; + + if (argc < 1 || argc > 3) { + fprintf (stderr, "usage: %s [-v] []\n", + program); + fprintf (stderr, " Slots are numbered 1 -- n.\n"); exit (1); } - - device = argv[1]; - x_slot = atoi (argv[2]); + + if (strcmp (argv[0], "-v") == 0) { + verbose = 1; + ++argv; + --argc; + } + + device = argv[0]; + + if (argc == 2) + x_slot = atoi (argv[1]) - 1; /* open device */ fd = open (device, 0); @@ -408,15 +429,77 @@ exit (1); } - /* load */ - status = ioctl (fd, CDROM_SELECT_DISC, x_slot); - if (status != 0) { - fprintf (stderr, - "%s: CDROM_SELECT_DISC ioctl failed for `%s': %s\n", - program, device, strerror (errno)); + /* Check CD player status */ + total_slots_available = ioctl (fd, CDROM_CHANGER_NSLOTS); + if (total_slots_available <= 1 ) { + fprintf (stderr, "%s: Device `%s' is not an ATAPI " + "compliant CD changer.\n", program, device); exit (1); } - + + if (x_slot >= 0) { + if (x_slot >= total_slots_available) { + fprintf (stderr, "Bad slot number. " + "Should be 1 -- %d.\n", + total_slots_available); + exit (1); + } + + /* load */ + status = ioctl (fd, CDROM_SELECT_DISC, x_slot); + } + + if (x_slot < 0 || verbose) { + + status = ioctl (fd, CDROM_SELECT_DISC, CDSL_CURRENT); + + printf ("Current slot: %d\n", status+1); + printf ("Total slots available: %d\n", + total_slots_available); + + printf ("Drive status: "); + switch (ioctl (fd, CDROM_DRIVE_STATUS, CDSL_CURRENT)) { + case CDS_DISC_OK: + printf ("Ready.\n"); + break; + case CDS_TRAY_OPEN: + printf ("Tray Open.\n"); + break; + case CDS_DRIVE_NOT_READY: + printf ("Drive Not Ready.\n"); + break; + default: + printf ("This Should not happen!\n"); + break; + } + + for (x_slot=0; x_slot {\file #2} \> #3 \> #4 \\} \newcommand{\vlink}[4]{{\file #1} \> {\em #2 \/} \> #3 \> #4 \\} \newcommand{\node}[3]{{\file #1} \> #2 \> #3 \\} +\newcommand{\tum}{$''$} \newenvironment{nodelist}% {\begin{tabbing}% {\file /dev/crambamboli} \= {\file /proc/self/fd/99} \= symbolicxxx \= foo \kill}% {\end{tabbing}} % +% If you reformat this document, *please* make sure this information +% gets included! +% \title{{\bf Linux Allocated Devices}} \author{Maintained by H. Peter Anvin $<$hpa@zytor.com$>$} -\date{Last revised: July 9, 1996} +\date{Last revised: May 1, 1997} \maketitle % \noindent @@ -56,17 +61,19 @@ \LaTeX\ version is authoritative. This document is included by reference into the Linux Filesystem -Standard (FSSTND). The FSSTND is available via FTP from -tsx-11.mit.edu in the directory {\file -/pub/linux/docs/linux-standards/fsstnd}. +Standard (FSSTND). The FSSTND is available from +{\url ftp://tsx-11.mit.edu/pub/linux/docs/linux-standards/fsstnd/}. To have a major number allocated, or a minor number in situations where that applies (e.g.\ busmice), please contact me with the -appropriate device information. Also, if you have additional -information regarding any of the devices listed below, or if I have -made a mistake, I would greatly appreciate a note. When sending me -mail, please include the word ``device'' in the subject so your mail -won't accidentally get buried! +appropriate device information. I *very* much appreciate if you send +me a device description in the same format as the ones already in this +file. Also, if you have additional information regarding any of the +devices listed below, or if I have made a mistake, I would greatly +appreciate a note. + +NOTE: When sending me mail, {\em please\/} include the word ``device'' +in the subject so your mail won't accidentally get buried! Allocations marked (68k/Amiga) apply to Linux/68k on the Amiga platform only. Allocations marked (68k/Atari) apply to Linux/68k on @@ -153,7 +160,6 @@ \major{34}{}{char }{Z8530 HDLC driver} \major{ }{}{block}{Fourth IDE hard disk/CD-ROM interface} \major{35}{}{char }{tclmidi MIDI driver} -\major{ }{}{block}{Modular RAM disk} \major{36}{}{char }{Netlink support} \major{ }{}{block}{MCA ESDI hard disk} \major{37}{}{char }{IDE tape} @@ -168,6 +174,7 @@ \major{ }{}{block}{MicroSolutions BackPack parallel port CD-ROM} \major{42}{}{}{Demo/sample use} \major{43}{}{char }{isdn4linux virtual modem} +\major{ }{}{block}{Network block devices} \major{44}{}{char }{isdn4linux virtual modem -- alternate devices} \major{45}{}{char }{isdn4linux ISDN BRI driver} \major{46}{}{char }{Comtrol Rocketport serial card} @@ -179,9 +186,33 @@ \major{52}{}{char }{Spellcaster DataComm/BRI ISDN card} \major{53}{}{char }{BDM interface for remote debugging MC683xx microcontrollers} \major{54}{}{char }{Electrocardiognosis Holter serial card} -\major{55}{--59}{}{Unallocated} +\major{55}{}{char }{DSP56001 digital signal processor} +\major{56}{}{char }{Apple Desktop Bus} +\major{57}{}{char }{Hayes ESP serial card} +\major{58}{}{char }{Hayes ESP serial card -- alternate devices} +\major{59}{}{char }{sf firewall package} \major{60}{--63}{}{Local/experimental use} -\major{64}{--119}{}{Unallocated} +\major{64}{}{char }{ENskip kernel encryption package} +\major{65}{}{char }{Sundance ``plink'' Transputer boards} +\major{66}{}{char }{YARC PowerPC PCI coprocessor card} +\major{67}{}{char }{Coda network filesystem} +\major{68}{}{char }{CAPI 2.0 interface} +\major{69}{}{char }{MA16 numeric accelerator card} +\major{70}{}{char }{SpellCaster Protocol Services Interface} +\major{71}{}{char }{Computone IntelliPort II serial card} +\major{72}{}{char }{Computone IntelliPort II serial card -- alternate devices} +\major{73}{}{char }{Computone IntelliPort II serial card -- control devices} +\major{74}{}{char }{SCI bridge} +\major{75}{}{char }{Specialix IO8+ serial card} +\major{76}{}{char }{Specialix IO8+ serial card -- alternate devices} +\major{77}{}{char }{ComScire Quantum Noise Generator} +\major{78}{}{char }{PAM Software's multimodem boards} +\major{79}{}{char }{PAM Software's multimodem boards -- alternate devices} +\major{80}{}{char }{Photometrics AT200 CCD camera} +\major{81}{}{char }{Brooktree Bt848 frame grabbers} +\major{82}{}{char }{WiNRADiO communications receiver card} +\major{83}{}{char }{Teletext/videotext interfaces} +\major{84}{--119}{}{Unallocated} \major{120}{--127}{}{Local/experimental use} \major{128}{--239}{}{Unallocated} \major{240}{--254}{}{Local/experimental use} @@ -190,7 +221,6 @@ \section{Minor numbers} - \begin{devicelist} \major{0}{}{}{Unnamed devices (e.g. non-device mounts)} \minor{0}{}{reserved as null device number} @@ -250,37 +280,38 @@ \\ \major{}{}{}{To specify format, add to the autodetect device number} \minor{ 0}{/dev/fd?}{Autodetect format} - \minor{ 4}{/dev/fd?d360}{5.25" \num{4}{360}K in a \num{4}{360}K drive\1} - \minor{ 20}{/dev/fd?h360}{5.25" \num{4}{360}K in a 1200K drive\1} - \minor{ 48}{/dev/fd?h410}{5.25" \num{4}{410}K in a 1200K drive} - \minor{ 64}{/dev/fd?h420}{5.25" \num{4}{420}K in a 1200K drive} - \minor{ 24}{/dev/fd?h720}{5.25" \num{4}{720}K in a 1200K drive} - \minor{ 80}{/dev/fd?h880}{5.25" \num{4}{880}K in a 1200K drive\1} - \minor{ 8}{/dev/fd?h1200}{5.25" 1200K in a 1200K drive\1} - \minor{ 40}{/dev/fd?h1440}{5.25" 1440K in a 1200K drive\1} - \minor{ 56}{/dev/fd?h1476}{5.25" 1476K in a 1200K drive} - \minor{ 72}{/dev/fd?h1494}{5.25" 1494K in a 1200K drive} - \minor{ 92}{/dev/fd?h1600}{5.25" 1600K in a 1200K drive\1} \minor{}{}{} - \minor{ 12}{/dev/fd?u360}{3.5" \num{4}{360}K Double Density} - \minor{ 16}{/dev/fd?u720}{3.5" \num{4}{720}K Double Density\1} - \minor{120}{/dev/fd?u800}{3.5" \num{4}{800}K Double Density\2} - \minor{ 52}{/dev/fd?u820}{3.5" \num{4}{820}K Double Density} - \minor{ 68}{/dev/fd?u830}{3.5" \num{4}{830}K Double Density} - \minor{ 84}{/dev/fd?u1040}{3.5" 1040K Double Density\1} - \minor{ 88}{/dev/fd?u1120}{3.5" 1120K Double Density\1} - \minor{ 28}{/dev/fd?u1440}{3.5" 1440K High Density\1} - \minor{124}{/dev/fd?u1600}{3.5" 1600K High Density\1} - \minor{ 44}{/dev/fd?u1680}{3.5" 1680K High Density\3} - \minor{ 60}{/dev/fd?u1722}{3.5" 1722K High Density} - \minor{ 76}{/dev/fd?u1743}{3.5" 1743K High Density} - \minor{ 96}{/dev/fd?u1760}{3.5" 1760K High Density} - \minor{116}{/dev/fd?u1840}{3.5" 1840K High Density\3} - \minor{100}{/dev/fd?u1920}{3.5" 1920K High Density\1} - \minor{ 32}{/dev/fd?u2880}{3.5" 2880K Extra Density\1} - \minor{104}{/dev/fd?u3200}{3.5" 3200K Extra Density} - \minor{108}{/dev/fd?u3520}{3.5" 3520K Extra Density} - \minor{112}{/dev/fd?u3840}{3.5" 3840K Extra Density\1} + \minor{ 4}{/dev/fd?d360}{5.25\tum\ \num{4}{360}K in a \num{4}{360}K drive\1} + \minor{ 20}{/dev/fd?h360}{5.25\tum\ \num{4}{360}K in a 1200K drive\1} + \minor{ 48}{/dev/fd?h410}{5.25\tum\ \num{4}{410}K in a 1200K drive} + \minor{ 64}{/dev/fd?h420}{5.25\tum\ \num{4}{420}K in a 1200K drive} + \minor{ 24}{/dev/fd?h720}{5.25\tum\ \num{4}{720}K in a 1200K drive} + \minor{ 80}{/dev/fd?h880}{5.25\tum\ \num{4}{880}K in a 1200K drive\1} + \minor{ 8}{/dev/fd?h1200}{5.25\tum\ 1200K in a 1200K drive\1} + \minor{ 40}{/dev/fd?h1440}{5.25\tum\ 1440K in a 1200K drive\1} + \minor{ 56}{/dev/fd?h1476}{5.25\tum\ 1476K in a 1200K drive} + \minor{ 72}{/dev/fd?h1494}{5.25\tum\ 1494K in a 1200K drive} + \minor{ 92}{/dev/fd?h1600}{5.25\tum\ 1600K in a 1200K drive\1} + \minor{}{}{} + \minor{ 12}{/dev/fd?u360}{3.5\tum\ \num{4}{360}K Double Density} + \minor{ 16}{/dev/fd?u720}{3.5\tum\ \num{4}{720}K Double Density\1} + \minor{120}{/dev/fd?u800}{3.5\tum\ \num{4}{800}K Double Density\2} + \minor{ 52}{/dev/fd?u820}{3.5\tum\ \num{4}{820}K Double Density} + \minor{ 68}{/dev/fd?u830}{3.5\tum\ \num{4}{830}K Double Density} + \minor{ 84}{/dev/fd?u1040}{3.5\tum\ 1040K Double Density\1} + \minor{ 88}{/dev/fd?u1120}{3.5\tum\ 1120K Double Density\1} + \minor{ 28}{/dev/fd?u1440}{3.5\tum\ 1440K High Density\1} + \minor{124}{/dev/fd?u1600}{3.5\tum\ 1600K High Density\1} + \minor{ 44}{/dev/fd?u1680}{3.5\tum\ 1680K High Density\3} + \minor{ 60}{/dev/fd?u1722}{3.5\tum\ 1722K High Density} + \minor{ 76}{/dev/fd?u1743}{3.5\tum\ 1743K High Density} + \minor{ 96}{/dev/fd?u1760}{3.5\tum\ 1760K High Density} + \minor{116}{/dev/fd?u1840}{3.5\tum\ 1840K High Density\3} + \minor{100}{/dev/fd?u1920}{3.5\tum\ 1920K High Density\1} + \minor{ 32}{/dev/fd?u2880}{3.5\tum\ 2880K Extra Density\1} + \minor{104}{/dev/fd?u3200}{3.5\tum\ 3200K Extra Density} + \minor{108}{/dev/fd?u3520}{3.5\tum\ 3520K Extra Density} + \minor{112}{/dev/fd?u3840}{3.5\tum\ 3840K Extra Density\1} \minor{}{}{} \minor{36}{/dev/fd?CompaQ}{Compaq 2880K drive; probably obsolete} \\ @@ -290,11 +321,12 @@ \end{devicelist} NOTE: The letter in the device name ({\file d}, {\file q}, {\file h} -or {\file u}) signifies the type of drive supported: 5.25" Double -Density ({\file d}), 5.25" Quad Density ({\file q}), 5.25" High -Density ({\file h}) or 3.5" (any type, {\file u}). The capital -letters {\file D}, {\file H}, or {\file E} for the 3.5" models have -been deprecated, since the drive type is insignificant for these devices. +or {\file u}) signifies the type of drive supported: 5.25\tum\ Double +Density ({\file d}), 5.25\tum\ Quad Density ({\file q}), 5.25\tum\ +High Density ({\file h}) or 3.5\tum\ (any type, {\file u}). The +capital letters {\file D}, {\file H}, or {\file E} for the 3.5\tum\ +models have been deprecated, since the drive type is insignificant for +these devices. \begin{devicelist} \major{3}{}{char}{Pseudo-TTY slaves} @@ -316,9 +348,10 @@ \end{devicelist} \noindent -For Linux/i386, partitions 1-4 are the primary partitions, partitions -5 and up are logical partitions. Other versions of Linux use -partitioning schemes appropriate to their respective architectures. +For MS-DOS style partition tables (typically used by Linux/i386), +partitions 1-4 are the primary partitions, partitions 5 and up are +logical partitions. For other partitioning schemes, the meaning of +the numbers vary. \begin{devicelist} \major{ 4}{}{char }{TTY devices} @@ -329,19 +362,19 @@ \minor{64}{/dev/ttyS0}{First serial port} \minordots \minor{127}{/dev/ttyS63}{64th serial port} - \minor{128}{/dev/ptyp0}{First pseudo-tty master} + \minor{128}{/dev/ptyp0}{First old pseudo-tty master} \minordots - \minor{191}{/dev/ptysf}{64th pseudo-tty master} - \minor{192}{/dev/ttyp0}{First pseudo-tty slave} + \minor{191}{/dev/ptysf}{64th old pseudo-tty master} + \minor{192}{/dev/ttyp0}{First old pseudo-tty slave} \minordots - \minor{255}{/dev/ttysf}{64th pseudo-tty slave} + \minor{255}{/dev/ttysf}{64th old pseudo-tty slave} \end{devicelist} \noindent For compatibility with previous versions of Linux, the first 64 PTYs -are replicated under this device number. This use will be obsolescent -with the release of Linux 2.0 and may be removed in a future version -of Linux. +are replicated under this device number. This use is deprecated with +the release of Linux 2.0 and may be removed in a future version of +Linux. To ensure proper operation, do not mix old and new PTY devices. \begin{devicelist} \major{ 5}{}{char }{Alternate TTY devices} @@ -384,6 +417,11 @@ \minordots \end{devicelist} +\noindent +The loopback devices are used to mount filesystems not associated with +block devices. The binding to the loopback devices is handled by +{\bf mount}(8) or {\bf losetup}(8). + \begin{devicelist} \major{ 8}{}{block}{SCSI disk devices} \minor{0}{/dev/sda}{First SCSI disk whole disk} @@ -453,6 +491,7 @@ \minor{5}{/dev/atarimouse}{Atari mouse} \minor{6}{/dev/sunmouse}{Sun mouse} \minor{7}{/dev/amigamouse1}{Second Amiga mouse} + \minor{8}{/dev/smouse}{Simple serial mouse driver} \minor{128}{/dev/beep}{Fancy beep device} \minor{129}{/dev/modreq}{Kernel module load request} \minor{130}{/dev/watchdog}{Watchdog timer port} @@ -465,13 +504,13 @@ \minor{137}{/dev/qcam1}{QuickCam on {\file lp1}} \minor{138}{/dev/qcam2}{QuickCam on {\file lp2}} \minor{139}{/dev/openprom}{SPARC OpenBoot PROM} + \minor{140}{/dev/relay8}{Berkshire Products Octal relay card} + \minor{141}{/dev/relay16}{Berkshire Products ISO-16 relay card} + \minor{142}{/dev/msr}{x86 model specific registers} + \minor{143}{/dev/pciconf}{PCI configuration space} + \minor{144}{/dev/nvram}{Non-volatile configuration RAM} \end{devicelist} -\noindent -The loopback devices are used to mount filesystems not associated with -block devices. The binding to the loopback devices is usually handled -by {\bf mount}(8). - \begin{devicelist} \major{11}{}{char }{Raw keyboard device} \minor{0}{/dev/kbd}{Raw keyboard device} @@ -635,6 +674,11 @@ \minordots \end{devicelist} +\noindent +Most distributions name these {\file /dev/sga}, {\file /dev/sgb}... +This sets an unneccesary limit of 26 SCSI devices in the system, and +is counter to standard Linux device-naming practice. + \begin{devicelist} \major{22}{}{char }{Digiboard serial card} \minor{0}{/dev/ttyD0}{First Digiboard port} @@ -902,15 +946,8 @@ \minor{129}{/dev/smpte1}{Second MIDI port, SMPTE timed} \minor{130}{/dev/smpte2}{Third MIDI port, SMPTE timed} \minor{131}{/dev/smpte3}{Fourth MIDI port, SMPTE timed} -\\ -\major{ }{}{block}{Modular RAM disk} \end{devicelist} -\noindent -This device number is provided for older kernels which did not have -the modular RAM disk in the standard distribution. See major number -1. This assignment will be removed when the 2.0 kernel is released. - \begin{devicelist} \major{36}{}{char }{Netlink support} \minor{0}{/dev/route}{Routing, device updates (kernel to user)} @@ -1016,8 +1053,20 @@ \minor{0}{/dev/ttyI0}{First virtual modem} \minordots \minor{63}{/dev/ttyI63}{64th virtual modem} +\\ +\major{ }{}{block}{Network block devices} + \minor{0}{/dev/nd0}{First network block device} + \minor{1}{/dev/nd1}{Second network block device} + \minordots \end{devicelist} +\noindent +Network Block Device is somehow similar to loopback devices: If you +read from it, it sends packet accross network asking server for +data. If you write to it, it sends packet telling server to write. It +could be used to mounting filesystems over the net, swapping over the +net, implementing block device in userland etc. + \begin{devicelist} \major{44}{}{char }{isdn4linux virtual modem -- alternate devices} \minor{0}{/dev/cui0}{Callout device corresponding to {\file ttyI0}} @@ -1116,7 +1165,36 @@ heart monitoring equipment. \begin{devicelist} -\major{55}{--59}{}{Unallocated} +\major{55}{}{char }{DSP56001 digital signal processor} + \minor{0}{/dev/dsp56k}{First DSP56001} +\end{devicelist} + +\begin{devicelist} +\major{56}{}{char }{Apple Desktop Bus} + \minor{0}{/dev/adb}{ADB bus control} +\end{devicelist} + +\noindent +Additional devices will be added to this number, all starting with +{\file /dev/adb}. + +\begin{devicelist} +\major{57}{}{char }{Hayes ESP serial card} + \minor{0}{/dev/ttyP0}{First ESP port} + \minor{1}{/dev/ttyP1}{Second ESP port} + \minordots +\end{devicelist} + +\begin{devicelist} +\major{58}{}{char }{Hayes ESP serial card -- alternate devices} + \minor{0}{/dev/cup0}{Callout device corresponding to {\file ttyP0}} + \minor{1}{/dev/cup1}{Callout device corresponding to {\file ttyP1}} + \minordots +\end{devicelist} + +\begin{devicelist} +\major{59}{}{char }{sf firewall package} + \minor{0}{/dev/firewall}{Communication with sf kernel module} \end{devicelist} \begin{devicelist} @@ -1128,7 +1206,219 @@ used, in order to avoid conflict with future assignments. \begin{devicelist} -\major{64}{--119}{}{Unallocated} +\major{64}{}{char }{ENskip kernel encryption package} + \minor{0}{/dev/enskip}{Communication with ENskip kernel + module} +\end{devicelist} + +\begin{devicelist} +\major{65}{}{char }{Sundance ``plink'' Transputer boards} + \minor{0}{/dev/plink0}{First plink device} + \minor{1}{/dev/plink1}{Second plink device} + \minor{2}{/dev/plink2}{Third plink device} + \minor{3}{/dev/plink3}{Fourth plink device} + \minor{64}{/dev/rplink0}{First plink device, raw} + \minor{65}{/dev/rplink1}{Second plink device, raw} + \minor{66}{/dev/rplink2}{Third plink device, raw} + \minor{67}{/dev/rplink3}{Fourth plink device, raw} + \minor{128}{/dev/plink0d}{First plink device, debug} + \minor{129}{/dev/plink1d}{Second plink device, debug} + \minor{130}{/dev/plink2d}{Third plink device, debug} + \minor{131}{/dev/plink3d}{Fourth plink device, debug} + \minor{192}{/dev/rplink0d}{First plink device, raw, debug} + \minor{193}{/dev/rplink1d}{Second plink device, raw, debug} + \minor{194}{/dev/rplink2d}{Third plink device, raw, debug} + \minor{195}{/dev/rplink3d}{Fourth plink device, raw, debug} +\end{devicelist} + +\noindent +This is a commercial driver; contact James Howes +$<$jth@prosig.demon.co.uk$>$ for information. + +\begin{devicelist} +\major{66}{}{char }{YARC PowerPC PCI coprocessor card} + \minor{0}{/dev/yppcpci0}{First YARC card} + \minor{1}{/dev/yppcpci1}{Second YARC card} + \minordots +\end{devicelist} + +\begin{devicelist} +\major{67}{}{char }{Coda network filesystem} + \minor{0}{/dev/cfs0}{Coda cache manager} +\end{devicelist} + +\noindent +See {\url http://www.coda.cs.cmu.edu\/} for information about Coda. + +\begin{devicelist} +\major{68}{}{char }{CAPI 2.0 interface} + \minor{0}{/dev/capi20}{Control device} + \minor{1}{/dev/capi20.00}{First CAPI 2.0 application} + \minor{2}{/dev/capi20.01}{Second CAPI 2.0 application} + \minordots + \minor{20}{/dev/capi20.19}{19th CAPI 2.0 application} +\end{devicelist} + +\noindent +ISDN CAPI 2.0 driver for use with CAPI 2.0 applications; currently +supports the AVM B1 card. + +\begin{devicelist} +\major{69}{}{char }{MA16 numeric accelerator card} + \minor{0}{/dev/ma16}{Board memory access} +\end{devicelist} + +\begin{devicelist} +\major{70}{}{char }{SpellCaster Protocol Services Interface} + \minor{0}{/dev/apscfg}{Configuration interface} + \minor{1}{/dev/apsauth}{Authentication interface} + \minor{2}{/dev/apslog}{Logging interface} + \minor{3}{/dev/apsdbg}{Debugging interface} + \minor{64}{/dev/apsisdn}{ISDN command interface} + \minor{65}{/dev/apsasync}{Async command interface} + \minor{128}{/dev/apsmon}{Monitor interface} +\end{devicelist} + +\begin{devicelist} +\major{71}{}{char }{Computone IntelliPort II serial card} + \minor{0}{/dev/ttyF0}{IntelliPort II board 0, port 0} + \minor{1}{/dev/ttyF1}{IntelliPort II board 0, port 1} + \minordots + \minor{63}{/dev/ttyF63}{IntelliPort II board 0, port 63} + \minor{64}{/dev/ttyF64}{IntelliPort II board 1, port 0} + \minor{65}{/dev/ttyF65}{IntelliPort II board 1, port 1} + \minordots + \minor{127}{/dev/ttyF127}{IntelliPort II board 1, port 63} + \minor{128}{/dev/ttyF128}{IntelliPort II board 2, port 0} + \minor{129}{/dev/ttyF129}{IntelliPort II board 2, port 1} + \minordots + \minor{191}{/dev/ttyF191}{IntelliPort II board 2, port 63} + \minor{192}{/dev/ttyF192}{IntelliPort II board 3, port 0} + \minor{193}{/dev/ttyF193}{IntelliPort II board 3, port 1} + \minordots + \minor{255}{/dev/ttyF255}{IntelliPort II board 3, port 63} +\end{devicelist} + +\begin{devicelist} +\major{72}{}{char }{Computone IntelliPort II serial card -- alternate devices} + \minor{0}{/dev/cuf0}{Callout device corresponding to {\file ttyF0}} + \minor{1}{/dev/cuf1}{Callout device corresponding to {\file ttyF1}} + \minordots + \minor{63}{/dev/cuf63}{Callout device corresponding to {\file ttyF63}} + \minor{64}{/dev/cuf64}{Callout device corresponding to {\file ttyF64}} + \minor{65}{/dev/cuf65}{Callout device corresponding to {\file ttyF65}} + \minordots + \minor{127}{/dev/cuf127}{Callout device corresponding to {\file ttyF127}} + \minor{128}{/dev/cuf128}{Callout device corresponding to {\file ttyF128}} + \minor{129}{/dev/cuf129}{Callout device corresponding to {\file ttyF129}} + \minordots + \minor{191}{/dev/cuf191}{Callout device corresponding to {\file ttyF191}} + \minor{192}{/dev/cuf192}{Callout device corresponding to {\file ttyF192}} + \minor{193}{/dev/cuf193}{Callout device corresponding to {\file ttyF193}} + \minordots + \minor{255}{/dev/cuf255}{Callout device corresponding to {\file ttyF255}} +\end{devicelist} + +\begin{devicelist} +\major{73}{}{char }{Computone IntelliPort II serial card -- control devices} + \minor{0}{/dev/ip2ipl0}{Loadware device for board 0} + \minor{1}{/dev/ip2stat0}{Status device for board 0} + \minor{4}{/dev/ip2ipl1}{Loadware device for board 1} + \minor{5}{/dev/ip2stat1}{Status device for board 1} + \minor{8}{/dev/ip2ipl2}{Loadware device for board 2} + \minor{9}{/dev/ip2stat2}{Status device for board 2} + \minor{12}{/dev/ip2ipl3}{Loadware device for board 3} + \minor{13}{/dev/ip2stat3}{Status device for board 3} +\end{devicelist} + +\begin{devicelist} +\major{74}{}{char }{SCI bridge} + \minor{0}{/dev/SCI/0}{SCI device 0} + \minor{1}{/dev/SCI/1}{SCI device 1} + \minordots +\end{devicelist} + +\noindent +Currently for Dolphin Interconnect Solutions' PCI-SCI bridge. + +\begin{devicelist} +\major{75}{}{char }{Specialix IO8+ serial card} + \minor{0}{/dev/ttyW0}{First IO8+ port, first card} + \minor{1}{/dev/ttyW1}{Second IO8+ port, first card} + \minordots + \minor{8}{/dev/ttyW8}{First IO8+ port, second card} + \minordots +\end{devicelist} + +\begin{devicelist} +\major{76}{}{char }{Specialix IO8+ serial card -- alternate devices} + \minor{0}{/dev/cuw0}{Callout device corresponding to {\file ttyW0}} + \minor{1}{/dev/cuw1}{Callout device corresponding to {\file ttyW1}} + \minordots + \minor{8}{/dev/cuw8}{Callout device corresponding to {\file ttyW8}} + \minordots +\end{devicelist} + +\begin{devicelist} +\major{77}{}{char }{ComScire Quantum Noise Generator} + \minor{0}{/dev/qng}{ComScire Quantum Noise Generator} +\end{devicelist} + +\begin{devicelist} +\major{78}{}{char }{PAM Software's multimodem boards} + \minor{0}{/dev/ttyM0}{First PAM modem} + \minor{1}{/dev/ttyM1}{Second PAM modem} + \minordots +\end{devicelist} + +\begin{devicelist} +\major{79}{}{char }{PAM Software's multimodem boards -- alternate devices} + \minor{0}{/dev/cum0}{Callout device corresponding to {\file ttyM0}} + \minor{1}{/dev/cum1}{Callout device corresponding to {\file ttyM1}} + \minordots +\end{devicelist} + +\begin{devicelist} +\major{80}{}{char }{Photometrics AT200 CCD camera} + \minor{0}{/dev/at200}{Photometrics AT200 CCD camera} +\end{devicelist} + +\begin{devicelist} +\major{81}{}{char }{Brooktree Bt848 frame grabbers} + \minor{0}{/dev/bttv0}{First Bt848 card} + \minor{0}{/dev/bttv1}{Second Bt848 card} + \minordots + \minor{16}{/dev/bttvc0}{Control for first Bt848 card} + \minor{17}{/dev/bttvc1}{Control for second Bt848 card} + \minordots + \minor{32}{/dev/bttv-vbi0}{VBI data of first Bt848 card} + \minor{33}{/dev/bttv-vbi1}{VBI data of second Bt848 card} + \minordots +\end{devicelist} + +\begin{devicelist} +\major{82}{}{char }{WiNRADiO communications receiver card} + \major{0}{/dev/winradio0}{First WiNRADiO card} + \major{1}{/dev/winradio1}{Second WiNRADiO card} + \minordots +\end{devicelist} + +\noindent +The driver and documentation may be obtained from +{\url http://www.proximity.com.au/~brian/winradio/\/}. + +\begin{devicelist} +\major{83}{}{char }{Teletext/videotext interfaces} + \minor{0}{/dev/vtx}{Teletext decoder} + \minor{16}{/dev/vttuner}{TV tuner on teletext interface} +\end{devicelist} + +\noindent +Devices for the driver contained in the VideoteXt package. More information +on {\url http://home.pages.de/~videotext/\/}. + +\begin{devicelist} +\major{84}{--119}{}{Unallocated} \end{devicelist} \begin{devicelist} @@ -1182,9 +1472,9 @@ \link{/dev/ramdisk}{ram0}{symbolic}{Backward compatibility} \link{/dev/ftape}{rft0}{symbolic}{Backward compatibility} \link{/dev/scd?}{sr?}{hard}{Alternate name for CD-ROMs} -%\link{/dev/fd?H*}{fd?D*}{hard}{Compatible floppy formats} -%\link{/dev/fd?E*}{fd?D*}{hard}{Compatible floppy formats} -%\link{/dev/fd?E*}{fd?H*}{hard}{Compatible floppy formats} +\link{/dev/fd?D*}{fd?u*}{hard}{Backward compatibility} +\link{/dev/fd?H*}{fd?u*}{hard}{Backward compatibility} +\link{/dev/fd?E*}{fd?u*}{hard}{Backward compatibility} \end{nodelist} \subsection{Locally defined links} @@ -1232,5 +1522,111 @@ \node{/dev/gpmdata}{socket}{{\file gpm} mouse multiplexer} \end{nodelist} -\end{document} +\section{Terminal devices} + +Terminal, or TTY devices are a special class of character devices. A +terminal device is any device that could act as a controlling terminal +for a session; this includes virtual consoles, serial ports, and +pseudoterminals (PTYs). + +All terminal devices share a common set of capabilities known as line +diciplines; these include the common terminal line dicipline as well +as SLIP and PPP modes. + +All terminal devices are named similarly; this section explains the +naming and use of the various types of TTYs. Note that the naming +conventions include several historical warts; some of these are +Linux-specific, some were inherited from other systems, and some +reflect Linux outgrowing a borrowed convention. + +A hash mark ($\#$) in a device name is used here to indicate a decimal +number without leading zeroes. + +\subsection{Virtual consoles and the console device} + +Virtual consoles are full-screen terminal displays on the system video +monitor. Virtual consoles are named {\file /dev/tty$\#$}, with +numbering starting at {\file /dev/tty1}; {\file /dev/tty0} is the +current virtual console. {\file /dev/tty0} is the device that should +be used to access the system video card on those architectures for +which the frame buffer devices ({\file /dev/fb*}) do not exist +(including the x86). Do not use {\file /dev/console} for this +purpose. + +The {\em console device\/}, {\file /dev/console}, is the device to +which system messages should be sent, and on which logins should be +permitted in single-user mode. {\file /dev/console} should be a +symbolic link to either {\file /dev/tty0}, a specific virtual console +such as {\file /dev/tty1}, or to a serial port primary ({\file tty}) +device, depending on the configuration of the system. + +\subsection{Serial ports} + +Serial ports are RS-232 serial ports and any device which simulates +one, either in hardware (such as internal modems) or in software (such +as the ISDN driver.) Under Linux, each serial ports has two device +names, the primary or callin device and the alternate or callout one. +Each kind of device is indicated by a different letter. For any +letter $X$, the names of the devices are {\file /dev/tty${X\#}$} and +{\file /dev/cu${x\#}$}, respectively; for historical reasons, {\file +/dev/ttyS$\#$} and {\file /dev/ttyC$\#$} correspond to {\file +/dev/cua$\#$} and {\file /dev/cub$\#$}. In the future, it should be +expected that multiple letters will be used; all letters will be upper +case for the {\file tty} device and lower case for the {\file cu} +device. + +The names {\file /dev/ttyQ$\#$} and {\file /dev/cuq$\#$} are reserved +for local use. + +The alternate devices provide for kernel-based exclusion and somewhat +different defaults than the primary devices. Their main purpose is to +allow the use of serial ports with programs with no inherent or broken +support for serial ports. For programs with proper knowledge of +serial port operation, their use should probably be avoided. + +Arbitration of serial ports is provided by the use of lock files with +the names {\file /var/lock/LCK..tty${X\#}$}. The contents of the lock +file should be the PID of the locking process as an ASCII number. + +It is common practice to install links such as {\file /dev/modem\/} +which point to serial ports. In order to ensure proper locking in the +presence of these links, it is recommended that software chase +symlinks and lock all possible names; additionally, it is recommended +that a lock file be installed with the corresponding alternate +device. In order to avoid deadlocks, it is recommended that the locks +are acquired in the following order, and released in the reverse: +\begin{itemize} +\item{The symbolic link name, if any ({\file /var/lock/LCK..modem})} +\item{The {\file tty} name ({\file /var/lock/LCK..ttyS2})} +\item{The alternate device name ({\file /var/lock/LCK..cua2})} +\end{itemize} +In the case of nested symbolic links, the lock files should be +installed in the order the symlinks are resolved. +Under no circumstances should an application hold a lock while waiting +for another to be released. In addition, applications which attempt +to create lock files for the corresponding alternate device names +should take into account the possibility of being used on a non-serial +port TTY, for which no alternate device would exist. + +\subsection{Pseudoterminals (PTYs)} + +Pseudoterminals, or PTYs, are used to create login sessions or provide +other capabilities requiring a TTY line dicipline (including SLIP or +PPP capability) to arbitrary data-generation processes. Each PTY has +a {\em master\/} side, named {\file /dev/pty[p-za-e][0-9a-f]\/}, and a +{\em slave\/} side, named {\file /dev/tty[p-za-e][0-9a-f]\/}. The +kernel arbitrates the use of PTYs by allowing each master side to be +opened only once. + +Once the master side has been opened, the corresponding slave device +can be used in the same manner as any TTY device. The master and +slave devices are connected by the kernel, generating the equivalent +of a bidirectional pipe with TTY capabilities. + +The entire namespace {\file /dev/[pt]ty[p-za-o][0-9a-z]\/} should be +considered reserved for the future use of PTYs. Should more than 936 +PTYs ever become a necessity, we will likely adopt a System V-like +scheme by which PTYs use a subdirectory of {\file /dev}. + +\end{document} diff -ur --new-file old/linux/Documentation/devices.txt new/linux/Documentation/devices.txt --- old/linux/Documentation/devices.txt Wed Jul 10 12:11:44 1996 +++ new/linux/Documentation/devices.txt Mon May 12 19:35:37 1997 @@ -1,8 +1,7 @@ LINUX ALLOCATED DEVICES - Maintained by H. Peter Anvin - Last revised: July 9, 1996 + Last revised: May 1, 1997 This list is the successor to Rick Miller's Linux Device List, which he stopped maintaining when he got busy with other things in 1993. It @@ -19,11 +18,14 @@ To have a major number allocated, or a minor number in situations where that applies (e.g. busmice), please contact me with the -appropriate device information. Also, if you have additional -information regarding any of the devices listed below, or if I have -made a mistake, I would greatly appreciate a note. When sending me -mail, please include the word "device" in the subject so your mail -won't accidentally get buried! +appropriate device information. I *very* much appreciate if you send +me a device description in the same format as the ones already in this +file. Also, if you have additional information regarding any of the +devices listed below, or if I have made a mistake, I would greatly +appreciate a note. + +NOTE: When sending me mail, *please* include the word "device" in the +subject so your mail won't accidentally get buried! Allocations marked (68k/Amiga) apply to Linux/68k on the Amiga platform only. Allocations marked (68k/Atari) apply to Linux/68k on @@ -160,18 +162,19 @@ 64 = /dev/ttyS0 First serial port ... 127 = /dev/ttyS63 64th serial port - 128 = /dev/ptyp0 First pseudo-tty master + 128 = /dev/ptyp0 First old pseudo-tty master ... - 191 = /dev/ptysf 64th pseudo-tty master - 192 = /dev/ttyp0 First pseudo-tty slave + 191 = /dev/ptysf 64th old pseudo-tty master + 192 = /dev/ttyp0 First old pseudo-tty slave ... - 255 = /dev/ttysf 64th pseudo-tty slave + 255 = /dev/ttysf 64th old pseudo-tty slave For compatibility with previous versions of Linux, the - first 64 PTYs are replicated under this device - number. This use will be obsolescent with the release - of Linux 1.4 and may be removed in a future version of - Linux. + first 64 PTYs are replicated under this device number. + This use is deprecated with the release of Linux 2.0 + and may be removed in a future version of Linux. To + ensure proper operation, do not mix old and new PTY + devices. 5 char Alternate TTY devices 0 = /dev/tty Current TTY device @@ -207,7 +210,7 @@ The loopback devices are used to mount filesystems not associated with block devices. The binding to the - loopback devices is usually handled by mount(8). + loopback devices is handled by mount(8) or losetup(8). 8 block SCSI disk devices 0 = /dev/sda First SCSI disk whole disk @@ -269,6 +272,7 @@ 5 = /dev/atarimouse Atari mouse 6 = /dev/sunmouse Sun mouse 7 = /dev/amigamouse1 Second Amiga mouse + 8 = /dev/smouse Simple serial mouse driver 128 = /dev/beep Fancy beep device 129 = /dev/modreq Kernel module load request 130 = /dev/watchdog Watchdog timer port @@ -281,6 +285,11 @@ 137 = /dev/qcam1 QuickCam on lp1 138 = /dev/qcam2 QuickCam on lp2 139 = /dev/openprom SPARC OpenBoot PROM + 140 = /dev/relay8 Berkshire Products Octal relay card + 141 = /dev/relay16 Berkshire Products ISO-16 relay card + 142 = /dev/msr x86 model-specific registers + 143 = /dev/pciconf PCI configuration space + 144 = /dev/nvram Non-volatile configuration RAM 11 char Raw keyboard device 0 = /dev/kbd Raw keyboard device @@ -406,6 +415,11 @@ 1 = /dev/sg1 Second generic SCSI device ... + Most distributions name these /dev/sga, /dev/sgb...; + this sets an unnecessary limit of 26 SCSI devices in + the system and is counter to standard Linux + device-naming practice. + 22 char Digiboard serial card 0 = /dev/ttyD0 First Digiboard port 1 = /dev/ttyD1 Second Digiboard port @@ -624,12 +638,6 @@ 129 = /dev/smpte1 Second MIDI port, SMPTE timed 130 = /dev/smpte2 Third MIDI port, SMPTE timed 131 = /dev/smpte3 Fourth MIDI port, SMPTE timed - block Modular RAM disk device - - This device number is provided for older kernels which - did not have the modular RAM disk in the standard - distribution. See major number 1. This assignment - will be removed when the 2.0 kernel is released. 36 char Netlink support 0 = /dev/route Routing, device updates, kernel to user @@ -709,6 +717,17 @@ 0 = /dev/ttyI0 First virtual modem ... 63 = /dev/ttyI63 64th virtual modem + block Network block devices + 0 = /dev/nb0 First network block device + 1 = /dev/nb1 Second network block device + ... + + Network Block Device is somehow similar to loopback + devices: If you read from it, it sends packet accross + network asking server for data. If you write to it, it + sends packet telling server to write. It could be used + to mounting filesystems over the net, swapping over + the net, implementing block device in userland etc. 44 char isdn4linux virtual modem - alternate devices 0 = /dev/cui0 Callout device corresponding to ttyI0 @@ -785,14 +804,200 @@ to transfer data from Holter 24-hour heart monitoring equipment. - 55-59 UNALLOCATED + 55 char DSP56001 digital signal processor + 0 = /dev/dsp56k First DSP56001 + + 56 char Apple Desktop Bus + 0 = /dev/adb ADB bus control + + Additional devices will be added to this number, all + starting with /dev/adb. + + 57 char Hayes ESP serial card + 0 = /dev/ttyP0 First ESP port + 1 = /dev/ttyP1 Second ESP port + ... + + 58 char Hayes ESP serial card - alternate devices + 0 = /dev/cup0 Callout device corresponding to ttyP0 + 1 = /dev/cup1 Callout device corresponding to ttyP1 + ... + + 59 char sf firewall package + 0 = /dev/firewall Communication with sf kernel module 60-63 LOCAL/EXPERIMENTAL USE Allocated for local/experimental use. For devices not assigned official numbers, these ranges should be used, in order to avoid conflicting with future assignments. - 64-119 UNALLOCATED + 64 char ENskip kernel encryption package + 0 = /dev/enskip Communication with ENskip kernel module + + 65 char Sundance "plink" Transputer boards + 0 = /dev/plink0 First plink device + 1 = /dev/plink1 Second plink device + 2 = /dev/plink2 Third plink device + 3 = /dev/plink3 Fourth plink device + 64 = /dev/rplink0 First plink device, raw + 65 = /dev/rplink1 Second plink device, raw + 66 = /dev/rplink2 Third plink device, raw + 67 = /dev/rplink3 Fourth plink device, raw + 128 = /dev/plink0d First plink device, debug + 129 = /dev/plink1d Second plink device, debug + 130 = /dev/plink2d Third plink device, debug + 131 = /dev/plink3d Fourth plink device, debug + 192 = /dev/rplink0d First plink device, raw, debug + 193 = /dev/rplink1d Second plink device, raw, debug + 194 = /dev/rplink2d Third plink device, raw, debug + 195 = /dev/rplink3d Fourth plink device, raw, debug + + This is a commercial driver; contact James Howes + for information. + + 66 char YARC PowerPC PCI coprocessor card + 0 = /dev/yppcpci0 First YARC card + 1 = /dev/yppcpci1 Second YARC card + ... + + 67 char Coda network file system + 0 = /dev/cfs0 Coda cache manager + + See http://www.coda.cs.cmu.edu for information about Coda. + + 68 char CAPI 2.0 interface + 0 = /dev/capi20 Control device + 1 = /dev/capi20.00 First CAPI 2.0 application + 2 = /dev/capi20.01 Second CAPI 2.0 application + ... + 20 = /dev/capi20.19 19th CAPI 2.0 application + + ISDN CAPI 2.0 driver for use with CAPI 2.0 + applications; currently supports the AVM B1 card. + + 69 char MA16 numeric accelerator card + 0 = /dev/ma16 Board memory access + + 70 char SpellCaster Protocol Services Interface + 0 = /dev/apscfg Configuration interface + 1 = /dev/apsauth Authentication interface + 2 = /dev/apslog Logging interface + 3 = /dev/apsdbg Debugging interface + 64 = /dev/apsisdn ISDN command interface + 65 = /dev/apsasync Async command interface + 128 = /dev/apsmon Monitor interface + + 71 char Computone IntelliPort II serial card + 0 = /dev/ttyF0 IntelliPort II board 0, port 0 + 1 = /dev/ttyF1 IntelliPort II board 0, port 1 + ... + 63 = /dev/ttyF63 IntelliPort II board 0, port 63 + 64 = /dev/ttyF64 IntelliPort II board 1, port 0 + 65 = /dev/ttyF65 IntelliPort II board 1, port 1 + ... + 127 = /dev/ttyF127 IntelliPort II board 1, port 63 + 128 = /dev/ttyF128 IntelliPort II board 2, port 0 + 129 = /dev/ttyF129 IntelliPort II board 2, port 1 + ... + 191 = /dev/ttyF191 IntelliPort II board 2, port 63 + 192 = /dev/ttyF192 IntelliPort II board 3, port 0 + 193 = /dev/ttyF193 IntelliPort II board 3, port 1 + ... + 255 = /dev/ttyF255 IntelliPort II board 3, port 63 + + 72 char Computone IntelliPort II serial card - alternate devices + 0 = /dev/cuf0 Callout device corresponding to ttyF0 + 1 = /dev/cuf1 Callout device corresponding to ttyF1 + ... + 63 = /dev/cuf63 Callout device corresponding to ttyF63 + 64 = /dev/cuf64 Callout device corresponding to ttyF64 + 65 = /dev/cuf65 Callout device corresponding to ttyF65 + ... + 127 = /dev/cuf127 Callout device corresponding to ttyF127 + 128 = /dev/cuf128 Callout device corresponding to ttyF128 + 129 = /dev/cuf129 Callout device corresponding to ttyF129 + ... + 191 = /dev/cuf191 Callout device corresponding to ttyF191 + 192 = /dev/cuf192 Callout device corresponding to ttyF192 + 193 = /dev/cuf193 Callout device corresponding to ttyF193 + ... + 255 = /dev/cuf255 Callout device corresponding to ttyF255 + + 73 char Computone IntelliPort II serial card - control devices + 0 = /dev/ip2ipl0 Loadware device for board 0 + 1 = /dev/ip2stat0 Status device for board 0 + 4 = /dev/ip2ipl1 Loadware device for board 1 + 5 = /dev/ip2stat1 Status device for board 1 + 8 = /dev/ip2ipl2 Loadware device for board 2 + 9 = /dev/ip2stat2 Status device for board 2 + 12 = /dev/ip2ipl3 Loadware device for board 3 + 13 = /dev/ip2stat3 Status device for board 3 + + 74 char SCI bridge + 0 = /dev/SCI/0 SCI device 0 + 1 = /dev/SCI/1 SCI device 1 + ... + + Currently for Dolphin Interconnect Solutions' PCI-SCI + bridge. + + 75 char Specialix IO8+ serial card + 0 = /dev/ttyW0 First IO8+ port, first card + 1 = /dev/ttyW1 Second IO8+ port, first card + ... + 8 = /dev/ttyW8 First IO8+ port, second card + ... + + 76 char Specialix IO8+ serial card - alternate devices + 0 = /dev/cuw0 Callout device corresponding to ttyW0 + 1 = /dev/cuw1 Callout device corresponding to ttyW1 + ... + 8 = /dev/cuw8 Callout device corresponding to ttyW8 + ... + + 77 char ComScire Quantum Noise Generator + 0 = /dev/qng ComScire Quantum Noise Generator + + 78 char PAM Software's multimodem boards + 0 = /dev/ttyM0 First PAM modem + 1 = /dev/ttyM1 Second PAM modem + ... + + 79 char PAM Software's multimodem boards - alternate devices + 0 = /dev/cum0 Callout device corresponding to ttyM0 + 1 = /dev/cum1 Callout device corresponding to ttyM1 + ... + + 80 char Photometrics AT200 CCD camera + 0 = /dev/at200 Photometrics AT200 CCD camera + + 81 char Brooktree Bt848 frame grabbers + 0 = /dev/bttv0 First Bt848 card + 1 = /dev/bttv1 Second Bt848 card + ... + 16 = /dev/bttvc0 Control for first Bt848 card + 17 = /dev/bttvc1 Control for second Bt848 card + ... + 32 = /dev/bttv-vbi0 VBI data of first Bt848 card + 33 = /dev/bttv-vbi1 VBI data of second Bt848 card + ... + + 82 char WiNRADiO communications receiver card + 0 = /dev/winradio0 First WiNRADiO card + 1 = /dev/winradio1 Second WiNRADiO card + ... + + The driver and documentation may be obtained from + http://www.proximity.com.au/~brian/winradio/ + + 83 char Teletext/videotext interfaces + 0 = /dev/vtx Teletext decoder + 16 = /dev/vttuner TV tuner on teletext interface + + Devices for the driver contained in the VideoteXt package. + More information on http://home.pages.de/~videotext/ + + 84-119 UNALLOCATED 120-127 LOCAL/EXPERIMENTAL USE @@ -803,9 +1008,7 @@ 255 RESERVED - - - ADDITIONAL /dev DIRECTORY ENTRIES + **** ADDITIONAL /dev DIRECTORY ENTRIES This section details additional entries that should or may exist in the /dev directory. It is preferred that symbolic links use the same @@ -873,3 +1076,106 @@ /dev/printer socket lpd local socket /dev/log socket syslog local socket /dev/gpmdata socket gpm mouse multiplexer + + + **** TERMINAL DEVICES + +Terminal, or TTY devices are a special class of character devices. A +terminal device is any device that could act as a controlling terminal +for a session; this includes virtual consoles, serial ports, and +pseudoterminals (PTYs). + +All terminal devices share a common set of capabilities known as line +diciplines; these include the common terminal line dicipline as well +as SLIP and PPP modes. + +All terminal devices are named similarly; this section explains the +naming and use of the various types of TTYs. Note that the naming +conventions include several historical warts; some of these are +Linux-specific, some were inherited from other systems, and some +reflect Linux outgrowing a borrowed convention. + +A hash mark (#) in a device name is used here to indicate a decimal +number without leading zeroes. + + Virtual consoles and the console device + +Virtual consoles are full-screen terminal displays on the system video +monitor. Virtual consoles are named /dev/tty#, with numbering +starting at /dev/tty1; /dev/tty0 is the current virtual console. +/dev/tty0 is the device that should be used to access the system video +card on those architectures for which the frame buffer devices +(/dev/fb*) do not exist (including the x86). Do not use /dev/console +for this purpose. + +The console device, /dev/console, is the device to which system +messages should be sent, and on which logins should be permitted in +single-user mode. /dev/console should be a symbolic link to either +/dev/tty0, a specific virtual console such as /dev/tty1, or to a +serial port primary (tty*, not cu*) device, depending on the +configuration of the system. + + Serial ports + +Serial ports are RS-232 serial ports and any device which simulates +one, either in hardware (such as internal modems) or in software (such +as the ISDN driver.) Under Linux, each serial ports has two device +names, the primary or callin device and the alternate or callout one. +Each kind of device is indicated by a different letter. For any +letter X, the names of the devices are /dev/ttyX# and /dev/cux#, +respectively; for historical reasons, /dev/ttyS# and /dev/ttyC# +correspond to /dev/cua# and /dev/cub#. In the future, it should be +expected that multiple letters will be used; all letters will be upper +case for the "tty" device and lower case for the "cu" device. + +The names /dev/ttyQ# and /dev/cuq# are reserved for local use. + +The alternate devices provide for kernel-based exclusion and somewhat +different defaults than the primary devices. Their main purpose is to +allow the use of serial ports with programs with no inherent or broken +support for serial ports. For programs with proper knowledge of +serial port operation, their use should probably be avoided. + +Arbitration of serial ports is provided by the use of lock files with +the names /var/lock/LCK..ttyX#. The contents of the lock file should +be the PID of the locking process as an ASCII number. + +It is common practice to install links such as /dev/modem +which point to serial ports. In order to ensure proper locking in the +presence of these links, it is recommended that software chase +symlinks and lock all possible names; additionally, it is recommended +that a lock file be installed with the corresponding alternate +device. In order to avoid deadlocks, it is recommended that the locks +are acquired in the following order, and released in the reverse: + + 1. The symbolic link name, if any (/var/lock/LCK..modem) + 2. The "tty" name (/var/lock/LCK..ttyS2) + 3. The alternate device name (/var/lock/LCK..cua2) + +In the case of nested symbolic links, the lock files should be +installed in the order the symlinks are resolved. + +Under no circumstances should an application hold a lock while waiting +for another to be released. In addition, applications which attempt +to create lock files for the corresponding alternate device names +should take into account the possibility of being used on a non-serial +port TTY, for which no alternate device would exist. + + Pseudoterminals (PTYs) + +Pseudoterminals, or PTYs, are used to create login sessions or provide +other capabilities requiring a TTY line dicipline (including SLIP or +PPP capability) to arbitrary data-generation processes. Each PTY has +a master side, named /dev/pty[p-za-e][0-9a-f], and a slave side, named +/dev/tty[p-za-e][0-9a-f]. The kernel arbitrates the use of PTYs by +allowing each master side to be opened only once. + +Once the master side has been opened, the corresponding slave device +can be used in the same manner as any TTY device. The master and +slave devices are connected by the kernel, generating the equivalent +of a bidirectional pipe with TTY capabilities. + +The entire namespace /dev/[pt]ty[p-za-o][0-9a-z] should be considered +reserved for the future use of PTYs. Should more than 936 PTYs ever +become a necessity, we will likely adopt a System V-like scheme by +which PTYs use a subdirectory of /dev. diff -ur --new-file old/linux/Documentation/digiboard.txt new/linux/Documentation/digiboard.txt --- old/linux/Documentation/digiboard.txt Fri Sep 20 16:00:33 1996 +++ new/linux/Documentation/digiboard.txt Thu Apr 10 06:27:16 1997 @@ -3,37 +3,184 @@ The Digiboard Driver for Linux supports the following boards: - DigiBoard PC/Xe, PC/Xi, PC/Xeve + DigiBoard PC/Xi, PC/Xe, PC/Xeve(which is the newer, smaller Xe with + a 8K window which is also known as PC/Xe(8K) and has no memory/irq + switches) You can use up to 4 cards with this driver and should work + on other architectures than intel also. + +In case you have problems with this version(1.6.1) of this driver, please +email directly to me as I made the last update. It you have a report about +runnning it on other architectures than intel, email me, so I can document +it here. + +An version of this driver has been taken by Digiboard to make a driver +software package which supports also PC/Xem cards and newer PCI cards +but it don't support the old PC/Xi cards and it isn't yet ported to +linux-2.1.x and may not be useable on other architectures than intel now. +It is available from ftp.digi.com/ftp.digiboard.com. You can write me if +you need an patch for this driver. -Limitations: ------------- -Currently the Driver does not do autoprobing! + Bernhard Kaindl (bkaindl@netway.at) 6. April 1997. -The preconfigured I/O address is 0200h and the default memory address -0D0000h, ALT-PIN feature on and 16 ports available. +Configuring the Driver +---------------------- + +The driver can be build direct into the kernel or as module. +The pcxx driver can be configured using the command line feature while +loading the kernel with LILO or LOADLIN or, if built as a module, +with arguments to insmod and modprobe or with parameters in +/etc/conf.modules for modprobe and kerneld. + +After configuring the driver you need to create the device special files +as described in "Device file creation:" below and set the appropriate +permissions for your application. + +As Module +--------- + +modprobe pcxx io= \ + membase= \ + memsize= \ + numports= \ + altpin= \ + verbose= + +or, if several cards are installed + +modprobe pcxx io=,,... \ + membase=,,... \ + memsize=,,... \ + numports=,,... \ + altpin=,,... \ + verbose= + +where is the io address of the Nth card and is the +memory base address of the Nth card, etc. + +The parameters can be specified in any order. For example, the numports +parameter can precede the membase parameter, or vice versa. If several +cards are installed the ordering within the comma separated parameter +lists must be consistent, of course. + +io - I/O port address of that card. +membase - Memory start address of that card. +memsize - Memory size of that card, in kilobytes. If given, this value + is compared against the card to verify configuration and + hinder the driver to use a misconfigured card. If the parameter + does not match the board it is disabled with a memory size error. +numports - Number of ports on this card. This is the number of devices to + assign to this card or reserve if disabled. +altpin - 1: swap DCD and DSR for 8-pin RJ-45 with modems. + 0: don't swap DCD and DSR. + other values count as 1. +verbose - 1: give nice verbose output during initialisation of the driver. + possibly helpful during board configuration. + 0: normal terse output. + +Only the parameters which differ from the defaults need to be specified. +If the io= parameter is not given, the default config is used. This is + + io=0x200 membase=0xD0000 numports=16 altpin=0 + +Only parameters applicable need be specified. For example to configure +2 boards, first one at 0x200 with 8 ports, rest defaults, second one at +0x120, memory at 0xD80000, altpin enabled, rest defaults, you can do this +by using these parameters: + + modprobe pcxx io=0x200,0x120 numports=8,8 membase=,0xD80000 altpin=,1 + +To disable a temporary unuseable board without changing the mapping of the +devices following that board, you can empty the io-value for that board: + + modprobe pcxx io=,0x120 numports=8,8 membase=,0xD80000 altpin=,1 + +The remainig board still uses ttyD8-ttyD15 and cud8-cud15. + +Example line for /etc/conf.modules for use with kerneld and as default +parameters for modprobe: + +options pcxx io=0x200 numports=8 + +For kerneld to work you will likely need to add these two lines to your +/etc/conf.modules: + +alias char-major-22 pcxx +alias char-major-23 pcxx + + +Boot-time configuration when linked into the kernel +--------------------------------------------------- + +Per Board to be configured, pass a digi= commandline parameter to the +kernel using lilo or loadlin. It consists of a string of comma separated +identifiers or integers. The 6 values in order are: + +Card status: Enable - use that board + Disable - don't actually use that board. + +Card type: PC/Xi - the old ones with 64/128/256/512K RAM. + PC/Xe - PC/Xe(old ones with 64k mem range). + PC/Xeve - PC/Xe(newers with 8k mem range). + +Note: This is for documentation only, the type is detected from the board. + +Altpin setting: Enable - swap DCD and DSR for 8-pin RJ-45 with modems. + Disable - don't swap DCD and DSR. + +Number of ports: 1 ... 16 - Number of ports on this card. This is the + number of devices to assign to this card. + +I/O port address: eg. 200 - I/O Port address where the card is configured. + +Memory base addr: eg. 80000 - Memory address where the board's memory starts. + +This is an example for a line which you can insert into you lilo.conf: + + append="digi=Enable,PC/Xi,Disable,4,120,D0000" + +there is an alternate form, in which you must use decimal values only: + + append="digi=1,0,0,16,512,851968" + +If you don't give a digi= commandline, the compiled-in defaults of +board 1: io=0x200, membase=0xd0000, altpin=off and numports=16 are used. + +If you have the resources (io&mem) free for use, configure your board to +these settings and you should be set up fine even if yours has not 16 ports. -Use them and you will not have to worry about configuring anything. -You can configure the driver via lilo. Have a look at the end of this -message. The default settings vanish as soon as you give a digi= commandline. -You can give multiple digi= commandline parameters to define multiple -boards. +Sources of Information +---------------------- + +Webpage: http://private.fuller.edu/clameter/digi.html + +Mailing List: digiboard@list.fuller.edu + +(Write e-mail to that address to subscribe. Common ListServ commands work. +Archive of messages available) + +Christoph Lameter (clameter@fuller.edu) 16. April 1996. + +Supporting Tools +---------------- -Supporting Tools: ------------------ Some tools and more detailed information can be found at ftp://ftp.fuller.edu/Linux/digi -WARNING: Most of the stuff available right now uses the WRONG Major Device -numbers and the wrong call out devices. Be careful and check them first. -Better not use any of the software in that directory if you run a recent -1.3.X Kernel or later! - The "ditty" tool described in the Digiboard Manuals for other Unixes is also available. + +Device file creation +-------------------- + Currently the Linux MAKEDEV command does not support generating the Digiboard -Devices. Use the following script to generate the devices: +Devices. + +The /dev/cud devices behave like the /dev/cua devices +and the ttyD devices are like the /dev/ttyS devices. + +Use the following script to generate the devices: ------------------ mkdigidev begin #!/bin/sh @@ -66,8 +213,10 @@ boardnum=`expr $boardnum + 1` done ------------------ mkdigidev end + or apply the following patch to /dev/MAKEDEV and do a -make digi +sh /dev/MAKEDEV digi + ----- MAKEDEV Patch --- /dev/MAKEDEV Sun Aug 13 15:48:23 1995 +++ MAKEDEV Tue Apr 16 17:53:27 1996 @@ -105,51 +254,3 @@ ;; par[0-2]) ----- End Makedev patch - -The /dev/cud?? devices behave like the /dev/cua?? devices -and the ttyD devices are like the /dev/ttyS?? devices. - -Sources of Information ----------------------- - -Webpage: http://private.fuller.edu/clameter/digi.html - -Mailing List: digiboard@list.fuller.edu - -(Write e-mail to that address to subscribe. Common ListServ commands work. -Archive of messages available) - -Christoph Lameter (clameter@fuller.edu) 16. April 1996. - ------------------------------------------------------------------------------ - -Changes v1.5.5: - -The ability to use the kernel's command line to pass in the configuration for -boards. Using LILO's APPEND command, a string of comma separated identifiers -or integers can be used. The 6 values in order are: - - Enable/Disable this card, - Type of card: PC/Xi(0), PC/Xe(1), PC/Xeve(2), PC/Xem(3) - Enable/Disable alternate pin arrangement, - Number of ports on this card, - I/O Port where card is configured (in HEX if using string identifiers), - Base of memory window (in HEX if using string identifiers), - -Samples: - append="digi=E,PC/Xi,D,16,200,D0000" - append="digi=1,0,0,16,512,(whatever D0000 is in base 10 :) - -Driver's minor device numbers are conserved. This means that instead of -each board getting a block of 16 minors pre-assigned, it gets however -many it should, with the next card following directly behind it. A -system with 4 2-port PC/Xi boards will use minor numbers 0-7. -This conserves some memory, and removes a few hard coded constants. - -NOTE!! NOTE!! NOTE!! -The definition of PC/Xem as a valid board type is the BEGINNING of support -for this device. The driver does not currently recognise the board, nor -does it want to initialize it. At least not the EISA version. - -Mike McLagan 5, April 1996. - diff -ur --new-file old/linux/Documentation/digiepca.txt new/linux/Documentation/digiepca.txt --- old/linux/Documentation/digiepca.txt Thu Jan 1 01:00:00 1970 +++ new/linux/Documentation/digiepca.txt Mon May 12 19:35:37 1997 @@ -0,0 +1,96 @@ +The Digi Intl. epca driver. +---------------------------- +The Digi Intl. epca driver for Linux supports the following boards: + +Digi PC/Xem, PC/Xr, PC/Xe, PC/Xi, PC/Xeve +Digi EISA/Xem, PCI/Xem, PCI/Xr + +Limitations: +------------ +Currently the driver only autoprobes for supported PCI boards. + +The Linux MAKEDEV command does not support generating the Digiboard +Devices. Users executing digiConfig to setup EISA and PC series cards +will have their device nodes automaticly constructed (cud?? for ~CLOCAL, +and ttyD?? for CLOCAL). Users wishing to boot their board from the LILO +prompt, or those users booting PCI cards may use buildDIGI to construct +the necessary nodes. + +Notes: +------ +This driver may be configured via LILO. For users who have already configured +their driver using digiConfig, configuring from lilo will override previous +settings. Multiple boards may be configured by issuing multiple LILO command +lines. For examples see the bottom of this document. + +Device names start at 0 and continue up. Beware of this as previous Digi +drivers started device names with 1. + +PCI boards are auto-detected and configured by the driver. PCI boards will +be allocated device numbers (internally) begining with the lowest PCI slot +first. In other words a PCI card in slot 3 will always have higher device +nodes than a PCI card in slot 1. + +LILO config examples: +--------------------- +Using LILO's APPEND command, a string of comma separated identifiers or +integers can be used to configure supported boards. The six values in order +are: + + Enable/Disable this card or Override, + Type of card: PC/Xe (AccelePort) (0), PC/Xeve (1), PC/Xem or PC/Xr (2), + EISA/Xem (3), PC/64Xe (4), PC/Xi (5), + Enable/Disable alternate pin arrangement, + Number of ports on this card, + I/O Port where card is configured (in HEX if using string identifiers), + Base of memory window (in HEX if using string identifiers), + +NOTE : PCI boards are auto-detected and configured. Do not attempt to +configure PCI boards with the LILO append comand. If you wish to override +previous configuration data (As set by digiConfig), but you do not wish to +configure any specific card (Example if there are PCI cards in the system) +the following override command will accomplish this: +-> append="digi=2" + +Samples: + append="digiepca=E,PC/Xe,D,16,200,D0000" + or + append="digi=1,0,0,16,512,851968" + +Supporting Tools: +----------------- +Supporting tools include digiDload, digiConfig, buildPCI, and ditty. See +/usr/src/linux/Documentation/README.epca.dir/user.doc for more details. Note, +this driver REQUIRES that digiDload be executed prior to it being used. +Failure to do this will result in an ENODEV error. + +The latest version of the tool package is available at: +ftp://ftp.dgii.com/drivers/linux/released/async/ + +Documentation: +-------------- +Complete documentation for this product may be found in the tool package. + +Sources of information and support: +----------------------------------- +Digi Intl. support site for this product: +-> digilnux@dgii.com + +Related information and information concerning other drivers supporting +Digi Intl. products: + +-> FTP: ftp://dgii.com +-> Webpage: http://www.dgii.com +-> Webpage: http://private.fuller.edu/clameter/digi.html +-> Mailing List: digiboard@list.fuller.edu Note write e-mail to subscribe + common ListServ commands will not work. + +Acknowledgments: +---------------- +Much of this work (And even text) was derived from a similar document +supporting the original public domain DigiBoard driver Copyright (C) +1994,1995 Troy De Jongh. Many thanks to Christoph Lameter +(clameter@fuller.edu) and Mike McLagan (mike.mclagan@linux.org) who authored +and contributed to the original document. + + diff -ur --new-file old/linux/Documentation/exception.txt new/linux/Documentation/exception.txt --- old/linux/Documentation/exception.txt Thu Jan 1 01:00:00 1970 +++ new/linux/Documentation/exception.txt Mon Nov 11 10:07:43 1996 @@ -0,0 +1,286 @@ + Kernel level exception handling in Linux 2.1.8 + Commentary by Joerg Pommnitz + +When a process runs in kernel mode, it often has to access user +mode memory whose address has been passed by an untrusted program. +To protect itself the kernel has to verify this address. + +In older versions of Linux this was done with the +int verify_area(int type, const void * addr, unsigned long size) +function. + +This function verified, that the memory area starting at address +addr and of size size was accessible for the operation specified +in type (read or write). To do this, verify_read had to look up the +virtual memory area (vma) that contained the address addr. In the +normal case (correctly working program), this test was successful. +It only failed for the (hopefully) rare, buggy program. In some kernel +profiling tests, this normally unneeded verification used up a +considerable amount of time. + +To overcome this situation, Linus decided to let the virtual memory +hardware present in every Linux capable CPU handle this test. + +How does this work? + +Whenever the kernel tries to access an address that is currently not +accessible, the CPU generates a page fault exception and calls the +page fault handler + +void do_page_fault(struct pt_regs *regs, unsigned long error_code) + +in arch/i386/mm/fault.c. The parameters on the stack are set up by +the low level assembly glue in arch/i386/kernel/entry.S. The parameter +regs is a pointer to the saved registers on the stack, error_code +contains a reason code for the exception. + +do_page_fault first obtains the unaccessible address from the CPU +control register CR2. If the address is within the virtual address +space of the process, the fault probably occured, because the page +was not swapped in, write protected or something similiar. However, +we are interested in the other case: the address is not valid, there +is no vma that contains this address. In this case, the kernel jumps +to the bad_area label. + +There it uses the address of the instruction that caused the exception +(i.e. regs->eip) to find an address where the excecution can continue +(fixup). If this search is successful, the fault handler modifies the +return address (again regs->eip) and returns. The execution will +continue at the address in fixup. + +Where does fixup point to? + +Since we jump to the the contents of fixup, fixup obviously points +to executable code. This code is hidden inside the user access macros. +I have picked the get_user macro defined in include/asm/uacess.h as an +example. The definition is somewhat hard to follow, so lets peek at +the code generated by the preprocessor and the compiler. I selected +the get_user call in drivers/char/console.c for a detailed examination. + +The original code in console.c line 1405: + get_user(c, buf); + +The preprocessor output (edited to become somewhat readable): + +( + { + long __gu_err = - 14 , __gu_val = 0; + const __typeof__(*( ( buf ) )) *__gu_addr = ((buf)); + if (((((0 + current_set[0])->tss.segment) == 0x18 ) || + (((sizeof(*(buf))) <= 0xC0000000UL) && + ((unsigned long)(__gu_addr ) <= 0xC0000000UL - (sizeof(*(buf))))))) + do { + __gu_err = 0; + switch ((sizeof(*(buf)))) { + case 1: + __asm__ __volatile__( + "1: mov" "b" " %2,%" "b" "1\n" + "2:\n" + ".section .fixup,\"ax\"\n" + "3: movl %3,%0\n" + " xor" "b" " %" "b" "1,%" "b" "1\n" + " jmp 2b\n" + ".section __ex_table,\"a\"\n" + " .align 4\n" + " .long 1b,3b\n" + ".text" : "=r"(__gu_err), "=q" (__gu_val): "m"((*(struct __large_struct *) + ( __gu_addr )) ), "i"(- 14 ), "0"( __gu_err )) ; + break; + case 2: + __asm__ __volatile__( + "1: mov" "w" " %2,%" "w" "1\n" + "2:\n" + ".section .fixup,\"ax\"\n" + "3: movl %3,%0\n" + " xor" "w" " %" "w" "1,%" "w" "1\n" + " jmp 2b\n" + ".section __ex_table,\"a\"\n" + " .align 4\n" + " .long 1b,3b\n" + ".text" : "=r"(__gu_err), "=r" (__gu_val) : "m"((*(struct __large_struct *) + ( __gu_addr )) ), "i"(- 14 ), "0"( __gu_err )); + break; + case 4: + __asm__ __volatile__( + "1: mov" "l" " %2,%" "" "1\n" + "2:\n" + ".section .fixup,\"ax\"\n" + "3: movl %3,%0\n" + " xor" "l" " %" "" "1,%" "" "1\n" + " jmp 2b\n" + ".section __ex_table,\"a\"\n" + " .align 4\n" " .long 1b,3b\n" + ".text" : "=r"(__gu_err), "=r" (__gu_val) : "m"((*(struct __large_struct *) + ( __gu_addr )) ), "i"(- 14 ), "0"(__gu_err)); + break; + default: + (__gu_val) = __get_user_bad(); + } + } while (0) ; + ((c)) = (__typeof__(*((buf))))__gu_val; + __gu_err; + } +); + +WOW! Black GCC/assembly magic. This is impossible to follow, so lets +see what code gcc generates: + + > xorl %edx,%edx + > movl current_set,%eax + > cmpl $24,788(%eax) + > je .L1424 + > cmpl $-1073741825,64(%esp) + > ja .L1423 + > .L1424: + > movl %edx,%eax + > movl 64(%esp),%ebx + > #APP + > 1: movb (%ebx),%dl /* this is the actual user access */ + > 2: + > .section .fixup,"ax" + > 3: movl $-14,%eax + > xorb %dl,%dl + > jmp 2b + > .section __ex_table,"a" + > .align 4 + > .long 1b,3b + > .text + > #NO_APP + > .L1423: + > movzbl %dl,%esi + +The optimizer does a good job and gives us something we can actually +understand. Can we? The actual user access is quite obvious. Thanks +to the unified address space we can just access the address in user +memory. But what does the .section stuff do????? + +To understand this we have to look at the final kernel: + + > objdump --section-headers vmlinux + > + > vmlinux: file format elf32-i386 + > + > Sections: + > Idx Name Size VMA LMA File off Algn + > 0 .text 00098f40 c0100000 c0100000 00001000 2**4 + > CONTENTS, ALLOC, LOAD, READONLY, CODE + > 1 .fixup 000016bc c0198f40 c0198f40 00099f40 2**0 + > CONTENTS, ALLOC, LOAD, READONLY, CODE + > 2 .rodata 0000f127 c019a5fc c019a5fc 0009b5fc 2**2 + > CONTENTS, ALLOC, LOAD, READONLY, DATA + > 3 __ex_table 000015c0 c01a9724 c01a9724 000aa724 2**2 + > CONTENTS, ALLOC, LOAD, READONLY, DATA + > 4 .data 0000ea58 c01abcf0 c01abcf0 000abcf0 2**4 + > CONTENTS, ALLOC, LOAD, DATA + > 5 .bss 00018e21 c01ba748 c01ba748 000ba748 2**2 + > ALLOC + > 6 .comment 00000ec4 00000000 00000000 000ba748 2**0 + > CONTENTS, READONLY + > 7 .note 00001068 00000ec4 00000ec4 000bb60c 2**0 + > CONTENTS, READONLY + +There are obviously 2 non standard ELF sections in the generated object +file. But first we want to find out what happened to our code in the +final kernel executable: + + > objdump --disassemble --section=.text vmlinux + > + > c017e785 xorl %edx,%edx + > c017e787 movl 0xc01c7bec,%eax + > c017e78c cmpl $0x18,0x314(%eax) + > c017e793 je c017e79f + > c017e795 cmpl $0xbfffffff,0x40(%esp,1) + > c017e79d ja c017e7a7 + > c017e79f movl %edx,%eax + > c017e7a1 movl 0x40(%esp,1),%ebx + > c017e7a5 movb (%ebx),%dl + > c017e7a7 movzbl %dl,%esi + +The whole user memory access is reduced to 10 x86 machine instructions. +The instructions bracketed in the .section directives are not longer +in the normal execution path. They are located in a different section +of the executable file: + + > objdump --disassemble --section=.fixup vmlinux + > + > c0199ff5 <.fixup+10b5> movl $0xfffffff2,%eax + > c0199ffa <.fixup+10ba> xorb %dl,%dl + > c0199ffc <.fixup+10bc> jmp c017e7a7 + +And finally: + > objdump --full-contents --section=__ex_table vmlinux + > + > c01aa7c4 93c017c0 e09f19c0 97c017c0 99c017c0 ................ + > c01aa7d4 f6c217c0 e99f19c0 a5e717c0 f59f19c0 ................ + > c01aa7e4 080a18c0 01a019c0 0a0a18c0 04a019c0 ................ + +or in human readable byte order: + + > c01aa7c4 c017c093 c0199fe0 c017c097 c017c099 ................ + > c01aa7d4 c017c2f6 c0199fe9 c017e7a5 c0199ff5 ................ + ^^^^^^^^^^^^^^^^^ + this is the interesting part! + > c01aa7e4 c0180a08 c019a001 c0180a0a c019a004 ................ + +What happened? The assembly directives + +.section .fixup,"ax" +.section __ex_table,"a" + +told the assembler to move the following code to the specified +sections in the ELF object file. So the instructions +3: movl $-14,%eax + xorb %dl,%dl + jmp 2b +ended up in the .fixup section of the object file and the addresses + .long 1b,3b +ended up in the __ex_table section of the object file. 1b and 3b +are local labels. The local label 1b (1b stands for next label 1 +backward) is the address of the instruction that might fault, i.e. +in our case the address of the label 1 is c017e7a5: +the original assembly code: > 1: movb (%ebx),%dl +and linked in vmlinux : > c017e7a5 movb (%ebx),%dl + +The local label 3 (backwards again) is the address of the code to handle +the fault, in our case the actual value is c0199ff5: +the original assembly code: > 3: movl $-14,%eax +and linked in vmlinux : > c0199ff5 <.fixup+10b5> movl $0xfffffff2,%eax + +The assembly code + > .section __ex_table,"a" + > .align 4 + > .long 1b,3b + +becomes the value pair + > c01aa7d4 c017c2f6 c0199fe9 c017e7a5 c0199ff5 ................ + ^this is ^this is + 1b 3b +c017e7a5,c0199ff5 in the exception table of the kernel. + +So, what actually happens if a fault from kernel mode with no suitable +vma occurs? + +1.) access to invalid address: + > c017e7a5 movb (%ebx),%dl +2.) MMU generates exception +3.) CPU calls do_page_fault +4.) do page fault calls search_exception_table (regs->eip == c017e7a5); +5.) search_exception_table looks up the address c017e7a5 in the + exception table (i.e. the contents of the ELF section __ex_table + and returns the address of the associated fault handle code c0199ff5. +6.) do_page_fault modifies its own return address to point to the fault + handle code and returns. +7.) execution continues in the fault handling code. +8.) 8a) EAX becomes -EFAULT (== -14) + 8b) DL becomes zero (the value we "read" from user space) + 8c) execution continues at local label 2 (address of the + instruction immediately after the faulting user access). + +The steps 8a to 8c in a certain way emulate the faulting instruction. + +That's it, mostely. If you look at our example, you might ask, why +we set EAX to -EFAULT in the exception handler code. Well, the +get_user macro actually returns a value: 0, if the user access was +successful, -EFAULT on failure. Our original code did not test this +return value, however the inline assembly code in get_user tries to +return -EFAULT. GCC selected EAX to return this value. diff -ur --new-file old/linux/Documentation/ez.txt new/linux/Documentation/ez.txt --- old/linux/Documentation/ez.txt Thu Jan 1 01:00:00 1970 +++ new/linux/Documentation/ez.txt Wed Dec 18 14:57:28 1996 @@ -0,0 +1,85 @@ +linux/Documentation/ez.txt (c) 1996 Grant R. Guenther + +This file documents the ez driver for the parallel port versions of +SyQuest's EZ135 and EZ230 removable media disk drives. + +Special thanks go to Pedro Soria-Rodriguez for his help testing +the EZFlyer 230 support. + +The drive is actually SyQuest's IDE product with a ShuttleTech +IDE <-> parallel converter chip built in. + +Before attempting to access the new driver, you will need to +create some device special files. The following commands will +do that for you: + + mknod /dev/eza b 40 0 + mknod /dev/eza1 b 40 1 + mknod /dev/eza2 b 40 2 + mknod /dev/eza3 b 40 3 + mknod /dev/eza4 b 40 4 + chown root:disk /dev/ez* + chmod 660 /dev/ez* + +You can make devices for more partitions (up to 15) if you need to. + +You can alter certain driver parameters on the LILO or LOADLIN +command line. The general syntax is + + ez=base[,irq] + +where base is the base address of the parallel port you want to use +and irq is the interrupt number for that port. By default, the +driver uses the ports at 0x378 and irq 7. You can disable the +interrupt by specifying it as 0. For example, to run the driver +on port 0x3bc without an interrupt, you would append the following +to the LILO command line: + + ez=0x3bc,0 + +If you have configured the driver as a loadable module, you can +adjust these parameters on the insmod command line using the +variables ez_base and ez_irq. For example: + + insmod ez ez_base=0x3bc + +The driver can detect if the parallel port supports 8-bit +transfers. If so, it will use them. + +The driver can be used with or without interrupts. If an IRQ +is specified the driver will use it - if it can. If the irq +number is set to 0, an alternative, polling-based, strategy +will be used. Polling consumes more CPU time, but may be more +stable on some systems. + +If you experience timeout errors while using this driver - and +you have enabled interrupts - try disabling the interrupt. I +have heard reports of some parallel ports having exceptionally +unreliable interrupts. This could happen on misconfigured +systems in which an inactive sound card shares the same IRQ with +the parallel port. (Remember that most people do not use the +parallel port interrupt for printing.) + +It would be advantageous to use multiple mode transfers, +but ShuttleTech's driver does not appear to use them, so I'm not +sure that the converter can handle it. + +It is not currently possible to connect a printer to the chained +port on an EZ drive and expect Linux to use both devices at once. +If you need to do this, build both the ez and lp drivers as modules +and load one or the other as required. + +When the EZ230 powers on, the "standby timer" is set to about 6 +minutes: if the drive is idle for that length of time, it will +put itself into a low power standby mode. It takes a couple of +seconds for the drive to come out of standby mode. So, if you +load this driver while it is in standby mode, you will notice +a "freeze" of a second or two as the driver waits for the EZ230 +to come back to life. Once loaded, this driver disables the +standby timer (until you next power up the EZ230 ...) + +Keep an eye on http://www.torque.net/ez135.html for news and +other information about the driver. If you have any problems +with this driver, please send me, grant@torque.net, some mail +directly before posting into the newsgroups or mailing lists. + diff -ur --new-file old/linux/Documentation/filesystems/00-INDEX new/linux/Documentation/filesystems/00-INDEX --- old/linux/Documentation/filesystems/00-INDEX Thu Jun 6 13:57:43 1996 +++ new/linux/Documentation/filesystems/00-INDEX Fri Jan 3 12:03:41 1997 @@ -6,6 +6,8 @@ - info and mount options for the OS/2 HPFS. ncpfs.txt - info on Novell Netware(tm) filesystem using NCP protocol. +romfs.txt + - Description of the ROMFS filesystem. smbfs.txt - info on using filesystems with the SMB protocol (Win 3.11, Win NT) sysv-fs.txt diff -ur --new-file old/linux/Documentation/filesystems/romfs.txt new/linux/Documentation/filesystems/romfs.txt --- old/linux/Documentation/filesystems/romfs.txt Thu Jan 1 01:00:00 1970 +++ new/linux/Documentation/filesystems/romfs.txt Fri Jan 3 12:03:41 1997 @@ -0,0 +1,152 @@ + +ROMFS - ROM FILE SYSTEM + +This is a quite dumb, read only filesystem, mainly for initial ram +disks of installation disks. It has grown up by the need of having +modules linked at boot time. Using this filesystem, you get a very +similar feature, and even the possibility of a small kernel, with a +file system which doesn't take up useful memory from the router +functions in the basement of your office. + +For comparison, both the older minix and xiafs filesystems (compiled +as module) need more than 20000 bytes, while romfs is less than a +page, about 4000 bytes (assuming ix86 code). Under the same +conditions, the msdos filesystem would need about 30K (and does not +support device nodes or symlinks), while the nfs module with nfsroot +is about 57K. Furthermore, as a bit unfair comparison, an actual +rescue disk used up 3202 blocks with ext2, while with romfs, it needed +3079 blocks. + +To create such a file system, you'll need a user program named +genromfs. It is (or will be shortly) available via ftp on +sunsite.unc.edu and its mirrors, in the /pub/Linux/system/Filesystems/ +directory. + +As the name suggests, romfs could be also used (space-efficiently) on +various read-only medias, like (E)EPROM disks if someone will have the +motivation.. :) + +However, the main purpose of romfs is to have a very small kernel, +which has only this filesystem linked in, and then can load any module +later, with the current module utilities. It can also be used to run +some program to decide if you need SCSI devices, and even IDE or +floppy drives can be loaded later if you use the "initrd" -- initial +ram disk -- feature of the kernel. This would not be really news +flash, but with romfs, you can even spare off your ext2 or minix or +maybe even affs filesystem until you really know that you need it. + +For example, a distribution boot disk can contain only the cd disk +drivers (and possibly the SCSI drivers), and the ISO filesystem +module. The kernel can be small enough, since it doesn't have other +filesystems, like the quite large ext2fs module, which can then be +loaded off the CD at a later stage of the installation. Another use +would be for a recovery disk, when you are reinstalling a workstation +from the network, and you will have all the tools/modules available +from a nearby server, so you don't want to carry two disks for this +purpose, just because it won't fit into ext2. + +romfs operates on block devices as you can expect, and the underlying +structure is very simple. Every accessible structure begins on 16 +byte boundaries for fast access. The minimum space a file will take +is 32 bytes (this is an empty file, with a less than 16 character +name). The maximum overhead for any non-empty file is the header, and +the 16 byte padding for the name and the contents, also 16+14+15 = 45 +bytes. This is quite rare however, since most file names are longer +than 3 bytes, and shorter than 15 bytes. + +The layout of the filesystem is the following: + +offset content + + +---+---+---+---+ + 0 | - | r | o | m | \ + +---+---+---+---+ The ASCII representation of those bytes + 4 | 1 | f | s | - | / (i.e. "-rom1fs-" + +---+---+---+---+ + 8 | full size | The number of accessible bytes in this fs. + +---+---+---+---+ + 12 | checksum | The checksum of the FIRST 512 BYTES. + +---+---+---+---+ + 16 | volume name | The zero terminated name of the volume, + : : padded to 16 byte boundary. + +---+---+---+---+ + xx | file | + : headers : + +Every multi byte value (32 bit words, I'll use the longwords term from +now on) must be in big endian order. + +The first eight bytes identify the filesystem, even for the casual +reader. After that in the 3rd longword, it contains the number of +bytes accessible from the start of this filesystem. The 4th longword +is the checksum of the first 512 bytes (or the number of bytes +accessible, whichever is smallest). The applied algorithm is the same +as in the AFFS filesystem, namely a simple sum of the longwords +(assuming bigendian quantities again). For details, please consult +the source. This algorithm was chosen because although it's not quite +reliable, it does not require any tables, and it is very simple. + +The following bytes are now part of the file system; each file header +must begin on a 16 byte boundary. + +offset content + + +---+---+---+---+ + 0 | next filehdr|X| The offset of the next file header + +---+---+---+---+ (zero if no more files) + 4 | spec.info | Info for directories/hard links/devices + +---+---+---+---+ + 8 | size | The size of this file in bytes + +---+---+---+---+ + 12 | checksum | Covering the meta data, including the file + +---+---+---+---+ name, and padding + 16 | file name | The zero terminated name of the file, + : : padded to 16 byte boundary. + +---+---+---+---+ + xx | file data | + : : + +Since the file headers begin always at a 16 byte boundary, the lowest +4 bits would be always zero in the next filehdr pointer. These four +bits are used for the mode information. Bits 0..2 specify the type of +the file; while bit 4 shows if the file is executable or not. The +permissions are assumed to be world readable, if this bit is not set, +and world executable if it is; except the character and block devices, +they are readable only for the owner. The owner of every file is user +and group 0, this should never be a problem for the intended use. The +mapping of the 8 possible values to file types is the following: + + mapping spec.info means + 0 hard link link destination [file header] + 1 directory first file's header + 2 regular file unused, must be zero [MBZ] + 3 symbolic link unused, MBZ (file data is the link content) + 4 block device 16/16 bits major/minor number + 5 char device - " - + 6 socket unused, MBZ + 7 fifo unused, MBZ + +Note that hard links are specifically marked in this filesystem, but +they will behave as you can expect (i.e. share the inode number). +Note also that your responsibility to not create hard link loops, and +creating all the . and .. links for directories. This is normally +done correctly by the genromfs program. Please refrain from using the +executable bits on the socket and fifo special files, they may have +other uses in the future. Additionally, please remember that only +regular files, and symlinks are supposed to have a nonzero size field; +they contain the number of bytes available directly after the (padded) +file name. + +Another thing to note is that romfs works on file headers and data +aligned to 16 byte boundaries, but most hardware devices and the block +device drivers are unable to cope with smaller than block-sized data. +To overcome this limitation, the whole size of the file system must be +padded to an 1024 byte boundary. + +If you have any problems or suggestions concerning this file system, +please contact me. However, think twice before wanting me to add +features and code, because the primary advantage of this file system +is the small code. + +Have fun, +Janos Farkas diff -ur --new-file old/linux/Documentation/filesystems/vfs.txt new/linux/Documentation/filesystems/vfs.txt --- old/linux/Documentation/filesystems/vfs.txt Thu Jan 1 01:00:00 1970 +++ new/linux/Documentation/filesystems/vfs.txt Sun Feb 2 14:18:29 1997 @@ -0,0 +1,173 @@ +A Brief Overview of the Virtual File System +=========================================== + by Benjamin LaHaise (blah@dot.superaje.com) + +Noone else seems to be writing this, so here's a quick description of what +I've learned while writing lofs... + +The VFS relatively simple, but it is nice not to have to browse through +pages of code to determine what is expected when writing a filesystem. +Hopefully this helps anyone attempting such a feat, as well as clearing up +a few important points/dependancies. + + +register_filesystem (struct file_system_type *fstype) +===================================================== + +All filesystems are created equal... or at least they start out that way. +A filesystem, be it in module form, or linked into the kernel, needs to add +itself to the table of filesystems by calling register_filesystem with an +initialized file_system_type structure. Any further functions of the +filesystem are accessed through the following function tables... + + +struct file_system_type +======================= + + struct super_block *(*read_super) (struct super_block *sb, void *options, int silent); + + This is the entry point of all filesystems. If the filesystem succeeds + in mounting itself, sb should be returned, otherwise NULL. options is + a pointer to a maximum of PAGE_SIZE-1 bytes of options, typically a zero + terminated string passed from mount. This page is freed after read_super + returns, so do not use any pointers into it. + + This routine _must_ set the s_op member of sb to point to a valid + super_operations structure. + + const char *name; + + Name points to a string that the system will know the filesystem by. + + int requires_dev; + + Set this flag to 1 if the filesystem requires a block device to be mounted + on. + + struct file_system_type * next; + + This field points to the next file_system_type that is present in the system, + and should be initialized to NULL. + +struct super_operations +======================= + +The super_operations structure is found through the s_op member of the +super_block structure. + + void (*read_inode) (struct inode *inode); + [optional - doesn't quite make sense] + read_inode is called by the VFS when iget is called requesting an inode + not already present in the inode table. i_ino is set to the number of the + inode requested. + + The i_op member of inode should be set to a valid inode_operations + structure. Typically filesystems have separate inode_operations for + directories, files and symlinks. i_op can be NULL. + + int (*notify_change) (struct inode *, struct iattr *); + [optional] + void (*write_inode) (struct inode *); + [optional] + + int (*put_inode) (struct inode *inode); + [optional] + put_inode is called by the VFS when the last instance of inode is released + with a call to iput. The only special consideration that should be made + is that iget may reuse inode without calling read_inode unless clear_inode + is called. put_inode MUST return 1 if it called clear_inode on the inode, + otherwise zero. + + void (*put_super) (struct super_block *); + [optional] + void (*write_super) (struct super_block *); + [optional] + void (*statfs) (struct super_block *, struct statfs *, int); + [optional] + int (*remount_fs) (struct super_block *, int *, char *); + [optional] + + +struct inode_operations +======================= + + struct file_operations * default_file_ops; + [mandatory] + All inode_operations structures must have default_file_ops pointing to + a valid file_operations structure. + + int (*create) (struct inode *,const char *,int,int,struct inode **); + [optional] + + int (*lookup) (struct inode *dir, const char *name, int len, struct inode **result); + [optional] + lookup is called when the VFS wishes to have the filesystem resolve a name + into an inode. Dir is a directory on the filesystem that [hopefully] contains + the zero terminated string name (length len). A return value of zero indicates + that there is a valid inode stored in *result. + +*** Note: lofs assumes that any filesystem returns an inode within the filesystem + for all directory inodes. Therefore, __iget(sb,ino,0) should be used to fetch + the inode in a filesystem's lookup routine. + + int (*link) (struct inode *,struct inode *,const char *,int); + [optional] + int (*unlink) (struct inode *,const char *,int); + [optional] + int (*symlink) (struct inode *,const char *,int,const char *); + [optional] + int (*mkdir) (struct inode *,const char *,int,int); + [optional] + int (*rmdir) (struct inode *,const char *,int); + [optional] + int (*mknod) (struct inode *,const char *,int,int,int); + [optional] + int (*rename) (struct inode *,const char *,int,struct inode *,const char *,int, int); + [optional] + + int (*readlink) (struct inode *inode, char *buf, int len); + [optional] + readlink is called by the VFS to read the contents of a symbolic link. + inode is an inode that meets the S_ISLNK test, and buf points to a buffer + of len bytes. + + int (*follow_link) (struct inode *,struct inode *,int,int,struct inode **); + [optional] + The follow_link function is only nescessary if a filesystem uses a really + twisted form of symbolic links - namely if the symbolic link comes from a + foriegn filesystem that makes no sense.... + I threw this one out - too much redundant code! + + int (*readpage) (struct inode *, struct page *); [optional] + int (*writepage) (struct inode *, struct page *); [mandatory with readpage] + + In order for files to be mmap'd, readpage and writepage are required. + A filesystem can use generic_readpage/writepage if it supports the bmap + function. Otherwise, a custom version must be written. + + int (*bmap) (struct inode *,int); + [optional] + void (*truncate) (struct inode *); + [optional] + int (*permission) (struct inode *, int); + [optional] + int (*smap) (struct inode *,int); + [optional] + +struct file_operations +====================== + + int (*lseek) (struct inode *, struct file *, off_t, int); + int (*read) (struct inode *, struct file *, char *, int); + int (*write) (struct inode *, struct file *, const char *, int); + int (*readdir) (struct inode *, struct file *, void *, filldir_t); + unsigned int (*poll) (struct file *, poll_table *); + int (*ioctl) (struct inode *, struct file *, unsigned int, unsigned long); + int (*mmap) (struct inode *, struct file *, struct vm_area_struct *); + int (*open) (struct inode *, struct file *); + void (*release) (struct inode *, struct file *); + int (*fsync) (struct inode *, struct file *); + int (*fasync) (struct inode *, struct file *, int); + int (*check_media_change) (kdev_t dev); + int (*revalidate) (kdev_t dev); + diff -ur --new-file old/linux/Documentation/ide.txt new/linux/Documentation/ide.txt --- old/linux/Documentation/ide.txt Wed Sep 25 10:12:11 1996 +++ new/linux/Documentation/ide.txt Tue Apr 15 21:08:26 1997 @@ -1,4 +1,4 @@ -ide.txt -- Information regarding the Enhanced IDE drive in Linux 2.0.xx +ide.txt -- Information regarding the Enhanced IDE drive in Linux 2.1.xx =============================================================================== Supported by: Mark Lord -- disks, interfaces, probing @@ -12,17 +12,18 @@ See description later on below for handling BIG IDE drives with >1024 cyls. -Major features of ide.c & ide-cd.c ("NEW!" marks changes since 1.2.13): +Major features of the 2.1.xx IDE driver ("NEW!" marks changes since 2.0.xx): -NEW! - support for IDE ATAPI *tape* drives, courtesy of Gadi Oxman +NEW! - support for IDE ATAPI *floppy* drives + - support for IDE ATAPI *tape* drives, courtesy of Gadi Oxman (re-run MAKEDEV.ide to create the tape device entries in /dev/) -NEW! - support for up to *four* IDE interfaces on one or more IRQs -NEW! - support for any mix of up to *eight* disk and/or cdrom drives + - support for up to *four* IDE interfaces on one or more IRQs + - support for any mix of up to *eight* IDE drives - support for reading IDE ATAPI cdrom drives (NEC,MITSUMI,VERTOS,SONY) - support for audio functions - auto-detection of interfaces, drives, IRQs, and disk geometries - "single" drives should be jumpered as "master", not "slave" -NEW! (both are now probed for) + (both are now probed for) - support for BIOSs which report "more than 16 heads" on disk drives - uses LBA (slightly faster) on disk drives which support it - support for lots of fancy (E)IDE drive functions with hdparm utility @@ -32,45 +33,44 @@ - improved handshaking and error detection/recovery - can co-exist with hd.c controlling the first interface - run-time selectable 32bit interface support (using hdparm-2.3) -NEW! - support for reliable operation of buggy RZ1000 interfaces + - support for reliable operation of buggy RZ1000 interfaces - PCI support is automatic when rz1000 support is configured -NEW! - support for reliable operation of buggy CMD-640 interfaces + - support for reliable operation of buggy CMD-640 interfaces - PCI support is automatic when cmd640 support is configured - for VLB, use kernel command line option: ide0=cmd640_vlb - this support also enables the secondary i/f when needed - interface PIO timing & prefetch parameter support -NEW! - experimental support for UMC 8672 interfaces -NEW! - support for secondary interface on the FGI/Holtek HT-6560B VLB i/f + - experimental support for UMC 8672 interfaces + - support for secondary interface on the FGI/Holtek HT-6560B VLB i/f - use kernel command line option: ide0=ht6560 -NEW! - experimental support for various IDE chipsets + - experimental support for various IDE chipsets - use appropriate kernel command line option from list below -NEW! - support for drives with a stuck WRERR_STAT bit -NEW! - support for removable devices, including door lock/unlock -NEW! - transparent support for DiskManager 6.0x and "Dynamic Disk Overlay" + - support for drives with a stuck WRERR_STAT bit + - support for removable devices, including door lock/unlock + - transparent support for DiskManager 6.0x and "Dynamic Disk Overlay" - works with Linux fdisk, LILO, loadlin, bootln, etc.. -NEW! - mostly transparent support for EZ-Drive disk translation software -NEW! - to use LILO with EZ, install LILO on the linux partition + - mostly transparent support for EZ-Drive disk translation software + - to use LILO with EZ, install LILO on the linux partition rather than on the master boot record, and then mark the linux partition as "bootable" or "active" using fdisk. (courtesy of Juha Laiho ). -NEW! - auto-detect of disk translations by examining partition table -NEW! - ide-cd.c now compiles separate from ide.c -NEW! - Bus-Master DMA support for Intel PCI Triton chipset IDE interfaces + - auto-detect of disk translations by examining partition table + - ide-cd.c now compiles separate from ide.c + - Bus-Master DMA support for Intel PCI Triton chipset IDE interfaces - for details, see comments at top of triton.c -NEW! - ide-cd.c now supports door locking and auto-loading. + - ide-cd.c now supports door locking and auto-loading. - Also preliminary support for multisession and direct reads of audio data. -NEW! - experimental support for Promise DC4030VL caching interface card -NEW! - email thanks/problems to: peterd@pnd-pc.demon.co.uk -NEW! - the hdparm-3.1 package can be used to set PIO modes for some chipsets. - -For work in progress, see the comments in ide.c, ide-cd.c, and triton.c. - -Note that there is now a group actively working on support for the Promise -caching IDE cards, such as the DC4030VL, and early results are encouraging. -Look for this support to be added to the kernel soon. + - experimental support for Promise DC4030VL caching interface card + - email thanks/problems to: peterd@pnd-pc.demon.co.uk + - the hdparm-3.1 package can be used to set PIO modes for some chipsets. +NEW! - support for the OPTi 82C621 chipset, courtesy of Jaromir Koutek. +NEW! - support for loadable modules +NEW! - optional SCSI host adapter emulation for ATAPI devices +For work in progress, see the comments in ide.c, ide-cd.c, triton.c, ... + *** IMPORTANT NOTICES: BUGGY IDE CHIPSETS CAN CORRUPT DATA!! *** ================= *** PCI versions of the CMD640 and RZ1000 interfaces are now detected @@ -111,12 +111,12 @@ Apparently many releases of Slackware 2.2/2.3 have incorrect entries in /dev for hdc* and hdd* -- this can also be corrected by running MAKEDEV.ide -ide.c automatically probes for the primary and secondary interfaces, +ide.c automatically probes for the standard four IDE interfaces, for the drives/geometries attached to those interfaces, and for the -IRQ numbers being used by the interfaces (normally IRQ14 & IRQ15). +IRQ numbers being used by the interfaces (normally 14, 15, 11 and 10). -Interfaces beyond the first two are not normally probed for, but may be -specified using kernel "command line" options. For example, +For special cases, interfaces may be specified using kernel "command line" +options. For example, ide3=0x168,0x36e,10 /* ioports 0x168-0x16f,0x36e, irq 10 */ @@ -235,6 +235,25 @@ under control of ide.c. To have ide.c also "take over" the primary IDE port in this situation, use the "command line" parameter: ide0=0x1f0 +The IDE driver is partly modularized. The high level disk/cdrom/tape/floppy +drivers can always be compiled as loadable modules, the chipset drivers +can only be compiled into the kernel, and the core code (ide.c) can be +compiled as a loadable module provided no chipset support and no special +partition table translations are needed. + +When using ide.c/ide-tape.c as modules in combination with kerneld, add: + + alias block-major-3 ide-probe + alias char-major-37 ide-tape + +respectively to /etc/conf.modules. + +When ide.c is used as a module, you can pass command line parameters to the +driver using the "options=" keyword to insmod, while replacing any ',' with +';'. For example: + + insmod ide.o options="ide0=serialize ide2=0x1e8;0x3ee;11" + mlord@pobox.com snyder@fnald0.fnal.gov ================================================================================ @@ -257,8 +276,9 @@ older/odd IDE drives. "hdx=slow" : insert a huge pause after each access to the data port. Should be used only as a last resort. + "hdx=swapdata" : when the drive is a disk, byte swap all data - "idebus=xx" : inform IDE driver of VESA/PCI bus speed in Mhz, + "idebus=xx" : inform IDE driver of VESA/PCI bus speed in MHz, where "xx" is between 20 and 66 inclusive, used when tuning chipset PIO modes. For PCI bus, 25 is correct for a P75 system, @@ -284,6 +304,7 @@ This is the default for most chipsets, except the cmd640. "idex=serialize" : do not overlap operations on idex and ide(x^1) + "idex=reset" : reset interface after probe The following are valid ONLY on ide0, and the defaults for the base,ctl ports must not be altered. @@ -311,7 +332,7 @@ beyond the basics. When purchasing a localbus IDE interface, avoid cards with an onboard BIOS and those which require special drivers. Instead, look for a card which uses hardware switches/jumpers to select the interface timing speed, -to allow much faster data transfers than the original 8Mhz ISA bus allows. +to allow much faster data transfers than the original 8MHz ISA bus allows. ATA = AT (the old IBM 286 computer) Attachment Interface, a draft American National Standard for connecting hard drives to PCs. This is the official @@ -431,10 +452,10 @@ 0. Boot from the "boot floppy" created during the installation 1. Mount your DOS partition as /dos (and stick it in /etc/fstab) - 2. Move your kernel (/vmlinuz) to /dos/vmlinuz with: mv /vmlinuz /dos - 3. Edit /etc/lilo.conf to change /vmlinuz to /dos/vmlinuz - 4. Move /boot to /dos/boot with: cp -a /boot /dos ; rm -r /boot - 5. Create a symlink for LILO to use with: ln -s /dos/boot /boot + 2. Move /boot to /dos/boot with: cp -a /boot /dos ; rm -r /boot + 3. Create a symlink for LILO to use with: ln -s /dos/boot /boot + 4. Move your kernel (/vmlinuz) to /boot/vmlinuz: mv /vmlinuz /boot + 5. Edit /etc/lilo.conf to change /vmlinuz to /boot/vmlinuz 6. Re-run LILO with: lilo A danger with this approach is that whenever an MS-DOS "defragmentation" diff -ur --new-file old/linux/Documentation/ioctl-number.txt new/linux/Documentation/ioctl-number.txt --- old/linux/Documentation/ioctl-number.txt Sat Aug 10 09:03:14 1996 +++ new/linux/Documentation/ioctl-number.txt Mon Apr 7 23:17:09 1997 @@ -1,7 +1,7 @@ Ioctl Numbers -6 Aug 1996 +5 Apr 1997 Michael Chastain - + If you are adding new ioctl's to the kernel, you should use the _IO macros defined in : @@ -21,8 +21,7 @@ or number from the table below. If you are writing a driver for a new device and need a letter, pick an unused letter. You can register the letter by patching this file and submitting the patch to Linus Torvalds. -Or you can e-mail me at and I'll register one -for you. +Or you can e-mail me at and I'll register one for you. The second argument to _IO, _IOW, _IOR, or _IOWR is a sequence number to distinguish ioctls from each other. The third argument is the size @@ -51,7 +50,7 @@ code to call verify_area to validate parameters. This table lists ioctls visible from user land for Linux/i386. It is -current to Linux 2.0.11. +current to Linux 2.1.15. Code Seq# Include File Comments ======================================================== @@ -64,10 +63,8 @@ 0x09 all linux/md.h 0x12 all linux/fs.h 0x20 all linux/cm206.h -0x22 all linux/scc.h conflict! (version 2.01 of z8530drv) -0x22 all scsi/sg.h conflict! +0x22 all scsi/sg.h 'A' all linux/apm_bios.h -'B' all linux/baycom.h 'C' all linux/soundcard.h 'F' all linux/fb.h 'I' all linux/isdn.h @@ -84,12 +81,16 @@ 'T' all linux/soundcard.h conflict! 'T' all asm-i386/ioctls.h conflict! 'V' all linux/vt.h -'W' 00-1F linux/pcwd.h +'W' 00-1F linux/router.h conflict [Please reallocate] +'W' 00-1F linux/watchdog.h +'W' 20-27 linux/octal-relay.h in development +'W' 28-2F linux/iso16-relay.h in development 'Y' all linux/cyclades.h -'Z' all linux/scc.h version 2.2 of z8530drv 'a' all various, see http://lrcwww.epfl.ch/linux-atm/magic.html 'c' all linux/comstats.h 'f' all linux/ext2_fs.h +'l' 00-3F linux/tcfs_fs.h in development: + 'm' all linux/mtio.h conflict! 'm' all linux/soundcard.h conflict! 'n' all linux/ncp_fs.h @@ -100,7 +101,16 @@ 't' 80-8F linux/isdn_ppp.h 'u' all linux/smb_fs.h 'v' all linux/ext2_fs.h -'w' all CERN SCI driver (in development) +'w' all CERN SCI driver in development 0x89 00-0F asm-i386/sockios.h -0x89 10-FF linux/sockios.h +0x89 10-DF linux/sockios.h +0x89 E0-EF linux/sockios.h SIOCPROTOPRIVATE range +0x89 F0-FF linux/sockios.h SIOCDEVPRIVATE range +0x8B all linux/wireless.h +0x8C 00-3F WiNRADiO driver in development: + 0x90 00 linux/sbpcd.h +0x99 00-0F 537-Addinboard driver in development: + +0xA0 all Small Device Project in development: + diff -ur --new-file old/linux/Documentation/isdn/CREDITS new/linux/Documentation/isdn/CREDITS --- old/linux/Documentation/isdn/CREDITS Sun Apr 21 10:56:13 1996 +++ new/linux/Documentation/isdn/CREDITS Wed Feb 26 02:12:49 1997 @@ -12,11 +12,18 @@ For contribution of man-pages, the imontty-tool and a perfect maintaining of the mailing-list at hub-wue. +Bernhard Hailer (Bernhard.Hailer@lrz.uni-muenchen.de) + For maintaining the FAQ. + +Michael 'Ghandi' Herold (michael@abadonna.franken.de) + For contribution of the vbox answering machine. + Michael Hipp (Michael.Hipp@student.uni-tuebingen.de) For his Sync-PPP-code. Karsten Keil (isdn4@temic-ech.spacenet.de) For adding 1TR6-support to the Teles-driver. + For the HiSax-driver. Michael Knigge (knick@cove.han.de) For contributing the imon-tool @@ -39,7 +46,7 @@ Gerhard 'Fido' Schneider (fido@wuff.franken.de) For heavy-duty-beta-testing with his BBS ;) -Thomas Uhl (uhl@hn-net.de) +Thomas Uhl (uhl@think.de) For distributing the cards. For pushing me to work ;-) diff -ur --new-file old/linux/Documentation/isdn/INTERFACE new/linux/Documentation/isdn/INTERFACE --- old/linux/Documentation/isdn/INTERFACE Sat Jun 29 19:36:22 1996 +++ new/linux/Documentation/isdn/INTERFACE Wed Feb 26 02:12:49 1997 @@ -1,4 +1,4 @@ -$Id: INTERFACE,v 1.3 1996/06/25 17:52:41 fritz Exp $ +$Id: INTERFACE,v 1.6 1997/02/10 22:40:57 fritz Exp $ Description of the Interface between Linklevel and Hardwarelevel of isdn4linux: @@ -140,7 +140,7 @@ int (*writebuf)(int, int, u_char*, int, int); - ***CHANGEc1.14: Declared obsolete. Do NOT use this field/function + ***CHANGED1.14: Declared obsolete. Do NOT use this field/function anymore, since it will be removed when all current LL drivers have been changed accordingly. Set this field to NULL and use writebuf_skb instead. @@ -199,7 +199,7 @@ int driver-Id. int channel-number locally to the HL-driver. (starts with 0) -***CHANGEc1.14: The driver-Id and channel-number are new since this revision. +***CHANGED1.14: The driver-Id and channel-number are new since this revision. Returnvalue: Length of data accepted on success, else error-code (-EINVAL etc.) @@ -223,7 +223,7 @@ int driver-Id. int channel-number locally to the HL-driver. (starts with 0) -***CHANGEc1.14: The driver-Id and channel-number are new since this revision. +***CHANGED1.14: The driver-Id and channel-number are new since this revision. Returnvalue: Length of data on success, else error-code (-EINVAL etc.) @@ -249,6 +249,9 @@ Until now, the following commands are defined: +***CHANGED1.34: The parameter "num" has been replaced by a union "para" containing + the old "num" and a new setup_type struct used for ISDN_CMD_DIAL + and ISDN_STAT_ICALL callback. ISDN_CMD_IOCTL: @@ -262,10 +265,10 @@ called with the field command set to 1. Parameter: - driver = driver-Id. - command = ISDN_CMD_IOCTL - arg = Original ioctl-cmd - IIOCDRVCTL - num = first bytes filled with (unsigned long)arg + driver = driver-Id. + command = ISDN_CMD_IOCTL + arg = Original ioctl-cmd - IIOCDRVCTL + para.num = first bytes filled with (unsigned long)arg Returnvalue: Depending on driver. @@ -280,12 +283,14 @@ driver = driver-Id. command = ISDN_CMD_DIAL arg = channel-number locally to the driver. (starting with 0) - num = An ASCII-String containing the number to dial, the own - EAZ or MSN, the Service-Indicator and the Additional - Info. Format: - "%s,%s,%d,%d" RemotePhoneNumber,EazOrMsn,SI,AI + + para.setup.phone = An ASCII-String containing the number to dial. + para.setup.eazmsn = An ASCII-Sting containing the own EAZ or MSN. + para.setup.si1 = The Service-Indicator. + para.setup.si2 = Additional Service-Indicator. + If the Line has been designed as SPV (a special german - feature, meaning semi-leased-line) the number has to + feature, meaning semi-leased-line) the phone has to start with an "S". ***CHANGE0.6: In previous versions the EAZ has been given in the highbyte of arg. @@ -300,7 +305,7 @@ driver = driver-Id. command = ISDN_CMD_ACCEPTD arg = channel-number locally to the driver. (starting with 0) - num = unused. + para = unused. ISDN_CMD_ACCEPTB: @@ -311,7 +316,7 @@ driver = driver-Id. command = ISDN_CMD_ACCEPTB arg = channel-number locally to the driver. (starting with 0) - num = unused. + para = unused. ISDN_CMD_HANGUP: @@ -323,7 +328,7 @@ driver = driver-Id. command = ISDN_CMD_HANGUP arg = channel-number locally to the driver. (starting with 0) - num = unused. + para = unused. ISDN_CMD_CLREAZ: @@ -334,7 +339,7 @@ driver = driver-Id. command = ISDN_CMD_CLREAZ arg = channel-number locally to the driver. (starting with 0) - num = unused. + para = unused. ISDN_CMD_SETEAZ: @@ -345,7 +350,7 @@ driver = driver-Id. command = ISDN_CMD_SETEAZ arg = channel-number locally to the driver. (starting with 0) - num = ASCII-String, containing the desired EAZ's/MSN's + para.num = ASCII-String, containing the desired EAZ's/MSN's (comma-separated). If an empty String is given, the HL-driver should respond to ALL incoming calls, regardless of the destination-address. @@ -360,7 +365,7 @@ driver = driver-Id. command = ISDN_CMD_GETEAZ arg = channel-number locally to the driver. (starting with 0) - num = ASCII-String, containing the current EAZ's/MSN's + para.num = ASCII-String, containing the current EAZ's/MSN's ISDN_CMD_SETSIL: (currently unused) @@ -371,7 +376,7 @@ driver = driver-Id. command = ISDN_CMD_SETSIL arg = channel-number locally to the driver. (starting with 0) - num = ASCII-String, containing the desired Service-Indicators. + para.num = ASCII-String, containing the desired Service-Indicators. ISDN_CMD_GETSIL: (currently unused) @@ -382,7 +387,7 @@ driver = driver-Id. command = ISDN_CMD_SETSIL arg = channel-number locally to the driver. (starting with 0) - num = ASCII-String, containing the current Service-Indicators. + para.num = ASCII-String, containing the current Service-Indicators. ISDN_CMD_SETL2: @@ -397,7 +402,7 @@ arg = channel-number locally to the driver. (starting with 0) logical or'ed with (protocol-Id << 8) protocol-Id is one of the constants ISDN_PROTO_L2... - num = unused. + para = unused. ISDN_CMD_GETL2: (currently unused) @@ -408,7 +413,7 @@ driver = driver-Id. command = ISDN_CMD_GETL2 arg = channel-number locally to the driver. (starting with 0) - num = unused. + para = unused. Returnvalue: current protocol-Id (one of the constants ISDN_L2_PROTO) @@ -425,7 +430,7 @@ arg = channel-number locally to the driver. (starting with 0) logical or'ed with (protocol-Id << 8) protocol-Id is one of the constants ISDN_PROTO_L3... - num = unused. + para = unused. ISDN_CMD_GETL2: (currently unused) @@ -436,7 +441,7 @@ driver = driver-Id. command = ISDN_CMD_GETL3 arg = channel-number locally to the driver. (starting with 0) - num = unused. + para = unused. Returnvalue: current protocol-Id (one of the constants ISDN_L3_PROTO) @@ -450,7 +455,7 @@ driver = driver-Id. command = ISDN_CMD_LOCK arg = unused. - num = unused. + para = unused. ISDN_CMD_UNLOCK: @@ -462,7 +467,7 @@ driver = driver-Id. command = ISDN_CMD_UNLOCK arg = unused. - num = unused. + para = unused. 3. Description of the events to be signaled by the HL-driver to th LL. @@ -484,19 +489,29 @@ driver = driver-Id command = ISDN_STAT_STAVAIL arg = length of available data. - num = unused. + para = unused. ISDN_STAT_ICALL: With this call, the HL-driver signals an incoming call to the LL. Parameter: - driver = driver-Id - command = ISDN_STAT_ICALL - arg = channel-number, locally to the driver. (starting with 0) - num = ASCII-String in the following format: - "%s,%d,%d,%s",CallerNumber,ServiceIndicator,AddInfo, - CalledNumber. + driver = driver-Id + command = ISDN_STAT_ICALL + arg = channel-number, locally to the driver. (starting with 0) + para.setup.phone = Callernumber. + para.setup.eazmsn = CalledNumber. + para.setup.si1 = Service Indicator. + para.setup.si2 = Additional Service Indicator. + para.setup.plan = octet 3 from Calling party number Information Element. + para.setup.screen = octet 3a from Calling party number Information Element. + + Return: + 0 = No device matching this call. + 1 = At least one device matching this call (RING on ttyI). + HL-driver may send ALERTING on the D-channel in this case. + 2 = Call will be rejected. + -1 = An error happened. (Invalid parameters for example.) ISDN_STAT_RUN: @@ -507,7 +522,7 @@ driver = driver-Id command = ISDN_STAT_RUN arg = unused. - num = unused. + para = unused. ISDN_STAT_STOP: @@ -518,7 +533,7 @@ driver = driver-Id command = ISDN_STAT_STOP arg = unused. - num = unused. + para = unused. ISDN_STAT_DCONN: @@ -529,7 +544,7 @@ driver = driver-Id command = ISDN_STAT_DCONN arg = channel-number, locally to the driver. (starting with 0) - num = unused. + para = unused. ISDN_STAT_BCONN: @@ -541,7 +556,7 @@ driver = driver-Id command = ISDN_STAT_BCONN arg = channel-number, locally to the driver. (starting with 0) - num = unused. + para = unused. ISDN_STAT_DHUP: @@ -554,7 +569,7 @@ driver = driver-Id command = ISDN_STAT_DHUP arg = channel-number, locally to the driver. (starting with 0) - num = unused. + para = unused. ISDN_STAT_BHUP: @@ -566,7 +581,7 @@ driver = driver-Id command = ISDN_STAT_BHUP arg = channel-number, locally to the driver. (starting with 0) - num = unused. + para = unused. ISDN_STAT_CINF: @@ -577,7 +592,7 @@ driver = driver-Id command = ISDN_STAT_CINF arg = channel-number, locally to the driver. (starting with 0) - num = ASCII string containing charge-units (digits only). + para.num = ASCII string containing charge-units (digits only). ISDN_STAT_LOAD: (currently unused) @@ -590,7 +605,7 @@ driver = driver-Id command = ISDN_STAT_UNLOAD arg = unused. - num = unused. + para = unused. ISDN_STAT_BSENT: @@ -602,7 +617,7 @@ driver = driver-Id command = ISDN_STAT_BSENT arg = channel-number, locally to the driver. (starting with 0) - num = unused. + para = unused. ISDN_STAT_NODCH: @@ -613,7 +628,7 @@ driver = driver-Id command = ISDN_STAT_NODCH arg = channel-number, locally to the driver. (starting with 0) - num = unused. + para = unused. ISDN_STAT_ADDCH: (currently unused) @@ -627,7 +642,7 @@ driver = driver-Id command = ISDN_STAT_ADDCH arg = to be defined. - num = to be defined. + para = to be defined. ISDN_STAT_CAUSE: @@ -640,5 +655,5 @@ driver = driver-Id command = ISDN_STAT_NODCH arg = channel-number, locally to the driver. (starting with 0) - num = ASCII string containing CAUSE-message. + para.num = ASCII string containing CAUSE-message. diff -ur --new-file old/linux/Documentation/isdn/README new/linux/Documentation/isdn/README --- old/linux/Documentation/isdn/README Fri Jun 7 15:02:39 1996 +++ new/linux/Documentation/isdn/README Wed Feb 26 02:12:49 1997 @@ -27,7 +27,14 @@ subscribe isdn4linux To write to the mailing-list, write to isdn4linux@hub-wue.franken.de + + This mailinglist is bidirectionally gated to the newsgroup + + de.alt.comm.isdn4linux + There is also a well maintained FAQ (both english and german) available + at ftp.franken.de in /pub/isdn4linux/FAQ/ + This FAQ is also available at http://www.lrz-muenchen.de/~ui161ab/www/isdn/ 1.1 Technical details @@ -89,6 +96,7 @@ ATI Return "ISDN for Linux...". ATI0 " ATI1 " + ATI2 Report of last connection. ATO On line (data mode). ATQ0 Enable result codes (default). ATQ1 Disable result codes (default). @@ -173,6 +181,10 @@ 1 = T.70 protocol (Only for BTX!) on Bit 2: 0 = Don't hangup on DTR low. 1 = Hangup on DTR low. + Bit 3: 0 = Standard response messages + 1 = Extended response messages + Bit 4: 0 = CALLER NUMBER before every RING. + 1 = CALLER NUMBER after first RING. 14 0 Layer-2 protocol: 0 = X75/LAPB with I-frames 1 = X75/LAPB with UI-frames @@ -201,6 +213,14 @@ 20 0 Bit coded register (readonly) Service-Octet-1 of last call. Bit mapping is the same like register 18 + 21 0 Bit coded register (readonly) + Set on incoming call (during RING) to + octet 3 of calling party number IE (Numbering plan) + See section 4.5.10 of ITU Q.931 + 22 0 Bit coded register (readonly) + Set on incoming call (during RING) to + octet 3a of calling party number IE (Screening info) + See section 4.5.10 of ITU Q.931 Last but not least a (at the moment fairly primitive) device to request the line-status (/dev/isdninfo) is made available. @@ -243,16 +263,11 @@ 2 System prerequisites: - ATTENTION! The program "insmod" from the Package "modules-1.2.8" (It's - on nearly all newer distributions) has a bug, which makes - it impossible to set both driver-Id's when loading the - icn-module for the Double-ICN-Card. A patch is supplied - in the utility-package called "insmod-1.2.8.patch". Change into - the source-directory of insmod, and type - "patch < insmod-1.2.8.patch". Then recompile it. This will fix - the bug. - This bug does NOT occur when using insmod with the Teles-driver - or a single ICN-card. + ATTENTION! + + Always use the latest module utilities. The current version is + named in Documentation/Changes. Some old versions of insmod + are not capable of setting the driver-Ids correctly. 3. Lowlevel-driver configuration. diff -ur --new-file old/linux/Documentation/isdn/README.HiSax new/linux/Documentation/isdn/README.HiSax --- old/linux/Documentation/isdn/README.HiSax Thu Jan 1 01:00:00 1970 +++ new/linux/Documentation/isdn/README.HiSax Wed Feb 26 02:12:49 1997 @@ -0,0 +1,343 @@ +HiSax is a Linux hardware level driver for passive ISDN cards with Siemens +chipset (ISAC_S 2085/2086/2186 HSCX SAB 82525). It is based on the Teles +driver from Jan den Ouden. +It is meant to be used with isdn4linux, an ISDN Link-level module for Linux +written by Fritz Elfert. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + + +Supported Cards +--------------- + +Teles 8.0/16.0/16.3 and compatible +Teles S0/PCMCIA +Creatix PnP S0 +AVM A1 (Fritz) +ELSA Microlink PCC-16 PCF PCF-Pro PCC-8 +ELSA Quickstep 1000 +ITK ix1-micro Rev.2 + +Note: PCF PCF-Pro only the ISDN part is supported yet + PCC-8 not tested yet + Teles PCMCIA is EXPERIMENTAL + +If you know other passive cards with the Siemens chipset, please let me know. +To use the PNP cards you need the isapnptools. + + +Configuring the Driver +---------------------- + +The driver can be build direct into the kernel or as module. +The HiSax driver can be configured using the command line feature +while loading the kernel with LILO or LOADLIN or, if built as a module, +using insmod/modprobe with parameters. +Please note: All PnP cards need config with isapnp and will work only as +module. + +As Module +--------- + +insmod/modprobe hisax.o \ + io=iobase irq=IRQ mem=membase type=card_type \ + protocol=D_channel_protocol id=idstring + +or, if several cards are installed: + +insmod/modprobe hisax.o \ + io=iobase1,iobase2,... mem=membase1,membase2,... \ + type=card_type1,card_type2,... \ + protocol=D_channel_protocol1,D_channel_protocol2,... \ + id=idstring1%idstring2 ... + +where iobaseN = io base address of the Nth card, membaseN = memory +base address of the Nth card, etc. +The reason for the delimiter "%" in the idstrings is that "," won't +work with the current modules package. + +The parameters can be specified in any order. For example, the io +parameter can precede the irq parameter, or vice versa. If several +cards are installed the ordering within the comma separated parameter +lists must be consistent, of course. + +Only parameters applicable to the card type need be specified. For +example, the Teles 16.3 card is not memory mapped, so the mem +parameter may be omitted for a Teles 16.3. Sometimes it is necessary +to specify a dummy parameter, however. This is the case when there is +a card of a different type later in the list that needs a parameter +which the preceding card does not. For instance, if a Teles 16.0 card +is listed after a Teles 16.3 card, a dummy mem=0 parameter must be +specified for the 16.3. Instead of a dummy value, the parameter can +also be skipped by simply omitting the value. For example: +mem=,0xd0000. See example 6 below. +The protocol parameter for the D-channel may be omittedprotocol may be +omitted, if you select the correct one during kernel config. +Valid values are 1 for german 1TR6, 2 for DSS1 (EURO) and 3 for leased lines +(no D-channel). + +The Creatix/Teles PnP cards uses io1= and io2= instead of io= for specifying +the I/O addresses of the ISAC and HSCX chips, respectively. + +Card types: + + Type Required parameters (in addition to type and protocol) + + 1 Teles 16.0 irq, mem, io + 2 Teles 8.0 irq, mem + 3 Teles 16.3 (non PnP) irq, io + 4 Creatix/Teles PnP irq, io0 (ISAC), io1 (HSCX) + 5 AVM A1 (Fritz) irq, io + 6 ELSA PCC/PCF cards io or nothing for autodetect (the iobase is + only required, if you have more than one ELSA + card in your PC) + 7 ELSA Quickstep 1000 irq, io (from isapnp setup) + 8 Teles 16.3 PCMCIA irq, io + 9 ITK ix1-micro Rev.2 irq, io + +At the moment IRQ sharing is not possible. Please make sure that your IRQ +is free and enabled for ISA use. + +Examples for module loading + +1. Teles 16.3, Euro ISDN, I/O base 280 hex, IRQ 10 + modprobe hisax type=3 protocol=2 io=0x280 irq=10 + +2. Teles 16.0, 1TR6 ISDN, I/O base d80 hex, IRQ 5, Memory d0000 hex + modprobe hisax protocol=1 type=1 io=0xd80 mem=0xd0000 irq=5 + +3. Fritzcard, Euro ISDN, I/O base 340 hex, IRQ 10 and ELSA PCF, Euro ISDN + modprobe hisax type=5,6 protocol=2,2 io=0x340 irq=10 id=Fritz%Elsa + +4. Any ELSA PCC/PCF card Euro ISDN + modprobe hisax type=6 protocol=2 + +5. Teles 16.3 PnP, Euro ISDN, with isapnp configured + isapnp config: (INT 0 (IRQ 10 (MODE +E))) + (IO 0 (BASE 0x0580)) + (IO 1 (BASE 0x0180)) + modprobe hisax type=4 protocol=2 io0=0x580 io1=0x180 + +6. Teles 16.3, Euro ISDN, I/O base 280 hex, IRQ 12 and + Teles 16.0, 1TR6, IRQ 5, Memory d0000 hex + modprobe hisax type=3,1 protocol=2,1 io=0x280 mem=0,0xd0000 + + Please note the dummy 0 memory address for the Teles 16.3 in the last + example as placeholder. + +7. Teles PCMCIA EURO 180 hex IRQ 15 (default values) + modprobe hisax type=8 protocol=2 io=0x180 irq=15 + + +LILO/LOADLIN with driver compiled direct into the kernel: + +hisax=typ1,dp1,pa_1,pb_1,pc_1[,typ2,dp2,pa_2 ... \ + typn,dpn,pa_n,pb_n,pc_n][,idstring1[,idstring2,...,idstringn]] + +where + typ1 = Cardtype of 1st card. (default: depends on kernel settings) + dp1 = D-channel protocol of 1st card. 1=1TR6, 2=EDSS1, 3=leased + pa_1 = 1. parameter (depend on the cardtype) + pb_1 = 2. parameter (depend on the cardtype) + pc_1 = 3. parameter (depend on the cardtype) + + typ2,dp2,pa_2,pb_2,pc_2 = Parameters of second card (defaults: none) + typn,dpn,pa_n,pb_n,pc_n = Parameters of n'th card (up to 16 cards are supported) + + idstring = Driver-Id for accessing with utilities and identification + when using a Line-monitor. (default: HiSax) + idstring must start with a character! + +Card types: + + typ + 1 Teles 16.0 pa=irq pb=membase pc=iobase + 2 Teles 8.0 pa=irq pb=membase + 3 Teles 16.3 pa=irq pb=iobase + 4 Creatix/Teles PNP ONLY WORK AS MODULE ! + 5 AVM A1 (Fritz) pa=irq pb=iobase + 6 ELSA PCC/PCF cards pa=iobase or nothing for autodetect + 7 ELSA Quickstep 1000 ONLY WORK AS MODULE ! + 8 Teles S0 PCMCIA pa=irq pb=iobase + 9 ITK ix1-micro Rev.2 pa=irq pb=iobase + + +Running +------- + +When you insmod isdn.o and hisax.o (or with the kernel-version, during +boottime) a few lines should appear in your syslog. Look for something like: + +Oct 13 20:46:39 kke01 kernel: ISDN subsystem Rev: 1.23/1.21/1.18/1.13/none loaded +Oct 13 20:46:41 kke01 kernel: HiSax: Driver for Siemens Chipset ISDN cards +Oct 13 20:46:41 kke01 kernel: HiSax: Revision (1.3) +Oct 13 20:46:41 kke01 kernel: HiSax: Total 1 card defined +Oct 13 20:46:41 kke01 kernel: HiSax: Card 1 Protocol EDSS1 +... +Oct 13 20:46:41 kke01 kernel: Elsa: PCC16 found at 0x360 Rev.:B IRQ 9 +... +Oct 13 20:46:41 kke01 kernel: HiSax: 2 channels available +Oct 13 20:46:41 kke01 kernel: HiSax: module installed + +This means that the card is ready for use. +Cabling problems or line downs are not detected, ELSA can detect the +S0 power. + +Remember, that according to the new strategy for accessing Low-level-drivers +from within isdn4linux you should also define a driver-id while doing +insmod: Simply append hisax_id= to the insmod-commandline. This +string MUST NOT start with a digit or a small 'x'! + +At this point you can run a 'cat /dev/isdnctrl0' and view debugging +messages. +In the moment debugging messages are enabled with the telesctrl tool : + + telesctrl DebugCmd + + default is HiSax, if you didn't specified one. + +DebugCmd is 1 for generic Debug + 11 for Layer 1 development Debug + 13 for Layer 3 development Debug + +where is the integer sum of the following debugging +options you wish enabled: + +With DebugCmd 1 is + + 1 Link-level <--> Hardware-level communication + 2 Top state machine + 4 D channel Q.931 (call control messages) + 8 D channel Q.921 + 16 B channel X.75 + 32 D channel l2 + 64 B channel l2 + 128 D-Channel link state debug + 256 B-Channel link state debug + 512 Tei debug + 1024 LOCK debug in callc.c + +With DebugCmd 11 is + + 1 Warnings (default on) + 2 Irq Status + 4 Isac + 8 Isac fifo + 16 Hscx + 32 Hscx fifo (attention full B-channel output) + 64 D-channel LAPD frame types + +With DebugCmd 13 is + + 1 Warnings (default on) + 2 l3 protocol discriptor errors + 4 l3 stat machine + 8 charge info debug (1TR6) + +For example 'telesctrl HiSax 1 0x3ff' enables full generic debugging. + + + +Warning +------- +HiSax is a work in progress and may crash your machine. It has not been +certified and therefore operation on your PTT's ISDN network is probably +illegal. + +Limitations +----------- +HiSax only works on Euro ISDN lines and german 1TR6-lines.(in this time) + +Bugs +---- +If you find any please let me know. + +Thanks +------ +Special thanks to: + + Emil Stephan for the name HiSax which is a mix of HSCX and ISAC. + + Fritz Elfert, Jan den Ouden, Michael Hipp, Michael Wein, + Andreas Kool, Pekka Sarnila, Sim Yskes, Johan Myrre'en, + Klaus-Peter Nischke (ITK AG), Christof Petig, Werner Fehn (Elsa GmbH), + Volker Schmidt + and more people, who are hunting bugs (If I forgot somebody, please + send me a mail). + + Firma ELSA GmbH + + My girl friend and partner in life Ute for her patience with me + + +Enjoy, + +Karsten Keil +keil@temic-ech.spacenet.de + +Appendix: PCMCIA driver +----------------------- + +Up to now, the Teles PCMCIA driver is a complete hack. I had no +documentation about the card - it might destroy your hardware (though mine +at last works fine). + +Second I'm working on a module for linux pcmcia services, this version +clearly assumes some (unrealistic) facts about your hardware: + - you MUST have an i82365 + - Teles PCMCIA MUST be in slot 0 (the upper one) and the ONLY card + (since you can't use cardmgr, there's no use for a second one) + - ports 0x180-0x1e0 must be free, it uses IRQ 15 + +The following program will initialize the PCMCIA chip to the values I probed +inside Windows95 (native Teles driver). + +------------------telesinit.c----------------------------------------- +/* telesinit.c, compile with + * gcc -O -o telesinit telesinit.c + */ +#include +#define inportb(x) inb(x) +#define outportb(x,v) outb(v,x) +#define BASE 0x180 +#define NUM 97 +#define CARD 0x3e0 +#define i365(x) ( outportb(CARD,x), inportb(CARD+1) ) +#define i365w(x,y) ( outportb(CARD,x), outportb(CARD+1,y) ) + +void main(int argc,char **argv) +{ int i; + static unsigned char i365_cont[]= + { 0x83,0x7f,0xf5,0x6f, 0x00,0x08,0x60,0x00, + 0x80,0x01,0xe0,0x01, 0xff,0xff,0xff,0xff, + 0xd0,0x00,0xd0,0x00, 0x30,0x7f,0x00,0x0f, + 0xff,0x07,0xff,0x07, 0x00,0x00,0x00,0xff + }; + + ioperm(BASE,NUM,1); ioperm(CARD,2,1); + for (i=0;i<32;i++) + { if (i365_cont[i]==i365(i)) continue; + outportb(CARD+1,i365_cont[i]); + } + + outportb(BASE+0x18,0x41); + /* enable the teles card and its IRQ */ + /* this was found by brute force */ +} +------------------------------------------------------------------------ + +If you want to wait for the PCMCIA services driver ... I finish my diploma +about end of February 1997 ... please be patient with me + Christof Petig (ea0141@uni-wuppertal.de) diff -ur --new-file old/linux/Documentation/isdn/README.audio new/linux/Documentation/isdn/README.audio --- old/linux/Documentation/isdn/README.audio Fri Jun 7 15:02:39 1996 +++ new/linux/Documentation/isdn/README.audio Wed Feb 26 02:12:49 1997 @@ -1,4 +1,4 @@ -$Id: README.audio,v 1.3 1996/06/05 02:19:36 fritz Exp $ +$Id: README.audio,v 1.4 1997/02/03 23:43:47 fritz Exp $ ISDN subsystem for Linux. Description of audio mode. @@ -86,8 +86,11 @@ starts sending audio data to the application. There are several escape sequences defined, all using DLE (0x10) as Escape char: - End of audio data. Emulator stops + End of audio data. (i.e. caused by a + hangup of the remote side) Emulator stops recording, responding with VCON. + Abort recording, (send by appl.) Emulator + stops recording, sends DLE,ETX. Escape sequence for DLE in data stream. 0 Touchtone "0" received. ... @@ -107,13 +110,16 @@ s silence. Silence detected from the start of recording. - Any character sent by the application, except XON (0x11) or XOFF (0x13) - immediately stops recording. - Audio playback. When sending audio data, upon AT+VTX command, emulator responds with CONNECT, and starts transferring data from application to the phone line. The same DLE sequences apply to this mode. + Full-Duplex-Audio: + + When _both_ commands for recording and playback are given in _one_ + AT-command-line (i.e.: "AT+VTX+VRX"), full-duplex-mode is selected. + In this mode, the only way to stop recording is sending + and the only way to stop playback is to send . diff -ur --new-file old/linux/Documentation/isdn/README.sc new/linux/Documentation/isdn/README.sc --- old/linux/Documentation/isdn/README.sc Thu Jan 1 01:00:00 1970 +++ new/linux/Documentation/isdn/README.sc Wed Feb 26 02:12:49 1997 @@ -0,0 +1,274 @@ +Welcome to Beta Release 2 of the combination ISDN driver for SpellCaster's +ISA ISDN adapters. Please note this release 2 includes support for the +DataCommute/BRI and TeleCommute/BRI adapters only and any other use is +guaranteed to fail. If you have a DataCommute/PRI installed in the test +computer, we recommend removing it as it will be detected but will not +be usable. To see what we have done to Beta Release 2, see section 3. + +Speaking of guarantees, THIS IS BETA SOFTWARE and as such contains +bugs and defects either known or unknown. Use this software at your own +risk. There is NO SUPPORT for this software. Some help may be available +through the web site or the mailing list but such support is totally at +our own option and without warrantee. If you choose to assume all and +total risk by using this driver, we encourage you to join the beta +mailing list. + +To join the Linux beta mailing list, send a message to: +majordomo@spellcast.com with the words "subscribe linux-beta" as the only +contents of the message. Do not include a signature. If you choose to +remove yourself from this list at a later date, send another message to +the same address with the words "unsubscribe linux-beta" as it's only +contents. + +TABLE OF CONTENTS +----------------- + 1. Introduction + 1.1 What is ISDN4Linux? + 1.2 What is different between this driver and previous drivers? + 1.3 How do I setup my system with the correct software to use + this driver release? + + 2. Basic Operations + 2.1 Unpacking and installing the driver + 2.2 Read the man pages!!! + 2.3 Installing the driver + 2.4 Removing the driver + 2.5 What to do if it doesn't load + 2.6 How to setup ISDN4Linux with the driver + + 3. Beta Change Summaries and Miscellaneous Notes + +1. Introduction +--------------- + +The revision 2 Linux driver for SpellCaster ISA ISDN adapters is built +upon ISDN4Linux available seperately or as included in Linux 2.0 and later. +The driver will support a maximum of 4 adapters in any one system of any +type including DataCommute/BRI, DataCommute/PRI and TeleCommute/BRI for a +maximum of 92 channels for host. The driver is supplied as a module in +source form and needs to be complied before it can be used. It has been +tested on Linux 2.0.20. + +1.1 What Is ISDN4Linux + +ISDN4Linux is a driver and set of tools used to access and use ISDN devices +on a Linux platform in a common and standard way. It supports HDLC and PPP +protocols and offers channel bundling and MLPPP support. To use ISDN4Linux +you need to configure your kernel for ISDN support and get the ISDN4Linux +tool kit from our web site. + +ISDN4Linux creates a channel pool from all of the available ISDN channels +and therefore can function across adapters. When an ISDN4Linux compliant +driver (such as ours) is loaded, all of the channels go into a pool and +are used on a first-come first-served basis. In addition, individual +channels can be specifically bound to particular interfaces. + +1.2 What is different between this driver and previous drivers? + +The revision 2 driver besides adopting the ISDN4Linux architecture has many +subtle and not so subtle functional differences from previous releases. These +include: + - More efficient shared memory management combined with a simpler + configuration. All adapters now use only 16Kbytes of shared RAM + versus between 16K and 64K. New methods for using the shared RAM + allow us to utilize all of the available RAM on the adapter through + only one 16K page. + - Better detection of available upper memory. The probing routines + have been improved to better detect avaialble shared RAM pages and + used pages are now locked. + - Decreased loading time and a wider range of I/O ports probed. + We have significantly reduced the amount of time it takes to load + the driver and at the same time doubled the number of I/O ports + probed increasing the likelyhood of finding an adapter. + - We now support all ISA adapter models with a single driver instead + of seperate drivers for each model. The revision 2 driver supports + the DataCommute/BRI, DataCommute/PRI and TeleCommute/BRI in any + combination up to a maximum of four adapters per system. + - On board PPP protocol support has been removed in favour of the + sync-PPP support used in ISDN4Linux. This means more control of + the protocol parameters, faster negotiation time and a more + familiar interface. + +1.3 How do I setup my system with the correct software to use + this driver release? + +Before you can compile, install and use the SpellCaster ISA ISDN driver, you +must ensure that the following software is installed, configuraed and running: + + - Linux kernel 2.0.20 or later with the required init and ps + versions. Please see your distribution vendor for the correct + utility packages. The latest kernel is available from + ftp://sunsite.unc.edu/pub/Linux/kernel/v2.0/ + + - The latest modules package (modules-2.0.0.tar.gz) from + ftp://sunsite.unc.edu/pub/Linux/kernel/modules-2.0.0.tar.gz + + - The ISDN4Linux tools available from + ftp://ftp.franken.de/pub/isdn4linux/v2.0/isdn4k-utils-2.0.tar.gz + This package may fail to compile for you so you can alternatively + get a pre-compiled version from + ftp://ftp.spellcast.com/pub/drivers/isdn4linux/isdn4k-bin-2.0.tar.gz + + +2. Basic Operations +------------------- + +2.1 Unpacking and installing the driver + + 1. As root, create a directory in a convienient place. We suggest + /usr/src/spellcaster. + + 2. Unpack the archive with : + tar xzf sc-n.nn.tar.gz -C /usr/src/spellcaster + + 3. Change directory to /usr/src/spellcaster + + 4. Read the README and RELNOTES files. + + 5. Run 'make' and if all goes well, run 'make install'. + +2.2 Read the man pages!!! + +Make sure you read the scctrl(8) and sc(4) manual pages before continuing +any further. Type 'man 8 scctrl' and 'man 4 sc'. + +2.3 Installing the driver + +To install the driver, type '/sbin/insmod sc' as root. sc(4) details options +you can specify but you shouldn't need to use any unless this doesn't work. + +Make sure the driver loaded and detected all of the adapters by typing +'dmesg'. + +The driver can be configured so that it is loaded upon startup. To do this, +edit the file "/etc/modules/'uname -f'/'uname -v'" and insert the driver name +"sc" into this file. + +2.4 Removing the driver + +To remove the driver, delete any interfaces that may exist (see isdnctrl(8) +for more on this) and then type '/sbin/rmmod sc'. + +2.5 What to do if it doesn't load + +If, when you try to install the driver, you get a message mentioning +'register_isdn' then you do not have the ISDN4Linux system installed. Please +make sure that ISDN support is configured in the kernel. + +If you get a message that says 'initialization of sc failed', then the +driver failed to detect an adapter or failed to find resources needed such +as a free IRQ line or shared memory segment. If you are sure there are free +resources available, use the insmod options detailed in sc(4) to override +the probing function. + +Upon testing, the following problem was noted, the driver would load without +problems, but the board would not respond beyond that point. When a check was +done with 'cat /proc/interrupts' the interrupt count for sc was 0. In the event +of this problem, change the BIOS settings so that the interrupts in question are +reserved for ISA use only. + + +2.6 How to setup ISDN4Linux with the driver + +There are two main configurations which you can use with the driver: + +A) Basic HDLC connection +B) PPP connection +C) MLPPP connection + +It should be mentioned here that you may also use a tty connection if you desire. +The Documentation directory of the isdn4linux subsystem offers a good documentation +on this feature. + +A) 10 steps to the establishment of a basic HDLC connection +----------------------------------------------------------- + +- please open the isdn-hdlc file in the examples directory and follow along... + + This file is a script used to configure a BRI ISDN TA to establish a basic HDLC + connection between its two channels. There two network interfaces which are + created and two routes added between the channels. + + i) using the isdnctrl utitity, add an interface with "addif" and name it "isdn0" + ii) add the outgoing and inbound telephone numbers + iii) set the Layer 2 protocol to hdlc + iv) set the eaz of the interface to be the phone number of that specific channel + v) to turn the callback features off, set the callback to "off" and + the callback delay (cbdelay) to 0. + vi) the hangup timeout can be set to a specified number of seconds + vii) the hangup upon incomming call can be set on or off + viii) use the ifconfig command to bring-up the network interface with a specific + IP address and point to point address + viv) add a route to the IP address through the isdn0 interface + x) a ping should result in the establishment of the connection + + +B) Establishment of a PPP connection +------------------------------------ + +- please open the isdn-ppp file in the examples directory and follow along... + + This file is a script used to configure a BRI ISDN TA to establish a PPP connection + between the two channels. The file is almost identical to the HDLC connection + example except that the packet ecapsulation type has to be set. + + use the same procedure as in the HDLC connection from steps i) to iii) then, + after the Layer 2 protocol is set, set the encapsulation "encap" to syncppp. + With this done, the rest of the steps, iv) to x) can be followed from above. + + Then, the ipppd (ippp daemon) must be setup: + + xi) use the ipppd function found in /sbin/ipppd to set the following: + xii) take out (minus) VJ compression and bsd compression + xiii) set the mru size to 2000 + xiv) link the two /dev interfaces to the daemon + +NOTE: A "*" in the inbound telephone number specifies that a call can be accepted + on any number. + +C) Establishment of a MLPPP connection +-------------------------------------- + +- please open the isdn-mppp file in the examples directory and follow along... + + This file is a script used to configure a BRI ISDN TA to accept a Multi Link PPP + connection. + + i) using the isdnctrl utitity, add an interface with "addif" and name it "ippp0" + ii) add the inbound telephone number + iii) set the Layer 2 protocol to hdlc and the Layer 3 protocol to trans (transparent) + iv) set the packet encapsulation to syncppp + v) set the eaz of the interface to be the phone number of that specific channel + vi) to turn the callback features off, set the callback to "off" and + the callback delay (cbdelay) to 0. + vi) the hangup timeout can be set to a specified number of seconds + vii) the hangup upon incomming call can be set on or off + viii) add a slave interface and name it "ippp32" for example + viv) set the similar parameters for the ippp32 interface + x) use the ifconfig command to bring-up the ippp0 interface with a specific + IP address and point to point address + xi) add a route to the IP address through the ippp0 interface + xii) use the ipppd function found in /sbin/ipppd to set the following: + xiii) take out (minus) bsd compression + xiv) set the mru size to 2000 + xv) add (+) the multi-link function "+mp" + xv) link the two /dev interfaces to the daemon + +NOTE: To use the MLPPP connection to dial OUT to a MLPPP connection, change the + inbound telephone numbers to the outgoing telephone numbers of the MLPPP + host. + + +3. Beta Change Summaries and Miscellaneous Notes +------------------------------------------------ +When using the "scctrl" utility to upload firmware revisions on the board, please +note that the byte count displayed at the end of the operation may be different +than the total number of bytes in the "dcbfwn.nn.sr" file. Please disregard the +displayed byte count. + +It was noted that in Beta Release 1, the module would fail to load and result in a +segmentation fault when insmod"ed". This problem was created when one of the +isdn4linux parameters, (isdn_ctrl, data field) was filled in. In some cases, this +data field was NULL, and was left unchecked, so when it was referenced.. segv. +The bug has been fixed around line 63-68 of event.c. + diff -ur --new-file old/linux/Documentation/java.txt new/linux/Documentation/java.txt --- old/linux/Documentation/java.txt Mon May 13 06:17:23 1996 +++ new/linux/Documentation/java.txt Thu Nov 21 10:00:33 1996 @@ -1,4 +1,4 @@ - Java(tm) Binary Kernel Support for Linux v1.01 + Java(tm) Binary Kernel Support for Linux v1.02 ---------------------------------------------- Linux beats them ALL! While all other OS's are TALKING about direct @@ -13,9 +13,9 @@ ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO/Java-HOWTO - If you install the JDK in a location other than the suggested - directory of /usr/local/java, then you will need to tell the - kernel where you put the Java interpreter. + If you install the JDK in a location other than /usr/bin/java, + then you will need to tell the kernel where you put the Java + interpreter. There are two ways to do this. One, edit fs/binfmt_java.c file and make the needed change to the _PATH_JAVA definition at the top of that file. @@ -36,6 +36,14 @@ as a loadable module. If a module, load it with insmod or kerneld. + 5) A caveat. When executing a java file, the java interpreter is + invoked only with the class name, not with the complete file path. + Therefore it is possible that the file the shell finds with PATH + is not the same file the java interpreter finds with CLASSPATH. + The recommended solution is to make symbolic links from a directory + in PATH to the actual class file in CLASSPATH, e.g., + /usr/local/bin/myapp -> /usr/local/java/classes/myapp.class. + To test your new setup, enter in the following simple Java app, and name it "HelloWorld.java": @@ -79,8 +87,8 @@ Java Applet support, so the modified file can still be used with all known browsers. - 2) If you install the JDK in a location other than the suggested - directory of /usr/local/java, then you will need to tell the + 2) If you install the applet viewer in a location other than + /usr/bin/appletviewer, then you will need to tell the kernel where you put the Java appletviewer. There are two ways to do this. One, edit fs/binfmt_java.c file and make the needed change to diff -ur --new-file old/linux/Documentation/locks.txt new/linux/Documentation/locks.txt --- old/linux/Documentation/locks.txt Wed May 15 10:22:04 1996 +++ new/linux/Documentation/locks.txt Mon May 12 19:50:31 1997 @@ -2,37 +2,30 @@ Andy Walker - 15 May 1996 + 12 May 1997 -What's New? ------------ +1. What's New? +-------------- -Flock Emulation Warnings ------------------------- -Many people will have noticed the ugly messages that the file locking -code started generating with the release of kernel version 1.3.95. The -messages look something like this: +1.1 Broken Flock Emulation +-------------------------- - fcntl_setlk() called by process XX with broken flock() emulation +The old flock(2) emulation in the kernel was swapped for proper BSD +compatible flock(2) support in the 1.3.x series of kernels. With the +release of the 2.1.x kernel series, support for the old emulation has +been totally removed, so that we don't need to carry this baggage +forever. -This is a warning for people using older C libraries that those libraries -are still calling the pre 1.3.x flock() emulation routines, instead of -the real flock() system call. The old routines are quite badly broken, -especially with respect to parent-child lock sharing, and can give bad -results if, for example, sendmail attempts to use them. +This should not cause problems for anybody, since everybody using a +2.1.x kernel should have updated their C library to a suitable version +anyway (see the file "linux/Documentation/Changes".) -Fixed versions of the C libraries have been on public release for many -months. The latest versions are 5.2.18 or 5.3.12 for ELF, and I believe -somebody made a 4.7.6 release for people using a.out systems. +1.2 Allow Mixed Locks Again +--------------------------- -In 1.3.96 Linus decided to be lenient on the stragglers and changed the -warning message so that the kernel will only complain five times and -then shut up. That should make life more bearable even for people who, -for some reason, don't want to upgrade. - -Sendmail Problems ------------------ +1.2.1 Typical Problems - Sendmail +--------------------------------- Because sendmail was unable to use the old flock() emulation, many sendmail installations use fcntl() instead of flock(). This is true of Slackware 3.0 for example. This gave rise to some other subtle problems if sendmail was @@ -42,23 +35,50 @@ over time, or under a very heavy mail load, would eventually cause the kernel to lock solid with deadlocked processes. -Disallow Mixed Locks --------------------- -I have chosen the rather cruel solution of disallowing mixed locking styles -on a given file at a given time. Attempts to lock a file with flock() when -fcntl() locks exist, or vice versa, return with an error status of EBUSY. -This seemed to be the only way to avoid all possible deadlock conditions, -as flock() locks do not strictly have one owner process and so can't be -checked for deadlocking in the usual manner. - -The process that created a lock with flock() might have forked multiple -children and exited. Previously the parent process would have been marked -as the owner of the lock, but deadlocks could just have easily occurred in -one or more of the children, which we would not have been able to identify -and avoid. - -Some programs may break (again, groan). In particular the aforementioned -sendmail may have problems running in 'newaliases' mode. It will no longer -deadlock though. Recompile sendmail to use flock() and your troubles will -be over. +1.2.2 The Solution +------------------ +The solution I have chosen, after much experimentation and discussion, +is to make flock() and fcntl() locks oblivious to each other. Both can +exists, and neither will have any effect on the other. + +I wanted the two lock styles to be cooperative, but there were so many +race and deadlock conditions that the current solution was the only +practical one. It puts us in the same position as, for example, SunOS +4.1.x and serveral other commercial Unices. The only OS's that support +cooperative flock()/fcntl() are those that emulate flock() using +fcntl(), with all the problems that implies. + + +1.3 Mandatory Locking As A Mount Option +--------------------------------------- + +Mandatory locking, as described in 'Documentation/mandatory.txt' was prior +to this release a general configuration option that was valid for all +mounted filesystems. This had a number of inherent dangers, not the least +of which was the ability to freeze an NFS server by asking it to read a +file for which a mandatory lock existed. + +From this release of the kernel, mandatory locking can be turned on and off +on a per-filesystem basis, using the mount options 'mand' and 'nomand'. +The default is to disallow mandatory locking. The intention is that +mandatory locking only be enabled on a local filesystem as the specific need +arises. + +Until an updated version of mount(8) becomes available you may have to apply +this patch to the mount sources (based on the version distributed with Rick +Faiths util-linux-2.5 package): + +*** mount.c.orig Sat Jun 8 09:14:31 1996 +--- mount.c Sat Jun 8 09:13:02 1996 +*************** +*** 100,105 **** +--- 100,107 ---- + { "noauto", 0, MS_NOAUTO }, /* Can only be mounted explicitly */ + { "user", 0, MS_USER }, /* Allow ordinary user to mount */ + { "nouser", 1, MS_USER }, /* Forbid ordinary user to mount */ ++ { "mand", 0, MS_MANDLOCK }, /* Allow mandatory locks on this FS */ ++ { "nomand", 1, MS_MANDLOCK }, /* Forbid mandatory locks on this FS */ + /* add new options here */ + #ifdef MS_NOSUB + { "sub", 1, MS_NOSUB }, /* allow submounts */ diff -ur --new-file old/linux/Documentation/m68k/00-INDEX new/linux/Documentation/m68k/00-INDEX --- old/linux/Documentation/m68k/00-INDEX Thu Jan 1 01:00:00 1970 +++ new/linux/Documentation/m68k/00-INDEX Mon May 12 19:35:37 1997 @@ -0,0 +1,9 @@ +00-INDEX + - this file +amiboot.txt + - info and options for the Linux/m68k Amiga bootstrap (Amiboot) +framebuffer.txt + - info about the Linux/m68k frame buffer device +kernel-options.txt + - command line options for Linux/m68k + diff -ur --new-file old/linux/Documentation/m68k/amiboot.txt new/linux/Documentation/m68k/amiboot.txt --- old/linux/Documentation/m68k/amiboot.txt Thu Jan 1 01:00:00 1970 +++ new/linux/Documentation/m68k/amiboot.txt Mon May 12 19:35:37 1997 @@ -0,0 +1,282 @@ + + Linux/m68k Amiga Bootstrap version 5.5 + -------------------------------------- + +Maintained by Geert Uytterhoeven (Geert.Uytterhoeven@cs.kuleuven.ac.be) +Last revised: March 27, 1997 + + +0. Introduction +--------------- + +Amiboot is used to boot Linux/m68k on Amiga from the CLI/Shell. + +Before you try to boot Linux/m68k for the first time, please read the FAQ + + http://www.clark.net/pub/lawrencc/linux/faq/faq.html + +and the Installation Guide + + http://www.informatik.uni-oldenburg.de/~amigo/inst.html + +first. Although the Installation Guide is getting a bit outdated, it's still a +good starting point. + +Amiboot 5.5 is meant for Linux/m68k 2.0.x, 2.1.x or higher (kernel bootinfo +interface versions 1.x and 2.x). Please use an older version for older kernels. + + +1. Running Amiboot +------------------ + +The Amiboot invocation syntax looks like + + amiboot [options] [kernel command line] + +Basic options: + + --help Display the usage information + + --kernel file Use kernel image `file' (default is `vmlinux') + + --ramdisk file Use ramdisk image `file' + +Advanced options: + + --debug Enable debug mode + + --baud speed Set the serial port speed (default is 9600 bps) + + --memfile file Use memory file `file' + + --keep-video Don't reset the video mode + + --model id Set the Amiga model to `id' + + --processor cfm Set the processor type to `cfm' + +The kernel command line contains the options you want to pass to the kernel and +to init, the process that's started first by Linux. Please read +linux/Documentation/m68k/kernel-options.txt for more information. + +Normally you only use the --kernel option to specify the file that contains the +Linux/m68k kernel image, and --ramdisk if you want to boot from a ramdisk file, +i.e. a file containing a complete file system, instead of from a hard disk +partition. + +Note that both the kernel image and the ramdisk image can be compressed with +gzip. Amiboot knows how to deal with gzipped kernel images, and the kernel +recognizes gzipped ramdisk images. + +Example: + + amiboot -k vmlinux-2.1.13 root=/dev/hda3 video=font:PEARL8x8 + +Amiboot will boot the kernel image `vmlinux-2.1.13' and will pass +`root=/dev/hda3 video=font:PEARL8x8' to the kernel. + + +The other options are more advanced. Don't use them unless you really have to +and you know what you're doing. + +The --baud option allows you to specify the serial port speed for initial boot +information and initial kernel messages. Note: this option does not work with +kernels with bootinfo interface versions prior to 2.0. + +The --memfile option is used to specify the blocks of memory that will be used +by Linux. + +The --keep-video option is necessary if you want to retain the current graphics +mode (on a graphics board) under Linux. Currently this is only useful if you +have a CyberVision 64 graphics board. + +Finally, --model and --processor allow you to specify your Amiga model and +processor type if they are detected incorrectly, and --debug dumps some +information which simplifies debugging. + + +2. The memory file +------------------ + +If you have some non-AutoConfig memory you want to use under Linux, or if you +want to disable some parts of your memory (e.g. Zorro II RAM on '040 based +systems), you have to use a memory file and the --memfile option. This file +contains information about the memory chunks you want to use under Linux. The +format for the file is: + + chipramsize + [0xfastchunkaddr fastchunksize] + [0xfastchunkaddr fastchunksize] + ... + +For example, if you don't want Linux to use your 2nd meg of chipram, you would +create a file that contains only: + + 1048576 + +If you had 1M of chip ram, 2M of 16 bit FAST ram at address 0x200000 and 16M of +32 bit FAST ram at address 0x80000000, and you didn't want Linux to use the +slow 16 bit FAST ram, you'd create a file that looks like: + + 1048576 + 0x80000000 16777216 + +The memory file can also be used to specify in which block of memory the kernel +will be put. Normally Amiboot will put the kernel in the first block of Fast +RAM it will find. If you use a memory file, it will put the kernel in the first +block of fast RAM you specify. + + +3. Amiga models +--------------- + +If Amiboot incorrectly detects the model of your Amiga, you can force it to +detect any model you want using the --model option. `id' must be one of the +numbers as defined in linux/include/asm-m68k/amigahw.h (AMI_*). Currently the +following models are known: + + Model ID + ----- -- + Amiga 500 1 + Amiga 500+ 2 + Amiga 600 3 + Amiga 1000 4 + Amiga 1200 5 + Amiga 2000 6 + Amiga 2500 7 + Amiga 3000 8 + Amiga 3000T 9 + Amiga 3000+ 10 + Amiga 4000 11 + Amiga 4000T 12 + CDTV 13 + CD32 14 + Draco 15 + +Note that Amiboot can't distinguish among Amiga models that are very similar to +each other (e.g. A500/A1000/A2000/A2500 and A3000/A3000T). Of course this is +harmless and there's no real need to use --model in that case. + +Please send me the output of amiboot used with the --debug option if your Amiga +model is detected incorrectly. + + +4. Processor types +------------------ + +If your processor is detected incorrectly, you can override this using the +`--processor cfm' option. `cfm' must be a three-digit number with + + - `c' the CPU (Central Processing Unit) type, + - 'f' the FPU (Floating Point Unit) type, + - 'm' the MMU (Memory Management Unit) type, + +from the table below: + + value | CPU | FPU | MMU + -------+-------+-------+------- + 0 | - | - | - + 1 | 68020 | 68881 | 68851 + 2 | 68030 | 68882 | 68030 + 3 | 68040 | 68040 | 68040 + 4 | 68060 | 68060 | 68060 + +e.g. `444' if you have a 68060 and `303' if you have a 68LC040. + +Note that normally you don't have to use this option. It's only needed for some +combinations of an old Kickstart ROM and a new processor (e.g. a 68060). + + +5. Abbreviations +---------------- + +All options also have a shorthand: + + --help -h + --kernel -k + --ramdisk -r + --debug -d + --baud -b + --memfile -m + --keep-video -v + --model -t + --processor -p + + +6. Miscellaneous +---------------- + +Some expansion boards keep on generating interrupts once they were initialized +under AmigaOS. This can cause an interrupt deadlock while booting Linux. The +following boards are recognized and disabled: + + o Helfrich Rainbow 3 Graphics Board + o Helfrich Piccolo Graphics Board + o Helfrich SD64 Graphics Board + o Village Tronic Ariadne Ethernet Board + o Hydra Systems Amiganet Ethernet Board + +The following boards are known to cause problems but we don't have a disable +routine for them yet: + + o Commodore A2060 Arcnet Card + o Ameristar A560 Arcnet Card + +If you write a routine to disable an expansion board, please let me know. + + +7. Troubleshooting +------------------ + + - Amiboot says + + This bootstrap is too old/new for this kernel + + This means that you're using a version of Amiboot that's not compatible + with the kernel you want to boot. + + Solution: use the correct Amiboot, or use another kernel. + + - Amiboot says + + Warning: too many AutoConfig devices. Ignoring device at 0x???????? + + or + + Warning: too many memory blocks. Ignoring block of ???K at 0x???????? + + This means that you have more AutoConfig devices or memory chunks than + Amiboot supports. Note that you can still boot Linux/m68k, but that the + additional devices or memory blocks can't be used. + + Solution: increase the ZORRO_NUM_AUTO (for AutoConfig devices) or + NUM_MEMINFO (for memory chunks) values in the kernel sources + (linux/include/asm-m68k/zorro.h and linux/include/asm-m68k/setup.h) and + recompile both Amiboot and the kernel. + + - If all you get is a grey screen, or if Linux/m68k suddenly locks up during + booting, try the following things: + + o Boot with the Startup-Sequence disabled, run SetPatch and try again. + + o If that doesn't work, remove any expansion devices and retry. + + o Check the detected Amiga model and processor type. + + o Look at the characters that are dumped to the serial port during + booting. + + +8. Amiga-Lilo +------------- + +Once you have a stable Linux/m68k installation, you may want to try Amiga-Lilo. +Amiga-Lilo allows you to boot Linux/m68k without the overhead of booting +AmigaOS first, and it provides you with a boot menu. + + +9. Credits +---------- + +This readme was written by Geert Uytterhoeven. A lot of information was taken +from the ANNOUNCE-* files by Hamish Macdonald. diff -ur --new-file old/linux/Documentation/m68k/framebuffer.txt new/linux/Documentation/m68k/framebuffer.txt --- old/linux/Documentation/m68k/framebuffer.txt Thu Jan 1 01:00:00 1970 +++ new/linux/Documentation/m68k/framebuffer.txt Mon May 12 19:35:37 1997 @@ -0,0 +1,370 @@ + + The Linux/m68k Frame Buffer Device + ---------------------------------- + +Maintained by Geert Uytterhoeven (Geert.Uytterhoeven@cs.kuleuven.ac.be) +Last revised: March 23, 1997 + + +0. Introduction +--------------- + +The frame buffer device provides an abstraction for the graphics hardware. It +represents the frame buffer of some video hardware and allows application +software to access the graphics hardware through a well-defined interface, so +the software doesn't need to know anything about the low-level (hardware +register) stuff. + +The device is accessed through special device nodes, usually located in the +/dev directory, i.e. /dev/fb*. + + +1. User's View of /dev/fb* +-------------------------- + +From the user's point of view, the frame buffer device looks just like any +other device in /dev. It's a character device using major 29, the minor is +divided into a frame buffer number in the upper 3 bits (allowing max. 8 frame +buffers simultaneously) and a resolution code in the lower 5 bits of the minor. + +By convention, the following device nodes are used (numbers indicate the device +minor numbers): + + First frame buffer + 0 = /dev/fb0current Current resolution + 1 = /dev/fb0autodetect Default resolution + 2 = /dev/fb0predefined0 Predefined resolutions (22) + ... + 23 = /dev/fb0predefined21 + 24 = /dev/fb0user0 User defined resolutions (8) + ... + 31 = /dev/fb0user7 + + Second frame buffer + 32 = /dev/fb1current Current resolution + 33 = /dev/fb1autodetect Default resolution + 34 = /dev/fb1predefined0 Predefined resolutions (22) + ... + 55 = /dev/fb1predefined21 + 56 = /dev/fb1user0 User defined resolutions (8) + ... + 63 = /dev/fb1user7 + +and so on... + +The device with (minor & 31) == 0 (/dev/fb?current) stands for the frame buffer +together with the currently set video parameters; (minor & 31) == 1 +(/dev/fb?autodetect) is the video mode detected at boot time. Any other minor +stands for some predefined or user defined video mode. + +The predefined entries (/dev/fb?predefined*) usually have a device dependent +name, e.g. for major 29, minor 5, we have /dev/fb0multiscan on Amiga and +/dev/fb0ttmid on Atari. These are meant to contain hardware dependent +resolutions. + +The user defined resolutions (/dev/fb?user?) are meant to be filled in by the +user. This way the user can store his favorite 8 resolutions during boot up. + +Note: if you need more than 8 user defined resolutions, you can always override +the predefined resolutions by storing them in one of the predefined entries. +But this is not recommended. Similarly, if there are more than 22 predefined +resolutions, the device writer can decide to store them in the user defined +entries. + +If the device is opened (for writing), the frame buffer driver switches to the +selected video mode. Thus, you can switch video modes by writing to a frame +buffer device, e.g. + + > /dev/fb0ttlow + +will switch your video to TT low mode. Note: if you specify a resolution which +contains a value that's not possible on your hardware, the frame buffer device +will round it up (if possible) or return an error condition. + +The frame buffer devices are also `normal' memory devices, this means, you can +read and write their contents. You can, for example, make a screen snapshot by + + cp /dev/fb0current myfile + +There also can be more than one frame buffer at a time, e.g. if you have a +graphics card in addition to the built-in hardware. The corresponding frame +buffer devices (/dev/fb0* and /dev/fb1* etc.) work independently. + +Application software that uses the frame buffer device (e.g. the X server) will +use /dev/fb0current by default. You can specify an alternative resolution by +setting the environment variable $FRAMEBUFFER to the path name of a frame +buffer device, e.g. (for sh/bash users): + + export FRAMEBUFFER=/dev/fb0multiscan + +or (for csh users): + + setenv FRAMEBUFFER /dev/fb0multiscan + +After this the X server will use the multiscan video mode. + + +2. Programmer's View of /dev/fb* +-------------------------------- + +As you already know, a frame buffer device is a memory device like /dev/mem and +it has the same features. You can read it, write it, seek to some location in +it and mmap() it (the main usage). The difference is just that the memory that +appears in the special file is not the whole memory, but the frame buffer of +some video hardware. + +/dev/fb* also allows several ioctls on it, by which lots of information about +the hardware can be queried and set. The color map handling works via ioctls, +too. Look into for more information on what ioctls exist and on +which data structures they work. Here's just a brief overview: + + - You can request unchangeable information about the hardware, like name, + organization of the screen memory (planes, packed pixels, ...) and address + and length of the screen memory. + + - You can request and change variable information about the hardware, like + visible and virtual geometry, depth, color map format, timing, and so on. + If you try to change that informations, the driver maybe will round up some + values to meet the hardware's capabilities (or return EINVAL if that isn't + possible). + + - You can get and set parts of the color map. Communication is done with 16 + bit per color part (red, green, blue, transparency) to support all existing + hardware. The driver does all the computations needed to bring it into the + hardware (round it down to less bits, maybe throw away transparency). + +All this hardware abstraction makes the implementation of application programs +easier and more portable. E.g. the X server works completely on /dev/fb* and +thus doesn't need to know, for example, how the color registers of the concrete +hardware are organized. XF68_FBDev is a general X server for bitmapped, +unaccelerated video hardware. The only thing that has to be built into +application programs is the screen organization (bitplanes or chunky pixels +etc.), because it works on the frame buffer image data directly. + +For the future it is planned that frame buffer drivers for graphics cards and +the like can be implemented as kernel modules that are loaded at runtime. Such +a driver just has to call register_framebuffer() and supply some functions. +Writing and distributing such drivers independently from the kernel will save +much trouble... + + +3. Frame Buffer Resolution Maintenance +-------------------------------------- + +Frame buffer resolutions are maintained using the utility `fbset'. It allows to +change the video mode properties of the current or a user defined resolution. +It's main usage is to tune video modes and to store custom resolutions into one +of the /dev/fb?user? entries, e.g. during boot up in one of your /etc/rc.* or +/etc/init.d/* files, after which those resolutions can be used by applications. + +Fbset uses a video mode database stored in a configuration file, so you can +easily add your own modes and refer to them with a simple identifier. The fbset +install script also creates the special device nodes for the device dependent +predefined resolutions. + + +4. The X Server +--------------- + +The X server (XF68_FBDev) is the most notable application program for the frame +buffer device. The current X server is part of the XFree86/XFree68 release 3.2 +package and has 2 modes: + + - If the `Display' subsection for the `fbdev' driver in the /etc/XF86Config + file contains a + + Modes "default" + + line, the X server will use the scheme discussed above, i.e. it will start + up in the resolution determined by /dev/fb0current (or $FRAMEBUFFER, if + set). This is the default for the configuration file supplied with XFree68 + 3.2. It's the most simple configuration (and the only possible one if you + want to have a broadcast compatible display, e.g. PAL or NTSC), but it has + some limitations. + + - Therefore it's also possible to specify resolutions in the /etc/XF86Config + file. This allows for on-the-fly resolution switching while retaining the + same virtual desktop size. The frame buffer device that's used is still + /dev/fb0current (or $FRAMEBUFFER), but the available resolutions are + defined by /etc/XF86Config now. The disadvantage is that you have to + specify the timings in a different format (but `fbset -x' may help) and + that you can't have a broadcast compatible display (e.g. no PAL or NTSC). + +To tune a video mode, you can use fbset or xvidtune. Note that xvidtune doesn't +work 100% with XF68_FBDev: the reported clock values are always incorrect. + +There exists also an accelerated X server for the Cybervision 64 graphics +board, but that's not discussed here. + + +5. Video Mode Timings +--------------------- + +A monitor draws an image on the screen by using an electron beam (3 electron +beams for most color models, 1 electron beam for Trinitron color monitors and +monochrone monitors). The front of the screen is covered by a pattern of +colored phospors (pixels). If a phospor is hit by an electron, it emits a +photon and thus becomes visible. + +The electron beam draws horizontal lines (scanlines) from left to right, and +from the top to the bottom of the screen. By modifying the intensity of the +electron beam, pixels with various colors and intensities can be shown. + +After each scanline the electron beam has to move back to the left side of the +screen and to the next line: this is called the horizontal retrace. After the +whole screen (frame) was painted, the beam moves back to the upper left corner: +this is called the vertical retrace. During both the horizontal and vertical +retrace, the electron beam is turned off (blanked). + +The speed at which the electron beam paints the pixels is determined by the +dotclock in the graphics board. For a dotclock of e.g. 28.37516 MHz (millions +of cycles per second), each pixel is 35242 ps (picoseconds) long: + + 1/(28.37516E6 Hz) = 35.242E-9 s + +If the screen resolution is 640x480, it will take + + 640*35.242E-9 s = 22.555E-6 s + +to paint the 640 (xres) pixels on one scanline. But the horizontal retrace +also takes time (e.g. 272 `pixels'), so a full scanline takes + + (640+272)*35.242E-9 s = 32.141E-6 s + +We'll say that the horizontal scanrate is about 31 kHz: + + 1/(32.141E-6 s) = 31.113E3 Hz + +A full screen counts 480 (yres) lines, but we have to consider the vertical +retrace too (e.g. 49 `pixels'). So a full screen will take + + (480+49)*32.141E-6 s = 17.002E-3 s + +The vertical scanrate is about 59 Hz: + + 1/(17.002E-3 s) = 58.815 Hz + +This means the screen data is refreshed about 59 times per second. To have a +stable picture without visible flicker, VESA recommends a vertical scanrate of +at least 72 Hz. But the perceived flicker is very human dependent: some people +can use 50 Hz without any trouble, while I'll notice if it's less than 80 Hz. + +Since the monitor doesn't know when a new scanline starts, the graphics board +will supply a synchronization pulse (horizontal sync or hsync) for each +scanline. Similarly it supplies a synchronization pulse (vertical sync or +vsync) for each new frame. The position of the image on the screen is +influenced by the moments at which the synchronization pulses occur. + +The following picture summarizes all timings. The horizontal retrace time is +the sum of the left margin, the right margin and the hsync length, while the +vertical retrace time is the sum of the upper margin, the lower margin and the +vsync length. + + +----------+---------------------------------------------+----------+-------+ + | | ^ | | | + | | |upper_margin | | | + | | ¥ | | | + +----------###############################################----------+-------+ + | # ^ # | | + | # | # | | + | # | # | | + | # | # | | + | left # | # right | hsync | + | margin # | xres # margin | len | + |<-------->#<---------------+--------------------------->#<-------->|<----->| + | # | # | | + | # | # | | + | # | # | | + | # |yres # | | + | # | # | | + | # | # | | + | # | # | | + | # | # | | + | # | # | | + | # | # | | + | # | # | | + | # | # | | + | # ¥ # | | + +----------###############################################----------+-------+ + | | ^ | | | + | | |lower_margin | | | + | | ¥ | | | + +----------+---------------------------------------------+----------+-------+ + | | ^ | | | + | | |vsync_len | | | + | | ¥ | | | + +----------+---------------------------------------------+----------+-------+ + +The frame buffer device expects all horizontal timings in number of dotclocks +(in picoseconds, 1E-12 s), and vertical timings in number of scanlines. + + +6. Converting XFree86 timing values info frame buffer device timings +-------------------------------------------------------------------- + +An XFree86 mode line consists of the following fields: + "800x600" 50 800 856 976 1040 600 637 643 666 + < name > DCF HR SH1 SH2 HFL VR SV1 SV2 VFL + +The frame buffer device uses the following fields: + + - pixclock: pixel clock in ps (pico seconds) + - left_margin: time from sync to picture + - right_margin: time from picture to sync + - upper_margin: time from sync to picture + - lower_margin: time from picture to sync + - hsync_len: length of horizontal sync + - vsync_len: length of vertical sync + +1) Pixelclock: + xfree: in MHz + fb: In Picoseconds (ps) + + pixclock = 1000000 / DCF + +2) horizontal timings: + left_margin = HFL - SH2 + right_margin = SH1 - HR + hsync_len = SH2 - SH1 + +3) vertical timings: + upper_margin = VFL - SV2 + lower_margin = SV1 - VR + vsync_len = SV2 - SV1 + +Good examples for VESA timings can be found in the XFree86 source tree, +under "xc/programs/Xserver/hw/xfree86/doc/modeDB.txt". + + +7. References +------------- + +For more specific information about the frame buffer device and its +applications, please refer to the following documentation: + + - The manual pages for fbset: fbset(8), fb.modes(5) + - The manual pages for XFree68: XF68_FBDev(1), XF86Config(4/5) + - The mighty kernel sources: + o linux/include/linux/fb.h + o linux/drivers/char/fbmem.c + o linux/arch/m68k/*/*fb.c + + +8. Downloading +-------------- + +All necessary files can be found at + + ftp://ftp.uni-erlangen.de/pub/Linux/LOCAL/680x0/ + +and on its mirrors. + + +9. Credits +---------- + +This readme was written by Geert Uytterhoeven, partly based on the original +`X-framebuffer.README' by Roman Hodek and Martin Schaller. Section 6 was +provided by Frank Neumann. + +The frame buffer device abstraction was designed by Martin Schaller. diff -ur --new-file old/linux/Documentation/m68k/kernel-options.txt new/linux/Documentation/m68k/kernel-options.txt --- old/linux/Documentation/m68k/kernel-options.txt Thu Jan 1 01:00:00 1970 +++ new/linux/Documentation/m68k/kernel-options.txt Mon May 12 19:35:37 1997 @@ -0,0 +1,847 @@ + + + Command Line Options for Linux/m68k + =================================== + +Date: Sep 14, 1996 +Linux/m68k version: 2.0.20 +Author: Roman.Hodek@informatik.uni-erlangen.de (Roman Hodek) +Update: jds@kom.auc.dk (Jes Sorensen) + +0) Introduction +=============== + + Often I've been asked which command line options the Linux/m68k +kernel understands, or how the exact syntax for the ... option is, or +... about the option ... . I hope, this document supplies all the +answers... + + Note that some options might be outdated, their descriptions being +incomplete or missing. Please update the information and send in the +patches. + + +1) Overview of the Kernel's Option Processing +============================================= + +The kernel knows three kinds of options on its command line: + + 1) kernel options + 2) environment settings + 3) arguments for init + +To which of these classes an argument belongs is determined as +follows: If the option is known to the kernel itself, i.e. if the name +(the part before the '=') or, in some cases, the whole argument string +is known to the kernel, it belongs to class 1. Otherwise, if the +argument contains an '=', it is of class 2, and the definition is put +into init's environment. All other arguments are passed to init as +command line options. + + This document describes the valid kernel options for Linux/m68k in +the version mentioned at the start of this file. Later revisions may +add new such options, and some may be missing in older versions. + + In general, the value (the part after the '=') of an option is a +list of values separated by commas. The interpretation of these values +is up to the driver that "owns" the option. This association of +options with drivers is also the reason that some are further +subdivided. + + +2) General Kernel Options +========================= + +2.1) root= +---------- + +Syntax: root=/dev/ + or: root= + +This tells the kernel which device it should mount as the root +filesystem. The device must be a block device with a valid filesystem +on it. + + The first syntax gives the device by name. These names are converted +into a major/minor number internally in the kernel in an unusual way. +Normally, this "conversion" is done by the device files in /dev, but +this isn't possible here, because the root filesystem (with /dev) +isn't mounted yet... So the kernel parses the name itself, with some +hardcoded name to number mappings. The name must always be a +combination of two or three letters, followed by a decimal number. +Valid names are: + + /dev/ram: -> 0x0100 (initial ramdisk) + /dev/hda: -> 0x0300 (first IDE disk) + /dev/hdb: -> 0x0340 (second IDE disk) + /dev/sda: -> 0x0800 (first SCSI disk) + /dev/sdb: -> 0x0810 (second SCSI disk) + /dev/sdc: -> 0x0820 (third SCSI disk) + /dev/sdd: -> 0x0830 (forth SCSI disk) + /dev/sde: -> 0x0840 (fifth SCSI disk) + /dev/fd : -> 0x0200 (floppy disk) + /dev/xda: -> 0x0c00 (first XT disk, unused in Linux/m68k) + /dev/xdb: -> 0x0c40 (second XT disk, unused in Linux/m68k) + /dev/ada: -> 0x1c00 (first ACSI device) + /dev/adb: -> 0x1c10 (second ACSI device) + /dev/adc: -> 0x1c20 (third ACSI device) + /dev/add: -> 0x1c30 (forth ACSI device) + +The last for names are available only if the kernel has been compiled +with Atari and ACSI support. + + The name must be followed by a decimal number, that stands for the +partition number. Internally, the value of the number is just +added to the device number mentioned in the table above. The +exceptions are /dev/ram and /dev/fd, where /dev/ram refers to an +initial ramdisk loaded by your bootstrap program (please consult the +instructions for your bootstrap program to find out how to load an +initial ramdisk). As of kernel version 2.0.18 you must specify +/dev/ram as the root device if you want to boot from an initial +ramdisk. For the floppy devices, /dev/fd, the number stands for the +floppy drive number (there are no partitions on floppy disks). I.e., +/dev/fd0 stands for the first drive, /dev/fd1 for the second, and so +on. Since the number is just added, you can also force the disk format +by adding a number greater than 3. If you look into your /dev +directory, use can see the /dev/fd0D720 has major 2 and minor 16. You +can specify this device for the root FS by writing "root=/dev/fd16" on +the kernel command line. + +[Strange and maybe uninteresting stuff ON] + + This unusual translation of device names has some strange +consequences: If, for example, you have a symbolic link from /dev/fd +to /dev/fd0D720 as an abbreviation for floppy driver #0 in DD format, +you cannot use this name for specifying the root device, because the +kernel cannot see this symlink before mounting the root FS and it +isn't in the table above. If you would use it, the root device weren't +set at all, without error message. Another example: You cannot use a +partition on e.g. the sixth SCSI disk as the root filesystem, if you +want to specify it by name. This is, because only the devices up to +/dev/sde are in the table above, but not /dev/sdf. Although, you can +use the sixth SCSI disk for the root FS, but you have to specify the +device by number... (see below). Or, even more strange, you can use the +fact that there is no range checking of the partition number, and your +knowledge that each disk uses 16 minors, and write "root=/dev/sde17" +(for /dev/sdf1). + +[Strange and maybe uninteresting stuff OFF] + + If the device containing your root partition isn't in the table +above, you can also specify it by major and minor numbers. These are +written in hex, with no prefix and no separator between. E.g., if you +have a CD with contents appropriate as a root filesystem in the first +SCSI CD-ROM drive, you boot from it by "root=0b00". Here, hex "0b" = +decimal 11 is the major of SCSI CD-ROMs, and the minor 0 stands for +the first of these. You can find out all valid major numbers by +looking into include/linux/major.h. + + +2.2) ro, rw +----------- + +Syntax: ro + or: rw + +These two options tell the kernel whether it should mount the root +filesystem read-only or read-write. The default is read-only, except +for ramdisks which are read-write. + + +2.3) debug +---------- + +Syntax: debug + +This raises the kernel log level to 10 (the default is 7). This is the +same level as set by the "dmesg" command, just that the maximum level +selectable by dmesg is 8. + + +2.4) debug= +----------- + +Syntax: debug= + +This option causes certain kernel messages be printed to the selected +debugging device. This can aid debugging the kernel, since the +messages can be captured and analyzed on some other machine. Which +devices are possible depends on the machine type. There are no checks +for the validity of the device name. If the device isn't implemented, +nothing happens. + + Messages logged this way are in general stack dumps after kernel +memory faults or bad kernel traps, and kernel panics. To be exact: all +messages of level 0 (panic messages) and all messages printed while +the log level is 8 or more (their level doesn't matter). Before stack +dumps, the kernel sets the log level to 10 automatically. A level of +at least 8 can also be set by the "debug" command line option (see +2.3) and at run time with "dmesg -n 8". + +Devices possible for Amiga: + + - "ser": built-in serial port; parameters: 9600bps, 8N1 + - "mem": Save the messages to a reserved area in chip mem. After + rebooting, they can be read under AmigaOS with the tool + 'dmesg'. + +Devices possible for Atari: + + - "ser1": ST-MFP serial port ("Modem1"); parameters: 9600bps, 8N1 + - "ser2": SCC channel B serial port ("Modem2"); parameters: 9600bps, 8N1 + - "ser" : default serial port + This is "ser2" for a Falcon, and "ser1" for any other machine + - "par" : parallel port + The printing routine for this implements a timeout for the + case there's no printer connected (else the kernel would + lock up). The timeout is not exact, but usually a few + seconds. + + +2.6) ramdisk= +------------- + +Syntax: ramdisk= + + This option instructs the kernel to set up a ramdisk of the given +size in KBytes. Do not use this option if the ramdisk contents are +passed by bootstrap! In this case, the size is selected automatically +and should not be overwritten. + + The only application is for root filesystems on floppy disks, that +should be loaded into memory. To do that, select the corresponding +size of the disk as ramdisk size, and set the root device to the disk +drive (with "root="). + + +2.7) swap= +----------- + +Syntax: swap=,,,,,,\ + , +(All optional) + +TODO + + +2.8) buff= +----------- + +Syntax: buff=,,,,, +(All optional) + +TODO + + + +3) General Device Options (Amiga and Atari) +=========================================== + +3.1) ether= +----------- + +Syntax: ether=[[,[,[,]]]], + + is the name of a net driver, as specified in +drivers/net/Space.c in the Linux source. Most prominent are eth0, ... +eth3, sl0, ... sl3, ppp0, ..., ppp3, dummy, and lo. + + The non-ethernet drivers (sl, ppp, dummy, lo) obviously ignore the +settings by this options. Also, the existing ethernet drivers for +Linux/m68k (ariadne, a2065, hydra) don't use them because Zorro boards +are really Plug-'n-Play, so the "ether=" option is useless altogether +for Linux/m68k. + + +3.2) hd= +-------- + +Syntax: hd=,, + + This option sets the disk geometry of an IDE disk. The first hd= +option is for the first IDE disk, the second for the second one. +(I.e., you can give this option twice.) In most cases, you won't have +to use this option, since the kernel can obtain the geometry data +itself. It exists just for the case that this fails for one of your +disks. + + +3.3) max_scsi_luns= +------------------- + +Syntax: max_scsi_luns= + + Sets the maximum number of LUNs (logical units) of SCSI devices to +be scanned. Valid values for are between 1 and 8. Default is 8 if +"Probe all LUNs on each SCSI device" was selected during the kernel +configuration, else 1. + + +3.4) st= +-------- + +Syntax: st=,[,[]] + + Sets several parameters of the SCSI tape driver. is +the number of 512-byte buffers reserved for tape operations for each +device. sets the number of blocks which must be filled +to start an actual write operation to the tape. Maximum value is the +total number of buffers. limits the total number of +buffers allocated for all tape devices. + + +3.5) dmasound= +-------------- + +Syntax: dmasound=[,[,]] + + This option controls some configurations of the Linux/m68k DMA sound +driver (Amiga and Atari): is the number of buffers you want +to use (minimum 4, default 4), is the size of each +buffer in kilobytes (minimum 4, default 32) and says +how much percent of error will be tolerated when setting a frequency +(maximum 10, default 0). For example with 3% you can play 8000Hz +AU-Files on the Falcon with its hardware frequency of 8195Hz and thus +don't need to expand the sound. + + + +4) Options for Atari Only +========================= + +4.1) video= +-------------- + +Syntax: video= + +The is a comma-separated list of the sub-options listed +below. + +NB: Please notice that this option was renamed from `atavideo' to + `video' during the development of the 1.3.x kernels, thus you + might need to update your boot-scripts if upgrading to 2.0.x from + an 1.2.13ply kernel. + +4.1.1) Video Mode +----------------- + +This sub-option may be any of the predefined video modes, as listed +in atari/atafb.c in the Linux/m68k source tree. The kernel will +activate the given video mode at boot time and make it the default +mode, if the hardware allows. Currently defined names are: + + - stlow : 320x200x4 + - stmid, default5 : 640x200x2 + - sthigh, default4: 640x400x1 + - ttlow : 320x480x8, TT only + - ttmid, default1 : 640x480x4, TT only + - tthigh, default2: 1280x960x1, TT only + - vga2 : 640x480x1, Falcon only + - vga4 : 640x480x2, Falcon only + - vga16, default3 : 640x480x4, Falcon only + - vga256 : 640x480x8, Falcon only + - falh2 : 896x608x1, Falcon only + - falh16 : 896x608x4, Falcon only + + If no video mode is given on the command line, the kernel tries the +modes names "default" in turn, until one is possible with the +hardware in use. + + A video mode setting doesn't make sense, if the external driver is +activated by a "external:" sub-option. + +4.1.2) inverse +-------------- + +Invert the display. This affects both, text (consoles) and graphics +(X) display. Usually, the background is chosen to be black. With this +option, you can make the background white. + +4.1.3) font +----------- + +Syntax: font: + +Specify the font to use in text modes. Currently you can choose only +between `VGA8x8', `VGA8x16' and `PEARL8x8'. `VGA8x8' is default, if the +vertical size of the display is less than 400 pixel rows. Otherwise, the +`VGA8x16' font is the default. + +4.1.4) hwscroll_ +---------------- + +Syntax: hwscroll_ + +The number of additional lines of video memory to reserve for +speeding up the scrolling ("hardware scrolling"). Hardware scrolling +is possible only if the kernel can set the video base address in steps +fine enough. This is true for STE, MegaSTE, TT, and Falcon. It is not +possible with plain STs and graphics cards (The former because the +base address must be on a 256 byte boundary there, the latter because +the kernel doesn't know how to set the base address at all.) + + By default, is set to the number of visible text lines on the +display. Thus, the amount of video memory is doubled, compared to no +hardware scrolling. You can turn off the hardware scrolling altogether +by setting to 0. + +4.1.5) internal: +---------------- + +Syntax: internal:;[;;;] + +This option specifies the capabilities of some extended internal video +hardware, like e.g. OverScan. and give the (extended) +dimensions of the screen. + + If your OverScan needs a black border, you have to write the last +three arguments of the "internal:". is the maximum line +length the hardware allows, the maximum number of lines. + is the offset of the visible part of the screen memory to its +physical start, in bytes. + + Often, extended interval video hardware has to be activated somehow. +For this, see the "sw_*" options below. + +4.1.6) sw_acia, sw_snd6, sw_snd7 +-------------------------------- + +This specifies the method for turning on extended internal video +hardware, like OverScan. Several methods are in use: + + sw_acia: Set RTS of the keyboard ACIA high + sw_snd6: Set bit 6 of the PSG port A + sw_snd7: Set bit 7 of the PSG port A + +These sub-options are generally only useful together with "internal:". + +4.1.7) external: +---------------- + +Syntax: + external:;;;;[;[;\ + [;[;]]]] + +[I had to break this line...] + + This is probably the most complicated parameter... It specifies that +you have some external video hardware (a graphics board), and how to +use it under Linux/m68k. The kernel cannot know more about the hardware +than you tell it here! The kernel also is unable to set or change any +video modes, since it doesn't know about any board internal. So, you +have to switch to that video mode before you start Linux, and cannot +switch to another mode once Linux has started. + + The first 3 parameters of this sub-option should be obvious: , + and give the dimensions of the screen and the number of +planes (depth). The depth is is the logarithm to base 2 of the number +of colors possible. (Or, the other way round: The number of colors is +2^depth). + + You have to tell the kernel furthermore how the video memory is +organized. This is done by a letter as parameter: + + 'n': "normal planes", i.e. one whole plane after another + 'i': "interleaved planes", i.e. 16 bit of the first plane, than 16 bit + of the next, and so on... This mode is used only with the + built-in Atari video modes, I think there is no card that + supports this mode. + 'p': "packed pixels", i.e. consecutive bits stand for all + planes of one pixel; this is the most common mode for 8 planes + (256 colors) on graphic cards + 't': "true color" (more or less packed pixels, but without a color + lookup table); usually depth is 24 + +For monochrome modes (i.e., is 1), the letter has a +different meaning: + + 'n': normal colors, i.e. 0=white, 1=black + 'i': inverted colors, i.e. 0=black, 1=white + + The next important information about the video hardware is the base +address of the video memory. That is given in the parameter, +as a hexadecimal number with a "0x" prefix. You have to find out this +address in the documentation of your hardware. + + The next parameter, , tells the kernel about the size of the +video memory. If it's missing, the size is calculated from , +, and . For now, it is not useful to write a value here. +It would be used only for hardware scrolling (which isn't possible +with the external driver, because the kernel cannot set the video base +address), or for virtual resolutions under X (which the X server +doesn't support yet). So, it's currently best to leave this field +empty, either by ending the "external:" after the video address or by +writing two consecutive semicolons, if you want to give a +(it is allowed to leave this parameter empty). + + The parameter is optional. If it is not given, the kernel +cannot read or write any color registers of the video hardware, and +thus you have to set appropriate colors before you start Linux. But if +your card is somehow VGA compatible, you can tell the kernel the base +address of the VGA register set, so it can change the color lookup +table. You have to look up this address in your board's documentation. +To avoid misunderstandings: is the _base_ address, i.e. a 4k +aligned address. For read/writing the color registers, the kernel +uses the addresses vgabase+0x3c7...vgabase+0x3c9. The +parameter is written in hexadecimal with a "0x" prefix, just as +. + + is meaningful only if is specified. It tells the +kernel how wide each of the color register is, i.e. the number of bits +per single color (red/green/blue). Default is 6, another quite usual +value is 8. + + Also is used together with . It tells the kernel +about the color register model of your gfx board. Currently, the types +"vga" (which is also the default) and "mv300" (SANG MV300) are +implemented. + +4.1.8) eclock: +-------------- + +The external pixel clock attached to the Falcon VIDEL shifter. This +currently works only with the ScreenWonder! + +4.1.9) monitorcap: +------------------- + +Syntax: monitorcap:;;; + +This describes the capabilities of a multisync monitor. Don't use it +with a fixed-frequency monitor! For now, only the Falcon frame buffer +uses the settings of "monitorcap:". + + and are the minimum and maximum, resp., vertical frequencies +your monitor can work with, in Hz. and are the same for +the horizontal frequency, in kHz. + + The defaults are 58;62;31;32 (VGA compatible). + + The defaults for TV/SC1224/SC1435 cover both PAL and NTSC standards. + +4.1.10) keep +------------ + +If this option is given, the framebuffer device doesn't do any video +mode calculations and settings on its own. The only Atari fb device +that does this currently is the Falcon. + + What you reach with this: Settings for unknown video extensions +aren't overridden by the driver, so you can still use the mode found +when booting, when the driver doesn't know to set this mode itself. +But this also means, that you can't switch video modes anymore... + + An example where you may want to use "keep" is the ScreenBlaster for +the Falcon. + + +4.2) atamouse= +-------------- + +Syntax: atamouse=,[] + + With this option, you can set the mouse movement reporting threshold. +This is the number of pixels of mouse movement that have to accumulate +before the IKBD sends a new mouse packet to the kernel. Higher values +reduce the mouse interrupt load and thus reduce the chance of keyboard +overruns. Lower values give a slightly faster mouse responses and +slightly better mouse tracking. + + You can set the threshold in x and y separately, but usually this is +of little practical use. If there's just one number in the option, it +is used for both dimensions. The default value is 2 for both +thresholds. + + +4.3) ataflop= +------------- + +Syntax: ataflop=[,[,[,]]] + + The drive type may be 0, 1, or 2, for DD, HD, and ED, resp. This + setting affects how much buffers are reserved and which formats are + probed (see also below). The default is 1 (HD). Only one drive type + can be selected. If you have two disk drives, select the "better" + type. + + The second parameter tells the kernel whether to use + track buffering (1) or not (0). The default is machine dependant: + no for the Medusa and yes for all others. + + With the two following parameters, you can change the default + steprate used for drive A and B, resp. + + +4.4) atascsi= +------------- + +Syntax: atascsi=[,[,[,[,]]]] + + This option sets some parameters for the Atari native SCSI driver. +Generally, any number of arguments can be omitted from the end. And +for each of the numbers, a negative value means "use default". The +defaults depend on whether TT-style or Falcon-style SCSI is used. +Below, defaults are noted as n/m, where the first value refers to +TT-SCSI and the latter to Falcon-SCSI. If an illegal value is given +for one parameter, an error message is printed and that one setting is +ignored (other aren't affected). + + : + This is the maximum number of SCSI commands queued internal to the + Atari SCSI driver. A value of 1 effectively turns off the driver + internal multitasking (if it makes problems). Legal values are >= + 1. can be as high as you like, but values greater than + times the number of SCSI targets (LUNs) you have + don't make sense. Default: 16/8. + + : + Maximum number of SCSI commands issued to the driver for one + logical unit (LUN, usually one SCSI target). Legal values start + from 1. If tagged queuing (see below) is not used, values greater + than 2 don't make sense, but waste memory. Otherwise, the maximum + is the number of command tags available to the driver (currently + 32). Default: 8/1. (Note: Values > 1 seem to cause problems on a + Falcon, cause not yet known.) + + The value at a great part determines the amount of + memory SCSI reserves for itself. The formula is rather + complicated, but I can give you some hints: + no scatter-gather : cmd_per_lun * 232 bytes + full scatter-gather: cmd_per_lun * approx. 17 Kbytes + + : + Size of the scatter-gather table, i.e. the number of requests + consecutive on the disk that can be merged into one SCSI command. + Legal values are between 0 and 255. Default: 255/0. Note: This + value is forced to 0 on a Falcon, since scatter-gather isn't + possible with the ST-DMA. Not using scatter-gather hurts + perfomance significantly. + + : + The SCSI ID to be used by the initiator (your Atari). This is + usually 7, the highest possible ID. Every ID on the SCSI bus must + be unique. Default: determined at run time: If the NV-RAM checksum + is valid, and bit 7 in byte 30 of the NV-RAM is set, the lower 3 + bits of this byte are used as the host ID. (This method is defined + by Atari and also used by some TOS HD drivers.) If the above + isn't given, the default ID is 7. (both, TT and Falcon). + + : + 0 means turn off tagged queuing support, all other values > 0 mean + use tagged queuing for targets that support it. Default: currently + off, but this may change when tagged queuing handling has been + proofed to be reliable. + + Tagged queuing means that more than one command can be issued to + one LUN, and the SCSI device itself orders the requests so they + can be performed in optimal order. Not all SCSI devices support + tagged queuing (:-(). + + + +5) Options for Amiga Only: +========================== + +5.1) video= +----------- + +Syntax: video= + +The is a comma-separated list of the sub-options listed +below. This option is organized similar to the Atari version of the +"video"-option (4.1), but knows fewer sub-options. + +5.1.1) video mode +----------------- + +Again, similar to the video mode for the Atari (see 4.1.1). Predefined +modes depend on the used frame buffer device. + +OCS, ECS and AGA machines all use the color frame buffer. The following +predefined video modes are available: + +NTSC modes: + - ntsc : 640x200, 15 kHz, 60 Hz + - ntsc-lace : 640x400, 15 kHz, 60 Hz interlaced +PAL modes: + - pal : 640x256, 15 kHz, 50 Hz + - pal-lace : 640x512, 15 kHz, 50 Hz interlaced +ECS modes: + - multiscan : 640x480, 29 kHz, 57 Hz + - multiscan-lace : 640x960, 29 kHz, 57 Hz interlaced + - euro36 : 640x200, 15 kHz, 72 Hz + - euro36-lace : 640x400, 15 kHz, 72 Hz interlaced + - euro72 : 640x400, 29 kHz, 68 Hz + - euro72-lace : 640x800, 29 kHz, 68 Hz interlaced + - super72 : 800x300, 23 kHz, 70 Hz + - super72-lace : 800x600, 23 kHz, 70 Hz interlaced + - dblntsc-ff : 640x400, 27 kHz, 57 Hz + - dblntsc-lace : 640x800, 27 kHz, 57 Hz interlaced + - dblpal-ff : 640x512, 27 kHz, 47 Hz + - dblpal-lace : 640x1024, 27 kHz, 47 Hz interlaced + - dblntsc : 640x200, 27 kHz, 57 Hz doublescan + - dblpal : 640x256, 27 kHz, 47 Hz doublescan +VGA modes: + - vga : 640x480, 31 kHz, 60 Hz + - vga70 : 640x400, 31 kHz, 70 Hz + +Please notice that the ECS and VGA modes require either an ECS or AGA +chipset, and that these modes are limited to 2-bit color for the ECS +chipset and 8-bit color for the AGA chipset. + +5.1.2) depth +------------ + +Syntax: depth: + +Specify the number of bit-planes for the selected video-mode. + +5.1.3) inverse +-------------- + +Use inverted display. Functionally the same as the "inverse" +sub-option for the Atari. + +5.1.4) font +----------- + +Syntax: font: + +Specify the font to use in text modes. Functionally the same as the +"font" sub-option for the Atari, except that `PEARL8x8' is used instead +of `VGA8x8' if the vertical size of the display is less than 400 pixel +rows. + +5.1.5) monitorcap: +------------------- + +Syntax: monitorcap:;;; + +This describes the capabilities of a multisync monitor. For now, only +the color frame buffer uses the settings of "monitorcap:". + + and are the minimum and maximum, resp., vertical frequencies +your monitor can work with, in Hz. and are the same for +the horizontal frequency, in kHz. + + The defaults are 50;90;15;38 (Generic Amiga monitor). + + +5.2) fd_def_df0= +---------------- + +Syntax: fd_def_df0= + +Sets the df0 value for "silent" floppy drives. The value should be in +hexadecimal with "0x" prefix. + + +5.3) wd33c93= +------------- + +Syntax: wd33c93= + +The is a comma-separated list of the sub-options listed +below. + +5.3.1) nosync +------------- + +Syntax: nosync:bitmask + + bitmask is a byte where the 1st 7 bits correspond with the 7 +possible SCSI devices. Set a bit to prevent sync negotiation on that +device. To maintain backwards compatibility, a command-line such as +"wd33c93=255" will be automatically translated to +"wd33c93=nosync:0xff". The default is to disable sync negotiation for +all devices, eg. nosync:0xff. + +5.3.2) period +------------- + +Syntax: period:ns + + `ns' is the minimum # of nanoseconds in a SCSI data transfer +period. Default is 500; acceptable values are 250 - 1000. + +5.3.3) disconnect +----------------- + +Syntax: disconnect:x + + Specify x = 0 to never allow disconnects, 2 to always allow them. +x = 1 does 'adaptive' disconnects, which is the default and generally +the best choice. + +5.3.4) debug +------------ + +Syntax: debug:x + + If `DEBUGGING_ON' is defined, x is a bit mask that causes various +types of debug output to printed - see the DB_xxx defines in +wd33c93.h. + +5.3.5) clock +------------ + +Syntax: clock:x + + x = clock input in MHz for WD33c93 chip. Normal values would be from +8 through 20. The default value depends on your hostadapter(s), +default for the A3000 internal controller is 14, for the A2091 its 8 +and for the GVP hostadapters its either 8 or 14, depending on the +hostadapter and the SCSI-clock jumper present on some GVP +hostadapters. + +5.3.6) next +----------- + + No argument. Used to separate blocks of keywords when there's more +than one host adapter in the system. + +5.3.7) nodma +------------ + +Syntax: nodma:x + + If x is 1 (or if the option is just written as "nodma"), the WD33c93 +controller will not use DMA (= direct memory access) to access the +Amiga's memory. This is useful for some systems (like A3000's and +A4000's with the A3640 accelerator, revision 3.0) that have problems +using DMA to chip memory. The default is 0, i.e. to use DMA if +possible. + + +5.4) gvp11= +----------- + +Syntax: gvp11= + + The earlier versions of the GVP driver did not handle DMA +address-mask settings correctly which made it necessary for some +people to use this option, in order to get their GVP controller +running under Linux. These problems have hopefully been solved and the +use of this option is now highly unrecommended! + + Incorrect use can lead to unpredictable behavior, so please only use +this option if you *know* what you are doing and have a reason to do +so. In any case if you experience problems and need to use this +option, please inform us about it by mailing to the Linux/68k kernel +mailing list. + + The address mask set by this option specifies which addresses are +valid for DMA with the GVP Series II SCSI controller. An address is +valid, if no bits are set except the bits that are set in the mask, +too. + + Some versions of the GVP can only DMA into a 24 bit address range, +some can address a 25 bit address range while others can use the whole +32 bit address range for DMA. The correct setting depends on your +controller and should be autodetected by the driver. An example is the +24 bit region which is specified by a mask of 0x00fffffe. + + +/* Local Variables: */ +/* mode: text */ +/* End: */ diff -ur --new-file old/linux/Documentation/magic-number.txt new/linux/Documentation/magic-number.txt --- old/linux/Documentation/magic-number.txt Thu May 16 15:35:39 1996 +++ new/linux/Documentation/magic-number.txt Sun Feb 2 14:18:29 1997 @@ -54,6 +54,7 @@ ISDN_ASYNC_MAGIC 0x49344C01 modem_info include/linux/isdn.h ISDN_NET_MAGIC 0x49344C02 isdn_net_ndev include/linux/isdn.h STLI_BOARDMAGIC 0x4bc6c825 stlibrd_t include/linux/istallion.h +ROUTER_MAGIC 0x524d4157 wanlink_t include/linux/router.h STLI_PORTMAGIC 0xe671c7a1 stliport_t include/linux/istallion.h STL_PANELMAGIC 0x7ef621a1 stlpanel_t include/linux/stallion.h STL_BOARDMAGIC 0xa2267f52 stlbrd_t include/linux/stallion.h diff -ur --new-file old/linux/Documentation/mandatory.txt new/linux/Documentation/mandatory.txt --- old/linux/Documentation/mandatory.txt Tue Apr 16 09:27:10 1996 +++ new/linux/Documentation/mandatory.txt Sun Sep 22 08:41:32 1996 @@ -5,8 +5,8 @@ 15 April 1996 -What is mandatory locking? ---------------------------- +1. What is mandatory locking? +------------------------------ Mandatory locking is kernel enforced file locking, as opposed to the more usual cooperative file locking used to guarantee sequential access to files among @@ -44,8 +44,8 @@ borrowing the fcntl() locking scheme from System V. The mandatory locking scheme is defined by the System V Interface Definition (SVID) Version 3. -Marking a file for mandatory locking ------------------------------------- +2. Marking a file for mandatory locking +--------------------------------------- A file is marked as a candidate for mandatory by setting the group-id bit in its file mode but removing the group-execute bit. This is an otherwise @@ -58,8 +58,8 @@ refrain from clearing this bit. Similarly the kernel has been modified not to run mandatory lock candidates with setgid privileges. -Available implementations -------------------------- +3. Available implementations +---------------------------- I have considered the implementations of mandatory locking available with SunOS 4.1.x, Solaris 2.x and HP-UX 9.x. @@ -93,8 +93,8 @@ below are just as valid as any others, so long as the main points seem to agree. -Semantics ---------- +4. Semantics +------------ 1. Mandatory locks can only be applied via the fcntl()/lockf() locking interface - in other words the System V/POSIX interface. BSD style @@ -124,8 +124,8 @@ that has any mandatory locks in effect will be rejected with the error status EAGAIN. -Which system calls are affected? --------------------------------- +5. Which system calls are affected? +----------------------------------- Those which modify a file's contents, not just the inode. That gives read(), write(), readv(), writev(), open(), creat(), mmap(), truncate() and @@ -142,8 +142,8 @@ checking in my eagerness to get this code out the door. Please let me know, or better still fix the system calls yourself and submit a patch to me or Linus. -Warning! --------- +6. Warning! +----------- Not even root can override a mandatory lock, so runaway process can wreak havoc if they lock crucial files. The way around it is to change the file diff -ur --new-file old/linux/Documentation/mca.txt new/linux/Documentation/mca.txt --- old/linux/Documentation/mca.txt Thu Jan 1 01:00:00 1970 +++ new/linux/Documentation/mca.txt Thu Dec 12 15:51:07 1996 @@ -0,0 +1,210 @@ +i386 Micro Channel Architecture Support +======================================= + +MCA support is enabled using the CONFIG_MCA define. A machine with a MCA +bus will have the kernel variable MCA_bus set, assuming the BIOS feature +bits are set properly (see arch/i386/boot/setup.S for information on +how this detection is done). + +Adapter Detection +================= + +The ideal MCA adapter detection is done through the use of the +Programmable Option Select registers. Generic functions for doing +this have been added in include/linux/mca.h and arch/i386/kernel/mca.c. +Everything needed to detect adapters and read (and write) configuration +information is there. A number of MCA-specific drivers already use +this. The typical probe code looks like the following: + + #include + + unsigned char pos2, pos3, pos4, pos5; + struct device* dev; + int slot; + + if( MCA_bus ) { + slot = mca_find_adapter( ADAPTER_ID, 0 ); + if( slot == MCA_NOTFOUND ) { + return ENODEV; + } + /* optional - see below */ + mca_set_adapter_name( slot, "adapter name & description" ); + mca_set_adapter_procfn( slot, dev_getinfo, dev ); + + /* read the POS registers. Most devices only need + 2 and 3 */ + pos2 = mca_read_stored_pos( slot, 2 ); + pos3 = mca_read_stored_pos( slot, 3 ); + pos4 = mca_read_stored_pos( slot, 4 ); + pos5 = mca_read_stored_pos( slot, 5 ); + } else { + return ENODEV; + } + + /* extract configuration from pos[2345] and set everything up */ + +Loadable modules should modify this to test that the specified IRQ and +IO ports (plus whatever other stuff) match. See 3c523.c for example +code. + +Keep in mind that devices should never directly access the POS registers +(via inb(), outb(), etc). While it's generally safe, there is a small +potential for blowing up hardware when it's done at the wrong time. +Furthermore, accessing a POS register disables a device temporarily. +This is usually okay during startup, but do _you_ want to rely on it? +During initial configuration, mca_init() reads all the POS registers +into memory. mca_read_stored_pos() accesses that data. mca_read_pos() +and mca_write_pos() are also available for (safer) direct POS access, +but their use is _highly_ discouraged. mca_write_pos() is particularly +dangerous, as it is possible for adapters to be put in inconsistent +states (i.e. sharing IO address, etc) and may result in crashes, toasted +hardware, and operator injury. + +User level drivers (such as the AGX X server) can use /proc/mca to find +adapters (see below). + +Some MCA adapters can also be detected via the usual ISA-style device +probing (many SCSI adapters, for example). This sort of thing is highly +discouraged. Perfectly good information is available telling you what's +there, so there's no excuse for messing with random IO ports. However, +we MCA people still appreciate any ISA-style driver that will work with +our hardware. You take what you can get... + +Level-Triggered Interrupts +========================== + +Because MCA uses level-triggered interrupts, a few problems arise with +what might best be described as the ISA mindset and its effects on +drivers. These sorts of problems are expected to become less common as +more people use shared IRQs on PCI machines. + +In general, an interrupt must be acknowledged not only at the ICU (which +is done automagically by the kernel), but at the device level. In +particular, IRQ 0 must be reset after a timer interrupt (now done in +arch/i386/kernel/time.c) or the first timer interrupt hangs the system. +There were also problems with the 1.3.x floppy drivers, but that seems +to have been fixed. + +IRQs are also shareable, and most MCA-specific devices should be coded +with shared IRQs in mind. + +/proc/mca +========= + +I did a major rewrite of /proc/mca. It is now a directory containing +various files for adapters and other stuff. + + /proc/mca/pos Straight listing of POS registers + /proc/mca/slot[1-8] Information on adapter in specific slot + /proc/mca/video Same for integrated video + /proc/mca/scsi Same for integrated SCSI + /proc/mca/machine Machine information + +Device drivers can easily add their own information function for +specific slots (including integrated ones) via the +mca_set_adapter_procfn() call. Drivers that support this are ESDI, IBM +SCSI, and 3c523. If a device is also a module, make sure that the proc +function is removed in the module cleanup. This will require storing +the slot information in a private structure somewhere. See the 3c523 +driver for details. + +Your typical proc function will look something like this: + + static int + dev_getinfo( char* buf, int slot, void* d ) { + struct device* dev = (struct device*) d; + int len = 0; + + len += sprintf( buf+len, "Device: %s\n", dev->name ); + len += sprintf( buf+len, "IRQ: %d\n", dev->irq ); + len += sprintf( buf+len, "IO Port: %#lx-%#lx\n", ... ); + ... + + return len; + } + +Some of the standard MCA information will already be printed, so don't +bother repeating it. Don't try putting in more that 3K of information. + +Enable this function with: + mca_set_adapter_procfn( slot, dev_getinfo, dev ); + +Disable it with: + mca_set_adapter_procfn( slot, NULL, NULL ); + +It is also recommended that, even if you don't write a proc function, to +set the name of the adapter (i.e. "PS/2 ESDI Controller") via +mca_set_adapter_name( int slot, char* name ). Up to 30 characters are +used. + +MCA Device Drivers +================== + +Currently, there are a number of MCA-specific device drivers. + +1) PS/2 ESDI + drivers/block/ps2esdi.c + include/linux/ps2esdi.h + Uses major number 36, and should use /dev files /dev/eda, /dev/edb. + Supports two drives, but only one controller. Usually requires the + command-line args ed=cyl,head,sec + +2) PS/2 SCSI + drivers/scsi/ibmmca.c + drivers/scsi/ibmmca.h + The driver for the IBM SCSI subsystem. Includes both integrated + controllers and adapter cards. May require command-line arg + ibmmcascsi=pun to force detection of an adapter. + +3) 3c523 + drivers/net/3c523.c + drivers/net/3c523.h + 3Com 3c523 Etherlink/MC ethernet driver. + +4) SMC Ultra/MCA + drivers/net/smc-mca.c + drivers/net/smc-mca.h + Elite/A (8013EP/A) and Elite10T/A (8013WP/A) ethernet driver + +As well, drivers/char/psaux.c was modified to support IRQ sharing (it's +#ifdef CONFIG_MCA'ed, for your convenience, although PCI users might be +able to use it...) + +The serial drivers were modified to support the extended IO port range +of the typical MCA system (also #ifdef CONFIG_MCA). + +The following devices work with existing drivers: +1) Token-ring +2) Future Domain SCSI (MCS-600, MCS-700, not MCS-350) +3) Adaptec 1640 SCSI (aha1542 driver) +4) Buslogic SCSI (various) + +Bugs & Other Weirdness +====================== + +NMIs tend to occur with MCA machines because of various hardware +weirdness, bus timeouts, and many other non-critical things. Those of +you who have NMI problems should probably set the CONFIG_IGNORE_NMI flag +somewhere. NMIs seem to be particularly common on the model 70. + +Various Pentium machines have serious problems with the FPU test in +bugs.h. You may need to comment out the FPU test before you can even +boot. This occurs, as far as we know, on the Pentium-equipped 85s, 95s, +and some servers. The PCI/MCA PC 750s are fine as far as I can tell. + +The model 80 has a raft of problems that are just too weird and unique +to get into here. Some people have no trouble while others have nothing +but problems. I'd suspect the problems are related to the age of the +average 80 and accompanying hardware deterioration. + +Credits +======= +A whole pile of people have contributed to the MCA code. I'd include +their names here, but I don't have a list handy. Check the MCA Linux +home page (URL below) for an out-of-date list. + +===================================================================== +http://glycerine.cetmm.uni.edu/mca + +Chris Beauregard +chrisb@truespectra.com diff -ur --new-file old/linux/Documentation/memory.txt new/linux/Documentation/memory.txt --- old/linux/Documentation/memory.txt Thu Jan 1 01:00:00 1970 +++ new/linux/Documentation/memory.txt Thu Jan 16 03:46:06 1997 @@ -0,0 +1,60 @@ +There are several classic problems related to memory on Linux +systems. + + 1) There are some buggy motherboards which cannot properly + deal with the memory above 16MB. Consider exchanging + your motherboard. + + 2) You cannot do DMA on the ISA bus to addresses above + 16M. Most device drivers under Linux allow the use + of bounce buffers which work around this problem. Drivers + that don't use bounce buffers will be unstable with + more than 16M installed. Drivers that use bounce buffers + will be OK, but may have slightly higher overhead. + + 3) There are some motherboards that will not cache above + a certain quantity of memory. If you have one of these + motherboards, your system will be SLOWER, not faster + as you add more memory. Consider exchanging your + motherboard. + + 4) Linux will not currently detect above 64M of RAM, + regardless of how much memory is actually installed. + +All of these problems can be addressed with the "mem=XXXM" boot option +(where XXX is the size of RAM to use in megabytes). Adding this boot +option to your boot loader can help Linux see more than 64M. It can +also tell Linux to use less memory than is actually installed. + +See the documentation of your boot loader (LILO, loadlin, etc.) about +how to pass options to the kernel. + +There are other memory problems which Linux cannot deal with. Random +corruption of memory is usually a sign of serious hardware trouble. +Try: + + * Reducing memory settings in the BIOS to the most conservative + timings. + + * Adding a cooling fan. + + * Not overclocking your CPU. + + * Having the memory tested in a memory tester or exchanged + with the vendor. + + * Exchanging your CPU, cache, or motherboard for one that works. + + * Disabling the cache from the BIOS. + + * Try passing the "mem=4M" option to the kernel to limit + Linux to using a very small amount of memory. + + +Other tricks: + + * Try passing the "no-387" option to the kernel to ignore + a buggy FPU. + + * Try passing the "no-hlt" option to disable the potentially + buggy HLT instruction in your CPU. diff -ur --new-file old/linux/Documentation/modules.txt new/linux/Documentation/modules.txt --- old/linux/Documentation/modules.txt Sun Jun 9 17:01:04 1996 +++ new/linux/Documentation/modules.txt Tue Jan 14 11:59:10 1997 @@ -49,7 +49,7 @@ Here is a sample of the available modules included in the kernel sources: - Most filesystems: minix, xiafs, msdos, umsdos, sysv, isofs, hpfs, + Most filesystems: minix, msdos, umsdos, sysv, isofs, hpfs, smbfs, nfs Mid-level SCSI support (required by top and low level scsi drivers). @@ -63,6 +63,7 @@ aztcd: Aztech,Orchid,Okano,Wearnes cm206: Philips/LMS CM206 gscd: Goldstar GCDR-420 + bpcd: MicroSolutions backpack CDrom mcd, mcdx: Mitsumi LU005, FX001 optcd: Optics Storage Dolphin 8000AT sjcd: Sanyo CDR-H94A diff -ur --new-file old/linux/Documentation/networking/00-INDEX new/linux/Documentation/networking/00-INDEX --- old/linux/Documentation/networking/00-INDEX Thu Jun 6 13:57:43 1996 +++ new/linux/Documentation/networking/00-INDEX Sun Feb 2 14:18:29 1997 @@ -14,18 +14,28 @@ - info on using AX.25 and NET/ROM code for Linux framerelay.txt - info on using Frame Relay/Data Link Connection Identifier (DLCI). +lapb-module.txt + - programming information on the LAPB module. ncsa-telnet - notes on how NCSA telnet (DOS) breaks with MTU discovery enabled. net-modules.txt - info and "insmod" parameters for all network driver modules. ppp.txt - info on what software you should use to run PPP. +shaper.txt + - info on the module that can shape/limit transmitted traffic. tcp.txt - short blurb on how TCP output takes place. tulip.txt - info on using DEC 21040/21041/21140 based PCI ethernet cards. vortex.txt - info on using 3Com Vortex (3c590, 3c592, 3c595, 3c597) e'net cards. +wan-router.txt + - Wan router documentation +x25.txt + - general info on X.25 development. +x25-iface.txt + - description of the X.25 Packet Layer to LAPB device interface. z8530drv.txt - info about Linux driver for Z8530 based HDLC cards for AX.25 diff -ur --new-file old/linux/Documentation/networking/3c505.txt new/linux/Documentation/networking/3c505.txt --- old/linux/Documentation/networking/3c505.txt Fri Apr 12 08:41:58 1996 +++ new/linux/Documentation/networking/3c505.txt Tue Oct 15 17:42:04 1996 @@ -1,26 +1,37 @@ The 3Com Etherlink Plus (3c505) driver. This driver now uses DMA. There is currently no support for PIO operation. -The default DMA channel is 6, and is set at compile time. +The default DMA channel is 6; this is _not_ autoprobed, so you must +make sure you configure it correctly. If loading the driver as a +module, you can do this with "modprobe 3c505 dma=n". If the driver is +linked statically into the kernel, you must either use an "ether=" +statement on the command line, or change the definition of ELP_DMA in 3c505.h. + +The driver will warn you if it has to fall back on the compiled in +default DMA channel. If no base address is given at boot time, the driver will autoprobe ports 0x300, 0x280 and 0x310 (in that order). If no IRQ is given, the driver will try to probe for it. The driver can be used as a loadable module. See net-modules.txt for details -of the parameters it can take. - -At the moment, the driver probably won't work with old (revision 2) hardware. +of the parameters it can take. -There is one compile-time setting in the CONFIG file: -ELP_DEBUG - The driver debug level. It's probably best to leave it at 0 most of the time. - If you are having trouble, setting it to 1 may give you more information. - Any higher setting is too verbose for most purposes. +Theoretically, one instance of the driver can now run multiple cards, +in the standard way (when loading a module, say "modprobe 3c505 +io=0x300,0x340 irq=10,11 dma=6,7" or whatever). I have not tested +this, though. + +The driver may now support revision 2 hardware; the dependency on +being able to read the host control register has been removed. This +is also untested, since I don't have a suitable card. + +Known problems: + I still see "DMA upload timed out" messages from time to time. These +seem to be fairly non-fatal though. + The card is old and slow. To do: - Support for old boards - Make DMA configurable at run time Improve probe/setup code Test multicast and promiscuous operation @@ -31,3 +42,5 @@ IRQ/address detection, some changes) and this README by Juha Laiho . DMA mode, more fixes, etc, by Philip Blundell + Multicard support, Software configurable DMA, etc., by + Christopher Collins diff -ur --new-file old/linux/Documentation/networking/arcnet.txt new/linux/Documentation/networking/arcnet.txt --- old/linux/Documentation/networking/arcnet.txt Wed Sep 11 16:57:12 1996 +++ new/linux/Documentation/networking/arcnet.txt Sun Dec 1 08:47:41 1996 @@ -55,10 +55,10 @@ Where do I discuss these drivers? --------------------------------- -Tomasz Motylewski has been so kind as to set up a new and improved -mailing list. Subscribe by sending a message with the BODY "subscribe -linux-arcnet YOUR REAL NAME" to listserv@tichy.ch.uj.edu.pl. Then, to -submit messages to the list, mail to linux-arcnet@tichy.ch.uj.edu.pl. +Tomasz has been so kind as to set up a new and improved mailing list. +Subscribe by sending a message with the BODY "subscribe linux-arcnet YOUR +REAL NAME" to listserv@tichy.ch.uj.edu.pl. Then, to submit messages to the +list, mail to linux-arcnet@tichy.ch.uj.edu.pl. There are archives of the mailing list at: http://tichy.ch.uj.edu.pl/lists/linux-arcnet @@ -97,10 +97,18 @@ Installing the Driver --------------------- -If this driver was included as part of your Linux kernel source, all you -will need to do in order to install it is: +** Note: the latest version of the driver contains preliminary support for + ARCnet RIM I cards. These are very old cards that don't use I/O + ports at all, but rather map the status and command ports into + shared memory. To compile the driver in RIM I mode, you must (for + now) edit linux/drivers/net/arcnet.c, find the line that says: + #undef RIM_I_MODE + and change it to: + #define RIM_I_MODE + +All you will need to do in order to install the driver is: make config - (be sure to choose ARCnet under "other ISA cards") + (be sure to choose ARCnet in the network devices) make dep make clean make zImage @@ -109,9 +117,20 @@ your current kernel, you will need to first copy arcnet.c over the one in the linux/drivers/net directory. -You will know the driver is installed properly if you get a lot of ARCnet -messages when you boot into the new Linux kernel. (These messages can be -disabled by taking D_INIT out of the list of debug flags in arcnet.c.) +You will know the driver is installed properly if you get some ARCnet +messages when you reboot into the new Linux kernel. + +If you use a RIM I card, you will need to give the kernel boot parameters +specifying your card's irq, node ID, and shared memory. For example, + LILO boot: linux ether=9,0x42,0xD0000,0,arc0 +if your card is node number 42h, irq 9, with shared memory at 0xD0000. + +NOTE that if you aren't using RIM I, the above command will still work but +you will need to replace the node ID with an I/O port number, for example: + LILO boot: linux ether=9,0x300,0xD0000,0,arc0 + +You can add the ether= parameter to /etc/lilo.conf to avoid typing this +every time. Loadable Module Support @@ -137,6 +156,9 @@ You can name the device using something like "device=arc1" (for a second card) or "device=eth0" (for weird compatibility reasons) if you like. + +If you use RIM I, you don't need to specify io= but you must include node= +for your ARCnet card's station ID. Using the Driver diff -ur --new-file old/linux/Documentation/networking/ax25.txt new/linux/Documentation/networking/ax25.txt --- old/linux/Documentation/networking/ax25.txt Wed Jul 5 12:06:27 1995 +++ new/linux/Documentation/networking/ax25.txt Fri Feb 21 23:58:32 1997 @@ -1,50 +1,16 @@ -This is version 029 of the new AX.25 and NET/ROM code for Linux. It -incorporates many enhancements since the last release, notably the rewriting -of the connected mode IP code and the IP over NET/ROM code. The opportunity -has been taken to add the G8BPQ NET/ROM extensions and to add BPQ Ethernet -support. The latter has been much eased by the use of the new variable -length header code by Alan Cox. +To use the amateur radio protocols within Linux you will need to get a +suitable copy of the AX.25 Utilities. More detailed information about these +and associated programs can be found on http://www.cs.nott.ac.uk/~jsn/. + +For more information about the AX.25, NET/ROM and ROSE protocol stacks, see +the AX25-HOWTO written by Terry Dawson +who is also the AX.25 Utilities maintainer. + +There is an active mailing list for discussing Linux amateur radio matters +called linux-hams. To subscribe to it, send a message to +Majordomo@vger.rutgers.edu with the words "subscribe linux-hams" in the body +of the message, the subject field is ignored. -To use the BPQ Ethernet option, first up the ethernet interface in the usual -manner, the IP address of the interface is not that important but it will -be required for the ARP table. Next create an ARP entry in the ARP table of -type ax25 for the interface binding it to an AX.25 callsign, this callsign -will be the callsign of that interface. By default BPQ Ethernet uses a -multi-cast address, this implementation does not, instead the standard -ethernet broadcast address is used. Therefore the NET.CFG file for the -ODI driver should look similar to this: +Jonathan G4KLX ------------------------------- cut here ------------------------------------ - -LINK SUPPORT - - MAX STACKS 1 - MAX BOARDS 1 - -LINK DRIVER E2000 ; or other MLID to suit your card - - INT 10 ; - PORT 300 ; to suit your card - - FRAME ETHERNET_II - - PROTOCOL BPQ 8FF ETHERNET_II ; required for BPQ - can change PID - -BPQPARMS ; optional - only needed if you want - ; to override the default target addr - - ETH_ADDR FF:FF:FF:FF:FF:FF ; Target address - ------------------------------ cut here ------------------------------------- - -The above configuration assumes that only BPQ Ethernet is being used. - -It is not possible to run IP over AX.25 on the BPQ Ethernet port. To simply -route IP frames to (say) eth0 would create standard ethernet IP frames and -completely bypass the AX.25 code. However it is possible to use IP over -NET/ROM across a BPQ Ethernet link, the performance of such a system is -very acceptable indeed. - -Jonathan Naylor G4KLX - -g4klx@amsat.org +jsn@cs.nott.ac.uk diff -ur --new-file old/linux/Documentation/networking/cs89x0.txt new/linux/Documentation/networking/cs89x0.txt --- old/linux/Documentation/networking/cs89x0.txt Thu Jan 1 01:00:00 1970 +++ new/linux/Documentation/networking/cs89x0.txt Sun Feb 2 14:18:29 1997 @@ -0,0 +1,651 @@ +CRYSTAL LAN CS8900/CS8920 ETHERNET ADAPTERS +Linux Network Interface Driver ver. 1.02 +=============================================================================== + + +TABLE OF CONTENTS + +1.0 CRYSTAL LAN CS8900/CS8920 ETHERNET ADAPTERS + 1.1 Product Overview + 1.2 Driver Description + 1.2.1 Driver Name + 1.2.2 File in the Driver Package + 1.3 System Requirements + 1.4 Licensing Information + +2.0 ADAPTER INSTALLATION and CONFIGURATION + 2.1 CS8900-based Adapter Configuration + 2.2 CS8920-based Adapter Configuration + +3.0 LOADING THE DRIVER AS A MODULE + +4.0 COMPILING THE DRIVER + 4.1 Compiling the Driver As a Loadable Module + 4.2 Compiling the Driver Into the Kernel + 4.3 Compiling the Driver for a Linux v1.2.13 Kernel + +5.0 TESTING AND TROUBLESHOOTING + 5.1 Known Defects and Limitations + 5.2 Testing the Adapter + 5.2.1 Diagnostic Self-Test + 5.2.2 Diagnostic Network Test + 5.3 Using the Adapter's LEDs + 5.4 Resolving I/O Conflicts + +6.0 TECHNICAL SUPPORT + 6.1 Contacting Crystal's Technical Support + 6.2 Information Required Before Contacting Technical Support + 6.3 Obtaining the Latest Driver Version + 6.3.1 Crystal's Web Site + 6.3.2 Crystal's Bulletin Board Service + + +8.3 OBTAINING THE LATEST DRIVER VERSION + +You can obtain the latest CS89XX drivers and support software from Crystal's +BBS or Web site. + + +8.3.1 CRYSTAL'S WEB SITE + +Crystal Semiconductor maintains a web page at http://www.crystal.com with the +the latest drivers and technical publications. + + +8.3.2 CRYSTAL'S BULLETIN BOARD SERVICE + + + + +1.0 CRYSTAL LAN CS8900/CS8920 ETHERNET ADAPTERS +=============================================================================== + + +1.1 PRODUCT OVERVIEW + +The CS8900-based ISA Ethernet Adapters from Crystal Semiconductor follow +IEEE 802.3 standards and support half or full-duplex operation in ISA bus +computers on 10 Mbps Ethernet networks. The adapters are designed for +operation in 16-bit ISA or EISA bus expansion slots and are available in +10BaseT-only or 3-media configurations (10BaseT, 10Base2, and AUI for 10Base-5 +or fiber networks). + +CS8920-based adapters are similar to the CS8900-based adapter with additional +features for Plug and Play (PnP) support and Wakeup Frame recognition. As +such, the configuration procedures differ somewhat between the two types of +adapters. Refer to the "Adapter Configuration" section for details on +configuring both types of adapters. + + +1.2 DRIVER DESCRIPTION + +The CS8900/CS8920 Ethernet Adapter driver for Linux supports the Linux v1.2.13 +and v2.0 (or greater) kernels. It can be compiled directly into the kernel or +loaded at run-time as a device driver module. + +1.2.1 Driver Name: cs89x0 + +1.2.2 Files in the Driver Archive: + + readme.txt - this file + release.txt - known defects and modifcation log + cs89x0.c - driver C code + cs89x0.h - driver header file + cs89x0.o - pre-compiled module (for v2.0 kernel) + + + +1.3 SYSTEM REQUIREMENTS + +The following hardware is required: + + * Crystal LAN (CS8900/20-based) Ethernet ISA Adapter + + * IBM or IBM-compatible PC with: + * An 80386 or higher processor + * 16 bytes of contiguous IO space available between 210h - 370h + * One available IRQ (5,10,11,or 12 for the CS8900, 3-7,9-15 for CS8920). + + * Appropriate cable (and connector for AUI, 10BASE-2) for your network + topology. + +The following software is required: + + * LINUX kernel version 1.2.13 or 2.X + + * CS8900/20 Setup Utility (DOS-based) + + * LINUX kernel sources for your kernel (if compiling into kernel) + + * GNU Toolkit (gcc and make) v2.6 or above (if compiling into kernel + or a module) + + + +1.4 LICENSING INFORMATION + +This program is free software; you can redistribute it and/or modify it under +the terms of the GNU General Public License as published by the Free Software +Foundation, version 1. + +This program is distributed in the hope that it will be useful, but WITHOUT +ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for +more details. + +For a full copy of the GNU General Public License, write to the Free Software +Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + + + +2.0 ADAPTER INSTALLATION and CONFIGURATION +=============================================================================== + +Both the CS8900 and CS8920-based adapters can be configured using parameters +stored in an on-board EEPROM. You must use the DOS-based CS8900/20 Setup +Utility if you want to change the adapter's configuration in EEPROM. + +When loading the driver as a module, you can specify many of the adapter's +configuration parameters on the command-line to override the EEPROM's settings +or for interface configuration when an EEPROM is not used. (CS8920-based +adapters must use an EEPROM.) See Section 3.0 LOADING THE DRIVER AS A MODULE. + +Since the CS8900/20 Setup Utility is a DOS-based application, you must install +and configure the adapter in a DOS-based system using the CS8900/20 Setup +Utility before installation in the target LINUX system. (Not required if +installing a CS8900-based adapter and the default configuration is acceptable.) + + +2.1 CS8900-BASED ADAPTER CONFIGURATION + +CS8900-based adapters shipped from Crystal Semiconductor have been configured +with the following "default" settings: + + Operation Mode: Memory Mode + IRQ: 10 + Base I/O Address: 300 + Memory Base Address: D0000 + Optimization: DOS Client + Transmission Mode: Half-duplex + BootProm: None + Media Type: Autodetect (3-media cards) or + 10BASE-T (10BASE-T only adapter) + +You should only change the default configuration settings if conflicts with +another adapter exists. To change the adapter's configuration, run the +CS8900/20 Setup Utility. + + +2.2 CS8920-BASED ADAPTER CONFIGURATION + +CS8920-based adapters are shipped from Crystal Semiconductor configured as Plug +and Play (PnP) enabled. However, since Linux is not currently a PnP compatible +operating system, you must install the CS8920 adapter in a DOS-based PC and +run the CS8900/20 Setup Utility to disable PnP and configure the adapter before +installation in the target Linux system. Failure to do this will leave the +adapter inactive and the driver will be unable to communicate with the +adapter. + + + **************************************************************** + * CS8920-BASED ADAPTERS: * + * * + * CS8920-BASED ADAPTERS ARE PLUG and PLAY ENABLED BY DEFAULT. * + * SCO UNIX IS NOT A PnP OPERATING SYSTEM. THEREFORE, YOU MUST * + * RUN THE CS8900/20 SETUP UTILITY TO DISABLE PnP SUPPORT AND * + * TO ACTIVATE THE ADAPTER. * + **************************************************************** + + + + +3.0 LOADING THE DRIVER AS A MODULE +=============================================================================== + +If the driver is compiled as a loadable module, you can load the driver module +with the 'insmod' command. Many of the adapter's configuration parameters can +be specified as command-line arguments to the load command. This facility +provides a means to override the EEPROM's settings or for interface +configuration when an EEPROM is not used. + +Example: + + insmod cs89x0.o io=0x200 irq=0xA media=aui + +This exmaple loads the module and configures the adapter to use an IO port base +address of 200h, interrupt 10, and use the AUI media connection. The following +configuration options are available on the command line: + +* io=### - specify IO address (200h-360h) +* irq=## - specify interrupt level +* mmode=##### - specify memory base address +* dma=# - specify dma channel +* media=rj45 - specify media type + or media=2 + or media=aui + or medai=auto +* duplex=f - specify forced half/full/autonegotiate duplex + or duplex=h + or duplex=auto +* debug=# - debug level + +NOTES: +* If an EEPROM is present, any specified command-line parameter will override +the corresponding configuration value stored in EEPROM. + +* If no "io" or "mmode" parameter is specified on the command-line, the driver +will scan for the adapter. When scanning, the driver only reads I/O ports. +This sometimes is not sufficient, (e.g. after a warm boot). If you wish to +allow the driver to perform a more aggressive scan (one write to the IO base +addresses to reset the data port pointer) you can specify an I/O address with +an address value one greater than the configured address. Example, to scan for +an adapter located at IO base 0x300, specify an IO address of 0x301. Only +ports between 200h and 360h at 20h intervals are scanned. + +* The "duplex=auto" parameter is only supported for the CS8920. + +* The minimum command-line configuration required if an EEPROM is not present +is: + + * io or mmode base address + * irq + * media type (no autodetect) + +The following addtional parameters are CS89XX defaults (values used with no +EEPROM or command-line argument). + + * DMA Burst = enabled + * IOCHRDY Enabled = enabled + * UseSA = enabled + * CS8900 defaults to half-duplex if not specified on command-line + * CS8920 defaults to autoneg if not specified on command-line + * Use reset defaults for other config parameters + +* You can use ifconfig to set the adapter's Ethernet address. + + + + +4.0 COMPILING THE DRIVER +=============================================================================== + +The cs89x0 driver can be compiled directly into the kernel or compiled into +a loadable device driver module. + +NOTE: This part of the description relates to adding the driver to a kernel +not containing the cs89x0 driver. This kernel already contains it. + +4.1 COMPILING THE DRIVER AS A LOADABLE MODULE + +To compile the driver into a loadable module, use the following command +(single command line, without quotes): + +"gcc -D__KERNEL__ -I/usr/src/linux/include -I/usr/src/linux/net/inet -Wall +-Wstrict-prototypes -O2 -fomit-frame-pointer -DMODULE -DCONFIG_MODVERSIONS +-c cs89x0.c" + + +4.2 COMPILING THE DRIVER INTO THE KERNEL + +To compile the driver directly into the kernel requires editing four +configuration files, copying the source file to the /linux/drivers/net +directory and then running the make utility to rebuild the kernel. + +1. Edit the following configuration files by adding the statements as +indicated. (When possible, try to locate the added text to the section of the +file containing similar statements). + +a.) In /usr/src/linux/drivers/net/CONFIG, add + +CS89x0_OPTS = + +Example: + + WD_OPTS = #-DWD_SHMEM=0xDD000 + EL2_OPTS = #-DEL2_AUI + CS89x0_OPTS = + NE_OPTS = + HP_OPTS = + PLIP_OPTS = + + +b.) In /usr/src/linux/drivers/net/Config.in, add: + +tristate 'CS89x0 support' CONFIG_CS89x0 + +Example: + + if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then + tristate 'ICL EtherTeam 16i/32 support' CONFIG_ETH16I + fi + + tristate 'CS89x0 support' CONFIG_CS89x0 + + tristate 'NE2000/NE1000 support' CONFIG_NE2000 + if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then + tristate 'NI5210 support' CONFIG_NI52 + + +c.) In /usr/src/linux/drivers/net/Makefile, add the following lines: + +ifeq ($(CONFIG_CS89x0),y) +L_OBJS += cs89x0.o +else + ifeq ($(CONFIG_CS89x0),m) + M_OBJS += cs89x0.o + endif +endif + + +d.) In /linux/drivers/net/Space.c file, add the line: + +extern int cs89x0_probe(struct device *dev); + + +Example: + + extern int ultra_probe(struct device *dev); + extern int wd_probe(struct device *dev); + extern int el2_probe(struct device *dev); + + extern int cs89x0_probe(struct device *dev); + + extern int ne_probe(struct device *dev); + extern int hp_probe(struct device *dev); + extern int hp_plus_probe(struct device *dev); + + +Also add: + + #ifdef CONFIG_CS89x0 + && cs89x0_probe(dev) + #endif + + +2.) Copy the driver source files (cs89x0.c and cs89x0.h) and this README file +into the /usr/src/linux/drivers/net directory. + + +3.) Run 'make config' followed by 'make dep' and finally 'make' to rebuild +the kernel. + + +4.3 COMPILING THE DRIVER FOR A LINUX v1.2.13 KERNEL + +To compile the driver for Linux v1.2.13 (into the kernel or as a module), +change the "SUPPORTS" define at the beginning of the cs89x0.c file. +Example: + +#define SUPPORTS_1_2_13 1 /* supports Linux kernel v1.2.13 */ + or +#define SUPPORTS_1_2_13 0 /* supports Linux kernel v2.0 (default) */ + + + +5.0 TESTING AND TROUBLESHOOTING +=============================================================================== + +5.1 KNOWN DEFECTS and LIMITATIONS + +Refer to the RELEASE.TXT file distributed as part of this archive for a list of +know defects, driver limitations, and work arounds. + + +5.2 TESTING THE ADAPTER + +Once the adapter has been installed and configured, the diagnostic option of +the CS8900/20 Setup Utility can be used to test the functionality of the +adapter and its network connection. Use the diagnostics 'Self Test' option to +test the functionality of the adapter with the hardware configuration you have +assigned. You can use the diagnostics 'Network Test' to test the ability of the +adapter to communicate across the Ethernet with another PC equipped with a +CS8900/20-based adapter card (it must also be running the CS8900/20 Setup +Utility). + + NOTE: The Setup Utility's diagnostics are designed to run in a + DOS-only operating system environment. DO NOT run the diagnostics + from a DOS or command prompt session under Windows 95, Windows NT, + OS/2, or other operating system. + + [AC - Question : Do they work in DOSEMU ?] + +To run the diagnostics tests on the CS8900/20 adapter: + + 1.) Boot DOS on the PC and start the CS8900/20 Setup Utility. + + 2.) The adapter's current configuration is displayed. Hit the ENTER key to + get to the main menu. + + 4.) Select 'Diagnostics' (ALT-G) from the main menu. + * Select 'Self-Test' to test the adapter's basic functionality. + * Select 'Network Test' to test the network connection and cabling. + + +5.2.1 DIAGNOSTIC SELF-TEST + +The diagnostic self-test checks the adapter's basic functionality as well as +its ability to communicate across the ISA bus based on the system resources +assigned during hardware configuration. The following tests are performed: + + * IO Register Read/Write Test + The IO Register Read/Write test insures that the CS8900/20 can be + accessed in IO mode, and that the IO base address is correct. + + * Shared Memory Test + The Shared Memory test insures the CS8900/20 can be accessed in memory + mode and that the range of memory addresses assigned does not conflict + with other devices in the system. + + * Interrupt Test + The Interrupt test insures there are no conflicts with the assigned IRQ + signal. + + * EEPROM Test + The EEPROM test insures the EEPROM can be read. + + * Chip RAM Test + The Chip RAM test insures the 4K of memory internal to the CS8900/20 is + working properly. + + * Internal Loop-back Test + The Internal Loop Back test insures the adapter's transmitter and + receiver are operating properly. If this test fails, make sure the + adapter's cable is connected to the network (check for LED activity for + example). + + * Boot PROM Test + The Boot PROM test insures the Boot PROM is present, and can be read. + Failure indicates the Boot PROM was not successfully read due to a + hardware problem or due to a conflicts on the Boot PROM address + assignment. (Test only applies if the adapter is configured to use the + Boot PROM option.) + +Failure of a test item indicates a possible system resource conflict with +another device on the ISA bus. In this case, you should use the Manual Setup +option to reconfigure the adapter by selecting a different value for the system +resource that failed. + + +5.2.2 DIAGNOSTIC NETWORK TEST + +The Diagnostic Network Test verifies a working network connection by +transferring data between two CS8900/20 adapters installed in different PCs +on the same network. (Note: the diagnostic network test should not be run +between two nodes across a router.) + +This test requires that each of the two PCs have a CS8900/20-based adapter +installed and have the CS8900/20 Setup Utility running. The first PC is +configured as a Responder and the other PC is configured as an Initiator. +Once the Initiator is started, it sends data frames to the Responder which +returns the frames to the Initiator. + +The total number of frames received and transmitted are displayed on the +Initiator's display, along with a count of the number of frames received and +transmitted OK or in error. The test can be terminated anytime by the user at +either PC. + +To setup the Diagnostic Network Test: + + 1.) Select a PC with a CS8900/20-based adapter and a known working network + connection to act as the Responder. Run the CS8900/20 Setup Utility + and select 'Diagnostics -> Network Test -> Responder' from the main + menu. Hit ENTER to start the Responder. + + 2.) Return to the PC with the CS8900/20-based adapter you want to test and + start the CS8900/20 Setup Utility. + + 3.) From the main menu, Select 'Diagnostic -> Network Test -> Initiator'. + Hit ENTER to start the test. + +You may stop the test on the Initiator at any time while allowing the Responder +to continue running. In this manner, you can move to additional PCs and test +them by starting the Initiator on another PC without having to stop/start the +Responder. + + + +5.3 USING THE ADAPTER'S LEDs + +The 2 and 3-media adapters have two LEDs visible on the back end of the board +located near the 10Base-T connector. + +Link Integrity LED: A "steady" ON of the green LED indicates a valid 10Base-T +connection. (Only applies to 10Base-T. The green LED has no significance for +a 10Base-2 or AUI connection.) + +TX/RX LED: The yellow LED lights briefly each time the adapter transmits or +receives data. (The yellow LED will appear to "flicker" on a typical network.) + + +5.4 RESOLVING I/O CONFLICTS + +An IO conflict occurs when two or more adapter use the same ISA resource (IO +address, memory address or IRQ). You can usually detect an IO conflict in one +of four ways after installing and or configuring the CS8900/20-based adapter: + + 1.) The system does not boot properly (or at all). + + 2.) The driver can not communicate with the adapter, reporting an "Adapter + not found" error message. + + 3.) You cannot connect to the network or the driver will not load. + + 4.) If you have configured the adapter to run in memory mode but the driver + reports it is using IO mode when loading, this is an indication of a + memory address conflict. + +If an IO conflict occurs, run the CS8900/20 Setup Utility and perform a +diagnostic self-test. Normally, the ISA resource in conflict will fail the +self-test. If so, reconfigure the adapter selecting another choice for the +resource in conflict. Run the diagnostics again to check for further IO +conflicts. + +In some cases, such as when the PC will not boot, it may be necessary to remove +the adapter and reconfigure it by installing it in another PC to run the +CS8900/20 Setup Utility. Once reinstalled in the target system, run the +diagnostics self-test to ensure the new configuration is free of conflicts +before loading the driver again. + +When manually configuring the adapter, keep in mind the typical ISA system +resource usage as indicated in the tables below. + +I/O Address Device IRQ Device +----------- -------- --- -------- + 200-20F Game I/O adapter 3 COM2, Bus Mouse + 230-23F Bus Mouse 4 COM1 + 270-27F LPT3: third parallel port 5 LPT2 + 2F0-2FF COM2: second serial port 6 Floppy Disk controller + 320-32F Fixed disk controller 7 LPT1 + 8 Real-time Clock + 9 EGA/VGA display adapter + 12 Mouse (PS/2) +Memory Address Device 13 Math Coprocessor +-------------- --------------------- 14 Hard Disk controller +A000-BFFF EGA Graphics Adpater +A000-C7FF VGA Graphics Adpater +B000-BFFF Mono Graphics Adapter +B800-BFFF Color Graphics Adapter +E000-FFFF AT BIOS + + + + +6.0 TECHNICAL SUPPORT +=============================================================================== + +6.1 CONTACTING CRYSTAL'S TECHNICAL SUPPORT + +Crystal's CS89XX Technical Application Support can be reached at: + +Telephone :(800) 888-5016 (from inside U.S. and Canada) + :(512) 442-7555 (from outside the U.S. and Canada) +Fax :(512) 912-3871 +Email :ethernet@crystal.cirrus.com +WWW :http://www.crystal.com + + +6.2 INFORMATION REQUIRED BEFORE CONTACTING TECHNICAL SUPPORT + +Before contacting Crystal for technical support, be prepared to provide as much +of the following information as possible. + +1.) Adapter type (CRD8900, CDB8900, CDB8920, etc.) + +2.) Adapter configuration + + * IO Base, Memory Base, IO or memory mode enabled, IRQ, DMA channel + * Plug and Play enabled/disabled (CS8920-based adapters only) + * Configured for media auto-detect or specific media type (which type). + +3.) PC System's Configuration + + * Plug and Play system (yes/no) + * BIOS (make and version) + * System make and model + * CPU (type and speed) + * System RAM + * SCSI Adapter + +4.) Software + + * CS89XX driver and version + * Your network operating system and version + * Your system's OS version + * Version of all protocol support files + +5.) Any Error Message displayed. + + + +6.3 OBTAINING THE LATEST DRIVER VERSION + +You can obtain the latest CS89XX drivers and support software from Crystal's +BBS or Web site. You can also contact Crystal's Technical Support (email: +ethernet@crystal.cirrus.com) and request that you be registered for automatic +software-update notification. + + +6.3.1 CRYSTAL'S WEB SITE + +Crystal Semiconductor maintains a web page at http://www.crystal.com with the +the latest drivers and technical publications. + + +6.3.2 CRYSTAL'S BULLETIN BOARD SERVICE + +Access to the BBS is available 24 hours a day, seven days a week. Baud +rates from 300K to 14.4K are supported as well as most common file transfer +protocols. + +To access the BBS, set your terminal software to use 8 data bits, 1 stop bit, +and no parity. Dial (512) 441-3265 and press after connection is made. +Login using your account name and password. (If you do not have an account, +you may login as "GUEST". No password is required for the Guest account.) + +From the main system menu, select the "Enter Public File Area" menu option. +From the Public File Area menu, select the "LAN (Local Area Network)" file +area. A list of the latest drivers and support utilities available for the +CS89XX ISA Ethernet adapter will be presented along with the option to download +the file(s) of your choice. + + diff -ur --new-file old/linux/Documentation/networking/ip-sysctl.txt new/linux/Documentation/networking/ip-sysctl.txt --- old/linux/Documentation/networking/ip-sysctl.txt Thu Jan 1 01:00:00 1970 +++ new/linux/Documentation/networking/ip-sysctl.txt Wed Dec 18 10:45:43 1996 @@ -0,0 +1,94 @@ +/proc/sys/net/ipv4/* variables: + +ip_forwarding - "SNMP" BOOLEAN + 2 - disabled (default) + 1 - enabled + + This variable is special, its change resets all configuration + parameters to their default state (RFC1122 for hosts, RFC1812 + for routers) + +ip_default_ttl - INTEGER + default 64 + +ip_log_martians - BOOLEAN + log packets with strange or impossible addresses. + default TRUE (router) + FALSE (host) + +ip_accept_redirects - BOOLEAN + Accept ICMP redirect messages. + default TRUE (host) + FALSE (router) + +ip_secure_redirects - BOOLEAN + Accept ICMP redirect messages only for gateways, + listed in default gateway list. + default TRUE + +ip_addrmask_agent - BOOLEAN + Reply to ICMP ADDRESS MASK requests. + default TRUE (router) + FALSE (host) + +ip_rfc1620_redirects - BOOLEAN + Send(router) or accept(host) RFC1620 shared media redirects. + Overrides ip_secure_redirects. + default TRUE (should be FALSE for distributed version, + but I use it...) + +ip_bootp_agent - BOOLEAN + Accept packets with source address of sort 0.b.c.d + and destined to this host, broadcast or multicast. + Such packets are silently ignored otherwise. + + default FALSE + +ip_bootp_relay - BOOLEAN + Accept packets with source address 0.b.c.d destined + not to this host as local ones. It is supposed, that + BOOTP relay deamon will catch and forward such packets. + + default FASLE + Not Implemented Yet. + + +ip_source_route - BOOLEAN + Accept packets with SRR option. + default TRUE (router) + FALSE (host) + + +ip_no_pmtu_disc - BOOLEAN + Disable Path MTU Discovery. + default FALSE + +ip_rfc1812_filter - INTEGER + 2 - do source validation by reversed path, as specified in RFC1812 + Recommended option for single homed hosts and stub network + routers. Could cause troubles for complicated (not loop free) + networks running a slow unreliable protocol (sort of RIP), + or using static routes. + + 1 - (DEFAULT) Weaker form of RP filtering: drop all the packets + that look as sourced at a directly connected interface, but + were input from another interface. + + 0 - No source validation. + + NOTE: do not disable this option! All BSD derived routing software + (sort of gated, routed etc. etc.) is confused by such packets, + even if they are valid. + +ip_fib_model - INTEGER + 0 - (DEFAULT) Standard model. All routes are in class MAIN. + 1 - default routes go to class DEFAULT. This mode should + be very convenient for small ISPs making policy routing. + 2 - RFC1812 compliant model. + Interface routes are in class MAIN. + Gateway routes are in class DEFAULT. + + + +Alexey Kuznetsov. +kuznet@ms2.inr.ac.ru diff -ur --new-file old/linux/Documentation/networking/lapb-module.txt new/linux/Documentation/networking/lapb-module.txt --- old/linux/Documentation/networking/lapb-module.txt Thu Jan 1 01:00:00 1970 +++ new/linux/Documentation/networking/lapb-module.txt Thu Jan 2 14:13:24 1997 @@ -0,0 +1,257 @@ + The Linux LAPB Module Interface 1.3 + + Jonathan Naylor 29.12.96 + +The LAPB module will be a seperately compiled module for use by any parts of +the Linux operating system that require a LAPB service. This document +defines the interfaces to, and the services provided by this module. The +term module in this context does not imply that the LAPB module is a +seperately loadable module, although it may be. The term module is used in +its more standard meaning. + +The interface to the LAPB module consists of functions to the module, +callbacks from the module to indicate important state changes, and +structures for getting and setting information about the module. + +Structures +---------- + +Probably the most important structure is the skbuff structure for holding +received and transmitted data, however it is beyond the scope of this +document. + +The two LAPB specific structures are the LAPB initialisation structure and +the LAPB parameter structure. These will be defined in a standard header +file, . The header file is internal to the LAPB +module and is not for use. + +LAPB Initialisation Structure +----------------------------- + +This structure is used only once, in the call to lapb_register (see below). +It contains information about the device driver that requires the services +of the LAPB module. + +struct lapb_register_struct { + void (*connect_confirmation)(int token, int reason); + void (*connect_indication)(int token, int reason); + void (*disconnect_confirmation)(int token, int reason); + void (*disconnect_indication)(int token, int reason); + void (*data_indication)(int token, struct sk_buff *skb); + void (*data_transmit)(int token, struct sk_buff *skb); +}; + +Each member of this structure corresponds to a function in the device driver +that is called when a particular event in the LAPB module occurs. These will +be described in detail below. If a callback is not required (!!) then a NULL +may be substituted. + + +LAPB Parameter Structure +------------------------ + +This structure is used with the lapb_getparms and lapb_setparms functions +(see below). They are used to allow the device driver to get and set the +operational parameters of the LAPB implementation for a given connection. + +struct lapb_parms_struct { + unsigned int t1; + unsigned int t1timer; + unsigned int t2; + unsigned int t2timer; + unsigned int n2; + unsigned int n2count; + unsigned int window; + unsigned int state; + unsigned int mode; +}; + +T1 and T2 are protocol timing parameters and are given in units of 100ms. N2 +is the maximum number of tries on the link before it is declared a failure. +The window size is the maximum number of outstanding data packets allowed to +be unacknowledged by the remote end, the value of the window is between 1 +and 7 for a standard LAPB link, and between 1 and 127 for an extended LAPB +link. + +The mode variable is a bit field is used for setting (at present) three values. +The bit fields have the following meanings: + +Bit Meaning +0 LAPB operation (0=LAPB_STANDARD 1=LAPB_EXTENDED). +1 [SM]LP operation (0=LAPB_SLP 1=LAPB=MLP). +2 DTE/DCE operation (0=LAPB_DTE 1=LAPB_DCE) +3-31 Reserved, must be 0. + +Extended LAPB operation indicates the use of extended sequence numbers and +consequently larger window sizes, the default is standard LAPB operation. +MLP operation is the same as SLP operation except that the addresses used by +LAPB are different to indicate the mode of operation, the default is Single +Link Procedure. The difference between DCE and DTE operation is (i) the +addresses used for commands and responses, and (ii) when the DCE is not +connected, it sends DM without polls set, every T1. The upper case constant +names will be defined in the public LAPB header file. + + +Functions +--------- + +The LAPB module provides a number of function entry points. + + +int lapb_register(void *token, struct lapb_register_struct); + +This must be called before the LAPB module may be used. If the call is +successful then LAPB_OK is returned. The token must be a unique identifier +generated by the device driver to allow for the unique identification of the +instance of the LAPB link. It is returned by the LAPB module in all of the +callbacks, and is used by the device driver in all calls to the LAPB module. +For multiple LAPB links in a single device driver, multiple calls to +lapb_register must be made. The format of the lapb_register_struct is given +above. The return values are: + +LAPB_OK LAPB registered successfully. +LAPB_BADTOKEN Token is already registered. +LAPB_NOMEM Out of memory + + +int lapb_unregister(void *token); + +This releases all the resources associated with a LAPB link. Any current +LAPB link will be abandoned without further messages being passed. After +this call, the value of token is no longer valid for any calls to the LAPB +function. The valid return values are: + +LAPB_OK LAPB unregistered successfully. +LAPB_BADTOKEN Invalid/unknown LAPB token. + + +int lapb_getparms(void *token, struct lapb_parms_struct *parms); + +This allows the device driver to get the values of the current LAPB +variables, the lapb_parms_struct is described above. The valid return values +are: + +LAPB_OK LAPB getparms was successful. +LAPB_BADTOKEN Invalid/unknown LAPB token. + + +int lapb_setparms(void *token, struct lapb_parms_struct *parms); + +This allows the device driver to set the values of the current LAPB +variables, the lapb_parms_struct is described above. The values of t1timer, +t2timer and n2count are ignored, likewise changing the mode bits when +connected will be ignored. An error implies that none of the values have +been changed. The valid return values are: + +LAPB_OK LAPB getparms was successful. +LAPB_BADTOKEN Invalid/unknown LAPB token. +LAPB_INVALUE One of the values was out of its allowable range. + + +int lapb_connect_request(void *token); + +Initiate a connect using the current parameter settings. The valid return +values are: + +LAPB_OK LAPB is starting to connect. +LAPB_BADTOKEN Invalid/unknown LAPB token. +LAPB_CONNECTED LAPB module is already connected. + + +int lapb_disconnect_request(void *token); + +Initiate a disconnect. The valid return values are: + +LAPB_OK LAPB is starting to disconnect. +LAPB_BADTOKEN Invalid/unknown LAPB token. +LAPB_NOTCONNECTED LAPB module is not connected. + + +int lapb_data_request(void *token, struct sk_buff *skb); + +Queue data with the LAPB module for transmitting over the link. If the call +is successful then the skbuff is owned by the LAPB module and may not be +used by the device driver again. The valid return values are: + +LAPB_OK LAPB has accepted the data. +LAPB_BADTOKEN Invalid/unknown LAPB token. +LAPB_NOTCONNECTED LAPB module is not connected. + + +int lapb_data_received(void *token, struct sk_buff *skb); + +Queue data with the LAPB module which has been received from the device. It +is expected that the data passed to the LAPB module has skb->data pointing +to the beginning of the LAPB data. If the call is successful then the skbuff +is owned by the LAPB module and may not be used by the device driver again. +The valid return values are: + +LAPB_OK LAPB has accepted the data. +LAPB_BADTOKEN Invalid/unknown LAPB token. + + +Callbacks +--------- + +These callbacks are functions provided by the device driver for the LAPB +module to call when an event occurs. They are registered with the LAPB +module with lapb_register (see above) in the structure lapb_register_struct +(see above). + + +void (*connect_confirmation)(void *token, int reason); + +This is called by the LAPB module when a connection is established after +being requested by a call to lapb_connect_request (see above). The reason is +always LAPB_OK. + + +void (*connect_indication)(void *token, int reason); + +This is called by the LAPB module when the link is established by the remote +system. The value of reason is always LAPB_OK. + + +void (*disconnect_confirmation)(void *token, int reason); + +This is called by the LAPB module when an event occurs after the device +driver has called lapb_disconnect_request (see above). The reason indicates +what has happended. In all cases the LAPB link can be regarded as being +terminated. The values for reason are: + +LAPB_OK The LAPB link was terminated normally. +LAPB_NOTCONNECTED The remote system was not connected. +LAPB_TIMEDOUT No response was received in N2 tries from the remote + system. + + +void (*disconnect_indication)(void *token, int reason); + +This is called by the LAPB module when the link is terminated by the remote +system or another event has occurred to terminate the link. This may be +returned in response to a lapb_connect_request (see above) if the remote +system refused the request. The values for reason are: + +LAPB_OK The LAPB link was terminated normally by the remote + system. +LAPB_REFUSED The remote system refused the connect request. +LAPB_NOTCONNECTED The remote system was not connected. +LAPB_TIMEDOUT No response was received in N2 tries from the remote + system. + + +void (*data_indication)(void *token, struct sk_buff *skb); + +This is called by the LAPB module when data has been received from the +remote system that should be passed onto the next layer in the protocol +stack. The skbuff becomes the property of the device driver and the LAPB +module will not perform any more actions on it. The skb->data pointer will +be pointing to the first byte of data after the LAPB header. + + +void (*data_transmit)(void *token, struct sk_buff *skb); + +This is called by the LAPB module when data is to be transmitted to the +remote system by the device driver. The skbuff becomes the property of the +device driver and the LAPB module will not perform any more actions on it. +The skb->data pointer will be pointing to the first byte of the LAPB header. diff -ur --new-file old/linux/Documentation/networking/net-modules.txt new/linux/Documentation/networking/net-modules.txt --- old/linux/Documentation/networking/net-modules.txt Fri Apr 12 08:49:29 1996 +++ new/linux/Documentation/networking/net-modules.txt Mon May 12 19:35:37 1997 @@ -89,8 +89,9 @@ (Probes ports: 0x300, 0x310, 0x330, 0x350, 0x250, 0x280, 0x2A0, 0x2E0) 3c505.c: - io = 0x300 + io = 0 irq = 0 + dma = 6 (not autoprobed) (Probes ports: 0x300, 0x280, 0x310) 3c507.c: @@ -108,6 +109,10 @@ 8390.c: (No public options, several other modules need this one) +a2065.c: + Since this is a Zorro board, it supports full autoprobing, even for + multiple boards. (m68k/Amiga) + ac3200.c: io = 0 (Checks 0x1000 to 0x8fff in 0x1000 intervals) irq = 0 (Read from config register) @@ -132,11 +137,24 @@ 0x310, 0x320, 0x330, 0x340, 0x350, 0x360, 0x370, 0x380, 0x390, 0x3A0, 0x3E0, 0x3F0 ) +ariadne.c: + Since this is a Zorro board, it supports full autoprobing, even for + multiple boards. (m68k/Amiga) + at1700.c: io = 0x260 irq = 0 (Probes ports: 0x260, 0x280, 0x2A0, 0x240, 0x340, 0x320, 0x380, 0x300) +atari_bionet.c: + Supports full autoprobing. (m68k/Atari) + +atari_pamsnet.c: + Supports full autoprobing. (m68k/Atari) + +atarilance.c: + Supports full autoprobing. (m68k/Atari) + atp.c: *Not modularized* (Probes ports: 0x378, 0x278, 0x3BC; fixed IRQs: 5 and 7 ) @@ -211,9 +229,15 @@ On ISA-bus probes all ports from 0x100 thru to 0x3E0 in increments of 0x020) +hydra.c: + Since this is a Zorro board, it supports full autoprobing, even for + multiple boards. (m68k/Amiga) + ibmtr.c: - io = 0xA20 - (Probes ports: 0xA20, 0xA24 -- Ok, 0x220, 0x224, but IBM style..) + io = 0xa20, 0xa24 (autoprobed by default) + irq = 0 (driver cannot select irq - read from hardware) + mem = 0 (shared memory base set at 0xd0000 and not yet + able to override thru mem= parameter.) lance.c: *Not modularized* (PCI, and ISA probing; "CONFIG_PCI" needed for PCI support) diff -ur --new-file old/linux/Documentation/networking/policy-routing.txt new/linux/Documentation/networking/policy-routing.txt --- old/linux/Documentation/networking/policy-routing.txt Thu Jan 1 01:00:00 1970 +++ new/linux/Documentation/networking/policy-routing.txt Wed Dec 18 10:45:43 1996 @@ -0,0 +1,150 @@ +Classes +------- + + "Class" is complete routing table in common sence. + I.e. it is tree of nodes (destination prefix, tos, metric) + with attached information: gateway, device etc. + This tree is looked up as specified in RFC1812 5.2.4.3 + 1. Basic match + 2. Longest match + 3. Weak TOS. + 4. Metric. (should not be in kernel space, but they are) + 5. Additional pruning rules. (not in kernel space). + + We have two special type of nodes: + REJECT - abort route lookup and return an error value. + THROW - abort route lookup in this class. + + + Currently number of classes is limited by 255 + (0 is reserved for "not specified class") + + Three classes are builtin: + + RT_CLASS_LOCAL=255 - local interface addresses, + broadcasts, nat addresses. + + RT_CLASS_MAIN=254 - all normal routes are put there + by default. + + RT_CLASS_DEFAULT=253 - if ip_fib_model==1, then + normal default routes are put there, if ip_fib_model==2 + all gateway routes are put there. + + +Rules +----- + Rule is record of (src prefix, src interface, tos, dst prefix) + with attached information. + + Rule types: + RTP_ROUTE - lookup in attached class + RTP_NAT - lookup in attached class and if a match is found, + translate packet source address. + RTP_MASQUERADE - lookup in attached class and if a match is found, + masquerade packet as sourced by us. + RTP_DROP - silently drop the packet. + RTP_REJECT - drop the packet and send ICMP NET UNREACHABLE. + RTP_PROHIBIT - drop the packet and send ICMP COMM. ADM. PROHIBITED. + + Rule flags: + RTRF_LOG - log route creations. + RTRF_VALVE - One way route (used with masquerading) + +Default setup: + +root@amber:/pub/ip-routing # iproute -r +Kernel routing policy rules +Pref Source Destination TOS Iface Cl + 0 default default 00 * 255 + 254 default default 00 * 254 + 255 default default 00 * 253 + + +Lookup algorithm +---------------- + + We scan rules list, and if a rule is matched, apply it. + If route is found, return it. + If it is not found or THROW node was matched, continue + to scan rules. + +Applications +------------ + +1. Just ignore classes. All the routes are put to MAIN class + (and/or to DEFAULT class). + + HOWTO: iproute add PREFIX [ tos TOS ] [ gw GW ] [ dev DEV ] + [ metric METRIC ] [ reject ] ... (look at iproute utility) + + or use route utility from current net-tools. + +2. Opposite case. Just forget all that you know about routing + tables. Every rule is supplied with its own gateway, device + info. record. This approach is not appropriate for automated + route maintanance, but it is ideal for manual configuration. + + HOWTO: iproute addrule [ from PREFIX ] [ to PREFIX ] [ tos TOS ] + [ dev INPUTDEV] [ pref PREFERENCE ] route [ gw GATEWAY ] + [ dev OUTDEV ] ..... + + Warning: just now size of routing table in this approach is + limited by 256. If someone will like this model, I'll + relax this limitation. + +3. OSPF classes (see RFC1583, RFC1812 E.3.3) + Very clean, stable and robust algorithm for OSPF routing + domains. Unfortunately, it is not used widely in the Internet. + + Proposed setup: + 255 local addresses + 254 interface routes + 253 ASE routes with external metric + 252 ASE routes with internal metric + 251 inter-area routes + 250 intra-area routes for 1st area + 249 intra-area routes for 2nd area + etc. + + Rules: + iproute addrule class 253 + iproute addrule class 252 + iproute addrule class 251 + iproute addrule to a-prefix-for-1st-area class 250 + iproute addrule to another-prefix-for-1st-area class 250 + ... + iproute addrule to a-prefix-for-2nd-area class 249 + ... + + Area classes must be terminated with reject record. + iproute add default reject class 250 + iproute add default reject class 249 + ... + +4. The Variant Router Requirements Algorithm (RFC1812 E.3.2) + Create 16 classes for different TOS values. + It is funny, but pretty useless algorithm. + I listed it just to show power of new routing code. + +5. All the variaty of combinations...... + + +GATED +----- + + Gated does not understand classes, but it will work + happily in MAIN+DEFAULT. All policy routes can be set + and maintained manually. + +IMPORTANT NOTE +-------------- + route.c has compilation time switch CONFIG_IP_LOCAL_RT_POLICY. + If it is set, locally originated packets are routed + using all the policy list. It is not very convenient and + pretty ambiguous, when used with NAT and masquerading. + I set it to FALSE by default. + + +Alexey Kuznetov +kuznet@ms2.inr.ac.ru diff -ur --new-file old/linux/Documentation/networking/routing.txt new/linux/Documentation/networking/routing.txt --- old/linux/Documentation/networking/routing.txt Thu Jan 1 01:00:00 1970 +++ new/linux/Documentation/networking/routing.txt Thu Dec 19 09:31:52 1996 @@ -0,0 +1,46 @@ +The directory ftp.inr.ac.ru:/ip-routing contains: + +- iproute.c - "professional" routing table maintainance utility. + +- rdisc.tar.gz - rdisc daemon, ported from Sun. + STRONGLY RECOMMENDED FOR ALL HOSTS. + +- routing.tgz - original Mike McLagan's route by source patch. + Currently it is obsolete. + +- gated.dif-ss.gz - gated-R3_6Alpha_2 fixes. + Look at README.gated + +- mrouted-3.8.dif.gz - mrouted-3.8 fixes. + +- rtmon.c - trivial debugging utility: reads and stores netlink. + + +NEWS for user. + +- Policy based routing. Routing decisions are made on the base + not only of destination address, but also source address, + TOS and incoming interface. +- Complete set of IP level control messages. + Now Linux is the only in the world OS comlying to RFC requirements. + Great win 8) +- New interface addressing paradigm. + Assignment of address ranges to interface, + multiple prefixes etc. etc. + Do not bother, it is compatible with old one. Moreover: +- You more need not make "route add aaa.bbb.ccc... eth0", + it is made automatically. +- "Abstract" UNIX sockets and security enhancements. + It is necessary to use TIRPC and TLI emulation library. + +NEWS for hacker. + +- New destination cache. Flexible, robust and just beatiful. +- Network stack is reordered, simplified, optimized, a lot of bugs fixed. + (well, and new bugs are intoduced, but I've yet not seen them 8)) + It is difficult to descibe all the changes, look into source. + +If you see this file, then this patch works 8) + +Alexey Kuznetsov. +kuznet@ms2.inr.ac.ru diff -ur --new-file old/linux/Documentation/networking/shaper.txt new/linux/Documentation/networking/shaper.txt --- old/linux/Documentation/networking/shaper.txt Thu Jan 1 01:00:00 1970 +++ new/linux/Documentation/networking/shaper.txt Thu Dec 12 15:51:07 1996 @@ -0,0 +1,49 @@ +Traffic Shaper For Linux + +This is the current ALPHA release of the traffic shaper for Linux. It works +within the following limits: + +o Minimum shaping speed is currently about 9600 baud (it can only +shape down to 1 byte per clock tick) + +o Maximum is about 256K, it will go above this but get a bit blocky. + +o If you ifconfig the master device that a shaper is attached to down +then your machine will follow. + +o The shaper must be a module. + + +Setup: + + A shaper device is configured using the shapeconfig program. +Typically you will do something like this + +shapecfg attach shaper0 eth1 +shapecfg speed shaper0 64000 +ifconfig shaper0 myhost netmask 255.255.255.240 broadcast 1.2.3.4.255 up +route add -net some.network netmask a.b.c.d dev shaper0 + +The shaper should have the same IP address as the device it is attached to +for normal use. + +Gotchas: + + The shaper shapes transmitted traffic. Its rather impossible to +shape received traffic except at the end (or a router) transmiting it. + + Gated/routed/rwhod/mrouted all see the shaper as an additional device +and will treat it as such unless patched. Note that for mrouted you can run +mrouted tunnels via a traffic shaper to control bandwidth usage. + + The shaper is device/route based. This makes it very easy to use +with any setup BUT less flexible. You may well want to combine this patch +with Mike McLagan 's patch to allow routes to be +specified by source/destination pairs. + + There is no "borrowing" or "sharing" scheme. This is a simple +traffic limiter. I'd like to implement Van Jacobson and Sally Floyd's CBQ +architecture into Linux one day (maybe in 2.1 sometime) and do this with +style. + +Alan diff -ur --new-file old/linux/Documentation/networking/wan-router.txt new/linux/Documentation/networking/wan-router.txt --- old/linux/Documentation/networking/wan-router.txt Thu Jan 1 01:00:00 1970 +++ new/linux/Documentation/networking/wan-router.txt Sun Feb 2 14:18:29 1997 @@ -0,0 +1,130 @@ +------------------------------------------------------------------------------ +WAN Router for Linux Operating System +------------------------------------------------------------------------------ +Version 1.0.0 +December 31, 1996 +Author: Gene Kozin +Copyright (c) 1995-1996 Sangoma Technologies Inc. +------------------------------------------------------------------------------ + +INTRODUCTION + +Wide Area Networks (WANs) are used to interconnect Local Area Networks (LANs) +and/or stand-alone hosts over vast distances with data transfer rates +significantly higher than those achievable with commonly used dial-up +connections. + +Usually an external device called `WAN router' sitting on your local network +or connected to your machine's serial port provides physical connection to +WAN. Although router's job may be as simple as taking your local network +traffic, converting it to WAN format and piping it through the WAN link, these +devices are notoriously expensive, with prices as much as 2 - 5 times higher +then the price of a typical PC box. + +Alternatively, considering robustness and multitasking capabilities of Linux, +an internal router can be build (most routers use some sort of stripped down +Unix-like operating system anyway). With number of relatively inexpensive WAN +interface cards available on the market, a perfectly usable router can be +built for less than half a price of an external router. Yet a Linux box +acting as a router can still be used for other purposes, such as firewalling, +running FTP, WWW or DNS server, etc. + +This kernel module introduces the notion of a WAN Link Driver (WLD) to Linux +operating system and provides generic hardware-independent services for such +drivers. Why existing Linux network device interface can not be used for +this purpose? Well, it can. However, there are few key differences between +typical network interface (i.e. ethernet) and WAN link. + +Many WAN protocols, such as X.25 and frame relay, allow for multiple logical +connections (known as `virtual circuits' in X.25 terminology) over a single +physical link. Each such virtual circuit may (and almost always does) lead +to diffrent geographical location and, therefore, different network. As a +result, it is the virtual circuit, not the physical link, that represents a +route and, therefore, a network interface in Linux terms. + +To further complicate things, virtual cuircits are usually volatile in nature +(excluding so called `permanent' virtual circuits or PVCs). With almost no +time required to set up and tear down virtual circuit, it is highly desirable +to implement on-demand connections in order to minimize network charges. So +unlike typical network driver, the WAN driver must be able to handle multiple +network interfaces and cope with multiple virtual circuits come into existance +and go away dynamically. + +Last, but not least, WAN configuration is much more complex than that of say +ethernet and may well amount to several dozens of parameters. Some of them +are "link-wide" while others are virtual circuit-specific. The same holds +true for WAN statistics which is by far more extensive and extremely useful +when troubleshooting WAN connections. Extending ifconfig utility to suite +these needs may be possible, but does not seem quite reasonable. Therefore, a +WAN configuration utility and corresponding application programmer's interface +is needed for this purpose. + +Most of these problems are taken care of by this module. It's goal is to +provide user with more-or-less standard look and feel for all WAN devices and +assist WAN device driver writer by providing common services, such as: + + o User-level interface via /proc filesystem + o Centralized configuration + o Device managenent (setup, shutdown, etc.) + o Network interface management (dynamic creation/destruction) + o Protocol encapsulation/decapsulation + +To ba able to use Linux WAN Router you will also need a WAN Tools package +available from + + ftp.sangoma.com/pub/linux/wantools-X.Y.Z.tgz + +For technical questions and/or comments regarding this product please e-mail +to genek@compuserve.com or dm@sangoma.com. + + + +COPYRIGHT AND LICENSING INFORMATION + +This program is free software; you can redistribute it and/or modify it under +the terms of the GNU General Public License as published by the Free Software +Foundation; either version 2, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, but WITHOUT +ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + +You should have received a copy of the GNU General Public License along with +this program; if not, write to the Free Software Foundation, Inc., 675 Mass +Ave, Cambridge, MA 02139, USA. + + + +KNOWN BUGS AND LIMITATIONS + +/proc user interface is not complete yet. + + + +ACKNOLEGEMENTS + +This product is based on the WANPIPE(tm) Multiprotocol WAN Router developed +by Sangoma Technologies Inc. for Linux 1.2.x. Release of Linux 2.0 in summer +1996 commanded adequate changes to the WANPIPE code to take full advantage of +new Linux features. Instead of continuing developing proprietory interface +specific to Sangoma WAN cards, we decided to put all hardware-independent code +into a separate module and define two levels of interfaces - one for user- +level applications and another for kernel-level WAN drivers. + +Many usefull ideas concerning hardware-independent interface implementation +were given by Mike McLagan and his implementation +of the Frame Relay router and drivers for Sangoma cards (dlci/sdla). + +Special thanks to all the WANPIPE users who performed field-testing, reported +bugs and made valuable comments and suggestions that help us to improve this +product. + + + +REVISION HISTORY + +1.0.0 December 31, 1996 +-------------------------- + o Initial version. + +>>>>>> END <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< diff -ur --new-file old/linux/Documentation/networking/x25-iface.txt new/linux/Documentation/networking/x25-iface.txt --- old/linux/Documentation/networking/x25-iface.txt Thu Jan 1 01:00:00 1970 +++ new/linux/Documentation/networking/x25-iface.txt Thu Jan 2 14:13:24 1997 @@ -0,0 +1,64 @@ + X.25 Device Driver Interface 1.1 + + Jonathan Naylor 26.12.96 + +This is a description of the messages to be passed between the X.25 Packet +Layer and the X.25 device driver. They are designed to allow for the easy +setting of the LAPB mode from within the Packet Layer. + +The X.25 device driver will be coded normally as per the Linux device driver +standards, most X.25 device drivers will be moderately similar to the +already existing Eethernet device drivers. However unlike those drivers, the +X.25 device driver has a state associated with it, and this information +needs to be passed to and from the Packet Layer for proper operation. + +All messages are held in sk_buff's just like real data to be transmitted +over the LAPB link. The first byte of the skbuff indicates the meaning of +the rest of the skbuff, if any more information does exist. + + +Packet Layer to Device Driver +----------------------------- + +First Byte = 0x00 + +This indicates that the rest of the skbuff contains data to be transmitted +over the LAPB link. The LAPB link should already exist before any data is +passed down. + +First Byte = 0x01 + +Establish the LAPB link. If the link is already established then the connect +confirmation message should be returned as soon as possible. + +First Byte = 0x02 + +Terminate the LAPB link. If it is already disconnected then the disconnect +confirmation message should be returned as soon as possible. + +First Byte = 0x03 + +LAPB parameters. To be defined. + + +Device Driver to Packet Layer +----------------------------- + +First Byte = 0x00 + +This indicates that the rest of the skbuff contains data that has been +received over the LAPB link. + +First Byte = 0x01 + +LAPB link has been established. The same message is used for both a LAPB +link connect_confirmation and a connect_indication. + +First Byte = 0x02 + +LAPB link has been terminated. This same message is used for both a LAPB +link disconnect_confirmation and a disconnect_indication. + +First Byte = 0x03 + +LAPB parameters. To be defined. diff -ur --new-file old/linux/Documentation/networking/x25.txt new/linux/Documentation/networking/x25.txt --- old/linux/Documentation/networking/x25.txt Thu Jan 1 01:00:00 1970 +++ new/linux/Documentation/networking/x25.txt Thu Jan 2 14:13:24 1997 @@ -0,0 +1,45 @@ +Linux X.25 Project + +As my third year dissertation at University I have taken it upon myself to +write an X.25 implementation for Linux. My aim is to provide a complete X.25 +Packet Layer and a LAPB module to allow for "normal" X.25 to be run using +Linux. There are two sorts of X.25 cards available, intelligent ones that +implement LAPB on the card itself, and unintelligent ones that simply do +framing, bit-stuffing and checksumming. These both need to be handled by the +system. + +I therefore decided to write the implementation such that as far as the +Packet Layer is concerned, the link layer was being performed by a lower +layer of the Linux kernel and therefore it did not concern itself with +implementation of LAPB. Therefore the LAPB modules would be called by +unintelligent X.25 card drivers and not by intelligent ones, this would +provide a uniform device driver interface, and simplify configuration. + +To confuse matters a little, an 802.2 LLC implementation for Linux is being +written which will allow X.25 to be run over an Ethernet (or Token Ring) and +conform with the JNT "Pink Book", this will have a different interface to +the Packet Layer but there will be no confusion since the class of device +being served by the LLC will be completely seperate from LAPB. The LLC +implementation is being done as part of another protocol project (SNA) and +by a different author. + +Just when you thought that it could not become more confusing, another +option appeared, XOT. This allows X.25 Packet Layer frames to operate over +the Internet using TCP/IP as a reliable link layer. RFC1613 specifies the +format and behaviour of the protocol. If time permits this option will also +be actively considered. + +A linux-x25 mailing list has been created at vger.rutgers.edu to support the +development and use of Linux X.25. It is early days yet, but interested +parties are welcome to subscribe to it. Just send a message to +Majordomo@vger.rutgers.edu with the following in the message body: + +subscribe linux-x25 +end + +The contents of the Subject line are ignored. + +Jonathan + +jsn@cs.nott.ac.uk +g4klx@g4klx.demon.co.uk diff -ur --new-file old/linux/Documentation/networking/z8530drv.txt new/linux/Documentation/networking/z8530drv.txt --- old/linux/Documentation/networking/z8530drv.txt Fri Apr 12 08:49:29 1996 +++ new/linux/Documentation/networking/z8530drv.txt Tue Oct 29 14:33:37 1996 @@ -4,24 +4,22 @@ Internet: ========= -ftp.ucsd.edu:/hamradio/packet/tcpip/incoming/z8530drv-2.0.dl1bke.real.tar.gz +1. db0bm.automation.fh-aachen.de/incoming/dl1bke/z8530drv-utils-3.0.tar.gz -[ - if you can't find it there, try: - .../tcpip/linux/z8530drv-2.0.dl1bke.tar.gz - -] +2. ftp.ucsd.edu:/hamradio/packet/tcpip/incoming/z8530drv-utils-3.0.tar.gz + If you can't find it there, try .../tcpip/linux/z8530drv-utils-3.0.tar.gz and various mirrors (i.e. nic.switch.ch) ---------------------------------------------------------------------------- +Please note that the information in this document may be hopelessly outdated. +----------------------------------------------------------------------------- SCC.C - Linux driver for Z8530 based HDLC cards for AX.25 ******************************************************************** - (c) 1993,1995 by Joerg Reuter DL1BKE + (c) 1993,1996 by Joerg Reuter DL1BKE portions (c) 1993 Guido ten Dolle PE1NNZ @@ -37,7 +35,12 @@ 1. if compiled as module: loading the module 2. Setup of hardware, MODEM and KISS parameters with sccinit - 3. Attachment of each channel in the packet software + 3. Attach each channel to the Linux kernel AX.25 with "ifconfig" + +Unlike the versions below 2.4 this driver is a real network device +driver. If you want to run xNOS instead of our fine kernel AX.25 +use a 2.x version (available from above sites) or read the +AX.25-HOWTO on how to emulate a KISS TNC on network device drivers. 1.1 Loading the module @@ -54,15 +57,14 @@ You should include the insmod in one of the /etc/rc.d/rc.* files, and don't forget to insert a call of sccinit after that. It -will read your +will read your /etc/z8530drv.conf. - -1.2. /etc/z8530drv.rc -===================== +1.2. /etc/z8530drv.conf +======================= To setup all parameters you must run /sbin/sccinit from one -of your rc.*-files. This has to be done BEFORE the start of -NET or axattach. Sccinit reads the file /etc/z8530drv.rc +of your rc.*-files. This has to be done BEFORE you can +"ifconfig" an interface. Sccinit reads the file /etc/z8530drv.conf and sets the hardware, MODEM and KISS parameters. A sample file is delivered with this package. Change it to your needs. @@ -222,7 +224,7 @@ gencfg 2 0x150 4 2 0 1 0x168 9 4915200 -will print a skeleton z8530drv.rc for the OptoSCC to stdout. +will print a skeleton z8530drv.conf for the OptoSCC to stdout. gencfg 2 0x300 2 4 5 -4 0 7 4915200 0x10 @@ -236,11 +238,11 @@ The channel definition is divided into three sub sections for each channel: -An example for /dev/scc0: +An example for scc0: # DEVICE -device /dev/scc0 # the device for the following params +device scc0 # the device for the following params # MODEM / BUFFERS @@ -254,10 +256,6 @@ # nrzi = 1k2 MODEM, G3RUH 9k6 MODEM # nrz = DF9IC 9k6 MODEM # -rxbuffers 8 # number of rx buffers allocated - # (option, default is 4) -txbuffers 16 # number of tx buffers allocated - # (option, default is 16) bufsize 384 # size of buffers. Note that this must include # the AX.25 header, not only the data field! # (optional, defaults to 384) @@ -283,9 +281,10 @@ sections IS important. The MODEM parameters are set with the first recognized KISS parameter... -Please note that you can initialize the board only once after boot. -You can change all parameters but "mode" and "clock" later with the -Sccparam program or through KISS. Just to avoid security holes... +Please note that you can initialize the board only once after boot +(or insmod). You can change all parameters but "mode" and "clock" +later with the Sccparam program or through KISS. Just to avoid +security holes... (1) this divider is usually mounted on the SCC-PBC (PA0HZP) or not present at all (BayCom). It feeds back the output of the DPLL @@ -293,71 +292,56 @@ installed will normally result in keying the transceiver until maxkey expires --- of course without sending anything (useful). - 2. Attachment of a channel by your AX.25 software ================================================= -2.1 KA9Q NOS derivates -====================== +2.1 Kernel AX.25 +================ -When the linux has startup, the SCC driver has been initialized, -you can attach the channels in your packet software. This is done -by open the scc devices by using the attach asy command. -The SCC-drivers emulates the scc devices as serial asy ports, -this means e.g. that the baudrate can be set in the attach command. +To set up an AX.25 device you can simply type: + ifconfig scc0 44.128.1.1 hw ax25 dl0tha-7 -Example Wampes: - -############################################################################################# -# Wampes device attach -# NOTE: Interfacename and the device must be the same!! -# Usage: attach asy 0 0 slip|vjslip|ax25ui|ax25i|nrs|kissui