diff options
Diffstat (limited to 'Documentation')
117 files changed, 3107 insertions, 924 deletions
diff --git a/Documentation/00-INDEX b/Documentation/00-INDEX index 393057142..fd986e95c 100644 --- a/Documentation/00-INDEX +++ b/Documentation/00-INDEX @@ -68,12 +68,12 @@ 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. +mca.txt + - info on supporting Micro Channel Architecture (e.g. PS/2) systems. md.txt - info on boot arguments for the multiple devices driver 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 nbd.txt @@ -84,12 +84,14 @@ nfsroot.txt - short guide on setting up a diskless box with NFS root filesystem oops-tracing.txt - how to decode those nasty internal kernel error dump messages. -pcwd-watchdog.txt - - info and sample code for using with the PC Watchdog reset card. paride.txt - information about the parallel port IDE subsystem. parport.txt - how to use the parallel-port driver. +pci.txt + - info on the PCI subsystem for device driver authors +pcwd-watchdog.txt + - info and sample code for using with the PC Watchdog reset card. powerpc/ - directory with info on using linux with the PowerPC. ramdisk.txt @@ -104,8 +106,12 @@ serial-console.txt - how to set up linux with a serial line console as the default. smart-config.txt - description of the Smart Config makefile feature. +smp + - how to setup the kernel for SMP smp.tex - TeX document describing implementation of Multiprocessor Linux +sound/ + - directory with info on sound card support specialix.txt - info on hardware/driver for specialix IO8+ multiport serial card. spinlocks.txt @@ -114,6 +120,10 @@ stallion.txt - info on using the Stallion multiport serial driver. svga.txt - short guide on selecting video modes at boot via VGA BIOS. +sysctl/ + - directory with info on the /proc/sys/* files +sysrq.txt + - info on the magic SysRq key transname.txt - how to use name translation to ease use of diskless systems. unicode.txt diff --git a/Documentation/ARM-README b/Documentation/ARM-README index 0524ba63e..2ffd1113c 100644 --- a/Documentation/ARM-README +++ b/Documentation/ARM-README @@ -89,12 +89,12 @@ Bug reports etc to linux@arm.uk.linux.org. Patches will not be included into future kernels unless they come to me (or the relevant person concerned). - When sending bug reports, please ensure that they contain all relevent + When sending bug reports, please ensure that they contain all relevant information, eg. the kernel messages that were printed before/during the problem, what you were doing, etc. - For patches, please include some explaination as to what the patch does - and why (if relevent). + For patches, please include some explanation as to what the patch does + and why (if relevant). Modules ------- @@ -153,7 +153,7 @@ ST506 hard drives big external 5.25" FH 64MB drive (who could ever want more :-) ). I've just got 240K/s off it (a dd with bs=128k); thats about half of what - RiscOS gets; but its a heck of a lot better than the 50K/s I was getting + RiscOS gets; but it's a heck of a lot better than the 50K/s I was getting last week :-) Known bug: Drive data errors can cause a hang; including cases where diff --git a/Documentation/Changes b/Documentation/Changes index 9b5846d92..8bd1786ed 100644 --- a/Documentation/Changes +++ b/Documentation/Changes @@ -19,7 +19,8 @@ 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 + Check out +http://www.mindspring.com/~nunez/info/linux/LinuxBleed.html for an HTML-ized shopping list. For those of you in Europe, @@ -32,7 +33,7 @@ http://cyberbuzz.gatech.edu/kaboom/linux/ as well. Also, don't forget http://www.linuxhq.com/ for all your Linux kernel needs. -Last updated: March 16. 1998 +Last updated: April 27, 1998 Current Author: Chris Ricker (kaboom@gatech.edu). Current Minimal Requirements @@ -46,14 +47,14 @@ running, the suggested command should tell you. - Gnu C 2.7.2.3 ; gcc --version - Binutils 2.8.1.0.1 ; ld -v - Linux C Library 5.4.44 ; ls -l /lib/libc.so.* -- Dynamic Linker (ld.so) 1.9.5 ; ldd -v +- Dynamic Linker (ld.so) 1.9.5 ; ldd --version - Linux C++ Library 2.7.2.8 ; ls -l /usr/lib/libg++.so.* - Procps 1.2.5 ; ps --version -- Procinfo 0.13 ; procinfo -v +- Procinfo 13 ; procinfo -v - Mount 2.7l ; mount --version - Net-tools 1.41 ; hostname -V - Loadlin 1.6a -- Sh-utils 1.16 ; expr --v +- Sh-utils 1.16 ; basename --v - Autofs 0.3.11 ; automount --version - NFS 0.4.21 ; showmount --version - Bash 1.14.7 ; bash -version @@ -137,7 +138,11 @@ your system, you don't have to upgrade just so the kernel will work Note that the latest compilers (egcs, pgcc, gcc 2.8) may do Bad Things while compiling your kernel, particularly if absurd -optimizations (like -O9) are used. Caveat emptor. +optimizations (like -O9) are used. Caveat emptor. Currently, the only +C compiler available in a binary distribution is egcs. Version 1.0.2 +seems okay; if you have to have a binary, you may be successful using +that. In general, however, gcc-2.7.2.3 is known to be stable, while +egcs and others have not been as thoroughly tested yet. Networking Changes ================== @@ -163,8 +168,14 @@ presence. To run bootpd, you'll need to issue the following command: echo 1 >/proc/sys/net/ipv4/ip_boot_agent + Similar procedures are necessary to turn on other features. If +something appears broken, check the /proc/sys/net/ipv4/ directory. "1" +generally denotes enabled, while "0" generally denotes disabled. + For support for new features like IPv6, upgrade to the latest -net-tools. +net-tools. This will also fix other problems. For example, the format +of /proc/net/dev changed; as a result, an older ifconfig will +incorrectly report errors. Memory ====== @@ -257,11 +268,11 @@ Binutils ======== The 2.8.1.0.1 release: -ftp://tsx-11.mit.edu/pub/linux/packages/GCC/binutils-2.8.1.0.1.bin.tar.gz -ftp://sunsite.unc.edu/pub/Linux/GCC/binutils-2.8.1.0.1.bin.tar.gz +ftp://tsx-11.mit.edu/pub/linux/packages/GCC/binutils-2.8.1.0.23.bin.tar.gz +ftp://sunsite.unc.edu/pub/Linux/GCC/binutils-2.8.1.0.23.bin.tar.gz Installation notes: -ftp://tsx-11.mit.edu/pub/linux/packages/GCC/release.binutils-2.8.1.0.1 -ftp://sunsite.unc.edu/pub/Linux/GCC/release.binutils-2.8.1.0.1 +ftp://tsx-11.mit.edu/pub/linux/packages/GCC/release.binutils-2.8.1.0.23 +ftp://sunsite.unc.edu/pub/Linux/GCC/release.binutils-2.8.1.0.23 Gnu C ===== @@ -273,13 +284,26 @@ Installation notes: ftp://tsx-11.mit.edu/pub/linux/packages/GCC/release.gcc-2.7.2.3 ftp://sunsite.unc.edu/pub/Linux/GCC/release.gcc-2.7.2.3 +The egcs-1.0.2 release: +ftp://tsx-11.mit.edu/pub/linux/packages/GCC/egcs-1.0.2-glibc.x86.tar.gz +ftp://tsx-11.mit.edu/pub/linux/packages/GCC/egcs-1.0.2-libc5.x86.tar.gz +ftp://sunsite.unc.edu/pub/Linux/GCC/egcs-1.0.2-glibc.x86.tar.gz +ftp://sunsite.unc.edu/pub/Linux/GCC/egcs-1.0.2-libc5.x86.tar.gz +Installation notes: +ftp://tsx-11.mit.edu/pub/linux/packages/GCC/release.egcs-1.0.2 +ftp://sunsite.unc.edu/pub/Linux/GCC/release.egcs-1.0.2 + +Gnu C 2.7.2.3 source: +ftp://prep.ai.mit.edu/pub/gnu/gcc-2.7.2.3.tar.gz +ftp://sunsite.unc.edu/pub/gnu/gcc-2.7.2.3.tar.gz + Linux C Library =============== The 5.4.44 release: ftp://tsx-11.mit.edu/pub/linux/packages/GCC/libc-5.4.44.bin.tar.gz ftp://sunsite.unc.edu/pub/Linux/GCC/libc-5.4.44.bin.tar.gz -Installation notes for 5.4.38: +Installation notes for 5.4.44: ftp://tsx-11.mit.edu/pub/linux/packages/GCC/release.libc-5.4.44 ftp://sunsite.unc.edu/pub/Linux/GCC/release.libc-5.4.44 @@ -304,21 +328,20 @@ Modules utilities ================= The 2.1.85 release: -ftp://ftp.redhat.com/pub/alphabits/modutils/modutils-2.1.85.tar.gz ftp://ftp.kernel.org/pub/linux/kernel/v2.1/modutils-2.1.85.tar.gz Procps utilities ================ The 1.2 release: -ftp://tsx-11.mit.edu/pub/linux/sources/usr.bin/procps-1.2.5.tar.gz -ftp://sunsite.unc.edu/pub/Linux/system/status/ps/procps-1.2.5.tgz +ftp://tsx-11.mit.edu/pub/linux/sources/usr.bin/procps-1.2.7.tar.gz +ftp://sunsite.unc.edu/pub/Linux/system/status/ps/procps-1.2.7.tgz Procinfo utilities ================== -The 0.11 release: -ftp://ftp.cistron.nl/pub/people/svm/procinfo-0.13.tar.gz +The 13 release: +ftp://ftp.cistron.nl/pub/people/svm/procinfo-13.tar.gz RPM utilities ============= @@ -337,8 +360,7 @@ DOSEMU ====== The 0.66.7 release: -ftp://tsx-11.mit.edu/pub/linux/ALPHA/dosemu/dosemu0.66.7.tgz -ftp://sunsite.unc.edu/pub/Linux/system/emulators/dosemu0.66.7.tgz +ftp://tsx-11.mit.edu/pub/linux/ALPHA/dosemu/dosemu-0.66.7.tgz Loadlin ======= @@ -376,8 +398,9 @@ ftp://linux.nrao.edu/pub/people/okir/linux-nfs-0.4.21.tar.gz Net-tools ========= -The 1.432 release: -ftp://ftp.cs-ipv6.lancs.ac.uk/pub/Code/Linux/Net_Tools/net-tools-1.432.tar.gz +The 1.45 release: +ftp://ftp.cs-ipv6.lancs.ac.uk/pub/Code/Linux/Net_Tools/net-tools-1.45.tar.gz +http://www.tazenda.demon.co.uk/phil/net-tools/net-tools-1.45.tar.gz Ypbind ====== @@ -396,7 +419,6 @@ Ncpfs The 2.1.1 release: ftp://ftp.gwdg.de/pub/linux/misc/ncpfs/ncpfs-2.1.1.tgz -ftp://sunsite.unc.edu/pub/Linux/system/Filesystems/ncpfs/ncpfs-2.1.1.tgz Pcmcia-cs ========= diff --git a/Documentation/Configure.help b/Documentation/Configure.help index 7380424fe..bee9bb990 100644 --- a/Documentation/Configure.help +++ b/Documentation/Configure.help @@ -434,6 +434,15 @@ CONFIG_BLK_DEV_ALI14XX I/O speeds to be set as well. See the Documentation/ide.txt and ali14xx.c files for more info. +Apple Macintosh builtin IDE interface support (EXPERIMENTAL) +CONFIG_BLK_DEV_MAC_IDE + This is the IDE driver for the builtin IDE interface on some Apple + Macintosh models. It supports both the Quadra/Performa/LC 630 and + the PowerBook 190 IDE interface. + Say Y if you have such a Macintosh model and want to use IDE devices + (hard disks, CD-ROM drives, etc.) that are connected to the builtin + IDE interface. + XT hard disk support CONFIG_BLK_DEV_XD Very old 8 bit hard disk controllers used in the IBM XT computer. To @@ -949,6 +958,19 @@ CONFIG_SERIAL_SHARE_IRQ serial ports on the same board to share a single IRQ. To enable support for this in the serial driver, say Y here. +Autodetect IRQ on standard ports (unsafe) +CONFIG_SERIAL_DETECT_IRQ + Enable this option if you want the kernel to try to guess which IRQ + is configured during the boot sequence and you're too lazy to edit + the boot scripts to use the setserial command. This option can be + unsafe and should not be enabled on most machines. It is far + better to dynamically request autoconfiguration during the boot-time + scripts using the setserial command. You can change the IRQ and/or + request automatic IRQ configuration at any time by using the + "setserial" program. I wouldn't include this config option at all except + people keep bellyaching about it. I guess they are really are too lazy + to edit their boot scripts. :-) If unsure, say No. + Support special multiport boards CONFIG_SERIAL_MULTIPORT Some multiport serial ports have special ports which are used to @@ -985,8 +1007,7 @@ CONFIG_TGA_CONSOLE that implements the TGA interface (much like the VGA standard, but 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. + VGA driver is used. PCI support CONFIG_PCI @@ -1021,6 +1042,12 @@ CONFIG_PCI_DIRECT works. If both PCI BIOS and direct PCI access are enabled, the use of BIOS is preferred. If unsure, say Y. +PCI quirks +CONFIG_PCI_QUIRKS + If you have a broken BIOS, it may fail to set up the PCI bus in a + correct or optimal fashion. If your BIOS is fine you can say N here + for a very slightly smaller kernel. If unsure, say Y. + PCI bridge optimization (experimental) CONFIG_PCI_OPTIMIZE This can improve access times for some hardware devices if you have @@ -1030,9 +1057,13 @@ CONFIG_PCI_OPTIMIZE Backward-compatible /proc/pci CONFIG_PCI_OLD_PROC - If you say Y here and to the "/proc filesystem support" below, you - will get a directory /proc/pci with information about your PCI - hardware. If unsure, say Y. + Older kernels supported a /proc/pci file containing brief textual + description of all PCI devices in the system. Several programs tried + to parse this file, so it became almost impossible to add new + fields without breaking compatibility. So a new /proc interface to + PCI (/proc/bus/pci) has been implemented and the old one is supported + for compatibility reasons only (you can disable it here, gaining + some memory). If unsure, say Y. MCA support CONFIG_MCA @@ -1097,7 +1128,7 @@ CONFIG_BINFMT_ELF want to say Y here. Information about ELF is on the WWW at http://www.sjc.ox.ac.uk/users/barlow/elf-howto.html (To browse the WWW, you need to have access to a machine on the Internet that has a - programs like lynx or netscape). If you find that after upgrading + program like lynx or netscape). If you find that after upgrading from Linux kernel 1.2 and saying Y here, you still can't run any ELF binaries (they just crash), then you'll have to install the newest ELF runtime libraries, including ld.so (check the file @@ -1216,7 +1247,7 @@ CONFIG_M386 the line "SMP=1" is not commented out and read Documentation/smp and Documentation/IO-APIC.txt and the SMP-FAQ on the WWW at http://www.irisa.fr/prive/mentre/smp-faq/ (to browse the WWW, you - need to have access to a machine on the Internet that has a programs + need to have access to a machine on the Internet that has a program like lynx or netscape). People using multiprocessor machines should also say Y to "Enhanced Real Time Clock Support", below. If you want to compile a kernel that should work on both single @@ -1251,7 +1282,7 @@ CONFIG_PARPORT extensive information about drivers for many devices attaching to the parallel port see http://www.torque.net/linux-pp.html on the WWW (To browse the WWW, you need to have access to a machine on the - Internet that has a programs like lynx or netscape). It is possible + Internet that has a program like lynx or netscape). It is possible to share a single parallel port among several devices and it is safe to compile all the corresponding drivers into the kernel. If you want to compile parallel port support as a module ( = code which can @@ -1309,72 +1340,6 @@ CONFIG_PNP_PARPORT themselves when requested. Say Y to enable this feature, or M to compile it as a module (parport_ieee1284.o). If in doubt, say N. -Plug and Play subsystem (EXPERIMENTAL) -CONFIG_PNP_DRV - This enables support for the new Plug-and-Play (or PnP) Linux - subsystems. This support is required for PnP ISA support, and for PnP - Legacy support. User-mode utilities for this support may be found at - http://www.lpsg.demon.co.uk/pnp-linux.html. - -PnP resource management -CONFIG_KERNEL_PNP_RESOURCE - This option will cause the new PnP generic resource management - routines to be used instead of the old routines request_xxx and - free_xxx. Emulation routines are put in place to support the old - calling style. This code support masks for IO decoding (required for - Plug and Play devices). There is no need to enable this option unless - you want to - these features will still be used where they are needed. - However, enabling it will reduce your kernel size slightly, and also - allow you to test this code more extensively. - -Support for boot-loaded PnP configuration (RECOMMENDED) -CONFIG_PNP_BLDCONFIG - This will enable support for preloading data about the configuration - of any Plug-and-Play devices in the system into the kernel at boot - time, which means that any devices required at boot can be configured - at this time manually. Say Y unless you have a reason not to. - -PnP ISA support -CONFIG_PNP_ISA - This option is required to allow the Linux PnP subsystem to handle - Plug and Play ISA devices. This includes full support for PnP ISA, - including the I/O range check feature. - -PnP ISA backwards-compatibility support -CONFIG_PNP_ISA_COMPAT - This option will enable partial backwards compatibility with drivers - written using older versions (up to the last 0.2.x) of the PnP driver - written by Tom Lees <tom@lpsg.demon.co.uk>. - -PnP Legacy device support -CONFIG_PNP_LEGACY - Before PnP ISA was standardized, several "jumperless", or - "soft-configurable" boards were finding their way onto the market. - These cards used somewhat proprietary mechanisms for configuring - IRQs, DMAs, IO addresses, and memory ranges. These devices (mainly - network cards, but also some sound cards) can be configured as any - other PnP device can by saying Y here, if appropriate drivers - for these devices are available. - -PnP sysctl support (RECOMMENDED) -CONFIG_PNP_SYSCTL - This option enables support for the user-mode interface to the - kernel-mode PnP systems. It requires that you said Y to "Sysctl - support" above. The only reason you might want to switch this off - is if you aren't going to use user-mode utilities to configure PnP, - and you want to save a couple of kilobytes of kernel space. Answer Y - unless you know what you are doing. User-mode utilities and a - library for accessing this interface may be found at - http://www.lpsg.demon.co.uk/pnp-linux.html. - -PnP auto-configures all devices on startup -CONFIG_PNP_BOOTINIT - This option will allow the PnP subsystem to automatically configure - all the PnP devices it finds upon system startup (or at least - attempt to). This is useful if you have older drivers which do not use - the Linux-PnP system to configure PnP devices, and which you need - to be configured by PnP before you can use them. - Enable loadable module support CONFIG_MODULES Kernel modules are small pieces of compiled code which can be @@ -2478,74 +2443,64 @@ CONFIG_SCSI_AHA1740 want to compile it as a module, say M here and read Documentation/modules.txt. -Adaptec AIC7xxx support (includes 274x/284x/294x) +Adaptec AIC7xxx chipset SCSI controller support CONFIG_SCSI_AIC7XXX - 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. 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 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 aic7xxx.o. - -Enable tagged command queueing -CONFIG_AIC7XXX_TAGGED_QUEUEING - This option allows you to enable tagged command queueing for this - driver. Some SCSI devices do not properly support this feature. - Tagged command queueing will improve performance. + This is support for the various aic7xxx based Adaptec SCSI controllers. + These include the 274x EISA cards, 284x VLB cards, 294x PCI cards, + 394x PCI cards, 3985 PCI card, and several versions of the Adaptec + built-in SCSI controllers on various PC motherboards. Information on + the configuration options for this controller can be found by checking + the README.aic7xxx file, usually in /usr/src/linux/drivers/scsi. Override driver defaults for commands per LUN CONFIG_OVERRIDE_CMDS - This option allows you to set the maximum number of SCSI commands - queued per LUN (Logical Unit Number - some physical SCSI devices, - e.g. CD jukeboxes, act logically as several logical units). If you - say N here, the driver will attempt to set the commands per LUN - using its own reasonable heuristic. If you say Y, you can specify - your preference in the next question. If unsure, say N. + Use this option to allow you to override the default maximum number of + commands that a single device on the aic7xxx controller is allowed to have + active at one time. This option only effects tagged queueing capable + devices. The driver uses a "failsafe" value of 8 by default. This is + much lower than many devices can handle, but left in place for safety sake. + NOTE: This does not actually enabled tagged queueing on any particular + device. The driver has changed in this respect. Please see the file + README.aic7xxx in /usr/src/linux/drivers/scsi for more information on how + to get particular devices to use tagged command queueing. + Default: N Maximum number of commands per LUN CONFIG_AIC7XXX_CMDS_PER_LUN - By default, we limit the commands per LUN to 2 with or without - tagged queueing enabled. If tagged queueing is enabled, the - sequencer in the host adapter will attempt to send the 2nd command - block to the device while the first command block is still executing - and the device is disconnected. If the devices don't complain, you - can thus try to increase the number of SCSI commands per LUN to more - than 2 in this case. If tagged queueing is disabled, the sequencer - in the host adapter will keep the 2nd command in its input queue - until the first one completes - so it is OK to have more than 1 - command queued. However, for host adapters limited to 4 command - blocks (SCB's), you may want to actually decrease the commands per - LUN to 1, if you often have more than 2 devices active at the same - time. This will ensure that there will always be a free SCB for up - to 4 devices active at the same time. When SCB paging is enabled, - set the commands per LUN to 8 or higher (see "SCB paging support" - below). If unsure, go with the default for now. - -Enable SCB paging -CONFIG_AIC7XXX_PAGE_ENABLE - This option enables SCB paging. This will increase performance when - tagged queueing is enabled. Note that, if you say Y here, you - should increase the "Maximum number of commands per LUN" - (AIC7XXX_CMDS_PER_LUN) above to 8 as most tagged queueing devices - allow at least this many. Note that EISA and VLB controllers do not - support SCB paging due to chip limitations; enabling it on these - controllers has no effect. + Specify the maximum number of commands per lun you would like to allocate + per device. Reasonable figures are in the range of 14 to 32 commands per + device, but depending on hardware could be increased or decreased from + that figure. If the number is too high for any particular device, the + driver will automatically compensate usually after only 10 minutes of + uptime and will issue a message to alert you to the fact that the number + of commands for that device has been reduced. It will not hinder + performance if a portion of your devices eventually have their commands + per lun reduced, but is a waste of memory if all of your devices end + up reducing this number down to a more reasonable figure. Default: 24 Collect statistics to report in /proc CONFIG_AIC7XXX_PROC_STATS - This option enables collection of SCSI transfer statistics for the - /proc filesystem. This does affect performance since it has to - maintain statistics. The statistics will appear under - /proc/scsi/aic7xxx. This will only work if you also enable the "proc - filesystem", below. + This option tells the driver to keep track of how many commands have been + sent to each particular device and report that information to the user + via the /proc/scsi/aic7xxx/x file, where x is the number of the aic7xxx + controller you want the information on. This adds a small amount of + overhead to each and every SCSI command the aic7xxx driver handles, so if + you aren't really interested in this information, it is best to leave it + disabled. Default: N Delay in seconds after SCSI bus reset CONFIG_AIC7XXX_RESET_DELAY - This option sets the delay in seconds after a SCSI bus reset. If you - don't know what you are doing, go with the default. + This sets how long the driver will wait after resetting the SCSI bus before + attempting to communicate with the devices on the SCSI bus again. This + delay will be used during the reset phase at bootup time as well as after + any reset that might occur during normal operation. Reasonable numbers + range anywhere from 5 to 15 seconds depending on your devices. DAT tape + drives are notorious for needing more time after a bus reset to be + ready for the next command, but most hard drives and CD-ROM devices are + ready in only a few seconds. This option has a maximum upper limit of + 20 seconds to avoid bad interactions between the aic7xxx driver and the + rest of the linux kernel. The default value has been reduced. If this + doesn't work with your hardware, try increasing this value. Default: 5 BusLogic SCSI support CONFIG_SCSI_BUSLOGIC @@ -3579,6 +3534,14 @@ CONFIG_MKISS whenever you want), say M here and read Documentation/modules.txt. The module will be called mkiss.o. +Serial port 6PACK driver for AX.25 +CONFIG_6PACK +6pack is a protocol that attaches a TNC connected to a serial interface +to be used as a network device. 6pack can be used as an alternative to KISS, +but has some extended functionality. Note that this driver is still +experimental and might cause problems. For details about the features +and the usage of the driver, read Documentation/networking/6pack.txt. + PLIP (parallel port) support CONFIG_PLIP PLIP (Parallel Line Internet Protocol) is used to create a @@ -5369,7 +5332,7 @@ CONFIG_ROMFS_FS M here and read Documentation/modules.txt. If you don't know whether you need it, then you don't need it: say N. -Kernel automounter support (experimental) +Kernel automounter support CONFIG_AUTOFS_FS The automounter is a tool to automatically mount remote filesystems on demand. This implementation is partially kernel-based to reduce @@ -5448,6 +5411,13 @@ CONFIG_ADFS_FS If you want to compile it as a module, say M here and read Documentation/modules.txt. +/dev/pts filesystem +CONFIG_DEVPTS_FS + A filesystem which when mounted on /dev/pts and used in conjunction + with the /dev/ptmx multiplexing pty device, should allow full + support for Unix98 pty's without requiring setuid or daemons. glibc + 2.1 contains the requisite support for this mode of operation. + Macintosh partition map support CONFIG_MAC_PARTITION Say Y here if you want your Linux system to be able to read the @@ -6498,6 +6468,28 @@ CONFIG_FT_FDC_MAX_RATE speed. If unsure, leave this disabled, i.e. leave it at 2000 bits/sec. +MTRR control and configuration +CONFIG_MTRR + On Intel Pentium Pro systems the Memory Type Range Registers (MTRRs) + may be used to control processor access to memory ranges. This is + most useful when you have a video (VGA) card on the PCI + bus. Enabling write-combining allows PCI write transfers to be + combined into a larger transfer before bursting over the PCI + bus. This can increase performance of image write operations 2.5 + times or more. + This option creates a /proc/mtrr file which may be used to manipulate + your MTRRs. Typically the X server should use this. This should have + a reasonably generic interface so that similar control registers on + other processors can be easily supported. + This option also fixes a problem with buggy SMP BIOSes which only + set the MTRRs for the boot CPU and not the secondary CPUs. This can + lead to all sorts of problems. + In general you should compile this into the kernel, rather than as a + loadable module, because the BIOS fix needs to be done early in the + boot sequence. If you compile this as a module, the BIOS fix will be + delayed until when you load the module. You do this at your own risk. + See Documentation/mtrr.txt for more information. + Main CPU frequency, only for DEC alpha machine CONFIG_FT_ALPHA_CLOCK On some DEC Alpha machines the CPU clock frequency cannot be @@ -6716,7 +6708,7 @@ CONFIG_RTC fashion. (They should also Documentation/smp and Documentation/IO-APIC.txt and the SMP-FAQ on the WWW at http://www.irisa.fr/prive/mentre/smp-faq/ (to browse the WWW, you - need to have access to a machine on the Internet that has a programs + need to have access to a machine on the Internet that has a program like lynx or netscape)). 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 @@ -6817,6 +6809,16 @@ CONFIG_SB_MWAVE why they still haven't released any documentation. [http://204.200.238.31/cgi-bin/link.pl?co=i&cl=/ts/ibm/contact.html] +Are you using the IBM Mwave "emulation" of SB ? +CONFIG_SB_MWAVE + The IBM Mwave can do whats loosely describable as emulation of an 8bit + soundblaster if you load the right firmware from DOS warm boot and pray + and your machine happens to like you. Say Y if you are doing this as the + IRQ test normally fails on the mwave emulation. If you'd like real MWAVE + support phone IBM (425-556-8822) and ask them why they still haven't + released any documentation. + [http://204.200.238.31/cgi-bin/link.pl?co=i&cl=/ts/ibm/contact.html] + Generic OPL2/OPL3 FM synthesizer support CONFIG_ADLIB Answer Y if your card has a FM chip made by Yamaha (OPL2/OPL3/OPL4). @@ -6914,6 +6916,15 @@ CONFIG_MAD16 manufacturers such as Turtle Beach (Tropez), Reveal (some models) and Diamond (latest ones). +Support MIDI in older MAD16 based cards (requires SB) +CONFIG_MAD16_OLDCARD + Answer Y (or M) if you have an older card based on the C928 + or Mozart chipset and you want to have MIDI support. If you + enable this option you also need to enable support for SoundBlaster. + + If you answer Y here you will + also need to enable the SoundBlaster driver. + Support for Crystal CS4232 based (PnP) cards CONFIG_CS4232 Say Y here if you have a card based on the Crystal CS4232 chip set, @@ -7092,6 +7103,12 @@ CONFIG_ISDN_AUDIO is the only voice-supporting driver. See Documentation/isdn/README.audio for more information. +X.25 PLP on top of ISDN (EXPERIMENTAL) +CONFIG_ISDN_X25 + This experimental feature provides X.25 over ISDN. See + Documentation/isdn/README.x25 for more information about how to + configure and what other options must be enabled for using X.25. + ICN 2B and 4B support CONFIG_ISDN_DRV_ICN This enables support for two kinds of ISDN-cards made by a German @@ -7105,6 +7122,14 @@ CONFIG_ISDN_DRV_ICN want), say M here and read Documentation/modules.txt. The module will be called icn.o. +isdnloop support +CONFIG_ISDN_DRV_LOOP + This driver provides a virtual ISDN card. It's primary purpose is + testing of linklevel features or configuration without getting + charged by your service-provider for lots of phone calls. + You need will need the loopctrl utility from the latest isdn4k-utils + package to set up this driver. + HiSax SiemensChipSet driver support CONFIG_ISDN_DRV_HISAX This is a driver supporting the Siemens chipset on various @@ -7130,36 +7155,95 @@ CONFIG_HISAX_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. + non-standard irq/port settings. + +HiSax Support for Teles 16.3c +CONFIG_HISAX_TELES3C + This enables HiSax support for the Teles ISDN-cards 16.3c. + See Documentation/isdn/README.HiSax on how to configure it + using the different cards, a different D-channel protocol, or + non-standard irq/port 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. + non-standard irq/port settings. HiSax Support for Elsa ISA cards -CONFIG_HISAX_ELSA_PCC - This enables HiSax support for the Elsa Mircolink ISA cards and - for the Elsa Quickstep series cards. +CONFIG_HISAX_ELSA + This enables HiSax support for the Elsa Mircolink ISA cards, + for the Elsa Quickstep series cards and Elsa 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 Elsa PCMCIA card -CONFIG_HISAX_ELSA_PCMCIA - This enables HiSax support for the Elsa PCMCIA 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. + non-standard irq/port 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. + non-standard irq/port settings. + +HiSax Support for Eicon.Diehl Diva cards +CONFIG_HISAX_DIEHLDIVA + This enables HiSax support for the Eicon.Diehl Diva none PRO versions + passive ISDN 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 settings. + +HiSax Support for ASUSCOM cards +CONFIG_HISAX_ASUSCOM + This enables HiSax support for the AsusCom and their OEM versions + passive ISDN 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 settings. + +HiSax Support for TELEINT cards +CONFIG_HISAX_TELEINT + This enables HiSax support for the TELEINT SA1 semiactiv ISDN 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 settings. + +HiSax Support for Sedlbauer speed card/win-star +CONFIG_HISAX_SEDLBAUER + This enables HiSax support for the Sedlbauer passive ISDN 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 settings. + +HiSax Support for USR Sportster internal TA +CONFIG_HISAX_SPORTSTER + This enables HiSax support for the USR Sportster internal TA card. + See Documentation/isdn/README.HiSax on how to configure it + using a different D-channel protocol, or non-standard irq/port settings. + +HiSax Support for MIC card +CONFIG_HISAX_MIC + This enables HiSax support for the ITH MIC card. + See Documentation/isdn/README.HiSax on how to configure it + using a different D-channel protocol, or non-standard irq/port settings. + +HiSax Support for NETjet card +CONFIG_HISAX_NETJET + This enables HiSax support for the NetJet from Traverse Technologies. + See Documentation/isdn/README.HiSax on how to configure it + using a different D-channel protocol, or non-standard irq/port settings. + +HiSax Support for Niccy PnP/PCI card +CONFIG_HISAX_NICCY + This enables HiSax support for the Dr. Neuhaus Niccy PnP or PCI. + See Documentation/isdn/README.HiSax on how to configure it + using a different D-channel protocol, or non-standard irq/port settings. + +HiSax Support for Am7930 (EXPERIMENTAL) +CONFIG_HISAX_AMD7930 + This enables HiSax support for the AMD7930 chips on some sparcs. + This code is not finished yet. HiSax Support for EURO/DSS1 CONFIG_HISAX_EURO @@ -7168,7 +7252,18 @@ CONFIG_HISAX_EURO NOTE: This is mutually exclusive with HiSax Support for German 1TR6 if you have only one ISDN card installed. -HiSax Support for US/NI-1 +Support for german tarifinfo +CONFIG_DE_AOC + If you want, that HiSax send messages to the linklevel on each + AOCD/AOCE, enable this. This works only in Germany. + +Support for australian Microlink service (not for std. EURO) +CONFIG_HISAX_ML + If you are in Australia and connected on the Microlink telephone + network enable this, because here are little differences in protocol. + Please don't enable this in other countries. + +HiSax Support for US/NI-1 (not released yet) CONFIG_HISAX_NI1 You should choose the D-channel protocol your local telephone service provider uses here by saying Y or N. @@ -7225,6 +7320,14 @@ CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON disconnecting. This will increase the size of the kernel by 7K. If unsure, say Y. +IBM Active 2000 support (EXPERIMENTAL) +CONFIG_ISDN_DRV_ACT2000 + This enables support for IBM Active 2000 ISDN card. In order to use + this card, additional firmware is necessary, which has to be loaded + into the card using a utility which is part of the latest isdn4k-utils + package. Please read the file Documentation/isdn/README.act2000 for + more information. + Support for AP1000 multicomputer CONFIG_AP1000 This enables support for a sparc based parallel multi-computer @@ -7274,8 +7377,9 @@ CONFIG_ATARI 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. ;) + This option enables support for the Apple Macintosh series of computers + (yes, there is experimental support now, at least for part of the series). + Say N unless you're willing to code the remaining necessary support. ;) # CONFIG_APOLLO, etc. coming soon (?) @@ -7779,6 +7883,11 @@ CONFIG_VIDEO_BT848 want). If you want to compile it as a module, say M here and read Documentation/modules.txt. +SAA5249 Teletext processor +CONFIG_VIDEO_SAA5249 + Support for I2C bus based teletext using the SAA5249 chip. At the moment + this is only useful on some european WinTV cards. + Quickcam BW Video For Linux CONFIG_VIDEO_BWQCAM Say Y have if you the black and white version of the QuickCam diff --git a/Documentation/IO-APIC.txt b/Documentation/IO-APIC.txt index 84ab57c19..13565b69c 100644 --- a/Documentation/IO-APIC.txt +++ b/Documentation/IO-APIC.txt @@ -43,7 +43,7 @@ running: A) if your board is unlisted, then mail to linux-smp to get it into either the white or the blacklist B) if your board is blacklisted, then figure out the apropriate - pirq= option to get your system boot + pirq= option to get your system to boot pirq= lines look like the following in /etc/lilo.conf: @@ -107,9 +107,9 @@ card (IRQ11) in Slot3, and have Slot1 empty: slots.] generally, it's always possible to find out the correct pirq= settings, just -permutate all IRQ numbers properly ... it will take some time though. An +permute all IRQ numbers properly ... it will take some time though. An 'incorrect' pirq line will cause the booting process to hang, or a device -wont function properly (if it's inserted as eg. a module). +won't function properly (if it's inserted as eg. a module). If you have 2 PCI buses, then you can use up to 8 pirq values. Although such boards tend to have a good configuration and will be included in the diff --git a/Documentation/binfmt_misc.txt b/Documentation/binfmt_misc.txt index 6a8b87aff..1f405c589 100644 --- a/Documentation/binfmt_misc.txt +++ b/Documentation/binfmt_misc.txt @@ -1,8 +1,8 @@ Kernel Support for miscellaneous (your favourite) Binary Formats v1.1 ===================================================================== -This Kernel feature allows to invoke almost (for restrictions see below) every -program by simply typing its name in the shell. +This Kernel feature allows you to invoke almost (for restrictions see below) +every program by simply typing its name in the shell. This includes for example compiled Java(TM), Python or Emacs programs. To achieve this you must tell binfmt_misc which interpreter has to be invoked @@ -34,7 +34,7 @@ Here is what the fields mean: There are some restrictions: - the whole register string may not exceed 255 characters - - the magic must resist in the first 128 bytes of the file, i.e. + - the magic must reside in the first 128 bytes of the file, i.e. offset+size(magic) has to be less than 128 - the interpreter string may not exceed 127 characters diff --git a/Documentation/cdrom/aztcd b/Documentation/cdrom/aztcd index 0056ce914..fa3081cfb 100644 --- a/Documentation/cdrom/aztcd +++ b/Documentation/cdrom/aztcd @@ -202,7 +202,7 @@ configured and mail me (see 6.) the appropriate information. 5.1 MULTISESSION SUPPORT Multisession support for CD's still is a myth. I implemented and tested a basic support for multisession and XA CDs, but I still have not enough CDs and appli- -cations to test it rigourously. So if you'd like to help me, please contact me +cations to test it rigorously. So if you'd like to help me, please contact me (Email address see below). As of version 1.4 and newer you can enable the multisession support in aztcd.h by setting AZT_MULTISESSION to 1. Doing so will cause the ISO9660-filesystem to deal with multisession CDs, ie. redirect @@ -375,7 +375,7 @@ If this still does not help, the finite state machine in azt_poll(). The most important are the status messages, look how they are defined and try to understand, if they make sense in the context where they appear. With a CD-ROM inserted the status - should always be 8, except in aztcd_open(). Try to open the tray, insert a + should always be 8, except in aztcd_open(). Try to open the tray, insert an audio disk, insert no disk or reinsert the CD-ROM and check, if the status bits change accordingly. The status bits are the most likely point, where the drive manufacturers may implement changes. @@ -400,7 +400,7 @@ following: that the ACMD_SOFT_RESET is issued in any case, by substituting the if-statement 'if ( ...=AFL_OP_OK)' by 'if (1)'. -If you succeed, please mail may the exact version string of your drive and +If you succeed, please mail me the exact version string of your drive and the code modifications, you have made together with a short explanation. If you don't succeed, you may mail me the output of the debugging messages. But remember, they are only useful, if they are exact and complete and you @@ -439,13 +439,13 @@ d) I did not get information about changing drive mode. So I doubt, that the code around function azt_poll() case AZT_S_MODE does work. In my test I have not been able to switch to reading in raw mode. For reading raw mode, Aztech uses a different command than for cooked mode, which I only have implemen- -ted in the ioctl-section but not in the section which is used by the ISO9660- +ted in the ioctl-section but not in the section which is used by the ISO9660. The driver was developed on an AST PC with Intel 486/DX2, 8MB RAM, 340MB IDE hard disk and on an AST PC with Intel Pentium 60MHz, 16MB RAM, 520MB IDE running Linux kernel version 1.0.9 from the LST 1.8 Distribution. The kernel was compiled with gcc.2.5.8. My CD-ROM drive is an Aztech CDA268-01A. My -drive says, that it has Firmware Version AZT26801A1.3. It came with a ISA-bus +drive says, that it has Firmware Version AZT26801A1.3. It came with an ISA-bus interface card and works with polled I/O without DMA and without interrupts. The code for all other drives was 'remote' tested and debugged by a number of volunteers on the Internet. @@ -508,7 +508,7 @@ You have to set the correct permissions for cdplay *and* for /dev/mcd0 or /dev/aztcd0 in order to use it. Remember, that you should not have /dev/cdrom mounted, when you're playing audio CDs. -This program is just a hack for testing the ioctl-functions in aztcd.c, I will +This program is just a hack for testing the ioctl-functions in aztcd.c. I will not maintain it, so if you run into problems, discard it or have a look into the source code 'cdplay.c'. The program does only contain a minimum of user protection and input error detection. If you use the commands in the wrong @@ -517,11 +517,11 @@ or even hang your machine. If you get STEN_LOW, STEN_LOW_WAIT or segment violati error messages when using cdplay, after that, the system might not be stable any more, so you'd better reboot. As the ioctl-functions run in kernel mode, most normal Linux-multitasking protection features do not work. By using -uninitialized 'wild' pointers etc., it is easy to write to other users data and -program areas, destroy kernel tables etc.. So if you experiment with ioctls +uninitialized 'wild' pointers etc., it is easy to write to other users' data +and program areas, destroy kernel tables etc.. So if you experiment with ioctls as always when you are doing systems programming and kernel hacking, you should have a backup copy of your system in a safe place (and you also -should try before, how to restore from a backup copy)! +should try restoring from a backup copy first)! A reworked and improved version called 'cdtester.c', which has yet more features for testing CDROM-drives can be found in diff --git a/Documentation/cdrom/cdrom-standard.tex b/Documentation/cdrom/cdrom-standard.tex index 1db560b15..6d6e74bdc 100644 --- a/Documentation/cdrom/cdrom-standard.tex +++ b/Documentation/cdrom/cdrom-standard.tex @@ -45,15 +45,15 @@ presumably \end{itemize} The openness of \linux, and the many different types of available hardware has allowed \linux\ to support many different hardware devices. -Unfortunatly, the very openness that has allowed \linux\ to support +Unfortunately, the very openness that has allowed \linux\ to support all these different devices has also allowed the behavior of each device driver to differ significantly from one device to another. -This divergence of behavior has been the very significant for \cdrom\ +This divergence of behavior has been very significant for \cdrom\ devices; the way a particular drive reacts to a `standard' $ioctl()$ call varies greatly from one device driver to another. To avoid making their drivers totally inconsistent, the writers of \linux\ \cdrom\ drivers generally created new device drivers by understanding, copying, -and then changing an existing one. Unfortunatly, this practice did not +and then changing an existing one. Unfortunately, this practice did not maintain uniform behavior across all the \linux\ \cdrom\ drivers. This document describes an effort to establish Uniform behavior across @@ -85,7 +85,7 @@ which was expressed through \cdromh, it appeared to be a rather wild set of commands and data formats.\footnote{I cannot recollect what kernel version I looked at, then, presumably 1.2.13 and 1.3.34---the latest kernel that I was indirectly involved in.} It seemed that many -features of the software interface had been added to accomodate the +features of the software interface had been added to accommodate the capabilities of a particular drive, in an {\fo ad hoc\/} manner. More importantly, it appeared that the behavior of the `standard' commands was different for most of the different drivers: \eg, some drivers @@ -93,7 +93,7 @@ close the tray if an $open()$ call occurs when the tray is open, while others do not. Some drivers lock the door upon opening the device, to prevent an incoherent file system, but others don't, to allow software ejection. Undoubtedly, the capabilities of the different drives vary, -but even when two drives have the same capability their driver's +but even when two drives have the same capability their drivers' behavior was usually different. I decided to start a discussion on how to make all the \linux\ \cdrom\ @@ -109,7 +109,7 @@ hardware will allow). The goal of the \UCD\ is {\em not\/} to alienate driver developers who have not yet taken steps to support this effort. The goal of \UCD\ is -simply is give people writing application programs for \cdrom\ drives +simply to give people writing application programs for \cdrom\ drives {\em one\/} \linux\ \cdrom\ interface with consistent behavior for all \cdrom\ devices. In addition, this also provides a consistent interface between the low-level device driver code and the \linux\ kernel. Care @@ -147,14 +147,14 @@ software-level, that separates the $ioctl()$ and $open()$ implementation from the actual hardware implementation. Note that this effort has made few changes which will effect a user's application programs. The greatest change involved moving the contents of the various low-level -\cdrom\ driver's header files to the kernel's cdrom directory. This was +\cdrom\ drivers' header files to the kernel's cdrom directory. This was done to help ensure that the user is only presented with only one cdrom interface, the interface defined in \cdromh. \cdrom\ drives are specific enough (\ie, different from other block-devices such as floppy or hard disc drives), to define a set of common {\em \cdrom\ device operations}, $<cdrom-device>_dops$. -These operations are different than the classical block-device file +These operations are different from the classical block-device file operations, $<block-device>_fops$. The routines for the \UCD\ interface level are implemented in the file @@ -267,7 +267,7 @@ 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. For most +information in the structures $inode$ and $file$ is used. For most drivers, the main parameter is the $struct$ $cdrom_device_info$, from which the major and minor number can be extracted. (Most low-level \cdrom\ drivers don't even look at the major and minor number though, @@ -291,7 +291,7 @@ struct& cdrom_device_info\ \{ \hidewidth\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 + & int& use_count;& number of times device is opened\cr \}\cr }$$ Using this $struct$, a linked list of the registered minor devices is @@ -312,23 +312,23 @@ 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 +flexibility to adapt to the different users' 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$, +data that is specific to a 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 +The intermediate software layer that \cdromc\ forms will perform some 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 +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. @@ -469,7 +469,7 @@ 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 +course) and the routines in \cdromc\ will make the transformation if necessary. The return value is 0 upon success. \subsection{$Int\ get_mcn(struct\ cdrom_device_info * cdi, struct\ @@ -498,7 +498,7 @@ driver to time out. Some of the \cdrom-$ioctl$s defined in \cdromh\ can be implemented by the routines described above, and hence the function $cdrom_ioctl$ will use those. However, most $ioctl$s deal with -audio-control. We have decided to leave these accessed through a +audio-control. We have decided to leave these to be accessed through a single function, repeating the arguments $cmd$ and $arg$. Note that the latter is of type $void*{}$, rather than $unsigned\ long\ int$. The routine $cdrom_ioctl()$ does do some useful things, @@ -532,7 +532,7 @@ problem here could be the fact that audio-frames are 2352 bytes long, 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). Furthermore, it it very difficult for the hardware to find +opposed). Furthermore, it is very difficult for the hardware to find the exact frame boundaries, since there are no synchronization headers in audio frames. Once these issues are resolved, this code should be standardized in \cdromc. @@ -562,7 +562,7 @@ CDC_LOCK& can lock and unlock the door\cr CDC_SELECT_SPEED& can select speed, in units of $\sim$150\,kB/s\cr CDC_SELECT_DISC& drive is juke-box\cr CDC_MULTI_SESSION& can read sessions $>\rm1$\cr -CDC_MCN& can read Medium Catalog Number\cr +CDC_MCN& can read Media Catalog Number\cr CDC_MEDIA_CHANGED& can report if disc has changed\cr CDC_PLAY_AUDIO& can perform audio-functions (play, pause, etc)\cr CDC_RESET& hard reset device\cr @@ -724,12 +724,12 @@ modes of operation can be set: \begin{description} \item[$CDO_AUTO_CLOSE \mathrel| CDO_USE_FFLAGS \mathrel| CDO_LOCK$] This is the default setting. (With $CDO_CHECK_TYPE$ it will be better, in the -future.) If the device is not yet opened by any other process, and it +future.) If the device is not yet opened by any other process, and if the device is being opened for data ($O_NONBLOCK$ is not set) and the tray is found to be open, an attempt to close the tray is made. Then, it is verified that a disc is in the drive and, if $CDO_CHECK_TYPE$ is set, that it contains tracks of type `data mode 1.' Only if all tests -are passed, the return value is zero. The door is locked to prevent file +are passed is the return value zero. The door is locked to prevent file system corruption. If the drive is opened for audio ($O_NONBLOCK$ is set), no actions are taken and a value of 0 will be returned. \item[$CDO_AUTO_CLOSE \mathrel| CDO_AUTO_EJECT \mathrel| CDO_LOCK$] This @@ -745,7 +745,7 @@ driver scheme and option flag interpretation. \newsection{Description of routines in \cdromc} Only a few routines in \cdromc\ are exported to the drivers. In this -newsection we will discuss these, as well as the functions that `take +new section we will discuss these, as well as the functions that `take over' the \cdrom\ interface to the kernel. The header file belonging to \cdromc\ is called \cdromh. Formerly, some of the contents of this file were placed in the file {\tt {ucdrom.h}}, but this file has now been @@ -833,7 +833,7 @@ not masked: \item[CDROMEJECT_SW] If $arg\not=0$, set behavior to auto-close (close tray on first open) and auto-eject (eject on last release), otherwise set behavior to non-moving on $open()$ and $release()$ calls. -\item[CDROM_GET_MCN or CDROM_GET_UPC] Get the Medium Catalog Number from a CD. +\item[CDROM_GET_MCN or CDROM_GET_UPC] Get the Media Catalog Number from a CD. \end{description} \subsubsection{$Ioctl$s routed through $audio_ioctl()$} @@ -878,7 +878,7 @@ the current flags. \item[CDROM_SELECT_SPEED] Select head-rate speed of disc specified as by $arg$ in units of standard cdrom speed (176\,kB/sec raw data or 150\,kB/sec file system data). The value 0 means `auto-select', \ie, - play audio discs at real time and data disc at maximum speed. The value + play audio discs at real time and data discs at maximum speed. The value $arg$ is checked against the maximum head rate of the drive found in the $cdrom_dops$. \item[CDROM_SELECT_DISC] Select disc numbered $arg$ from a juke-box. @@ -887,18 +887,18 @@ the current flags. \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. For Juke-boxes, an extra argument $arg$ + 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. + selected slot be returned. \item[CDROM_DRIVE_STATUS] Returns the status of the drive by a call to $drive_status()$. Return values are 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$. For Juke-boxes, an extra argument + $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. + about the currently selected slot be returned. \item[CDROM_DISC_STATUS] Returns the type of the disc currently in the drive. It should be viewed as a complement to $CDROM_DRIVE_STATUS$. This $ioctl$ can provide \emph {some} information about the current @@ -996,7 +996,7 @@ $\&<your-drive>_fops$ to $\&cdrom_fops$. \item Change the prototypes of $<device>_open()$ and $<device>_release()$, and remove any strategic code (\ie, tray movement, door locking, etc.). -\item Try to recompile the drivers. We advice you to use modules, both +\item Try to recompile the drivers. We advise you to use modules, both for {\tt {cdrom.o}} and your driver, as debugging is much easier this way. \end{enumerate} @@ -1004,7 +1004,7 @@ $\&<your-drive>_fops$ to $\&cdrom_fops$. \newsection{Thanks} Thanks to all the people involved. First, Erik Andersen, who has -taken over the torch in maintaining \cdromc\ and integrating many +taken over the torch in maintaining \cdromc\ and integrating much \cdrom-related code in the 2.1-kernel. 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 diff --git a/Documentation/cdrom/cdu31a b/Documentation/cdrom/cdu31a index 6fa1d4b0f..c0667da09 100644 --- a/Documentation/cdrom/cdu31a +++ b/Documentation/cdrom/cdu31a @@ -32,7 +32,7 @@ same card). They are not software compatible. Setting Up the Hardware ----------------------- -The CDU31A driver in unable to safely tell if an interface card is +The CDU31A driver is unable to safely tell if an interface card is present that it can use because the interface card does not announce its presence in any way besides placing 4 I/O locations in memory. It used to just probe memory and attempt commands, but Linus wisely asked @@ -44,7 +44,7 @@ is, what interrupts are used, and possibly if you are on a PAS-16 soundcard. If you have the Sony CDU31A/CDU33A drive interface card, the following -diagram will help you set it up. If You have another card, you are on +diagram will help you set it up. If you have another card, you are on your own. You need to make sure that the I/O address and interrupt is not used by another card in the system. You will need to know the I/O address and interrupt you have set. Note that use of interrupts is diff --git a/Documentation/cdrom/cm206 b/Documentation/cdrom/cm206 index 1aebd7e5d..bc4f9e656 100644 --- a/Documentation/cdrom/cm206 +++ b/Documentation/cdrom/cm206 @@ -14,7 +14,7 @@ Features since version 0.33 - Full audio support, that is, both workman, workbone and cdp work now reasonably. Reading TOC still takes some time. xmcd has been reported to run successfully. -- Made auto-probe code a little better, i hope +- Made auto-probe code a little better, I hope Features since version 0.28 --------------------------- @@ -37,8 +37,8 @@ options: Further, you must decide if you are going to specify the base port address and the interrupt request line of the adapter card cm260 as boot options for (a), module parameters for (b), use automatic - probing of these values, or hard-wire your adaptor cards settings - into the source code. If you don't care, you can choose for + probing of these values, or hard-wire your adaptor card's settings + into the source code. If you don't care, you can choose autoprobing, which is the default. In that case you can move on to the next step. @@ -48,10 +48,10 @@ Compiling the kernel make config - If you have chosen for option (a), answer yes to CONFIG_CM206 and + If you have chosen option (a), answer yes to CONFIG_CM206 and CONFIG_ISO9660_FS. - If you have chosen for option (b), answer yes to CONFIG_MODVERSIONS + If you have chosen option (b), answer yes to CONFIG_MODVERSIONS and no (!) to CONFIG_CM206 and CONFIG_ISO9660_FS. 2) then do a @@ -64,7 +64,7 @@ Compiling the kernel Using the driver as a module ---------------------------- -If you will only seldomly use the cd-rom driver, you can choose for +If you will only occasionally use the cd-rom driver, you can choose option (b), install as a loadable module. You may have to re-compile the module when you upgrade the kernel to a new version. @@ -84,7 +84,7 @@ line to be used, e.g. insmod /usr/src/linux/modules/cm206.o cm206=0x300,11 -The order of base port and irq line doesn't matter; you may specify only +The order of base port and irq line doesn't matter; if you specify only one, the other will have the value of the compiled-in default. You may also have to install the file-system module `iso9660.o', if you didn't compile that into the kernel. @@ -92,17 +92,17 @@ didn't compile that into the kernel. Using the driver as part of the kernel -------------------------------------- -If you have chosen for option a, you can specify the base-port +If you have chosen option (a), you can specify the base-port address and irq on the lilo boot command line, e.g.: LILO: linux cm206=0x340,11 This assumes that your linux kernel image keyword is `linux'. -If you may specify either IRQ (3--11) or base port (0x300--0x370), +If you specify either IRQ (3--11) or base port (0x300--0x370), auto probing is turned off for both settings, thus setting the other value to the compiled-in default. -Note that you can put these parameters also in the lilo configuration file: +Note that you can also put these parameters in the lilo configuration file: # linux config image = /vmlinuz @@ -122,7 +122,7 @@ the defines of CM206_IRQ and CM206_BASE. Mounting the cdrom ------------------ -1) Make sure that there is the right device installed in /dev. +1) Make sure that the right device is installed in /dev. mknod /dev/cm206cd b 32 0 @@ -159,7 +159,7 @@ If things don't work DISCLAIMER ---------- I cannot guarantee that this driver works, or that the hardware will -not be harmed, although i consider it most unlikely. +not be harmed, although I consider it most unlikely. I hope that you'll find this driver in some way useful. diff --git a/Documentation/cdrom/gscd b/Documentation/cdrom/gscd index bb25a8c60..560069e2a 100644 --- a/Documentation/cdrom/gscd +++ b/Documentation/cdrom/gscd @@ -1,7 +1,7 @@ Goldstar R420 CD-Rom device driver README For all kind of other information about the GoldStar R420 CDROM -and this Linux device driver is a WWW-URL Page installed: +and this Linux device driver see the WWW page: http://linux.rz.fh-hannover.de/~raupach @@ -44,12 +44,12 @@ Install your new kernel as usual - maybe you do it with 'make zlilo'. Before you can use the driver, you have to mknod /dev/gscd0 b 16 0 -to create the appropriate device file (once for all times). +to create the appropriate device file (you only need to do this once). If you use modules, you can try to insert the driver. Say: 'insmod /usr/src/linux/modules/gscd.o' or: 'insmod /usr/src/linux/modules/gscd.o gscd=<address>' -The driver should report his results now. +The driver should report its results. That's it! Mount a disk, i.e. 'mount -rt iso9660 /dev/gscd0 /cdrom' diff --git a/Documentation/cdrom/ide-cd b/Documentation/cdrom/ide-cd index ecd498158..744a81407 100644 --- a/Documentation/cdrom/ide-cd +++ b/Documentation/cdrom/ide-cd @@ -22,7 +22,7 @@ This driver provides the following features: - Reading from data tracks, and mounting iso9660 filesystems. - Playing audio tracks. Most of the cdrom player programs floating - around should work; i usually use Workman. + around should work; I usually use Workman. - Multisession support. @@ -148,7 +148,7 @@ workbone, cdplayer, etc.). Lacking anything else, you could use the cdtester program in Documentation/cdrom/sbpcd. On a few drives, you can read digital audio directly using a program -such as cdda2wav. The only types of drive which i've heard support +such as cdda2wav. The only types of drive which I've heard support 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. @@ -189,7 +189,7 @@ CDROM_NBLOCKS_BUFFER ioctl. The default is 8. TEST - This presently enables an additional ioctl which enables a user-mode + This currently enables an additional ioctl which enables a user-mode program to execute an arbitrary packet command. See the source for details. This should be left off unless you know what you're doing. @@ -271,7 +271,7 @@ b. Timeout/IRQ errors. and 15 for the secondary (0x1f0) interface.) Also be sure that you don't have some other hardware which might be conflicting with the IRQ you're using. Also check the BIOS setup for your system; - some have the ability to disable individual IRQ levels, and i've + some have the ability to disable individual IRQ levels, and I've had one report of a system which was shipped with IRQ 15 disabled by default. @@ -282,7 +282,7 @@ b. Timeout/IRQ errors. - If you own a Pioneer DR-A24X, you _will_ get nasty error messages on boot such as "irq timeout: status=0x50 { DriveReady SeekComplete }" The Pioneer DR-A24X cdrom drives are fairly popular these days. - Unfortunatly, these drives seem to become very confused when we perform + Unfortunately, these drives seem to become very confused when we perform the standard Linux ATA disk drive probe. If you own one of these drives, you can bypass the ATA probing which confuses these cdrom drives, by adding `append="hdX=noprobe hdX=cdrom"' to your lilo.conf file and runing @@ -377,7 +377,7 @@ f. Data corruption. /* * cdchange.c [-v] <device> [<slot>] * - * This load a cdrom from a specified slot in a changer, and displays + * This loads 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. * diff --git a/Documentation/cdrom/isp16 b/Documentation/cdrom/isp16 index 7dcf6f9c9..cc86533ac 100644 --- a/Documentation/cdrom/isp16 +++ b/Documentation/cdrom/isp16 @@ -71,7 +71,7 @@ sound card configuration. The syntax of the command line does not allow the specification of irq when there's nothing specified for the base address and no specification of dma when there is no specification of irq. -The value 'nosip16' for drive_type, which may be used as the first +The value 'noisp16' for drive_type, which may be used as the first non-integer option value (e.g. 'isp16=noisp16'), makes sure that probing for and subsequent configuration of an ISP16-compatible card is skipped all together. This can be useful to overcome possible conflicts which diff --git a/Documentation/cdrom/mcdx b/Documentation/cdrom/mcdx index fd2c37321..3c0fee5e2 100644 --- a/Documentation/cdrom/mcdx +++ b/Documentation/cdrom/mcdx @@ -1,6 +1,6 @@ This is a first attempt to create an `improved' driver for the Mitsumi drives. It is able to "live together" with mcd.c, if you have at least two Mitsumi -drives: each driver can use his own drive. +drives: each driver can use its own drive. To allow this "coexistence" as long as mcdx.c is not a superset of mcd.c, this driver has to use its own device files. We use MAJOR 20 for it. So, diff --git a/Documentation/cdrom/sbpcd b/Documentation/cdrom/sbpcd index 7e43d9ce4..3dc3a249d 100644 --- a/Documentation/cdrom/sbpcd +++ b/Documentation/cdrom/sbpcd @@ -4,7 +4,7 @@ CD-ROM driver for Linux. sbpcd really, really is NOT for ANY IDE/ATAPI drive! Not even if you have an "original" SoundBlaster card with an IDE interface! -So, you better have a look into README.ide if your port address is 0x1F0, +So, you'd better have a look into README.ide if your port address is 0x1F0, 0x170, 0x1E8, 0x168 or similar. I get tons of mails from IDE/ATAPI drive users - I really can't continue any more to answer them all. So, if your drive/interface information sheets @@ -18,7 +18,7 @@ LILO commands and get lucky. To make it fully clear to you: if you mail me about IDE/ATAPI drive problems, my answer is above, and I simply will discard your mail, hoping to stop the -flood and to find time to lead my 12-years old son towards happy computing. +flood and to find time to lead my 12-year old son towards happy computing. The driver is able to drive the whole family of "traditional" AT-style (that is NOT the new "Enhanced IDE" or "ATAPI" drive standard) Matsushita, @@ -29,13 +29,13 @@ CR-574 is an IDE/ATAPI drive. The Longshine LCS-7260 is a double-speed drive which uses the "old" Matsushita command set. It is supported - with help by Serge Robyns. Vertos ("Elitegroup Computer Systems", ECS) has a similar drive - support -has started; come in contact if you have such a "Vertos 100" or "ECS-AT" +has started; get in contact if you have such a "Vertos 100" or "ECS-AT" drive. There exists an "IBM External ISA CD-ROM Drive" which in fact is a CR-563 with a special controller board. This drive is supported (the interface is of the "LaserMate" type), and it is possibly the best buy today (cheaper than -an internal drive, and you can use it as an internal, too - f.e. plug it into +an internal drive, and you can use it as an internal, too - e.g. plug it into a soundcard). CreativeLabs has a new drive "CD200" and a similar drive "CD200F". The latter @@ -51,7 +51,7 @@ speed". The data rate already reaches 500 kB/sec if you set SBP_BUFFER_FRAMES to 64 (it is not recommended to do that for normal "file access" usage, but it can speed up things a lot if you use something like "dd" to read from the drive; I use it for verifying self-written CDs this way). -The drive itself is able to deliver 600 kB/sec, so this has to get a point of +The drive itself is able to deliver 600 kB/sec, so this needs work; with the normal setup, the performance currently is not even as good as double-speed. @@ -63,7 +63,7 @@ and include an original log message excerpt, and try to give all information a complete idiot needs to understand your hassle already with your first mail. And if you want to say "as I have mailed you before", be sure that I don't remember your "case" by such remarks; at the moment, I have some -hundreds open correspondences about Linux CDROM questions (hope to reduce if +hundreds of open correspondences about Linux CDROM questions (hope to reduce if the IDE/ATAPI user questions disappear). @@ -79,7 +79,7 @@ specify the type "SBPRO 2" and the true CDROM port address with it, not the If you have a sound card which needs a "configuration driver" instead of jumpers for interface types and addresses (like Mozart cards) - those drivers get invoked before the DOS CDROM driver in your CONFIG.SYS, typical -names are "cdsetup.sys" and "mztinit.sys" -, let the sound driver do the +names are "cdsetup.sys" and "mztinit.sys" - let the sound driver do the CDROM port configuration (the leading comments in linux/drivers/sound/mad16.c are just for you!). Hannu Savolainen's mad16.c code is able to set up my Mozart card - I simply had to add @@ -184,10 +184,10 @@ To install: 1. Setup your hardware parameters. Though the driver does "auto-probing" at a lot of (not all possible!) addresses, this step is recommended for - every-day use. You should let sbpcd auto-probe once and use the reported + everyday use. You should let sbpcd auto-probe once and use the reported address if a drive got found. The reported type may be incorrect; it is correct if you can mount a data CD. There is no choice for you with the - type; only one is the right, the others are deadly wrong. + type; only one is right, the others are deadly wrong. a. Go into /usr/src/linux/drivers/cdrom/sbpcd.h and configure it for your hardware (near the beginning): @@ -229,7 +229,7 @@ To install: second, third, or fourth controller installed, do not say "y" to the secondary Matsushita CD-ROM questions. -3. Then do a "make dep", then make the kernel image ("make zlilo" or else). +3. Then do a "make dep", then make the kernel image ("make zlilo" or similar). 4. Make the device file(s). This step usually already has been done by the MAKEDEV script. @@ -242,7 +242,7 @@ To install: mknod /dev/sbpcd3 b 25 3 to make the node(s). - The "first found" drive gets MINOR 0 (regardless to its jumpered ID), the + The "first found" drive gets MINOR 0 (regardless of its jumpered ID), the "next found" (at the same cable) gets MINOR 1, ... For a second interface board, you have to make nodes like @@ -297,21 +297,21 @@ No DMA and no IRQ is used. To reduce or increase the amount of kernel messages, edit sbpcd.c and play with the "DBG_xxx" switches (initialization of the variable "sbpcd_debug"). -Don't forget to reflect what you do; enabling all DBG_xxx switches at once +Don't forget to reflect on what you do; enabling all DBG_xxx switches at once may crash your system, and each message line is accompanied by a delay. The driver uses the "variable BLOCK_SIZE" feature. To use it, you have to specify "block=2048" as a mount option. Doing this will disable the direct execution of a binary from the CD; you have to copy it to a device with the -standard BLOCK_SIZE (1024) before. So, do not use this if your system is +standard BLOCK_SIZE (1024) first. So, do not use this if your system is directly "running from the CDROM" (like some of YGGDRASIL's installation variants). There are CDs on the market (like the german "unifix" Linux distribution) which MUST get handled with a block_size of 1024. Generally, one can say all the CDs which hold files of the name YMTRANS.TBL are defective; do not use block=2048 with those. -Within sbpcd.h, you will find some "#define"s (f.e. EJECT and JUKEBOX). With -that, you can configure the driver for some special things. +Within sbpcd.h, you will find some "#define"s (e.g. EJECT and JUKEBOX). With +these, you can configure the driver for some special things. You can use the appended program "cdtester" to set the auto-eject feature during runtime. Jeff Tranter's "eject" utility can do this, too (and more) for you. @@ -344,7 +344,7 @@ o.k., but you will get I/O errors during mount). In that case, use the "kernel command line" feature and specify address & type at boot time to find out the right setup. -For every-day use, address and type should get configured within sbpcd.h. That +For everyday use, address and type should get configured within sbpcd.h. That will stop the auto-probing due to success with the first try. The kernel command "sbpcd=0" suppresses each auto-probing and causes @@ -373,7 +373,7 @@ Almost all of the "SoundBlaster compatible" cards behave like the no-sound interfaces, i.e. need SBPRO 0! With "original" SB Pro cards, an initial setting of CD_volume through the -sound cards MIXER register gets done. +sound card's MIXER register gets done. If you are using a "compatible" sound card of types "LaserMate" or "SPEA", you can set SOUND_BASE (in sbpcd.h) to get it done with your card, too... @@ -385,8 +385,8 @@ Workman, WorkBone, xcdplayer, cdplayer and the nice little tool "cdplay" (see README.aztcd from the Aztech driver package) should work. The program CDplayer likes to talk to "/dev/mcd" only, xcdplayer wants -"/dev/rsr0", workman loves "/dev/sr0" or "/dev/cdrom" - so, do the appropriate -links for using them without the need of supplying parameters. +"/dev/rsr0", workman loves "/dev/sr0" or "/dev/cdrom" - so, make the +appropriate links to use them without the need to supply parameters. Copying audio tracks: diff --git a/Documentation/cdrom/sjcd b/Documentation/cdrom/sjcd index 2ebaf4f4d..74a14847b 100644 --- a/Documentation/cdrom/sjcd +++ b/Documentation/cdrom/sjcd @@ -1,10 +1,10 @@ -- Documentation/cdrom/sjcd 80% of the work takes 20% of the time, 20% of the work takes 80% of the time... - (Murphy law) + (Murphy's law) Once started, training can not be stopped... - (StarWars) + (Star Wars) This is the README for the sjcd cdrom driver, version 1.6. @@ -13,7 +13,7 @@ cdrom drive. It will grow as the questions arise. ;-) For info on configuring the ISP16 sound card look at Documentation/cdrom/isp16. The driver should work with any of the Panasonic, Sony or Mitsumi style -CDROM interface. +CDROM interfaces. The cdrom interface on Media Magic's soft configurable sound card ISP16, which used to be included in the driver, is now supported in a separate module. This initialisation module will probably also work with other interfaces diff --git a/Documentation/cdrom/sonycd535 b/Documentation/cdrom/sonycd535 index b7bf48d8a..a931d5093 100644 --- a/Documentation/cdrom/sonycd535 +++ b/Documentation/cdrom/sonycd535 @@ -35,7 +35,7 @@ REQUIREMENTS - Drive must be set up as unit 1. Only the first unit will be recognized - - you must enter your interface address into + - You must enter your interface address into /usr/src/linux/drivers/cdrom/sonycd535.h and build the appropriate kernel or use the "kernel command line" parameter sonycd535=0x320 diff --git a/Documentation/devices.tex b/Documentation/devices.tex index 15e06fd2d..baa9e81ef 100644 --- a/Documentation/devices.tex +++ b/Documentation/devices.tex @@ -1148,11 +1148,11 @@ MAJOR NUMBER 42 IS NONCOMPLIANT. \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. +Network Block Device is somewhat similar to the loopback device: if you +read from it, it sends packets across the network asking a server for +data. If you write to it, it sends packets telling the server to write. It +could be used for mounting filesystems over the net, swapping over the +net, implementing block devices in userland etc. \begin{devicelist} \major{44}{}{char }{isdn4linux virtual modem -- alternate devices} @@ -1283,7 +1283,7 @@ microcontrollers} \end{devicelist} \noindent -This device is used for the interfacing to the MC683xx +This device is used for interfacing to the MC683xx microcontrollers via Background Debug Mode by use of a Parallel Port interface. PD is the Motorola Public Domain Interface and ICD is the commercial interface by P\&E. @@ -1832,7 +1832,7 @@ virtual console such as {\file /dev/tty1}, or to a serial port primary 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 +as the ISDN driver.) Under Linux, each serial port 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 diff --git a/Documentation/digiboard.txt b/Documentation/digiboard.txt index ab1490ada..032928834 100644 --- a/Documentation/digiboard.txt +++ b/Documentation/digiboard.txt @@ -5,18 +5,18 @@ The Digiboard Driver for Linux supports the following boards: 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 + switches) You can use up to 4 cards with this driver and it should work on other architectures than intel also. -In case you have problems with this version(1.6.1) of this driver, please +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 +A 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. +but it doesn't support the old PC/Xi cards and it isn't yet ported to +linux-2.1.x and may not be usable 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. @@ -25,7 +25,7 @@ you need an patch for this driver. Configuring the Driver ---------------------- -The driver can be build direct into the kernel or as module. +The driver can be built direct into the kernel or as a 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 @@ -66,14 +66,14 @@ 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 + hinder the driver from using 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. +verbose - 1: give nice verbose output during initialisation of the driver, possibly helpful during board configuration. 0: normal terse output. @@ -82,19 +82,19 @@ 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 +Only applicable parameters 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 +To disable a temporary unusable 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. +The remaining board still uses ttyD8-ttyD15 and cud8-cud15. Example line for /etc/conf.modules for use with kerneld and as default parameters for modprobe: @@ -120,7 +120,7 @@ Card status: Enable - 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). + PC/Xeve - PC/Xe(new ones with 8k mem range). Note: This is for documentation only, the type is detected from the board. @@ -146,7 +146,8 @@ 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. +these settings and you should be set up fine even if yours has not got 16 +ports. Sources of Information @@ -274,7 +275,7 @@ 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 +Drivers' 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. diff --git a/Documentation/exception.txt b/Documentation/exception.txt index 78118f1d5..0102bb615 100644 --- a/Documentation/exception.txt +++ b/Documentation/exception.txt @@ -9,7 +9,7 @@ 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 +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 @@ -53,7 +53,7 @@ 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 +example. The definition is somewhat hard to follow, so let's 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. @@ -122,7 +122,7 @@ The preprocessor output (edited to become somewhat readable): } ); -WOW! Black GCC/assembly magic. This is impossible to follow, so lets +WOW! Black GCC/assembly magic. This is impossible to follow, so let's see what code gcc generates: > xorl %edx,%edx @@ -266,7 +266,7 @@ vma occurs? 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 + 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. @@ -278,7 +278,7 @@ vma occurs? 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 +That's it, mostly. 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 diff --git a/Documentation/filesystems/00-INDEX b/Documentation/filesystems/00-INDEX index 72903619e..679904d0b 100644 --- a/Documentation/filesystems/00-INDEX +++ b/Documentation/filesystems/00-INDEX @@ -2,12 +2,19 @@ - this file (info on some of the filesystems supported by linux). affs.txt - info and mount options for the Amiga Fast File System. +coda.txt + - description of the CODA filesystem. +fat_cvf.txt + - Description of the Compressed Volume Files extension to the FAT + filesystem hpfs.txt - info and mount options for the OS/2 HPFS. isofs.txt - info and mount options for the ISO9660 (CDROM) filesystem. ncpfs.txt - info on Novell Netware(tm) filesystem using NCP protocol. +ntfs.txt + - info and mount options for the NTFS filesystem (Win NT). romfs.txt - Description of the ROMFS filesystem. smbfs.txt @@ -18,3 +25,5 @@ umsdos.txt - info on the umsdos extensions to the msdos filesystem. vfat.txt - info on using the VFAT filesystem used in Win NT and Win 95 +vfs.txt + - Overview of the Virtual File System diff --git a/Documentation/filesystems/affs.txt b/Documentation/filesystems/affs.txt index 4c5d7fa7a..85d5a58b1 100644 --- a/Documentation/filesystems/affs.txt +++ b/Documentation/filesystems/affs.txt @@ -120,8 +120,8 @@ Symbolic links Although the Amiga and Linux file systems resemble each other, there are some, not always subtle, differences. One of them becomes apparent with symbolic links. While Linux has a file system with exactly one -root directory, the Amiga has a seperate root directory for each -file system (i. e. partition, floppy disk, ...). With the Amiga, +root directory, the Amiga has a separate root directory for each +file system (e.g. partition, floppy disk, ...). With the Amiga, these entities are called "volumes". They have symbolic names which can be used to access them. Thus, symbolic links can point to a different volume. AFFS turns the volume name into a directory name @@ -156,7 +156,7 @@ fs/affs/Changes. Filenames are truncated to 30 characters without warning (this can be changed by setting the compile-time option AFFS_NO_TRUNCATE -ina include/linux/amigaffs.h). +in include/linux/amigaffs.h). Case is ignored by the affs in filename matching, but Linux shells do care about the case. Example (with /mnt being an affs mounted fs): diff --git a/Documentation/filesystems/coda.txt b/Documentation/filesystems/coda.txt index f049c02a6..0c88ce6dc 100644 --- a/Documentation/filesystems/coda.txt +++ b/Documentation/filesystems/coda.txt @@ -28,7 +28,7 @@ kernel support. This document describes the communication between Venus and kernel level file system code needed for the operation of the Coda filesys- - tem. This version document is meant to describe the current interface + tem. This document version is meant to describe the current interface (version 1.0) as well as improvements we envisage. ______________________________________________________________________ @@ -161,7 +161,7 @@ kernel support. client cache and makes remote procedure calls to Coda file servers and related servers (such as authentication servers) to service these requests it receives from the operating system. When Venus has - serviced a request it replies to the operating system with appropiate + serviced a request it replies to the operating system with appropriate return codes, and other data related to the request. Optionally the kernel support for Coda may maintain a minicache of recently processed requests to limit the number of interactions with Venus. Venus @@ -218,10 +218,10 @@ kernel support. as applicable in the operating system. These differ very significantly among operating systems, but share features such as facilities to read/write and create and remove objects. The Coda FS layer services - such VFS requests in by invoking on or more well defined services + such VFS requests by invoking one or more well defined services offered by the cache manager Venus. When the replies from Venus have come back to the FS driver, servicing of the VFS call continues and - finishes with a reply to the kernels VFS. Finally the VFS layer + finishes with a reply to the kernel's VFS. Finally the VFS layer returns to the process. As a result of this design a basic interface exposed by the FS driver @@ -277,7 +277,7 @@ kernel support. FS Driver in kernel memory on behalf of P and copied to user memory in Venus. - The FS Driver while servicing P makes upcall's to Venus. Such an + The FS Driver while servicing P makes upcalls to Venus. Such an upcall is dispatched to Venus by creating a message structure. The structure contains the identification of P, the message sequence number, the size of the request and a pointer to the data in kernel @@ -289,7 +289,7 @@ kernel support. synchronization objects. In the upcall routine the message structure is filled in, flags are set to 0, and it is placed on the _p_e_n_d_i_n_g queue. The routine calling upcall is responsible for allocating the - data buffer; it's structure will be described in the next section. + data buffer; its structure will be described in the next section. A facility must exist to notify Venus that the message has been created, and implemented using available synchronization objects in @@ -323,15 +323,15 @@ kernel support. +o The message is a _d_o_w_n_c_a_l_l. A downcall is a request from Venus to the FS Driver. The FS driver processes the request immediately - (usually a cache eviction or replacement) and when finishes + (usually a cache eviction or replacement) and when it finishes sendmsg_to_kernel returns. Now P awakes and continues processing upcall. There are some - subtleties to take account off. First P will determine if it was woken + subtleties to take account of. First P will determine if it was woken up in upcall by a signal from some other source (for example an attempt to terminate P) or as is normally the case by Venus in its sendmsg_to_kernel call. In the normal case, the upcall routine will - deallocate message structure and return. The FS routine can proceed + deallocate the message structure and return. The FS routine can proceed with its processing. @@ -344,7 +344,7 @@ kernel support. In case P is woken up by a signal and not by Venus, it will first look at the flags field. If the message is not yet READ, the process P can - handle it's signal without notifying Venus. If Venus has READ, and + handle its signal without notifying Venus. If Venus has READ, and the request should not be processed, P can send Venus a signal message to indicate that it should disregard the previous message. Such signals are put in the queue at the head, and read first by Venus. If @@ -407,7 +407,7 @@ kernel support. Before going on let us elucidate the role of the various fields. The inputArgs start with the opcode which defines the type of service requested from Venus. There are approximately 30 upcalls at present - which we will discuss. The unique field labels the inputArg with + which we will discuss. The unique field labels the inputArg with a unique number which will identify the message uniquely. A process and process group id are passed. Finally the credentials of the caller are included. @@ -421,9 +421,9 @@ kernel support. 44..11.. DDaattaa ssttrruuccttuurreess sshhaarreedd bbyy tthhee kkeerrnneell aanndd VVeennuuss - The CodaCred structure defines a variety of user and group id's as + The CodaCred structure defines a variety of user and group ids as they are set for the calling process. The vuid_t and guid_t are 32 bit - unsigned integers. It also defines group member ship in an array. On + unsigned integers. It also defines group membership in an array. On Unix the CodaCred has proven sufficient to implement good security semantics for Coda but the structure may have to undergo modification for the Windows environment when these mature. @@ -462,7 +462,7 @@ kernel support. to be prefixed to identify the Coda cell; this will probably take the form of a Ipv6 size IP address naming the Coda cell through DNS. - The next important structure shared between Venus and the kernel are + The next important structure shared between Venus and the kernel is the attributes of the file. The following structure is used to exchange information. It has room for future extensions such as support for device files (currently not present in Coda). @@ -514,7 +514,7 @@ kernel support. Coda specific requests can be made by application through the pioctl interface. The pioctl is implemented as an ordinary ioctl on a - ficticious file /coda/.CONTROL. The piocl call opens this file, gets + ficticious file /coda/.CONTROL. The pioctl call opens this file, gets a file handle and makes the ioctl call. Finally it closes the file. The kernel involvement in this is limited to providing the facility to @@ -614,7 +614,7 @@ kernel support. The name of the object is an 8 bit character string of maximum length CFS_MAXNAMLEN, currently set to 256 (including a 0 terminator.) - It is extremely important to realize that Venus bitwise or's the field + It is extremely important to realize that Venus bitwise ors the field cfs_lookup.vtype with CFS_NOCACHE to indicate that the object should not be put in the kernel name cache. @@ -650,11 +650,11 @@ kernel support. DDeessccrriippttiioonn This call returns the attributes of the file identified by fid. - EErrrroorrss Errors can occur if the object with fid does not exist, are + EErrrroorrss Errors can occur if the object with fid does not exist, is unaccessible or if the caller does not have permission to fetch attributes. - NNoottee Many kernel FS drivers (Linux, NT and Windows 95 need to acquire + NNoottee Many kernel FS drivers (Linux, NT and Windows 95) need to acquire the attributes as well as the Fid for the instantiation of an internal "inode" or "FileHandle". A significant improvement in performance on such systems could be made by combining the _l_o_o_k_u_p and _g_e_t_a_t_t_r calls @@ -689,7 +689,7 @@ kernel support. in BSD style. Attributes not to be changed are set to -1, apart from vtype which is set to VNON. Other are set to the value to be assigned. The only attributes which the FS driver may request to change are the - mode, ownner, groupid, atime, mtime and ctime. The return value + mode, owner, groupid, atime, mtime and ctime. The return value indicates success or failure. EErrrroorrss A variety of errors can occur. The object may not exist, may @@ -719,7 +719,7 @@ kernel support. DDeessccrriippttiioonn Verify if access to the object identified by VFid for operations described by flags is permitted. The result indicates if access will be granted. It is important to remember that Coda uses - ACL's to enforce protection and that ultimately the servers, not the + ACLs to enforce protection and that ultimately the servers, not the clients enforce the security of the system. The result of this call will depend on wether a _t_o_k_e_n is held by the user. @@ -851,7 +851,7 @@ kernel support. DDeessccrriippttiioonn This call creates a link to the sourceFid in the directory identified by destFid with name tname. The source must reside in the - targets parent, i.e. the source must be have parent destFid, i.e. Coda + target's parent, i.e. the source must be have parent destFid, i.e. Coda does not support cross directory hard links. Only the return value is relevant. It indicates success or the type of failure. @@ -1015,7 +1015,7 @@ kernel support. EErrrroorrss NNOOTTEE Currently the cfs_open_out structure is not properly adapted to - deal with the windows case. It might be best to implement two + deal with the Windows case. It might be best to implement two upcalls, one to open aiming at a container file name, the other at a container file inode. @@ -1051,7 +1051,7 @@ kernel support. fetching the data in Venus vproc_vfscalls. This seems silly. If a file is being closed, the data in the container file is to be the new data. Here again the execp flag might be in play to create confusion: - presently Venus might think a file can be flushed from the cache when + currently Venus might think a file can be flushed from the cache when it is still memory mapped. This needs to be understood. 0wpage @@ -1059,7 +1059,7 @@ kernel support. 44..1177.. iiooccttll - SSuummmmaarryy Do an ioctl on a file. This includes the piocl interface. + SSuummmmaarryy Do an ioctl on a file. This includes the pioctl interface. AArrgguummeennttss @@ -1091,7 +1091,7 @@ kernel support. EErrrroorrss NNOOTTEE Another bogus parameter. flags is not used. What is the - business about PREFETCHING in the Venus' code? + business about PREFETCHING in the Venus code? 0wpage @@ -1154,8 +1154,8 @@ kernel support. DDeessccrriippttiioonn Read directory entries from VFid starting at offset and - read at most count bytes. Returns the data into data and indicates - the size returned size. + read at most count bytes. Returns the data in data and returns + the size in size. EErrrroorrss @@ -1196,7 +1196,7 @@ kernel support. NNOOTTEE This operation is not used. However, it is extremely useful since it can be used to deal with read/write memory mapped files. - These can be "pinned" in the Venus cache using vget and release with + These can be "pinned" in the Venus cache using vget and released with inactive. 0wpage @@ -1219,8 +1219,8 @@ kernel support. oouutt none - DDeessccrriippttiioonn Ask Venus to update RVM attributes of object VFid. This - should be called as part of kernel level fsync type calls. The + DDeessccrriippttiioonn Ask Venus to update RVM attributes of object VFid. This + should be called as part of kernel level fsync type calls. The result indicates if the synching was successful. EErrrroorrss @@ -1452,7 +1452,7 @@ kernel support. 4. the cnode of the object The lookup call in the Coda FS Driver may request the cnode of the - desired object from the cache, by passing it's name, directory and the + desired object from the cache, by passing its name, directory and the CodaCred's of the caller. The cache will return the cnode or indicate that it cannot be found. The Coda FS Driver must be careful to invalidate cache entries when it modifies or removes objects. @@ -1496,7 +1496,7 @@ kernel support. DDeessccrriippttiioonn Remove all entries in the cache carrying the Cred. This - call is issued when tokes for a user expire or are flushed. + call is issued when tokens for a user expire or are flushed. 55..44.. ZZAAPPFFIILLEE @@ -1567,7 +1567,7 @@ kernel support. DDeessccrriippttiioonn Flush the attribute for the file. If it is a dir (odd - vnode), purge its children from the namecache remove the file from the + vnode), purge its children from the namecache and remove the file from the namecache. @@ -1589,7 +1589,7 @@ kernel support. DDeessccrriippttiioonn This routine replaces a ViceFid in the name cache with another. It is added to allow Venus during reintegration to replace locally allocated temp fids while disconnected with global fids even - when the reference count on those fids are not zero. + when the reference counts on those fids are not zero. 0wpage @@ -1629,7 +1629,7 @@ kernel support. 66..11.. RReeqquuiirreemmeennttss - The following requirements should be accomodated: + The following requirements should be accommodated: 1. The message queueus should have open and close routines. On Unix the opening of the character devices are such routines. @@ -1659,7 +1659,7 @@ kernel support. 6. All memory held by cnodes can be freed without relying on upcalls. - 7. Unmounting the file system can be done without relying on upcalss. + 7. Unmounting the file system can be done without relying on upcalls. 8. Mounting the Coda filesystem should fail gracefully if Venus cannot get the rootfid or the attributes of the rootfid. The latter is diff --git a/Documentation/filesystems/fat_cvf.txt b/Documentation/filesystems/fat_cvf.txt index 9e7062e13..ef598932c 100644 --- a/Documentation/filesystems/fat_cvf.txt +++ b/Documentation/filesystems/fat_cvf.txt @@ -34,7 +34,7 @@ like compression and decompression silently. - BMAP problems - CVF filesystems cannot do bmap. It's impossible by principle. Thus + CVF filesystems cannot do bmap. It's impossible in principle. Thus all actions that require bmap do not work (swapping, writable mmapping). Read-only mmapping works because the FAT driver has a hack for this situation :) Well, with some tricks writable mmapping could work, @@ -66,7 +66,7 @@ driver's standard options: cvf_format=xxx Forces the driver to use the CVF module "xxx" instead of auto-detection. - This is only necessary if the CVF format is not recognized corrrectly + This is only necessary if the CVF format is not recognized correctly because of bugs or incompatibilities in the CVF modules. (It skips the detect_cvf call.) "xxx" may be the text "none" (without the quotes) to inhibit using any of the loaded CVF modules, just in case a CVF @@ -80,7 +80,7 @@ driver's standard options: misinterpretation by the FAT driver, which would recognize the text after a comma as a FAT driver option and might get confused or print strange error messages. The documentation for the CVF module should - offer a different seperation symbol, for example the dot ".", which + offer a different separation symbol, for example the dot ".", which is only valid inside the string "yyy". @@ -109,11 +109,11 @@ to introduce the module to the FAT/CVF-FAT driver. It contains... - cvf_version: - A version id which must be uniqe. Choose one. + A version id which must be unique. Choose one. - cvf_version_text: A human readable version string that should be one short word describing the CVF format the module implements. This text is used - for the cvf_format option. This name must also be uniqe. + for the cvf_format option. This name must also be unique. - flags: Bit coded flags, currently only used for a readpage/mmap hack that provides both mmap and readpage functionality. If CVF_USE_READPAGE @@ -178,7 +178,7 @@ int unregister_cvf_format(struct cvf_format*cvf_format); This is usually called in cleanup_module. Return value =0 means success. An error only occurs if you try to unregister a CVF format that has not been previously registered. The code uses the version id - to distinguish the modules, so be sure to keep it uniqe. + to distinguish the modules, so be sure to keep it unique. 5. CVS Modules ------------------------------------------------------------------------------ diff --git a/Documentation/filesystems/ntfs.txt b/Documentation/filesystems/ntfs.txt index 504408e52..d9789eadb 100644 --- a/Documentation/filesystems/ntfs.txt +++ b/Documentation/filesystems/ntfs.txt @@ -5,9 +5,9 @@ To mount an NTFS volume, use the filesystem type 'ntfs'. The driver currently works only in read-only mode, with no fault-tolerance supported. If you enable the experimental write support, make sure you can recover from a complete loss of data. For ftdisk support, -limit success was reported with volume sets on top of the md driver, +limited success was reported with volume sets on top of the md driver, although mirror and stripe sets should work as well - if the md -driver can be talked into using the same lay-out as Windows NT. +driver can be talked into using the same layout as Windows NT. The ntfs driver supports the following mount options: iocharset=name Character set to use when returning file names. diff --git a/Documentation/filesystems/romfs.txt b/Documentation/filesystems/romfs.txt index 32a14e68b..7df713201 100644 --- a/Documentation/filesystems/romfs.txt +++ b/Documentation/filesystems/romfs.txt @@ -22,7 +22,7 @@ genromfs. It is available via anonymous ftp on sunsite.unc.edu and its mirrors, in the /pub/Linux/system/recovery/ 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 +various read-only media, like (E)EPROM disks if someone will have the motivation.. :) However, the main purpose of romfs is to have a very small kernel, @@ -79,7 +79,7 @@ The first eight bytes identify the filesystem, even for the casual inspector. 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 +accessible, whichever is smaller). 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 diff --git a/Documentation/filesystems/umsdos.txt b/Documentation/filesystems/umsdos.txt index 320dac6ca..9dda08913 100644 --- a/Documentation/filesystems/umsdos.txt +++ b/Documentation/filesystems/umsdos.txt @@ -1,20 +1,26 @@ +Firstly, let me say that UMSDOS is going through some major code changes, +and has some KNOWN BUGS (and quite a few unknown :-). Please read +fs/umsdos/README-WIP.txt for more information on current status. Thanks. + +---------------------------------------------------------------------------- Very short explanation for the impatient!!! Umsdos is a file system driver that run on top the MSDOS fs driver. It is written by Jacques Gelinas (jacques@solucorp.qc.ca) +and is currently maintained by Matija Nalis (mnalis@jagor.srce.hr) Umsdos is not a file system per se, but a twist to make a boring one into a useful one. It gives you: - long file name - Permissions and owner + long file names + Permissions and owners Links - Special files (devices, pipe...) - All is need to be a linux root fs. + Special files (devices, pipes...) + All that is needed to be a linux root fs. -There is plenty of documentation on it in the source. A formated document +There is plenty of documentation on it in the source. A formatted document made from those comments is available from sunsite.unc.edu:/pub/Linux/system/Filesystems/umsdos. @@ -26,21 +32,21 @@ mount -t umsdos /dev/hda3 /mnt ^ ---------| -All option are passed to the msdos drivers. Option like uid,gid etc are +All options are passed to the msdos drivers. Option like uid,gid etc are given to msdos. The default behavior of Umsdos is to do the same thing as the msdos driver mostly passing commands to it without much processing. Again, this is the default. After doing the mount on a DOS partition, nothing special -happen. This is why all mount options are passed to the Msdos fs driver. +happens. This is why all mount options are passed to the msdos fs driver. -Umsdos use a special DOS file --linux-.--- to store the information +Umsdos uses a special DOS file --linux-.--- to store the information which can't be handle by the normal MsDOS file system. This is the trick. --linux-.--- is optional. There is one per directory. **** If --linux-.--- is missing, then Umsdos process the directory the - same way the msdos driver do. Short file name, no goodies, default + same way the msdos driver does. Short file names, no goodies, default owner and permissions. So each directory may have or not this --linux-.--- @@ -53,7 +59,7 @@ Now, how to get those --linux-.---. $5 per directory. Add any applicable taxes. \end joke_section -A utility umssync creates those. The kernel maintain them. It is available +A utility umssync creates those. The kernel maintains them. It is available from the same directory above (sunsite) in the file umsdos_progs-0.7.tar.gz. A compiled version is available in umsdos_progs-0.7.bin.tar.gz. @@ -63,20 +69,20 @@ umssync . This will promote this directory (a recursive option is available) to full umsdos capabilities (long name ...). A ls -l before and after won't show -much difference however. The file which were there are still there. But now +much difference however. The files which were there are still there. But now you can do all this: chmod 644 * - chown you.your_groupe * + chown you.your_group * ls >THIS_IS.A.VERY.LONG.NAME ln -s toto tata ls -l -Once a directory is promoted, all subdirectory created will inherit that +Once a directory is promoted, all subdirectories created will inherit that promotion. -What happen if you boot DOS and create files in those promoted directories ? -Umsdos won't notice new files, but will signal removed file (it won't crash). +What happens if you boot DOS and create files in those promoted directories ? +Umsdos won't notice new files, but will signal removed files (it won't crash). Using umssync in /etc/rc will make sure the DOS directory is in sync with the --linux-.---. @@ -89,8 +95,8 @@ after the "mount -a": (You put one for each umsdos mount point in the fstab) This will insure nice operation. A umsdos.fsck is in the making, -so you will be allowed to managed umsdos partition in the same way -other filesystem are, using the generic fsck front end. +so you will be allowed to manage umsdos partitions in the same way +other filesystems are, using the generic fsck front end. Hope this helps! diff --git a/Documentation/filesystems/vfat.txt b/Documentation/filesystems/vfat.txt index 61f44a87c..1a0da9d40 100644 --- a/Documentation/filesystems/vfat.txt +++ b/Documentation/filesystems/vfat.txt @@ -71,7 +71,7 @@ POSSIBLE PROBLEMS * vfat_valid_longname does not properly checked reserved names. * When a volume name is the same as a directory name in the root directory of the filesystem, the directory name sometimes shows - up empty an empty file. + up as an empty file. * autoconv option does not work correctly. BUG REPORTS @@ -103,7 +103,7 @@ but it appears to be so. The extended FAT file system is almost identical to the FAT file system used in DOS versions up to and including 6.223410239847 :-). The significant change has been the addition of long file names. -Theses names support up to 255 characters including spaces and lower +These names support up to 255 characters including spaces and lower case characters as opposed to the traditional 8.3 short names. Here is the description of the traditional FAT entry in the current @@ -142,7 +142,7 @@ directory entries for any files with extended names. (Any name which legally fits within the old 8.3 encoding scheme does not have extra entries.) I call these extra entries slots. Basically, a slot is a specially formatted directory entry which holds up to 13 characters of -a files extended name. Think of slots as additional labeling for the +a file's extended name. Think of slots as additional labeling for the directory entry of the file to which they correspond. Microsoft prefers to refer to the 8.3 entry for a file as its alias and the extended slot directory entries as the file name. @@ -163,7 +163,7 @@ The C structure for a slot directory entry follows: If the layout of the slots looks a little odd, it's only because of Microsoft's efforts to maintain compatibility with old software. The slots must be disguised to prevent old software from -panicing. To this end, a number of measures are taken: +panicking. To this end, a number of measures are taken: 1) The attribute byte for a slot directory entry is always set to 0x0f. This corresponds to an old directory entry with @@ -206,9 +206,9 @@ the following: sum = (((sum&1)<<7)|((sum&0xfe)>>1)) + name[i] } - 3) If there is in the final slot, a Unicode NULL (0x0000) is stored - after the final character. After that, all unused characters in - the final slot are set to Unicode 0xFFFF. + 3) If there is free space in the final slot, a Unicode NULL (0x0000) + is stored after the final character. After that, all unused + characters in the final slot are set to Unicode 0xFFFF. Finally, note that the extended name is stored in Unicode. Each Unicode character takes two bytes. diff --git a/Documentation/filesystems/vfs.txt b/Documentation/filesystems/vfs.txt index 0644c2e2f..7f75f4770 100644 --- a/Documentation/filesystems/vfs.txt +++ b/Documentation/filesystems/vfs.txt @@ -5,7 +5,7 @@ A Brief Overview of the Virtual File System 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 +The VFS is 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/dependencies. @@ -133,9 +133,9 @@ struct inode_operations 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 + The follow_link function is only necessary 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.... + foreign filesystem that makes no sense.... I threw this one out - too much redundant code! int (*readpage) (struct inode *, struct page *); [optional] diff --git a/Documentation/ftape.txt b/Documentation/ftape.txt index 28c3912ed..db53cd828 100644 --- a/Documentation/ftape.txt +++ b/Documentation/ftape.txt @@ -6,7 +6,7 @@ floppy tape device driver that comes with the Linux kernel. This document deals with ftape-3.04 and later. Please read the section "Changes" for the most striking differences between version 3.04 and 2.08; the latter was the version of ftape delivered with the kernel -until kernel version 2.030 and 2.1.57. ftape-3.x developed as the +until kernel version 2.0.30 and 2.1.57. ftape-3.x developed as the re-unification of ftape-2.x and zftape. zftape was developed in parallel with the stock ftape-2.x driver sharing the same hardware support but providing an enhanced file system interface. zftape also @@ -54,7 +54,7 @@ A minus 1. Ftape documentation ============================== Unluckily, the ftape-HOWTO is out of date. This really needs to be -changed. Up to data documentation as well as recent development +changed. Up to date documentation as well as recent development versions of ftape and useful links to related topics can be found at the ftape home page at @@ -245,7 +245,7 @@ C. Boot and load time configuration insmod ftape.o ft_tracing=4 or by editing the file `/etc/conf.modules' in which case they take - affect each time when the module is loaded with `modprobe' (please + effect each time when the module is loaded with `modprobe' (please refer to the modules documentation, i.e. `modules.txt' and the respective manual pages). Thus, you should add a line diff --git a/Documentation/hayes-esp.txt b/Documentation/hayes-esp.txt index 62a9c7451..3cd744c21 100644 --- a/Documentation/hayes-esp.txt +++ b/Documentation/hayes-esp.txt @@ -51,7 +51,7 @@ be specified by using the irq= option. The format is: irq=[0x100],[0x140],[0x180],[0x200],[0x240],[0x280],[0x300],[0x380] The address in brackets is the base address of the card. The IRQ of -nonexistant cards can be set to 0. If and IRQ of a card that does exist is set +nonexistent cards can be set to 0. If an IRQ of a card that does exist is set to 0, the driver will attempt to guess at the correct IRQ. For example, to set the IRQ of the card at address 0x300 to 12, the insmod command would be: diff --git a/Documentation/ide.txt b/Documentation/ide.txt index a6e7e551e..7ee08c752 100644 --- a/Documentation/ide.txt +++ b/Documentation/ide.txt @@ -221,7 +221,7 @@ If you always get timeout errors, interrupts from the drive are probably not making it to the host. Check how you have the hardware jumpered and make sure it matches what the driver expects (see the configuration instructions above). If you have a PCI system, also check the BIOS -setup; i've had one report of a system which was shipped with IRQ 15 +setup; I've had one report of a system which was shipped with IRQ 15 disabled by the BIOS. The kernel is able to execute binaries directly off of the cdrom, diff --git a/Documentation/isdn/00-INDEX b/Documentation/isdn/00-INDEX index 401697921..919af9057 100644 --- a/Documentation/isdn/00-INDEX +++ b/Documentation/isdn/00-INDEX @@ -19,4 +19,12 @@ README.syncppp syncPPP.FAQ - frequently asked questions about running PPP over ISDN. README.avmb1 - - info on driver for AVM-B1 ISDN card + - info on driver for AVM-B1 ISDN card. +README.act2000 + - info on driver for IBM ACT-2000 card. +README.concap + - info on "CONCAP" ecapsulation protocol interface used for X.25. +README.sc + - info on driver for Spellcaster cards. +README.x25 + _ info for running X.25 over ISDN. diff --git a/Documentation/isdn/CREDITS b/Documentation/isdn/CREDITS index 44e6554a7..6fd4c9ed5 100644 --- a/Documentation/isdn/CREDITS +++ b/Documentation/isdn/CREDITS @@ -8,6 +8,9 @@ Thomas Bogendörfer (tsbogend@bigbug.franken.de) Alan Cox (alan@cymru.net) For help getting into standard-kernel. +Henner Eisen (eis@baty.hanse.de) + For X.25 implementation. + Volker Götz (volker@oops.franken.de) For contribution of man-pages, the imontty-tool and a perfect maintaining of the mailing-list at hub-wue. @@ -37,18 +40,24 @@ Pedro Roque Marques (roque@di.fc.ul.pt) Eberhard Moenkeberg (emoenke@gwdg.de) For testing and help to get into kernel. +Thomas Neumann (tn@ruhr.de) + For help with Cisco-SLARP and keepalive + Jan den Ouden (denouden@groovin.xs4all.nl) - For contribution of the teles-driver + For contribution of the original teles-driver + +Carsten Paeth (calle@calle.in-berlin.de) + For the AVM-B1-CAPI2.0 driver + +Thomas Pfeiffer (pfeiffer@pds.de) + For V.110, extended T.70 and Hylafax extensions in isdn_tty.c Max Riegel (riegel@max.franken.de) For making the ICN hardware-documentation and test-equipment available. -Gerhard 'Fido' Schneider (fido@wuff.franken.de) +Gerhard 'Fido' Schneider (fido@wuff.mayn.de) For heavy-duty-beta-testing with his BBS ;) Thomas Uhl (uhl@think.de) For distributing the cards. For pushing me to work ;-) - -Carsten Paeth (calle@calle.in-berlin.de) - For the AVM-B1-CAPI2.0 driver diff --git a/Documentation/isdn/INTERFACE b/Documentation/isdn/INTERFACE index 81dddb081..cf938f67f 100644 --- a/Documentation/isdn/INTERFACE +++ b/Documentation/isdn/INTERFACE @@ -1,4 +1,4 @@ -$Id: INTERFACE,v 1.6 1997/02/10 22:40:57 fritz Exp $ +$Id: INTERFACE,v 1.8 1998/02/20 17:38:20 fritz Exp $ Description of the Interface between Linklevel and Hardwarelevel of isdn4linux: @@ -22,7 +22,7 @@ Description of the Interface between Linklevel and Hardwarelevel got a separate version number. These numbers are shown at initialization, separated by slashes: - c.c/t.t/n.n/p.p/a.a + c.c/t.t/n.n/p.p/a.a/v.v where @@ -31,11 +31,13 @@ Description of the Interface between Linklevel and Hardwarelevel n.n is the revision of the network related code. p.p is the revision of the ppp related code. a.a is the revision of the audio related code. + v.v is the revision of the V.110 related code. Changes in this document are marked with '***CHANGEx' where x representing the version number. If that number starts with 0, it refers to the old, separately distributed package. If it starts with one of the letters above, it refers to the revision of the corresponding module. + ***CHANGEIx refers to the revision number of the isdnif.h 1. Description of the fields of isdn_if: @@ -51,7 +53,7 @@ Description of the Interface between Linklevel and Hardwarelevel ***CHANGE0.6: New since this version. Also to be preset by the HL-driver. With this value the HL-driver - tells to the LL the maximum size of a data-packet it will accept. + tells the LL the maximum size of a data-packet it will accept. unsigned long features; @@ -65,32 +67,16 @@ Description of the Interface between Linklevel and Hardwarelevel unsigned short hl_hdrlen; - ***CHANGED.7.4: New field. + ***CHANGE0.7.4: New field. To be preset by the HL-driver, if it supports sk_buff's. The driver - should put here the amount of additional space needed in sk-buff's for - its internal purposes. Drivers not supporting sk_buff's should put + should put here the amount of additional space needed in sk_buff's for + its internal purposes. Drivers not supporting sk_buff's should initialize this field to 0. - void (*rcvcallb)(int, int, u_char*, int); - - ***CHANGEc1.14: Declared obsolete. Do NOT use this field/function - anymore, since it will be removed when all current - LL drivers have been changed accordingly. Use - rcvcallb_skb instead. - - This field will be set by LL. The HL-driver delivers received data- - packets by calling this function. - - Parameter: - int driver-Id - int Channel-number locally to the driver. (starting with 0) - u_char Pointer to received data. (in kernel-space) - int length of data-packet. - void (*rcvcallb_skb)(int, int, struct sk_buff *) - ***CHANGED.7.4: New field. + ***CHANGE0.7.4: New field. This field will be set by LL. The HL-driver delivers received data- packets by calling this function. Upon calling, the HL-driver must @@ -138,41 +124,22 @@ Description of the Interface between Linklevel and Hardwarelevel Returnvalue: >=0 on success, else error-code (-ENODEV etc.) - int (*writebuf)(int, int, u_char*, int, int); + int (*writebuf_skb)(int, int, int, struct sk_buff *) - ***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. - - This field has to be preset by the HL-driver. The given function will - be called by the LL for delivering data to be send via B-Channel. - - Parameter: - int driver-Id ***CHANGE.7.4: New parameter. - int channel-number locally to the HL-driver. (starts with 0) - u_char* pointer to data. - int length of data-packet. - int flag: 0 = call from within kernel-space. (HL-driver must use - memcpy, may NOT use schedule()) - 1 = call from user-space. (HL-driver must use - memcpy_fromfs, use of schedule() allowed) - - Returnvalue: - Length of data accepted on success, else error-code (-EINVAL on - oversized packets etc.) - - int (*writebuf_skb)(int, int, struct sk_buff *) - - ***CHANGED.7.4: New field. + ***CHANGE0.7.4: New field. + ***CHANGEI.1.21: New field. This field has to be preset by the HL-driver. The given function will be called by the LL for delivering data to be send via B-Channel. Parameter: - int driver-Id ***CHANGE.7.4: New parameter. + int driver-Id ***CHANGE0.7.4: New parameter. int channel-number locally to the HL-driver. (starts with 0) + int ack ***ChangeI1.21: New parameter + If this is !0, the driver has to signal the delivery + by sending an ISDN_STAT_BSENT. If this is 0, the driver + MUST NOT send an ISDN_STAT_BSENT. struct sk_buff * Pointer to sk_buff containing data to be send via B-channel. @@ -199,7 +166,7 @@ Description of the Interface between Linklevel and Hardwarelevel int driver-Id. int channel-number locally to the HL-driver. (starts with 0) -***CHANGED1.14: The driver-Id and channel-number are new since this revision. +***CHANGEI1.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 +190,7 @@ Description of the Interface between Linklevel and Hardwarelevel int driver-Id. int channel-number locally to the HL-driver. (starts with 0) -***CHANGED1.14: The driver-Id and channel-number are new since this revision. +***CHANGEI1.14: The driver-Id and channel-number are new since this revision. Returnvalue: Length of data on success, else error-code (-EINVAL etc.) @@ -244,12 +211,12 @@ Description of the Interface between Linklevel and Hardwarelevel All commands will be performed by calling the function command() described above from within the LL. The field command of the struct-parameter will - contain the desired command, the field driver always is set to the + contain the desired command, the field driver is always set to the appropriate driver-Id. Until now, the following commands are defined: -***CHANGED1.34: The parameter "num" has been replaced by a union "para" containing +***CHANGEI1.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. @@ -469,7 +436,7 @@ Description of the Interface between Linklevel and Hardwarelevel arg = unused. para = unused. -3. Description of the events to be signaled by the HL-driver to th LL. +3. Description of the events to be signaled by the HL-driver to the LL. All status-changes are signaled via calling the previously described function statcallb(). The field command of the struct isdn_cmd has @@ -552,6 +519,9 @@ Description of the Interface between Linklevel and Hardwarelevel a B-Channel-connection. (Response to ISDN_CMD_ACCEPTB or because the remote-station has initiated establishment) + The HL driver should call this when the logical l2/l3 protocol + connection on top of the physical B-channel is established. + Parameter: driver = driver-Id command = ISDN_STAT_BCONN @@ -577,6 +547,9 @@ Description of the Interface between Linklevel and Hardwarelevel B-Channel-connection. This could be a response to a prior ISDN_CMD_HANGUP, or caused by a remote-hangup. + The HL driver should call this as soon as the logical l2/l3 protocol + connection on top of the physical B-channel is released. + Parameter: driver = driver-Id command = ISDN_STAT_BHUP @@ -617,7 +590,9 @@ Description of the Interface between Linklevel and Hardwarelevel driver = driver-Id command = ISDN_STAT_BSENT arg = channel-number, locally to the driver. (starting with 0) - para = unused. + para.length = ***CHANGEI.1.21: New field. + the driver has to set this to the original length + of the skb at the time of receiving it from the linklevel. ISDN_STAT_NODCH: @@ -649,7 +624,7 @@ Description of the Interface between Linklevel and Hardwarelevel With this call, the HL-driver delivers CAUSE-messages to the LL. Currently the LL does not use this messages. Their contents is simply logged via kernel-messages. Therefore, currently the format of the - messages is currently completely free. However they should be printable. + messages is completely free. However they should be printable. Parameter: driver = driver-Id @@ -657,3 +632,16 @@ Description of the Interface between Linklevel and Hardwarelevel arg = channel-number, locally to the driver. (starting with 0) para.num = ASCII string containing CAUSE-message. + ISDN_STAT_L1ERR: + + ***CHANGEI1.21 new status message. + A signal can be sent to the linklevel if an Layer1-error results in + packet-loss on receive or send. The field errcode of the cmd.parm + union describes the error more precisely. + + Parameter: + driver = driver-Id + command = ISDN_STAT_L1ERR + arg = channel-number, locally to the driver. (starting with 0) + para.errcode= ISDN_STAT_L1ERR_SEND: Packet lost while sending. + ISDN_STAT_L1ERR_RECV: Packet lost while receiving. diff --git a/Documentation/isdn/README b/Documentation/isdn/README index 48dec2d83..cfe4beae4 100644 --- a/Documentation/isdn/README +++ b/Documentation/isdn/README @@ -62,7 +62,7 @@ README for the ISDN-subsystem read: raw D-channel-messages (format: depends on driver). ioctl: depends on driver, i.e. for the ICN-driver, the base-address of the ports and the shared memory on the card can be set and read - also the boot-code an the protocol software can be loaded into + also the boot-code and the protocol software can be loaded into the card. O N L Y !!! for debugging (no locking against other devices): @@ -74,7 +74,7 @@ README for the ISDN-subsystem 128 tty-devices (64 cuix and 64 ttyIx) with integrated modem-emulator: The functionality is almost the same as that of a serial device - (the line-discs are handled by the kernel, which lets you run + (the line-discs are handled by the kernel), which lets you run SLIP, CSLIP and asynchronous PPP through the devices. We have tested Seyon, minicom, CSLIP (uri-dip) PPP and mgetty (compiled with NO_FAX), XCept. @@ -96,7 +96,7 @@ README for the ISDN-subsystem ATI Return "ISDN for Linux...". ATI0 " ATI1 " - ATI2 Report of last connection. + ATI2 Report of last connection. ATO On line (data mode). ATQ0 Enable result codes (default). ATQ1 Disable result codes (default). @@ -107,9 +107,9 @@ README for the ISDN-subsystem ATZ Load registers and EAZ/MSN from Profile. AT&Bx Set Send-Packet-size to x (max. 4000) The real packet-size may be limited by the - low-level-driver used. i.e.: the HiSax-Module- + low-level-driver used. e.g. the HiSax-Module- limit is 2000. You will get NO Error-Message, - if you set it to higher Values, because at the + if you set it to higher values, because at the time of giving this command the corresponding driver may not be selected (see "Automatic Assignment") however the size of outgoing packets @@ -120,12 +120,35 @@ README for the ISDN-subsystem AT&D3 Same as AT&D2 but also resets all registers. AT&Ex Set the EAZ/MSN for this channel to x. AT&F Reset all registers and profile to "factory-defaults" + AT&Rx Select V.110 bitrate adaption. + This command enables V.110 protocol with 9600 baud + (x=9600), 19200 baud (x=19200) or 38400 baud + (x=38400). A value of x=0 disables V.110 switching + back to default X.75. This command sets the following + Registers: + Reg 14 (Layer-2 protocol): + x = 0: 0 + x = 9600: 7 + x = 19200: 8 + x = 38400: 9 + Reg 18.2 = 1 + Reg 19 (Additional Service Indicator): + x = 0: 0 + x = 9600: 197 + x = 19200: 199 + x = 38400: 198 + Note on value in Reg 19: + There is _NO_ common convention for 38400 baud. + The value 198 is choosen arbitrarily. Users + _MUST_ negotiate this value before establishing + a connection. AT&Sx Set window-size (x = 1..8) (not yet implemented) AT&V Show all settings. AT&W0 Write registers and EAZ/MSN to profile. See also iprofd (5.c in this README). - AT&X0 BTX-mode off (default) - AT&X1 BTX-mode on. (S13.1=1, S14=0, S16=7, S18=7, S19=0) + AT&X0 BTX-mode and T.70-mode off (default) + AT&X1 BTX-mode on. (S13.1=1, S13.5=0 S14=0, S16=7, S18=7, S19=0) + AT&X2 T.70-mode on. (S13.1=1, S13.5=1, S14=0, S16=7, S18=7, S19=0) For voice-mode commands refer to README.audio @@ -184,12 +207,23 @@ README for the ISDN-subsystem 1 = Extended response messages Bit 4: 0 = CALLER NUMBER before every RING. 1 = CALLER NUMBER after first RING. + Bit 5: 0 = T.70 extended protocol off + 1 = T.70 extended protocol on + Bit 6: 0 = Special RUNG Message off + 1 = Special RUNG Message on + "RUNG" is delivered on a ttyI, if + an incoming call happened (RING) and + the remote party hung up before any + local ATA was given. 14 0 Layer-2 protocol: 0 = X75/LAPB with I-frames 1 = X75/LAPB with UI-frames 2 = X75/LAPB with BUI-frames 3 = HDLC 4 = Transparent (audio) + 7 = V.110, 9600 baud + 8 = V.110, 19200 baud + 9 = V.110, 38400 baud 15 0 Layer-3 protocol: (at the moment always 0) 0 = transparent 16 250 Send-Packet-size/16 @@ -211,7 +245,7 @@ README for the ISDN-subsystem 19 0 Service-Octet-2 20 0 Bit coded register (readonly) Service-Octet-1 of last call. - Bit mapping is the same like register 18 + Bit mapping is the same as register 18 21 0 Bit coded register (readonly) Set on incoming call (during RING) to octet 3 of calling party number IE (Numbering plan) @@ -229,17 +263,17 @@ README for the ISDN-subsystem All inactive physical lines are listening to all EAZs for incoming calls and are NOT assigned to a specific tty or network interface. When an incoming call is detected, the driver looks first for a network - interfaces and then for an opened tty which: + interface and then for an opened tty which: 1. is configured for the same EAZ. 2. has the same protocol settings for the B-channel. 3. (only for network interfaces if the security flag is set) contains the caller number in its access list. 4. Either the channel is not bound exclusively to another Net-interface, or - it is bound AND the other checks apply to exact this Interface. + it is bound AND the other checks apply to exactly this Interface. (For usage of the bind-features, refer to the isdnctrl-man-page) - Only when a matching interface or tty is found, the call is accepted + Only when a matching interface or tty is found is the call accepted and the "connection" between the low-level-layer and the link-level-layer is established and kept until the end of the connection. In all other cases no connection is established. Isdn4linux can be @@ -275,7 +309,7 @@ README for the ISDN-subsystem 4. Device-inodes - The major and minor-numbers and its names are described in + The major and minor numbers and their names are described in Documentation/devices.txt. The major-numbers are: 43 for the ISDN-tty's. @@ -323,7 +357,7 @@ README for the ISDN-subsystem i) Setup the interface with ifconfig as usual, and set a route to it. - j) (optional) If you run X11 and have Tcl/Tk-wish Version4.0, you can use + j) (optional) If you run X11 and have Tcl/Tk-wish Version 4.0, you can use the script tools/tcltk/isdnmon. You can add actions for line-status changes. See the comments at the beginning of the script for how to do that. There are other tty-based tools in the tools-subdirectory @@ -365,7 +399,7 @@ README for the ISDN-subsystem "isdnctrl secure <InterfaceName> off" - Switch of secure operation (default). + Switch off secure operation (default). "isdnctrl ihup <InterfaceName> [on|off]" Switch the hang-up-timer for incoming calls on or off. @@ -400,12 +434,15 @@ README for the ISDN-subsystem Selects the type of packet-encapsulation. The encapsulation can be changed only while an interface is down. - At the moment th following Values are supported: + At the moment the following values are supported: rawip (Default) Selects raw-IP-encapsulation. This means, MAC-headers are stripped off. ip IP with type-field. Same as IP but the type-field of the MAC-header is preserved. + x25iface X.25 interface encapsulation (first byte semantics as defined in + ../networking/x25-iface.txt). Use this for running the linux + X.25 network protocol stack (AF_X25 sockets) on top of isdn. cisco-h A special-mode for communicating with a Cisco, which is configured to do "hdlc" ethernet No stripping. Packets are sent with full MAC-header. @@ -415,6 +452,11 @@ README for the ISDN-subsystem uihdlc HDLC with UI-frame-header (for use with DOS ISPA, option -h1) + + NOTE: x25iface encapsulation is currently experimental. Please + read README.x25 for further details + + Watching packets, using standard-tcpdump will fail for all encapsulations except ethernet because tcpdump does not know how to handle packets without MAC-header. A patch for tcpdump is included in the utility-package @@ -423,7 +465,8 @@ README for the ISDN-subsystem "isdnctrl l2_prot <InterfaceName> <L2-ProtocolName>" Selects a layer-2-protocol. (With the ICN-driver and the HiSax-driver, "x75i" and "hdlc" is available. - With other drivers, "x75ui", "x75bui" may be possible too.) + With other drivers, "x75ui", "x75bui", "x25dte", "x25dce" may be + possible too. See README.x25 for x25 related l2 protocols.) isdnctrl l3_prot <InterfaceName> <L3-ProtocolName> The same for layer-3. (At the moment only "trans" is allowed) @@ -440,7 +483,7 @@ README for the ISDN-subsystem dial out using a specific Card or even preserve a specific Channel for Dialout of a specific net-interface. This can be done with the above command. Replace <DriverId> by whatever you assigned while loading the - module. The <ChannelNumber> is counting from zero. the upper Limit + module. The <ChannelNumber> is counting from zero. The upper Limit depends on the card used. At the Moment no card supports more than 2 Channels, so the upper limit is one. diff --git a/Documentation/isdn/README.HiSax b/Documentation/isdn/README.HiSax index 20b578d83..4b49e0939 100644 --- a/Documentation/isdn/README.HiSax +++ b/Documentation/isdn/README.HiSax @@ -23,24 +23,39 @@ Supported cards --------------- Teles 8.0/16.0/16.3 and compatible ones +Teles 16.3c Teles S0/PCMCIA Creatix PnP S0 -AVM A1 (Fritz) +Compaq ISDN S0 ISA card +AVM A1 (Fritz, Teledat 150) ELSA Microlink PCC-16, PCF, PCF-Pro, PCC-8 ELSA Quickstep 1000 +ELSA Quickstep 1000PCI +ELSA Quickstep 3000 (same settings as QS1000) ELSA PCMCIA ITK ix1-micro Rev.2 +Eicon.Diehl Diva 2.0 ISA and PCI (S0 and U interface, no PRO version) +Eicon.Diehl Diva Piccola +ASUSCOM NETWORK INC. ISDNLink 128K PC adapter (order code I-IN100-ST-D) +Dynalink IS64PH (OEM version of ASUSCOM NETWORK INC. ISDNLink 128K adapter) +HFC-2BS0 based cards (TeleInt SA1) +Sedlbauer Speed Card (Speed Win, Teledat 100) +Sedlbauer Speed Star (PCMCIA) +USR Sportster internal TA (compatible Stollmann tina-pp V3) +ith Kommunikationstechnik GmbH MIC 16 ISA card +Traverse Technologie NETjet PCI S0 card +Dr. Neuhaus Niccy PnP/PCI Note: PCF, PCF-Pro: up to now, only the ISDN part is supported PCC-8: not tested yet Teles PCMCIA is EXPERIMENTAL + Teles 16.3c is EXPERIMENTAL + Eicon.Diehl Diva U interface not tested If you know other passive cards with the Siemens chipset, please let me know. To use the PNP cards you need the isapnptools. You can combine any card, if there is no conflict between the ressources -(io, mem, irq), with one exception: The ELSA PCMCIA cannot work with an other -non PCMCIA ELSA card at the same time. You cannot select ELSA ISA and ELSA -PCMCIA support at the same time during kernel config. +(io, mem, irq). Configuring the driver @@ -51,7 +66,7 @@ It 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. There is also some config needed before you compile the kernel and/or -modules. It is enclose in the normal "make [menu]config" target at the +modules. It is included in the normal "make [menu]config" target at the kernel. Don't forget it, especially to select the right D-channel protocol. Please note: All PnP cards need to be configured with isapnp and will work @@ -113,15 +128,31 @@ Card types: 6 ELSA PCC/PCF cards io or nothing for autodetect (the iobase is required only if you have more than one ELSA card in your PC) - 7 ELSA Quickstep 1000 irq, io (from isapnp setup) - 7 ELSA PCMCIA irq, io (set with card manager) + 7 ELSA Quickstep 1000 irq, io (from isapnp setup) 8 Teles 16.3 PCMCIA irq, io 9 ITK ix1-micro Rev.2 irq, io + 10 ELSA PCMCIA irq, io (set with card manager) + 11 Eicon.Diehl Diva ISA PnP irq, io + 11 Eicon.Diehl Diva PCI no parameter + 12 ASUS COM ISDNLink irq, io (from isapnp setup) + 13 HFC-2BS0 based cards irq, io + 14 Teles 16.3c PnP irq, io + 15 Sedlbauer Speed Card irq, io + 16 USR Sportster internal irq, io + 17 MIC card irq, io + 18 ELSA Quickstep 1000PCI no parameter + 19 Compaq ISDN S0 ISA card irq, io0, io1, io (from isapnp setup io=IO2) + 20 NETjet PCI card no parameter + 22 Sedlbauer Speed Star (PCMCIA) irq, io (set with card manager) + 24 Dr. Neuhaus Niccy PnP irq, io0, io1 (from isapnp setup) + 24 Dr. Neuhaus Niccy PCI no parameter + + At the moment IRQ sharing is not possible. Please make sure that your IRQ is free and enabled for ISA use. Note: For using the ELSA PCMCIA you need the cardmanager under MSDOS for -enabling in the moment, then boot linux with loadlin. +enabling at the moment, then boot linux with loadlin. Examples for module loading @@ -181,17 +212,28 @@ where Card types: type - 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 + 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 WORKS AS A MODULE ! - 5 AVM A1 (Fritz) pa=irq pb=iobase + 5 AVM A1 (Fritz) pa=irq pb=iobase 6 ELSA PCC/PCF cards pa=iobase or nothing for autodetect - 7 ELSA Quickstep 1000 ONLY WORKS AS A MODULE ! - 7 ELSA PCMCIA irq, io (set with card manager) - 8 Teles S0 PCMCIA pa=irq pb=iobase + 7 ELSA Quickstep 1000 ONLY WORKS AS A MODULE ! + 8 Teles S0 PCMCIA pa=irq pb=iobase 9 ITK ix1-micro Rev.2 pa=irq pb=iobase - + 10 ELSA PCMCIA pa=irq, pb=io (set with card manager) + 11 Eicon.Diehl Diva ISAPnP ONLY WORKS AS A MODULE ! + 11 Eicon.Diehl Diva PCI no parameter + 12 ASUS COM ISDNLink ONLY WORKS AS A MODULE ! + 13 HFC-2BS0 based cards pa=irq pb=io + 14 Teles 16.3c PnP ONLY WORKS AS A MODULE ! + 15 Sedlbauer Speed Card pa=irq pb=io (Speed Win only as module !) + 16 USR Sportster internal pa=irq pb=io + 17 MIC card pa=irq pb=io + 18 ELSA Quickstep 1000PCI no parameter + 19 Compaq ISDN S0 ISA card ONLY WORKS AS A MODULE ! + 20 NETjet PCI card no parameter + 21 Sedlbauer Speed Star (PCMCIA) pa=irq, pb=io (set with card manager) Running the driver ------------------ @@ -215,8 +257,8 @@ Apr 13 21:01:59 kke01 kernel: HiSax: DSS1 Rev. 1.14 Apr 13 21:01:59 kke01 kernel: HiSax: 2 channels added This means that the card is ready for use. -Cabling problems or line-downs are not detected, and only ELSA cards can detect -the S0 power. +Cabling problems or line-downs are not detected, and only some ELSA cards 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 @@ -226,11 +268,11 @@ 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. -At the moment, debugging messages are enabled with the telesctrl tool: +At the moment, debugging messages are enabled with the hisaxctrl tool: - telesctrl <DriverId> DebugCmd <debugging_flags> + hisaxctrl <DriverId> DebugCmd <debugging_flags> -<DriverId> default is HiSax, if you didn't specified one. +<DriverId> default is HiSax, if you didn't specify one. DebugCmd is 1 for generic debugging 11 for layer 1 development debugging @@ -267,11 +309,18 @@ With DebugCmd set to 11: With DebugCmd set to 13: 1 Warnings (default: on) - 2 l3 protocol discriptor errors + 2 l3 protocol descriptor errors 4 l3 state machine 8 charge info debugging (1TR6) -For example, 'telesctrl HiSax 1 0x3ff' enables full generic debugging. +For example, 'hisaxctrl HiSax 1 0x3ff' enables full generic debugging. + +Because of some obscure problems with some switch equipment, the delay +between the CONNECT message and sending the first data on the B-channel is now +configurable with + +hisaxctrl <DriverId> 2 <delay> +<delay> in ms Value between 50 and 800 ms is recommended. Warning @@ -284,7 +333,7 @@ illegal. Limitations ----------- At this time, HiSax only works on Euro ISDN lines and German 1TR6 lines. - +For leased lines see appendix. Bugs ---- @@ -301,10 +350,20 @@ Special thanks to: Andreas Kool, Pekka Sarnila, Sim Yskes, Johan Myrre'en, Klaus-Peter Nischke (ITK AG), Christof Petig, Werner Fehn (ELSA GmbH), Volker Schmidt + Edgar Toernig and Marcus Niemann for the Sedlbauer driver + Stephan von Krawczynski + Juergen Quade for the Leased Line part + Klaus Lichtenwalder (Klaus.Lichtenwalder@WebForum.DE), for ELSA PCMCIA support and more people who are hunting bugs. (If I forgot somebody, please send me a mail). Firma ELSA GmbH + Firma Eicon.Diehl GmbH + Firma Dynalink NL + Firma ASUSCOM NETWORK INC. Taiwan + Firma S.u.S.E + Firma ith Kommunikationstechnik GmbH + Firma Traverse Technologie Australia My girl friend and partner in life Ute for her patience with me. @@ -321,3 +380,171 @@ Appendix: Teles PCMCIA driver See http://www.stud.uni-wuppertal.de/~ea0141/pcmcia.html for instructions. + +Appendix: Linux and ISDN-leased lines +------------------------------------- + +Original from Juergen Quade, new version KKe. + +Attention NEW VERSION, the old leased line syntax won't work !!! + +You can use HiSax to connect your Linux-Box via an ISDN leased line +to e.g. the Internet: + +1. Build a kernel which includes the HiSax driver either as a module + or as part of the kernel. + cd /usr/src/linux + make menuconfig + <ISDN subsystem - ISDN support -- HiSax> + make clean; make dep; make zImage; make modules; make modules_install +2. Install the new kernel + cp /usr/src/linux/arch/i386/boot/zImage /etc/kernel/linux.isdn + vi /etc/lilo.conf + <add new kernel in the bootable image section> + lilo +3. in case the hisax driver is a "fixed" part of the kernel, configure + the driver with lilo: + vi /etc/lilo.conf + <add HiSax driver parameter in the global section (see below)> + lilo + Your lilo.conf _might_ look like the following: + + # LILO configuration-file + # global section + # teles 16.0 on IRQ=5, MEM=0xd8000, PORT=0xd80 + append="hisax=1,3,5,0xd8000,0xd80,HiSax" + # teles 16.3 (non pnp) on IRQ=15, PORT=0xd80 + # append="hisax=3,3,5,0xd8000,0xd80,HiSax" + boot=/dev/sda + compact # faster, but won't work on all systems. + linear + read-only + prompt + timeout=100 + vga = normal # force sane state + # Linux bootable partition config begins + image = /etc/kernel/linux.isdn + root = /dev/sda1 + label = linux.isdn + # + image = /etc/kernel/linux-2.0.30 + root = /dev/sda1 + label = linux.secure + + In the line starting with "append" you have to adapt the parameters + according to your card (see above in this file) + +3. boot the new linux.isdn kernel +4. start the ISDN subsystem: + a) load - if necessary - the modules (depends, whether you compiled + the ISDN driver as module or not) + According to the type of card you have to specify the necessary + driver parameter (irq, io, mem, type, protocol). + For the leased line the protocol is "3". See the table above for + the parameters, which you have to specify depending on your card. + b) configure i4l + /sbin/isdnctrl addif isdn0 + # EAZ 1 -- B1 channel 2 --B2 channel + /sbin/isdnctrl eaz isdn0 1 + /sbin/isdnctrl secure isdn0 on + /sbin/isdnctrl huptimeout isdn0 0 + /sbin/isdnctrl l2_prot isdn0 hdlc + # Attention you must not set an outgoing number !!! This won't work !!! + # The incomming number is LEASED0 for the first card, LEASED1 for the + # second and so on. + /sbin/isdnctrl addphone isdn0 in LEASED0 + # Here is no need to bind the channel. + c) in case the remote partner is a CISCO: + /sbin/isdnctrl encap isdn0 cisco-h + d) configure the interface + /sbin/ifconfig isdn0 ${LOCAL_IP} pointopoint ${REMOTE_IP} + e) set the routes + /sbin/route add -host ${REMOTE_IP} isdn0 + /sbin/route add default gw ${REMOTE_IP} + f) switch the card into leased mode for each used B-channel + /sbin/hisaxctrl HiSax 5 1 + +Remarks: +a) If you have a CISCO don't forget to switch off the KEEP ALIVE option! + +Here an example script: +#!/bin/sh +# Start/Stop ISDN lesaed line connection + +I4L_AS_MODULE=yes +I4L_REMOTE_IS_CISCO=no +I4L_MODULE_PARAMS="type=16 io=0x268 irq=7 " +I4L_DEBUG=no +I4L_LEASED_128K=yes +LOCAL_IP=192.168.1.1 +REMOTE_IP=192.168.2.1 + +case "$1" in + start) + echo "Starting ISDN ..." + if [ ${I4L_AS_MODULE} = "yes" ]; then + echo "loading modules..." + /sbin/modprobe hisax ${I4L_MODULE_PARAMS} + fi + # configure interface + /sbin/isdnctrl addif isdn0 + /sbin/isdnctrl secure isdn0 on + if [ ${I4L_DEBUG} = "yes" ]; then + /sbin/isdnctrl verbose 7 + /sbin/hisaxctrl HiSax 1 0xffff + /sbin/hisaxctrl HiSax 11 0xff + cat /dev/isdnctrl >/tmp/lea.log & + fi + if [ ${I4L_REMOTE_IS_CISCO} = "yes" ]; then + /sbin/isdnctrl encap isdn0 cisco-h + fi + /sbin/isdnctrl huptimeout isdn0 0 + # B-CHANNEL 1 + /sbin/isdnctrl eaz isdn0 1 + /sbin/isdnctrl l2_prot isdn0 hdlc + # 1. card + /sbin/isdnctrl addphone isdn0 in LEASED0 + if [ ${I4L_LEASED_128K} = "yes" ]; then + /sbin/isdnctrl addslave isdn0 isdn0s + /sbin/isdnctrl secure isdn0s on + /sbin/isdnctrl huptimeout isdn0s 0 + # B-CHANNEL 2 + /sbin/isdnctrl eaz isdn0s 2 + /sbin/isdnctrl l2_prot isdn0s hdlc + # 1. card + /sbin/isdnctrl addphone isdn0s in LEASED0 + if [ ${I4L_REMOTE_IS_CISCO} = "yes" ]; then + /sbin/isdnctrl encap isdn0s cisco-h + fi + fi + # configure tcp/ip + /sbin/ifconfig isdn0 ${LOCAL_IP} pointopoint ${REMOTE_IP} + /sbin/route add -host ${REMOTE_IP} isdn0 + /sbin/route add default gw ${REMOTE_IP} + # switch to leased mode + # B-CHANNEL 1 + /sbin/hisaxctrl HiSax 5 1 + if [ ${I4L_LEASED_128K} = "yes" ]; then + # B-CHANNEL 2 + /sbin/hisaxctrl HiSax 5 2 + fi + ;; + stop) + /sbin/ifconfig isdn0 down + /sbin/isdnctrl delif isdn0 + if [ ${I4L_DEBUG} = "yes" ]; then + killall cat + fi + if [ ${I4L_AS_MODULE} = "yes" ]; then + /sbin/rmmod hisax + /sbin/rmmod isdn + /sbin/rmmod ppp + /sbin/rmmod slhc + fi + ;; + *) + echo "Usage: $0 {start|stop}" + exit 1 +esac +exit 0 + diff --git a/Documentation/isdn/README.act2000 b/Documentation/isdn/README.act2000 new file mode 100644 index 000000000..155095db1 --- /dev/null +++ b/Documentation/isdn/README.act2000 @@ -0,0 +1,104 @@ +$Id: README.act2000,v 1.1 1997/09/24 23:50:16 fritz Exp $ + +This document describes the ACT2000 driver for the +IBM Active 2000 ISDN card. + +There are 3 Types of this card available. A ISA-, MCA-, and PCMCIA-Bus +Version. Currently, only the ISA-Bus version of the card is supported. +However MCA and PCMCIA will follow soon. + +The ISA-Bus Version uses 8 IO-ports. The base port adress has to be set +manually using the DIP switches. + +Setting up the DIP switches for the IBM Active 2000 ISDN card: + + Note: S5 and S6 always set off! + + S1 S2 S3 S4 Base-port + on on on on 0x0200 (Factory default) + off on on on 0x0240 + on off on on 0x0280 + off off on on 0x02c0 + on on off on 0x0300 + off on off on 0x0340 + on off off on 0x0380 + on on on off 0xcfe0 + off on on off 0xcfa0 + on off on off 0xcf60 + off off on off 0xcf20 + on on off off 0xcee0 + off on off off 0xcea0 + on off off off 0xce60 + off off off off Card disabled + +IRQ is configured by software. Possible values are: + + 3, 5, 7, 10, 11, 12, 15 and none (polled mode) + + +The ACT2000 driver may either be built into the kernel or as a module. +Initialization depends on how the driver is built: + +Driver built into the kernel: + + The ACT2000 driver can be configured using the commandline-feature while + loading the kernel with LILO or LOADLIN. It accepts the following syntax: + + act2000=b,p,i[,idstring] + + where + + b = Bus-Type (1=ISA, 2=MCA, 3=PCMCIA) + p = portbase (-1 means autoprobe) + i = Interrupt (-1 means use next free IRQ, 0 means polled mode) + + The idstring is an arbitrary string used for referencing the card + by the actctrl tool later. + + Defaults used, when no parameters given at all: + + 1,-1,-1,"" + + which means: Autoprobe for an ISA card, use next free IRQ, let the + ISDN linklevel fill the IdString (usually "line0" for the first card). + + If you like to use more than one card, you can use the program + "actctrl" from the utility-package to configure additional cards. + + Using the "actctrl"-utility, portbase and irq can also be changed + during runtime. The D-channel protocol is configured by the "dproto" + option of the "actctrl"-utility after loading the firmware into the + card's memory using the "actctrl"-utility. + +Driver built as module: + + The module act2000.o can be configured during modprobe (insmod) by + appending its parameters to the modprobe resp. insmod commandline. + The following syntax is accepted: + + act_bus=b act_port=p act_irq=i act_id=idstring + + where b, p, i and idstring have the same meanings as the parameters + described for the builtin version above. + + Using the "actctrl"-utility, the same features apply to the modularized + version as to the kernel-builtin one. (i.e. loading of firmware and + configuring the D-channel protocol) + +Loading the firmware into the card: + + The firmware is supplied together with the isdn4k-utils package. It + can be found in the subdirectory act2000/firmware/ + + Assuming you have installed the utility-package correctly, the firmware + will be downloaded into the card using the following command: + + actctrl -d idstring load /etc/isdn/bip11.btl + + where idstring is the Name of the card, given during insmod-time or + (for kernel-builtin driver) on the kernel commandline. If only one + ISDN card is used, the -d isdstrin may be omitted. + + For further documentation (adding more IBM Active 2000 cards), refer to + the manpage actctrl.8 which is included in the isdn4k-utils package. + diff --git a/Documentation/isdn/README.audio b/Documentation/isdn/README.audio index c01a116bc..d7b845162 100644 --- a/Documentation/isdn/README.audio +++ b/Documentation/isdn/README.audio @@ -22,7 +22,7 @@ Commands for enabling/disabling audio mode: Commands supported in audio mode: -All audio mode commands have the one of the following form: +All audio mode commands have one of the following forms: AT+Vxx? Show current setting. AT+Vxx=? Show possible settings. @@ -89,8 +89,8 @@ General behavior and description of data formats/protocol. <DLE><ETX> End of audio data. (i.e. caused by a hangup of the remote side) Emulator stops recording, responding with VCON. - <DLE><DC4> Abort recording, (send by appl.) Emulator - stops recording, sends DLE,ETX. + <DLE><DC4> Abort recording, (send by appl.) Emulator + stops recording, sends DLE,ETX. <DLE><DLE> Escape sequence for DLE in data stream. <DLE>0 Touchtone "0" received. ... diff --git a/Documentation/isdn/README.avmb1 b/Documentation/isdn/README.avmb1 index 68bdf0985..342532786 100644 --- a/Documentation/isdn/README.avmb1 +++ b/Documentation/isdn/README.avmb1 @@ -26,7 +26,7 @@ To use the card you need the t4-files to download the firmware. AVM GmbH provides several t4-files for the different D-channel protocols (b1.t4 for Euro-ISDN). Install these file in /lib/isdn. -If you not compile the driver as modules, you have to add the +If you do not compile the driver as modules, you have to add the card(s) and load them after booting: avmcapictrl add 0x150 15 diff --git a/Documentation/isdn/README.concap b/Documentation/isdn/README.concap new file mode 100644 index 000000000..1e46096ca --- /dev/null +++ b/Documentation/isdn/README.concap @@ -0,0 +1,258 @@ +Description of the "concap" encapsulation protocol interface +============================================================ + +The "concap" interface is intended to be used by network device +drivers that need to process an encapsulation protocol. +It is assumed that the protocol interacts with a linux network device by +- data transmission +- connection control (establish, release) +Thus, the mnemonic: "CONnection CONtrolling eNCAPsulation Protocol". + +This is currently only used inside the isdn subsystem. But it might +also be useful to other kinds of network devices. Thus, if you want +to suggest changes that improve usability or performance of the +interface, please let me know. I'm willing to include them in future +releases (even if I needed to adapt the current isdn code to the +changed interface). + + +Why is this useful? +=================== + +The encapsulation protocol used on top of WAN connections or permanent +point-to-point links are frequently chosen upon bilateral agreement. +Thus, a device driver for a certain type of hardware must support +several different encapsulation protocols at once. + +The isdn device driver did already support several different +encapsulation protocols. The encapsulation protocol is configured by a +user space utility (isdnctrl). The isdn network interface code then +uses several case statements which select appropriate actions +depending on the currently configured encapsulation protocol. + +In contrast, LAN network interfaces always used a single encapsulation +protocol which is unique to the hardware type of the interface. The LAN +encapsulation is usually done by just sticking a header on the data. Thus, +traditional linux network device drivers used to process the +encapsulation protocol directly (usually by just providing a hard_header() +method in the device structure) using some hardware type specific support +functions. This is simple, direct and efficient. But it doesn't fit all +the requirements for complex WAN encapsulations. + + + The configurability of the encapsulation protocol to be used + makes isdn network interfaces more flexible, but also much more + complex than traditional lan network interfaces. + + +Many Encapsulation protocols used on top of WAN connections will not just +stick a header on the data. They also might need to set up or release +the WAN connection. They also might want to send other data for their +private purpose over the wire, e.g. ppp does a lot of link level +negotiation before the first piece of user data can be transmitted. +Such encapsulation protocols for WAN devices are typically more complex +than encapsulation protocols for lan devices. Thus, network interface +code for typical WAN devices also tends to be more complex. + + +In order to support Linux' x25 PLP implementation on top of +isdn network interfaces I could have introduced yet another branch to +the various case statements inside drivers/isdn/isdn_net.c. +This eventually made isdn_net.c even more complex. In addition, it made +isdn_net.c harder to maintain. Thus, by identifying an abstract +interface between the network interface code and the encapsulation +protocol, complexity could be reduced and maintainability could be +increased. + + +Likewise, a similar encapsulation protocol will frequently be needed by +several different interfaces of even different hardware type, e.g. the +synchronous ppp implementation used by the isdn driver and the +asyncronous ppp implementation used by the ppp driver have a lot of +similar code in them. By cleanly separating the encapsulation protocol +from the hardware specific interface stuff such code could be shared +better in future. + + +When operating over dial-up-connections (e.g. telephone lines via modem, +non-permanent virtual circuits of wide area networks, ISDN) many +encapsulation protocols will need to control the connection. Therefore, +some basic connection control primitives are supported. The type and +semantics of the connection (i.e the ISO layer where connection service +is provided) is outside our scope and might be different depending on +the encapsulation protocol used, e.g. for a ppp module using our service +on top of a modem connection a connect_request will result in dialing +a (somewhere else configured) remote phone number. For an X25-interface +module (LAPB semantics, as defined in Documentation/networking/x25-iface.txt) +a connect_request will ask for establishing a reliable lapb +datalink connection. + + +The encapsulation protocol currently provides the following +service primitives to the network device. + +- create a new encapsulation protocol instance +- delete encapsulation protocol instance and free all its resources +- initialize (open) the encapsulation protocol instance for use. +- deactivate (close) an encapsulation protocol instance. +- process (xmit) data handed down by upper protocol layer +- receive data from lower (hardware) layer +- process connect indication from lower (hardware) layer +- process disconnect indication from lower (hardware) layer + + +The network interface driver accesses those primitives via callbacks +provided by the encapsulation protocol instance within a +struct concap_proto_ops. + +struct concap_proto_ops{ + + /* create a new encapsulation protocol instance of same type */ + struct concap_proto * (*proto_new) (void); + + /* delete encapsulation protocol instance and free all its resources. + cprot may no loger be referenced after calling this */ + void (*proto_del)(struct concap_proto *cprot); + + /* initialize the protocol's data. To be called at interface startup + or when the device driver resets the interface. All services of the + encapsulation protocol may be used after this*/ + int (*restart)(struct concap_proto *cprot, + struct device *ndev, + struct concap_device_ops *dops); + + /* deactivate an encapsulation protocol instance. The encapsulation + protocol may not call any *dops methods after this. */ + int (*close)(struct concap_proto *cprot); + + /* process a frame handed down to us by upper layer */ + int (*encap_and_xmit)(struct concap_proto *cprot, struct sk_buff *skb); + + /* to be called for each data entity received from lower layer*/ + int (*data_ind)(struct concap_proto *cprot, struct sk_buff *skb); + + /* to be called when a connection was set up/down. + Protocols that don't process these primitives might fill in + dummy methods here */ + int (*connect_ind)(struct concap_proto *cprot); + int (*disconn_ind)(struct concap_proto *cprot); +}; + + +The data structures are defined in the header file include/linux/concap.h. + + +A Network interface using encapsulation protocols must also provide +some service primitives to the encapsulation protocol: + +- request data being submitted by lower layer (device hardware) +- request a connection being set up by lower layer +- request a connection being released by lower layer + +The encapsulation protocol accesses those primitives via callbacks +provided by the network interface within a struct concap_device_ops. + +struct concap_device_ops{ + + /* to request data be submitted by device */ + int (*data_req)(struct concap_proto *, struct sk_buff *); + + /* Control methods must be set to NULL by devices which do not + support connection control. */ + /* to request a connection be set up */ + int (*connect_req)(struct concap_proto *); + + /* to request a connection be released */ + int (*disconn_req)(struct concap_proto *); +}; + +The network interface does not explicitly provide a receive service +because the encapsulation protocol directly calls netif_rx(). + + + + +An encapsulation protocol itself is actually the +struct concap_proto{ + struct device *net_dev; /* net device using our service */ + struct concap_device_ops *dops; /* callbacks provided by device */ + struct concap_proto_ops *pops; /* callbacks provided by us */ + int flags; + void *proto_data; /* protocol specific private data, to + be accessed via *pops methods only*/ + /* + : + whatever + : + */ +}; + +Most of this is filled in when the device requests the protocol to +be reset (opend). The network interface must provide the net_dev and +dops pointers. Other concap_proto members should be considered private +data that are only accessed by the pops callback functions. Likewise, +a concap proto should access the network device's private data +only by means of the callbacks referred to by the dops pointer. + + +A possible extended device structure which uses the connection controlling +encapsulation services could look like this: + +struct concap_device{ + struct device net_dev; + struct my_priv /* device->local stuff */ + /* the my_priv struct might contain a + struct concap_device_ops *dops; + to provide the device specific callbacks + */ + struct concap_proto *cprot; /* callbacks provided by protocol */ +}; + + + +Misc Thoughts +============= + +The concept of the concap proto might help to reuse protocol code and +reduce the complexity of certain network interface implementations. +The trade off is that it introduces yet another procedure call layer +when processing the protocol. This has of course some impact on +performance. However, typically the concap interface will be used by +devices attached to slow lines (like telephone, isdn, leased synchronous +lines). For such slow lines, the overhead is probably negligible. +This might no longer hold for certain high speed WAN links (like +ATM). + + +If general linux network interfaces explicitly supported concap +protocols (e.g. by a member struct concap_proto* in struct device) +then the interface of the service function could be changed +by passing a pointer of type (struct device*) instead of +type (struct concap_proto*). Doing so would make many of the service +functions compatible to network device support fuctions. + +e.g. instead of the concap protocol's service function + + int (*encap_and_xmit)(struct concap_proto *cprot, struct sk_buff *skb); + +we could have + + int (*encap_and_xmit)(struct device *ndev, struct sk_buff *skb); + +As this is compatible to the dev->hard_start_xmit() method, the device +driver could directly register the concap protocol's encap_and_xmit() +fuction as its hard_start_xmit() method. This would eliminate one +procedure call layer. + + +The device's data request function could also be defined as + + int (*data_req)(struct device *ndev, struct sk_buff *skb); + +This might even allow for some protocol stacking. And the network +interface might even register the same data_req() function directly +as its hard_start_xmit() method when a zero layer encapsulation +protocol is configured. Thus, eliminating the performance penalty +of the concap interface when a trivial concap protocol is used. +Nevertheless, the device remains able to support encapsulation +protocol configuration. diff --git a/Documentation/isdn/README.icn b/Documentation/isdn/README.icn index cb8908d58..155e87457 100644 --- a/Documentation/isdn/README.icn +++ b/Documentation/isdn/README.icn @@ -62,8 +62,8 @@ Setting up the IO-address dipswitches for the ICN-ISDN-card: 1 1 1 0 0x368 1 1 1 1 NOT ALLOWED! -The ICN driver either may be build into kernel or as a module. Initialization -depends on how the drive is built: +The ICN driver may be built into the kernel or as a module. Initialization +depends on how the driver is built: Driver built into the kernel: @@ -102,7 +102,7 @@ Driver built as module: portbase=p membase=m icn_id=idstring [icn_id2=idstring2] - where p, m, idstring1 and idstring2 have the same meanings like + where p, m, idstring1 and idstring2 have the same meanings as the parameters described for the kernel-version above. When using the ICN double card (4B), you MUST define TWO idstrings. @@ -127,12 +127,12 @@ Loading the firmware into the card: pc_1t_ca.bin - Image of firmware for german 1TR6 protocol. pc_eu_ca.bin - Image if firmware for EDSS1 (Euro-ISDN) protocol. - Assumed you have installed the utility-package correctly, the firmware + Assuming you have installed the utility-package correctly, the firmware will be downloaded into the 2B-card using the following command: icnctrl -d Idstring load /etc/isdn/loadpg.bin /etc/isdn/pc_XX_ca.bin - where XX is either "1t" or "eu", depending of the D-Channel protocol + where XX is either "1t" or "eu", depending on the D-Channel protocol used on your S0-bus and Idstring is the Name of the card, given during insmod-time or (for kernel-builtin driver) on the kernel commandline. diff --git a/Documentation/isdn/README.pcbit b/Documentation/isdn/README.pcbit index e93562b2c..fb696422f 100644 --- a/Documentation/isdn/README.pcbit +++ b/Documentation/isdn/README.pcbit @@ -16,20 +16,20 @@ ftp://ftp.di.fc.ul.pt/pub/systems/Linux/isdn Known Limitations: -- The board reset proceeding is at the moment incorrect and will only +- The board reset procedure is at the moment incorrect and will only allow you to load the firmware after a hard reset. -- Only HDLC in B-channels is supported at the moment. There is now -current support to X.25 in B or D channels nor LAPD in B -channels. The main reason is that this two other protocol modes have, +- Only HDLC in B-channels is supported at the moment. There is no +current support for X.25 in B or D channels nor LAPD in B +channels. The main reason is that these two other protocol modes have, to my knowledge, very little use. If you want to see them implemented *do* send me a mail. -- The driver often triggers errors in the board that i and the +- The driver often triggers errors in the board that I and the manufacturer believe to be caused by bugs in the firmware. The current -version includes several proceedings for error recovery that should +version includes several procedures for error recovery that should allow normal operation. Plans for the future include cooperation with -the manufacturer in order to solve this problems. +the manufacturer in order to solve this problem. Information/hints/help can be obtained in the linux isdn mailing list (isdn4linux@hub-wue.franken.de) or directly from me. diff --git a/Documentation/isdn/README.sc b/Documentation/isdn/README.sc index 0ea8ca165..b70db7a63 100644 --- a/Documentation/isdn/README.sc +++ b/Documentation/isdn/README.sc @@ -9,7 +9,7 @@ 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 +our own option and without warranty. If you choose to assume all and total risk by using this driver, we encourage you to join the beta mailing list. @@ -17,7 +17,7 @@ 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 +the same address with the words "unsubscribe linux-beta" as its only contents. TABLE OF CONTENTS @@ -42,7 +42,7 @@ TABLE OF CONTENTS --------------- 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. +upon ISDN4Linux available separately 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 @@ -74,14 +74,14 @@ include: 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 + have been improved to better detect available 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. + probed increasing the likelihood 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 + of separate 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 @@ -115,7 +115,7 @@ must ensure that the following software is installed, configuraed and running: 2.1 Unpacking and installing the driver - 1. As root, create a directory in a convienient place. We suggest + 1. As root, create a directory in a convenient place. We suggest /usr/src/spellcaster. 2. Unpack the archive with : @@ -170,36 +170,38 @@ 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: +There are three 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. +It should be mentioned here that you may also use a tty connection if you +desire. The Documentation directory of the isdn4linux subsystem offers 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. + This file is a script used to configure a BRI ISDN TA to establish a + basic HDLC connection between its two channels. Two network + interfaces are created and two routes added between the channels. - i) using the isdnctrl utitity, add an interface with "addif" and name it "isdn0" + 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 + 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 + vii) the hangup upon incoming 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 + ix) add a route to the IP address through the isdn0 interface x) a ping should result in the establishment of the connection @@ -208,13 +210,15 @@ 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. + 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. + 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: @@ -223,52 +227,55 @@ B) Establishment of a PPP connection 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. +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. + 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" + 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) + 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 + 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 + vii) the hangup upon incoming 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 + ix) 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 + xvi) 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. +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. +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 from 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 --git a/Documentation/isdn/README.x25 b/Documentation/isdn/README.x25 new file mode 100644 index 000000000..cc1b70120 --- /dev/null +++ b/Documentation/isdn/README.x25 @@ -0,0 +1,217 @@ + +X25 support within isdn4linux + + +This is experimental code and should be used with linux version 2.1.72. +or later. Use it completely at your own risk. + + +As new versions appear, the stuff described here might suddenly change +or become invalid without notice. + +Keep in mind: + +You are using an experimental kernel (2.1.x series) with an experimental +x25 protocol implementation and experimental x25-on-top-of-isdn extensions. +Thus, be prepared to face problems related therefrom. + +- If you connect to an x25 neighbour not operated by yourself, ASK the + other side first. Be prepared that bugs in the protocol implementation + might result in problems (even crashing the peer, however such ugly events + should only happen if your peer's protocol implementation has serious bugs). + +- This implementation has never wiped out my whole hard disk yet. But as + this is experimental code, don't blame me if that happened to you. Take + appropriate actions (such as backing up important data) before + trying this code. + +- Monitor your isdn connections while using this software. This should + prevent you from undesired phone bills in case of driver problems. + + + + +How to configure the kernel + + +The ITU-T (former CCITT) X.25 network protocol layer has been implemented +in the Linux source tree since version 2.1.16. The isdn subsystem might be +useful to run X.25 on top of ISDN. If you want to try it, select + + "CCITT X.25 Packet Layer" + +from the networking options as well as + + "ISDN Support" and "X.25 PLP on Top of ISDN" + +from the ISDN subsystem options when you configure your kernel for +compilation. You currently also need to enable +"Prompt for development and/or incomplete code/drivers" from the +"Code maturity level options" menu. For the x25trace utility to work +you also need to enable "Packet socket" (I recommend to choose "y", +not "m" for testing) from the networking options. + + +For testing you should also select the isdnloop driver from the +isdn subsystem's configuration menu. + + + +What's it for? How to use it? + + +X25 on top of isdn might be useful with two different scenarios: + +- You might want to access a public X.25 data network from your Linux box. + You can use i4l if you were physically connected to the X.25 switch + by an ISDN line (leased line as well as dial up connection should work, + but connecting to x.25 network switches is currently untested. Testing + needs to be done by somebody with access to such a switch.) + +- Or you might want to operate certain ISDN teleservices on + your linux box. A lot of those teleservices run on top of the ISO-8208 + network layer protocol. ISO-8208 is essentially the same as ITU-T X.25. + + Popular candidates of such teleservices are EUROFILE transfer or any + teleservice applying ITU-T recommendation T.90 (i.e., AFAIK, G4 Fax). + +To use the X.25 protocol on top of isdn, just create an isdn network +interface as usual, configure your own and/or peer's ISDN numbers, +and choose x25iface encapsulation by + + isdnctrl encap <iface-name> x25iface. + +Once encap is set like this, the device can be used by the x25 packet layer. + +All the stuff needed for x25 is implemented inside the isdn link +level (mainly isdn_net.c and some new source files). Thus, it should +work with every existing HL driver. I was able to successfully open x25 +connections on top of the isdnloop driver and the hisax driver. +"x25iface"-encapsulation bypasses demand dialing. Dialing will be +initiated when the upper (x25 packet) layer requests the lapb datalink to +be established. But hangup timeout is still active. The connection +will not automatically be re-established by the isdn_net module +itself when new data arrives after the hangup timeout. But +the x25 network code will re-establish the datalink connection +(resulting in re-dialing and an x25 protocol reset) when new data is +to be transmitted. (This currently does not work properly with the +isdnloop driver, see "known problems" below) + + +In order to set up a conforming protocol stack you also need to +specify the proper l2_prot parameter: + +To operate in ISO-8208 X.25 DTE-DTE mode, use + + isdnctrl l2_prot <iface-name> x75i + +To access an X.25 network switch via isdn (your linux box is the DTE), use + + isdnctrl l2_prot <iface-name> x25dte + +To mimic an X.25 network switch (DCE side of the connection), use + + isdnctrl l2_prot <iface-name> x25dce + +However, x25dte or x25dce is currently not supported by any real HL +level driver. The main difference between x75 and x25dte/dce is that +x25d[tc]e uses fixed lap_b addresses. With x75i, the side which +initiates the isdn connection uses the DTE's lap_b address while the +called side used the DCE's lap_b address. Thus, l2_prot x75i will +probably work if you access a public x25 network as long as the +corresponding isdn connection is set up by you. However, I've never +tested this. + + + +How to use the test installation? + + +To test x25 on top of isdn, you need to get + +- a patched version of the "isdnctrl" program that supports setting the new + x25 specific parameters. + +- the x25-utils-2.1.x package from ftp.pspt.fi/pub/ham/linux/ax25 + or any mirror site (i.e. ftp://ftp.gwdg.de/pub/linux/misc/ax25/). + +- a kernel patch that enhances isdn4linux to provide x25 network + interface support. (This file is part of that kernel patch). + +- an application that uses linux AF_X25 sockets program. + +Before compiling the user level utilities make sure that the compiler/ +preprocessor will fetch the proper (patched) kernel header files. Either make +/usr/include/linux a symbolic link pointing to your developer kernel's +include/linux directory or set the appropriate compiler flags. + +It is recommended that all isdn drivers and the x25 PLP protocol +are compiled as loadable modules. Like this, you can recover +from certain errors by simply unloading and reloading the modules. + +When all drivers and interfaces are loaded and configured you need to +ifconfig the network interfaces up and add x25-routes to them. Use +the usual ifconfig tool. + +ifconfig <iface-name> up + +But a special x25route tool (distributed with the x25-util package) +is needed to set up x25 routes. I.e. + +x25route add 01 <iface-name> + +will cause all x.25 connections to the destination x.25-address +"01" to be routed to your created isdn network interface. + + +There are currently no real x25 applications available. However, for +tests, the x25-utils package contains a modified version of telnet +and telnetd that uses x25 sockets instead of tcp/ip sockets. Use +this for your first tests. Furthermore, there is an x25.echod and a client +named "eftp" (which contains some experimental code to download files +from a remote eft server using the EUROfile transfer protocol). +It available at ftp://ftp.hamburg.pop.de/pub/LOCAL/linux/i4l-eft/eftp4linux-* + +The x25-utility package also contains an x25trace tool that can be +used to monitor x25 packets received by the network interfaces. +The /proc/net/x25* files also contain useful information. + +The eftp4linux test release also contains an "ix25test" script that can +be used for testing x25 on top of isdn4linux. Edit +this script according to your local needs and then call it as + +ix25test start + +This will set up a sample configuration using the isdnloop and hisax +driver and create some isdn network interfaces. +It is recommended that all other isdn drivers and the +x25 module are unloaded before calling this script. + + + +Known problems and deficiencies: + +The isdnloop HL driver apparently has problems to re-establish a +connection that has been hung up from the outgoing device. You have to +unload the isdnloop driver after the faked isdn-connection is closed +and insmod it again. With the Hisax driver, this problem is not present. + +Sometimes the x25 module cannot be unloaded (decrementation of its use +count seems to get lost occasionally). + +Using the x25 based telnet and telnetd programm to establish connection +from your own to your own computer repeatedly sometimes totally locked +up my system. However, this kernel patch also modifies +net/x25/af_x25.c to include a workaround. With this workaround +enabled, my system is stable. (If you want to disable the +workaround, just undefine ISDN_X25_FIXES in af_x25.c). + +The latter problem could be reproduced by using hisax as well as the +isdnloop driver. It seems that it is not caused by the isdn code. +Somehow, the inode of a socket is freed while a process still refers +the socket's wait queue. This causes problems when the process tries to +remove itself from the wait queue (refered by the dangling +sock->sleep pointer) before returning from a select() system call. + +- Henner + diff --git a/Documentation/isdn/syncPPP.FAQ b/Documentation/isdn/syncPPP.FAQ index 6813818e0..3257a4bc0 100644 --- a/Documentation/isdn/syncPPP.FAQ +++ b/Documentation/isdn/syncPPP.FAQ @@ -1,8 +1,8 @@ simple isdn4linux PPP FAQ .. to be continued .. not 'debugged' ------------------------------------------------------------------- -Q01: what's pppd,ipppd, syncPPP , asyncPPP ?? -Q02: error message "this systems lacks PPP support" +Q01: what's pppd, ipppd, syncPPP, asyncPPP ?? +Q02: error message "this system lacks PPP support" Q03: strange information using 'ifconfig' Q04: MPPP?? What's that and how can I use it ... Q05: I tried MPPP but it doesn't work @@ -16,7 +16,7 @@ Q12: How can I reduce login delay? ------------------------------------------------------------------- -Q01: pppd,ipppd, syncPPP , asyncPPP .. what is that ? +Q01: pppd, ipppd, syncPPP, asyncPPP .. what is that ? what should I use? A: The pppd is for asynchronous PPP .. asynchronous means here, the framing is character based. (e.g when @@ -45,7 +45,7 @@ A: The pppd is for asynchronous PPP .. asynchronous means -- Q02: when I start the ipppd .. I only get the - error message "this systems lacks PPP support" + error message "this system lacks PPP support" A: check that at least the device 'ippp0' exists. (you can check this e.g with the program 'ifconfig') The ipppd NEEDS this device under THIS name .. @@ -123,7 +123,7 @@ A: (from Alexanter Strauss: ) -- -Q08: A wanna talk to remote machines, which need +Q08: I wanna talk to remote machines, which need a different configuration. The only way I found to do this is to kill the ipppd and start a new one with another config to connect @@ -152,14 +152,14 @@ A: When starting, the ipppd calls functions which may Q10: I wanna use dynamic IP address assignment ... How must I configure the network device. -A: At least you must have a routing, which forwards +A: At least you must have a route which forwards a packet to the ippp network-interface to trigger the dial-on-demand. - A default routing to the ippp-interface will work. + A default route to the ippp-interface will work. Now you must choose a dummy IP address for your interface. If for some reason you can't set the default - routing to the ippp interface, you may take any + route to the ippp interface, you may take any address of the subnet from which you expect your dynamic IP number and set a 'network route' for this subnet to the ippp interface. diff --git a/Documentation/java.txt b/Documentation/java.txt index a5439f730..1b30c1183 100644 --- a/Documentation/java.txt +++ b/Documentation/java.txt @@ -18,7 +18,7 @@ other program after you have done the following: nonstandard classes (not included in the same directory as the application itself). -2) You have to compile BINFMT_MISC either as module or into +2) You have to compile BINFMT_MISC either as a module or into the kernel (CONFIG_BINFMT_MISC) and set it up properly. If you choose to compile it as a module, you will have to insert it manually with modprobe/insmod, as kerneld diff --git a/Documentation/joystick.txt b/Documentation/joystick.txt index ec525b182..eada60d0d 100644 --- a/Documentation/joystick.txt +++ b/Documentation/joystick.txt @@ -15,7 +15,7 @@ stories are also welcome. 2. Usage ~~~~~~~~ If you enable the joystick driver in the kernel configuration, all -connected joystick should be found automatically. If that doesn't work, you +connected joysticks should be found automatically. If that doesn't work, you can pass the joystick driver the following kernel command line arguments: js=0xXX,0xYY @@ -41,7 +41,13 @@ used. select `M' for this driver in the kernel configuration and insert the module: -insmod js.o js=0xXX,0xYY +insmod joystick.o js=0xXX,0xYY + + To enable autoloading/-unloading of the joystick module, you have to add +these lines to /etc/conf.modules: + +alias char-major-15 joystick +options joystick js=0xXX,0xYY To enable the user space programs to read the joystick device, you have to create the device files using mknod (man mknod for more info): @@ -114,7 +120,7 @@ Version 0.4 Linux 0.99.6 and fixed race condition in js_read. port started ALL the joystick one shots. If the one that we are reading is short enough and the first one to be read, the second one will return - bad data if it's one shot has not expired when + bad data if its one shot has not expired when the joystick port is written for the second time. Thus solves the mystery delay problem in 0.2! Version 0.5 Upgraded the driver to the 0.99.9 kernel, added @@ -149,7 +155,7 @@ Version 0.9 Ported to 2.1.x Better ioctl names. Kept binary compatibility. Removed 'save_busy'. Just set busy to 1. Version 0.9.0 Based on 0.7.3 - New read function that allows two axes have same value + New read function that allows two axes to have the same value New joystick calibration code Real support for 3-axis joysticks CPU speed independent timeouts @@ -174,7 +180,7 @@ Version 1.0.1 Complete rewrite Version 1.0.2 Works, many bugs fixed, more yet to come Version 1.0.3 Tail cutting logic changes & fixes Fix in js_do_bh - no more zero values for axes - Lost event changest & fixes + Lost event changes & fixes Version 1.0.4 Kernel command line & module configuration support Better cli()/sti() handling Linux 2.1.25 select => poll changes diff --git a/Documentation/kmod.txt b/Documentation/kmod.txt index 3deeeaed8..87a03429f 100644 --- a/Documentation/kmod.txt +++ b/Documentation/kmod.txt @@ -4,19 +4,19 @@ Kirk Petersen Kmod is a simple replacement for kerneld. It consists of a request_module() replacement and a kernel thread called kmod. When the kernel requests a module, the kmod wakes up and execve()s modprobe, -passing it the name that was requested. After a configurable period of -time, kmod will have delete_module() remove any unused modules. +passing it the name that was requested. -Kmod is configurable through two entries in /proc/sys/kernel. You can -set the path of modprobe (where the kernel looks for it) by doing: +If you have the /proc filesystem mounted, you can set the path of +modprobe (where the kernel looks for it) by doing: echo "/sbin/modprobe" > /proc/sys/kernel/modprobe -To tell kmod when to unload unused modules, do something like: +To periodically unload unused modules, put something like the following +in root's crontab entry: - echo "120" > /proc/sys/kernel/kmod_unload_delay + 0-59/5 * * * * /sbin/rmmod -a -Kmod only loads and unloads modules. Kerneld could do more (although +Kmod only loads modules. Kerneld could do more (although nothing in the standard kernel used its other features). If you require features such as request_route, we suggest that you take a similar approach. A simple request_route function could be called, diff --git a/Documentation/locks.txt b/Documentation/locks.txt index 3911417b2..91a016761 100644 --- a/Documentation/locks.txt +++ b/Documentation/locks.txt @@ -67,7 +67,7 @@ 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): +Faith's util-linux-2.5 package): *** mount.c.orig Sat Jun 8 09:14:31 1996 --- mount.c Sat Jun 8 09:13:02 1996 diff --git a/Documentation/m68k/framebuffer.txt b/Documentation/m68k/framebuffer.txt index b533f0202..c5b77d077 100644 --- a/Documentation/m68k/framebuffer.txt +++ b/Documentation/m68k/framebuffer.txt @@ -86,14 +86,15 @@ which data structures they work. Here's just a brief overview: - 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 + If you try to change that information, 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). + bits per color part (red, green, blue, transparency) to support all + existing hardware. The driver does all the computations needed to apply + it to 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 @@ -113,8 +114,8 @@ 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 resolution. It's main usage is +Frame buffer resolutions are maintained using the utility `fbset'. It can +change the video mode properties of the current resolution. Its main usage is to change the current video mode, e.g. during boot up in one of your /etc/rc.* or /etc/init.d/* files. diff --git a/Documentation/m68k/kernel-options.txt b/Documentation/m68k/kernel-options.txt index 7b611ef55..8d3994d42 100644 --- a/Documentation/m68k/kernel-options.txt +++ b/Documentation/m68k/kernel-options.txt @@ -87,7 +87,7 @@ Valid names are: /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 +The last four 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 @@ -114,8 +114,8 @@ 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 +isn't in the table above. If you use it, the root device will not be +set at all, without an 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 @@ -561,7 +561,7 @@ thresholds. Syntax: ataflop=<drive type>[,<trackbuffering>[,<steprateA>[,<steprateB>]]] 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 + setting affects how many 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. @@ -586,12 +586,12 @@ 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). +ignored (others aren't affected). <can_queue>: - This is the maximum number of SCSI commands queued internal to the + This is the maximum number of SCSI commands queued internally to the Atari SCSI driver. A value of 1 effectively turns off the driver - internal multitasking (if it makes problems). Legal values are >= + internal multitasking (if it causes problems). Legal values are >= 1. <can_queue> can be as high as you like, but values greater than <cmd_per_lun> times the number of SCSI targets (LUNs) you have don't make sense. Default: 16/8. @@ -632,7 +632,7 @@ ignored (other aren't affected). 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. + proved 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 @@ -689,7 +689,7 @@ even if you have less alternate RAM. 0 stands for never swap to ST-RAM, even if it's small enough compared to the rest of memory. If ST-RAM swapping is enabled, the kernel usually uses all free -ST-RAM as swap "device". (If the kernel resides in ST-RAM, the region +ST-RAM as swap "device". If the kernel resides in ST-RAM, the region allocated by it is obviously never used for swapping :-) You can also limit this amount by specifying the second parameter, <max_swap>, if you want to use parts of ST-RAM as normal system memory. <max_swap> is @@ -852,8 +852,8 @@ 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 +default for the A3000 internal controller is 14, for the A2091 it's 8 +and for the GVP hostadapters it's either 8 or 14, depending on the hostadapter and the SCSI-clock jumper present on some GVP hostadapters. diff --git a/Documentation/mandatory.txt b/Documentation/mandatory.txt index 1ef2788d8..bc449d49e 100644 --- a/Documentation/mandatory.txt +++ b/Documentation/mandatory.txt @@ -19,7 +19,7 @@ troublesome) is access to a user's mailbox. The mail user agent and the mail transfer agent must guard against updating the mailbox at the same time, and prevent reading the mailbox while it is being updated. -In a perfect world all process would use and honour a cooperative, or +In a perfect world all processes would use and honour a cooperative, or "advisory" locking scheme. However, the world isn't perfect, and there's a lot of poorly written code out there. @@ -47,8 +47,8 @@ scheme is defined by the System V Interface Definition (SVID) Version 3. 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 +A file is marked as a candidate for mandatory locking by setting the group-id +bit in its file mode but removing the group-execute bit. This is an otherwise meaningless combination, and was chosen by the System V implementors so as not to break existing user programs. @@ -103,7 +103,7 @@ agree. 2. If a process has locked a region of a file with a mandatory read lock, then other processes are permitted to read from that region. If any of these processes attempts to write to the region it will block until the lock is - released, unless the process has opened the file opened with the O_NONBLOCK + released, unless the process has opened the file with the O_NONBLOCK flag in which case the system call will return immediately with the error status EAGAIN. @@ -145,7 +145,7 @@ better still fix the system calls yourself and submit a patch to me or Linus. 6. Warning! ----------- -Not even root can override a mandatory lock, so runaway process can wreak +Not even root can override a mandatory lock, so runaway processes can wreak havoc if they lock crucial files. The way around it is to change the file permissions (remove the setgid bit) before trying to read or write to it. Of course, that might be a bit tricky if the system is hung :-( diff --git a/Documentation/mca.txt b/Documentation/mca.txt index 62b777de4..23df12b57 100644 --- a/Documentation/mca.txt +++ b/Documentation/mca.txt @@ -57,7 +57,7 @@ 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 +states (e.g. 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 @@ -124,7 +124,7 @@ Your typical proc function will look something like this: } 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. +bother repeating it. Don't try putting in more than 3K of information. Enable this function with: mca_set_adapter_procfn( slot, dev_getinfo, dev ); @@ -132,8 +132,8 @@ Enable this function with: 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 +It is also recommended, even if you don't write a proc function, to +set the name of the adapter (e.g. "PS/2 ESDI Controller") via mca_set_adapter_name( int slot, char* name ). Up to 30 characters are used. diff --git a/Documentation/mtrr.txt b/Documentation/mtrr.txt new file mode 100644 index 000000000..4236cff13 --- /dev/null +++ b/Documentation/mtrr.txt @@ -0,0 +1,225 @@ +MTRR (Memory Type Range Register) control +17 Dec 1997 +Richard Gooch +<rgooch@atnf.csiro.au> + + On Intel Pentium Pro systems the Memory Type Range Registers (MTRRs) + may be used to control processor access to memory ranges. This is + most useful when you have a video (VGA) card on the PCI + bus. Enabling write-combining allows PCI write transfers to be + combined into a larger transfer before bursting over the PCI + bus. This can increase performance of image write operations 2.5 + times or more. + + The CONFIG_MTRR option creates a /proc/mtrr file which may be used + to manipulate your MTRRs. Typically the X server should use + this. This should have a reasonably generic interface so that + similar control registers on other processors can be easily + supported. + + +There are two interfaces to /proc/mtrr: one is an ASCII interface +which allows you to read and write. The other is an ioctl() +interface. The ASCII interface is meant for administration. The +ioctl() interface is meant for C programmes (i.e. the X server). The +interfaces are described below, with sample commands and C code. + +=============================================================================== +Reading MTRRs from the shell: + +% cat /proc/mtrr +reg00: base=0x00000000 ( 0MB), size= 128MB: write-back, count=1 +reg01: base=0x08000000 ( 128MB), size= 64MB: write-back, count=1 +reg05: base=0x80000000 (2048MB), size= 4MB: write-combining, count=1 +=============================================================================== +Creating MTRRs from the shell: +% echo "base=0x80000000 size=0x400000 type=write-combining" >! /proc/mtrr +=============================================================================== +Removing MTRRs from the shell: +% echo "disable=5" >! /proc/mtrr +=============================================================================== +Reading MTRRs from a C programme using ioctl()'s: + +/* mtrr-show.c + + Source file for mtrr-show (example programme to show MTRRs using ioctl()'s) + + Copyright (C) 1997 Richard Gooch + + 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. + + Richard Gooch may be reached by email at rgooch@atnf.csiro.au + The postal address is: + Richard Gooch, c/o ATNF, P. O. Box 76, Epping, N.S.W., 2121, Australia. +*/ + +/* + This programme will use an ioctl() on /proc/mtrr to show the current MTRR + settings. This is an alternative to reading /proc/mtrr. + + + Written by Richard Gooch 17-DEC-1997 + + Last updated by Richard Gooch 17-DEC-1997 + + +*/ +#include <stdio.h> +#include <string.h> +#include <sys/types.h> +#include <sys/stat.h> +#include <fcntl.h> +#include <sys/ioctl.h> +#include <errno.h> +#define MTRR_NEED_STRINGS +#include <linux/mtrr.h> + +#define TRUE 1 +#define FALSE 0 +#define ERRSTRING strerror (errno) + + +int main () +{ + int fd; + struct mtrr_gentry gentry; + + if ( ( fd = open ("/proc/mtrr", O_RDONLY, 0) ) == -1 ) + { + if (errno == ENOENT) + { + fputs ("/proc/mtrr not found: not supported or you don't have a PPro?\n", + stderr); + exit (1); + } + fprintf (stderr, "Error opening /proc/mtrr\t%s\n", ERRSTRING); + exit (2); + } + for (gentry.regnum = 0; ioctl (fd, MTRRIOC_GET_ENTRY, &gentry) == 0; + ++gentry.regnum) + { + if (gentry.size < 1) + { + fprintf (stderr, "Register: %u disabled\n", gentry.regnum); + continue; + } + fprintf (stderr, "Register: %u base: 0x%lx size: 0x%lx type: %s\n", + gentry.regnum, gentry.base, gentry.size, + mtrr_strings[gentry.type]); + } + if (errno == EINVAL) exit (0); + fprintf (stderr, "Error doing ioctl(2) on /dev/mtrr\t%s\n", ERRSTRING); + exit (3); +} /* End Function main */ +=============================================================================== +Creating MTRRs from a C programme using ioctl()'s: + +/* mtrr-add.c + + Source file for mtrr-add (example programme to add an MTRRs using ioctl()) + + Copyright (C) 1997 Richard Gooch + + 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. + + Richard Gooch may be reached by email at rgooch@atnf.csiro.au + The postal address is: + Richard Gooch, c/o ATNF, P. O. Box 76, Epping, N.S.W., 2121, Australia. +*/ + +/* + This programme will use an ioctl() on /proc/mtrr to add an entry. The first + available mtrr is used. This is an alternative to writing /proc/mtrr. + + + Written by Richard Gooch 17-DEC-1997 + + Last updated by Richard Gooch 17-DEC-1997 + + +*/ +#include <stdio.h> +#include <string.h> +#include <stdlib.h> +#include <unistd.h> +#include <sys/types.h> +#include <sys/stat.h> +#include <fcntl.h> +#include <sys/ioctl.h> +#include <errno.h> +#define MTRR_NEED_STRINGS +#include <linux/mtrr.h> + +#define TRUE 1 +#define FALSE 0 +#define ERRSTRING strerror (errno) + + +int main (int argc, char **argv) +{ + int fd; + struct mtrr_sentry sentry; + + if (argc != 4) + { + fprintf (stderr, "Usage:\tmtrr-add base size type\n"); + exit (1); + } + sentry.base = strtoul (argv[1], NULL, 0); + sentry.size = strtoul (argv[2], NULL, 0); + for (sentry.type = 0; sentry.type < MTRR_NUM_TYPES; ++sentry.type) + { + if (strcmp (argv[3], mtrr_strings[sentry.type]) == 0) break; + } + if (sentry.type >= MTRR_NUM_TYPES) + { + fprintf (stderr, "Illegal type: \"%s\"\n", argv[3]); + exit (2); + } + if ( ( fd = open ("/proc/mtrr", O_WRONLY, 0) ) == -1 ) + { + if (errno == ENOENT) + { + fputs ("/proc/mtrr not found: not supported or you don't have a PPro?\n", + stderr); + exit (3); + } + fprintf (stderr, "Error opening /proc/mtrr\t%s\n", ERRSTRING); + exit (4); + } + if (ioctl (fd, MTRRIOC_ADD_ENTRY, &sentry) == -1) + { + fprintf (stderr, "Error doing ioctl(2) on /dev/mtrr\t%s\n", ERRSTRING); + exit (5); + } + fprintf (stderr, "Sleeping for 5 seconds so you can see the new entry\n"); + sleep (5); + close (fd); + fputs ("I've just closed /proc/mtrr so now the new entry should be gone\n", + stderr); +} /* End Function main */ +=============================================================================== diff --git a/Documentation/networking/00-INDEX b/Documentation/networking/00-INDEX index 6bc7c31ac..aa3c596fc 100644 --- a/Documentation/networking/00-INDEX +++ b/Documentation/networking/00-INDEX @@ -2,8 +2,14 @@ - this file 3c505.txt - information on the 3Com EtherLink Plus (3c505) driver. +6pack.txt + - info on the 6pack protocol, an alternative to KISS for AX.25 Configurable - info on some of the configurable network parameters +DLINK.txt + - info on the D-Link DE-600/DE-620 parallel port pocket adapters +PLIP.txt + - PLIP: The Parallel Line Internet Protocol device driver alias.txt - info on using alias network devices arcnet-hardware.txt @@ -12,18 +18,58 @@ arcnet.txt - info on the using the arcnet driver itself. ax25.txt - info on using AX.25 and NET/ROM code for Linux +baycom.txt + - info on the driver for Baycom style amateur radio modems +cops.txt + - info on the COPS LocalTalk Linux driver +cs89x0.txt + - the Crystal LAN (CS8900/20-based) Ethernet ISA adapter driver +de4x5.txt + - the Digital EtherWORKS DE4?? and DE5?? PCI Ethernet driver +depca.txt + - the Digital DEPCA/EtherWORKS DE1?? and DE2?? LANCE Ethernet driver +dgrs.txt + - the Digi International RightSwitch SE-X Ethernet driver +eql.txt + - serial IP load balancing +ethertap.txt + - the Ethertap user space packet reception and transmission driver +ewrk3.txt + - the Digital EtherWORKS 3 DE203/4/5 Ethernet driver +filter.txt + - Linux Socket Filtering framerelay.txt - info on using Frame Relay/Data Link Connection Identifier (DLCI). +ip-sysctl.txt + - /proc/sys/net/ipv4/* variables +ip_dynaddr.txt + - IP dynamic address hack e.g. for auto-dialup links +ipddp.txt + - AppleTalk-IP Decapsulation and AppleTalk-IP Encapsulation lapb-module.txt - - programming information on the LAPB module. + - programming information of the LAPB module. +ltpc.txt + - the Apple or Farallon LocalTalk PC card driver +multicast.txt + - Behaviour of cards under Multicast 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. +policy-routing.txt + - IP policy-based routing ppp.txt - info on what software you should use to run PPP. +pt.txt + - the Gracilis Packetwin AX.25 device driver +routing.txt + - the new routing mechanism shaper.txt - info on the module that can shape/limit transmitted traffic. +smc9.txt + - the driver for SMC's 9000 series of Ethernet cards +soundmodem.txt + - Linux driver for soundcards as AX.25 modems tcp.txt - short blurb on how TCP output takes place. tulip.txt @@ -32,10 +78,13 @@ vortex.txt - info on using 3Com Vortex (3c590, 3c592, 3c595, 3c597) e'net cards. wan-router.txt - Wan router documentation +wanpipe.txt + - WANPIPE(tm) Multiprotocol WAN Driver for Linux WAN Router +wavelan.txt + - AT&T GIS (nee NCR) WaveLAN card: An Ethernet-like radio transceiver 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 --git a/Documentation/networking/6pack.txt b/Documentation/networking/6pack.txt new file mode 100644 index 000000000..2f8446381 --- /dev/null +++ b/Documentation/networking/6pack.txt @@ -0,0 +1,175 @@ +This is the 6pack-mini-HOWTO, written by + +Andreas Könsgen DG3KQ +Internet: ajk@iehk.rwth-aachen.de +AMPR-net: dg3kq@db0pra.ampr.org +AX.25: dg3kq@db0ach.#nrw.deu.eu + +Last update: April 7, 1998 + +1. What is 6pack, and what are the advantages to KISS? + +6pack is a transmission protocol for data exchange between the PC and +the TNC over a serial line. It can be used as an alternative to KISS. + +6pack has two major advantages: +- The PC is given full control over the radio + channel. Special control data is exchanged between the PC and the TNC so + that the PC knows at any time if the TNC is receiving data, if a TNC + buffer underrun or overrun has occured, if the PTT is + set and so on. This control data is processed at a higher priority than + normal data, so a data stream can be interrupted at any time to issue an + important event. This helps to improve the channel access and timing + algorithms as everything is computed in the PC. It would even be possible + to experiment with something completely different from the known CSMA and + DAMA channel access methods. + This kind of real-time control is especially important to supply several + TNCs that are connected between each other and the PC by a daisy chain + (however, this feature is not supported yet by the Linux 6pack driver). + +- Each packet transferred over the serial line is supplied with a checksum, + so it is easy to detect errors due to problems on the serial line. + Received packets that are corrupt are not passed on to the AX.25 layer. + Damaged packets that the TNC has received from the PC are not transmitted. + +More details about 6pack are described in the file 6pack.ps that is located +in the doc directory of the AX.25 utilities package. + +2. Who has developed the 6pack protocol? + +The 6pack protocol has been developed by Ekki Plicht DF4OR, Henning Rech +DF9IC and Gunter Jost DK7WJ. A driver for 6pack, written by Gunter Jost and +Matthias Welwarsky DG2FEF, comes along with the PC version of FlexNet. +They have also written a firmware for TNCs to perform the 6pack +protocol (see section 4 below). + +3. Where can I get the latest version of 6pack for LinuX? + +At the moment, the 6pack stuff can obtained via anonymous ftp from +db0bm.automation.fh-aachen.de. In the directory /incoming/dg3kq, +there is a file named 6pack.tgz. + +4. Preparing the TNC for 6pack operation + +To be able to use 6pack, a special firmware for the TNC is needed. The EPROM +of a newly bought TNC does not contain 6pack, so you will have to +program an EPROM yourself. The image file for 6pack EPROMs should be +available on any packet radio box where PC/FlexNet can be found. The name of +the file is 6pack.bin. This file is copyrighted and maintained by the FlexNet +team. It can be used under the terms of the license that comes along +with PC/FlexNet. Please do not ask me about the internals of this file as I +don't know anything about it. I used a textual description of the 6pack +protocol to program the Linux driver. + +TNCs contain a 64kByte EPROM, the lower half of which is used for +the firmware/KISS. The upper half is either empty or is sometimes +programmed with software called TAPR. In the latter case, the TNC +is supplied with a DIP switch so you can easily change between the +two systems. When programming a new EPROM, one of the systems is replaced +by 6pack. It is useful to replace TAPR, as this software is rarely used +nowadays. If your TNC is not equipped with the switch mentioned above, you +can build in one yourself that switches over the highest address pin +of the EPROM between HIGH and LOW level. After having inserted the new EPROM +and switched to 6pack, apply power to the TNC for a first test. The connect +and the status LED are lit for about a second if the firmware initialises +the TNC correctly. + +5. Building and installing the 6pack driver + +The driver has been tested with kernel version 2.1.90. Use with older +kernels may lead to a compilation error because the interface to a kernel +function has been changed in the 2.1.8x kernels. + +How to turn on 6pack support: + +- In the linux kernel configuration program, select the code maturity level + options menu and turn on the prompting for development drivers. + +- Select the amateur radio support menu and turn on the serial port 6pack + driver. + +- Compile and install the kernel and the modules. + +To use the driver, the kissattach program delivered with the AX.25 utilities +has to be modified. + +- Do a cd to the directory that holds the kissattach sources. Edit the + kissattach.c file. At the top, insert the following lines: + + #ifndef N_6PACK + #define N_6PACK (N_AX25+1) + #endif + + Then find the line + + int disc = N_AX25; + + and replace N_AX25 by N_6PACK. + +- Recompile kissattach. Rename it to spattach to avoid confusions. + +Installing the driver: + +- Do an insmod 6pack. Look at your /var/log/messages file to check if the + module has printed its initialization message. + +- Do a spattach as you would launch kissattach when starting a KISS port. + Check if the kernel prints the message '6pack: TNC found'. + +- From here, everything should work as if you were setting up a KISS port. + The only difference is that the network device that represents + the 6pack port is called sp instead of sl or ax. So, sp0 would be the + first 6pack port. + +Although the driver has been tested on various platforms, I still declare it +ALPHA. BE CAREFUL! Sync your disks before insmoding the 6pack module +and spattaching. Watch out if your computer behaves strangely. Read section +6 of this file about known problems. + +Note that the connect and status LEDs of the TNC are controlled in a +different way than they are when the TNC is used with PC/FlexNet. When using +FlexNet, the connect LED is on if there is a connection; the status LED is +on if there is data in the buffer of the PC's AX.25 engine that has to be +transmitted. Under Linux, the 6pack layer is beyond the AX.25 layer, +so the 6pack driver doesn't know anything about connects or data that +has not yet been transmitted. Therefore the LEDs are controlled +as they are in KISS mode: The connect LED is turned on if data is transferred +from the PC to the TNC over the serial line, the status LED if data is +sent to the PC. + +6. Known problems + +When testing the driver with 2.0.3x kernels and +operating with data rates on the radio channel of 9600 Baud or higher, +the driver may, on certain systems, sometimes print the message '6pack: +bad checksum', which is due to data loss if the other station sends two +or more subsequent packets. I have been told that this is due to a problem +with the serial driver of 2.0.3x kernels. I don't know yet if the problem +still exists with 2.1.x kernels, as I have heard that the serial driver +code has been changed with 2.1.x. + +When shutting down the sp interface with ifconfig, the kernel crashes if +there is still an AX.25 connection left over which an IP connection was +running, even if that IP connection is already closed. The problem does not +occur when there is a bare AX.25 connection still running. I don't know if +this is a problem of the 6pack driver or something else in the kernel. + +The driver has been tested as a module, not yet as a kernel-builtin driver. + +The 6pack protocol supports daisy-chaining of TNCs in a token ring, which is +connected to one serial port of the PC. This feature is not implemented +and at least at the moment I won't be able to do it because I do not have +the opportunity to build a TNC daisy-chain and test it. + +Some of the comments in the source code are inaccurate. They are left from +the SLIP/KISS driver, from which the 6pack driver has been derived. +I haven't modified or removed them yet -- sorry! The code itself needs +some cleaning and optimizing. This will be done in a later release. + +If you encounter a bug or if you have a question or suggestion concerning the +driver, feel free to mail me, using the adresses given at the beginning of +this file. + +Have fun! + +Andreas diff --git a/Documentation/networking/DLINK.txt b/Documentation/networking/DLINK.txt index dba5dbcc5..6caabdf4b 100644 --- a/Documentation/networking/DLINK.txt +++ b/Documentation/networking/DLINK.txt @@ -52,7 +52,7 @@ Released 1994-06-13 3. FILES IN THIS RELEASE. README.DLINK This file. - de600.c The Source (,may it be with You :-) for the DE-600 + de600.c The Source (may it be with You :-) for the DE-600 de620.c ditto for the DE-620 de620.h Macros for de620.c @@ -78,7 +78,7 @@ Released 1994-06-13 modify "linux/drivers/net/CONFIG" accordingly, or adjust the parameters in the "tuning" section in the sources. - If you are going to use the drivers a loadable modules, do _not_ + If you are going to use the drivers as loadable modules, do _not_ enable them while doing "make config", but instead make sure that the drivers are included in "linux/drivers/net/MODULES". diff --git a/Documentation/networking/PLIP.txt b/Documentation/networking/PLIP.txt index b58cea27f..c2bb44fdb 100644 --- a/Documentation/networking/PLIP.txt +++ b/Documentation/networking/PLIP.txt @@ -29,11 +29,11 @@ Advantages of PLIP It's cheap, it's available everywhere, and it's easy. The PLIP cable is all that's needed to connect two Linux boxes, and it -can be build for very few bucks. +can be built for very few bucks. -Connecting two Linux boxes takes only a seconds decision and a few -minutes work, no need to search for a [supported] netcard. This might -even be especially important in the case of notebooks, where netcard +Connecting two Linux boxes takes only a second's decision and a few +minutes' work, no need to search for a [supported] netcard. This might +even be especially important in the case of notebooks, where netcards are not easily available. Not requiring a netcard also means that apart from connecting the @@ -45,7 +45,7 @@ Disadvantages of PLIP Doesn't work over a modem, like SLIP and PPP. Limited range, 15 m. Can only be used to connect three (?) Linux boxes. Doesn't connect to -an exiting ethernet. Isn't standard (not even de facto standard, like +an existing ethernet. Isn't standard (not even de facto standard, like SLIP). Performance @@ -150,7 +150,8 @@ Each octet is sent as To start a transfer the transmitting machine outputs a nibble 0x08. The raises the ACK line, triggering an interrupt in the receiving -machine. The receiving machine disables +machine. The receiving machine disables interrupts and raises its own ACK +line. Restated: diff --git a/Documentation/networking/alias.txt b/Documentation/networking/alias.txt index ef0415936..c6c0b0cf3 100644 --- a/Documentation/networking/alias.txt +++ b/Documentation/networking/alias.txt @@ -11,7 +11,7 @@ o Alias creation. 200.1.1.1 alias for eth0 ... # ifconfig eth0:0 200.1.1.1 etc,etc.... - ~~ -> request alias #0 creation (if it not exists) for eth0 + ~~ -> request alias #0 creation (if not yet exists) for eth0 and routing stuff also ... # route add -host 200.1.1.1 dev eth0:0 (if same IP network as main device) @@ -28,7 +28,7 @@ o Alias deletion. Alias (re-)configuring - Aliases are no real devices, but should be able to configure and + Aliases are not real devices, but programs` should be able to configure and refer to them as usual (ifconfig, route, etc). Relationship with main device diff --git a/Documentation/networking/baycom.txt b/Documentation/networking/baycom.txt index cdb0a9a50..8d7547688 100644 --- a/Documentation/networking/baycom.txt +++ b/Documentation/networking/baycom.txt @@ -43,7 +43,7 @@ but it is now a true kernel network interface. Installation is therefore simple. Once installed, four interfaces named bc[0-3] are available. sethdlc from the ax25 utilities may be used to set driver states etc. Users of userland AX.25 stacks may use the net2kiss utility (also available -in the ax25 utilities package) to converts packets of a network interface +in the ax25 utilities package) to convert packets of a network interface to a KISS stream on a pseudo tty. There's also a patch available from me for WAMPES which allows attaching a kernel network interface directly. @@ -72,7 +72,7 @@ first parallel port (LPT1 under DOS). options=1 instructs the driver to use the software DCD algorithm (see below). The channel access parameters can be set with sethdlc -a or kissparms. -Note that both utilities interpret the values slightly different. +Note that both utilities interpret the values slightly differently. Hardware DCD versus Software DCD @@ -93,7 +93,7 @@ par96: the software DCD algorithm for this type of modem is rather poor. feeds the DCD input of the PAR96 modem, the use of the hardware DCD circuitry is recommended. -picpar: the picpar modem features a builtin DCD hardware, which is highly +picpar: the picpar modem features builtin DCD hardware, which is highly recommended. diff --git a/Documentation/networking/cops.txt b/Documentation/networking/cops.txt index ec5d05c67..23723dfe5 100644 --- a/Documentation/networking/cops.txt +++ b/Documentation/networking/cops.txt @@ -1,12 +1,12 @@ Text File for the COPS LocalTalk Linux driver (cops.c). By Jay Schulist <Jay.Schulist@spacs.k12.wi.us> -This driver has teo modes and they are: Dayna mode and Tangent mode. +This driver has two modes and they are: Dayna mode and Tangent mode. Each mode corresponds with the type of card. It has been found that there are 2 main types of cards and all other cards are the same and just have different names or only have minor differences such as more IO ports. As this driver is tested it will -become more clear on exactly what cards are supported. +become more clear exactly what cards are supported. Right now these cards are known to work with the COPS driver. The LT-200 cards work in a somewhat more limited capacity than the @@ -20,8 +20,8 @@ DAYNA driver mode: Other cards possibly supported mode unkown though: Dayna DL2000 (Full length) -The COPS driver defaults to using Dayna mode. To change the drivers -mode if you build a driver with a dual support use board_type=1 or +The COPS driver defaults to using Dayna mode. To change the driver's +mode if you built a driver with dual support use board_type=1 or board_type=2 for Dayna or Tangent with insmod. ** Operation/loading of the driver. @@ -52,12 +52,12 @@ it work with the cops.c driver. dummy -seed -phase 2 -net 2000 -addr 2000.10 -zone "1033" lt0 -seed -phase 1 -net 1000 -addr 1000.50 -zone "1033" -* For multiple cards, Ethernet and Localtalk. +* For multiple cards, Ethernet and LocalTalk. eth0 -seed -phase 2 -net 3000 -addr 3000.20 -zone "1033" lt0 -seed -phase 1 -net 1000 -addr 1000.50 -zone "1033" * For multiple LocalTalk cards, and an Ethernet card. -* Order seems to matters here, Ethernet last. +* Order seems to matter here, Ethernet last. lt0 -seed -phase 1 -net 1000 -addr 1000.10 -zone "LocalTalk1" lt1 -seed -phase 1 -net 2000 -addr 2000.20 -zone "LocalTalk2" eth0 -seed -phase 2 -net 3000 -addr 3000.30 -zone "EtherTalk" diff --git a/Documentation/networking/cs89x0.txt b/Documentation/networking/cs89x0.txt index ab89d645e..895df60df 100644 --- a/Documentation/networking/cs89x0.txt +++ b/Documentation/networking/cs89x0.txt @@ -40,22 +40,6 @@ TABLE OF CONTENTS 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 =============================================================================== @@ -172,7 +156,7 @@ with the following "default" settings: 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 +another adapter exist. To change the adapter's configuration, run the CS8900/20 Setup Utility. @@ -388,7 +372,7 @@ Example: 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. +known defects, driver limitations, and work arounds. 5.2 TESTING THE ADAPTER diff --git a/Documentation/networking/de4x5.txt b/Documentation/networking/de4x5.txt index dc6a99a7a..d82b19c74 100644 --- a/Documentation/networking/de4x5.txt +++ b/Documentation/networking/de4x5.txt @@ -82,7 +82,7 @@ To unload a module, turn off the associated interface(s) 'ifconfig eth?? down' then 'rmmod de4x5'. - Automedia detection is included so that in principal you can disconnect + Automedia detection is included so that in principle you can disconnect from, e.g. TP, reconnect to BNC and things will still work (after a pause whilst the driver figures out where its media went). My tests using ping showed that it appears to work.... @@ -118,7 +118,7 @@ debt to <mjacob@feral.com> for the testing and feedback that helped get this feature working. So far we have tested KINGSTON, SMC8432, SMC9332 (with the latest SROM complying with the SROM spec V3: their first was - broken), ZNYX342 and LinkSys. ZYNX314 (dual 21041 MAC) and ZNYX 315 + broken), ZNYX342 and LinkSys. ZNYX314 (dual 21041 MAC) and ZNYX 315 (quad 21041 MAC) cards also appear to work despite their incorrectly wired IRQs. diff --git a/Documentation/networking/eql.txt b/Documentation/networking/eql.txt index 08cded598..0694f528c 100644 --- a/Documentation/networking/eql.txt +++ b/Documentation/networking/eql.txt @@ -15,7 +15,7 @@ 1. Introduction Which is worse? A huge fee for a 56K leased line or two phone lines? - Its probably the former. If you find yourself craving more bandwidth, + It's probably the former. If you find yourself craving more bandwidth, and have a ISP that is flexible, it is now possible to bind modems together to work as one point-to-point link to increase your bandwidth. All without having to have a special black box on either @@ -64,7 +64,7 @@ -rw-r--r-- guru/ncm 2195 Jan 10 21:48 1995 eql-1.1/eql_enslave.c ______________________________________________________________________ - Unpack a recent kernel (something after 1.1.92) Someplace convenient + Unpack a recent kernel (something after 1.1.92) someplace convenient like say /usr/src/linux-1.1.92.eql. Use symbolic links to point /usr/src/linux to this development directory. @@ -250,13 +250,13 @@ One version of the scheduler was able to push 5.3 K/s through the 28800 and 14400 connections, but when the priorities on the links were - very wide apart (57600 vs. 14400) The "faster" modem received all + very wide apart (57600 vs. 14400) the "faster" modem received all traffic and the "slower" modem starved. - 5. Tester's Reports + 5. Testers' Reports - Some people have experimented with the eql device with newer kernels + Some people have experimented with the eql device with newer kernels (than 1.1.75). I have since updated the driver to patch cleanly in newer kernels because of the removal of the old "slave- balancing" driver config option. @@ -469,7 +469,7 @@ I've installed your patch and it works great. I have trialed it over twin SL/IP lines, just over null modems, but I was able to data at over 48Kb/s [ISDN link -Simon]. I managed a - transfer of upto 7.5 Kbyte/s on one go, but averaged around + transfer of up to 7.5 Kbyte/s on one go, but averaged around 6.4 Kbyte/s, which I think is pretty cool. :) diff --git a/Documentation/networking/ethertap.txt b/Documentation/networking/ethertap.txt index b60f39c22..8b7ab4be4 100644 --- a/Documentation/networking/ethertap.txt +++ b/Documentation/networking/ethertap.txt @@ -8,14 +8,14 @@ Introduction Ethertap provides packet reception and transmission for user space programs. It can be viewed as a simple ethernet device, -which instead of recieving packets from a network wire, it recieves +which instead of receiving packets from a network wire, it receives them from user space. -Ethertap can be used for anything from Appletalk to IPX to even +Ethertap can be used for anything from AppleTalk to IPX to even building bridging tunnels. It also has many other general purpose uses. -Ethertap also can do ARP for you. Although this is not enabled per +Ethertap also can do ARP for you, although this is not enabled by default. SetUp @@ -36,7 +36,7 @@ proper IP number for your situation.) If you want your Ethertap device to ARP for you would ifconfig the interface like this: ifconfig tap* 192.168.1.1 arp -Remember that the you need to have a corresponding /dev/tap* file +Remember that you need to have a corresponding /dev/tap* file for each tap* device you need to ifconfig. Now Ethertap should be ready to use. @@ -65,7 +65,7 @@ The routing on our box would be C code for a Simple program using an EtherTap device ==================================================== -This code is just excepts from a real program, so some parts are missing +This code is just excerpts from a real program, so some parts are missing but the important stuff is below. void main (void) diff --git a/Documentation/networking/filter.txt b/Documentation/networking/filter.txt index 60deb1771..370cb92f8 100644 --- a/Documentation/networking/filter.txt +++ b/Documentation/networking/filter.txt @@ -18,16 +18,16 @@ creating filters. LSF is much simpler that BPF. One does not have to worry about devices or anything like that. You simply create your filter code, send it to the kernel via the SO_ATTACH_FILTER ioctl and -if you filter code passes the kernel check on it, you then +if your filter code passes the kernel check on it, you then immediately begin filtering data on that socket. You can also detach filters from your socket via the SO_DETACH_FILTER ioctl. This will probably not be used much since when you close a socket that has a filter on it the -filter is automagicly removed. The other less common case -may be adding a differnt filter on the same socket you had another -filter that is still running, the kernel takes care of removing -the old one and placing your new one in its place, assumming your +filter is automagically removed. The other less common case +may be adding a different filter on the same socket where you had another +filter that is still running: the kernel takes care of removing +the old one and placing your new one in its place, assuming your filter has passed the checks, otherwise if it fails the old filter will remain on that socket. diff --git a/Documentation/networking/ip-sysctl.txt b/Documentation/networking/ip-sysctl.txt index e202b4f80..ab794ef77 100644 --- a/Documentation/networking/ip-sysctl.txt +++ b/Documentation/networking/ip-sysctl.txt @@ -49,7 +49,7 @@ ip_bootp_relay - BOOLEAN not to this host as local ones. It is supposed, that BOOTP relay deamon will catch and forward such packets. - default FASLE + default FALSE Not Implemented Yet. @@ -110,7 +110,7 @@ TCP variables: tcp_syn_retries - INTEGER Number of times initial SYNs for an TCP connection attempt will - be retransmitted. Should not be higher that 255. + be retransmitted. Should not be higher than 255. tcp_keepalive_time - INTEGER How often TCP sends out keepalive messages when keepalive is enabled. diff --git a/Documentation/networking/ip_dynaddr.txt b/Documentation/networking/ip_dynaddr.txt new file mode 100644 index 000000000..45f3c1268 --- /dev/null +++ b/Documentation/networking/ip_dynaddr.txt @@ -0,0 +1,29 @@ +IP dynamic address hack-port v0.03 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +This stuff allows diald ONESHOT connections to get established by +dynamically changing packet source address (and socket's if local procs). +It is implemented for TCP diald-box connections(1) and IP_MASQuerading(2). + +If enabled[*] and forwarding interface has changed: + 1) Socket (and packet) source address is rewritten ON RETRANSMISSIONS + while in SYN_SENT state (diald-box processes). + 2) Out-bounded MASQueraded source address changes ON OUTPUT (when + internal host does retransmission) until a packet from outside is + received by the tunnel. + +This is specially helpful for auto dialup links (diald), where the +``actual'' outgoing address is unknown at the moment the link is +going up. So, the *same* (local AND masqueraded) connections requests that +bring the link up will be able to get established. + +[*] At boot, by default no address rewriting is attempted. + To enable: + # echo 1 > /proc/sys/net/ipv4/ip_dynaddr + To enable verbose mode: + # echo 2 > /proc/sys/net/ipv4/ip_dynaddr + To disable (default) + # echo 0 > /proc/sys/net/ipv4/ip_dynaddr + +Enjoy! + +-- Juanjo <jjciarla@raiz.uncu.edu.ar> diff --git a/Documentation/networking/ipddp.txt b/Documentation/networking/ipddp.txt index 6ed2d93f5..f49b16909 100644 --- a/Documentation/networking/ipddp.txt +++ b/Documentation/networking/ipddp.txt @@ -1,42 +1,42 @@ Text file for ipddp.c: - Appletalk-IP Decapsulation and Appletalk-IP Encapsulation + AppleTalk-IP Decapsulation and AppleTalk-IP Encapsulation This text file writen by Jay Schulist <Jay.Schulist@spacs.k12.wi.us> Introduction ------------ -Appletalk-IP (IPDDP) is the method computers connected to Appletalk -networks can communicate via IP. Appletalk-IP is simply IP datagrams -inside Appletalk packets. +AppleTalk-IP (IPDDP) is the method computers connected to AppleTalk +networks can use to communicate via IP. AppleTalk-IP is simply IP datagrams +inside AppleTalk packets. Through this driver you can either allow your Linux box to communicate -IP over an Appletalk network or you can provide IP gatewaying functions -for you Appletalk users. +IP over an AppleTalk network or you can provide IP gatewaying functions +for your AppleTalk users. -You can currently Encapsulate or Decapsulate Appletalk-IP on LocalTalk, +You can currently Encapsulate or Decapsulate AppleTalk-IP on LocalTalk, EtherTalk and PPPTalk. The only limit on the protocol is that of what -the kernel Appletalk layer and drivers are available. +kernel AppleTalk layer and drivers are available. Each mode requires its own user space software. -Compiling Appletalk-IP Decapsulation/Encapsulation +Compiling AppleTalk-IP Decapsulation/Encapsulation ================================================= -Appletalk-IP Decapsulation needs to be compiled into your kernel. You +AppleTalk-IP Decapsulation needs to be compiled into your kernel. You will need to turn on Appletalk-IP driver support. Then you will need to -select ONE of the two options; IP to Appletalk-IP Encapsulation support or -Appletalk-IP to IP Decapsulation support. If you compile the driver -staticly you will only be able to use the driver for the function you have +select ONE of the two options; IP to AppleTalk-IP Encapsulation support or +AppleTalk-IP to IP Decapsulation support. If you compile the driver +statically you will only be able to use the driver for the function you have enabled in the kernel. If you compile the driver as a module you can select what mode you want it to run in via a module loading param. -ipddp_mode=1 for Appletalk-IP Encapsulation and ipddp_mode=2 for -Appletalk-IP to IP Decapsulation. +ipddp_mode=1 for AppleTalk-IP Encapsulation and ipddp_mode=2 for +AppleTalk-IP to IP Decapsulation. Basic instructions for user space tools ======================================= -To enable Appletalk-IP Decapsulation/Encapsulation you will need the +To enable AppleTalk-IP Decapsulation/Encapsulation you will need the proper tools. You can get the tools for Decapsulation from http://spacs1.spacs.k12.wi.us/~jschlst/MacGate and for Encapsulation from http://www.maths.unm.edu/~bradford/ltpc.html @@ -46,7 +46,7 @@ need to consult the supporting documentation for each set of tools. Decapsulation - You will need to download a software package called MacGate. In this distribution there will be a tool called MacRoute -which enabled you to add routes to the kernel for your Macs by hand. +which enables you to add routes to the kernel for your Macs by hand. Also the tool MacRegGateWay is included to register the proper IP Gateway and IP addresses for your machine. Included in this distribution is a patch to netatalk-1.4b2+asun2.0a17.2 (available from @@ -55,13 +55,13 @@ but it allows automatic adding and deleting of routes for Macs. (Handy for locations with large Mac installations) Encapsulation - You will need to download a software daemon called ipddpd. -This software expects there to be and Appletalk-IP gateway on the network. +This software expects there to be an AppleTalk-IP gateway on the network. You will also need to add the proper routes to route your Linux box's IP traffic out the ipddp interface. Common Uses of ipddp.c ---------------------- -Of course Appletalk-IP Decapsulation and Encapsulation, but specificly +Of course AppleTalk-IP Decapsulation and Encapsulation, but specificly Decapsulation is being used most for connecting LocalTalk networks to IP networks. Although it has been used on EtherTalk networks to allow Macs that are only able to tunnel IP over EtherTalk. @@ -70,9 +70,9 @@ Encapsulation has been used to allow a Linux box stuck on a LocalTalk network to use IP. It should work equally well if you are stuck on an EtherTalk only network. -Further Assisatance +Further Assistance ------------------- You can contact me (Jay Schulist <Jay.Schulist@spacs.k12.wi.us>) with any questions reguarding Decapsulation or Encapsulation. Bradford W. Johnson <johns393@maroon.tc.umn.edu> originally wrote the ipddp.c driver for IP -encapsulation in Appletalk. +encapsulation in AppleTalk. diff --git a/Documentation/networking/lapb-module.txt b/Documentation/networking/lapb-module.txt index 938d09787..2b564a5f5 100644 --- a/Documentation/networking/lapb-module.txt +++ b/Documentation/networking/lapb-module.txt @@ -2,7 +2,7 @@ Jonathan Naylor 29.12.96 -The LAPB module will be a seperately compiled module for use by any parts of +The LAPB module will be a separately 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 @@ -73,7 +73,7 @@ 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 mode variable is a bit field used for setting (at present) three values. The bit fields have the following meanings: Bit Meaning diff --git a/Documentation/networking/ltpc.txt b/Documentation/networking/ltpc.txt index 477f9fc6b..50a39ea88 100644 --- a/Documentation/networking/ltpc.txt +++ b/Documentation/networking/ltpc.txt @@ -1,8 +1,8 @@ This is the ALPHA version of the ltpc driver. In order to use it, you will need at least version 1.3.3 of the -netatalk package, and the Apple or Farallon Localtalk PC card. -There are a number of different Localtalk cards for the PC; this +netatalk package, and the Apple or Farallon LocalTalk PC card. +There are a number of different LocalTalk cards for the PC; this driver applies only to the one with the 65c02 processor chip on it. To include it in the kernel, select the CONFIG_LTPC switch in the @@ -20,7 +20,7 @@ The driver will autoprobe, and you should see a message like: at bootup. The appropriate netatalk configuration depends on whether you are -attached to a network that includes appletalk routers or not. If, +attached to a network that includes AppleTalk routers or not. If, like me, you are simply connecting to your home Macintoshes and printers, you need to set up netatalk to "seed". The way I do this is to have the lines @@ -29,14 +29,14 @@ dummy -seed -phase 2 -net 2000 -addr 2000.26 -zone "1033" ltalk0 -seed -phase 1 -net 1033 -addr 1033.27 -zone "1033" in my atalkd.conf. What is going on here is that I need to fool -netatalk into thinking that there are two appletalk interfaces +netatalk into thinking that there are two AppleTalk interfaces present -- otherwise it refuses to seed. This is a hack, and a more permanent solution would be to alter the netatalk code. Note that the dummy driver needs to accept multicasts also -- earlier versions of dummy.c may need to be patched. -If you are attached to an extended appletalk network, with routers on +If you are attached to an extended AppleTalk network, with routers on it, then you don't need to fool around with this -- the appropriate line in atalkd.conf is @@ -75,7 +75,7 @@ board. Set the switches so as not to conflict with other hardware. IP: Many people are interested in this driver in order to use IP -when Localtalk, but no Ethernet, is available. While the code to do +when LocalTalk, but no Ethernet, is available. While the code to do this is not strictly speaking part of this driver, an experimental version is available which seems to work under kernel 2.0.xx. It is not yet functional in the 2.1.xx kernels. diff --git a/Documentation/networking/multicast.txt b/Documentation/networking/multicast.txt index b7e234e03..a8539007a 100644 --- a/Documentation/networking/multicast.txt +++ b/Documentation/networking/multicast.txt @@ -52,6 +52,6 @@ wd YES YES YES Hardware znet YES YES YES Software -PROMISC = This multicasts mode is in fact promiscuous mode. Avoid using +PROMISC = This multicast mode is in fact promiscuous mode. Avoid using cards who go PROMISC on any multicast in a multicast kernel. (#) = Hardware multicast support is not used yet. diff --git a/Documentation/networking/net-modules.txt b/Documentation/networking/net-modules.txt index f0f3ab470..3830a8351 100644 --- a/Documentation/networking/net-modules.txt +++ b/Documentation/networking/net-modules.txt @@ -2,31 +2,31 @@ Wed 2-Aug-95 <matti.aarnio@utu.fi> Linux network driver modules - Do not mistake this to "README.modules" at the top-level + Do not mistake this for "README.modules" at the top-level directory! That document tells about modules in general, while this one tells only about network device driver modules. This is a potpourri of INSMOD-time(*) configuration options (if such exists) and their default values of various modules - on Linux network drivers collection. + in the Linux network drivers collection. Some modules have also hidden (= non-documented) tunable values. - Choice of not documenting them is based on general belief, that - the less user needs to know, the better. (There are things that - driver developer can use, others should not confuse themselves.) + The choice of not documenting them is based on general belief, that + the less the user needs to know, the better. (There are things that + driver developers can use, others should not confuse themselves.) In many cases it is highly preferred that insmod:ing is done ONLY with defining an explicit address for the card, AND BY NOT USING AUTO-PROBING! - Now most cards have some explicitly defined base address, they + Now most cards have some explicitly defined base address that they are compiled with (to avoid auto-probing, among other things). If that compiled value does not match your actual configuration, - do use "io=0xXXX" -parameter for the insmod, and give there + do use the "io=0xXXX" -parameter for the insmod, and give there a value matching your environment. If you are adventurous, you can ask the driver to autoprobe - by using "io=0" parameter, however it is potentially dangerous + by using the "io=0" parameter, however it is a potentially dangerous thing to do in a live system. (If you don't know where the card is located, you can try autoprobing, and after possible crash recovery, insmod with proper IO-address..) diff --git a/Documentation/networking/policy-routing.txt b/Documentation/networking/policy-routing.txt index aa0d8f9f6..9cf967737 100644 --- a/Documentation/networking/policy-routing.txt +++ b/Documentation/networking/policy-routing.txt @@ -127,7 +127,7 @@ Applications It is funny, but pretty useless algorithm. I listed it just to show power of new routing code. -5. All the variaty of combinations...... +5. All the variety of combinations...... GATED diff --git a/Documentation/networking/ppp.txt b/Documentation/networking/ppp.txt index d34f3986b..55c036251 100644 --- a/Documentation/networking/ppp.txt +++ b/Documentation/networking/ppp.txt @@ -1,11 +1,7 @@ *NEWSFLASH* This kernel release needs a minor bug fix for pppd to run properly with the new routing code. When your pppd doesn't work apply the following -patch to pppd-2.2.0f or install updated RPMs. - -Updated RPMs for libc5 machines (build on RedHat 4.0): -ftp://ftp.firstfloor.org/pub/ak/ppp-2.2.0f-4.src.rpm -ftp://ftp.firstfloor.org/pub/ak/ppp-2.2.0f-4.i386.rpm +patch to pppd-2.2.0f or update to the newest pppd version. Patch: diff --git a/Documentation/networking/pt.txt b/Documentation/networking/pt.txt index 63f40b31a..cae844d3f 100644 --- a/Documentation/networking/pt.txt +++ b/Documentation/networking/pt.txt @@ -49,7 +49,7 @@ As an example, here is my /etc/rc.net /sbin/route add -host 44.136.8.95 dev pt0b /sbin/route add -host 44.255.255.255 dev pt0b -This version of the driver comes under the GNU GPL. If you have one on my +This version of the driver comes under the GNU GPL. If you have one of my previous (non-GPL) versions of the driver, please update to this one. I hope that this all works well for you. I would be pleased to hear how diff --git a/Documentation/networking/routing.txt b/Documentation/networking/routing.txt index 99f571763..32dfeb2cd 100644 --- a/Documentation/networking/routing.txt +++ b/Documentation/networking/routing.txt @@ -18,27 +18,27 @@ The directory ftp.inr.ac.ru:/ip-routing contains: NEWS for user. -- Policy based routing. Routing decisions are made on the base +- Policy based routing. Routing decisions are made on the basis 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. + Now Linux is the only OS in the world complying 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. +- You more need not do "route add aaa.bbb.ccc... eth0", + it is done 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. +- New destination cache. Flexible, robust and just beautiful. - 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. + (well, and new bugs are introduced, but I haven't seen them yet 8)) + It is difficult to describe all the changes, look into source. If you see this file, then this patch works 8) diff --git a/Documentation/networking/shaper.txt b/Documentation/networking/shaper.txt index 24393a6fa..53ff5aeff 100644 --- a/Documentation/networking/shaper.txt +++ b/Documentation/networking/shaper.txt @@ -29,8 +29,8 @@ 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. + The shaper shapes transmitted traffic. It's rather impossible to +shape received traffic except at the end (or a router) transmitting 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 diff --git a/Documentation/networking/soundmodem.txt b/Documentation/networking/soundmodem.txt index cecd206cd..f50985720 100644 --- a/Documentation/networking/soundmodem.txt +++ b/Documentation/networking/soundmodem.txt @@ -16,10 +16,10 @@ use only. The Interface of the driver -The driver provides a kernel network drivers named sm[0-3]. sethdlc +The driver provides kernel network drivers named sm[0-3]. sethdlc from the ax25 utilities may be used to set driver states etc. Users of userland AX.25 stacks may use the net2kiss utility (also available -in the ax25 utilities package) to converts packets of a network interface +in the ax25 utilities package) to convert packets of a network interface to a KISS stream on a pseudo tty. There's also a patch available from me for WAMPES which allows attaching a kernel network interface directly. diff --git a/Documentation/networking/wan-router.txt b/Documentation/networking/wan-router.txt index 7f64cbc72..1ffeb14bc 100644 --- a/Documentation/networking/wan-router.txt +++ b/Documentation/networking/wan-router.txt @@ -30,8 +30,8 @@ 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 +an internal router can be built (most routers use some sort of stripped down +Unix-like operating system anyway). With a 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, @@ -39,37 +39,37 @@ 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. +drivers. Why can existing Linux network device interface not be used for +this purpose? Well, it can. However, there are a few key differences between +a typical network interface (e.g. ethernet) and a 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 +to a different 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 +time required to set up and tear down a 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 +unlike a typical network driver, the WAN driver must be able to handle multiple +network interfaces and cope as multiple virtual circuits come into existence 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 +when troubleshooting WAN connections. Extending the ifconfig utility to suit 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: +Most of these problems are taken care of by this module. Its goal is to +provide a user with more-or-less standard look and feel for all WAN devices and +assist a WAN device driver writer by providing common services, such as: o User-level interface via /proc filesystem o Centralized configuration @@ -77,7 +77,7 @@ assist WAN device driver writer by providing common services, such as: 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 +To ba able to use the Linux WAN Router you will also need a WAN Tools package available from ftp.sangoma.com/pub/linux/vX.Y.Z/wantools-X.Y.Z.tgz @@ -112,12 +112,12 @@ 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 +new Linux features. Instead of continuing developing proprietary 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 +Many useful ideas concerning hardware-independent interface implementation were given by Mike McLagan <mike.mclagan@linux.org> and his implementation of the Frame Relay router and drivers for Sangoma cards (dlci/sdla). diff --git a/Documentation/networking/wanpipe.txt b/Documentation/networking/wanpipe.txt index 5288c8259..0be0c5dc1 100644 --- a/Documentation/networking/wanpipe.txt +++ b/Documentation/networking/wanpipe.txt @@ -9,25 +9,26 @@ Copyright (c) 1995-1997 Sangoma Technologies Inc. INTRODUCTION -WANPIPE(tm) is a family of intelligent muliprotocol WAN communication adapters +WANPIPE(tm) is a family of intelligent multiprotocol WAN communication adapters for personal computers (ISA bus) designed to provide PC connectivity to various communication links, such as leased lines and public data networks, at -speeds up to T1/E1 using variety of synchronous communications protocols, +speeds up to T1/E1 using a variety of synchronous communications protocols, including frame relay, PPP, X.25, SDLC, etc. -WANPIPE driver together with Linux WAN Router module allows you to build -relatively inexpensive, yet high-prformance multiprotocol WAN router. For -more information about Linux WAN Router please read file -Documentation/networking/wan-router.txt. You must also obtain WAN Tools -package to be able to use Linux WAN Router and WANPIPE driver. The package +WANPIPE driver together with Linux WAN Router module allows you to build a +relatively inexpensive, yet high-performance multiprotocol WAN router. For +more information about the Linux WAN Router please read the file +Documentation/networking/wan-router.txt. You must also obtain the WAN Tools +package to be able to use the Linux WAN Router and WANPIPE driver. The package is available via the Internet from Sangoma Technologies' anonymous FTP server: ftp.sangoma.com/pub/linux/wantools-X.Y.Z.tgz or ftp.sangoma.com/pub/linux/wanpipe-X.Y.Z.tgz -The name of the package differ only due to naming convention. The functionalityof wantools and wanpipe packages are the same. The latest version of WAN -Drivers is wanpipe-2.0.0. +The names of the packages differ only due to naming convention. The +functionality of wantools and wanpipe packages are the same. The latest +version of the WAN Drivers is wanpipe-2.0.0. For technical questions and/or comments please e-mail to jaspreet@sangoma.com. For general inquiries please contact Sangoma Technologies Inc. by @@ -74,7 +75,7 @@ drivers/net: sdladrv.c SDLA support module source code sdla_fr.c SDLA Frame Relay source code sdla_ppp.c SDLA PPP source code - sdla_x25.c SDLA X25 source code + sdla_x25.c SDLA X.25 source code sdlamain.c SDLA support source code include/linux: @@ -137,7 +138,7 @@ REVISION HISTORY o Added support for synchronous PPP o Added support for S503 adapter o Added API for executing adapter commands - o Fixed a re-entrancy problem in frame relaty driver + o Fixed a re-entrancy problem in frame relay driver o Changed interface between SDLA driver and protocol support modules o Updated frame relay firmware diff --git a/Documentation/networking/wavelan.txt b/Documentation/networking/wavelan.txt index 5849f287b..190939323 100644 --- a/Documentation/networking/wavelan.txt +++ b/Documentation/networking/wavelan.txt @@ -1,18 +1,19 @@ Sun Jul 2 01:38:33 EST 1995 -1. At present the driver autoprobes for a WaveLAN card only at I/O address 0x390. - The version of the card that I use (NCR) supports four I/O addresses (selectable - via a pair of DIP switches). If you want the driver to autoprobe a different - subset of the four valid addresses then you will need to edit - .../drivers/net/wavelan.c (near line 714) and change the initialisation of the - `iobase[]' array. Normally, I use a LILO configuration file directive to - obviate the need for autoprobing entirely, a course of action I heartily - recommend. +1. At present the driver autoprobes for a WaveLAN card only at I/O address + 0x390. The version of the card that I use (NCR) supports four I/O addresses + (selectable via a pair of DIP switches). If you want the driver to + autoprobe a different subset of the four valid addresses then you will need + to edit .../drivers/net/wavelan.c (near line 714) and change the + initialisation of the `iobase[]' array. Normally, I use a LILO + configuration file directive to obviate the need for autoprobing entirely, + a course of action I heartily recommend. -2. By default, the driver uses the Network ID (NWID) stored in the card's Parameter - Storage Area (PSA). However, the PSA NWID can be overridden by a value passed - explicitly as the third numeric argument to LILO's "ether=" directive, either - at the LILO prompt at boot time or within LILO's configuration file. +2. By default, the driver uses the Network ID (NWID) stored in the card's + Parameter Storage Area (PSA). However, the PSA NWID can be overridden by a + value passed explicitly as the third numeric argument to LILO's "ether=" + directive, either at the LILO prompt at boot time or within LILO's + configuration file. For example, the following line from such a LILO configuration file would auto-configure the IRQ value, set the I/O base to 0x390 and set the NWID to 0x4321, all on a WaveLAN card labelled "eth0": diff --git a/Documentation/networking/x25-iface.txt b/Documentation/networking/x25-iface.txt index fab57cf32..14af1b886 100644 --- a/Documentation/networking/x25-iface.txt +++ b/Documentation/networking/x25-iface.txt @@ -7,8 +7,8 @@ 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 +standards. Most X.25 device drivers will be moderately similar to the +already existing Ethernet 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. diff --git a/Documentation/networking/x25.txt b/Documentation/networking/x25.txt index 67f17e644..6ae6b8ef7 100644 --- a/Documentation/networking/x25.txt +++ b/Documentation/networking/x25.txt @@ -19,7 +19,7 @@ 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 +being served by the LLC will be completely separate from LAPB. The LLC implementation is being done as part of another protocol project (SNA) and by a different author. diff --git a/Documentation/networking/z8530drv.txt b/Documentation/networking/z8530drv.txt index b566181a9..e2e5b5a13 100644 --- a/Documentation/networking/z8530drv.txt +++ b/Documentation/networking/z8530drv.txt @@ -232,7 +232,7 @@ will print a skeleton z8530drv.conf for the OptoSCC to stdout. gencfg 2 0x300 2 4 5 -4 0 7 4915200 0x10 -does the same for the BAYCOM USCC card. I my opinion it is much easier +does the same for the BAYCOM USCC card. In my opinion it is much easier to edit scc_config.h... @@ -318,9 +318,9 @@ the kernel AX.25. ======================= Since the TTY driver (aka KISS TNC emulation) is gone you need -to emulate the old behaviour. The cost using these programs is -that you probably need to compile the kernel AX.25, regardless -if you actually use it or not. First setup your /etc/ax25/axports, +to emulate the old behaviour. The cost of using these programs is +that you probably need to compile the kernel AX.25, regardless of whether +you actually use it or not. First setup your /etc/ax25/axports, for example: 9k6 dl0tha-9 9600 255 4 9600 baud port (scc3) @@ -406,7 +406,7 @@ NoSpace - number of times a buffer could not get allocated An overrun is abnormal. If lots of these occur, the product of baudrate and number of interfaces is too high for the processing -power of you computer. NoSpace errors are unlikely caused by the +power of your computer. NoSpace errors are unlikely to be caused by the driver or the kernel AX.25. @@ -559,7 +559,7 @@ txoff: group: It is possible to build special radio equipment to use more than - one frequency on the same bad, e.g. using several receivers and + one frequency on the same band, e.g. using several receivers and only one transmitter that can be switched between frequencies. Also, you can connect several radios that are active on the same band. In these cases, it is not possible, or not a good idea, to @@ -617,7 +617,7 @@ I got reports that the driver has problems on some 386-based systems. (i.e. Amstrad) Those systems have a bogus AT bus timing which will lead to delayed answers on interrupts. You can recognize these problems by looking at the output of Sccstat for the suspected -port. See if it shows under- and overruns you own such a system. +port. If it shows under- and overruns you own such a system. Delayed processing of received data: This depends on @@ -634,7 +634,7 @@ Delayed processing of received data: This depends on - using information from rxecho or kissbridge. -Kernel panics: please read to /linux/README and find out if it +Kernel panics: please read /linux/README and find out if it really occurred within the scc driver. If you cannot solve a problem, send me diff --git a/Documentation/nfsroot.txt b/Documentation/nfsroot.txt index 1d42ec6fe..79b08fab5 100644 --- a/Documentation/nfsroot.txt +++ b/Documentation/nfsroot.txt @@ -81,7 +81,7 @@ ip=<client-ip>:<server-ip>:<gw-ip>:<netmask>:<hostname>:<device>:<autoconf> This parameter tells the kernel how to configure IP addresses of devices and also how to set up the IP routing table. It was originally called `nfsaddrs', - but now the boot-time IP configuration works independently on NFS, so it + but now the boot-time IP configuration works independently of NFS, so it was renamed to `ip' and the old name remained as an alias for compatibility reasons. @@ -106,14 +106,14 @@ ip=<client-ip>:<server-ip>:<gw-ip>:<netmask>:<hostname>:<device>:<autoconf> the address of the server is used which answered the RARP or BOOTP request. - <gw-ip> IP address of a gateway if the server in on a different + <gw-ip> IP address of a gateway if the server is on a different subnet. If this entry is empty no gateway is used and the server is assumed to be on the local network, unless a value has been received by BOOTP. <netmask> Netmask for local network interface. If this is empty, the netmask is derived from the client IP address assuming - classful addressing, unless overriden in BOOTP reply. + classful addressing, unless overridden in BOOTP reply. <hostname> Name of the client. If empty, the client IP address is used in ASCII-notation, or the value received by BOOTP. diff --git a/Documentation/oops-tracing.txt b/Documentation/oops-tracing.txt index 2fb21a726..6e685aa64 100644 --- a/Documentation/oops-tracing.txt +++ b/Documentation/oops-tracing.txt @@ -41,7 +41,7 @@ and then you get a better idea of what happens than with the gdb disassembly. Now, the trick is just then to combine all the data you have: the C -sources (and general knowledge of what it _should_ do, the assembly +sources (and general knowledge of what it _should_ do), the assembly listing and the code disassembly (and additionally the register dump you also get from the "oops" message - that can be useful to see _what_ the corrupted pointers were, and when you have the assembler listing you can diff --git a/Documentation/paride.txt b/Documentation/paride.txt index 923377cad..89941584a 100644 --- a/Documentation/paride.txt +++ b/Documentation/paride.txt @@ -146,10 +146,10 @@ will need them to identify the devices. If you happen to be using a MicroSolutions backpack device, you will also need to know the unit ID number for each drive. This is usually -the last two digits of the drive's serial number (but read MicroSolution's +the last two digits of the drive's serial number (but read MicroSolutions' documentation about this). -As an example, lets assume that you have a MicroSolutions PD/CD drive +As an example, let's assume that you have a MicroSolutions PD/CD drive with unit ID number 36 connected to the parallel port at 0x378, a SyQuest EZ-135 connected to the chained port on the PD/CD drive and also an Imation Superdisk connected to port 0x278. You could give the following diff --git a/Documentation/parport.txt b/Documentation/parport.txt index 278ab3a7a..f9ee71092 100644 --- a/Documentation/parport.txt +++ b/Documentation/parport.txt @@ -5,11 +5,15 @@ drivers. You can pass parameters to the parport code to override its automatic detection of your hardware. This is particularly useful if you want to use IRQs, since in general these can't be autoprobed successfully. +By default IRQs are not used even if they _can_ be probed. This is +because there are a lot of people using the same IRQ for their +parallel port and a sound card or network card. The parport code is split into two parts: generic (which deals with port-sharing) and architecture-dependent (which deals with actually using the port). + Parport as modules ================== @@ -20,31 +24,33 @@ If you load the parport code as a module, say to load the generic parport code. You then must load the architecture-dependent code with (for example): - # insmod parport_pc.o io=0x378,0x278 irq=7,5 + # insmod parport_pc.o io=0x3bc,0x378,0x278 irq=none,7,auto + +to tell the parport code that you want three PC-style ports, one at +0x3bc with no IRQ, one at 0x378 using IRQ 7, and one at 0x278 with an +auto-detected IRQ. Currently, PC-style (parport_pc) and Sun Ultra/AX +(parport_ax) hardware is supported; more is in the works. -to tell the parport code that you want two PC-style ports, one at -0x378 using IRQ 7, and one at 0x278 using IRQ 5. Currently, PC-style -(parport_pc) and ARC onboard (parport_arc) parallel ports are -supported. -Kerneld -------- +KMod +---- -If you use kerneld, you will find it useful to edit /etc/conf.modules. +If you use kmod, you will find it useful to edit /etc/conf.modules. Here is an example of the lines that need to be added: alias parport_lowlevel parport_pc - options parport_pc io=0x378,0x278 irq=7,5 + options parport_pc io=0x378,0x278 irq=7,auto + +KMod will then automatically load parport_pc (with the options +"io=0x378,0x278 irq=7,auto") whenever a parallel port device driver +(such as lp) is loaded. -Kerneld, in conjunction with parport, will automatically load -parport_pc whenever a parallel port device driver (such as lp) is -loaded. Parport probe [optional] ------------- Once the architecture-dependent part of the parport code is loaded -into the kernel, you insert the parport_probe module with: +into the kernel, you can insert the parport_probe module with: # insmod parport_probe.o @@ -53,22 +59,25 @@ message similar to: parport0: Printer, BJC-210 (Canon) -(If you are using kerneld and have configured parport_probe as a -module, this will just happen.) +(If you are using kmod and have configured parport_probe as a module, +this will just happen.) -Parport, but not as modules -=========================== +Parport linked into the kernel statically +========================================= If you compile the parport code into the kernel, then you can use kernel boot parameters to get the same effect. Add something like the following to your LILO command line: - parport=0x378,7 parport=0x278,5 + parport=0x3bc parport=0x378,7 parport=0x278,auto You can have many `parport=...' statements, one for each port you want to add. Adding `parport=0' to the kernel command-line will disable -parport support entirely. +parport support entirely. Adding `parport=auto' to the kernel +command-line will make parport use any IRQ lines or DMA channels that +it auto-detects. + Files in /proc ============== @@ -90,10 +99,10 @@ File: Contents: and DMA channel. /proc/parport/0/irq The IRQ that parport is using for that - port (as above). This is in a - separate file to allow you to alter it - by writing a new value in (IRQ number - or "none"). + port. This is in a separate file to + allow you to alter it by writing a new + value in (IRQ number or "none"). + Device drivers ============== @@ -121,7 +130,7 @@ regardless of base address. Also: - * If you selected the device autoprobe at compile time, you can say + * If you selected the IEEE-1284 autoprobe at compile time, you can say `lp=auto' on the kernel command line, and lp will create devices only for those ports that seem to have printers attached. @@ -129,10 +138,7 @@ Also: the command line, or with `insmod plip timid=1' when using modules, it will avoid any ports that seem to be in use by other devices. - * If your BIOS allows you to engage "ECP mode", you may find that - your port's IRQ can be autoprobed, without having to specify any - parameters. - + * IRQ autoprobing works only for a few port types at the moment. -- Philip.Blundell@pobox.com diff --git a/Documentation/pci.txt b/Documentation/pci.txt new file mode 100644 index 000000000..d40bfaf38 --- /dev/null +++ b/Documentation/pci.txt @@ -0,0 +1,65 @@ + Few Notes About The PCI Subsystem + + or + + "What should you avoid when writing PCI drivers" + + by Martin Mares <mj@atrey.karlin.mff.cuni.cz> on 13-Feb-1998 + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +1. How to find PCI devices +~~~~~~~~~~~~~~~~~~~~~~~~~~ + In case your driver wants to search for all devices with given vendor/device +ID, it should use: + + struct pci_dev *dev = NULL; + while (dev = pci_find_device(VENDOR_ID, DEVICE_ID, dev)) + configure_device(dev); + + For class-based search, use pci_find_class(CLASS_ID, dev). + + In case you want to do some complex matching, look at pci_devices -- it's +a linked list of pci_dev structures for all PCI devices in the system. + + All these methods return a pointer to a pci_dev structure which is used as a +parameter for many other PCI functions. The rest of them accept bus and +device/function numbers which can be found in pci_dev->bus->number and +pci_dev->devfn. Feel free to use all other fields of the pci_dev structure, but +don't modify them. + + The pci_present() function can be used to test presence of PCI in the +machine. + +2. How to access PCI config space +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + You can use pci_(read|write)_config_(byte|word|dword) to access the config +space of a device represented by pci_dev. All these functions return 0 when +successful or an error code (PCIBIOS_...) which can be translated to a text +string by pcibios_strerror. Most drivers expect that accesses to valid PCI +devices don't fail. + + In case you want to address the devices by bus/device/function numbers, +use pcibios_(read_write)_config_(byte|word|dword). + + If you access fields in the standard portion of the config header, please +use symbolic names of locations and bits declared in <linux/pci.h>. + +3. Addresses and interrupts +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Memory and port addresses and interrupt numbers should NOT be read from the +config space. You should use the values in the pci_dev structure as they might +have been remapped by the kernel. + +4. Obsolete functions +~~~~~~~~~~~~~~~~~~~~~ +<linux/bios32.h> is obsolete and should not be included in new code. + +pcibios_find_(device|class) are also obsolete and should be replaced by +pci_find_(device|class). + +5. Bus mastering +~~~~~~~~~~~~~~~~ + If you need to setup a bus-mastering card, just call pci_set_master(). It +should set PCI_COMMAND_MASTER in the command register and adjust the latency +timer if needed. diff --git a/Documentation/powerpc/00-INDEX b/Documentation/powerpc/00-INDEX index 9e553e6c8..6cd33d720 100644 --- a/Documentation/powerpc/00-INDEX +++ b/Documentation/powerpc/00-INDEX @@ -1,5 +1,5 @@ Index of files in Documentation/powerpc. If you think something about -Linux/PPC needs an entry here, needs correction of you've written one +Linux/PPC needs an entry here, needs correction or you've written one please mail me. Cort Dougan (cort@cs.nmt.edu) diff --git a/Documentation/powerpc/ppc_htab.txt b/Documentation/powerpc/ppc_htab.txt index fab9f3aae..28555686d 100644 --- a/Documentation/powerpc/ppc_htab.txt +++ b/Documentation/powerpc/ppc_htab.txt @@ -4,6 +4,8 @@ This document and the related code was written by me (Cort Dougan), please email me (cort@cs.nmt.edu) if you have questions, comments or corrections. +Last Change: 2.16.98 + This entry in the proc directory is readable by all users but only writable by root. diff --git a/Documentation/powerpc/smp.txt b/Documentation/powerpc/smp.txt index 932170f74..d65dfae19 100644 --- a/Documentation/powerpc/smp.txt +++ b/Documentation/powerpc/smp.txt @@ -1,8 +1,11 @@ Information about Linux/PPC SMP mode ===================================================================== -This document and the related code was written by me (Cort Dougan), please -email me (cort@cs.nmt.edu) if you have questions, comments or corrections. +This document and the related code was written by me +(Cort Dougan, cort@cs.nmt.edu) please email me if you have questions, +comments or corrections. + +Last Change: 4.1.98 SMP support for Linux/PPC is still in its early stages and likely to be buggy for a while. If you want to help by writing code or testing @@ -10,11 +13,17 @@ different hardware please email me! 1. State of Supported Hardware - UMAX s900 + PowerSurge Architecture - UMAX s900, Apple 9500/9600/8500/8600/7500/7600 The second processor on this machine boots up just fine and enters its idle loop. Hopefully a completely working SMP kernel on this machine will be done shortly. + The code makes the assumption of only two processors. The changes + necessary to work with any number would not be overly difficult but + I don't have any machines with >2 processors so it's not high on my + list of priorities. If anyone else would like do to the work email + me and I can point out the places that need changed. + BeBox BeBox support hasn't been added to the 2.1.X kernels from 2.0.X but work is being done and SMP support for BeBox is in the works. diff --git a/Documentation/powerpc/sound.txt b/Documentation/powerpc/sound.txt index c0acf6a7b..8f4a44034 100644 --- a/Documentation/powerpc/sound.txt +++ b/Documentation/powerpc/sound.txt @@ -4,26 +4,31 @@ Please mail me me (Cort Dougan, cort@cs.nmt.edu) if you have questions, comments or corrections. -This just covers sound on the PReP systems for now, and later will -contain information on the PowerMac's. +Last Change: 3.24.98 -Sound has been tested and is working with the PowerStack and IBM Power -Series onboard sound systems which are based on the cs4231(2) chip. -The sound options when doing the make config are a bit different from the -default, though. +This just covers sound on the PReP and CHRP systems for now and later +will contain information on the PowerMac's. + +Sound on PReP has been tested and is working with the PowerStack and IBM +Power Series onboard sound systems which are based on the cs4231(2) chip. +The sound options when doing the make config are a bit different from +the default, though. The I/O base, irq and dma lines that you enter during the make config are ignored and are set when booting according to the machine type. This is so that one binary can be used for Motorola and IBM machines -which use different values and isn't allowed by the driver, so things are -hacked together in such a way as to allow this information to be set -automatically on boot. +which use different values and isn't allowed by the driver, so things +are hacked together in such a way as to allow this information to be +set automatically on boot. + +1. Motorola PowerStack PReP machines -1. PowerStack + Enable support for "Crystal CS4232 based (PnP) cards" and for the + Microsoft Sound System. The MSS isn't used, but some of the routines + that the CS4232 driver uses are in it. - Enable support for "Crystal CS4232 based (PnP) cards". Although the - options you set are ignored and determined automatically on boot these - are included for information only: + Although the options you set are ignored and determined automatically + on boot these are included for information only: (830) CS4232 audio I/O base 530, 604, E80 or F40 (10) CS4232 audio IRQ 5, 7, 9, 11, 12 or 15 @@ -33,16 +38,31 @@ automatically on boot. This will allow simultaneous record and playback, as 2 different dma channels are used. + The sound will be all left channel and very low volume since the + auxiliary input isn't muted by default. I had the changes necessary + for this in the kernel but the sound driver maintainer didn't want + to include them since it wasn't common in other machines. To fix this + you need to mute it using a mixer utility of some sort (if you find one + please let me know) or by patching the driver yourself and recompiling. + + There is a problem on the PowerStack 2's (PowerStack Pro's) using a + different irq/drq than the kernel expects. Unfortunately, I don't know + which irq/drq it is so if anyone knows please email me. + Midi is not supported since the cs4232 driver doesn't support midi yet. -2. IBM machines +2. IBM PowerPersonal PReP machines and IBM LongTrail CHRP I've only tested sound on the Power Personal Series of IBM workstations - so if you try it on others please let me know the result. + so if you try it on others please let me know the result. I'm especially + interested in the 43p's sound system, which I know nothing about. + + Enable support for "Crystal CS4232 based (PnP) cards" and for the + Microsoft Sound System. The MSS isn't used, but some of the routines + that the CS4232 driver uses are in it. - Enable support for "Crystal CS4232 based (PnP) cards". Although the - options you set are ignored and determined automatically on boot these - are included for information only: + Although the options you set are ignored and determined automatically + on boot these are included for information only: (530) CS4232 audio I/O base 530, 604, E80 or F40 (5) CS4232 audio IRQ 5, 7, 9, 11, 12 or 15 @@ -54,4 +74,3 @@ automatically on boot. This setup does _NOT_ allow for recording yet. Midi is not supported since the cs4232 driver doesn't support midi yet. - diff --git a/Documentation/ramdisk.txt b/Documentation/ramdisk.txt index 5b48c3987..a00eb0a64 100644 --- a/Documentation/ramdisk.txt +++ b/Documentation/ramdisk.txt @@ -31,7 +31,7 @@ command has changed. Also, the new ramdisk supports up to 16 ramdisks out of the box, and can be reconfigured in rd.c to support up to 255 ramdisks. To use multiple ramdisk support with your system, run 'mknod /dev/ramX b 1 X' and chmod -(to change it's permissions) it to your liking. The default /dev/ram(disk) +(to change its permissions) it to your liking. The default /dev/ram(disk) uses minor #1, so start with ram2 and go from there. The old "ramdisk=<ram_size>" has been changed to "ramdisk_size=<ram_size>" @@ -42,7 +42,7 @@ The new ramdisk also has the ability to load compressed ramdisk images, allowing one to squeeze more programs onto an average installation or rescue floppy disk. -Notes: You may have "dev/ram" or "/dev/ramdisk" or both. They are +Notes: You may have "/dev/ram" or "/dev/ramdisk" or both. They are equivalent from the standpoint of this document. Also, the new ramdisk is a config option. When running "make config", make sure you enable ramdisk support for the kernel you intend to use the ramdisk with. @@ -113,7 +113,7 @@ size). Bit 14 indicates that a ramdisk is to be loaded, and bit 15 indicates whether a prompt/wait sequence is to be given before trying to read the ramdisk. Since the ramdisk dynamically grows as data is being written into it, a size field is no longer required. Bits 11 -to 13 are not presently used and may as well be zero. These numbers +to 13 are not currently used and may as well be zero. These numbers are no magical secrets, as seen below: ./arch/i386/kernel/setup.c:#define RAMDISK_IMAGE_START_MASK 0x07FF @@ -160,7 +160,7 @@ of RAM. If using a spare disk partition instead of /dev/ram, then this restriction does not apply. a) Decide on the ramdisk size that you want. Say 2MB for this example. - Create it by writing to the ramdisk device. (This step is not presently + Create it by writing to the ramdisk device. (This step is not currently required, but may be in the future.) It is wise to zero out the area (esp. for disks) so that maximal compression is achieved for the unused blocks of the image that you are about to create. diff --git a/Documentation/riscom8.txt b/Documentation/riscom8.txt index 92c20238a..a51dafeff 100644 --- a/Documentation/riscom8.txt +++ b/Documentation/riscom8.txt @@ -13,20 +13,20 @@ Misc. notes for RISCom/8 serial driver, in no particular order :) as module use insmod options "iobase=0xXXX iobase1=0xXXX iobase2=..." 2) The driver partially supports famous 'setserial' program, you can use almost - any it option, exclude port & irq settings. + any of its options, excluding port & irq settings. 3) There are some misc. defines at the beginning of riscom8.c, please read the comments and try to change some of them in case of problems. 4) I consider the current state of the driver as BETA. - If you REALLY think you found the bug, send me e-mail, I hope I'll + If you REALLY think you found a bug, send me e-mail, I hope I'll fix it. For any other problems please ask support@sdlcomm.com. 5) SDL Communications WWW page is http://www.sdlcomm.com. 6) You can use the script at the end of this file to create RISCom/8 devices. -7) Minors number for 1-st board are 0-7, for second 8-15, etc. +7) Minor numbers for first board are 0-7, for second 8-15, etc. 22 Apr 1996. diff --git a/Documentation/scsi.txt b/Documentation/scsi.txt index 1ce285f06..69d8388c7 100644 --- a/Documentation/scsi.txt +++ b/Documentation/scsi.txt @@ -5,7 +5,7 @@ understand your options, we should first define a few terms. The scsi-core contains the core of scsi support. Without it you can do nothing with any of the other scsi drivers. The scsi core -support can be a module (scsi_mod.o), or it can be build into the kernel. +support can be a module (scsi_mod.o), or it can be built into the kernel. If the core is a module, it must be the first scsi module loaded, and if you unload the modules, it will have to be the last one unloaded. diff --git a/Documentation/serial-console.txt b/Documentation/serial-console.txt index 36a3e9c81..2894b8008 100644 --- a/Documentation/serial-console.txt +++ b/Documentation/serial-console.txt @@ -19,10 +19,10 @@ The format of this option is: 9600n8. The maximum baudrate is 115200. You can specify multiple console= options on the kernel command line. -Output will appear on all of them. The first device will be used when +Output will appear on all of them. The last device will be used when you open /dev/console. So, for example: - console=tty0 console=ttyS1,9600 + console=ttyS1,9600 console=tty0 defines that opening /dev/console will get you the current foreground virtual console, and kernel messages will appear on both the VGA @@ -91,4 +91,4 @@ Replace the sample values as needed. for porting the patches from 2.1.4x to 2.1.6x for taking care of the integration of these patches into m68k, ppc and alpha. -Miquel van Smoorenburg <miquels@cistron.nl>, 03-Dec-1997 +Miquel van Smoorenburg <miquels@cistron.nl>, 21-Mar-1998 diff --git a/Documentation/smp b/Documentation/smp index a0c4ab77e..5706552b0 100644 --- a/Documentation/smp +++ b/Documentation/smp @@ -8,7 +8,7 @@ kernel images on hand. Edit /etc/lilo.conf to create an entry for another kernel image called "linux-smp" or something. The next time you compile the kernel, when running a SMP kernel, -edit linux/Makefile and change "MAKE=make" "MAKE=make -jN" +edit linux/Makefile and change "MAKE=make" to "MAKE=make -jN" (where N = number of CPU + 1, or if you have tons of memory/swap you can just use "-j" without a number). Feel free to experiment with this one. @@ -20,4 +20,4 @@ Example: If you are using some Compaq MP compliant machines you will need to set the operating system in the BIOS settings to "Unixware" - don't ask me -why Compaq's dont work otherwise. +why Compaqs don't work otherwise. diff --git a/Documentation/smp.tex b/Documentation/smp.tex index ea582088c..e67f08978 100644 --- a/Documentation/smp.tex +++ b/Documentation/smp.tex @@ -39,11 +39,11 @@ The Intel pentium processors have a wide variety of inbuilt facilities for supporting multiprocessing, including hardware cache coherency, built in interprocessor interrupt handling and a set of atomic test and set, exchange and similar operations. The cache coherency in particular makes the -operating systems job far easier. +operating system's job far easier. The specification defines a detailed configuration structure in ROM that the boot up processor can read to find the full configuration of the -processors and busses. It also defines a procedure for starting up the +processors and buses. It also defines a procedure for starting up the other processors. @@ -53,7 +53,7 @@ locking and protection of its own tables to prevent two processes updating them at once and for example allocating the same memory block. There are two strategies for this within current Unix and Unixlike kernels. Traditional unix systems from the earliest of days use a scheme of 'Coarse -Grained Locking' where the entire kernel is protected as a small number of +Grained Locking' where the entire kernel is protected by a small number of locks only. Some modern systems use fine grained locking. Because fine grained locking has more overhead it is normally used only on multiprocessor kernels and real time kernels. In a real time kernel the @@ -64,7 +64,7 @@ Within the Linux kernel certain guarantees are made. No process running in kernel mode will be pre-empted by another kernel mode process unless it voluntarily sleeps. This ensures that blocks of kernel code are effectively atomic with respect to other processes and greatly simplifies -many operation. Secondly interrupts may pre-empt a kernel running process, +many operations. Secondly interrupts may pre-empt a kernel running process, but will always return to that process. A process in kernel mode may disable interrupts on the processor and guarantee such an interruption will not occur. The final guarantee is that an interrupt will not be pre-empted @@ -124,7 +124,7 @@ some processors to set each CPU up correctly. These functions will probably need to be modified in existing kernels to cope with this. -Each additional CPU the calls the architecture specific function +Each additional CPU then calls the architecture specific function {\tt \bf void smp\_callin(void)} @@ -142,7 +142,7 @@ they will run when they have no real work to process. \subsubsection{Scheduling} -The kernel scheduler implements a simple but very and effective task +The kernel scheduler implements a simple but very effective task scheduler. The basic structure of this scheduler is unchanged in the multiprocessor kernel. A processor field is added to each task, and this maintains the number of the processor executing a given task, or a magic @@ -185,7 +185,7 @@ that are provided by the processor specification functionality. These are {\tt \bf int smp\_processor\_id(void) } -which returns the identity of the process the call is executed upon. This +which returns the identity of the processor the call is executed upon. This call is assumed to be valid at all times. This may mean additional tests are needed during initialisation. @@ -203,7 +203,7 @@ work. Refer to the processor specific code documentation for more details. \subsection{Architecture Specific Code For the Intel MP Port} -The architecture specific code for the intel port splits fairly cleanly +The architecture specific code for the Intel port splits fairly cleanly into four sections. Firstly the initialisation code used to boot the system, secondly the message handling and support code, thirdly the interrupt and kernel syscall entry function handling and finally the @@ -286,7 +286,7 @@ spinlock it spins continually on the lock with interrupts disabled. This causes a specific deadlock problem. The lock owner may need to send an invalidate request to the rest of the processors and wait for these to complete before continuing. A processor spinning on the lock would not be -able to do thus. Thus the loop of the spinlock tests and handles invalidate +able to do this. Thus the loop of the spinlock tests and handles invalidate requests. If the invalidate bit for the spinning CPU is set the processor invalidates its TLB and atomically clears the bit. When the spinlock is obtained that processor will take an IPI and in the IPI test the bit and @@ -341,6 +341,6 @@ architecture which does not cover the 80386/80387 processor pair. \ The /proc filesystem support is changed so that the /proc/cpuinfo file contains a column for each processor present. This information is extracted -from the data save by smp\_store\_cpu\_info(). +from the data saved by smp\_store\_cpu\_info(). \end{document} diff --git a/Documentation/sound/AWE32 b/Documentation/sound/AWE32 new file mode 100644 index 000000000..351f88a38 --- /dev/null +++ b/Documentation/sound/AWE32 @@ -0,0 +1,63 @@ +From: Nicola Bernardelli <nbern@mail.protos.it> + + In order to load SB-AWE related drivers on recent kernels (tested +with 2.1.86 and 2.1.88) with modularized sound support these lines can +be issued (of course with the suitable values for the parameters) +after PNP setup: + +insmod sound.o +insmod uart401.o +insmod sb.o io=0x220 irq=5 dma=1 dma16=5 mpu_io=0x330 +insmod awe_wave.o + + Alternatively, in order to also have automatic load on demand +(not of the awe support, which would anyway most likely also require a +call to sfxload), these lines can be added to /etc/conf.modules, of +course with the suitable values for the parameters): + +alias char-major-14 sb +post-install sb modprobe "-k" "adlib_card" +options sb io=0x220 irq=5 dma=1 dma16=5 mpu_io=0x330 +options adlib_card io=0x388 # FM synthesiser + +and then these two commands can be issued: + +modprobe sb +insmod awe_wave + +------------------------------------------------------------------------------ + +After picking up the second approach, you may want to put these lines +on an ossfreeOn script: + + ----- +#!/bin/sh + +modprobe sb +insmod awe_wave + +# A call to 'aumix -L' (attention to what the home dir is at boot +# time, you may put a link /.aumixrc -> /home/<sounduser>/.aumixrc) to +# restore mixer device levels and a call to 'sfxload <path to +# soundfont bank>' may be added in a customized ossfreeSetup script: + +if [ -x /usr/local/sbin/ossfreeSetup ] ; then + /usr/local/sbin/ossfreeSetup +fi + ----- + +And these lines in an ossfreeOff script: + + ----- +#!/bin/sh + +# NOT set -e, maybe not all of them are currently loaded. + +rmmod awe_wave +rmmod adlib_card +rmmod opl3 +rmmod sb +rmmod uart401 +rmmod sound + ----- + diff --git a/Documentation/sound/MAD16 b/Documentation/sound/MAD16 new file mode 100644 index 000000000..319b1e17a --- /dev/null +++ b/Documentation/sound/MAD16 @@ -0,0 +1,25 @@ +From: Shaw Carruthers <shaw@shawc.demon.co.uk> + +I have been using mad16 sound for some time now with no problems, current +kernel 2.1.89 + +lsmod shows: + +mad16 5176 0 +sb 22044 0 [mad16] +uart401 5576 0 [mad16 sb] +ad1848 14176 1 [mad16] +sound 61928 0 [mad16 sb uart401 ad1848] + +.config has: + +CONFIG_SOUND=m +CONFIG_ADLIB=m +CONFIG_MAD16=m +CONFIG_YM3812=m + +modules.conf has: + +alias char-major-14 mad16 +options sb mad16=1 +options mad16 io=0x530 irq=7 dma=0 dma16=1 && /usr/local/bin/aumix -w 15 -p 20 -m 0 -1 0 -2 0 -3 0 -i 0 diff --git a/Documentation/sound/Opti b/Documentation/sound/Opti new file mode 100644 index 000000000..bc8b15290 --- /dev/null +++ b/Documentation/sound/Opti @@ -0,0 +1,216 @@ +Support for the OPTi 82C931 chip +-------------------------------- +Note: parts of this README file apply also to other +cards that use the mad16 driver. + +Some items in this README file are based on features +added to the sound driver after Linux-2.1.91 was out. +By the time of writing this I do not know which official +kernel release will include these features. +Please do not report inconsistencies on older Linux +kernels. + +The OPTi 82C931 is supported in its non PnP mode. +Usually you do not need to set jumpers etc... The sound driver +will check the card status and if it is required it will +force the card into a mode in which it can be programmed. + +If you have another OS installed on your computer it is recommended +that Linux and the other OS use the same resources. + +Also, it is recommended that resources specified in /etc/conf.modules +and resources specified in /etc/isapnp.conf agree. + +Compiling the sound driver +-------------------------- +I highly recommend that you build a modularized sound driver. +This document does not cover a sound-driver which is built in +the kernel. + +Sound card support should be enabled as a module (chose m). +Answer 'm' for these items: + Generic OPL2/OPL3 FM synthesizer support (CONFIG_ADLIB) + Microsoft Sound System support (CONFIG_MSS) + Support for OPTi MAD16 and/or Mozart based cards (CONFIG_MAD16) + FM synthesizer (YM3812/OPL-3) support (CONFIG_YM3812) + +The configuration menu may ask for addresses, irq lines or dma +channels. If the card is used as a module the module loading +options will override these values. + +For the OPTi 931 you can answer 'n' to: + Support MIDI in older MAD16 based cards (requires SB) (CONFIG_MAD16_OLDCARD) +If you do need MIDI support in a Mozart or C928 based card you +need to answer 'm' to the above question. In that case you will +also need to answer 'm' to: + '100% Sound Blaster compatibles (SB16/32/64, ESS, Jazz16) support' (CONFIG_SB) + +Go on and compile your kernel and modules. Install the modules. Run depmod -a. + +Using isapnptools +----------------- +In most systems with a PnP bios you do not need to use isapnp. The +initialization provided by the bios is sufficient for the driver +to pick up the card and continue initialization. + +If that fails, or if you have other PnP cards, you need to use isapnp +to initialize the card. +This was tested with isapnptools-1.11 but I recommend that you use +isapnptools-1.13 (or newer). Run pnpdump to dump the information +about your PnP cards. Then edit the resulting file and select +the options of your choice. This file is normally installed as +/etc/isapnp.conf. + +The driver had one limitation WRT io port resources. +IO3 base should be 0x0E0C. Isapnp allows other io ports but this +address is hard-coded into the driver. + +Using kmod and autoloading the sound driver +------------------------------------------- +Comment: as of linux-2.1.90 kmod is replacing kerneld. +The config file '/etc/conf.modules' is used as before. + +This is the sound part of my /etc/conf.modules file. +Following that I will explain each line. + +alias mixer0 mad16 +alias audio0 mad16 +alias midi0 mad16 +alias synth0 opl3 +options sb mad16=1 +options mad16 irq=10 dma=0 dma16=1 io=0x530 joystick=1 cdtype=0 +options opl3 io=0x388 +post-install mad16 /sbin/ad1848_mixer_reroute 14 8 15 3 16 6 + +Explain: + +alias mixer0 mad16 +alias audio0 mad16 +alias midi0 mad16 +alias synth0 opl3 + +When any sound device is opened the kernel requests auto-loading +of char-major-14. There is a built-in alias that translates this +request to loading the main sound module. The main sound module +contains only common code which is needed by all the sound drivers, +and the driver for /dev/sndstat. + +The sound module in its turn will request loading of a sub-driver +for mixer, audio, midi or synthesizer device. The first 3 are +supported by the mad16 driver. The synth device is supported +by the opl3 driver. + +There is currently no way to autoload the sound device driver +if more than one card is installed. + +options sb mad16=1 + +This is left for historical reasons. If you enable the +config option 'Support MIDI in older MAD16 based cards (requires SB)' +or if you use an older mad16 driver it will force loading of the +SoundBlaster driver. This option tells the SB driver not to look +for a SB card but to wait for the mad16 driver. + +options mad16 irq=10 dma=0 dma16=1 io=0x530 joystick=1 cdtype=0 +options opl3 io=0x388 + +post-install mad16 /sbin/ad1848_mixer_reroute 14 8 15 3 16 6 + +This sets resources and options for the mad16 and opl3 drivers. +I use 2 dma channels (only one is required) to enable full duplex. +joystick=1 enables the joystick port. cdtype=0 disables the cd port. +You can also set mpu_io and mpu_irq in the mad16 options for the +uart401 driver. + +This tells modprobe to run /sbin/ad1848_mixer_reroute after +mad16 is successfully loaded and initialized. The source +for ad1848_mixer_reroute is appended to the end of this readme +file. It is impossible for the sound driver to know the actual +connections to the mixer. The 3 inputs intended for cd, synth +and line-in are mapped to the generic inputs line1, line2 and +line3. This program reroutes these mixer channels to their +right names (note the right mapping depends on the actual sound +card that you use). +The numeric parameters mean: + 14=line1 8=cd - reroute line1 to the CD input. + 15=line2 3=synth - reroute line2 to the synthesizer input. + 16=line3 6=line - reroute line3 to the line input. +For reference on other input names look at the file +/usr/include/linux/soundcard.h. + +Using a joystick +----------------- +You must enable a joystick in the mad16 options. (also +in /etc/isapnp.conf if you use it). +Tested with regular analog joysticks. + +A CDROM drive connected to the sound card +----------------------------------------- +The 82C931 chip has support only for secondary ATAPI cdrom. +(cdtype=8). Loading the mad16 driver resets the C931 chip +and if a cdrom was already mounted it may cause a complete +system hang. Do not use the sound card if you have an alternative. +If you do use the sound card it is important that you load +the mad16 driver (use "modprobe mad16" to prevent auto-unloading) +before the cdrom is accessed the first time. + +Using the sound driver built-in to the kernel may help here, but... +Most new systems have a PnP bios and also two IDE controllers. +The IDE controller on the sound card may be needed only on older +systems (which have only one IDE controller) but these systems +also do not have a PnP bios - requiring isapnptools and a modularized +driver. + +Known problems +-------------- +1. See the section on "A CDROM drive connected to the sound card". + +2. On my system the codec cannot capture companded sound samples. + (eg., recording from /dev/audio). When any companded capture is + requested I get stereo-16 bit samples instead. Playback of + companded samples works well. Apparently this problem is not common + to all C931 based cards. I do not know how to identify cards that + have this problem. + +Source for ad1848_mixer_reroute.c +--------------------------------- +#include <stdio.h> +#include <fcntl.h> +#include <linux/soundcard.h> + +static char *mixer_names[SOUND_MIXER_NRDEVICES] = + SOUND_DEVICE_LABELS; + +int +main(int argc, char **argv) { + int val, from, to; + int i, fd; + + fd = open("/dev/mixer", O_RDWR); + if(fd < 0) { + perror("/dev/mixer"); + return 1; + } + + for(i = 2; i < argc; i += 2) { + from = atoi(argv[i-1]); + to = atoi(argv[i]); + + if(to == SOUND_MIXER_NONE) + fprintf(stderr, "%s: turning off mixer %s\n", + argv[0], mixer_names[to]); + else + fprintf(stderr, "%s: rerouting mixer %s to %s\n", + argv[0], mixer_names[from], mixer_names[to]); + + val = from << 8 | to; + + if(ioctl(fd, SOUND_MIXER_PRIVATE2, &val)) { + perror("AD1848 mixer reroute"); + return 1; + } + } + + return 0; +} + diff --git a/Documentation/sound/Soundblaster b/Documentation/sound/Soundblaster index 9ca8db777..8fe9d42ef 100644 --- a/Documentation/sound/Soundblaster +++ b/Documentation/sound/Soundblaster @@ -4,7 +4,7 @@ insmod uart401 insmod sb ... This loads the driver for the soundblaster and assorted clones. Cards that -are covered by other drivers should not be using with this driver. +are covered by other drivers should not be using this driver. The soundblaster module takes the following arguments @@ -34,5 +34,5 @@ OS. IBM are being difficult about documenting how to load this firmware. Avance Logic ALS007 -This card isnt currently supported. I have patches to merge however that +This card isn't currently supported. I have patches to merge however that add limited support. diff --git a/Documentation/sound/mwave b/Documentation/sound/mwave new file mode 100644 index 000000000..8bf73a039 --- /dev/null +++ b/Documentation/sound/mwave @@ -0,0 +1,192 @@ + How to try and survive an IBM Mwave under Linux SB drivers + + +* IBM refuse to provide documentation. If anyone can ever find out what + MWD50430.EXE actually does to load firmware then this comedy could go + away. + +* If you'd like to ask IBM why they don't release Mwave information. + phone IBM (425-556-8822) and ask them why they still haven't + released any documentation. + [http://204.200.238.31/cgi-bin/link.pl?co=i&cl=/ts/ibm/contact.html] + +---------------------------------------------------------------------------- + +OK, First thing - the IRQ problem IS a problem, whether the test is bypassed or +not. And it is NOT a linux problem - it is an MWAVE problem that is fixed with +the latest MWAVE patches. So, in other words, DON'T bypass the test for MWAVES!! + +My config is Win 95 on HDA1, swap on HDA2, RH 5 on HDA3. + +The steps, then: + + Boot to Linux. + Mount Win95 file system (assume mount mount = /dos95) + mkdir /dos95/linux + mkdir /dos95/linux/boot + mkdir /dos95/linux/boot/parms + + Copy the kernel, any initrd image, and loadlin to /dos95/linux/boot + + Reboot to win 95 + + Edit C:/msdos.sys and add/change the following: + + Logo=0 + BootGUI=0 + + [Note msdos.sys IS a text file but it needs to be 'unhidden' and make + read-writable before it can be edited] + + Edit Config .sys to have multiple config menus. I have one for win95, and + five for linux. Like this: +------------ +[menu] +menuitem=W95, Windows 95 +menuitem=LINTP, Linux - ThinkPad +menuitem=LINTP3, Linux - ThinkPad Console +menuitem=LINDOC, Linux - Docked +menuitem=LINDOC3, Linux - Docked Console +menuitem=LIN1, Linux - Single User Mode +REM menudefault=W95,10 + +[W95] + +[LINTP] + +[LINDOC] + +[LINTP3] + +[LINDOC3] + +[LIN1] + +[COMMON] +FILES=30 +REM Please read README.TXT in C:\MWW subdirectory before changing the DOS= statement. +DOS=HIGH,UMB +DEVICE=C:\MWW\MANAGER\MWD50430.EXE +SHELL=c:\command.com /e:2048 +------------------- + +The important things are the SHELL and DEVICE statements + + Then change Autoexec.bat. Basically everything in there originally should be + done ONLY when Win95 is booted. Then you add new things specifically for + Linux. Mine is as follows + +--------------- +@ECHO OFF +if "%CONFIG%" == "W95" goto W95 + +REM +REM Linux stuff +REM +SET MWPATH=C:\MWW\DLL;C:\MWW\MWGAMES;C:\MWW\DSP +SET BLASTER=A220 I5 D1 +SET MWROOT=C:\MWW +SET LIBPATH=C:\MWW\DLL +SET PATH=C:\WINDOWS;C:\MWW\DLL; +CALL MWAVE START NOSHOW +c:\linux\boot\loadlin.exe @c:\linux\boot\parms\%CONFIG%.par + +:W95 +REM +REM Windows 95 stuff +REM +c:\toolkit\guard +SET MSINPUT=C:\MSINPUT +SET MWPATH=C:\MWW\DLL;C:\MWW\MWGAMES;C:\MWW\DSP +REM The following is used by DOS games to recognize Sound Blaster hardware. +REM If hardware settings are changed, please change this line as well. +REM See the Mwave README file for instructions. +SET BLASTER=A220 I5 D1 +SET MWROOT=C:\MWW +SET LIBPATH=C:\MWW\DLL +SET PATH=C:\WINDOWS;C:\WINDOWS\COMMAND;E:\ORAWIN95\BIN;f:\msdev\bin;e:\v30\bin.dbg;v:\devt\v30\bin;c:\JavaSDK\Bin;C:\MWW\DLL; +SET INCLUDE=f:\MSDEV\INCLUDE;F:\MSDEV\MFC\INCLUDE +SET LIB=F:\MSDEV\LIB;F:\MSDEV\MFC\LIB +win + +------------------------ + +Now build a file in c:\linux\boot\parms for each linux config that you have. + +For example, my LINDOC3 config is for a docked Thinkpad at runlevel 3 with no +initrd image, and has a parm file named LINDOC3.PAR in c:\linux\boot\parms: + +----------------------- +# LOADLIN @param_file image=other_image root=/dev/other +# +# Linux Console in docking station +# +c:\linux\boot\zImage.krn # first value must be the filename of the Linux-kernel +root=/dev/hda3 # the device which gets mounted as root FS +ro # Other kernel arguments go here +apm=off +doc=yes +3 +----------------------- + +the doc=yes parm is an environment variable that my init scripts use, it is not +a kernel argument. + +However, the apm=off parm IS a kernel argument!!!!!!! APM, at least in my setup, +causes the kernel to crash when loaded via loadlin (but NOT when loaded via +LILO). The APM stuff COULD be forced out of the kernel via the kernel compile +options. BUT I, instead, got hold of an unofficial patch to the APM drivers that +allows them to be dynamically deactivated via kernel arguments. Whatever you +chose to document, APM, it seems, MUST be off for setups like mine. + +Now check the C:\MWW\MWCONFIG.REF looks like this: + +---------------------- +[NativeDOS] +Default=SB1.5 +SBInputSource=CD +SYNTH=FM +QSound=OFF +Reverb=OFF +Chorus=OFF +ReverbDepth=5 +ChorusDepth=5 +SBInputVolume=5 +SBMainVolume=10 +SBWaveVolume=10 +SBSynthVolume=10 +WaveTableVolume=10 +AudioPowerDriver=ON + +[FastCFG] +Show=No +HideOption=Off +----------------------------- + +OR the Default= line COULD be + +Default=SBPRO + +Reboot to Win95 and choose Linux. When booted, use sndconfig to configure the +sound modules and VOILA - ThinkPad sound with Linux. + +Now the gotchas - You can either have CD sound OR Mixers but not both. That's a +problem with the SB1.5(CD sound) or SBPRO(Mixers) settings. No-one knows why +this is! + +And, for some reason MPEG3 files, when played through mpg123, sound like they +are playing at 1/8th speed - not very useful!!!!!!!!!!!! If you have ANY insight +on why this second thing might be happening I would be grateful. + +=========================================================== + _/ _/_/_/_/ + _/_/ _/_/ _/ + _/ _/_/ _/_/_/_/ Martin John Bartlett + _/ _/ _/ _/ (martin@nitram.demon.co.uk) +_/ _/_/_/_/ + _/ +_/ _/ + _/_/ +=========================================================== + + diff --git a/Documentation/sound/ultrasound b/Documentation/sound/ultrasound new file mode 100644 index 000000000..51abe84a7 --- /dev/null +++ b/Documentation/sound/ultrasound @@ -0,0 +1,31 @@ + +insmod sound +insmod ad1848 +insmod gus io=* irq=* dma=* ... + +This loads the driver for the Gravis Ultrasound family of soundcards. + +The gus modules takes the following arguments + +io I/O address of the ultrasound card (eg. io=0x220) +irq IRQ of the soundblaster card +dma DMA channel for the soundblaster +dma16 2nd DMA channel, only needed for full duplex operation +type 1 for PnP card +gus16 1 for using 16 bit sampling daughter board +no_wave_dma Set to disable dma usage for wavetable (see note) +db16 ??? + + +no_wave_dma option + +This option defaults to a value of 0, which allows the Ultrasound wavetable +DSP to use DMA for for playback and downloading samples. This is the same +as the old behaviour. If set to 1, no DMA is needed for downloading samples, +and allows owners of a GUS MAX to make use of simultaneous digital audio +(/dev/dsp), MIDI, and wavetable playback. + + +If you have problems in recording with GUS MAX, you could try to use +just one 8 bit DMA channel. Recording will not work with one DMA +channel if it's a 16 bit one. diff --git a/Documentation/specialix.txt b/Documentation/specialix.txt index cb4eeb7cb..158699b1a 100644 --- a/Documentation/specialix.txt +++ b/Documentation/specialix.txt @@ -44,10 +44,10 @@ instead of in a manual that can get lost. Ever misplace your Linux kernel sources? And the manual of one of the boards in your computer? -Adresses and interrupts -======================= +Addresses and interrupts +======================== -Addres dip switch settings: +Address dip switch settings: The dip switch sets bits 2-9 of the IO address. 9 8 7 6 5 4 3 2 @@ -111,7 +111,7 @@ The Specialix card uses a 25MHz crystal (in times two mode, which in fact is a divided by two mode). This is not enough to reach the rated 115k2 on all ports at the same time. With this clock rate you can only do 37% of this rate. This means that at 115k2 on all ports you are -going to loose characters (The chip cannot handle that many incoming +going to lose characters (The chip cannot handle that many incoming bits at this clock rate.) (Yes, you read that correctly: there is a limit to the number of -=bits=- per second that the chip can handle.) @@ -129,7 +129,7 @@ got: +++[0d]ATQ0V1H0[0d][0d][8a]O[cb][0d][8a] The three characters that have the "^^^" under them have suffered a bit error in the highest bit. In conclusion: I've tested it, and found -that it simply DOESN"T work for me. I also suspect that this is also +that it simply DOESN'T work for me. I also suspect that this is also caused by the baud rate being just a little bit out of tune. diff --git a/Documentation/spinlocks.txt b/Documentation/spinlocks.txt index 1d749b942..53f9362f5 100644 --- a/Documentation/spinlocks.txt +++ b/Documentation/spinlocks.txt @@ -6,7 +6,7 @@ On Fri, 2 Jan 1998, Doug Ledford wrote: > SMP safe as well as UP safe during interrupts and other manipulating > routines. So far, I've added a spin_lock variable to things like my queue > structs. Now, from what I recall, there are some spin lock functions I can -> use to lock these spin locks frmo other use as oppossed to a (nasty) +> use to lock these spin locks from other use as opposed to a (nasty) > save_flags(); cli(); stuff; restore_flags(); construct. Where do I find > these routines and go about making use of them? Do they only lock on a > per-processor basis or can they also lock say an interrupt routine from @@ -25,7 +25,7 @@ See <asm/spinlock.h>. The basic version is: ... critical section here .. spin_unlock_irqrestore(&xxx_lock, flags); -and the above is always safe. It will disable interrupt _locally_, but the +and the above is always safe. It will disable interrupts _locally_, but the spinlock itself will guarantee the global lock, so it will guarantee that there is only one thread-of-control within the region(s) protected by that lock. diff --git a/Documentation/stallion.txt b/Documentation/stallion.txt index 5f1a95977..6c80ff368 100644 --- a/Documentation/stallion.txt +++ b/Documentation/stallion.txt @@ -94,7 +94,7 @@ the kernel or modules. When the new kernel is booted, or the loadable module loaded then the driver will emit some kernel trace messages about whether the configured -boards where detected or not. Depending on how your system logger is set +boards were detected or not. Depending on how your system logger is set up these may come out on the console, or just be logged to /var/adm/messages. You should check the messages to confirm that all is well. @@ -141,7 +141,7 @@ addressing limit). The higher than 1Mb memory addresses are fully supported by this driver. Just enter the address as you normally would for a lower than 1Mb address -(in the drivers board configuration structure). +(in the driver's board configuration structure). @@ -165,7 +165,7 @@ ONboard boards is software programmable, but not on the Brumby boards. The intelligent boards also need to have their "firmware" code downloaded to them. This is done via a user level application supplied in the driver -utility package called "stlload". Compile this program where ever you dropped +utility package called "stlload". Compile this program wherever you dropped the package files, by typing "make". In its simplest form you can then type ./stlload -i cdk.sys in this directory and that will download board 0 (assuming board 0 is an @@ -220,7 +220,7 @@ intentional, obviously this is the easiest way to emulate its behavior! Since this driver tries to emulate the standard serial ports as much as possible, most system utilities should work as they do for the standard -COM ports. Most importantly "stty" works as expected and "setserial" can be +COM ports. Most importantly "stty" works as expected and "setserial" can also be used (excepting the ability to auto-configure the I/O and IRQ addresses of boards). Higher baud rates are supported in the usual fashion through setserial or using the CBAUDEX extensions. Note that the EasyIO and diff --git a/Documentation/svga.txt b/Documentation/svga.txt index aa8f10602..362eb4fef 100644 --- a/Documentation/svga.txt +++ b/Documentation/svga.txt @@ -5,8 +5,8 @@ 1. Intro ~~~~~~~~ This small document describes the "Video Mode Selection" feature which -allows to use various special video modes supported by the video BIOS. Due -to usage of the BIOS, the selection is limited to the boot time (before the +allows the use of various special video modes supported by the video BIOS. Due +to usage of the BIOS, the selection is limited to boot time (before the kernel decompression starts) and works only on 80X86 machines. The video mode to be used is selected by a kernel parameter which can be @@ -58,16 +58,16 @@ of chipsets is turned off by default (see CONFIG_VIDEO_SVGA in chapter 4 to see how to enable it if you really want) as it's inherently unreliable due to absolutely insane PC design. - "0 0F00 80x25" tells that the first menu item (the menu items are numbered + "0 0F00 80x25" means that the first menu item (the menu items are numbered from "0" to "9" and from "a" to "z") is a 80x25 mode with ID=0x0f00 (see the next section for a description of mode ID's). - <flashing-cursor-here> encourages you to write the item number or mode ID + <flashing-cursor-here> encourages you to enter the item number or mode ID you wish to set and press <RETURN>. If the computer complains something about -"Unknown mode ID", it tries to explain you that it isn't possible to set such +"Unknown mode ID", it is trying to tell you that it isn't possible to set such a mode. It's also possible to press only <RETURN> which leaves the current mode. - The mode list usually contains only few basic modes and some VESA modes. In + The mode list usually contains a few basic modes and some VESA modes. In case your chipset has been detected, some chipset-specific modes are shown as well (some of these might be missing or unusable on your machine as different BIOSes are often shipped with the same card and the mode numbers depend purely @@ -173,7 +173,7 @@ in setup.S, but it's better to upgrade the boot loader...) CONFIG_VIDEO_LOCAL - enables inclusion of "local modes" in the list. The local modes are added automatically to the beginning of the list not depending -by hardware configuration. The local modes are listed in the source text after +on hardware configuration. The local modes are listed in the source text after the "local_mode_table:" line. The comment before this line describes the format of the table (which also includes a video card name to be displayed on the top of the menu). @@ -201,7 +201,7 @@ your kernel with the video mode set directly via the kernel parameter. In either case, please send me a bug report containing what _exactly_ happens and how do the configuration switches affect the behaviour of the bug. - If you start Linux from the M$-DOS, you might also use some DOS tools for + If you start Linux from M$-DOS, you might also use some DOS tools for video mode setting. In this case, you must specify the 0x0f04 mode ("leave current settings") to Linux, because if you don't and you use any non-standard mode, Linux will switch to 80x25 automatically. diff --git a/Documentation/sysctl/README b/Documentation/sysctl/README index 02100863a..be6a09704 100644 --- a/Documentation/sysctl/README +++ b/Documentation/sysctl/README @@ -1,6 +1,6 @@ Documentation for /proc/sys/*/* version 0.1 - (c) 1998, Rik van Riel <H.H.vanRiel@fys.ruu.nl> + (c) 1998, Rik van Riel <H.H.vanRiel@phys.uu.nl> 'Why', I hear you ask, 'would anyone even _want_ documentation for them sysctl files? If anybody really needs it, it's all in @@ -32,7 +32,7 @@ it. Not only to have a great laugh, but also to make sure that you're the last RTFMing person to screw up. In short, e-mail your suggestions, corrections and / or horror -stories to: <H.H.vanRiel@fys.ruu.nl> +stories to: <H.H.vanRiel@phys.uu.nl> Rik van Riel. diff --git a/Documentation/sysctl/kernel.txt b/Documentation/sysctl/kernel.txt index baf3f0700..b935b4ca9 100644 --- a/Documentation/sysctl/kernel.txt +++ b/Documentation/sysctl/kernel.txt @@ -1,6 +1,6 @@ Documentation for /proc/sys/kernel/* version 0.1 - (c) 1998, Rik van Riel <H.H.vanRiel@fys.ruu.nl> + (c) 1998, Rik van Riel <H.H.vanRiel@phys.uu.nl> For general info and legal blurb, please look in README. @@ -25,7 +25,6 @@ Currently, these files are in /proc/sys/kernel: - inode-max - inode-nr - inode-state -- kmod_unload_delay ==> Documentation/kmod.txt - modprobe ==> Documentation/kmod.txt - osrelease - ostype @@ -44,7 +43,7 @@ When the value in this file is 0, ctrl-alt-del is trapped and sent to the init(1) program to handle a graceful restart. When, however, the value is > 0, Linux's reaction to a Vulcan Nerve Pinch (tm) will be an immediate reboot, without even -syncing it's dirty buffers. +syncing its dirty buffers. Note: when a program (like dosemu) has the keyboard in 'raw' mode, the ctrl-alt-del is intercepted by the program before it @@ -69,7 +68,7 @@ struct { Dentries are dynamically allocated and deallocated, and nr_dentry seems to be 0 all the time. Hence it's safe to assume that only nr_unused, age_limit and want_pages are -used. Nr_unused seems to be exactly what it's name says. +used. Nr_unused seems to be exactly what its name says. Age_limit is the age in seconds after which dcache entries can be reclaimed when memory is short and want_pages is nonzero when shrink_dcache_pages() has been called and the @@ -102,7 +101,7 @@ The three values in file-nr denote the number of allocated file handles, the number of used file handles and the maximum number of file handles. When the allocated filehandles come close to the maximum, but the number of actually used ones is -far behind, you've encountered a peek in your filehandle usage +far behind, you've encountered a peak in your filehandle usage and you don't need to increase the maximum. ============================================================== @@ -113,7 +112,7 @@ As with filehandles, the kernel allocates the inode structures dynamically, but can't free them yet... The value in inode-max denotes the maximum number of inode -handlers. This value should be 3-4 times larger as the value +handlers. This value should be 3-4 times larger than the value in file-max, since stdin, stdout and network sockets also need an inode struct to handle them. When you regularly run out of inodes, you need to increase this value. @@ -127,7 +126,7 @@ nr_free_inodes and preshrink. Nr_inodes stands for the number of inodes the system has allocated, this can be slightly more than inode-max because -Linux allocates them one pagefull at a time. +Linux allocates them one pageful at a time. Nr_free_inodes represents the number of free inodes (?) and preshrink is nonzero when the nr_inodes > inode-max and the diff --git a/Documentation/sysctl/vm.txt b/Documentation/sysctl/vm.txt index f2ef26fff..774da3d5f 100644 --- a/Documentation/sysctl/vm.txt +++ b/Documentation/sysctl/vm.txt @@ -1,6 +1,6 @@ Documentation for /proc/sys/vm/* version 0.1 - (c) 1998, Rik van Riel <H.H.vanRiel@fys.ruu.nl> + (c) 1998, Rik van Riel <H.H.vanRiel@phys.uu.nl> For general info and legal blurb, please look in README. @@ -62,7 +62,7 @@ of the buffer still have to be written to disk (as opposed to a clean buffer, which can just be forgotten about). Setting this to a high value means that Linux can delay disk writes for a long time, but it also means that it will have -to do a lot I/O at once when memory becomes short. A low +to do a lot of I/O at once when memory becomes short. A low value will spread out disk I/O more evenly. The second parameter (ndirty) gives the maximum number of @@ -94,7 +94,8 @@ buffermem: The three values in this file correspond to the values in the struct buffer_mem. It controls how much memory should -be used for buffer memory. +be used for buffer memory. The percentage is calculated +as a percentage of total system memory. The values are: min_percent -- this is the minumum percentage of memory @@ -111,29 +112,9 @@ freepages: This file contains the values in the struct freepages. That struct contains three members: min, low and high. -These numbers are used by the VM subsystem to keep a reasonable -number of pages on the free page list, so that programs can -allocate new pages without having to wait for the system to -free used pages first. The actual freeing of pages is done -by kswapd, a kernel daemon. - -min -- when the number of free pages reaches this - level, only the kernel can allocate memory - for _critical_ tasks only -low -- when the number of free pages drops below - this level, kswapd is woken up immediately -high -- this is kswapd's target, when more than <high> - pages are free, kswapd will stop swapping. - -When the number of free pages is between low and high, -and kswapd hasn't run for swapout_interval jiffies, then -kswapd is woken up too. See swapout_interval for more info. - -When free memory is always low on your system, and kswapd has -trouble keeping up with allocations, you might want to -increase these values, especially high and perhaps low. -I've found that a 1:2:4 relation for these values tend to work -rather well in a heavily loaded system. +These variables are currently unused (?), but they're +very likely to be abused for something else in the near +future, so don't yet remove it from the source... ============================================================== @@ -209,23 +190,23 @@ typedef struct swap_control_v5 } swap_control_v5; -------------------------------------------------------------- -The first four variables are used to keep track of Linux' +The first four variables are used to keep track of Linux's page aging. Page aging is a bookkeeping method to keep track of which pages of memory are used often, and which pages can be swapped out without consequences. When a page is swapped in, it starts at sc_page_initial_age -(default 3) and when the page is scanned by kswapd, it's age +(default 3) and when the page is scanned by kswapd, its age is adjusted according to the following scheme: -- if the page was used since the last time we scanned, it's - age is increased sc_page_advance (default 3) up to a maximum +- if the page was used since the last time we scanned, its + age is increased by sc_page_advance (default 3) up to a maximum of sc_max_page_age (default 20) -- else (it wasn't used) it's age is decreased sc_page_decline +- else (it wasn't used) its age is decreased by sc_page_decline (default 1) And when a page reaches age 0, it's ready to be swapped out. The next four variables can be used to control kswapd's -agressiveness in swapping out pages. +aggressiveness in swapping out pages. sc_age_cluster_fract is used to calculate how many pages from a process are to be scanned by kswapd. The formula used is @@ -236,10 +217,10 @@ represented by sc_age_cluster_min, this is done so kswapd will also scan small processes. The values of sc_pageout_weight and sc_bufferout_weight are -used to control the how many tries kswapd will do in order +used to control how many tries kswapd will make in order to swapout one page / buffer. These values can be used to finetune the ratio between user pages and buffer/cache memory. -When you find that your Linux system is swapping out too much +When you find that your Linux system is swapping out too many process pages in order to satisfy buffer memory demands, you might want to either increase sc_bufferout_weight, or decrease the value of sc_pageout_weight. diff --git a/Documentation/sysrq.txt b/Documentation/sysrq.txt new file mode 100644 index 000000000..f9d282bba --- /dev/null +++ b/Documentation/sysrq.txt @@ -0,0 +1,89 @@ + MAGIC SYSRQ KEY DOCUMENTATION v1.0 + ------------------------------------ + [Fri Apr 3 08:27:12 EST 1998] + +1. What is the magic SysRQ key? +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +It is a 'magical' key combo you can hit, and the kernel will respond to +regardless of anything else, unless it is hard-locked. + +2. How do I enable the magic SysRQ key? +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +You need to say yes to 'Magic SysRq key (CONFIG_MAGIC_SYSRQ)' when +configuring the kernel. This option is only available it 2.1.x or later +kernels. + +3. How do I use the magic SysRQ key? +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +You press the key combo 'ALT-SysRQ-<command key>'. + +4. What are the 'command' keys? +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +'r' - Turns off keyboard raw mode and sets it to XLATE. + +'k' - Kills all programs on the current virtual console. + +'b' - Will immediately reboot the system without syncing or unmounting + your disks. + +'o' - Will shut your system off via APM (if configured and supported). + +'s' - Will attempt to sync all mounted filesystems. + +'u' - Will attempt to remount all mounted file systems readonly. + +'p' - Will dump the current registers and flags to your console. + +'t' - Will dump a list of current tasks and their information to your + console. + +'m' - Will dump current memory info to your console. + +'0'-'8' - Sets the console log level, controlling which kernel messages + will be printed to your console. ('0', for example would make + it so that only emergency messages like PANICs or OOPSes would + make it to your console.) + +'e' - Send a SIGTERM to all processes, except for init. + +'i' - Send a SIGKILL to all processes, except for init. + +'l' - Send a SIGKILL to all processes, INCLUDING init. (Your system + will be non-functional after this.) + +5. Okay, so what can I use them for? +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Well, un'R'aw is very handy when your X server or a svgalib program crashes. + +sa'K' (system attention key) is useful when you want to exit a program +that will not let you switch consoles. (For example, X or a svgalib program.) + +re'B'oot is good when you're unable to shut down. But you should also 'S'ync +and 'U'mount first. + +'S'ync is great when your system is locked up, it allows you to sync your +disks and will certainly lessen the chance of data loss and fscking. + +'U'mount is basically useful in the same ways as 'S'ync. I generally 'S'ync, +'U'mount, then re'B'oot when my system locks. It's saved me many a fsck. + +The loglevel'0'-'8' is useful when your console is being flooded with +kernel messages you do not want to see. Setting '0' will prevent all but +the most urgent kernel messages from reaching your console. (They will +still be logged if syslogd/klogd are alive, though.) + +t'E'rm and k'I'll are useful if you have some sort of runaway process you +are unable to kill any other way, especially if it's spawning other +processes. + +6. Sometimes SysRQ seems to get 'stuck' after using it, what can I do? +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +That happens to me, also. I've found that tapping shift, alt, and control +on both sides of the keyboard, and hitting an invalid sysrq sequence again +will fix the problem. (ie, something like alt-sysrq-z). + +7. I have more questions, who can I ask? +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +You may feel free to send email to myrdraal@deathsdoor.com, and I will +respond as soon as possible. + -Myrdraal diff --git a/Documentation/transname.txt b/Documentation/transname.txt index d0a877141..b778a1153 100644 --- a/Documentation/transname.txt +++ b/Documentation/transname.txt @@ -14,8 +14,8 @@ contents on the clients and on the server, but have to be replicated This duplication causes very large efforts in practise, since at least the /etc directory has to be duplicated for every client. Even in /etc many files are identical, for example sendmail.cf, initrc scripts and -others. Maintaining a large pool means to ensure coherence amoung the -duplicates. Classical methods like symlinks are unconvenient +others. Maintaining a large pool requires means to ensure coherence among +the duplicates. Classical methods like symlinks are inconvenient for this task because they have to be valid in the view of mounted filesystems at all clients, not at the server. @@ -28,17 +28,17 @@ create two different files named /etc/config#host=myserver# and file /etc/config (without the #...=...# suffix). On host "myclient", the corresponding other file will appear as /etc/config. So you can access the right file contents under the _same_ name, depending -on which host you are working. +on which host you are working on. -A similar concept can be found in elder HP-UX versions, but with -so-called "hidden directories" which don't allow contemporary viewing +A similar concept can be found in older HP-UX versions, but with +so-called "hidden directories" which don't allow contemporary viewing of all versions by default. In contrast, transname shows all context-dependent files in the dir listing and they can be edited using the fully qualified name. -Transname was developped for and is used at our Linux pool at the -University of Stuttgart with good results. Maintainance of the pool is -at a minimum, and adding new clients is a child's play. No worry with +Transname was developed for and is used at our Linux pool at the +University of Stuttgart with good results. Maintenance of the pool is +at a minimum, and adding new clients is child's play. No worry with keeping up mail configurations, newly installed tools, changed /etc/services, /etc/shells, /etc/resolv.conf and many, many others. In contrast to a sophisticated symlink solution, adding a new file to the /etc directory @@ -46,7 +46,7 @@ is seen immediately by all clients. An example for the use of linux-2.0-transname.patch: -For example, you can make your /etc/fstab context-dependend. If you want +For example, you can make your /etc/fstab context-dependent. If you want to do that, you should create an /etc/fstab#ktype=default# for the server and an /etc/fstab#ktype=diskless# for all clients. This is because your clients may not yet know their own hostname when they attempt to mount @@ -54,7 +54,7 @@ the root filesystem. You can compile in the kerneltypes "default" and "diskless" into different kernels for servers and clients. Of course, if your clients boot via bootp and know their names when mounting the root, you can use /etc/fstab#host=myclient# instead. But at least servers -booting from disk normally dont know their hostname at root mount time, +booting from disk normally don't know their hostname at root mount time, so you can mix methods and use /etc/fstab#ktype=default# for the server, /etc/fstab#ktype=diskless# for the majority of the clients and /etc/fstab#host=myclient# for some specific client, because translation @@ -73,7 +73,7 @@ five types of default translations are supported: Others may be added in future. -The current translation are displayed at boot time in the kernel messages +The current translations are displayed at boot time in the kernel messages for easier debugging, and can be retrieved by reading /proc/sys/kernel/nametrans which is a special file containing the currently valid translations. @@ -105,7 +105,7 @@ back to the default translations by executing echo "" > /proc/sys/kernel/nametrans Another drawback is that administration tools currently are not aware of -context-dependend files, so you cannot switch between contexts inside +context-dependent files, so you cannot switch between contexts inside one tool session. However, you can simulate administration sessions on the server as if they were running on some client. To do this, you have to set an environment variable NAMETRANS which has to be the @@ -131,7 +131,7 @@ exists a template filename like /etc/mtab#host=CREATE#. As soon as a process running on "mango" tries to create a file /etc/mtab, the version /etc/mtab#host=mango# is created instead (which appears in turn as hardlinked to /etc/mtab). Note that if you want to make /etc/fstab -context-dependend, you should execute "touch /etc/mtab#host=CREATE#" and +context-dependent, you should execute "touch /etc/mtab#host=CREATE#" and "touch /etc/mtab.tmp#host=CREATE#", because mount, umount and others running on different hosts would otherwise try to create one shared /etc/mtab which would result in a clash. Also one should execute @@ -155,11 +155,11 @@ or "make xconfig", just go to the section "filesystems". Take a look at the help texts that are associated with the transname options, they tell you further hints not mentioned in this README. Then build your kernel as usual, install it with a *new* kernel-filename, add a *new* entry to -/etc/lilo.conf and run lilo. **DONT CHANGE** any configuration files for the +/etc/lilo.conf and run lilo. **DON'T CHANGE** any configuration files for the first reboot! Just reboot the new kernel and play a little bit around with -creating context-dependend filenames in your home directory. +creating context-dependent filenames in your home directory. Try all modes including setting NAMETRANS to different values. As an example for the changes necessary on our LST-1.8-based Linux pool, @@ -247,7 +247,7 @@ where /usr/sbin/rpc.mountd has the contents #!/bin/sh exec /usr/bin/env - NAMETRANS= "`/usr/bin/env`" $0.notrans $* -Of course, that could be improved, but is a quick hack to get things work. +Of course, that could be improved, but is a quick hack to get things to work. Enjoy, diff --git a/Documentation/unicode.txt b/Documentation/unicode.txt index b9f44a6eb..61242c097 100644 --- a/Documentation/unicode.txt +++ b/Documentation/unicode.txt @@ -62,14 +62,14 @@ being a hacker-driven OS it seems this is a brilliant linguistic hack worth supporting. Hence I have chosen to add it to the list in the Linux Zone. -Several glyph forms for the Klingon alphabet has been proposed. +Several glyph forms for the Klingon alphabet have been proposed. However, since the set of symbols appear to be consistent throughout, with only the actual shapes being different, in keeping with standard Unicode practice these differences are considered font variants. Klingon has an alphabet of 26 characters, a positional numeric writing system with 10 digits, and is written left-to-right, top-to-bottom. -Punctuation appears to be only used in Latin transliteration; it is +Punctuation appears to be only used in Latin transliteration; it appears customary to write each sentence on its own line, and centered. Space has been reserved for punctuation should it prove necessary. |