Subject: [netatalk-admins] "Help!", my story with netatalk

From: Francois-Rene Rideau <[email-masked]>
Date: Wed, 3 Feb 1999 03:41:12 +0100

Dear Linux-atalk people and netatalk-admins,
   I've spent quite some time desperately trying to get a Linux box
to act as a file and print server for a Mac, and here is the account
of my successes and failures.

Setup
=====
1) Samaris IP=192.168.84.163 is a PC under Linux 2.2.1,
 a 486 Toshiba laptop with two SMC wd cards in its permanently attached
 base station, transformed into a server.
 It runs a recent netatalk 1.4b2+asun2.0a18.2 that I downloaded in december.
 I retried later with pre-asun2.1.2-5, with no observable difference
 [I hate it that the default installation doesn't strip executables!].
 Samaris also serves as DNS for the local network (doing reverse DNS, too),
 and successfully routes the LAN to the Internet.
 It has a HP LaserJet 4ML printer connected to it,
 with a LPRng daemon that works great from other linux boxen.

2) ZhengHe IP=192.168.84.169 is another PC with similar software settings,
 a DELL laptop with 3c589D pcmcia ethernet, my usual machine.

3) Tinh IP=192.168.84.171 is a Mac PowerBook G3 series under MockAss 8.1.
 The hardware and software plain suck, but my mom has no choice.
 Its TCP/IP and Appletalk are configured on the Ethernet.
 At least it can telnet and netscape fine.

4) All machines are on the same ethernet trunk.

Problems
========

1) At startup, atalkd will wait for 30 seconds until it times out,
with syslog messages
t "restart"
t+1s "zipgetnetinfo for eth0" x3
t+29s "config for no router"
t+31s "ready 0/0/0"

2) getzones gives:
atp_rresp: Connection timed out
I tried putting "-zone athierry" in the atalkd.conf, but it gets ignored
and removed when atalkd is launched (even if the machine is alone in the
whole network, so that there is noone to disagree with that zone); the
-net 10836-10836 statement will similarly get replaced by -net 0-65534.
Initially, 65280 instead of 10836 was automatically chosen;
changing it to 10836 wouldn't help.
My original atalkd.conf:
eth0 -seed -phase 2 -net 10836-10839 -addr 10836.163 -zone athierry
invariably becomes:
eth0 -seed -phase 2 -net 0-65534 -addr 10836.163

3) nbplkup on Samaris gives:
         Samaris:AFPServer                          10836.163:130
   PenguImladris:LaserWriter                        10836.163:128
         Samaris:netatalk                           10836.163:4
         Samaris:Workstation                        10836.163:4
When things "kind of work", Tinh shows,
but sometimes, for no reason, it doesn't,
and then the hell breaks loose (see below)
After lots of failed attempts (detailed below),
I tried changing the appletalk settings as "administrator"
on Tinh, so as lock address settings (was 65280.42 before),
and for some reason, nbplkup on Samaris now says:
            Tinh:ARA - Client-Only                  10836.171:2
            Tinh:PowerBook série G3                 10836.171:252
	    Tinh:Workstation                        10836.171:4
Well, the ARA thingy doesn't always show.

4) I can't get Tinh to see Samaris in the chooser under the AppleShare icon;
 however, if I type the IP address or the fqdn for Samaris, I can successfully
 mount its afpd volumes. Also, MockAss will ask me for user&password
 everytime, even though I tell it to remember them; moreover,
 the "autoreconnect at startup" check mark won't work, either.
 I was very displeased by the fact that netatalk introduced yet another
 way to deal with multiple file forks (what a lame concept!),
 as compared to Executor or the macutils.

5) At one time, for no obvious reason, I could get the name "Samaris"
 to show in Tinh's chooser (icon AppleShare), but clicking on it
 would only lead to an error (in french):
	"the server is not responding. try again".
 I cannot reliably reproduce failure or success of "Samaris" appearing;
 it looks like it all depends in the precise timing with which
 the servers processes are (re)launched and when Mac initially connects
 to the appletalk.

