• 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.

Yet Another Netatalk 2.2 Fork

Mk.558

Well-known member
Thank you for the feedback.

What I'll probably end up doing is making a separate subheading that points to your site/references this Netatalk 2.2 fork, along with the advantages of doing so. Netatalk 2.1.6 doesn't really do anything your fork doesn't already do, the work on it just makes it better, and it's not like Netatalk is a drag on system resources these days anyways.

Some time ago I found about the tinymacipgw project, and I liked it, but felt it was too limited. Some day I'll have to find out a limited GUI (I played with Linux mostly around 2010, and while I maintain it as a backup OS on all my systems, I really don't use it) system like Lubuntu was back in the day that ideally takes up less than 500MB but is otherwise fully functional and has the full Netatalk 2.2 + macipgw integration that I can run in a VM. Console-only VMs with very little extendability/no GUI tend to make my head hurt -- not to mention, I find it easier to pull up gedit or whatever and edit the .conf files rather than using vi or vim.

About your neat little tutorial:

A) Generally if it's Netatalk 2.1/2.2, anything all the way back to a 512K with System 3.3/Finder 5.4 using AppleShare WS 1.1 can connect to it see here. That's a 512Ke but a 512K will work the same
B) I was never really able to get 7.1 working with OT 1.3/AppleShare Client 3.7.4 to work with Tiger but maybe one day I'll buckle down again and try to figure out how to do it. Copying extensions over manually without using the Installer is a good way to get reliable system bombs
C) I've got a question -- in the Guide, I reference to make a temporary share in /media/ (it's referenced in the Guest client connection): my Linux techspeak is a bit weak. I don't think that's a good place to put a temporary share, and I honestly have no idea where you'd put a folder accessible by every user (think of sharing the Programs folder of your vintage mac's hard drive) on a *NIX box. I don't think that's a thing, most of the time you share a folder in the user home directory or something? I don't know. Put it in /var/? I asked this before like 10 years ago and nobody could give me a concrete answer
D) Lot of good stuff, nice job

reminder to self: 512K/512Ke to phonenet RXD/TXD wiring
 
Last edited:

slipperygrey

Well-known member
C) I've got a question -- in the Guide, I reference to make a temporary share in /media/ (it's referenced in the Guest client connection): my Linux techspeak is a bit weak. I don't think that's a good place to put a temporary share, and I honestly have no idea where you'd put a folder accessible by every user (think of sharing the Programs folder of your vintage mac's hard drive) on a *NIX box. I don't think that's a thing, most of the time you share a folder in the user home directory or something? I don't know. Put it in /var/? I asked this before like 10 years ago and nobody could give me a concrete answer
This is for read-only access for Guest users, right? I would recommend either /srv or somewhere in /home. On the other hand, /var is supposed to be used for volatile data I think, not really long-term file storage. See also: https://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard

D) Lot of good stuff, nice job
Thank you!
 

gsteemso

Well-known member
This is for read-only access for Guest users, right? I would recommend either /srv or somewhere in /home. On the other hand, /var is supposed to be used for volatile data I think, not really long-term file storage. See also: https://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard


Thank you!
Reading the Wikipedia summary of that, it's pretty clear that /srv is the correct place - it's for files and other data that the machine serves.

If the shared file store was to be externally writeable, well, that would run counter to the stated semantics of the /srv directory - but it would nevertheless be in keeping with the actual purpose, so I personally would just keep it there anyway.
 

Mk.558

Well-known member
My Linux skills are not in shape recently.

I'd like a tarball archive of the 2.2.10 fork. I have no idea how Github works so when I don't see a download link that I need to shuffle around disks I get confused. Is there one?
 

Arbee

Well-known member
Thanks for all your work on this, @slipperygrey ! I was able to get 2.2.10 up and running on my home server (running Fedora 38) with relatively little drama, and I'm able to connect equally well from emulated System 7 in MAME all the way up to the just-released macOS 14.1 Sonoma developer beta. I do have to manually modprobe appletalk before atalkd will start, maybe future systemd scripts can do that?
 

slipperygrey

Well-known member
Thanks for all your work on this, @slipperygrey ! I was able to get 2.2.10 up and running on my home server (running Fedora 38) with relatively little drama, and I'm able to connect equally well from emulated System 7 in MAME all the way up to the just-released macOS 14.1 Sonoma developer beta. I do have to manually modprobe appletalk before atalkd will start, maybe future systemd scripts can do that?
You're welcome, happy that it's useful to you!

I'm a Debian user where the appletalk module is loaded automatically, as NJRoadfan says.

Getting a more seamless experience on Fedora would definitely be nice. First question: Do you have to compile the module yourself or is it included with Fedora 38 by default?

If you have a Github account it would be great if you could create a ticket for this so that we can figure out the best solutions: https://github.com/Netatalk/netatalk/issues
 

Arbee

Well-known member
The module's included (it's in the kernel-modules-extra package, which usually isn't installed by default, but has a lot of useful things in it). I have a GH account, I'lll go ahead and create a ticket.
 

Arbee

Well-known member
Alright. Before I write up a Fedora install guide as promised, I'm trying to make sure I have as much working as possible. And I haven't actually gotten AppleTalk to work yet. atalkd starts and is running fine. I can connect to afpd no problems when I click to enter the IP address/DNS name in Chooser, but I don't get the server name appearing automatically like you're supposed to.

