]> arthur.barton.de Git - netatalk.git/commitdiff
Initial Entry
authorlancel <lancel>
Mon, 15 Oct 2001 23:05:50 +0000 (23:05 +0000)
committerlancel <lancel>
Mon, 15 Oct 2001 23:05:50 +0000 (23:05 +0000)
doc/README.platforms [new file with mode: 0644]

diff --git a/doc/README.platforms b/doc/README.platforms
new file mode 100644 (file)
index 0000000..6b29299
--- /dev/null
@@ -0,0 +1,275 @@
+This is a README for the major platforms where Netatalk is in use. 
+
+Platforms Covered:
+A. Linux
+B. Tru64
+C. Solaris
+D. *BSD
+E. SunOS
+F. Generic
+
+----------------------------------------------------------------
+
+A. Linux
+
+We no longer include linux kernel code with netatalk, since Linux now
+includes AppleTalk support.
+
+1.  MAKE CONFIG.  Configure your kernel with "make config".  Answer yes
+    to "AppleTalk DDP" support.
+
+2.  INSTALL KERNEL.  Make and install your kernel.  Be sure to update
+    your boot blocks!
+
+3.  Linux 2.2.x provides the sendfile() call. This reduces overhead
+    when sending/copying files. This option will be autoconfigured on
+    compile. NOTE: you might run into problems if you have this option
+    compiled in and you switch to a machine running an os < 2.2.x.
+
+
+Netatalk supplies two different types of Appletalk servers and both
+can run at the same time. Classic Appletalk requires afpd and
+atalkd. Appletalk over IP only requires afpd.
+
+Classic Appletalk on GNU/Linux requires that CONFIG_ATALK is compiled
+into the kernel or as a kernel module. To check to see if the kernel
+has Appletalk installed:
+
+$> dmesg | grep Apple
+This just parses the boot messages for any line containing
+'Apple'.
+
+To see all the  loaded modules (as root):
+$> lsmod
+
+If you don't find it, you may have to compile a kernel and turn on
+Appletalk in Networking options -> Appletalk DDP. You have an option
+to install as a module or directly into the kernel.
+
+Some default distribution kernels have already compiled Appletalk DDP
+as a module, you may have to edit your /etc/modules.conf to include:
+"alias net-pf-5 appletalk ".
+
+Note: check your distribution documentation about editing
+/etc/modules.conf.
+
+For more complete information about the Linux kernel see the
+Kernel-HOWTO:
+http://www.linuxdoc.org/HOWTO/Kernel-HOWTO.html
+
+----------------------------------------------------------------
+
+B. TRU64
+
+This is the Tru64 README file for netatalk.
+
+1.  Unfortunately, AppleTalk is not available for Digital Unix or Tru64.
+    The reason for this is the kernel patches which Netatalk requires
+    cannot be ported to Tru64. If anyone has the kernel source of Tru64
+    they are welcomed to port the AppleTalk modules themselves.
+
+    As a result, only AppleShare over IP (ASIP) works with Tru64. That
+    is, the program afpd. papd and atalkd compile, but doesn't really
+    work. Anything that requires AppleTalk doesn't work.
+
+2.  Netatalk compiles on Tru64 V4.0D or higher using either the built-in
+    DEC C compiler or GCC V2.95.3. Also, either the Tru64 make command or
+    GNU make can be used. Netatalk supports Tru64's Security Integration
+    Architecture (SIA) and runs on machines configured for Base (BSD) or
+    Enhanced (OSFC2) Security without recompilation.
+
+3.  A peculiar bug in Netatalk has been noticed on a single Tru64
+    machine. However, because other Tru64 machines have not affected, a
+    patch will not be forthcoming until the circumstances where the bug
+    hits is isolated and a more elegant and appropriate patch can be
+    found. In the meantime, there is a description of the bug below. Any
+    users affected can attempt the workarounds provided. The user is
+    urged to report this to the mailing list so that this bug can be
+    isolated and removed.
+
+    HAVE_GCC_MEMCPY_BUG
+    Description -
+       It appears that memcpy() under Tru64 can fail under some
+    circumstances. This maybe due to the fact that Netatalk is compiled
+    with gcc, but since only gcc can compile Netatalk, this is a mute
+    point.
+
+    Symptoms -
+       The symptoms of this bug is that a 18432 byte file uploaded to
+    the server would upload correctly, but a 18433 byte file would
+    result in a sparse file many megabytes big (16MB+). However, due to
+    the low-level nature of memcpy(), there is no reason why other
+    symptoms could not occur.
+
+    Workarounds -
+       There are two known workarounds at this stage.
+    - The first is to #define the macro HAVE_GCC_MEMCPY_BUG. This forces
+    netatalk to use bcopy() in a few (but not all) cases within the code
+    and is enough to stop the bug from occurring. This is the easiest
+    workaround and would merely alter the standard compilation steps to
+
+    ./configure --with-cflags="-DHAVE_GCC_MEMCPY_BUG"
+    make
+    make install
+
+    - The second workaround is to manually remove the optimisation flag
+    "-O2" from within configure and/or configure.in. Although, this
+    isn't the preferred workaround, it shows that the compiler is
+    (at least) partially at fault.
+
+----------------------------------------------------------------
+
+C. SOLARIS
+
+1.  SELECT COMPILER.  This distribution is configured to build with
+    gcc.  It should also work with cc. At the present time only cc
+    v5.0 and above can build the 64-bit kernel module.
+
+1a. SELECT KERNEL TYPE.  Edit sys/solaris/Makefile and set KCFLAGS to
+     include sparcv9 support if you run a 64-bit kernel, or leave it
+     commented out for a 32-bit kernel. Only UltraSPARC systems
+     running Solaris 7 and above support a 64-bit kernel. If you're
+     not sure what kernel you use, run "isainfo -v". You're running a
+     64-bit kernel if the result includes 64-bit (sparcv9), otherwize
+     it's 32-bit.
+
+     NOTE: If you want both the 32-bit and 64-bit kernel modules to be
+     installed, first compile and install the version appropriate to
+     the kernel that you're currently running, then make clean,
+     compile and install the other version.
+
+2.  EDIT NETCONFIG.  Add the following line to /etc/netconfig:
+
+       ddp tpi_clts - appletalk ddp /dev/ddp -
+
+    This makes the socket library aware of the AppleTalk protocol
+    family.
+
+3.  INSTALL DRIVER.  Since the STREAMS ddp driver must be installed as
+    root, we've separated that portion of the build.  Type
+
+       make kinstall
+
+    to install the driver.  This copies the driver and its config file
+    into /usr/kernel/drv and /usr/kernel/strmod, runs "add_drv ddp" to
+    make the kernel aware of the new driver, and adds an rc file to
+    /etc/rc?.d. Watch out for error messages after it runs  add_drv.
+    If you see something like
+      devfsadm: driver failed to attach: ddp
+      Warning: Driver (ddp) successfully added to system but failed to attach
+    then recheck sys/solaris/Makefile and/or try a different compiler.
+
+4.  ATALKD.CONF.  Under Solaris, you must create atalkd.conf, since
+    Solaris provides no method for determining the names of the
+    available interfaces.  It is sufficent to name the available
+    interfaces in atalkd.conf, one per line.  E.g.
+
+       le0
+
+    on a line by itself on many Suns. hme0 on Ultras.  See atalkd(8).
+
+5.  PRINTING.  Netatalk can use any postscript printer that has been set
+    up for use by Solaris. If you haven't already set up a printer,
+    type admintool then select Browse --> Printers, and then Edit --> Add
+    and fill in the form for either a local or remote printer. If adding
+    a local printer, set the Printer Type to PostScript. Then find a
+    postscript file and test your printer from the command line. For
+    example if you created a printer called "fred" your print command
+    would be something like:  lp -d fred some_file.ps
+
+    Once you have a printer that works under Solaris, you need to create
+    a papd.conf file. For example
+
+      MacLaserjet:\
+          :pr=|/usr/bin/lp -d fred:\
+          :op=nobody:\
+          :pd=/usr/local/etc/HPLJ_4M.PPD:
+
+    See doc/CONFIGURE for more information on papd.conf.
+    Once you have this set up, and assuming netatalk starts up after
+      /etc/rc2.d/S79atalk start
+    you should be able to see the printer from the Macintosh Chooser.
+
+----------------------------------------------------------------
+
+D. *BSD
+
+Note that kernel support for netatalk appears in FreeBSD 2.2-current
+dated after 12 September 1996.
+
+1.  KERNEL.  Add the line
+
+        options NETATALK
+
+    to the config file for your kernel.  Rebuild and install your
+    kernel.  Reboot.
+
+----------------------------------------------------------------
+
+E. SunOS
+
+1.  KERNEL MODULE. This version of netatalk requires that your kernel
+    be configured with
+
+        options VDDRV
+
+    The loadable kernel module is made and installed during the normal
+    make and make install.  NOTE:  Unloading the kernel module may not
+    work correctly and may cause your kernel to panic, hang, or do
+    other nasty things.
+
+----------------------------------------------------------------
+
+F. Generic
+
+(It's unknown how applicable this is compared to the current codebase)
+
+    The generic system profile is for use on systems that don't have native
+    appletalk support. For those systems, it should still be possible to get
+    the AFP/tcp portion of netatalk to still work.
+    
+    To do that, you will need the following information:
+
+        1) Endian order: If your machine does not specify the
+          byte-order in netinet/in.h, you may need to modify
+          netatalk/endian.h.
+
+        2) Integer sizes: If your machine does not define intX_t and
+          u_intX_t, you will need to define them in
+          netatalk/endian.h. To ease matters, you can specify
+          _ISOC9X_SOURCE if you have inttypes.h, HAVE_64BIT_LONGS for
+          64 bit machines, or HAVE_32BIT_LONGS for 32 bit
+          machines. NOTE: you should only use HAVE_32/64BIT_LONGS on
+          machines that don't have a header file somewhere with the
+          integer sizes. If you have a file with all the relevant
+          bits, modify netatalk/endian.h to include it.
+
+       3) Quota/statfs information: You may be able to get away with
+          either BSD4_4 or __svr4__, but that's unlikely if your os
+          is some bizarre hybrid. If you don't have quota support,
+          just specify NO_QUOTA_SUPPORT. In addition, if you'll need
+          to specify the include file that gets statfs() (usually
+          either USE_VFS_H or USE_STATFS_H although BSD4_4 and
+          __svr4__ bring in a set of include files for that). Look at
+          etc/afpd/quota.c, unix.c, and unix.h for more information.
+          Finally, if you have a really old version of rquota, you
+                  can define USE_OLD_RQUOTA as well.
+
+       4) path information for lock/spool/printer files. you'll need
+           to specify -D_PATH_LOCKDIR if include/atalk/paths.h doesn't
+           have the correct paths specified for printer info and lock
+           files. 
+
+    Beyond that, you should make sure that your operating system looks and
+    smells like a Un*x POSIXy operating system. The only operating systems
+    that netatalk supports that don't quite fit that description are
+    sunos 4 and ultrix. If your operating system is peculiar, you may need
+    to add in compatibility routines (libatalk/compat,
+    include/atalk/compat.h) to make it look more like the others. 
+    
+    If you would like native AppleTalk support, you will need kernel support 
+    for your operating system. Look at the Solaris STREAMS module if your
+    operating system supports that framework. Otherwise, look at the ddp
+    code in FreeBSD, NetBSD, or OpenBSD if your operating system is BSDish
+    in nature. If your operating system looks different than these two
+    cases, you'll have to roll your own implementation.