• Updated 2023-07-12: Hello, Guest! Welcome back, and be sure to check out this follow-up post about our outage a week or so ago.

Netatalk & System 6?

Gorgonops

Moderator
Staff member
Does anyone here use Netatalk with System 6, specifically via one of those Localtalk->Ethernet bridges? (The one I have is a Farallon EtherMac iPrint.) I was trying to get this going between a Linux VM (on VirtualBox) on a Macbook Pro (OS X 10.6) and a Macintosh Plus this weekend and didn't have much luck.

On the Macbook side the VM was set up with two interfaces, the normal "NAT" device (eth0) and a "Bridged" adapter (eth1), which is connected straight to the iPrint adapter. The adapter's activity lights blink promisingly, but so far I just haven't been able to get the Plus to "see" the Netatalk server. (Going to the Chooser and looking for appletalk shares shows no servers to connect to) I have verified that the host OS X can see the file shares when pointed to the static IP I assigned to the virtual eth1 device (which is in the same network as a static applied to the host en0 interface), so Netatalk is working to at least that extent, but obviously I can't test ddp shares that way. When I run "tcpdump en0" on the host OS I can see regular broadcasts from the Netatalk server. I don't see anything from the Mac unless I reboot it; in that case I see three announcements come in from the bridge that say "username:Macintosh Plus", but that's the only activity; poking around the chooser doesn't trigger any more visible activity (Is it necessary to reboot a System 6 Mac in order for it to "register" whatever fileshares are available? It seems odd to me that I don't see a peep out of it when actually poking at the Chooser.), and the announcements from the Mac don't seem to trigger any response from the Netatalk server.

Just wondering offhandedly if there's something specific I need to add to atalkd.conf to make it understand and respond to a Mac that old. Appletalk unfortunately is pretty far from being my speciality; the last time I used the classic "Chooser" method to mount a Netatalk share (via Ethernet, not Localtalk) was from an A/UX box and it was point-and-shoot with an out-of-the-box configuration. I did go so far as manually rebuild the Ubuntu package for Netatalk (it was 2.2.1) to ensure that ddp was supported. (Which it was already.)

(I'm not convinced yet there isn't some confounding issue with the virtual machine network layer that could be contributing; I'm thinking of wiring the Mac up to a genuine bare-metal Linux box to see if removing Virtualbox from the equation solves the problem; I was trying to do the VM thing because it's physically something of a chore to get something on a wired network in the house.)

 

bbraun

Well-known member
Appletalk most likely won't be bridged over the natted VM NIC, so you'll need to stick with the bridged interface.

My atalkd.conf has this:

Code:
eth0 -dontroute -phase 2 -net 0-65534 -addr 65280.151
You'll probably want that to be your bridged interface.

Something else to help narrow things down a bit, atalkd handles the NBP (AppleTalk's name & service resolution protocol) registrations, so if it doesn't show up in chooser, start with the lowest levels. You can use the nbplkup commandline tool that comes with netatalk to do queries from the linux box, and see if the mac shows up.

Once the netatalk machine shows up in the Chooser on the mac, then it's talking to afpd.

"tcpdump -i eth1 -s0 -X atalk" on the OSX machine and on linux might help narrow down where things are going wrong.

Another issue, although it doesn't sound like it's what you're encountering yet, is netatalk 2.2.1 has a bug where afpd crashes when a ddp client connects. So you'll want to update to something newer, not just rebuild 2.2.1. But since it's not showing up in the chooser, this doesn't sound like the bug you're encountering yet.

FWIW, I'm using a similar setup with netatalk in a linux VM on 10.6, but I'm only using a single bridged interface.

 

NJRoadfan

Well-known member
I have no problem using netatalk 2.2.4 that came with A2SERVER on older clients. Its designed to work with the ancient Apple II clients which aren't all that newer than System 6.

 

Gorgonops

Moderator
Staff member
Appletalk most likely won't be bridged over the natted VM NIC, so you'll need to stick with the bridged interface.My atalkd.conf has this:

Code:
eth0 -dontroute -phase 2 -net 0-65534 -addr 65280.151
You'll probably want that to be your bridged interface.
The last changes I made to atalkd.conf specifically called out attaching to the eth1 interface (that's the bridged one) and I tried the "-phase 2" switch, but I didn't try specifying any specific -net or -addr settings.

Something else to help narrow things down a bit, atalkd handles the NBP (AppleTalk's name & service resolution protocol) registrations, so if it doesn't show up in chooser, start with the lowest levels. You can use the nbplkup commandline tool that comes with netatalk to do queries from the linux box, and see if the mac shows up.
Yeah, it looks like I'll have to do some serious sniffing to figure out what's up.

I have no problem using netatalk 2.2.4 that came with A2SERVER on older clients. Its designed to work with the ancient Apple II clients which aren't all that newer than System 6.
So, I guess I didn't mention it, but I did in fact download the A2SERVER prebuilt VM (I'd seen mention of it in the ongoing thread about the TCP/IP gating software) and tried running that and didn't have any luck with it either. (It was actually what was running when I did the first couple tcpdump tests that showed regular broadcasts from the Linux VM and only the brief little flurry of activity from the Mac while booting.) One thing that bugs me a little... the setup docs for that mention in passing a "Farallon Fix" which they claim can be turned on or off by running the "a2server-setup" command, but running said command on the version of the VM I downloaded does *nothing*. (Just returns straight to a prompt.) Googling has turned up no other mention of this "Farallon Fix", any idea what it is?

 

NJRoadfan

Well-known member
Weird, it worked for me. The VM MUST have a bridged adapter with its own IP address on your network to work correctly and pass Appletalk packets. No NAT, don't even think about it or install it. Also, your machine must be using a wired Ethernet interface, wireless anything won't work (sorry). This is a limitation of virtual NICs and VMs in general. When I setup A2SERVER I had some odd behavior, but running the "a2server-setup" script seemed to fix them. Log in as "user1" when doing that, not root.

The Farallon Fix is for Apple IIgs System 6.0.1, it has a bug with Appletalk and "keep alive" traffic, you shouldn't need it on a Mac. By default netatalk in that VM is setup as an Appletalk seed router and assigns a zone name of A2SERVER to your network. This clashes with things like Fastpaths and Gatorboxes which also act as seed routers. You can disable it by typing "netatalk-router-off".

Other than the hiccups I got before running the setup script, so far A2SERVER has been working without a problem. I can see its default shares on both Mac and Apple II, whether its connected via Localtalk or Ethernet. The included Samba sharing take care of serving Windows machines and OS X.

 

Gorgonops

Moderator
Staff member
Weird, it worked for me. The VM MUST have a bridged adapter with its own IP address on your network to work correctly and pass Appletalk packets...
That is how I had it set up, but it turns out the problem was in the driver's seat anyway. (What do you know, it helps to bother to read the documentation about the protocol you're trying to tcpdump before you do it.) Turned out what I thought was Netatalk spewing broadcasts was actually the Plus spewing requests for a file server to answer; Netatalk wasn't actually talking DDP. Two minutes of digging revealed that the problem was that the Ubuntu /etc/init.d/netatalk startup script has atalkd specifically disabled by default. After enabling that I got the Plus working apparently fine.

(It took one more tweak to the afpd config to enable plain-text passwords. In retrospect I'm still not sure why the prebuilt VM I got for the a2server *didn't* work out of the box since I'd assume that the config on that would enable atalkd, but no matter. Probably had some other confounding issue, don't care right now. I did get this all working with a physical machine as the server instead of Virtualbox on OS X, just to remove another variable.)

Tomorrow hopefully I'll be able to actually get some software transferred over to disks so the 512k can be a slightly more *interesting* conversation piece/paperweight.

 

Gorgonops

Moderator
Staff member
Turned out there was one more pointless roadblock in the way. Apparently the standard Ubuntu package for Netatalk, 2.2.1, has a known bug related to enumerating directory contents that only shows up when accessed via ddp. The Plus was logging onto a share fine, but actually trying to access it made the connection go "poof". (Sigh) So I built a custom package for 2.2.2 and *that* one works. Since then I've successfully managed to use Stuffit Expander in an emulator to unpack some .sits of Diskcopy 4.2 images and use the Plus to write them, with the result that the 512k can now do this:

playpus-512k-sml.jpg

Now I just need to get a bucketload more floppies. Whee!

(I am seeing a little bit of weirdness with the 512k, but that's another thread I suppose.)

 
Top