Wireshark doesn't show any AppleTalk packets, and I've tried both wired and wireless connections to the server. Any tips on debugging?
 

slipperygrey

Well-known member
Alright. Before I write up a Fedora install guide as promised, I'm trying to make sure I have as much working as possible. And I haven't actually gotten AppleTalk to work yet. atalkd starts and is running fine. I can connect to afpd no problems when I click to enter the IP address/DNS name in Chooser, but I don't get the server name appearing automatically like you're supposed to.

Wireshark doesn't show any AppleTalk packets, and I've tried both wired and wireless connections to the server. Any tips on debugging?
I kicked off a new page on the netatalk wiki that attempts to summarize a few troubleshooting steps:


The most common problem is that atalkd is misconfigured in some way, e.g. using the wrong loopback network interface. The "nbplkup" tool is handy for telling if the Netatalk *NIX system can see AFP services running on real vintage Macs on the network.
 

Scott Squires

Well-known member
I'm able to connect equally well from emulated System 7 in MAME all the way up to the just-released macOS 14.1 Sonoma developer beta.

And I haven't actually gotten AppleTalk to work yet.

It could help if you clarified what is working and what isn't working as expected. If it's just the having to connect by ip address issue, what hardware and OS is the system not seeing the shares running on, and what's the network topology?
 

Arbee

Well-known member
Netatalk3 style connecting to servers by entering the DNS name/IP address works. Auto-discovery, one of the reasons I switched to 2.2.10, doesn't.

nbplkup shows entries for atalkd itself and "Workstation", but not the server. I installed 2.2.10 on a different Linux machine and nbplkup shows all 3 entries for that machine (atalkd, Workstation, and the AFP server name) so I obviously have more fiddling to do.
 

NJRoadfan

Well-known member
Odd, if nbplkup is showing a AFPServer entry, a client Mac on the same network should see it.

A few things that won't work with AppleTalk:
-Anything Wi-Fi connected, unless it is a very old access point that handles DDP correctly.
-Running netatalk in a VM with a bridged network adapter and an emulator on the same host. DDP packets won't be seen by pcap on the host's side.

What is the contents of your atalkd.conf and do you have another AppleTalk router on your network (Cayman GatorBox or Shiva Fastpath)? If no router, you likely need the "-router" switch in atalkd.conf.

One final thing to try is unregistering the extra NBP names netatalk starts with. Replace <hostname> with your machine's actual host name.

Code:
nbpunrgstr <hostname>:netatalk
nbpunrgstr <hostname>:Workstation

The code that enables this has already been removed from a post 2.2.10 commit because there are reports of problems with it.
 

Arbee

Well-known member
My primary tester is a MAME-emulated Quadra 605 with an LC PDS Ethernet card running 7.6.1 with OT 1.3 and the updated AppleShare client on an Intel MacBook Pro. Connectivity is via Apple's vmnet API, which is also used by recent versions of QEMU. (Apple is slowly killing pcap on macOS, as you probably know, so emulators are having to switch to vmnet). I have tried both wired and wireless Ethernet connections from that Mac to the rest of my LAN. Regular connections from the emulated machine to everything else on the LAN and to the outside Internet work great.

Secondary tester is a dual-processor G5 (real big iron, err, aluminum) running Leopard. I enabled AppleTalk in the Network settings panel and no servers appear in Finder until I explicitly connect to one with Command-K. The G5, the server, and the PC workstation that is now also running atalkd/afpd are all on wired Ethernet.

There are no AppleTalk routers on the network.

On the server (running Fedora 38), which as of this writing still doesn't show the AFP server in nbplkup, atalkd.conf is:
eno1 -phase 2 -net 0-65534 -addr 65280.66

(I just put eno1, Netatalk added the rest when I started atalkd).

On the workstation (also running Fedora 38), which has an AFP server that *does* appear in nbplkup, atalkd.conf is:
enp39s0 -phase 2 -net 0-65534 -addr 65280.51

I tried adding -router there and it didn't seem to make a difference.
 

NJRoadfan

Well-known member
If I recall, Leopard dropped support for AFP over AppleTalk. The AppleTalk stack supported PAP printing only. Out of the box, netatalk should support advertisement of AFP IP shares using Avahi (mDNS) assuming it is installed.

On the server, try the following atalkd.conf

Code:
eno1 -router -phase 2 -net 0-65534 -addr 65280.66 -zone "MyZone"

I've run into weird problems with AppleTalk clients and netatalk's afpd if I don't have a router and a zone on the network.

I can test MAME on an old Intel MacBook Air running Catalina, but it may be a few days. It would be against a known working setup though (Debian running netatalk setup via A2SERVER). I know it works with a real Q605 with LC Ethernet since I happen to have that exact machine.
 

Arbee

Well-known member
I'm using some MAME bits that haven't landed in top-of-tree yet, but you can get the preview version of the vmnet networking (and much easier configuration) with the Ample GUI shell: https://github.com/ksherlock/ample/releases

The LC Ethernet isn't in there yet either, but you can substitute a IIvx with a NuBus Apple Ethernet card and get equivalent functionality for what we're doing here.
 

Arbee

Well-known member
Ok, with the suggested atalkd.conf the server's AFPServer now shows in nbplkup on both Linux machines. I built Netatalk on the MacBook also, but nbplkup doesn't work (it says "Address family not supported by protocol family"). Too bad, that would've been useful for debugging.
 
Top