6) When the name "Samaris" appears in the AppleShare chooser,
 I can also see the HP printer from the proper section (was under
 LaserWriter 8 section until I fixed the proper ppd path in papd.conf);
 but after I had the bad idea of clicking on the "config" icon
 of the HP driver, the Mac entered a permanent hanging wait state
 (command-. wouldn't stop it as advertised, which is kind of usual).
 I had to reboot, and ever since then, nothing showed anymore in the chooser
 (I can still mount the files by giving IP name/number).
 I then tried to print using PenguImladris but it only hangs and times out
 (MockAss 8.1 will insist on keeping it the default printer even when I throw
 its icon in the trashcan, even though it cannot access it!).
 Indeed, the Mac couldn't see the printer (or Samaris) anymore!!!

7) Indeed, there was a problem with the papd setup:
 when I tried to print with pap -p PenguImladris foo.ps it just hangs
 with the message: Trying 65280.163:128 ...
 papd reports in syslog: "No such printer: Imladris"
 "printcap problem: Imladris". It looks like papd doesn't like LPRng!
 Modifying /etc/printcap by adding an entry Imladris:rm=Samaris:rp=Imladris:
 will remove these errors, and instead of hanging, I get further messages:
 status: print spooler processing job
 Connected to PenguImladris:LaserWriter@*.
 Connection closed.
 The syslog told me papd relied on a valid lock being present
 in some declared in spooling directory; so there went I, and then
 it also wanted to connect to /dev/printer (even for a remote printer?)
 instead of printer/tcp inet services.
 Apparently, papd hated my LPRng setting.
 So I installed the BSD lpd daemon (which required tricky not only a
 souped-down /etc/printcap, but also modifications of the permissions
 in /var/spool/lpd).
 And there I was! At last I could print locally with pap!
 And, miracle, the Mac would see again the printer!!!
 [I later learnt, by carefully reading the linux-atalk list,
 that there was a patch for running papd with LPRng,
 or that I could have put :pr=|/usr/local/bin/lpr -P Imladris:
 in my papd.conf entry -- I will try when I get time;
 definitely should be documented prominently somewhere!]

8) when doing nbplkup, what remote services show or don't show
 seems purely an effect of good or bad luck.
 There is only one ethernet trunk, so this is most bizarre!
 For instance, ZhengHe and Samaris can't see or access each other's services!
 Actually, the name ZhengHe never appears on Tinh or on Samaris.
 (I also tried with Samaris down).
 However, Kadath (another Linux PC on the trunk) can be seen, and sees.
 I could find no information whatsoever about how to choose numbers
 and how to set zones.
 Also, the accented e appearing as second letter in série
 is displayed as ^N by nbplkup, which screws up the linux console!

9) papstatus replies crap: for instance, it tells me
	PenguImladris is ready and printing
 when the print queue is empty.

10) after a few tries at getting things working, the Mac ceased again to
 see the server! Ouch. Tough one. Trying again and again, rebooting
 the mac, or relaunching atalkd, without touching the configuration,
 and there, miracle, after many minutes of time wasted rebooting
 or walking down menus and menus, it would see Samaris again!
 My god, what is this non-deterministic software crap!?!?
 I want working software! I hate MockAss, I hate appletalk!
 Can anyone explain to me what the hell is going on???

Hints I followed
================
1) I read carefully, to no avail, all the HOWTOs and manpages I could, plus:
 http://thehamptons.com/anders/netatalk/
 http://www.umich.edu/~rsug/netatalk

2) I checked a lot of 1998 archives of the netatalk-admin list,
 together with the 1999 archives of the linux-atalk list.

3) I could find no help whatsoever on setting up my own zones or routing,
 although Anders' HOWTO assumes those are setup correctly. Grrrrr.
 Hearsay has it the fault would be on the asun patches, that disable seeding,
 but are required for AFP/IP.

4) More generally, all documents seemed to focus on getting unix boxen
 to integrate into an existing apple network (yuck) instead of getting
 the mac box to integrate nicely into an existing unix network.

5) I use as a .ppd the CR->LF converted data fork of a file copied from
 HP LaserJet 4ML file from system:extensions:printer*, itself obtained
 from the latest drivers from www.hp.com

Additional notes
================

NB: ever since a few months ago, and for no known reason, the MockAss computer
cannot see the printer when connected directly through the serial port;
a much older system 7.1 Mac (that unhappily is otherwise not very usable)
can see it quite ok on the serial port.
Restoring the system folder from a backup that used to work wouldn't help:
on the contrary, the backup (on an external SCSI disk)
would cease to function afterwards!!!
This was the most pressing reason why I wanted to run netatalk,
which I couldn't successfully do for MONTHS.

PS: I'm not subscribed to your mailing list (yet), so please Cc: me any
 answer. Sorry if it's a FAQ or anything. I'll gladly accept a pointer
 to documents that explain me what I should do or have done.

PPS: there is really a need for "ready to use" configuration files
 where one would only have to change a few names and numbers...

PPPS: They look nice from far away, but the more I use Macs,
 the more I hate Apple. They didn't do *anything* good since the Apple//e
 It was kind of an open platform (all the design published),
 but even at that time, it was sold five times what it was worth
 (with clones forbidden, hence the death of the platform).
 Unhappily, Commodore could never understand the need for mass storage.

P^4S: despite its shortcomings, thanks a lot for this piece of software,
 and for your support!

[ "Faré" | VN: Ð£ng-Vû Bân | Join the TUNES project!   http://www.tunes.org/  ]
[ FR: François-René Rideau | TUNES is a Useful, Nevertheless Expedient System ]
[ Reflection&Cybernethics  | Project for  a Free Reflective  Computing System ]
Every program has at least one bug and can be shortened by at least one
instruction -- from which, by induction, one can deduce that every
program can be reduced to one instruction which doesn't work.