Commit 25eaf06c authored by Linus Torvalds's avatar Linus Torvalds

Import 2.1.99pre2

parent 1b6d23c1
...@@ -68,12 +68,12 @@ magic-number.txt ...@@ -68,12 +68,12 @@ magic-number.txt
- list of magic numbers used to mark/protect kernel data structures. - list of magic numbers used to mark/protect kernel data structures.
mandatory.txt mandatory.txt
- info on the linux implementation of Sys V mandatory file locking. - 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 md.txt
- info on boot arguments for the multiple devices driver - info on boot arguments for the multiple devices driver
memory.txt memory.txt
- info on typical Linux memory problems. - info on typical Linux memory problems.
mca.txt
- info on supporting Micro Channel Architecture (e.g. PS/2) systems.
modules.txt modules.txt
- short guide on how to make kernel parts into loadable modules - short guide on how to make kernel parts into loadable modules
nbd.txt nbd.txt
...@@ -84,12 +84,14 @@ nfsroot.txt ...@@ -84,12 +84,14 @@ nfsroot.txt
- short guide on setting up a diskless box with NFS root filesystem - short guide on setting up a diskless box with NFS root filesystem
oops-tracing.txt oops-tracing.txt
- how to decode those nasty internal kernel error dump messages. - 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 paride.txt
- information about the parallel port IDE subsystem. - information about the parallel port IDE subsystem.
parport.txt parport.txt
- how to use the parallel-port driver. - 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/ powerpc/
- directory with info on using linux with the PowerPC. - directory with info on using linux with the PowerPC.
ramdisk.txt ramdisk.txt
...@@ -104,8 +106,12 @@ serial-console.txt ...@@ -104,8 +106,12 @@ serial-console.txt
- how to set up linux with a serial line console as the default. - how to set up linux with a serial line console as the default.
smart-config.txt smart-config.txt
- description of the Smart Config makefile feature. - description of the Smart Config makefile feature.
smp
- how to setup the kernel for SMP
smp.tex smp.tex
- TeX document describing implementation of Multiprocessor Linux - TeX document describing implementation of Multiprocessor Linux
sound/
- directory with info on sound card support
specialix.txt specialix.txt
- info on hardware/driver for specialix IO8+ multiport serial card. - info on hardware/driver for specialix IO8+ multiport serial card.
spinlocks.txt spinlocks.txt
...@@ -114,6 +120,10 @@ stallion.txt ...@@ -114,6 +120,10 @@ stallion.txt
- info on using the Stallion multiport serial driver. - info on using the Stallion multiport serial driver.
svga.txt svga.txt
- short guide on selecting video modes at boot via VGA BIOS. - 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 transname.txt
- how to use name translation to ease use of diskless systems. - how to use name translation to ease use of diskless systems.
unicode.txt unicode.txt
......
...@@ -89,12 +89,12 @@ Bug reports etc ...@@ -89,12 +89,12 @@ Bug reports etc
to linux@arm.uk.linux.org. Patches will not be included into future to linux@arm.uk.linux.org. Patches will not be included into future
kernels unless they come to me (or the relevant person concerned). 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 information, eg. the kernel messages that were printed before/during
the problem, what you were doing, etc. the problem, what you were doing, etc.
For patches, please include some explaination as to what the patch does For patches, please include some explanation as to what the patch does
and why (if relevent). and why (if relevant).
Modules Modules
------- -------
...@@ -153,7 +153,7 @@ ST506 hard drives ...@@ -153,7 +153,7 @@ ST506 hard drives
big external 5.25" FH 64MB drive (who could ever want more :-) ). 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 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 :-) last week :-)
Known bug: Drive data errors can cause a hang; including cases where Known bug: Drive data errors can cause a hang; including cases where
......
...@@ -43,7 +43,7 @@ running: ...@@ -43,7 +43,7 @@ running:
A) if your board is unlisted, then mail to linux-smp to get A) if your board is unlisted, then mail to linux-smp to get
it into either the white or the blacklist it into either the white or the blacklist
B) if your board is blacklisted, then figure out the apropriate 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: pirq= lines look like the following in /etc/lilo.conf:
...@@ -107,9 +107,9 @@ card (IRQ11) in Slot3, and have Slot1 empty: ...@@ -107,9 +107,9 @@ card (IRQ11) in Slot3, and have Slot1 empty:
slots.] slots.]
generally, it's always possible to find out the correct pirq= settings, just 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 '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 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 boards tend to have a good configuration and will be included in the
......
Kernel Support for miscellaneous (your favourite) Binary Formats v1.1 Kernel Support for miscellaneous (your favourite) Binary Formats v1.1
===================================================================== =====================================================================
This Kernel feature allows to invoke almost (for restrictions see below) every This Kernel feature allows you to invoke almost (for restrictions see below)
program by simply typing its name in the shell. every program by simply typing its name in the shell.
This includes for example compiled Java(TM), Python or Emacs programs. 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 To achieve this you must tell binfmt_misc which interpreter has to be invoked
...@@ -34,7 +34,7 @@ Here is what the fields mean: ...@@ -34,7 +34,7 @@ Here is what the fields mean:
There are some restrictions: There are some restrictions:
- the whole register string may not exceed 255 characters - 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 offset+size(magic) has to be less than 128
- the interpreter string may not exceed 127 characters - the interpreter string may not exceed 127 characters
......
...@@ -202,7 +202,7 @@ configured and mail me (see 6.) the appropriate information. ...@@ -202,7 +202,7 @@ configured and mail me (see 6.) the appropriate information.
5.1 MULTISESSION SUPPORT 5.1 MULTISESSION SUPPORT
Multisession support for CD's still is a myth. I implemented and tested a basic 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- 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 (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 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 will cause the ISO9660-filesystem to deal with multisession CDs, ie. redirect
...@@ -375,7 +375,7 @@ If this still does not help, ...@@ -375,7 +375,7 @@ If this still does not help,
the finite state machine in azt_poll(). The most important are the status 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 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 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 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 bits change accordingly. The status bits are the most likely point, where
the drive manufacturers may implement changes. the drive manufacturers may implement changes.
...@@ -400,7 +400,7 @@ following: ...@@ -400,7 +400,7 @@ following:
that the ACMD_SOFT_RESET is issued in any case, by substituting the that the ACMD_SOFT_RESET is issued in any case, by substituting the
if-statement 'if ( ...=AFL_OP_OK)' by 'if (1)'. 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. 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. 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 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 ...@@ -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 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 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- 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 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 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 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 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. 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 The code for all other drives was 'remote' tested and debugged by a number of
volunteers on the Internet. volunteers on the Internet.
...@@ -508,7 +508,7 @@ You have to set the correct permissions for cdplay *and* for /dev/mcd0 or ...@@ -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 /dev/aztcd0 in order to use it. Remember, that you should not have /dev/cdrom
mounted, when you're playing audio CDs. 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 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 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 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 ...@@ -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 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, 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 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 uninitialized 'wild' pointers etc., it is easy to write to other users' data
program areas, destroy kernel tables etc.. So if you experiment with ioctls 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 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 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 A reworked and improved version called 'cdtester.c', which has yet more
features for testing CDROM-drives can be found in features for testing CDROM-drives can be found in
......
This diff is collapsed.
...@@ -32,7 +32,7 @@ same card). They are not software compatible. ...@@ -32,7 +32,7 @@ same card). They are not software compatible.
Setting Up the Hardware 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 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 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 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 ...@@ -44,7 +44,7 @@ is, what interrupts are used, and possibly if you are on a PAS-16
soundcard. soundcard.
If you have the Sony CDU31A/CDU33A drive interface card, the following 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 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 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 address and interrupt you have set. Note that use of interrupts is
......
...@@ -14,7 +14,7 @@ Features since version 0.33 ...@@ -14,7 +14,7 @@ Features since version 0.33
- Full audio support, that is, both workman, workbone and cdp work - Full audio support, that is, both workman, workbone and cdp work
now reasonably. Reading TOC still takes some time. xmcd has been now reasonably. Reading TOC still takes some time. xmcd has been
reported to run successfully. 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 Features since version 0.28
--------------------------- ---------------------------
...@@ -37,8 +37,8 @@ options: ...@@ -37,8 +37,8 @@ options:
Further, you must decide if you are going to specify the base port 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 address and the interrupt request line of the adapter card cm260 as
boot options for (a), module parameters for (b), use automatic boot options for (a), module parameters for (b), use automatic
probing of these values, or hard-wire your adaptor cards settings probing of these values, or hard-wire your adaptor card's settings
into the source code. If you don't care, you can choose for 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 autoprobing, which is the default. In that case you can move on to
the next step. the next step.
...@@ -48,10 +48,10 @@ Compiling the kernel ...@@ -48,10 +48,10 @@ Compiling the kernel
make config 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. 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. and no (!) to CONFIG_CM206 and CONFIG_ISO9660_FS.
2) then do a 2) then do a
...@@ -64,7 +64,7 @@ Compiling the kernel ...@@ -64,7 +64,7 @@ Compiling the kernel
Using the driver as a module 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 option (b), install as a loadable module. You may have to re-compile
the module when you upgrade the kernel to a new version. the module when you upgrade the kernel to a new version.
...@@ -84,7 +84,7 @@ line to be used, e.g. ...@@ -84,7 +84,7 @@ line to be used, e.g.
insmod /usr/src/linux/modules/cm206.o cm206=0x300,11 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 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 may also have to install the file-system module `iso9660.o', if you
didn't compile that into the kernel. didn't compile that into the kernel.
...@@ -92,17 +92,17 @@ 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 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.: address and irq on the lilo boot command line, e.g.:
LILO: linux cm206=0x340,11 LILO: linux cm206=0x340,11
This assumes that your linux kernel image keyword is `linux'. 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 auto probing is turned off for both settings, thus setting the
other value to the compiled-in default. 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 # linux config
image = /vmlinuz image = /vmlinuz
...@@ -122,7 +122,7 @@ the defines of CM206_IRQ and CM206_BASE. ...@@ -122,7 +122,7 @@ the defines of CM206_IRQ and CM206_BASE.
Mounting the cdrom 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 mknod /dev/cm206cd b 32 0
...@@ -159,7 +159,7 @@ If things don't work ...@@ -159,7 +159,7 @@ If things don't work
DISCLAIMER DISCLAIMER
---------- ----------
I cannot guarantee that this driver works, or that the hardware will 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. I hope that you'll find this driver in some way useful.
......
Goldstar R420 CD-Rom device driver README Goldstar R420 CD-Rom device driver README
For all kind of other information about the GoldStar R420 CDROM 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 http://linux.rz.fh-hannover.de/~raupach
...@@ -44,12 +44,12 @@ Install your new kernel as usual - maybe you do it with 'make zlilo'. ...@@ -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 Before you can use the driver, you have to
mknod /dev/gscd0 b 16 0 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. If you use modules, you can try to insert the driver.
Say: 'insmod /usr/src/linux/modules/gscd.o' Say: 'insmod /usr/src/linux/modules/gscd.o'
or: 'insmod /usr/src/linux/modules/gscd.o gscd=<address>' 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' That's it! Mount a disk, i.e. 'mount -rt iso9660 /dev/gscd0 /cdrom'
......
...@@ -22,7 +22,7 @@ This driver provides the following features: ...@@ -22,7 +22,7 @@ This driver provides the following features:
- Reading from data tracks, and mounting iso9660 filesystems. - Reading from data tracks, and mounting iso9660 filesystems.
- Playing audio tracks. Most of the cdrom player programs floating - 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. - Multisession support.
...@@ -148,7 +148,7 @@ workbone, cdplayer, etc.). Lacking anything else, you could use the ...@@ -148,7 +148,7 @@ workbone, cdplayer, etc.). Lacking anything else, you could use the
cdtester program in Documentation/cdrom/sbpcd. cdtester program in Documentation/cdrom/sbpcd.
On a few drives, you can read digital audio directly using a program 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 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. use this function on a drive which does not support it.
...@@ -189,7 +189,7 @@ CDROM_NBLOCKS_BUFFER ...@@ -189,7 +189,7 @@ CDROM_NBLOCKS_BUFFER
ioctl. The default is 8. ioctl. The default is 8.
TEST 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 program to execute an arbitrary packet command. See the source for
details. This should be left off unless you know what you're doing. details. This should be left off unless you know what you're doing.
...@@ -271,7 +271,7 @@ b. Timeout/IRQ errors. ...@@ -271,7 +271,7 @@ b. Timeout/IRQ errors.
and 15 for the secondary (0x1f0) interface.) Also be sure that and 15 for the secondary (0x1f0) interface.) Also be sure that
you don't have some other hardware which might be conflicting with 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; 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 had one report of a system which was shipped with IRQ 15 disabled
by default. by default.
...@@ -282,7 +282,7 @@ b. Timeout/IRQ errors. ...@@ -282,7 +282,7 @@ b. Timeout/IRQ errors.
- If you own a Pioneer DR-A24X, you _will_ get nasty error messages - If you own a Pioneer DR-A24X, you _will_ get nasty error messages
on boot such as "irq timeout: status=0x50 { DriveReady SeekComplete }" on boot such as "irq timeout: status=0x50 { DriveReady SeekComplete }"
The Pioneer DR-A24X cdrom drives are fairly popular these days. 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, 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 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 adding `append="hdX=noprobe hdX=cdrom"' to your lilo.conf file and runing
...@@ -377,7 +377,7 @@ f. Data corruption. ...@@ -377,7 +377,7 @@ f. Data corruption.
/* /*
* cdchange.c [-v] <device> [<slot>] * 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 * information about the changer status. The drive should be unmounted before
* using this program. * using this program.
* *
......
...@@ -71,7 +71,7 @@ sound card configuration. ...@@ -71,7 +71,7 @@ sound card configuration.
The syntax of the command line does not allow the specification of The syntax of the command line does not allow the specification of
irq when there's nothing specified for the base address and no irq when there's nothing specified for the base address and no
specification of dma when there is no specification of irq. 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 non-integer option value (e.g. 'isp16=noisp16'), makes sure that probing
for and subsequent configuration of an ISP16-compatible card is skipped for and subsequent configuration of an ISP16-compatible card is skipped
all together. This can be useful to overcome possible conflicts which all together. This can be useful to overcome possible conflicts which
......
This is a first attempt to create an `improved' driver for the Mitsumi drives. 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 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, 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, this driver has to use its own device files. We use MAJOR 20 for it. So,
......
...@@ -4,7 +4,7 @@ CD-ROM driver for Linux. ...@@ -4,7 +4,7 @@ CD-ROM driver for Linux.
sbpcd really, really is NOT for ANY IDE/ATAPI drive! sbpcd really, really is NOT for ANY IDE/ATAPI drive!
Not even if you have an "original" SoundBlaster card with an IDE interface! 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. 0x170, 0x1E8, 0x168 or similar.
I get tons of mails from IDE/ATAPI drive users - I really can't continue 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 any more to answer them all. So, if your drive/interface information sheets
...@@ -18,7 +18,7 @@ LILO commands ...@@ -18,7 +18,7 @@ LILO commands
and get lucky. and get lucky.
To make it fully clear to you: if you mail me about IDE/ATAPI drive problems, 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 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 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, is NOT the new "Enhanced IDE" or "ATAPI" drive standard) Matsushita,
...@@ -29,13 +29,13 @@ CR-574 is an IDE/ATAPI drive. ...@@ -29,13 +29,13 @@ CR-574 is an IDE/ATAPI drive.
The Longshine LCS-7260 is a double-speed drive which uses the "old" The Longshine LCS-7260 is a double-speed drive which uses the "old"
Matsushita command set. It is supported - with help by Serge Robyns. Matsushita command set. It is supported - with help by Serge Robyns.
Vertos ("Elitegroup Computer Systems", ECS) has a similar drive - support 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. drive.
There exists an "IBM External ISA CD-ROM Drive" which in fact is a CR-563 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 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 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). a soundcard).
CreativeLabs has a new drive "CD200" and a similar drive "CD200F". The latter 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 ...@@ -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 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 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). 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 work; with the normal setup, the performance currently is not even as good as
double-speed. double-speed.
...@@ -63,7 +63,7 @@ and include an original log message excerpt, and try to give all information ...@@ -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 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 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 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). 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 ...@@ -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 If you have a sound card which needs a "configuration driver" instead of
jumpers for interface types and addresses (like Mozart cards) - those jumpers for interface types and addresses (like Mozart cards) - those
drivers get invoked before the DOS CDROM driver in your CONFIG.SYS, typical 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 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 are just for you!). Hannu Savolainen's mad16.c code is able to set up my
Mozart card - I simply had to add Mozart card - I simply had to add
...@@ -184,10 +184,10 @@ To install: ...@@ -184,10 +184,10 @@ To install:
1. Setup your hardware parameters. Though the driver does "auto-probing" at a 1. Setup your hardware parameters. Though the driver does "auto-probing" at a
lot of (not all possible!) addresses, this step is recommended for 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 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 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 a. Go into /usr/src/linux/drivers/cdrom/sbpcd.h and configure it for your
hardware (near the beginning): hardware (near the beginning):
...@@ -229,7 +229,7 @@ To install: ...@@ -229,7 +229,7 @@ To install:
second, third, or fourth controller installed, do not say "y" to the second, third, or fourth controller installed, do not say "y" to the
secondary Matsushita CD-ROM questions. 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 4. Make the device file(s). This step usually already has been done by the
MAKEDEV script. MAKEDEV script.
...@@ -242,7 +242,7 @@ To install: ...@@ -242,7 +242,7 @@ To install:
mknod /dev/sbpcd3 b 25 3 mknod /dev/sbpcd3 b 25 3
to make the node(s). 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, ... "next found" (at the same cable) gets MINOR 1, ...
For a second interface board, you have to make nodes like For a second interface board, you have to make nodes like
...@@ -297,21 +297,21 @@ No DMA and no IRQ is used. ...@@ -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 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"). 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. 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 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 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 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 directly "running from the CDROM" (like some of YGGDRASIL's installation
variants). There are CDs on the market (like the german "unifix" Linux variants). There are CDs on the market (like the german "unifix" Linux
distribution) which MUST get handled with a block_size of 1024. Generally, 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; one can say all the CDs which hold files of the name YMTRANS.TBL are defective;
do not use block=2048 with those. do not use block=2048 with those.
Within sbpcd.h, you will find some "#define"s (f.e. EJECT and JUKEBOX). With Within sbpcd.h, you will find some "#define"s (e.g. EJECT and JUKEBOX). With
that, you can configure the driver for some special things. these, you can configure the driver for some special things.
You can use the appended program "cdtester" to set the auto-eject feature 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) during runtime. Jeff Tranter's "eject" utility can do this, too (and more)
for you. for you.
...@@ -344,7 +344,7 @@ o.k., but you will get I/O errors during mount). In that case, use the "kernel ...@@ -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 command line" feature and specify address & type at boot time to find out the
right setup. 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. will stop the auto-probing due to success with the first try.
The kernel command "sbpcd=0" suppresses each auto-probing and causes 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 ...@@ -373,7 +373,7 @@ Almost all of the "SoundBlaster compatible" cards behave like the no-sound
interfaces, i.e. need SBPRO 0! interfaces, i.e. need SBPRO 0!
With "original" SB Pro cards, an initial setting of CD_volume through the 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", 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... 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 ...@@ -385,8 +385,8 @@ Workman, WorkBone, xcdplayer, cdplayer and the nice little tool "cdplay" (see
README.aztcd from the Aztech driver package) should work. README.aztcd from the Aztech driver package) should work.
The program CDplayer likes to talk to "/dev/mcd" only, xcdplayer wants 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 "/dev/rsr0", workman loves "/dev/sr0" or "/dev/cdrom" - so, make the
links for using them without the need of supplying parameters. appropriate links to use them without the need to supply parameters.
Copying audio tracks: Copying audio tracks:
......
-- Documentation/cdrom/sjcd -- Documentation/cdrom/sjcd
80% of the work takes 20% of the time, 80% of the work takes 20% of the time,
20% of the work takes 80% of the time... 20% of the work takes 80% of the time...
(Murphy law) (Murphy's law)
Once started, training can not be stopped... Once started, training can not be stopped...
(StarWars) (Star Wars)
This is the README for the sjcd cdrom driver, version 1.6. 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. ;-) ...@@ -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. 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 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, 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. 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 This initialisation module will probably also work with other interfaces
......
...@@ -35,7 +35,7 @@ REQUIREMENTS ...@@ -35,7 +35,7 @@ REQUIREMENTS
- Drive must be set up as unit 1. Only the first unit will be - Drive must be set up as unit 1. Only the first unit will be
recognized 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 /usr/src/linux/drivers/cdrom/sonycd535.h and build the
appropriate kernel or use the "kernel command line" parameter appropriate kernel or use the "kernel command line" parameter
sonycd535=0x320 sonycd535=0x320
......
...@@ -1148,11 +1148,11 @@ MAJOR NUMBER 42 IS NONCOMPLIANT. ...@@ -1148,11 +1148,11 @@ MAJOR NUMBER 42 IS NONCOMPLIANT.
\end{devicelist} \end{devicelist}
\noindent \noindent
Network Block Device is somehow similar to loopback devices: If you Network Block Device is somewhat similar to the loopback device: if you
read from it, it sends packet accross network asking server for read from it, it sends packets across the network asking a server for
data. If you write to it, it sends packet telling server to write. It data. If you write to it, it sends packets telling the server to write. It
could be used to mounting filesystems over the net, swapping over the could be used for mounting filesystems over the net, swapping over the
net, implementing block device in userland etc. net, implementing block devices in userland etc.
\begin{devicelist} \begin{devicelist}
\major{44}{}{char }{isdn4linux virtual modem -- alternate devices} \major{44}{}{char }{isdn4linux virtual modem -- alternate devices}
...@@ -1283,7 +1283,7 @@ microcontrollers} ...@@ -1283,7 +1283,7 @@ microcontrollers}
\end{devicelist} \end{devicelist}
\noindent \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 microcontrollers via Background Debug Mode by use of a Parallel Port
interface. PD is the Motorola Public Domain Interface and ICD is the interface. PD is the Motorola Public Domain Interface and ICD is the
commercial interface by P\&E. commercial interface by P\&E.
...@@ -1832,7 +1832,7 @@ virtual console such as {\file /dev/tty1}, or to a serial port primary ...@@ -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 Serial ports are RS-232 serial ports and any device which simulates
one, either in hardware (such as internal modems) or in software (such 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. names, the primary or callin device and the alternate or callout one.
Each kind of device is indicated by a different letter. For any 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 letter $X$, the names of the devices are {\file /dev/tty${X\#}$} and
......
...@@ -5,18 +5,18 @@ The Digiboard Driver for Linux supports the following boards: ...@@ -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 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 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. 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 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 runnning it on other architectures than intel, email me, so I can document
it here. 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 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 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 useable on other architectures than intel now. 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 It is available from ftp.digi.com/ftp.digiboard.com. You can write me if
you need an patch for this driver. you need an patch for this driver.
...@@ -25,7 +25,7 @@ you need an patch for this driver. ...@@ -25,7 +25,7 @@ you need an patch for this driver.
Configuring the 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 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, loading the kernel with LILO or LOADLIN or, if built as a module,
with arguments to insmod and modprobe or with parameters in with arguments to insmod and modprobe or with parameters in
...@@ -66,14 +66,14 @@ io - I/O port address of that card. ...@@ -66,14 +66,14 @@ io - I/O port address of that card.
membase - Memory start address of that card. membase - Memory start address of that card.
memsize - Memory size of that card, in kilobytes. If given, this value memsize - Memory size of that card, in kilobytes. If given, this value
is compared against the card to verify configuration and 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. 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 numports - Number of ports on this card. This is the number of devices to
assign to this card or reserve if disabled. assign to this card or reserve if disabled.
altpin - 1: swap DCD and DSR for 8-pin RJ-45 with modems. altpin - 1: swap DCD and DSR for 8-pin RJ-45 with modems.
0: don't swap DCD and DSR. 0: don't swap DCD and DSR.
other values count as 1. 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. possibly helpful during board configuration.
0: normal terse output. 0: normal terse output.
...@@ -82,19 +82,19 @@ If the io= parameter is not given, the default config is used. This is ...@@ -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 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 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 0x120, memory at 0xD80000, altpin enabled, rest defaults, you can do this
by using these parameters: by using these parameters:
modprobe pcxx io=0x200,0x120 numports=8,8 membase=,0xD80000 altpin=,1 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: devices following that board, you can empty the io-value for that board:
modprobe pcxx io=,0x120 numports=8,8 membase=,0xD80000 altpin=,1 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 Example line for /etc/conf.modules for use with kerneld and as default
parameters for modprobe: parameters for modprobe:
...@@ -120,7 +120,7 @@ Card status: Enable - use that board ...@@ -120,7 +120,7 @@ Card status: Enable - use that board
Card type: PC/Xi - the old ones with 64/128/256/512K RAM. Card type: PC/Xi - the old ones with 64/128/256/512K RAM.
PC/Xe - PC/Xe(old ones with 64k mem range). 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. 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 ...@@ -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. 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 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 Sources of Information
...@@ -274,7 +275,7 @@ Samples: ...@@ -274,7 +275,7 @@ Samples:
append="digi=E,PC/Xi,D,16,200,D0000" append="digi=E,PC/Xi,D,16,200,D0000"
append="digi=1,0,0,16,512,(whatever D0000 is in base 10 :) 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 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 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. system with 4 2-port PC/Xi boards will use minor numbers 0-7.
......
...@@ -9,7 +9,7 @@ In older versions of Linux this was done with the ...@@ -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) int verify_area(int type, const void * addr, unsigned long size)
function. 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 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 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 virtual memory area (vma) that contained the address addr. In the
...@@ -53,7 +53,7 @@ Where does fixup point to? ...@@ -53,7 +53,7 @@ Where does fixup point to?
Since we jump to the the contents of fixup, fixup obviously points Since we jump to the the contents of fixup, fixup obviously points
to executable code. This code is hidden inside the user access macros. 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 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 code generated by the preprocessor and the compiler. I selected
the get_user call in drivers/char/console.c for a detailed examination. 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): ...@@ -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: see what code gcc generates:
> xorl %edx,%edx > xorl %edx,%edx
...@@ -266,7 +266,7 @@ vma occurs? ...@@ -266,7 +266,7 @@ vma occurs?
3.) CPU calls do_page_fault 3.) CPU calls do_page_fault
4.) do page fault calls search_exception_table (regs->eip == c017e7a5); 4.) do page fault calls search_exception_table (regs->eip == c017e7a5);
5.) search_exception_table looks up the address c017e7a5 in the 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. 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 6.) do_page_fault modifies its own return address to point to the fault
handle code and returns. handle code and returns.
...@@ -278,7 +278,7 @@ vma occurs? ...@@ -278,7 +278,7 @@ vma occurs?
The steps 8a to 8c in a certain way emulate the faulting instruction. 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 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 get_user macro actually returns a value: 0, if the user access was
successful, -EFAULT on failure. Our original code did not test this successful, -EFAULT on failure. Our original code did not test this
......
...@@ -2,12 +2,19 @@ ...@@ -2,12 +2,19 @@
- this file (info on some of the filesystems supported by linux). - this file (info on some of the filesystems supported by linux).
affs.txt affs.txt
- info and mount options for the Amiga Fast File System. - 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 hpfs.txt
- info and mount options for the OS/2 HPFS. - info and mount options for the OS/2 HPFS.
isofs.txt isofs.txt
- info and mount options for the ISO9660 (CDROM) filesystem. - info and mount options for the ISO9660 (CDROM) filesystem.
ncpfs.txt ncpfs.txt
- info on Novell Netware(tm) filesystem using NCP protocol. - info on Novell Netware(tm) filesystem using NCP protocol.
ntfs.txt
- info and mount options for the NTFS filesystem (Win NT).
romfs.txt romfs.txt
- Description of the ROMFS filesystem. - Description of the ROMFS filesystem.
smbfs.txt smbfs.txt
...@@ -18,3 +25,5 @@ umsdos.txt ...@@ -18,3 +25,5 @@ umsdos.txt
- info on the umsdos extensions to the msdos filesystem. - info on the umsdos extensions to the msdos filesystem.
vfat.txt vfat.txt
- info on using the VFAT filesystem used in Win NT and Win 95 - info on using the VFAT filesystem used in Win NT and Win 95
vfs.txt
- Overview of the Virtual File System
...@@ -120,8 +120,8 @@ Symbolic links ...@@ -120,8 +120,8 @@ Symbolic links
Although the Amiga and Linux file systems resemble each other, there Although the Amiga and Linux file systems resemble each other, there
are some, not always subtle, differences. One of them becomes apparent are some, not always subtle, differences. One of them becomes apparent
with symbolic links. While Linux has a file system with exactly one with symbolic links. While Linux has a file system with exactly one
root directory, the Amiga has a seperate root directory for each root directory, the Amiga has a separate root directory for each
file system (i. e. partition, floppy disk, ...). With the Amiga, file system (e.g. partition, floppy disk, ...). With the Amiga,
these entities are called "volumes". They have symbolic names which these entities are called "volumes". They have symbolic names which
can be used to access them. Thus, symbolic links can point to a can be used to access them. Thus, symbolic links can point to a
different volume. AFFS turns the volume name into a directory name different volume. AFFS turns the volume name into a directory name
...@@ -156,7 +156,7 @@ fs/affs/Changes. ...@@ -156,7 +156,7 @@ fs/affs/Changes.
Filenames are truncated to 30 characters without warning (this Filenames are truncated to 30 characters without warning (this
can be changed by setting the compile-time option AFFS_NO_TRUNCATE 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 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): do care about the case. Example (with /mnt being an affs mounted fs):
......
This diff is collapsed.
...@@ -34,7 +34,7 @@ like compression and decompression silently. ...@@ -34,7 +34,7 @@ like compression and decompression silently.
- BMAP problems - 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). all actions that require bmap do not work (swapping, writable mmapping).
Read-only mmapping works because the FAT driver has a hack for this Read-only mmapping works because the FAT driver has a hack for this
situation :) Well, with some tricks writable mmapping could work, situation :) Well, with some tricks writable mmapping could work,
...@@ -66,7 +66,7 @@ driver's standard options: ...@@ -66,7 +66,7 @@ driver's standard options:
cvf_format=xxx cvf_format=xxx
Forces the driver to use the CVF module "xxx" instead of auto-detection. 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 because of bugs or incompatibilities in the CVF modules. (It skips
the detect_cvf call.) "xxx" may be the text "none" (without the quotes) 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 to inhibit using any of the loaded CVF modules, just in case a CVF
...@@ -80,7 +80,7 @@ driver's standard options: ...@@ -80,7 +80,7 @@ driver's standard options:
misinterpretation by the FAT driver, which would recognize the text misinterpretation by the FAT driver, which would recognize the text
after a comma as a FAT driver option and might get confused or print after a comma as a FAT driver option and might get confused or print
strange error messages. The documentation for the CVF module should 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". is only valid inside the string "yyy".
...@@ -109,11 +109,11 @@ to introduce the module to the FAT/CVF-FAT driver. ...@@ -109,11 +109,11 @@ to introduce the module to the FAT/CVF-FAT driver.
It contains... It contains...
- cvf_version: - cvf_version:
A version id which must be uniqe. Choose one. A version id which must be unique. Choose one.
- cvf_version_text: - cvf_version_text:
A human readable version string that should be one short word A human readable version string that should be one short word
describing the CVF format the module implements. This text is used 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: - flags:
Bit coded flags, currently only used for a readpage/mmap hack that Bit coded flags, currently only used for a readpage/mmap hack that
provides both mmap and readpage functionality. If CVF_USE_READPAGE provides both mmap and readpage functionality. If CVF_USE_READPAGE
...@@ -178,7 +178,7 @@ int unregister_cvf_format(struct cvf_format*cvf_format); ...@@ -178,7 +178,7 @@ int unregister_cvf_format(struct cvf_format*cvf_format);
This is usually called in cleanup_module. Return value =0 means This is usually called in cleanup_module. Return value =0 means
success. An error only occurs if you try to unregister a CVF format 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 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 5. CVS Modules
------------------------------------------------------------------------------ ------------------------------------------------------------------------------
......
...@@ -5,9 +5,9 @@ To mount an NTFS volume, use the filesystem type 'ntfs'. The driver ...@@ -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 currently works only in read-only mode, with no fault-tolerance
supported. If you enable the experimental write support, make sure supported. If you enable the experimental write support, make sure
you can recover from a complete loss of data. For ftdisk support, 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 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: The ntfs driver supports the following mount options:
iocharset=name Character set to use when returning file names. iocharset=name Character set to use when returning file names.
......
...@@ -22,7 +22,7 @@ genromfs. It is available via anonymous ftp on sunsite.unc.edu and ...@@ -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. its mirrors, in the /pub/Linux/system/recovery/ directory.
As the name suggests, romfs could be also used (space-efficiently) on 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.. :) motivation.. :)
However, the main purpose of romfs is to have a very small kernel, 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 ...@@ -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 inspector. After that, in the 3rd longword, it contains the number of
bytes accessible from the start of this filesystem. The 4th longword bytes accessible from the start of this filesystem. The 4th longword
is the checksum of the first 512 bytes (or the number of bytes 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 as in the AFFS filesystem, namely a simple sum of the longwords
(assuming bigendian quantities again). For details, please consult (assuming bigendian quantities again). For details, please consult
the source. This algorithm was chosen because although it's not quite the source. This algorithm was chosen because although it's not quite
......
...@@ -14,13 +14,13 @@ one into a useful one. ...@@ -14,13 +14,13 @@ one into a useful one.
It gives you: It gives you:
long file name long file names
Permissions and owner Permissions and owners
Links Links
Special files (devices, pipe...) Special files (devices, pipes...)
All is need to be a linux root fs. 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 made from those comments is available from
sunsite.unc.edu:/pub/Linux/system/Filesystems/umsdos. sunsite.unc.edu:/pub/Linux/system/Filesystems/umsdos.
...@@ -32,21 +32,21 @@ mount -t umsdos /dev/hda3 /mnt ...@@ -32,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. given to msdos.
The default behavior of Umsdos is to do the same thing as the msdos driver 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 mostly passing commands to it without much processing. Again, this is
the default. After doing the mount on a DOS partition, nothing special 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. which can't be handle by the normal MsDOS file system. This is the trick.
--linux-.--- is optional. There is one per directory. --linux-.--- is optional. There is one per directory.
**** If --linux-.--- is missing, then Umsdos process the directory the **** 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 owner and permissions. So each directory may have or not this
--linux-.--- --linux-.---
...@@ -59,7 +59,7 @@ Now, how to get those --linux-.---. ...@@ -59,7 +59,7 @@ Now, how to get those --linux-.---.
$5 per directory. Add any applicable taxes. $5 per directory. Add any applicable taxes.
\end joke_section \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. 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. A compiled version is available in umsdos_progs-0.7.bin.tar.gz.
...@@ -69,20 +69,20 @@ umssync . ...@@ -69,20 +69,20 @@ umssync .
This will promote this directory (a recursive option is available) to full 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 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: you can do all this:
chmod 644 * chmod 644 *
chown you.your_groupe * chown you.your_group *
ls >THIS_IS.A.VERY.LONG.NAME ls >THIS_IS.A.VERY.LONG.NAME
ln -s toto tata ln -s toto tata
ls -l 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. promotion.
What happen if you boot DOS and create files in those promoted directories ? What happens 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). 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 Using umssync in /etc/rc will make sure the DOS directory is in sync with
the --linux-.---. the --linux-.---.
...@@ -95,8 +95,8 @@ after the "mount -a": ...@@ -95,8 +95,8 @@ after the "mount -a":
(You put one for each umsdos mount point in the fstab) (You put one for each umsdos mount point in the fstab)
This will insure nice operation. A umsdos.fsck is in the making, 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 so you will be allowed to manage umsdos partitions in the same way
other filesystem are, using the generic fsck front end. other filesystems are, using the generic fsck front end.
Hope this helps! Hope this helps!
...@@ -71,7 +71,7 @@ POSSIBLE PROBLEMS ...@@ -71,7 +71,7 @@ POSSIBLE PROBLEMS
* vfat_valid_longname does not properly checked reserved names. * vfat_valid_longname does not properly checked reserved names.
* When a volume name is the same as a directory name in the root * When a volume name is the same as a directory name in the root
directory of the filesystem, the directory name sometimes shows 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. * autoconv option does not work correctly.
BUG REPORTS BUG REPORTS
...@@ -103,7 +103,7 @@ but it appears to be so. ...@@ -103,7 +103,7 @@ but it appears to be so.
The extended FAT file system is almost identical to the FAT The extended FAT file system is almost identical to the FAT
file system used in DOS versions up to and including 6.223410239847 file system used in DOS versions up to and including 6.223410239847
:-). The significant change has been the addition of long file names. :-). 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. case characters as opposed to the traditional 8.3 short names.
Here is the description of the traditional FAT entry in the current 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 ...@@ -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 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 entries.) I call these extra entries slots. Basically, a slot is a
specially formatted directory entry which holds up to 13 characters of 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 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 prefers to refer to the 8.3 entry for a file as its alias and the
extended slot directory entries as the file name. extended slot directory entries as the file name.
...@@ -163,7 +163,7 @@ The C structure for a slot directory entry follows: ...@@ -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 If the layout of the slots looks a little odd, it's only
because of Microsoft's efforts to maintain compatibility with old because of Microsoft's efforts to maintain compatibility with old
software. The slots must be disguised to prevent old software from 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 1) The attribute byte for a slot directory entry is always set
to 0x0f. This corresponds to an old directory entry with to 0x0f. This corresponds to an old directory entry with
...@@ -206,9 +206,9 @@ the following: ...@@ -206,9 +206,9 @@ the following:
sum = (((sum&1)<<7)|((sum&0xfe)>>1)) + name[i] sum = (((sum&1)<<7)|((sum&0xfe)>>1)) + name[i]
} }
3) If there is in the final slot, a Unicode NULL (0x0000) is stored 3) If there is free space in the final slot, a Unicode NULL (0x0000)
after the final character. After that, all unused characters in is stored after the final character. After that, all unused
the final slot are set to Unicode 0xFFFF. characters in the final slot are set to Unicode 0xFFFF.
Finally, note that the extended name is stored in Unicode. Each Unicode Finally, note that the extended name is stored in Unicode. Each Unicode
character takes two bytes. character takes two bytes.
...@@ -5,7 +5,7 @@ A Brief Overview of the Virtual File System ...@@ -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 Noone else seems to be writing this, so here's a quick description of what
I've learned while writing lofs... 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. 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 Hopefully this helps anyone attempting such a feat, as well as clearing up
a few important points/dependencies. a few important points/dependencies.
...@@ -133,9 +133,9 @@ struct inode_operations ...@@ -133,9 +133,9 @@ struct inode_operations
int (*follow_link) (struct inode *,struct inode *,int,int,struct inode **); int (*follow_link) (struct inode *,struct inode *,int,int,struct inode **);
[optional] [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 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! I threw this one out - too much redundant code!
int (*readpage) (struct inode *, struct page *); [optional] int (*readpage) (struct inode *, struct page *); [optional]
......
...@@ -6,7 +6,7 @@ floppy tape device driver that comes with the Linux kernel. This ...@@ -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 document deals with ftape-3.04 and later. Please read the section
"Changes" for the most striking differences between version 3.04 and "Changes" for the most striking differences between version 3.04 and
2.08; the latter was the version of ftape delivered with the kernel 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 re-unification of ftape-2.x and zftape. zftape was developed in
parallel with the stock ftape-2.x driver sharing the same hardware parallel with the stock ftape-2.x driver sharing the same hardware
support but providing an enhanced file system interface. zftape also support but providing an enhanced file system interface. zftape also
...@@ -54,7 +54,7 @@ A minus 1. Ftape documentation ...@@ -54,7 +54,7 @@ A minus 1. Ftape documentation
============================== ==============================
Unluckily, the ftape-HOWTO is out of date. This really needs to be 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 versions of ftape and useful links to related topics can be found at
the ftape home page at the ftape home page at
...@@ -245,7 +245,7 @@ C. Boot and load time configuration ...@@ -245,7 +245,7 @@ C. Boot and load time configuration
insmod ftape.o ft_tracing=4 insmod ftape.o ft_tracing=4
or by editing the file `/etc/conf.modules' in which case they take 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 refer to the modules documentation, i.e. `modules.txt' and the
respective manual pages). Thus, you should add a line respective manual pages). Thus, you should add a line
......
...@@ -51,7 +51,7 @@ be specified by using the irq= option. The format is: ...@@ -51,7 +51,7 @@ be specified by using the irq= option. The format is:
irq=[0x100],[0x140],[0x180],[0x200],[0x240],[0x280],[0x300],[0x380] irq=[0x100],[0x140],[0x180],[0x200],[0x240],[0x280],[0x300],[0x380]
The address in brackets is the base address of the card. The IRQ of 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 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: the IRQ of the card at address 0x300 to 12, the insmod command would be:
......
...@@ -221,7 +221,7 @@ If you always get timeout errors, interrupts from the drive are probably ...@@ -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 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 and make sure it matches what the driver expects (see the configuration
instructions above). If you have a PCI system, also check the BIOS 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. disabled by the BIOS.
The kernel is able to execute binaries directly off of the cdrom, The kernel is able to execute binaries directly off of the cdrom,
......
...@@ -53,7 +53,7 @@ Description of the Interface between Linklevel and Hardwarelevel ...@@ -53,7 +53,7 @@ Description of the Interface between Linklevel and Hardwarelevel
***CHANGE0.6: New since this version. ***CHANGE0.6: New since this version.
Also to be preset by the HL-driver. With this value the HL-driver 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; unsigned long features;
...@@ -70,8 +70,8 @@ Description of the Interface between Linklevel and Hardwarelevel ...@@ -70,8 +70,8 @@ Description of the Interface between Linklevel and Hardwarelevel
***CHANGE0.7.4: New field. ***CHANGE0.7.4: New field.
To be preset by the HL-driver, if it supports sk_buff's. The driver 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 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 its internal purposes. Drivers not supporting sk_buff's should
initialize this field to 0. initialize this field to 0.
void (*rcvcallb_skb)(int, int, struct sk_buff *) void (*rcvcallb_skb)(int, int, struct sk_buff *)
...@@ -211,7 +211,7 @@ Description of the Interface between Linklevel and Hardwarelevel ...@@ -211,7 +211,7 @@ Description of the Interface between Linklevel and Hardwarelevel
All commands will be performed by calling the function command() described All commands will be performed by calling the function command() described
above from within the LL. The field command of the struct-parameter will 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. appropriate driver-Id.
Until now, the following commands are defined: Until now, the following commands are defined:
...@@ -436,7 +436,7 @@ Description of the Interface between Linklevel and Hardwarelevel ...@@ -436,7 +436,7 @@ Description of the Interface between Linklevel and Hardwarelevel
arg = unused. arg = unused.
para = 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 All status-changes are signaled via calling the previously described
function statcallb(). The field command of the struct isdn_cmd has function statcallb(). The field command of the struct isdn_cmd has
...@@ -520,7 +520,7 @@ Description of the Interface between Linklevel and Hardwarelevel ...@@ -520,7 +520,7 @@ Description of the Interface between Linklevel and Hardwarelevel
remote-station has initiated establishment) remote-station has initiated establishment)
The HL driver should call this when the logical l2/l3 protocol The HL driver should call this when the logical l2/l3 protocol
connection on top of the physical B-channel is esatblished . connection on top of the physical B-channel is established.
Parameter: Parameter:
driver = driver-Id driver = driver-Id
...@@ -624,7 +624,7 @@ Description of the Interface between Linklevel and Hardwarelevel ...@@ -624,7 +624,7 @@ Description of the Interface between Linklevel and Hardwarelevel
With this call, the HL-driver delivers CAUSE-messages to the LL. With this call, the HL-driver delivers CAUSE-messages to the LL.
Currently the LL does not use this messages. Their contents is simply Currently the LL does not use this messages. Their contents is simply
logged via kernel-messages. Therefore, currently the format of the 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: Parameter:
driver = driver-Id driver = driver-Id
......
...@@ -62,7 +62,7 @@ README for the ISDN-subsystem ...@@ -62,7 +62,7 @@ README for the ISDN-subsystem
read: raw D-channel-messages (format: depends on driver). read: raw D-channel-messages (format: depends on driver).
ioctl: depends on driver, i.e. for the ICN-driver, the base-address of 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 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. the card.
O N L Y !!! for debugging (no locking against other devices): O N L Y !!! for debugging (no locking against other devices):
...@@ -74,7 +74,7 @@ README for the ISDN-subsystem ...@@ -74,7 +74,7 @@ README for the ISDN-subsystem
128 tty-devices (64 cuix and 64 ttyIx) with integrated modem-emulator: 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 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 SLIP, CSLIP and asynchronous PPP through the devices. We have tested
Seyon, minicom, CSLIP (uri-dip) PPP and mgetty (compiled with NO_FAX), Seyon, minicom, CSLIP (uri-dip) PPP and mgetty (compiled with NO_FAX),
XCept. XCept.
...@@ -96,7 +96,7 @@ README for the ISDN-subsystem ...@@ -96,7 +96,7 @@ README for the ISDN-subsystem
ATI Return "ISDN for Linux...". ATI Return "ISDN for Linux...".
ATI0 " ATI0 "
ATI1 " ATI1 "
ATI2 Report of last connection. ATI2 Report of last connection.
ATO On line (data mode). ATO On line (data mode).
ATQ0 Enable result codes (default). ATQ0 Enable result codes (default).
ATQ1 Disable result codes (default). ATQ1 Disable result codes (default).
...@@ -107,9 +107,9 @@ README for the ISDN-subsystem ...@@ -107,9 +107,9 @@ README for the ISDN-subsystem
ATZ Load registers and EAZ/MSN from Profile. ATZ Load registers and EAZ/MSN from Profile.
AT&Bx Set Send-Packet-size to x (max. 4000) AT&Bx Set Send-Packet-size to x (max. 4000)
The real packet-size may be limited by the 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, 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 time of giving this command the corresponding
driver may not be selected (see "Automatic driver may not be selected (see "Automatic
Assignment") however the size of outgoing packets Assignment") however the size of outgoing packets
...@@ -245,7 +245,7 @@ README for the ISDN-subsystem ...@@ -245,7 +245,7 @@ README for the ISDN-subsystem
19 0 Service-Octet-2 19 0 Service-Octet-2
20 0 Bit coded register (readonly) 20 0 Bit coded register (readonly)
Service-Octet-1 of last call. 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) 21 0 Bit coded register (readonly)
Set on incoming call (during RING) to Set on incoming call (during RING) to
octet 3 of calling party number IE (Numbering plan) octet 3 of calling party number IE (Numbering plan)
...@@ -263,17 +263,17 @@ README for the ISDN-subsystem ...@@ -263,17 +263,17 @@ README for the ISDN-subsystem
All inactive physical lines are listening to all EAZs for incoming All inactive physical lines are listening to all EAZs for incoming
calls and are NOT assigned to a specific tty or network interface. 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 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. 1. is configured for the same EAZ.
2. has the same protocol settings for the B-channel. 2. has the same protocol settings for the B-channel.
3. (only for network interfaces if the security flag is set) 3. (only for network interfaces if the security flag is set)
contains the caller number in its access list. contains the caller number in its access list.
4. Either the channel is not bound exclusively to another Net-interface, or 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) (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 and the "connection" between the low-level-layer and the link-level-layer
is established and kept until the end of the connection. is established and kept until the end of the connection.
In all other cases no connection is established. Isdn4linux can be In all other cases no connection is established. Isdn4linux can be
...@@ -309,7 +309,7 @@ README for the ISDN-subsystem ...@@ -309,7 +309,7 @@ README for the ISDN-subsystem
4. Device-inodes 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: Documentation/devices.txt. The major-numbers are:
43 for the ISDN-tty's. 43 for the ISDN-tty's.
...@@ -357,7 +357,7 @@ README for the ISDN-subsystem ...@@ -357,7 +357,7 @@ README for the ISDN-subsystem
i) Setup the interface with ifconfig as usual, and set a route to it. 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 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 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 do that. There are other tty-based tools in the tools-subdirectory
...@@ -399,7 +399,7 @@ README for the ISDN-subsystem ...@@ -399,7 +399,7 @@ README for the ISDN-subsystem
"isdnctrl secure <InterfaceName> off" "isdnctrl secure <InterfaceName> off"
Switch of secure operation (default). Switch off secure operation (default).
"isdnctrl ihup <InterfaceName> [on|off]" "isdnctrl ihup <InterfaceName> [on|off]"
Switch the hang-up-timer for incoming calls on or off. Switch the hang-up-timer for incoming calls on or off.
...@@ -434,15 +434,15 @@ README for the ISDN-subsystem ...@@ -434,15 +434,15 @@ README for the ISDN-subsystem
Selects the type of packet-encapsulation. The encapsulation can be changed Selects the type of packet-encapsulation. The encapsulation can be changed
only while an interface is down. 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 rawip (Default) Selects raw-IP-encapsulation. This means, MAC-headers
are stripped off. are stripped off.
ip IP with type-field. Same as IP but the type-field of the MAC-header ip IP with type-field. Same as IP but the type-field of the MAC-header
is preserved. is preserved.
x25iface x25 interface encapsulation (first byte semantics as defined in x25iface X.25 interface encapsulation (first byte semantics as defined in
../networking/x25-iface.txt). Use this for running the linux ../networking/x25-iface.txt). Use this for running the linux
x25 network protocol stack (AF_X25 sockets) on top of isdn. 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 cisco-h A special-mode for communicating with a Cisco, which is configured
to do "hdlc" to do "hdlc"
ethernet No stripping. Packets are sent with full MAC-header. ethernet No stripping. Packets are sent with full MAC-header.
...@@ -483,7 +483,7 @@ README for the ISDN-subsystem ...@@ -483,7 +483,7 @@ README for the ISDN-subsystem
dial out using a specific Card or even preserve a specific Channel for 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 Dialout of a specific net-interface. This can be done with the above
command. Replace <DriverId> by whatever you assigned while loading the 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 depends on the card used. At the Moment no card supports more than
2 Channels, so the upper limit is one. 2 Channels, so the upper limit is one.
......
...@@ -66,7 +66,7 @@ It can be configured using the command line feature while loading the kernel ...@@ -66,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 with LILO or LOADLIN or, if built as a module, using insmod/modprobe with
parameters. parameters.
There is also some config needed before you compile the kernel and/or 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. 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 Please note: All PnP cards need to be configured with isapnp and will work
...@@ -152,7 +152,7 @@ Card types: ...@@ -152,7 +152,7 @@ Card types:
At the moment IRQ sharing is not possible. Please make sure that your IRQ At the moment IRQ sharing is not possible. Please make sure that your IRQ
is free and enabled for ISA use. is free and enabled for ISA use.
Note: For using the ELSA PCMCIA you need the cardmanager under MSDOS for 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 Examples for module loading
...@@ -272,7 +272,7 @@ At the moment, debugging messages are enabled with the hisaxctrl tool: ...@@ -272,7 +272,7 @@ At the moment, debugging messages are enabled with the hisaxctrl tool:
hisaxctrl <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 DebugCmd is 1 for generic debugging
11 for layer 1 development debugging 11 for layer 1 development debugging
...@@ -309,18 +309,18 @@ With DebugCmd set to 11: ...@@ -309,18 +309,18 @@ With DebugCmd set to 11:
With DebugCmd set to 13: With DebugCmd set to 13:
1 Warnings (default: on) 1 Warnings (default: on)
2 l3 protocol discriptor errors 2 l3 protocol descriptor errors
4 l3 state machine 4 l3 state machine
8 charge info debugging (1TR6) 8 charge info debugging (1TR6)
For example, 'hisaxctrl 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 Because of some obscure problems with some switch equipment, the delay
between CONNECT message and sending the first data on th B-channel is now between the CONNECT message and sending the first data on the B-channel is now
configurable with configurable with
hisaxctrl <DriverId> 2 <delay> hisaxctrl <DriverId> 2 <delay>
<delay> in ms Value between 50 an 800 ms are recommended. <delay> in ms Value between 50 and 800 ms is recommended.
Warning Warning
...@@ -389,7 +389,7 @@ Original from Juergen Quade, new version KKe. ...@@ -389,7 +389,7 @@ Original from Juergen Quade, new version KKe.
Attention NEW VERSION, the old leased line syntax won't work !!! 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 You can use HiSax to connect your Linux-Box via an ISDN leased line
to i.e. the internet: to e.g. the Internet:
1. Build a kernel which includes the HiSax driver either as a module 1. Build a kernel which includes the HiSax driver either as a module
or as part of the kernel. or as part of the kernel.
...@@ -407,7 +407,7 @@ to i.e. the internet: ...@@ -407,7 +407,7 @@ to i.e. the internet:
vi /etc/lilo.conf vi /etc/lilo.conf
<add HiSax driver parameter in the global section (see below)> <add HiSax driver parameter in the global section (see below)>
lilo lilo
Your lilo.conf _might_ look as the following: Your lilo.conf _might_ look like the following:
# LILO configuration-file # LILO configuration-file
# global section # global section
...@@ -449,7 +449,7 @@ to i.e. the internet: ...@@ -449,7 +449,7 @@ to i.e. the internet:
/sbin/isdnctrl secure isdn0 on /sbin/isdnctrl secure isdn0 on
/sbin/isdnctrl huptimeout isdn0 0 /sbin/isdnctrl huptimeout isdn0 0
/sbin/isdnctrl l2_prot isdn0 hdlc /sbin/isdnctrl l2_prot isdn0 hdlc
# Attention you must not set a outgoing number !!! This won't work !!! # Attention you must not set an outgoing number !!! This won't work !!!
# The incomming number is LEASED0 for the first card, LEASED1 for the # The incomming number is LEASED0 for the first card, LEASED1 for the
# second and so on. # second and so on.
/sbin/isdnctrl addphone isdn0 in LEASED0 /sbin/isdnctrl addphone isdn0 in LEASED0
...@@ -465,7 +465,7 @@ to i.e. the internet: ...@@ -465,7 +465,7 @@ to i.e. the internet:
/sbin/hisaxctrl HiSax 5 1 /sbin/hisaxctrl HiSax 5 1
Remarks: Remarks:
a) If you have a CISCO dont forget to switch off the KEEP ALIVE option! a) If you have a CISCO don't forget to switch off the KEEP ALIVE option!
Here an example script: Here an example script:
#!/bin/sh #!/bin/sh
......
...@@ -36,7 +36,7 @@ IRQ is configured by software. Possible values are: ...@@ -36,7 +36,7 @@ IRQ is configured by software. Possible values are:
3, 5, 7, 10, 11, 12, 15 and none (polled mode) 3, 5, 7, 10, 11, 12, 15 and none (polled mode)
The ACT2000 driver either may be build into kernel or as a module. The ACT2000 driver may either be built into the kernel or as a module.
Initialization depends on how the driver is built: Initialization depends on how the driver is built:
Driver built into the kernel: Driver built into the kernel:
...@@ -78,11 +78,11 @@ Driver built as module: ...@@ -78,11 +78,11 @@ Driver built as module:
act_bus=b act_port=p act_irq=i act_id=idstring act_bus=b act_port=p act_irq=i act_id=idstring
where b, p, i and idstring have the same meanings like parameters where b, p, i and idstring have the same meanings as the parameters
described for the builtin version above. described for the builtin version above.
Using the "actctrl"-utility, the same features apply to the modularized Using the "actctrl"-utility, the same features apply to the modularized
version like to the kernel-builtin one. (i.e. loading of firmware and version as to the kernel-builtin one. (i.e. loading of firmware and
configuring the D-channel protocol) configuring the D-channel protocol)
Loading the firmware into the card: Loading the firmware into the card:
...@@ -90,7 +90,7 @@ Loading the firmware into the card: ...@@ -90,7 +90,7 @@ Loading the firmware into the card:
The firmware is supplied together with the isdn4k-utils package. It The firmware is supplied together with the isdn4k-utils package. It
can be found in the subdirectory act2000/firmware/ can be found in the subdirectory act2000/firmware/
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 card using the following command: will be downloaded into the card using the following command:
actctrl -d idstring load /etc/isdn/bip11.btl actctrl -d idstring load /etc/isdn/bip11.btl
......
...@@ -22,7 +22,7 @@ Commands for enabling/disabling audio mode: ...@@ -22,7 +22,7 @@ Commands for enabling/disabling audio mode:
Commands supported in 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 current setting.
AT+Vxx=? Show possible settings. AT+Vxx=? Show possible settings.
...@@ -89,8 +89,8 @@ General behavior and description of data formats/protocol. ...@@ -89,8 +89,8 @@ General behavior and description of data formats/protocol.
<DLE><ETX> End of audio data. (i.e. caused by a <DLE><ETX> End of audio data. (i.e. caused by a
hangup of the remote side) Emulator stops hangup of the remote side) Emulator stops
recording, responding with VCON. recording, responding with VCON.
<DLE><DC4> Abort recording, (send by appl.) Emulator <DLE><DC4> Abort recording, (send by appl.) Emulator
stops recording, sends DLE,ETX. stops recording, sends DLE,ETX.
<DLE><DLE> Escape sequence for DLE in data stream. <DLE><DLE> Escape sequence for DLE in data stream.
<DLE>0 Touchtone "0" received. <DLE>0 Touchtone "0" received.
... ...
......
...@@ -26,7 +26,7 @@ To use the card you need the t4-files to download the firmware. ...@@ -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 AVM GmbH provides several t4-files for the different D-channel
protocols (b1.t4 for Euro-ISDN). Install these file in /lib/isdn. 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: card(s) and load them after booting:
avmcapictrl add 0x150 15 avmcapictrl add 0x150 15
......
...@@ -10,7 +10,7 @@ Thus, the mnemonic: "CONnection CONtrolling eNCAPsulation Protocol". ...@@ -10,7 +10,7 @@ Thus, the mnemonic: "CONnection CONtrolling eNCAPsulation Protocol".
This is currently only used inside the isdn subsystem. But it might 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 also be useful to other kinds of network devices. Thus, if you want
to suggest changes that improve usability or performace of the to suggest changes that improve usability or performance of the
interface, please let me know. I'm willing to include them in future 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 releases (even if I needed to adapt the current isdn code to the
changed interface). changed interface).
...@@ -25,14 +25,14 @@ Thus, a device driver for a certain type of hardware must support ...@@ -25,14 +25,14 @@ Thus, a device driver for a certain type of hardware must support
several different encapsulation protocols at once. several different encapsulation protocols at once.
The isdn device driver did already support several different The isdn device driver did already support several different
encapsulation protocols. The encapsulation protocol is configuered by a encapsulation protocols. The encapsulation protocol is configured by a
user space utility (isdnctrl). The isdn network interface code then user space utility (isdnctrl). The isdn network interface code then
uses several case statements which select appropriate actions uses several case statements which select appropriate actions
depending on the currently configuered encapsulation protocol. depending on the currently configured encapsulation protocol.
In contrast, LAN network interfaces always used a single encapsulation In contrast, LAN network interfaces always used a single encapsulation
protocol which is unique to the hardware type of the interface. The LAN protocol which is unique to the hardware type of the interface. The LAN
encapsulation is usually done by just sticking a header at the data. Thus, encapsulation is usually done by just sticking a header on the data. Thus,
traditional linux network device drivers used to process the traditional linux network device drivers used to process the
encapsulation protocol directly (usually by just providing a hard_header() encapsulation protocol directly (usually by just providing a hard_header()
method in the device structure) using some hardware type specific support method in the device structure) using some hardware type specific support
...@@ -46,13 +46,13 @@ the requirements for complex WAN encapsulations. ...@@ -46,13 +46,13 @@ the requirements for complex WAN encapsulations.
Many Encapsulation protocols used on top of WAN connections will not just Many Encapsulation protocols used on top of WAN connections will not just
stick a header at the data. They also might need to set up or release 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 the WAN connection. They also might want to send other data for their
private purpose over the wire. I.e. ppp does a lot of link level private purpose over the wire, e.g. ppp does a lot of link level
negotiation before the first peace of user data can be transmitted. negotiation before the first piece of user data can be transmitted.
Such encapsulation protocols for WAN devices are typically more complex Such encapsulation protocols for WAN devices are typically more complex
than encapsulation protocols for lan devices. Thus, network interfaces than encapsulation protocols for lan devices. Thus, network interface
code for typical WAN devices also tends to be more more complex. code for typical WAN devices also tends to be more complex.
In order to support Linux' x25 PLP implementation on top of In order to support Linux' x25 PLP implementation on top of
...@@ -65,22 +65,22 @@ protocol, complexity could be reduced and maintainability could be ...@@ -65,22 +65,22 @@ protocol, complexity could be reduced and maintainability could be
increased. increased.
Likewise, a same encapsulation protocol will frequently be needed by Likewise, a similar encapsulation protocol will frequently be needed by
several different interfaces of even different hardware type. I.e. the several different interfaces of even different hardware type, e.g. the
synchronous ppp implementaion used by the isdn driver and the synchronous ppp implementation used by the isdn driver and the
asyncronous ppp implemntation used by the ppp driver have a lot of asyncronous ppp implementation used by the ppp driver have a lot of
similar code in them. By cleanly separating the encapsulation protocol similar code in them. By cleanly separating the encapsulation protocol
from the hardware specific interface stuff such code could be shared from the hardware specific interface stuff such code could be shared
better in future. better in future.
When operating over dial-up-connections (i.e. telephone lines via modem, When operating over dial-up-connections (e.g. telephone lines via modem,
non-permanent virtual circuits of wide area networks, ISDN) many non-permanent virtual circuits of wide area networks, ISDN) many
encapsulation protocols will need to control the connection. Therfore, encapsulation protocols will need to control the connection. Therefore,
some basic connection control primitives are supported. The type and some basic connection control primitives are supported. The type and
semantics of the connection (i.e the ISO layer where connection service semantics of the connection (i.e the ISO layer where connection service
is provided) is outside our scope and might be different depending on is provided) is outside our scope and might be different depending on
the encapsulation protocol used. I.e. for a ppp module using our service 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 on top of a modem connection a connect_request will result in dialing
a (somewhere else configured) remote phone number. For an X25-interface a (somewhere else configured) remote phone number. For an X25-interface
module (LAPB semantics, as defined in Documentation/networking/x25-iface.txt) module (LAPB semantics, as defined in Documentation/networking/x25-iface.txt)
...@@ -88,7 +88,7 @@ a connect_request will ask for establishing a reliable lapb ...@@ -88,7 +88,7 @@ a connect_request will ask for establishing a reliable lapb
datalink connection. datalink connection.
The encapsulation protocol currently provides the follwing The encapsulation protocol currently provides the following
service primitives to the network device. service primitives to the network device.
- create a new encapsulation protocol instance - create a new encapsulation protocol instance
...@@ -121,7 +121,7 @@ struct concap_proto_ops{ ...@@ -121,7 +121,7 @@ struct concap_proto_ops{
struct device *ndev, struct device *ndev,
struct concap_device_ops *dops); struct concap_device_ops *dops);
/* inactivate an encapsulation protocol instance. The encapsulation /* deactivate an encapsulation protocol instance. The encapsulation
protocol may not call any *dops methods after this. */ protocol may not call any *dops methods after this. */
int (*close)(struct concap_proto *cprot); int (*close)(struct concap_proto *cprot);
...@@ -145,24 +145,24 @@ The data structures are defined in the header file include/linux/concap.h. ...@@ -145,24 +145,24 @@ The data structures are defined in the header file include/linux/concap.h.
A Network interface using encapsulation protocols must also provide A Network interface using encapsulation protocols must also provide
some service primitives to the encapsulation protocol: some service primitives to the encapsulation protocol:
- request data beeing submitted by lower layer (device hardware) - request data being submitted by lower layer (device hardware)
- request a connection beeing set up by lower layer - request a connection being set up by lower layer
- request a connection beeing released by lower layer - request a connection being released by lower layer
The encapsulations protocol accesses those primitives via callbacks The encapsulation protocol accesses those primitives via callbacks
provided by the network interface within a struct concap_device_ops. provided by the network interface within a struct concap_device_ops.
struct concap_device_ops{ struct concap_device_ops{
/* to request data is submitted by device*/ /* to request data be submitted by device */
int (*data_req)(struct concap_proto *, struct sk_buff *); int (*data_req)(struct concap_proto *, struct sk_buff *);
/* Control methods must be set to NULL by devices which do not /* Control methods must be set to NULL by devices which do not
support connection control.*/ support connection control. */
/* to request a connection is set up */ /* to request a connection be set up */
int (*connect_req)(struct concap_proto *); int (*connect_req)(struct concap_proto *);
/* to request a connection is released */ /* to request a connection be released */
int (*disconn_req)(struct concap_proto *); int (*disconn_req)(struct concap_proto *);
}; };
...@@ -172,7 +172,7 @@ because the encapsulation protocol directly calls netif_rx(). ...@@ -172,7 +172,7 @@ because the encapsulation protocol directly calls netif_rx().
An encapsulation protocol itsself is actually the An encapsulation protocol itself is actually the
struct concap_proto{ struct concap_proto{
struct device *net_dev; /* net device using our service */ struct device *net_dev; /* net device using our service */
struct concap_device_ops *dops; /* callbacks provided by device */ struct concap_device_ops *dops; /* callbacks provided by device */
...@@ -189,7 +189,7 @@ struct concap_proto{ ...@@ -189,7 +189,7 @@ struct concap_proto{
Most of this is filled in when the device requests the protocol to 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 be reset (opend). The network interface must provide the net_dev and
dops pointers. Other concap_proto members should be considerd private dops pointers. Other concap_proto members should be considered private
data that are only accessed by the pops callback functions. Likewise, data that are only accessed by the pops callback functions. Likewise,
a concap proto should access the network device's private data a concap proto should access the network device's private data
only by means of the callbacks referred to by the dops pointer. only by means of the callbacks referred to by the dops pointer.
...@@ -217,21 +217,21 @@ The concept of the concap proto might help to reuse protocol code and ...@@ -217,21 +217,21 @@ The concept of the concap proto might help to reuse protocol code and
reduce the complexity of certain network interface implementations. reduce the complexity of certain network interface implementations.
The trade off is that it introduces yet another procedure call layer The trade off is that it introduces yet another procedure call layer
when processing the protocol. This has of course some impact on when processing the protocol. This has of course some impact on
performace. However, typically the concap interface will be used by performance. However, typically the concap interface will be used by
devices attached to slow lines (like telephone, isdn, leased synchronous devices attached to slow lines (like telephone, isdn, leased synchronous
lines). For such slow lines, the overhead is probably neglectable. lines). For such slow lines, the overhead is probably negligible.
This might no longer hold for certain high speed WAN links (like This might no longer hold for certain high speed WAN links (like
ATM). ATM).
If general linux network interfaces explicitly supported concap If general linux network interfaces explicitly supported concap
protocols (i.e. by a member struct concap_proto* in struct device) protocols (e.g. by a member struct concap_proto* in struct device)
then the interface of the service function could be changed then the interface of the service function could be changed
by passing a pointer of type (struct device*) instead of by passing a pointer of type (struct device*) instead of
type (struct concap_proto*). Doing so would make many of the service type (struct concap_proto*). Doing so would make many of the service
functions compatible to network device support fuctions. i.e. functions compatible to network device support fuctions.
i.e. instead of the concap protocol's service function e.g. instead of the concap protocol's service function
int (*encap_and_xmit)(struct concap_proto *cprot, struct sk_buff *skb); int (*encap_and_xmit)(struct concap_proto *cprot, struct sk_buff *skb);
...@@ -252,7 +252,7 @@ The device's data request function could also be defined as ...@@ -252,7 +252,7 @@ The device's data request function could also be defined as
This might even allow for some protocol stacking. And the network This might even allow for some protocol stacking. And the network
interface might even register the same data_req() function directly interface might even register the same data_req() function directly
as its hard_start_xmit() method when a zero layer encapsulation as its hard_start_xmit() method when a zero layer encapsulation
protocol is configured. Thus, eliminating the performace penalty protocol is configured. Thus, eliminating the performance penalty
of the concap interface when a trivial concap protocol is used. of the concap interface when a trivial concap protocol is used.
Nevertheless, the device remains able to support encapsulation Nevertheless, the device remains able to support encapsulation
protocol configuration. protocol configuration.
...@@ -62,8 +62,8 @@ Setting up the IO-address dipswitches for the ICN-ISDN-card: ...@@ -62,8 +62,8 @@ Setting up the IO-address dipswitches for the ICN-ISDN-card:
1 1 1 0 0x368 1 1 1 0 0x368
1 1 1 1 NOT ALLOWED! 1 1 1 1 NOT ALLOWED!
The ICN driver either may be build into kernel or as a module. Initialization The ICN driver may be built into the kernel or as a module. Initialization
depends on how the drive is built: depends on how the driver is built:
Driver built into the kernel: Driver built into the kernel:
...@@ -102,7 +102,7 @@ Driver built as module: ...@@ -102,7 +102,7 @@ Driver built as module:
portbase=p membase=m icn_id=idstring [icn_id2=idstring2] 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. parameters described for the kernel-version above.
When using the ICN double card (4B), you MUST define TWO idstrings. When using the ICN double card (4B), you MUST define TWO idstrings.
...@@ -127,12 +127,12 @@ Loading the firmware into the card: ...@@ -127,12 +127,12 @@ Loading the firmware into the card:
pc_1t_ca.bin - Image of firmware for german 1TR6 protocol. pc_1t_ca.bin - Image of firmware for german 1TR6 protocol.
pc_eu_ca.bin - Image if firmware for EDSS1 (Euro-ISDN) 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: 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 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 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. insmod-time or (for kernel-builtin driver) on the kernel commandline.
......
...@@ -16,20 +16,20 @@ ftp://ftp.di.fc.ul.pt/pub/systems/Linux/isdn ...@@ -16,20 +16,20 @@ ftp://ftp.di.fc.ul.pt/pub/systems/Linux/isdn
Known Limitations: 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. allow you to load the firmware after a hard reset.
- Only HDLC in B-channels is supported at the moment. There is now - Only HDLC in B-channels is supported at the moment. There is no
current support to X.25 in B or D channels nor LAPD in B current support for X.25 in B or D channels nor LAPD in B
channels. The main reason is that this two other protocol modes have, 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 to my knowledge, very little use. If you want to see them implemented
*do* send me a mail. *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 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 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 Information/hints/help can be obtained in the linux isdn
mailing list (isdn4linux@hub-wue.franken.de) or directly from me. mailing list (isdn4linux@hub-wue.franken.de) or directly from me.
......
This diff is collapsed.
...@@ -3,7 +3,7 @@ X25 support within isdn4linux ...@@ -3,7 +3,7 @@ X25 support within isdn4linux
This is experimental code and should be used with linux version 2.1.72. This is experimental code and should be used with linux version 2.1.72.
or later. Use it completely on your own risk. or later. Use it completely at your own risk.
As new versions appear, the stuff described here might suddenly change As new versions appear, the stuff described here might suddenly change
...@@ -161,7 +161,7 @@ is needed to set up x25 routes. I.e. ...@@ -161,7 +161,7 @@ is needed to set up x25 routes. I.e.
x25route add 01 <iface-name> x25route add 01 <iface-name>
will cause all x.25 connections to the destination x.25-address will cause all x.25 connections to the destination x.25-address
"01" beeing routed to your created isdn network interface. "01" to be routed to your created isdn network interface.
There are currently no real x25 applications available. However, for There are currently no real x25 applications available. However, for
...@@ -185,14 +185,14 @@ ix25test start ...@@ -185,14 +185,14 @@ ix25test start
This will set up a sample configuration using the isdnloop and hisax This will set up a sample configuration using the isdnloop and hisax
driver and create some isdn network interfaces. driver and create some isdn network interfaces.
It is recommended that all other isdn drivers and the It is recommended that all other isdn drivers and the
x25 module is unloaded before calling this script. x25 module are unloaded before calling this script.
Known problems and deficiencies: Known problems and deficiencies:
The isdnloop HL driver apparently has problems to re-establish a The isdnloop HL driver apparently has problems to re-establish a
connection that has been hang up from the outgoing device. You have to connection that has been hung up from the outgoing device. You have to
unload the isdnloop driver after the faked isdn-connection is closed unload the isdnloop driver after the faked isdn-connection is closed
and insmod it again. With the Hisax driver, this problem is not present. and insmod it again. With the Hisax driver, this problem is not present.
...@@ -210,7 +210,7 @@ The latter problem could be reproduced by using hisax as well as the ...@@ -210,7 +210,7 @@ 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. 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 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 the socket's wait queue. This causes problems when the process tries to
remove itsself from the wait queue (refered by the dangling remove itself from the wait queue (refered by the dangling
sock->sleep pointer) before returning from a select() system call. sock->sleep pointer) before returning from a select() system call.
- Henner - Henner
......
simple isdn4linux PPP FAQ .. to be continued .. not 'debugged' simple isdn4linux PPP FAQ .. to be continued .. not 'debugged'
------------------------------------------------------------------- -------------------------------------------------------------------
Q01: what's pppd,ipppd, syncPPP , asyncPPP ?? Q01: what's pppd, ipppd, syncPPP, asyncPPP ??
Q02: error message "this systems lacks PPP support" Q02: error message "this system lacks PPP support"
Q03: strange information using 'ifconfig' Q03: strange information using 'ifconfig'
Q04: MPPP?? What's that and how can I use it ... Q04: MPPP?? What's that and how can I use it ...
Q05: I tried MPPP but it doesn't work Q05: I tried MPPP but it doesn't work
...@@ -16,7 +16,7 @@ Q12: How can I reduce login delay? ...@@ -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? what should I use?
A: The pppd is for asynchronous PPP .. asynchronous means A: The pppd is for asynchronous PPP .. asynchronous means
here, the framing is character based. (e.g when here, the framing is character based. (e.g when
...@@ -45,7 +45,7 @@ A: The pppd is for asynchronous PPP .. asynchronous means ...@@ -45,7 +45,7 @@ A: The pppd is for asynchronous PPP .. asynchronous means
-- --
Q02: when I start the ipppd .. I only get the 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. A: check that at least the device 'ippp0' exists.
(you can check this e.g with the program 'ifconfig') (you can check this e.g with the program 'ifconfig')
The ipppd NEEDS this device under THIS name .. The ipppd NEEDS this device under THIS name ..
...@@ -123,7 +123,7 @@ A: (from Alexanter Strauss: ) ...@@ -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 a different configuration. The only way
I found to do this is to kill the ipppd and I found to do this is to kill the ipppd and
start a new one with another config to connect start a new one with another config to connect
...@@ -152,14 +152,14 @@ A: When starting, the ipppd calls functions which may ...@@ -152,14 +152,14 @@ A: When starting, the ipppd calls functions which may
Q10: I wanna use dynamic IP address assignment ... How Q10: I wanna use dynamic IP address assignment ... How
must I configure the network device. 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 a packet to the ippp network-interface to trigger
the dial-on-demand. 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 Now you must choose a dummy IP address for your
interface. interface.
If for some reason you can't set the default 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 address of the subnet from which you expect your
dynamic IP number and set a 'network route' for dynamic IP number and set a 'network route' for
this subnet to the ippp interface. this subnet to the ippp interface.
......
...@@ -18,7 +18,7 @@ other program after you have done the following: ...@@ -18,7 +18,7 @@ other program after you have done the following:
nonstandard classes (not included in the same directory nonstandard classes (not included in the same directory
as the application itself). 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. the kernel (CONFIG_BINFMT_MISC) and set it up properly.
If you choose to compile it as a module, you will have If you choose to compile it as a module, you will have
to insert it manually with modprobe/insmod, as kerneld to insert it manually with modprobe/insmod, as kerneld
......
...@@ -15,7 +15,7 @@ stories are also welcome. ...@@ -15,7 +15,7 @@ stories are also welcome.
2. Usage 2. Usage
~~~~~~~~ ~~~~~~~~
If you enable the joystick driver in the kernel configuration, all 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: can pass the joystick driver the following kernel command line arguments:
js=0xXX,0xYY js=0xXX,0xYY
...@@ -120,7 +120,7 @@ Version 0.4 Linux 0.99.6 and fixed race condition in js_read. ...@@ -120,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 port started ALL the joystick one shots. If the
one that we are reading is short enough and the one that we are reading is short enough and the
first one to be read, the second one will return 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. the joystick port is written for the second time.
Thus solves the mystery delay problem in 0.2! Thus solves the mystery delay problem in 0.2!
Version 0.5 Upgraded the driver to the 0.99.9 kernel, added Version 0.5 Upgraded the driver to the 0.99.9 kernel, added
...@@ -155,7 +155,7 @@ Version 0.9 Ported to 2.1.x ...@@ -155,7 +155,7 @@ Version 0.9 Ported to 2.1.x
Better ioctl names. Kept binary compatibility. Better ioctl names. Kept binary compatibility.
Removed 'save_busy'. Just set busy to 1. Removed 'save_busy'. Just set busy to 1.
Version 0.9.0 Based on 0.7.3 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 New joystick calibration code
Real support for 3-axis joysticks Real support for 3-axis joysticks
CPU speed independent timeouts CPU speed independent timeouts
...@@ -180,7 +180,7 @@ Version 1.0.1 Complete rewrite ...@@ -180,7 +180,7 @@ Version 1.0.1 Complete rewrite
Version 1.0.2 Works, many bugs fixed, more yet to come Version 1.0.2 Works, many bugs fixed, more yet to come
Version 1.0.3 Tail cutting logic changes & fixes Version 1.0.3 Tail cutting logic changes & fixes
Fix in js_do_bh - no more zero values for axes 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 Version 1.0.4 Kernel command line & module configuration support
Better cli()/sti() handling Better cli()/sti() handling
Linux 2.1.25 select => poll changes Linux 2.1.25 select => poll changes
......
...@@ -67,7 +67,7 @@ arises. ...@@ -67,7 +67,7 @@ arises.
Until an updated version of mount(8) becomes available you may have to apply 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 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.orig Sat Jun 8 09:14:31 1996
--- mount.c Sat Jun 8 09:13:02 1996 --- mount.c Sat Jun 8 09:13:02 1996
......
...@@ -86,14 +86,15 @@ which data structures they work. Here's just a brief overview: ...@@ -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 - You can request and change variable information about the hardware, like
visible and virtual geometry, depth, color map format, timing, and so on. 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 values to meet the hardware's capabilities (or return EINVAL if that isn't
possible). possible).
- You can get and set parts of the color map. Communication is done with 16 - 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 bits per color part (red, green, blue, transparency) to support all
hardware. The driver does all the computations needed to bring it into the existing hardware. The driver does all the computations needed to apply
hardware (round it down to less bits, maybe throw away transparency). it to the hardware (round it down to less bits, maybe throw away
transparency).
All this hardware abstraction makes the implementation of application programs 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 easier and more portable. E.g. the X server works completely on /dev/fb* and
...@@ -113,8 +114,8 @@ much trouble... ...@@ -113,8 +114,8 @@ much trouble...
3. Frame Buffer Resolution Maintenance 3. Frame Buffer Resolution Maintenance
-------------------------------------- --------------------------------------
Frame buffer resolutions are maintained using the utility `fbset'. It allows to Frame buffer resolutions are maintained using the utility `fbset'. It can
change the video mode properties of the current resolution. It's main usage is 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.* to change the current video mode, e.g. during boot up in one of your /etc/rc.*
or /etc/init.d/* files. or /etc/init.d/* files.
......
...@@ -87,7 +87,7 @@ Valid names are: ...@@ -87,7 +87,7 @@ Valid names are:
/dev/adc: -> 0x1c20 (third ACSI device) /dev/adc: -> 0x1c20 (third ACSI device)
/dev/add: -> 0x1c30 (forth 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. with Atari and ACSI support.
The name must be followed by a decimal number, that stands for the 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 ...@@ -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, 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 you cannot use this name for specifying the root device, because the
kernel cannot see this symlink before mounting the root FS and it 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 isn't in the table above. If you use it, the root device will not be
set at all, without error message. Another example: You cannot use a 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 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 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 /dev/sde are in the table above, but not /dev/sdf. Although, you can
...@@ -561,7 +561,7 @@ thresholds. ...@@ -561,7 +561,7 @@ thresholds.
Syntax: ataflop=<drive type>[,<trackbuffering>[,<steprateA>[,<steprateB>]]] Syntax: ataflop=<drive type>[,<trackbuffering>[,<steprateA>[,<steprateB>]]]
The drive type may be 0, 1, or 2, for DD, HD, and ED, resp. This 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 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" can be selected. If you have two disk drives, select the "better"
type. type.
...@@ -586,12 +586,12 @@ defaults depend on whether TT-style or Falcon-style SCSI is used. ...@@ -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 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 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 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>: <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 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 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 <cmd_per_lun> times the number of SCSI targets (LUNs) you have
don't make sense. Default: 16/8. don't make sense. Default: 16/8.
...@@ -632,7 +632,7 @@ ignored (other aren't affected). ...@@ -632,7 +632,7 @@ ignored (other aren't affected).
0 means turn off tagged queuing support, all other values > 0 mean 0 means turn off tagged queuing support, all other values > 0 mean
use tagged queuing for targets that support it. Default: currently use tagged queuing for targets that support it. Default: currently
off, but this may change when tagged queuing handling has been 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 Tagged queuing means that more than one command can be issued to
one LUN, and the SCSI device itself orders the requests so they 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 ...@@ -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. 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 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 allocated by it is obviously never used for swapping :-) You can also
limit this amount by specifying the second parameter, <max_swap>, if 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 you want to use parts of ST-RAM as normal system memory. <max_swap> is
...@@ -852,8 +852,8 @@ Syntax: clock:x ...@@ -852,8 +852,8 @@ Syntax: clock:x
x = clock input in MHz for WD33c93 chip. Normal values would be from x = clock input in MHz for WD33c93 chip. Normal values would be from
8 through 20. The default value depends on your hostadapter(s), 8 through 20. The default value depends on your hostadapter(s),
default for the A3000 internal controller is 14, for the A2091 its 8 default for the A3000 internal controller is 14, for the A2091 it's 8
and for the GVP hostadapters its either 8 or 14, depending on the and for the GVP hostadapters it's either 8 or 14, depending on the
hostadapter and the SCSI-clock jumper present on some GVP hostadapter and the SCSI-clock jumper present on some GVP
hostadapters. hostadapters.
......
...@@ -19,7 +19,7 @@ troublesome) is access to a user's mailbox. The mail user agent and the mail ...@@ -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 transfer agent must guard against updating the mailbox at the same time, and
prevent reading the mailbox while it is being updated. 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 "advisory" locking scheme. However, the world isn't perfect, and there's
a lot of poorly written code out there. a lot of poorly written code out there.
...@@ -47,8 +47,8 @@ scheme is defined by the System V Interface Definition (SVID) Version 3. ...@@ -47,8 +47,8 @@ scheme is defined by the System V Interface Definition (SVID) Version 3.
2. Marking a file for mandatory locking 2. Marking a file for mandatory locking
--------------------------------------- ---------------------------------------
A file is marked as a candidate for mandatory by setting the group-id bit in A file is marked as a candidate for mandatory locking by setting the group-id
its file mode but removing the group-execute bit. This is an otherwise 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 meaningless combination, and was chosen by the System V implementors so as not
to break existing user programs. to break existing user programs.
...@@ -103,7 +103,7 @@ agree. ...@@ -103,7 +103,7 @@ agree.
2. If a process has locked a region of a file with a mandatory read lock, then 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 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 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 flag in which case the system call will return immediately with the error
status EAGAIN. status EAGAIN.
...@@ -145,7 +145,7 @@ better still fix the system calls yourself and submit a patch to me or Linus. ...@@ -145,7 +145,7 @@ better still fix the system calls yourself and submit a patch to me or Linus.
6. Warning! 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 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. 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 :-( Of course, that might be a bit tricky if the system is hung :-(
......
...@@ -57,7 +57,7 @@ into memory. mca_read_stored_pos() accesses that data. mca_read_pos() ...@@ -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, and mca_write_pos() are also available for (safer) direct POS access,
but their use is _highly_ discouraged. mca_write_pos() is particularly but their use is _highly_ discouraged. mca_write_pos() is particularly
dangerous, as it is possible for adapters to be put in inconsistent 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. hardware, and operator injury.
User level drivers (such as the AGX X server) can use /proc/mca to find 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: ...@@ -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 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: Enable this function with:
mca_set_adapter_procfn( slot, dev_getinfo, dev ); mca_set_adapter_procfn( slot, dev_getinfo, dev );
...@@ -132,8 +132,8 @@ Enable this function with: ...@@ -132,8 +132,8 @@ Enable this function with:
Disable it with: Disable it with:
mca_set_adapter_procfn( slot, NULL, NULL ); mca_set_adapter_procfn( slot, NULL, NULL );
It is also recommended that, even if you don't write a proc function, to It is also recommended, even if you don't write a proc function, to
set the name of the adapter (i.e. "PS/2 ESDI Controller") via 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 mca_set_adapter_name( int slot, char* name ). Up to 30 characters are
used. used.
......
...@@ -2,8 +2,14 @@ ...@@ -2,8 +2,14 @@
- this file - this file
3c505.txt 3c505.txt
- information on the 3Com EtherLink Plus (3c505) driver. - information on the 3Com EtherLink Plus (3c505) driver.
6pack.txt
- info on the 6pack protocol, an alternative to KISS for AX.25
Configurable Configurable
- info on some of the configurable network parameters - 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 alias.txt
- info on using alias network devices - info on using alias network devices
arcnet-hardware.txt arcnet-hardware.txt
...@@ -12,18 +18,58 @@ arcnet.txt ...@@ -12,18 +18,58 @@ arcnet.txt
- info on the using the arcnet driver itself. - info on the using the arcnet driver itself.
ax25.txt ax25.txt
- info on using AX.25 and NET/ROM code for Linux - 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 framerelay.txt
- info on using Frame Relay/Data Link Connection Identifier (DLCI). - 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 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 ncsa-telnet
- notes on how NCSA telnet (DOS) breaks with MTU discovery enabled. - notes on how NCSA telnet (DOS) breaks with MTU discovery enabled.
net-modules.txt net-modules.txt
- info and "insmod" parameters for all network driver modules. - info and "insmod" parameters for all network driver modules.
policy-routing.txt
- IP policy-based routing
ppp.txt ppp.txt
- info on what software you should use to run PPP. - 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 shaper.txt
- info on the module that can shape/limit transmitted traffic. - 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 tcp.txt
- short blurb on how TCP output takes place. - short blurb on how TCP output takes place.
tulip.txt tulip.txt
...@@ -32,10 +78,13 @@ vortex.txt ...@@ -32,10 +78,13 @@ vortex.txt
- info on using 3Com Vortex (3c590, 3c592, 3c595, 3c597) e'net cards. - info on using 3Com Vortex (3c590, 3c592, 3c595, 3c597) e'net cards.
wan-router.txt wan-router.txt
- Wan router documentation - 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 x25.txt
- general info on X.25 development. - general info on X.25 development.
x25-iface.txt x25-iface.txt
- description of the X.25 Packet Layer to LAPB device interface. - description of the X.25 Packet Layer to LAPB device interface.
z8530drv.txt z8530drv.txt
- info about Linux driver for Z8530 based HDLC cards for AX.25 - info about Linux driver for Z8530 based HDLC cards for AX.25
...@@ -9,20 +9,20 @@ Last update: April 7, 1998 ...@@ -9,20 +9,20 @@ Last update: April 7, 1998
1. What is 6pack, and what are the advantages to KISS? 1. What is 6pack, and what are the advantages to KISS?
6pack is a transmission protocol for the data exchange between the PC and 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. the TNC over a serial line. It can be used as an alternative to KISS.
6pack has two major advantages: 6pack has two major advantages:
- The PC is given the full control over the radio - The PC is given full control over the radio
channel. Special control data is exchanged between the PC and the TNC so 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 an TNC 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 buffer underrun or overrun has occured, if the PTT is
set and so on. This control data is processed at a higher priority than 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 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 important event. This helps to improve the channel access and timing
as everything is computed in the PC. It would even be possible to experiment with algorithms as everything is computed in the PC. It would even be possible
something completely different than the known CSMA and DAMA channel access to experiment with something completely different from the known CSMA and
methods. DAMA channel access methods.
This kind of real-time control is especially important to supply several 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 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). (however, this feature is not supported yet by the Linux 6pack driver).
...@@ -55,15 +55,15 @@ To be able to use 6pack, a special firmware for the TNC is needed. The EPROM ...@@ -55,15 +55,15 @@ 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 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 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 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 maintainend by the FlexNet 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 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 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 don't know anything about it. I used a textual description of the 6pack
protocol to program the Linux driver. protocol to program the Linux driver.
TNCs contain a 64kByte EPROM, the lower half of which is used for TNCs contain a 64kByte EPROM, the lower half of which is used for
TheFirmware/KISS. The upper half is either empty or is sometimes the firmware/KISS. The upper half is either empty or is sometimes
programmed with a software called TAPR. In the latter case, the TNC programmed with software called TAPR. In the latter case, the TNC
is supplied with a DIP switch so you can easily change between the 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 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 by 6pack. It is useful to replace TAPR, as this software is rarely used
...@@ -76,7 +76,7 @@ the TNC correctly. ...@@ -76,7 +76,7 @@ the TNC correctly.
5. Building and installing the 6pack driver 5. Building and installing the 6pack driver
The driver has been tested with kernel version 2.1.90. Using with older 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 kernels may lead to a compilation error because the interface to a kernel
function has been changed in the 2.1.8x kernels. function has been changed in the 2.1.8x kernels.
...@@ -93,7 +93,7 @@ How to turn on 6pack support: ...@@ -93,7 +93,7 @@ How to turn on 6pack support:
To use the driver, the kissattach program delivered with the AX.25 utilities To use the driver, the kissattach program delivered with the AX.25 utilities
has to be modified. has to be modified.
- Do a cd to the directory that keeps the kissattach sources. Edit the - Do a cd to the directory that holds the kissattach sources. Edit the
kissattach.c file. At the top, insert the following lines: kissattach.c file. At the top, insert the following lines:
#ifndef N_6PACK #ifndef N_6PACK
...@@ -110,8 +110,8 @@ has to be modified. ...@@ -110,8 +110,8 @@ has to be modified.
Installing the driver: Installing the driver:
- Do an insmod 6pack. Look at your - Do an insmod 6pack. Look at your /var/log/messages file to check if the
/var/log/messages file to check if the module has printed its initialization message. module has printed its initialization message.
- Do a spattach as you would launch kissattach when starting a KISS port. - Do a spattach as you would launch kissattach when starting a KISS port.
Check if the kernel prints the message '6pack: TNC found'. Check if the kernel prints the message '6pack: TNC found'.
...@@ -130,7 +130,7 @@ Note that the connect and status LEDs of the TNC are controlled in a ...@@ -130,7 +130,7 @@ 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 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 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 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, 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 so the 6pack driver doesn't know anything about connects or data that
has not yet been transmitted. Therefore the LEDs are controlled 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 as they are in KISS mode: The connect LED is turned on if data is transferred
...@@ -143,7 +143,7 @@ When testing the driver with 2.0.3x kernels and ...@@ -143,7 +143,7 @@ When testing the driver with 2.0.3x kernels and
operating with data rates on the radio channel of 9600 Baud or higher, operating with data rates on the radio channel of 9600 Baud or higher,
the driver may, on certain systems, sometimes print the message '6pack: 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 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 tu a problem 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 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 still exists with 2.1.x kernels, as I have heard that the serial driver
code has been changed with 2.1.x. code has been changed with 2.1.x.
......
...@@ -52,7 +52,7 @@ Released 1994-06-13 ...@@ -52,7 +52,7 @@ Released 1994-06-13
3. FILES IN THIS RELEASE. 3. FILES IN THIS RELEASE.
README.DLINK This file. 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.c ditto for the DE-620
de620.h Macros for de620.c de620.h Macros for de620.c
...@@ -78,7 +78,7 @@ Released 1994-06-13 ...@@ -78,7 +78,7 @@ Released 1994-06-13
modify "linux/drivers/net/CONFIG" accordingly, or adjust modify "linux/drivers/net/CONFIG" accordingly, or adjust
the parameters in the "tuning" section in the sources. 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 enable them while doing "make config", but instead make sure that
the drivers are included in "linux/drivers/net/MODULES". the drivers are included in "linux/drivers/net/MODULES".
......
...@@ -29,11 +29,11 @@ Advantages of PLIP ...@@ -29,11 +29,11 @@ Advantages of PLIP
It's cheap, it's available everywhere, and it's easy. 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 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 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 minutes' work, no need to search for a [supported] netcard. This might
even be especially important in the case of notebooks, where netcard even be especially important in the case of notebooks, where netcards
are not easily available. are not easily available.
Not requiring a netcard also means that apart from connecting the Not requiring a netcard also means that apart from connecting the
...@@ -45,7 +45,7 @@ Disadvantages of PLIP ...@@ -45,7 +45,7 @@ Disadvantages of PLIP
Doesn't work over a modem, like SLIP and PPP. Limited range, 15 m. 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 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). SLIP).
Performance Performance
...@@ -150,7 +150,8 @@ Each octet is sent as ...@@ -150,7 +150,8 @@ Each octet is sent as
To start a transfer the transmitting machine outputs a nibble 0x08. To start a transfer the transmitting machine outputs a nibble 0x08.
The raises the ACK line, triggering an interrupt in the receiving 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: Restated:
......
...@@ -11,7 +11,7 @@ o Alias creation. ...@@ -11,7 +11,7 @@ o Alias creation.
200.1.1.1 alias for eth0 ... 200.1.1.1 alias for eth0 ...
# ifconfig eth0:0 200.1.1.1 etc,etc.... # 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 ... and routing stuff also ...
# route add -host 200.1.1.1 dev eth0:0 (if same IP network as # route add -host 200.1.1.1 dev eth0:0 (if same IP network as
main device) main device)
...@@ -28,7 +28,7 @@ o Alias deletion. ...@@ -28,7 +28,7 @@ o Alias deletion.
Alias (re-)configuring 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). refer to them as usual (ifconfig, route, etc).
Relationship with main device Relationship with main device
......
...@@ -43,7 +43,7 @@ but it is now a true kernel network interface. Installation is therefore ...@@ -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. simple. Once installed, four interfaces named bc[0-3] are available.
sethdlc from the ax25 utilities may be used to set driver states etc. 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 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 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. 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 ...@@ -72,7 +72,7 @@ first parallel port (LPT1 under DOS). options=1 instructs the driver to use
the software DCD algorithm (see below). the software DCD algorithm (see below).
The channel access parameters can be set with sethdlc -a or kissparms. 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 Hardware DCD versus Software DCD
...@@ -93,7 +93,7 @@ par96: the software DCD algorithm for this type of modem is rather poor. ...@@ -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 feeds the DCD input of the PAR96 modem, the use of the hardware
DCD circuitry is recommended. 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. recommended.
......
Text File for the COPS LocalTalk Linux driver (cops.c). Text File for the COPS LocalTalk Linux driver (cops.c).
By Jay Schulist <Jay.Schulist@spacs.k12.wi.us> 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 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 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 the same and just have different names or only have minor differences
such as more IO ports. As this driver is tested it will 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 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 LT-200 cards work in a somewhat more limited capacity than the
...@@ -20,8 +20,8 @@ DAYNA driver mode: ...@@ -20,8 +20,8 @@ DAYNA driver mode:
Other cards possibly supported mode unkown though: Other cards possibly supported mode unkown though:
Dayna DL2000 (Full length) Dayna DL2000 (Full length)
The COPS driver defaults to using Dayna mode. To change the drivers The COPS driver defaults to using Dayna mode. To change the driver's
mode if you build a driver with a dual support use board_type=1 or mode if you built a driver with dual support use board_type=1 or
board_type=2 for Dayna or Tangent with insmod. board_type=2 for Dayna or Tangent with insmod.
** Operation/loading of the driver. ** Operation/loading of the driver.
...@@ -52,12 +52,12 @@ it work with the cops.c driver. ...@@ -52,12 +52,12 @@ it work with the cops.c driver.
dummy -seed -phase 2 -net 2000 -addr 2000.10 -zone "1033" dummy -seed -phase 2 -net 2000 -addr 2000.10 -zone "1033"
lt0 -seed -phase 1 -net 1000 -addr 1000.50 -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" eth0 -seed -phase 2 -net 3000 -addr 3000.20 -zone "1033"
lt0 -seed -phase 1 -net 1000 -addr 1000.50 -zone "1033" lt0 -seed -phase 1 -net 1000 -addr 1000.50 -zone "1033"
* For multiple LocalTalk cards, and an Ethernet card. * 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" lt0 -seed -phase 1 -net 1000 -addr 1000.10 -zone "LocalTalk1"
lt1 -seed -phase 1 -net 2000 -addr 2000.20 -zone "LocalTalk2" lt1 -seed -phase 1 -net 2000 -addr 2000.20 -zone "LocalTalk2"
eth0 -seed -phase 2 -net 3000 -addr 3000.30 -zone "EtherTalk" eth0 -seed -phase 2 -net 3000 -addr 3000.30 -zone "EtherTalk"
...@@ -40,22 +40,6 @@ TABLE OF CONTENTS ...@@ -40,22 +40,6 @@ TABLE OF CONTENTS
6.3.2 Crystal's Bulletin Board Service 6.3.2 Crystal's Bulletin Board Service
8.3 OBTAINING THE LATEST DRIVER VERSION
You can obtain the latest CS89XX drivers and support software from Crystal's
BBS or Web site.
8.3.1 CRYSTAL'S WEB SITE
Crystal Semiconductor maintains a web page at http://www.crystal.com with the
the latest drivers and technical publications.
8.3.2 CRYSTAL'S BULLETIN BOARD SERVICE
1.0 CRYSTAL LAN CS8900/CS8920 ETHERNET ADAPTERS 1.0 CRYSTAL LAN CS8900/CS8920 ETHERNET ADAPTERS
=============================================================================== ===============================================================================
...@@ -172,7 +156,7 @@ with the following "default" settings: ...@@ -172,7 +156,7 @@ with the following "default" settings:
10BASE-T (10BASE-T only adapter) 10BASE-T (10BASE-T only adapter)
You should only change the default configuration settings if conflicts with 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. CS8900/20 Setup Utility.
...@@ -388,7 +372,7 @@ Example: ...@@ -388,7 +372,7 @@ Example:
5.1 KNOWN DEFECTS and LIMITATIONS 5.1 KNOWN DEFECTS and LIMITATIONS
Refer to the RELEASE.TXT file distributed as part of this archive for a list of 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 5.2 TESTING THE ADAPTER
......
...@@ -82,7 +82,7 @@ ...@@ -82,7 +82,7 @@
To unload a module, turn off the associated interface(s) To unload a module, turn off the associated interface(s)
'ifconfig eth?? down' then 'rmmod de4x5'. '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 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 pause whilst the driver figures out where its media went). My tests
using ping showed that it appears to work.... using ping showed that it appears to work....
...@@ -118,7 +118,7 @@ ...@@ -118,7 +118,7 @@
debt to <mjacob@feral.com> for the testing and feedback that helped get debt to <mjacob@feral.com> for the testing and feedback that helped get
this feature working. So far we have tested KINGSTON, SMC8432, SMC9332 this feature working. So far we have tested KINGSTON, SMC8432, SMC9332
(with the latest SROM complying with the SROM spec V3: their first was (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 (quad 21041 MAC) cards also appear to work despite their incorrectly
wired IRQs. wired IRQs.
......
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
1. Introduction 1. Introduction
Which is worse? A huge fee for a 56K leased line or two phone lines? 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 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 together to work as one point-to-point link to increase your
bandwidth. All without having to have a special black box on either bandwidth. All without having to have a special black box on either
...@@ -64,7 +64,7 @@ ...@@ -64,7 +64,7 @@
-rw-r--r-- guru/ncm 2195 Jan 10 21:48 1995 eql-1.1/eql_enslave.c -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 like say /usr/src/linux-1.1.92.eql. Use symbolic links to point
/usr/src/linux to this development directory. /usr/src/linux to this development directory.
...@@ -250,13 +250,13 @@ ...@@ -250,13 +250,13 @@
One version of the scheduler was able to push 5.3 K/s through the 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 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. 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 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- cleanly in newer kernels because of the removal of the old "slave-
balancing" driver config option. balancing" driver config option.
...@@ -469,7 +469,7 @@ ...@@ -469,7 +469,7 @@
I've installed your patch and it works great. I have trialed 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 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 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. :) 6.4 Kbyte/s, which I think is pretty cool. :)
......
...@@ -8,14 +8,14 @@ Introduction ...@@ -8,14 +8,14 @@ Introduction
Ethertap provides packet reception and transmission for user Ethertap provides packet reception and transmission for user
space programs. It can be viewed as a simple ethernet device, 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. 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 building bridging tunnels. It also has many other general purpose
uses. 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. default.
SetUp SetUp
...@@ -36,7 +36,7 @@ proper IP number for your situation.) ...@@ -36,7 +36,7 @@ proper IP number for your situation.)
If you want your Ethertap device to ARP for you would ifconfig If you want your Ethertap device to ARP for you would ifconfig
the interface like this: ifconfig tap* 192.168.1.1 arp 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. for each tap* device you need to ifconfig.
Now Ethertap should be ready to use. Now Ethertap should be ready to use.
...@@ -65,7 +65,7 @@ The routing on our box would be ...@@ -65,7 +65,7 @@ The routing on our box would be
C code for a Simple program using an EtherTap device 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. but the important stuff is below.
void main (void) void main (void)
......
...@@ -18,16 +18,16 @@ creating filters. ...@@ -18,16 +18,16 @@ creating filters.
LSF is much simpler that BPF. One does not have to worry about LSF is much simpler that BPF. One does not have to worry about
devices or anything like that. You simply create your filter devices or anything like that. You simply create your filter
code, send it to the kernel via the SO_ATTACH_FILTER ioctl and 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. immediately begin filtering data on that socket.
You can also detach filters from your socket via the You can also detach filters from your socket via the
SO_DETACH_FILTER ioctl. This will probably not be used much SO_DETACH_FILTER ioctl. This will probably not be used much
since when you close a socket that has a filter on it the since when you close a socket that has a filter on it the
filter is automagicly removed. The other less common case filter is automagically removed. The other less common case
may be adding a differnt filter on the same socket you had another 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 filter that is still running: the kernel takes care of removing
the old one and placing your new one in its place, assumming your 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 filter has passed the checks, otherwise if it fails the old filter
will remain on that socket. will remain on that socket.
......
...@@ -49,7 +49,7 @@ ip_bootp_relay - BOOLEAN ...@@ -49,7 +49,7 @@ ip_bootp_relay - BOOLEAN
not to this host as local ones. It is supposed, that not to this host as local ones. It is supposed, that
BOOTP relay deamon will catch and forward such packets. BOOTP relay deamon will catch and forward such packets.
default FASLE default FALSE
Not Implemented Yet. Not Implemented Yet.
...@@ -110,7 +110,7 @@ TCP variables: ...@@ -110,7 +110,7 @@ TCP variables:
tcp_syn_retries - INTEGER tcp_syn_retries - INTEGER
Number of times initial SYNs for an TCP connection attempt will 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 tcp_keepalive_time - INTEGER
How often TCP sends out keepalive messages when keepalive is enabled. How often TCP sends out keepalive messages when keepalive is enabled.
......
Text file for ipddp.c: 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> This text file writen by Jay Schulist <Jay.Schulist@spacs.k12.wi.us>
Introduction Introduction
------------ ------------
Appletalk-IP (IPDDP) is the method computers connected to Appletalk AppleTalk-IP (IPDDP) is the method computers connected to AppleTalk
networks can communicate via IP. Appletalk-IP is simply IP datagrams networks can use to communicate via IP. AppleTalk-IP is simply IP datagrams
inside Appletalk packets. inside AppleTalk packets.
Through this driver you can either allow your Linux box to communicate Through this driver you can either allow your Linux box to communicate
IP over an Appletalk network or you can provide IP gatewaying functions IP over an AppleTalk network or you can provide IP gatewaying functions
for you Appletalk users. 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 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. 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 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 select ONE of the two options; IP to AppleTalk-IP Encapsulation support or
Appletalk-IP to IP Decapsulation support. If you compile the driver 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 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 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. 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 ipddp_mode=1 for AppleTalk-IP Encapsulation and ipddp_mode=2 for
Appletalk-IP to IP Decapsulation. AppleTalk-IP to IP Decapsulation.
Basic instructions for user space tools 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 proper tools. You can get the tools for Decapsulation from
http://spacs1.spacs.k12.wi.us/~jschlst/MacGate and for Encapsulation http://spacs1.spacs.k12.wi.us/~jschlst/MacGate and for Encapsulation
from http://www.maths.unm.edu/~bradford/ltpc.html from http://www.maths.unm.edu/~bradford/ltpc.html
...@@ -46,7 +46,7 @@ need to consult the supporting documentation for each set of tools. ...@@ -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 Decapsulation - You will need to download a software package called
MacGate. In this distribution there will be a tool called MacRoute 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 Also the tool MacRegGateWay is included to register the
proper IP Gateway and IP addresses for your machine. Included in this 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 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 ...@@ -55,13 +55,13 @@ but it allows automatic adding and deleting of routes for Macs. (Handy
for locations with large Mac installations) for locations with large Mac installations)
Encapsulation - You will need to download a software daemon called ipddpd. 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 You will also need to add the proper routes to route your Linux box's IP
traffic out the ipddp interface. traffic out the ipddp interface.
Common Uses of ipddp.c 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 Decapsulation is being used most for connecting LocalTalk networks to
IP networks. Although it has been used on EtherTalk networks to allow IP networks. Although it has been used on EtherTalk networks to allow
Macs that are only able to tunnel IP over EtherTalk. 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 ...@@ -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 network to use IP. It should work equally well if you are stuck on an
EtherTalk only network. EtherTalk only network.
Further Assisatance Further Assistance
------------------- -------------------
You can contact me (Jay Schulist <Jay.Schulist@spacs.k12.wi.us>) with any You can contact me (Jay Schulist <Jay.Schulist@spacs.k12.wi.us>) with any
questions reguarding Decapsulation or Encapsulation. Bradford W. Johnson questions reguarding Decapsulation or Encapsulation. Bradford W. Johnson
<johns393@maroon.tc.umn.edu> originally wrote the ipddp.c driver for IP <johns393@maroon.tc.umn.edu> originally wrote the ipddp.c driver for IP
encapsulation in Appletalk. encapsulation in AppleTalk.
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
Jonathan Naylor 29.12.96 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 the Linux operating system that require a LAPB service. This document
defines the interfaces to, and the services provided by this module. The 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 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 ...@@ -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 and 7 for a standard LAPB link, and between 1 and 127 for an extended LAPB
link. 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: The bit fields have the following meanings:
Bit Meaning Bit Meaning
......
This is the ALPHA version of the ltpc driver. 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 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. netatalk package, and the Apple or Farallon LocalTalk PC card.
There are a number of different Localtalk cards for the PC; this 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. 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 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: ...@@ -20,7 +20,7 @@ The driver will autoprobe, and you should see a message like:
at bootup. at bootup.
The appropriate netatalk configuration depends on whether you are 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 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 printers, you need to set up netatalk to "seed". The way I do this
is to have the lines is to have the lines
...@@ -29,14 +29,14 @@ dummy -seed -phase 2 -net 2000 -addr 2000.26 -zone "1033" ...@@ -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" 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 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 present -- otherwise it refuses to seed. This is a hack, and a
more permanent solution would be to alter the netatalk code. more permanent solution would be to alter the netatalk code.
Note that the dummy driver needs to accept multicasts also -- earlier Note that the dummy driver needs to accept multicasts also -- earlier
versions of dummy.c may need to be patched. 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 it, then you don't need to fool around with this -- the appropriate
line in atalkd.conf is line in atalkd.conf is
...@@ -75,7 +75,7 @@ board. Set the switches so as not to conflict with other hardware. ...@@ -75,7 +75,7 @@ board. Set the switches so as not to conflict with other hardware.
IP: IP:
Many people are interested in this driver in order to use 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 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 version is available which seems to work under kernel 2.0.xx. It is
not yet functional in the 2.1.xx kernels. not yet functional in the 2.1.xx kernels.
......
...@@ -52,6 +52,6 @@ wd YES YES YES Hardware ...@@ -52,6 +52,6 @@ wd YES YES YES Hardware
znet YES YES YES Software 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. cards who go PROMISC on any multicast in a multicast kernel.
(#) = Hardware multicast support is not used yet. (#) = Hardware multicast support is not used yet.
...@@ -2,31 +2,31 @@ Wed 2-Aug-95 <matti.aarnio@utu.fi> ...@@ -2,31 +2,31 @@ Wed 2-Aug-95 <matti.aarnio@utu.fi>
Linux network driver modules 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 directory! That document tells about modules in general, while
this one tells only about network device driver modules. this one tells only about network device driver modules.
This is a potpourri of INSMOD-time(*) configuration options This is a potpourri of INSMOD-time(*) configuration options
(if such exists) and their default values of various modules (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. Some modules have also hidden (= non-documented) tunable values.
Choice of not documenting them is based on general belief, that The choice of not documenting them is based on general belief, that
the less user needs to know, the better. (There are things that the less the user needs to know, the better. (There are things that
driver developer can use, others should not confuse themselves.) driver developers can use, others should not confuse themselves.)
In many cases it is highly preferred that insmod:ing is done In many cases it is highly preferred that insmod:ing is done
ONLY with defining an explicit address for the card, AND BY ONLY with defining an explicit address for the card, AND BY
NOT USING AUTO-PROBING! 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). are compiled with (to avoid auto-probing, among other things).
If that compiled value does not match your actual configuration, 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. a value matching your environment.
If you are adventurous, you can ask the driver to autoprobe 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 thing to do in a live system. (If you don't know where the
card is located, you can try autoprobing, and after possible card is located, you can try autoprobing, and after possible
crash recovery, insmod with proper IO-address..) crash recovery, insmod with proper IO-address..)
......
...@@ -127,7 +127,7 @@ Applications ...@@ -127,7 +127,7 @@ Applications
It is funny, but pretty useless algorithm. It is funny, but pretty useless algorithm.
I listed it just to show power of new routing code. I listed it just to show power of new routing code.
5. All the variaty of combinations...... 5. All the variety of combinations......
GATED GATED
......
...@@ -49,7 +49,7 @@ As an example, here is my /etc/rc.net ...@@ -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.136.8.95 dev pt0b
/sbin/route add -host 44.255.255.255 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. 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 I hope that this all works well for you. I would be pleased to hear how
......
...@@ -18,18 +18,18 @@ The directory ftp.inr.ac.ru:/ip-routing contains: ...@@ -18,18 +18,18 @@ The directory ftp.inr.ac.ru:/ip-routing contains:
NEWS for user. 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, not only of destination address, but also source address,
TOS and incoming interface. TOS and incoming interface.
- Complete set of IP level control messages. - 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) Great win 8)
- New interface addressing paradigm. - New interface addressing paradigm.
Assignment of address ranges to interface, Assignment of address ranges to interface,
multiple prefixes etc. etc. multiple prefixes etc. etc.
Do not bother, it is compatible with old one. Moreover: Do not bother, it is compatible with old one. Moreover:
- You more need not make "route add aaa.bbb.ccc... eth0", - You more need not do "route add aaa.bbb.ccc... eth0",
it is made automatically. it is done automatically.
- "Abstract" UNIX sockets and security enhancements. - "Abstract" UNIX sockets and security enhancements.
It is necessary to use TIRPC and TLI emulation library. It is necessary to use TIRPC and TLI emulation library.
......
...@@ -29,8 +29,8 @@ for normal use. ...@@ -29,8 +29,8 @@ for normal use.
Gotchas: Gotchas:
The shaper shapes transmitted traffic. Its rather impossible to The shaper shapes transmitted traffic. It's rather impossible to
shape received traffic except at the end (or a router) transmiting it. shape received traffic except at the end (or a router) transmitting it.
Gated/routed/rwhod/mrouted all see the shaper as an additional device 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 and will treat it as such unless patched. Note that for mrouted you can run
......
...@@ -16,10 +16,10 @@ use only. ...@@ -16,10 +16,10 @@ use only.
The Interface of the driver 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 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 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 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. me for WAMPES which allows attaching a kernel network interface directly.
......
...@@ -30,8 +30,8 @@ devices are notoriously expensive, with prices as much as 2 - 5 times higher ...@@ -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. then the price of a typical PC box.
Alternatively, considering robustness and multitasking capabilities of Linux, Alternatively, considering robustness and multitasking capabilities of Linux,
an internal router can be build (most routers use some sort of stripped down an internal router can be built (most routers use some sort of stripped down
Unix-like operating system anyway). With number of relatively inexpensive WAN Unix-like operating system anyway). With a number of relatively inexpensive WAN
interface cards available on the market, a perfectly usable router can be 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 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, 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. ...@@ -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 This kernel module introduces the notion of a WAN Link Driver (WLD) to Linux
operating system and provides generic hardware-independent services for such operating system and provides generic hardware-independent services for such
drivers. Why existing Linux network device interface can not be used for drivers. Why can existing Linux network device interface not be used for
this purpose? Well, it can. However, there are few key differences between this purpose? Well, it can. However, there are a few key differences between
typical network interface (i.e. ethernet) and WAN link. 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 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 connections (known as `virtual circuits' in X.25 terminology) over a single
physical link. Each such virtual circuit may (and almost always does) lead 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 result, it is the virtual circuit, not the physical link, that represents a
route and, therefore, a network interface in Linux terms. route and, therefore, a network interface in Linux terms.
To further complicate things, virtual cuircits are usually volatile in nature To further complicate things, virtual cuircits are usually volatile in nature
(excluding so called `permanent' virtual circuits or PVCs). With almost no (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 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 unlike a typical network driver, the WAN driver must be able to handle multiple
network interfaces and cope with multiple virtual circuits come into existance network interfaces and cope as multiple virtual circuits come into existence
and go away dynamically. and go away dynamically.
Last, but not least, WAN configuration is much more complex than that of say 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 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 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 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 these needs may be possible, but does not seem quite reasonable. Therefore, a
WAN configuration utility and corresponding application programmer's interface WAN configuration utility and corresponding application programmer's interface
is needed for this purpose. is needed for this purpose.
Most of these problems are taken care of by this module. It's goal is to Most of these problems are taken care of by this module. Its goal is to
provide user with more-or-less standard look and feel for all WAN devices and provide a 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: assist a WAN device driver writer by providing common services, such as:
o User-level interface via /proc filesystem o User-level interface via /proc filesystem
o Centralized configuration o Centralized configuration
...@@ -77,7 +77,7 @@ assist WAN device driver writer by providing common services, such as: ...@@ -77,7 +77,7 @@ assist WAN device driver writer by providing common services, such as:
o Network interface management (dynamic creation/destruction) o Network interface management (dynamic creation/destruction)
o Protocol encapsulation/decapsulation 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 available from
ftp.sangoma.com/pub/linux/vX.Y.Z/wantools-X.Y.Z.tgz ftp.sangoma.com/pub/linux/vX.Y.Z/wantools-X.Y.Z.tgz
...@@ -112,12 +112,12 @@ ACKNOLEGEMENTS ...@@ -112,12 +112,12 @@ ACKNOLEGEMENTS
This product is based on the WANPIPE(tm) Multiprotocol WAN Router developed 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 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 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 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- into a separate module and define two levels of interfaces - one for user-
level applications and another for kernel-level WAN drivers. 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 were given by Mike McLagan <mike.mclagan@linux.org> and his implementation
of the Frame Relay router and drivers for Sangoma cards (dlci/sdla). of the Frame Relay router and drivers for Sangoma cards (dlci/sdla).
......
...@@ -9,25 +9,26 @@ Copyright (c) 1995-1997 Sangoma Technologies Inc. ...@@ -9,25 +9,26 @@ Copyright (c) 1995-1997 Sangoma Technologies Inc.
INTRODUCTION 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 for personal computers (ISA bus) designed to provide PC connectivity to
various communication links, such as leased lines and public data networks, at 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. including frame relay, PPP, X.25, SDLC, etc.
WANPIPE driver together with Linux WAN Router module allows you to build WANPIPE driver together with Linux WAN Router module allows you to build a
relatively inexpensive, yet high-prformance multiprotocol WAN router. For relatively inexpensive, yet high-performance multiprotocol WAN router. For
more information about Linux WAN Router please read file more information about the Linux WAN Router please read the file
Documentation/networking/wan-router.txt. You must also obtain WAN Tools Documentation/networking/wan-router.txt. You must also obtain the WAN Tools
package to be able to use Linux WAN Router and WANPIPE driver. The package 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: is available via the Internet from Sangoma Technologies' anonymous FTP server:
ftp.sangoma.com/pub/linux/wantools-X.Y.Z.tgz ftp.sangoma.com/pub/linux/wantools-X.Y.Z.tgz
or or
ftp.sangoma.com/pub/linux/wanpipe-X.Y.Z.tgz 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 The names of the packages differ only due to naming convention. The
Drivers is wanpipe-2.0.0. 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 technical questions and/or comments please e-mail to jaspreet@sangoma.com.
For general inquiries please contact Sangoma Technologies Inc. by For general inquiries please contact Sangoma Technologies Inc. by
...@@ -74,7 +75,7 @@ drivers/net: ...@@ -74,7 +75,7 @@ drivers/net:
sdladrv.c SDLA support module source code sdladrv.c SDLA support module source code
sdla_fr.c SDLA Frame Relay source code sdla_fr.c SDLA Frame Relay source code
sdla_ppp.c SDLA PPP 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 sdlamain.c SDLA support source code
include/linux: include/linux:
...@@ -137,7 +138,7 @@ REVISION HISTORY ...@@ -137,7 +138,7 @@ REVISION HISTORY
o Added support for synchronous PPP o Added support for synchronous PPP
o Added support for S503 adapter o Added support for S503 adapter
o Added API for executing adapter commands 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 Changed interface between SDLA driver and protocol support modules
o Updated frame relay firmware o Updated frame relay firmware
......
Sun Jul 2 01:38:33 EST 1995 Sun Jul 2 01:38:33 EST 1995
1. At present the driver autoprobes for a WaveLAN card only at I/O address 0x390. 1. At present the driver autoprobes for a WaveLAN card only at I/O address
The version of the card that I use (NCR) supports four I/O addresses (selectable 0x390. The version of the card that I use (NCR) supports four I/O addresses
via a pair of DIP switches). If you want the driver to autoprobe a different (selectable via a pair of DIP switches). If you want the driver to
subset of the four valid addresses then you will need to edit autoprobe a different subset of the four valid addresses then you will need
.../drivers/net/wavelan.c (near line 714) and change the initialisation of the to edit .../drivers/net/wavelan.c (near line 714) and change the
`iobase[]' array. Normally, I use a LILO configuration file directive to initialisation of the `iobase[]' array. Normally, I use a LILO
obviate the need for autoprobing entirely, a course of action I heartily configuration file directive to obviate the need for autoprobing entirely,
recommend. a course of action I heartily recommend.
2. By default, the driver uses the Network ID (NWID) stored in the card's Parameter 2. By default, the driver uses the Network ID (NWID) stored in the card's
Storage Area (PSA). However, the PSA NWID can be overridden by a value passed Parameter Storage Area (PSA). However, the PSA NWID can be overridden by a
explicitly as the third numeric argument to LILO's "ether=" directive, either value passed explicitly as the third numeric argument to LILO's "ether="
at the LILO prompt at boot time or within LILO's configuration file. 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 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 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": 0x4321, all on a WaveLAN card labelled "eth0":
......
...@@ -7,8 +7,8 @@ Layer and the X.25 device driver. They are designed to allow for the easy ...@@ -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. 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 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 standards. Most X.25 device drivers will be moderately similar to the
already existing Eethernet device drivers. However unlike those drivers, the already existing Ethernet device drivers. However unlike those drivers, the
X.25 device driver has a state associated with it, and this information 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. needs to be passed to and from the Packet Layer for proper operation.
......
...@@ -19,7 +19,7 @@ To confuse matters a little, an 802.2 LLC implementation for Linux is being ...@@ -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 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 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 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 implementation is being done as part of another protocol project (SNA) and
by a different author. by a different author.
......
...@@ -232,7 +232,7 @@ will print a skeleton z8530drv.conf for the OptoSCC to stdout. ...@@ -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 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... to edit scc_config.h...
...@@ -318,9 +318,9 @@ the kernel AX.25. ...@@ -318,9 +318,9 @@ the kernel AX.25.
======================= =======================
Since the TTY driver (aka KISS TNC emulation) is gone you need Since the TTY driver (aka KISS TNC emulation) is gone you need
to emulate the old behaviour. The cost using these programs is to emulate the old behaviour. The cost of using these programs is
that you probably need to compile the kernel AX.25, regardless that you probably need to compile the kernel AX.25, regardless of whether
if you actually use it or not. First setup your /etc/ax25/axports, you actually use it or not. First setup your /etc/ax25/axports,
for example: for example:
9k6 dl0tha-9 9600 255 4 9600 baud port (scc3) 9k6 dl0tha-9 9600 255 4 9600 baud port (scc3)
...@@ -406,7 +406,7 @@ NoSpace - number of times a buffer could not get allocated ...@@ -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 An overrun is abnormal. If lots of these occur, the product of
baudrate and number of interfaces is too high for the processing 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. driver or the kernel AX.25.
...@@ -559,7 +559,7 @@ txoff: ...@@ -559,7 +559,7 @@ txoff:
group: group:
It is possible to build special radio equipment to use more than 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. only one transmitter that can be switched between frequencies.
Also, you can connect several radios that are active on the same 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 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. ...@@ -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 (i.e. Amstrad) Those systems have a bogus AT bus timing which will
lead to delayed answers on interrupts. You can recognize these lead to delayed answers on interrupts. You can recognize these
problems by looking at the output of Sccstat for the suspected 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 Delayed processing of received data: This depends on
...@@ -634,7 +634,7 @@ 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. - 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. really occurred within the scc driver.
If you cannot solve a problem, send me If you cannot solve a problem, send me
......
...@@ -81,7 +81,7 @@ ip=<client-ip>:<server-ip>:<gw-ip>:<netmask>:<hostname>:<device>:<autoconf> ...@@ -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 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', 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 was renamed to `ip' and the old name remained as an alias for compatibility
reasons. reasons.
...@@ -106,14 +106,14 @@ ip=<client-ip>:<server-ip>:<gw-ip>:<netmask>:<hostname>:<device>:<autoconf> ...@@ -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 the address of the server is used which answered the RARP
or BOOTP request. 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 subnet. If this entry is empty no gateway is used and the
server is assumed to be on the local network, unless a server is assumed to be on the local network, unless a
value has been received by BOOTP. value has been received by BOOTP.
<netmask> Netmask for local network interface. If this is empty, <netmask> Netmask for local network interface. If this is empty,
the netmask is derived from the client IP address assuming 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 <hostname> Name of the client. If empty, the client IP address is
used in ASCII-notation, or the value received by BOOTP. used in ASCII-notation, or the value received by BOOTP.
......
...@@ -41,7 +41,7 @@ and then you get a better idea of what happens than with the gdb ...@@ -41,7 +41,7 @@ and then you get a better idea of what happens than with the gdb
disassembly. disassembly.
Now, the trick is just then to combine all the data you have: the C 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 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 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 corrupted pointers were, and when you have the assembler listing you can
......
...@@ -146,10 +146,10 @@ will need them to identify the devices. ...@@ -146,10 +146,10 @@ will need them to identify the devices.
If you happen to be using a MicroSolutions backpack device, you will 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 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). 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 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 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 Imation Superdisk connected to port 0x278. You could give the following
......
...@@ -22,7 +22,7 @@ ID, it should use: ...@@ -22,7 +22,7 @@ ID, it should use:
In case you want to do some complex matching, look at pci_devices -- it's 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. a linked list of pci_dev structures for all PCI devices in the system.
All these methods return pointer to a pci_dev structure which is used as a 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 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 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 pci_dev->devfn. Feel free to use all other fields of the pci_dev structure, but
...@@ -34,8 +34,8 @@ machine. ...@@ -34,8 +34,8 @@ machine.
2. How to access PCI config space 2. How to access PCI config space
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can use pci_(read|write)_config_(byte|word|dword) to access the config You can use pci_(read|write)_config_(byte|word|dword) to access the config
space of device represented by pci_dev. All these functions return 0 when space of a device represented by pci_dev. All these functions return 0 when
successfull or an error code (PCIBIOS_...) which can be translated to text 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 string by pcibios_strerror. Most drivers expect that accesses to valid PCI
devices don't fail. devices don't fail.
......
Index of files in Documentation/powerpc. If you think something about 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. please mail me.
Cort Dougan (cort@cs.nmt.edu) Cort Dougan (cort@cs.nmt.edu)
......
...@@ -31,7 +31,7 @@ command has changed. ...@@ -31,7 +31,7 @@ command has changed.
Also, the new ramdisk supports up to 16 ramdisks out of the box, and can 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 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 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. uses minor #1, so start with ram2 and go from there.
The old "ramdisk=<ram_size>" has been changed to "ramdisk_size=<ram_size>" 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, ...@@ -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 allowing one to squeeze more programs onto an average installation or
rescue floppy disk. 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 equivalent from the standpoint of this document. Also, the new ramdisk
is a config option. When running "make config", make sure you enable is a config option. When running "make config", make sure you enable
ramdisk support for the kernel you intend to use the ramdisk with. 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 ...@@ -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 indicates whether a prompt/wait sequence is to be given before trying
to read the ramdisk. Since the ramdisk dynamically grows as data is 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 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: are no magical secrets, as seen below:
./arch/i386/kernel/setup.c:#define RAMDISK_IMAGE_START_MASK 0x07FF ./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 ...@@ -160,7 +160,7 @@ of RAM. If using a spare disk partition instead of /dev/ram, then this
restriction does not apply. restriction does not apply.
a) Decide on the ramdisk size that you want. Say 2MB for this example. 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 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 area (esp. for disks) so that maximal compression is achieved for
the unused blocks of the image that you are about to create. the unused blocks of the image that you are about to create.
......
...@@ -13,20 +13,20 @@ Misc. notes for RISCom/8 serial driver, in no particular order :) ...@@ -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=..." as module use insmod options "iobase=0xXXX iobase1=0xXXX iobase2=..."
2) The driver partially supports famous 'setserial' program, you can use almost 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 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. comments and try to change some of them in case of problems.
4) I consider the current state of the driver as BETA. 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. fix it. For any other problems please ask support@sdlcomm.com.
5) SDL Communications WWW page is http://www.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. 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. 22 Apr 1996.
......
...@@ -5,7 +5,7 @@ understand your options, we should first define a few terms. ...@@ -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 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 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 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. if you unload the modules, it will have to be the last one unloaded.
......
...@@ -8,7 +8,7 @@ kernel images on hand. Edit /etc/lilo.conf to create an entry ...@@ -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. for another kernel image called "linux-smp" or something.
The next time you compile the kernel, when running a SMP kernel, 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 (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 you can just use "-j" without a number). Feel free to experiment
with this one. with this one.
...@@ -20,4 +20,4 @@ Example: ...@@ -20,4 +20,4 @@ Example:
If you are using some Compaq MP compliant machines you will need to set 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 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.
...@@ -39,11 +39,11 @@ The Intel pentium processors have a wide variety of inbuilt facilities for ...@@ -39,11 +39,11 @@ The Intel pentium processors have a wide variety of inbuilt facilities for
supporting multiprocessing, including hardware cache coherency, built in supporting multiprocessing, including hardware cache coherency, built in
interprocessor interrupt handling and a set of atomic test and set, interprocessor interrupt handling and a set of atomic test and set,
exchange and similar operations. The cache coherency in particular makes the 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 specification defines a detailed configuration structure in ROM that
the boot up processor can read to find the full configuration of the 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. other processors.
...@@ -53,7 +53,7 @@ locking and protection of its own tables to prevent two processes updating ...@@ -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 them at once and for example allocating the same memory block. There are
two strategies for this within current Unix and Unixlike kernels. two strategies for this within current Unix and Unixlike kernels.
Traditional unix systems from the earliest of days use a scheme of 'Coarse 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 locks only. Some modern systems use fine grained locking. Because fine
grained locking has more overhead it is normally used only on grained locking has more overhead it is normally used only on
multiprocessor kernels and real time kernels. In a real time kernel the 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 ...@@ -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 kernel mode will be pre-empted by another kernel mode process unless it
voluntarily sleeps. This ensures that blocks of kernel code are voluntarily sleeps. This ensures that blocks of kernel code are
effectively atomic with respect to other processes and greatly simplifies 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 but will always return to that process. A process in kernel mode may
disable interrupts on the processor and guarantee such an interruption will 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 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 ...@@ -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. 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)} {\tt \bf void smp\_callin(void)}
...@@ -142,7 +142,7 @@ they will run when they have no real work to process. ...@@ -142,7 +142,7 @@ they will run when they have no real work to process.
\subsubsection{Scheduling} \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 scheduler. The basic structure of this scheduler is unchanged in the
multiprocessor kernel. A processor field is added to each task, and this 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 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 ...@@ -185,7 +185,7 @@ that are provided by the processor specification functionality. These are
{\tt \bf int smp\_processor\_id(void) } {\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 call is assumed to be valid at all times. This may mean additional tests
are needed during initialisation. are needed during initialisation.
...@@ -203,7 +203,7 @@ work. Refer to the processor specific code documentation for more details. ...@@ -203,7 +203,7 @@ work. Refer to the processor specific code documentation for more details.
\subsection{Architecture Specific Code For the Intel MP Port} \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 into four sections. Firstly the initialisation code used to boot the
system, secondly the message handling and support code, thirdly the system, secondly the message handling and support code, thirdly the
interrupt and kernel syscall entry function handling and finally 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 ...@@ -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 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 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 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 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 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 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. \ ...@@ -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 The /proc filesystem support is changed so that the /proc/cpuinfo file
contains a column for each processor present. This information is extracted 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} \end{document}
...@@ -18,7 +18,7 @@ course with the suitable values for the parameters): ...@@ -18,7 +18,7 @@ course with the suitable values for the parameters):
alias char-major-14 sb alias char-major-14 sb
post-install sb modprobe "-k" "adlib_card" post-install sb modprobe "-k" "adlib_card"
options sb io=0x220 irq=5 dma=1 dma16=5 mpu_io=0x330 options sb io=0x220 irq=5 dma=1 dma16=5 mpu_io=0x330
options adlib_card io=0x388 # FM synthetiser options adlib_card io=0x388 # FM synthesiser
and then these two commands can be issued: and then these two commands can be issued:
......
...@@ -24,7 +24,7 @@ and resources specified in /etc/isapnp.conf agree. ...@@ -24,7 +24,7 @@ and resources specified in /etc/isapnp.conf agree.
Compiling the sound driver Compiling the sound driver
-------------------------- --------------------------
I highly recommend that you build a modularized sound driver. I highly recommend that you build a modularized sound driver.
This document does not cover sound-driver which is built in This document does not cover a sound-driver which is built in
the kernel. the kernel.
Sound card support should be enabled as a module (chose m). Sound card support should be enabled as a module (chose m).
...@@ -95,7 +95,7 @@ request to loading the main sound module. The main sound module ...@@ -95,7 +95,7 @@ request to loading the main sound module. The main sound module
contains only common code which is needed by all the sound drivers, contains only common code which is needed by all the sound drivers,
and the driver for /dev/sndstat. and the driver for /dev/sndstat.
The sound module in it's turn will request loading of a sub-driver The sound module in its turn will request loading of a sub-driver
for mixer, audio, midi or synthesizer device. The first 3 are for mixer, audio, midi or synthesizer device. The first 3 are
supported by the mad16 driver. The synth device is supported supported by the mad16 driver. The synth device is supported
by the opl3 driver. by the opl3 driver.
...@@ -105,7 +105,7 @@ if more than one card is installed. ...@@ -105,7 +105,7 @@ if more than one card is installed.
options sb mad16=1 options sb mad16=1
This is left for historical reason. If you enable the This is left for historical reasons. If you enable the
config option 'Support MIDI in older MAD16 based cards (requires SB)' 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 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 SoundBlaster driver. This option tells the SB driver not to look
...@@ -154,11 +154,11 @@ If you do use the sound card it is important that you load ...@@ -154,11 +154,11 @@ If you do use the sound card it is important that you load
the mad16 driver (use "modprobe mad16" to prevent auto-unloading) the mad16 driver (use "modprobe mad16" to prevent auto-unloading)
before the cdrom is accessed the first time. before the cdrom is accessed the first time.
Using the sound driver built-in the kernel may help here. but... 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. 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 The IDE controller on the sound card may be needed only on older
systems (which have only one IDE controller) but these systems systems (which have only one IDE controller) but these systems
also do not have a PnP bios - requiring isapnptoosl and a modularized also do not have a PnP bios - requiring isapnptools and a modularized
driver. driver.
Known problems Known problems
...@@ -167,8 +167,8 @@ Known problems ...@@ -167,8 +167,8 @@ Known problems
2. On my system the codec cannot capture companded sound samples. 2. On my system the codec cannot capture companded sound samples.
(eg., recording from /dev/audio). When any companded capture is (eg., recording from /dev/audio). When any companded capture is
requested I get a stereo-16 bit samples instead. Playback of requested I get stereo-16 bit samples instead. Playback of
companded samples work well. Apparently this problem is not common companded samples works well. Apparently this problem is not common
to all C931 based cards. I do not know how to identify cards that to all C931 based cards. I do not know how to identify cards that
have this problem. have this problem.
......
...@@ -4,7 +4,7 @@ insmod uart401 ...@@ -4,7 +4,7 @@ insmod uart401
insmod sb ... insmod sb ...
This loads the driver for the soundblaster and assorted clones. Cards that 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 The soundblaster module takes the following arguments
...@@ -34,5 +34,5 @@ OS. IBM are being difficult about documenting how to load this firmware. ...@@ -34,5 +34,5 @@ OS. IBM are being difficult about documenting how to load this firmware.
Avance Logic ALS007 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. add limited support.
...@@ -36,7 +36,7 @@ The steps, then: ...@@ -36,7 +36,7 @@ The steps, then:
BootGUI=0 BootGUI=0
[Note msdos.sys IS a text file but it needs to be 'unhidden' and make [Note msdos.sys IS a text file but it needs to be 'unhidden' and make
read-writable before it can be eddited] read-writable before it can be edited]
Edit Config .sys to have multiple config menus. I have one for win95, and Edit Config .sys to have multiple config menus. I have one for win95, and
five for linux. Like this: five for linux. Like this:
...@@ -123,7 +123,7 @@ initrd image, and has a parm file named LINDOC3.PAR in c:\linux\boot\parms: ...@@ -123,7 +123,7 @@ initrd image, and has a parm file named LINDOC3.PAR in c:\linux\boot\parms:
# #
c:\linux\boot\zImage.krn # first value must be the filename of the Linux-kernel 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 root=/dev/hda3 # the device which gets mounted as root FS
ro # Other kernel agruments go here ro # Other kernel arguments go here
apm=off apm=off
doc=yes doc=yes
3 3
...@@ -170,7 +170,7 @@ Default=SBPRO ...@@ -170,7 +170,7 @@ Default=SBPRO
Reboot to Win95 and choose Linux. When booted, use sndconfig to configure the Reboot to Win95 and choose Linux. When booted, use sndconfig to configure the
sound modules and VOILA - ThinkPad sound with Linux. sound modules and VOILA - ThinkPad sound with Linux.
Now the gottchas - You can either have CD sound OR Mixers but not both. Thats a 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 problem with the SB1.5(CD sound) or SBPRO(Mixers) settings. No-one knows why
this is! this is!
......
...@@ -3,7 +3,7 @@ insmod sound ...@@ -3,7 +3,7 @@ insmod sound
insmod ad1848 insmod ad1848
insmod gus io=* irq=* dma=* ... insmod gus io=* irq=* dma=* ...
This loads the driver for the Gravis Ultrasound familily of soundcards. This loads the driver for the Gravis Ultrasound family of soundcards.
The gus modules takes the following arguments The gus modules takes the following arguments
...@@ -22,7 +22,7 @@ no_wave_dma option ...@@ -22,7 +22,7 @@ no_wave_dma option
This option defaults to a value of 0, which allows the Ultrasound wavetable 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 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, 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 simultanious digital audio and allows owners of a GUS MAX to make use of simultaneous digital audio
(/dev/dsp), MIDI, and wavetable playback. (/dev/dsp), MIDI, and wavetable playback.
......
...@@ -44,10 +44,10 @@ instead of in a manual that can get lost. Ever misplace your Linux ...@@ -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? 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. The dip switch sets bits 2-9 of the IO address.
9 8 7 6 5 4 3 2 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 ...@@ -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 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 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 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 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.) 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] ...@@ -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 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 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. caused by the baud rate being just a little bit out of tune.
......
...@@ -6,7 +6,7 @@ On Fri, 2 Jan 1998, Doug Ledford wrote: ...@@ -6,7 +6,7 @@ On Fri, 2 Jan 1998, Doug Ledford wrote:
> SMP safe as well as UP safe during interrupts and other manipulating > 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 > 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 > 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 > 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 > 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 > 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: ...@@ -25,7 +25,7 @@ See <asm/spinlock.h>. The basic version is:
... critical section here .. ... critical section here ..
spin_unlock_irqrestore(&xxx_lock, flags); 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 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 there is only one thread-of-control within the region(s) protected by that
lock. lock.
......
...@@ -94,7 +94,7 @@ the kernel or modules. ...@@ -94,7 +94,7 @@ the kernel or modules.
When the new kernel is booted, or the loadable module loaded then the When the new kernel is booted, or the loadable module loaded then the
driver will emit some kernel trace messages about whether the configured 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 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. /var/adm/messages. You should check the messages to confirm that all is well.
...@@ -141,7 +141,7 @@ addressing limit). ...@@ -141,7 +141,7 @@ addressing limit).
The higher than 1Mb memory addresses are fully supported by this driver. 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 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. ...@@ -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 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 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 the package files, by typing "make". In its simplest form you can then type
./stlload -i cdk.sys ./stlload -i cdk.sys
in this directory and that will download board 0 (assuming board 0 is an 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! ...@@ -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 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 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 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 addresses of boards). Higher baud rates are supported in the usual fashion
through setserial or using the CBAUDEX extensions. Note that the EasyIO and through setserial or using the CBAUDEX extensions. Note that the EasyIO and
......
...@@ -5,8 +5,8 @@ ...@@ -5,8 +5,8 @@
1. Intro 1. Intro
~~~~~~~~ ~~~~~~~~
This small document describes the "Video Mode Selection" feature which This small document describes the "Video Mode Selection" feature which
allows to use various special video modes supported by the video BIOS. Due allows the use of 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 to usage of the BIOS, the selection is limited to boot time (before the
kernel decompression starts) and works only on 80X86 machines. kernel decompression starts) and works only on 80X86 machines.
The video mode to be used is selected by a kernel parameter which can be 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 ...@@ -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 how to enable it if you really want) as it's inherently unreliable due to
absolutely insane PC design. 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 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). 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 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. 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 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 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 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...) ...@@ -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 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 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 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 of the table (which also includes a video card name to be displayed on the
top of the menu). top of the menu).
...@@ -201,7 +201,7 @@ your kernel with the video mode set directly via the kernel parameter. ...@@ -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_ 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. 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 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 current settings") to Linux, because if you don't and you use any non-standard
mode, Linux will switch to 80x25 automatically. mode, Linux will switch to 80x25 automatically.
......
...@@ -43,7 +43,7 @@ When the value in this file is 0, ctrl-alt-del is trapped and ...@@ -43,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. sent to the init(1) program to handle a graceful restart.
When, however, the value is > 0, Linux's reaction to a Vulcan When, however, the value is > 0, Linux's reaction to a Vulcan
Nerve Pinch (tm) will be an immediate reboot, without even 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' Note: when a program (like dosemu) has the keyboard in 'raw'
mode, the ctrl-alt-del is intercepted by the program before it mode, the ctrl-alt-del is intercepted by the program before it
...@@ -68,7 +68,7 @@ struct { ...@@ -68,7 +68,7 @@ struct {
Dentries are dynamically allocated and deallocated, and Dentries are dynamically allocated and deallocated, and
nr_dentry seems to be 0 all the time. Hence it's safe to 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 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 Age_limit is the age in seconds after which dcache entries
can be reclaimed when memory is short and want_pages is can be reclaimed when memory is short and want_pages is
nonzero when shrink_dcache_pages() has been called and the nonzero when shrink_dcache_pages() has been called and the
...@@ -101,7 +101,7 @@ The three values in file-nr denote the number of allocated ...@@ -101,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 file handles, the number of used file handles and the maximum
number of file handles. When the allocated filehandles come number of file handles. When the allocated filehandles come
close to the maximum, but the number of actually used ones is 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. and you don't need to increase the maximum.
============================================================== ==============================================================
...@@ -112,7 +112,7 @@ As with filehandles, the kernel allocates the inode structures ...@@ -112,7 +112,7 @@ As with filehandles, the kernel allocates the inode structures
dynamically, but can't free them yet... dynamically, but can't free them yet...
The value in inode-max denotes the maximum number of inode 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 in file-max, since stdin, stdout and network sockets also
need an inode struct to handle them. When you regularly run need an inode struct to handle them. When you regularly run
out of inodes, you need to increase this value. out of inodes, you need to increase this value.
...@@ -126,7 +126,7 @@ nr_free_inodes and preshrink. ...@@ -126,7 +126,7 @@ nr_free_inodes and preshrink.
Nr_inodes stands for the number of inodes the system has Nr_inodes stands for the number of inodes the system has
allocated, this can be slightly more than inode-max because 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 Nr_free_inodes represents the number of free inodes (?) and
preshrink is nonzero when the nr_inodes > inode-max and the preshrink is nonzero when the nr_inodes > inode-max and the
......
...@@ -62,7 +62,7 @@ of the buffer still have to be written to disk (as opposed ...@@ -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). to a clean buffer, which can just be forgotten about).
Setting this to a high value means that Linux can delay disk 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 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. value will spread out disk I/O more evenly.
The second parameter (ndirty) gives the maximum number of The second parameter (ndirty) gives the maximum number of
...@@ -94,7 +94,8 @@ buffermem: ...@@ -94,7 +94,8 @@ buffermem:
The three values in this file correspond to the values in The three values in this file correspond to the values in
the struct buffer_mem. It controls how much memory should 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: The values are:
min_percent -- this is the minumum percentage of memory min_percent -- this is the minumum percentage of memory
...@@ -111,29 +112,9 @@ freepages: ...@@ -111,29 +112,9 @@ freepages:
This file contains the values in the struct freepages. That This file contains the values in the struct freepages. That
struct contains three members: min, low and high. struct contains three members: min, low and high.
These numbers are used by the VM subsystem to keep a reasonable These variables are currently unused (?), but they're
number of pages on the free page list, so that programs can very likely to be abused for something else in the near
allocate new pages without having to wait for the system to future, so don't yet remove it from the source...
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.
============================================================== ==============================================================
...@@ -209,23 +190,23 @@ typedef struct swap_control_v5 ...@@ -209,23 +190,23 @@ typedef struct swap_control_v5
} 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 page aging. Page aging is a bookkeeping method to keep track
of which pages of memory are used often, and which pages can of which pages of memory are used often, and which pages can
be swapped out without consequences. be swapped out without consequences.
When a page is swapped in, it starts at sc_page_initial_age 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: is adjusted according to the following scheme:
- if the page was used since the last time we scanned, it's - if the page was used since the last time we scanned, its
age is increased sc_page_advance (default 3) up to a maximum age is increased by sc_page_advance (default 3) up to a maximum
of sc_max_page_age (default 20) 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) (default 1)
And when a page reaches age 0, it's ready to be swapped out. 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 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 sc_age_cluster_fract is used to calculate how many pages from
a process are to be scanned by kswapd. The formula used is 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 ...@@ -236,10 +217,10 @@ represented by sc_age_cluster_min, this is done so kswapd will
also scan small processes. also scan small processes.
The values of sc_pageout_weight and sc_bufferout_weight are 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 to swapout one page / buffer. These values can be used to
finetune the ratio between user pages and buffer/cache memory. 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 process pages in order to satisfy buffer memory demands, you
might want to either increase sc_bufferout_weight, or decrease might want to either increase sc_bufferout_weight, or decrease
the value of sc_pageout_weight. the value of sc_pageout_weight.
......
...@@ -14,8 +14,8 @@ contents on the clients and on the server, but have to be replicated ...@@ -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 This duplication causes very large efforts in practise, since at least
the /etc directory has to be duplicated for every client. Even in /etc the /etc directory has to be duplicated for every client. Even in /etc
many files are identical, for example sendmail.cf, initrc scripts and many files are identical, for example sendmail.cf, initrc scripts and
others. Maintaining a large pool means to ensure coherence amoung the others. Maintaining a large pool requires means to ensure coherence among
duplicates. Classical methods like symlinks are unconvenient the duplicates. Classical methods like symlinks are inconvenient
for this task because they have to be valid in the view of mounted for this task because they have to be valid in the view of mounted
filesystems at all clients, not at the server. filesystems at all clients, not at the server.
...@@ -28,17 +28,17 @@ create two different files named /etc/config#host=myserver# and ...@@ -28,17 +28,17 @@ create two different files named /etc/config#host=myserver# and
file /etc/config (without the #...=...# suffix). On host "myclient", file /etc/config (without the #...=...# suffix). On host "myclient",
the corresponding other file will appear as /etc/config. So you the corresponding other file will appear as /etc/config. So you
can access the right file contents under the _same_ name, depending 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 A similar concept can be found in older HP-UX versions, but with
so-called "hidden directories" which don't allow contemporary viewing so-called "hidden directories" which don't allow contemporary viewing of
all versions by default. In contrast, transname shows all context-dependent all versions by default. In contrast, transname shows all context-dependent
files in the dir listing and they can be edited using the files in the dir listing and they can be edited using the
fully qualified name. fully qualified name.
Transname was developped for and is used at our Linux pool at the Transname was developed for and is used at our Linux pool at the
University of Stuttgart with good results. Maintainance of the pool is University of Stuttgart with good results. Maintenance of the pool is
at a minimum, and adding new clients is a child's play. No worry with at a minimum, and adding new clients is child's play. No worry with
keeping up mail configurations, newly installed tools, changed /etc/services, keeping up mail configurations, newly installed tools, changed /etc/services,
/etc/shells, /etc/resolv.conf and many, many others. In contrast to a /etc/shells, /etc/resolv.conf and many, many others. In contrast to a
sophisticated symlink solution, adding a new file to the /etc directory sophisticated symlink solution, adding a new file to the /etc directory
...@@ -46,7 +46,7 @@ is seen immediately by all clients. ...@@ -46,7 +46,7 @@ is seen immediately by all clients.
An example for the use of linux-2.0-transname.patch: 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 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 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 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 ...@@ -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, "diskless" into different kernels for servers and clients. Of course,
if your clients boot via bootp and know their names when mounting the root, 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 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, 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#ktype=diskless# for the majority of the clients and
/etc/fstab#host=myclient# for some specific client, because translation /etc/fstab#host=myclient# for some specific client, because translation
...@@ -73,7 +73,7 @@ five types of default translations are supported: ...@@ -73,7 +73,7 @@ five types of default translations are supported:
Others may be added in future. 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 for easier debugging, and can be retrieved by reading
/proc/sys/kernel/nametrans which is a special file containing the currently /proc/sys/kernel/nametrans which is a special file containing the currently
valid translations. valid translations.
...@@ -105,7 +105,7 @@ back to the default translations by executing ...@@ -105,7 +105,7 @@ back to the default translations by executing
echo "" > /proc/sys/kernel/nametrans echo "" > /proc/sys/kernel/nametrans
Another drawback is that administration tools currently are not aware of 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 one tool session. However, you can simulate administration sessions
on the server as if they were running on some client. To do this, 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 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 ...@@ -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 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 /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 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 "touch /etc/mtab.tmp#host=CREATE#", because mount, umount and others
running on different hosts would otherwise try to create one shared running on different hosts would otherwise try to create one shared
/etc/mtab which would result in a clash. Also one should execute /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 ...@@ -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 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 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 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! first reboot!
Just reboot the new kernel and play a little bit around with 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. Try all modes including setting NAMETRANS to different values.
As an example for the changes necessary on our LST-1.8-based Linux pool, 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 ...@@ -247,7 +247,7 @@ where /usr/sbin/rpc.mountd has the contents
#!/bin/sh #!/bin/sh
exec /usr/bin/env - NAMETRANS= "`/usr/bin/env`" $0.notrans $* 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, Enjoy,
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment