1 |
1275 |
phoenix |
This is the ALPHA version of the ltpc driver.
|
2 |
|
|
|
3 |
|
|
In order to use it, you will need at least version 1.3.3 of the
|
4 |
|
|
netatalk package, and the Apple or Farallon LocalTalk PC card.
|
5 |
|
|
There are a number of different LocalTalk cards for the PC; this
|
6 |
|
|
driver applies only to the one with the 65c02 processor chip on it.
|
7 |
|
|
|
8 |
|
|
To include it in the kernel, select the CONFIG_LTPC switch in the
|
9 |
|
|
configuration dialog. You can also compile it as a module.
|
10 |
|
|
|
11 |
|
|
While the driver will attempt to autoprobe the I/O port address, IRQ
|
12 |
|
|
line, and DMA channel of the card, this does not always work. For
|
13 |
|
|
this reason, you should be prepared to supply these parameters
|
14 |
|
|
yourself. (see "Card Configuration" below for how to determine or
|
15 |
|
|
change the settings on your card)
|
16 |
|
|
|
17 |
|
|
When the driver is compiled into the kernel, you can add a line such
|
18 |
|
|
as the following to your /etc/lilo.conf:
|
19 |
|
|
|
20 |
|
|
append="ltpc=0x240,9,1"
|
21 |
|
|
|
22 |
|
|
where the parameters (in order) are the port address, IRQ, and DMA
|
23 |
|
|
channel. The second and third values can be omitted, in which case
|
24 |
|
|
the driver will try to determine them itself.
|
25 |
|
|
|
26 |
|
|
If you load the driver as a module, you can pass the parameters "io=",
|
27 |
|
|
"irq=", and "dma=" on the command line with insmod or modprobe, or add
|
28 |
|
|
them as options in /etc/modules.conf:
|
29 |
|
|
|
30 |
|
|
alias lt0 ltpc # autoload the module when the interface is configured
|
31 |
|
|
options ltpc io=0x240 irq=9 dma=1
|
32 |
|
|
|
33 |
|
|
Before starting up the netatalk demons (perhaps in rc.local), you
|
34 |
|
|
need to add a line such as:
|
35 |
|
|
|
36 |
|
|
/sbin/ifconfig lt0 127.0.0.42
|
37 |
|
|
|
38 |
|
|
The address is unimportant - however, the card needs to be configured
|
39 |
|
|
with ifconfig so that Netatalk can find it.
|
40 |
|
|
|
41 |
|
|
The appropriate netatalk configuration depends on whether you are
|
42 |
|
|
attached to a network that includes AppleTalk routers or not. If,
|
43 |
|
|
like me, you are simply connecting to your home Macintoshes and
|
44 |
|
|
printers, you need to set up netatalk to "seed". The way I do this
|
45 |
|
|
is to have the lines
|
46 |
|
|
|
47 |
|
|
dummy -seed -phase 2 -net 2000 -addr 2000.26 -zone "1033"
|
48 |
|
|
lt0 -seed -phase 1 -net 1033 -addr 1033.27 -zone "1033"
|
49 |
|
|
|
50 |
|
|
in my atalkd.conf. What is going on here is that I need to fool
|
51 |
|
|
netatalk into thinking that there are two AppleTalk interfaces
|
52 |
|
|
present; otherwise, it refuses to seed. This is a hack, and a more
|
53 |
|
|
permanent solution would be to alter the netatalk code. Also, make
|
54 |
|
|
sure you have the correct name for the dummy interface - If it's
|
55 |
|
|
compiled as a module, you will need to refer to it as "dummy0" or some
|
56 |
|
|
such.
|
57 |
|
|
|
58 |
|
|
If you are attached to an extended AppleTalk network, with routers on
|
59 |
|
|
it, then you don't need to fool around with this -- the appropriate
|
60 |
|
|
line in atalkd.conf is
|
61 |
|
|
|
62 |
|
|
lt0 -phase 1
|
63 |
|
|
|
64 |
|
|
--------------------------------------
|
65 |
|
|
|
66 |
|
|
Card Configuration:
|
67 |
|
|
|
68 |
|
|
The interrupts and so forth are configured via the dipswitch on the
|
69 |
|
|
board. Set the switches so as not to conflict with other hardware.
|
70 |
|
|
|
71 |
|
|
Interrupts -- set at most one. If none are set, the driver uses
|
72 |
|
|
polled mode. Because the card was developed in the XT era, the
|
73 |
|
|
original documentation refers to IRQ2. Since you'll be running
|
74 |
|
|
this on an AT (or later) class machine, that really means IRQ9.
|
75 |
|
|
|
76 |
|
|
SW1 IRQ 4
|
77 |
|
|
SW2 IRQ 3
|
78 |
|
|
SW3 IRQ 9 (2 in original card documentation only applies to XT)
|
79 |
|
|
|
80 |
|
|
|
81 |
|
|
DMA -- choose DMA 1 or 3, and set both corresponding switches.
|
82 |
|
|
|
83 |
|
|
SW4 DMA 3
|
84 |
|
|
SW5 DMA 1
|
85 |
|
|
SW6 DMA 3
|
86 |
|
|
SW7 DMA 1
|
87 |
|
|
|
88 |
|
|
|
89 |
|
|
I/O address -- choose one.
|
90 |
|
|
|
91 |
|
|
SW8 220 / 240
|
92 |
|
|
|
93 |
|
|
--------------------------------------
|
94 |
|
|
|
95 |
|
|
IP:
|
96 |
|
|
|
97 |
|
|
Yes, it is possible to do IP over LocalTalk. However, you can't just
|
98 |
|
|
treat the LocalTalk device like an ordinary Ethernet device, even if
|
99 |
|
|
that's what it looks like to Netatalk.
|
100 |
|
|
|
101 |
|
|
Instead, you follow the same procedure as for doing IP in EtherTalk.
|
102 |
|
|
See Documentation/networking/ipddp.txt for more information about the
|
103 |
|
|
kernel driver and userspace tools needed.
|
104 |
|
|
|
105 |
|
|
--------------------------------------
|
106 |
|
|
|
107 |
|
|
BUGS:
|
108 |
|
|
|
109 |
|
|
IRQ autoprobing often doesn't work on a cold boot. To get around
|
110 |
|
|
this, either compile the driver as a module, or pass the parameters
|
111 |
|
|
for the card to the kernel as described above.
|
112 |
|
|
|
113 |
|
|
Also, as usual, autoprobing is not recommended when you use the driver
|
114 |
|
|
as a module. (though it usually works at boot time, at least)
|
115 |
|
|
|
116 |
|
|
Polled mode is *really* slow sometimes, but this seems to depend on
|
117 |
|
|
the configuration of the network.
|
118 |
|
|
|
119 |
|
|
It may theoretically be possible to use two LTPC cards in the same
|
120 |
|
|
machine, but this is unsupported, so if you really want to do this,
|
121 |
|
|
you'll probably have to hack the initialization code a bit.
|
122 |
|
|
|
123 |
|
|
______________________________________
|
124 |
|
|
|
125 |
|
|
THANKS:
|
126 |
|
|
Thanks to Alan Cox for helpful discussions early on in this
|
127 |
|
|
work, and to Denis Hainsworth for doing the bleeding-edge testing.
|
128 |
|
|
|
129 |
|
|
-- Bradford Johnson
|
130 |
|
|
|
131 |
|
|
-- Updated 11/09/1998 by David Huggins-Daines
|