Andrew Sackville-West wrote:
On Thu, 26 Jan 2006 13:04:38 -0500
Chinook <[EMAIL PROTECTED]> wrote:
Chinook wrote:
Mac OS X and Linux Zeroconf LAN irregularities
----------------------------------------------------------------
I would like to at least understand, if not remedy,
an annoyance in establishing the connection between
my Mac and my Linux box. I have yet to find anything
constructive relative to the issue via the google
shuffle or manual pages. Any thoughts, experiences
and/or further troubleshooting steps would be
appreciated. Thank you.
==============================================
Installation:
PMac G5 running OS X Tiger (10.4.4)
Linux printer is shared with Mac via CUPS,
not classic AppleTalk.
P4 with Debian Etch (testing), kernel 2.6.12-1-686,
Gnome desktop and USB attached printer and scanner.
With netatalk 2.0.3-4 and task-howl (0.9.5-2), which
includes the howl mdnsresponder (0.9.5-2), installed.
Only the netatalk afpd and cnid_metad deamons are
being run.
hardwired ethernet with the Mac and Linux box connected
to a Belkin 4 port router
==============================================
Trials:
If I boot up both my Mac and Linux box:
Linux has autoipd, mDNSResponder and nifd daemons running.
Mac has mDNSResponder and netinfod daemons running (don't
know which others are pertinent to note).
If on my Mac in a Finder pane I click Network -> My Network
-> debian1 -> Connect then I get the message:
AFP connection status
Looking up "debian1.local.." which times out with the message:
Connection failed - server may not exist blah blah
In can however, on my Mac in the Finder menu bar select
Go -> Connect to Server -> enter afp://192.168.2.48/
(my Linux box) -> enter user and password of shared
directory -> select share to mount; and I have my
connection. If I dismount the share though, within a
session, and try to connect again this method works and
the Finder pane method still does not.
Alternatively, on my Linux box I can run the cli
# /etc/init.d/mdnsresponder restart
Then back on my Mac the Finder pane method of establishing
a connection (that failed above) works as it should.
Further, I can dismount the share and reconnect with this
method any number of times in the same session, and even
reconnect with this method after rebooting only my Mac. However, if I
reboot my Linux box I'm back to Finder menu
bar or mdnsresponder restart reconnect choices.
==============================================
What the above trials tell me is that if I restart
mdnsreaponder then everything is "peachy" until my Linux
box is rebooted. What they do not tell me is if there is
something flakey with mdnsresponder, my Linux installation,
an incompatibility with Tiger, or even some other
interference on either box.
Lee, I don't know a thing about mDNS* and other packages you mention, but my gut
feeling on your above trial is that your startup scripts are simply in the wrong
order. IOW, mDNSresponder relies on some other service in order to function properly,
but that service comes up after mdsn* in the startup under a normal boot. By manually
restarting it later you are making it work because whatever service was required is
now up and running. So, as a temporary fix, while you try to find the real problem
(could even be a bug in the install) you could change the startup script order using
update-rc.d (man page will tell all, but watch out for the periods (.) in the command
line.). Something like <making up numbers here>:
update-rc.d mdnsresponder start 85 2 3 4 5 . stop 85 1 6 .
look at what the defaults for mdnsresponder are before making adjustments.
A
Thanks for the reply Andrew,
Just so you know it's resolved :-)
Following your thinking I studied the update-rc.d man pages and THE
Debian Policy Manual (selectively), but when I get to looking around in
/etc/init.d and /etc/rc?.d I found scripts (and symlinks) for only the
relevant daemons autoipd, mdnsresponder and netatalk (there are others
of course). There was nothing specific for the automatic DHCP which I
believe is relevant based on howl site comments below - I guess DHCP is
buried somewhere in networking setup in /etc/rcS.d (boot time) and I
don't want to hack the basic setup.
So, adjusting the thought train:
1) howl-tools as installed are being phased out in favor of Avahi and
the package is no longer being maintained to my knowledge. Their list
even ends abruptly in Aug. 2005.
2) There have been significant changes in Etch and kernel 2.6.12-1-686
since this howl-tools package.
3) The system log line "autoipd uses obsolete (PF_INET,SOCK_PACKET)" is
a clue that something ain't kosher :-)
4) The (dated) comments on the howl site as noted below.
My thinking is that automatic DHCP gets its act together then
mdnsresponder uses DHCP to do its broadcasting thing. However, either
in between or after, the seemingly antiquated autoipd screws up the
works for mdnsresponder. My understanding is that autoipd is intended
as a work around if DHCP setup fails, but I don't know if the work
around is still relevant with Etch and kernel 2.6.12-1-686.
So this klutzy hacker's work around was to use my new found
knowledge of sysV init and update-rc.d, and employ the cli
update-rc.d autoipd remove
so the daemon is never started.
My file sharing (via netatalk) connection now works at getty-up-go with
the Finder pane approach also, which nullifies the annoyance I was
investigating, and my print sharing (via CUPS) still works.
The autoipd code is still on the system and the init script is still
there (renamed), so I can always reinstate the daemon startup if I find
some adverse affect.
I should not have to exist in this in-between land for too many months.
Someday soon Avahi will work its way down to testing without an onerous
Sid dependency and create new issues for me to have to screw around with
:-))
Lee C
==============================================
Lee C
"Life is judged with all the blindness of life itself."
-- George Santayana
(see Backup::Restore article
http://homepage.mac.com/lee_cullens/Bx3.html )
(see Artworks sampling
http://homepage.mac.com/lee_cullens/Artworks.pdf )
The howl-tools portion of my zeroconf installation is being phased
out in favor of the newer Avahi as I understand it. However, Avahi
hasn't made its way down to testing yet so for the time being I'm
trying to make do with howl-tools. The point in my mentioning
this here is that much of the information I find is outdated.
That said, the only thing I've found in the Linux bootup logs yet
(using dmesg) that I recognize is the line
autoipd uses obsolete (PF_INET,SOCK_PACKET)
So, using autoipd as a starting point for further researching
this issue I found the following
(at http://www.porchdogsoft.com/products/howl/InstallUnix.html )
..........................
Ideally, autoipd should run only in the event that the interface has not
been statically configured and DHCP fails. Running autoipd this way
requires modification to the standard distribution boot scripts for your
OS. These modifications vary depending on your version of Linux or
FreeBSD. On RedHat Linux, for example, the /sbin/ifup script may be
modified to launch autoipd in the event that dhclient fails. On our
systems, we added the following line to /sbin/ifup right after dhclient
is launched so that autoipd runs whenever DHCP fails:
elif [ -z "`pidof -x dhclient`" ] && [ -z "`pidof -x dhcpcd`" ] && [ -z
"`pidof -x pump`" ] && [ -x /usr/local/bin/autopid ] &&
/usr/local/bin/autoipd -i ${DEVICE}; then echo $"started autoip."
Note that since this change causes "$NUMDEFROUTES" to become
zero-length, the subsequent code in /sbin/ifup for fixing the duplicate
routes generated by DHCP also gets modified in the howl version of ifup.
You may need to modify your boot scripts differently depending on your
platform. We have included the original ifup script for RedHat 9 along
with our modified version (howl_ifup) as an example so that you may more
easily identify how to modify the boot scripts for your platform.
.............................
A lot of Greek to me :-) but I did look in /etc/init.d and found
the autoipd script which is the normal boilerplate (same as all
the others with autoipd substituted for the daemon name).
Even if I felt comfortable adding the above in the
/etc/init.d/autoipd script, I have no idea whether it would be
dealt with after dhclient.
I also found in the Mac system log after a reboot:
Jan 26 02:22:48 slpmacg5 mDNSResponder: Adding browse domain local.
Jan 26 02:22:48 slpmacg5 configd[33]: executing
/System/Library/SystemConfiguration/Kicker.bundle/Contents/Resources/enable-network
Jan 26 02:22:48 slpmacg5 configd[33]: posting notification
com.apple.system.config.network_change
Jan 26 02:22:48 slpmacg5 lookupd[80]: lookupd (version 369.2) starting -
Thu Jan 26 02:22:48 2006
Jan 26 02:22:49 slpmacg5 configd[33]: target=enable-network: disabled
Jan 26 02:22:50 slpmacg5 configd[33]: AppleTalk startup complete
Jan 26 02:23:59 slpmacg5 automount[148]: NSLXResolveDNS will try and
resolve [debian1] of type [_afpovertcp._tcp.] in location [local.]\n
so I'm thinking (dangerous at my age) that my Mac isn't "discovering"
what it needs until I restart mdnsresponder on my Linux box????
What I'm asking is whether anyone thinks this (autoipd) on Linux is a
likely cause of my described connection annoyance?
If so, is the referenced info applicable to Debian today and how
would one go about applying it?
Or alternately if so, might it make sense to just disable autoipd
startup altogether and how would I best go about that - just something
like update-rc.d autoipd remove????????
Thank you,
Lee C
--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]