• Home
  • History
  • Annotate
  • only in this directory
NameDateSize

..12-Feb-201544

DEVELOPERH A D19-Jan-20158.4 KiB

MakefileH A D19-Jan-201514.6 KiB

Makefile.amH A D19-Jan-201568

Makefile.inH A D19-Jan-201513 KiB

README.AppleTalkH A D19-Jan-201512.6 KiB

README.AppleTalk

1This is a README for the major platforms where Netatalk is in use. 
2
3Platforms Covered:
4A.   Linux
5B.   Tru64
6C.   Solaris
7D.I  OpenBSD
8D.II Other BSDs
9E.   SunOS
10F.   Generic
11
12----------------------------------------------------------------
13
14A. Linux
15
16We no longer include linux kernel code with netatalk, since Linux now
17includes AppleTalk support.
18
191.  MAKE CONFIG.  Configure your kernel with "make config".  Answer yes
20    to "AppleTalk DDP" support.
21
222.  INSTALL KERNEL.  Make and install your kernel.  Be sure to update
23    your boot blocks!
24
253.  Linux 2.2.x provides the sendfile() call. This reduces overhead
26    when sending/copying files. This option will be autoconfigured on
27    compile. NOTE: you might run into problems if you have this option
28    compiled in and you switch to a machine running an os < 2.2.x.
29
30
31Netatalk supplies two different types of Appletalk servers and both
32can run at the same time. Classic Appletalk requires afpd and
33atalkd. Appletalk over IP only requires afpd.
34
35Classic Appletalk on GNU/Linux requires that CONFIG_ATALK is compiled
36into the kernel or as a kernel module. To check to see if the kernel
37has Appletalk installed:
38
39$> dmesg | grep Apple
40This just parses the boot messages for any line containing
41'Apple'.
42
43To see all the  loaded modules (as root):
44$> lsmod
45
46If you don't find it, you may have to compile a kernel and turn on
47Appletalk in Networking options -> Appletalk DDP. You have an option
48to install as a module or directly into the kernel.
49
50Some default distribution kernels have already compiled Appletalk DDP
51as a module, you may have to edit your /etc/modules.conf to include:
52"alias net-pf-5 appletalk ".
53
54Note: check your distribution documentation about editing
55/etc/modules.conf.
56
57For more complete information about the Linux kernel see the
58Kernel-HOWTO:
59http://www.linuxdoc.org/HOWTO/Kernel-HOWTO.html
60
61A note for RedHat users: You may need to install the glibc-devel
62package to be able to compile Netatalk correctly.
63
64----------------------------------------------------------------
65
66B. TRU64
67
68This is the Tru64 README file for netatalk.
69
701.  Unfortunately, AppleTalk is not available for Digital Unix or Tru64.
71    The reason for this is the kernel patches which Netatalk requires
72    cannot be ported to Tru64. If anyone has the kernel source of Tru64
73    they are welcomed to port the AppleTalk modules themselves.
74
75    As a result, only AppleShare over IP (ASIP) works with Tru64. That
76    is, the program afpd. papd and atalkd compile, but doesn't really
77    work. Anything that requires AppleTalk doesn't work.
78
792.  Netatalk compiles on Tru64 V4.0D or higher using either the built-in
80    DEC C compiler or GCC V2.95.3. Also, either the Tru64 make command or
81    GNU make can be used. Netatalk supports Tru64's Security Integration
82    Architecture (SIA) and runs on machines configured for Base (BSD) or
83    Enhanced (OSFC2) Security without recompilation.
84
853.  A peculiar bug in Netatalk has been noticed on a single Tru64
86    machine. However, because other Tru64 machines have not affected, a
87    patch will not be forthcoming until the circumstances where the bug
88    hits is isolated and a more elegant and appropriate patch can be
89    found. In the meantime, there is a description of the bug below. Any
90    users affected can attempt the workarounds provided. The user is
91    urged to report this to the mailing list so that this bug can be
92    isolated and removed.
93
94    HAVE_GCC_MEMCPY_BUG
95    Description -
96       It appears that memcpy() under Tru64 can fail under some
97    circumstances. This maybe due to the fact that Netatalk is compiled
98    with gcc, but since only gcc can compile Netatalk, this is a mute
99    point.
100
101    Symptoms -
102       The symptoms of this bug is that a 18432 byte file uploaded to
103    the server would upload correctly, but a 18433 byte file would
104    result in a sparse file many megabytes big (16MB+). However, due to
105    the low-level nature of memcpy(), there is no reason why other
106    symptoms could not occur.
107
108    Workarounds -
109       There are two known workarounds at this stage.
110    - The first is to #define the macro HAVE_GCC_MEMCPY_BUG. This forces
111    netatalk to use bcopy() in a few (but not all) cases within the code
112    and is enough to stop the bug from occurring. This is the easiest
113    workaround and would merely alter the standard compilation steps to
114
115    CFLAGS="-DHAVE_GCC_MEMCPY_BUG" ./configure [...]
116    make
117    make install
118
119    - The second workaround is to manually remove the optimisation flag
120    "-O2" from within configure and/or configure.in. Although, this
121    isn't the preferred workaround, it shows that the compiler is
122    (at least) partially at fault.
123
124----------------------------------------------------------------
125
126C. SOLARIS
127
1281.  SELECT COMPILER.  This distribution is configured to build with
129    gcc.  It should also work with cc. At the present time only cc
130    v5.0 and gcc 3.1 and above can build the 64-bit kernel module.
131
1321a. SELECT KERNEL TYPE.  Edit sys/solaris/Makefile.kernel and set KCFLAGS
133     to include sparcv9 support if you run a 64-bit kernel, or leave it
134     commented out for a 32-bit kernel. Only UltraSPARC systems
135     running Solaris 7 and above support a 64-bit kernel. If you're
136     not sure what kernel you use, run "isainfo -v". You're running a
137     64-bit kernel if the result includes 64-bit (sparcv9), otherwize
138     it's 32-bit.
139
140     NOTE: If you want both the 32-bit and 64-bit kernel modules to be
141     installed, first compile and install the version appropriate to
142     the kernel that you're currently running, then make clean,
143     compile and install the other version.
144
1452.  EDIT NETCONFIG.  Add the following line to /etc/netconfig:
146
147	ddp tpi_clts - appletalk ddp /dev/ddp -
148
149    This makes the socket library aware of the AppleTalk protocol
150    family.
151
1523.  INSTALL DRIVER.  Since the STREAMS ddp driver must be installed as
153    root, we've separated that portion of the build.  Type
154
155	make -f Makefile.kernel kinstall
156
157    to install the driver.  This copies the driver and its config file
158    into /usr/kernel/drv and /usr/kernel/strmod, runs "add_drv ddp" to
159    make the kernel aware of the new driver, and adds an rc file to
160    /etc/rc?.d. Watch out for error messages after it runs  add_drv.
161    If you see something like
162      devfsadm: driver failed to attach: ddp
163      Warning: Driver (ddp) successfully added to system but failed to attach
164    then recheck sys/solaris/Makefile.kernel and/or try a different
165    compiler.
166
1674.  ATALKD.CONF.  Under Solaris, you must create atalkd.conf, since
168    Solaris provides no method for determining the names of the
169    available interfaces.  It is sufficent to name the available
170    interfaces in atalkd.conf, one per line.  E.g.
171
172	le0
173
174    on a line by itself on many Suns. hme0 on Ultras.  See atalkd(8).
175
1765.  PRINTING.  Netatalk can use any postscript printer that has been set
177    up for use by Solaris. If you haven't already set up a printer,
178    type admintool then select Browse --> Printers, and then Edit --> Add
179    and fill in the form for either a local or remote printer. If adding
180    a local printer, set the Printer Type to PostScript. Then find a
181    postscript file and test your printer from the command line. For
182    example if you created a printer called "fred" your print command
183    would be something like:  lp -d fred some_file.ps
184
185    Once you have a printer that works under Solaris, you need to create
186    a papd.conf file. For example
187
188      MacLaserjet:\
189          :pr=|/usr/bin/lp -d fred:\
190          :op=nobody:\
191          :pd=/usr/local/etc/HPLJ_4M.PPD:
192
193    See doc/CONFIGURE for more information on papd.conf.
194    Once you have this set up, and assuming netatalk starts up after
195      /etc/rc2.d/S79atalk start
196    you should be able to see the printer from the Macintosh Chooser.
197
198----------------------------------------------------------------
199
200D.I OpenBSD
201
2021.  KERNEL SUPPORT. Note that kernel support for netatalk appears in
203    OpenBSD 2.2,  or openbsd-current dated after Aug 1, 1997. But the
204    'comment out' character must be removed and the kernel must be
205    recompiled.
206
207    The kernel file that needs to be edited is usually located in:
208    /usr/src/sys/conf
209
210    Remove the first comment (#) from this line:
211    # option          NETATALK        # AppleTalk
212
213    Generally this is the GENERIC kernal. If you decide to rename 
214    the kernel, don't forget to go to 
215    /usr/src/sys/arch/<your arch>/conf/NEWNAME, and change the 
216    ../../../conf/GENERIC line to your NEWNAME. See 
217    http://www.openbsd.org/faq/faq5.html for more information on 
218    compiling a new kernel.
219
2202.  STARTING NETATALK. The rc scripts that come with openbsd to
221    start netatalk are specific to an older version of netatalk.
222    So, if you use the initscript provided in a current netatalk's
223    distrib/initscripts directory, you must either add the lines
224    from rc.atalk.bsd by hand into /etc/rc.local (or wherever you
225    want to launch the daemons from) or modify your /etc/rc.local
226    file to read: 
227
228    (currently says)
229
230    # Netatalk stuff
231    if [ -f /etc/netatalk/rc.atalk ]; then
232            . /etc/netatlk/rc.atalk
233    fi
234
235    (change to) 
236
237    # Netatalk stuff
238    if [ -f /etc/rc.atalk ]; then
239            . /etc/rc.atalk
240    fi
241
242    and copy netatalk/distrib/initscripts/rc.atalk.bsd to /etc/rc.atalk.
243
244D.II Other BSDs
245
2461.  KERNEL SUPPORT. Note that kernel support for netatalk appears in
247    FreeBSD 2.2-current dated after 12 September 1996.
248
249    Add the line
250
251        options NETATALK
252
253    to the config file for your kernel.  Rebuild and install your
254    kernel.  Reboot.
255
256----------------------------------------------------------------
257
258E. SunOS
259
2601.  KERNEL MODULE. This version of netatalk requires that your kernel
261    be configured with
262
263        options VDDRV
264
265    The loadable kernel module is made and installed during the normal
266    make and make install.  NOTE:  Unloading the kernel module may not
267    work correctly and may cause your kernel to panic, hang, or do
268    other nasty things.
269
270----------------------------------------------------------------
271
272F. Generic
273
274(It's unknown how applicable this is compared to the current codebase)
275
276    The generic system profile is for use on systems that don't have native
277    appletalk support. For those systems, it should still be possible to get
278    the AFP/tcp portion of netatalk to still work.
279    
280    To do that, you will need the following information:
281
282        1) Endian order: If your machine does not specify the
283  	   byte-order in netinet/in.h, you may need to modify
284  	   netatalk/endian.h.
285
286        2) Integer sizes: If your machine does not define intX_t and
287	   u_intX_t, you will need to define them in
288	   netatalk/endian.h. To ease matters, you can specify
289	   _ISOC9X_SOURCE if you have inttypes.h, HAVE_64BIT_LONGS for
290	   64 bit machines, or HAVE_32BIT_LONGS for 32 bit
291	   machines. NOTE: you should only use HAVE_32/64BIT_LONGS on
292	   machines that don't have a header file somewhere with the
293	   integer sizes. If you have a file with all the relevant
294	   bits, modify netatalk/endian.h to include it.
295
296	3) Quota/statfs information: You may be able to get away with
297	   either BSD4_4 or __svr4__, but that's unlikely if your os
298	   is some bizarre hybrid. If you don't have quota support,
299	   just specify NO_QUOTA_SUPPORT. In addition, if you'll need
300	   to specify the include file that gets statfs() (usually
301	   either USE_VFS_H or USE_STATFS_H although BSD4_4 and
302	   __svr4__ bring in a set of include files for that). Look at
303	   etc/afpd/quota.c, unix.c, and unix.h for more information.
304	   Finally, if you have a really old version of rquota, you
305       	   can define USE_OLD_RQUOTA as well.
306
307	4) path information for lock/spool/printer files. you'll need
308           to specify -D_PATH_LOCKDIR if include/atalk/paths.h doesn't
309           have the correct paths specified for printer info and lock
310           files. 
311
312    Beyond that, you should make sure that your operating system looks and
313    smells like a Un*x POSIXy operating system. The only operating systems
314    that netatalk supports that don't quite fit that description are
315    sunos 4 and ultrix. If your operating system is peculiar, you may need
316    to add in compatibility routines (libatalk/compat,
317    include/atalk/compat.h) to make it look more like the others. 
318    
319    If you would like native AppleTalk support, you will need kernel support 
320    for your operating system. Look at the Solaris STREAMS module if your
321    operating system supports that framework. Otherwise, look at the ddp
322    code in FreeBSD, NetBSD, or OpenBSD if your operating system is BSDish
323    in nature. If your operating system looks different than these two
324    cases, you'll have to roll your own implementation.
325