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

TashRouter: An AppleTalk Router

finkmac

NORTHERN TELECOM
i guess i was right for the wrong reason...

i wonder why distros are so allergic to 32bit ARM macvtap.
 

shirsch

Well-known member
Well, that would explain it... In reading the preceeding pages of this topic I get the impression that the more common tun/tap utilities can also do the trick, but if the recipe is there I must have missed it. Can this work, or do I need to pickup a 64-bit RPi?
 

finkmac

NORTHERN TELECOM
Well, that would explain it... In reading the preceeding pages of this topic I get the impression that the more common tun/tap utilities can also do the trick, but if the recipe is there I must have missed it. Can this work, or do I need to pickup a 64-bit RPi?
if i can figure it out on my 32bit pi2, you can too ;) start with my long post on the previous page

if you're gonna buy something, an ethernet adapter might be beneficial... as WiFi APs like to lobotomize AppleTalk packets apparently.
 

tashtari

PIC Whisperer
So I just brought this up in the Void IRC channel...

<abby> if you know what the kconfig option is called i can add it next update, which I'll probably do today

You wouldn't get that kind of service from Debian. =D
 

shirsch

Well-known member
I'll give that long set of directions a shot. Couple of questions:

  • Can 'wlan0' be substituted for 'eth0' in order to use Wifi?
  • With dhcpcd disabled, how does the RPi get assigned an IP address?
 

shirsch

Well-known member
So I just brought this up in the Void IRC channel...

<abby> if you know what the kconfig option is called i can add it next update, which I'll probably do today

You wouldn't get that kind of service from Debian. =D
That's terrific news. I assume this update would be to a beta or testing release, correct? Where do they publish those?
 

finkmac

NORTHERN TELECOM
I'll give that long set of directions a shot. Couple of questions:

  • Can 'wlan0' be substituted for 'eth0' in order to use Wifi?
This should work but I don't know for sure... I've only ever used wired networks on Pis (and linux in general). I don't know where you'd be setting the SSID or password for example.
  • With dhcpcd disabled, how does the RPi get assigned an IP address?
Huh I didn't make that clear did I. If you follow my steps, you're assigning a static IP address to your Pi.

Code:
iface br0 inet static
   address 10.40.0.216
   gateway 10.40.0.1
   dns-domain local.default.tel
   dns-nameservers 10.40.0.1 1.1.1.1 8.8.8.8
   bridge_ports eth0 tap2

address = the IP address you're assigning to your Pi, on the same subnet as your router
gateway = the IP address of the router on your network.
dns-domain = the dns domain name you're using on your network
dns-nameservers = the dns servers you're using. generally your router's IP address and a public DNS server as fallback
 

treellama

Well-known member
I have had trouble getting bridge to work with the Raspberry Pi wifi, so YMMV. If you have trouble with it, try Ethernet before going too far debugging it.
 

shirsch

Well-known member
From what I've read here, the issue is centered around the Wifi access point behavior during frame translation. I have a GL.inet router, which is Linux based and hopefully won't exhibit this problem. I'm using Tashtalk with a Pi Zero W and I'm not sure whether it supports a USB<-->ethernet device.

UPDATE: I'll be damned... The Pi brought up the ethernet interface automagically when I plugged it in. Will try wired ethernet first, then.
 
Last edited:

treellama

Well-known member
In my case it was not an AppleTalk or AP issue, as I was only trying to use IP at the time. But, I could have been doing something wrong. If you get the Ethernet working, should be straightforward to switch the interface to the Wifi and try it!
 

shirsch

Well-known member
I'm throwing in the towel for now. The writeup I'm trying to follow assumes Raspbian with systemd and I'm running Void Linux. For example, there is no /etc/network/interfaces.d directory in which to create the br0 specification. Clearly this effort will need to wait until the Void Linux folks make macvtap available in the 32-bit ARM distribution.
 

shirsch

Well-known member
I reflashed the SD card with the current 32-bit Raspbian and started working through the recipe. There appears to be a step missing. I have created the /etc/network/interfaces.d/br0 file per instructions, disabled dhcpcd using systemctl and rebooted. Now I have no networking. None of the tun/tap devices are listed when I run ifconfig. When I attempt to run the router it blows up with an exception that ends in OSError: [Errno 19] No such device. What actually creates the br0 and tap2 devices?

UPDATE: Did a bit of quick digging. The missing steps (for me):

  • Use rasp-config Advanced-->Network Config and switch from dhcpcd to NetworkManager. I was simply disabling the dhcpcd service using systemctl (not knowing any better).
  • Before doing anything, install the bridge-utils and uml-utilities packages or the tun/tap/br stuff will not work.
Now I have a reasonable looking network interface arrangement. On to the router...
 
Last edited:

shirsch

Well-known member
Before I let the smoke out of something, is it safe to directly connect the tasktalk hat to an Apple //gs serial port - or do I need the localtalk transformers + phone wire in between?
 

tashtari

PIC Whisperer
Before I let the smoke out of something, is it safe to directly connect the tasktalk hat to an Apple //gs serial port - or do I need the localtalk transformers + phone wire in between?
With the TashTalk 2 hat, you actually need to use LT or PhoneNet dongles and cables.
 

NJRoadfan

Well-known member
I don't know if macvtap will work with WiFi interfaces. Heck, I don't know if the bridging solution will work either. In general, packet injection solutions are limited to classic Ethernet interfaces due to the frame differences and limitations on promiscuous mode on WiFi. In my case, I created a TAP interface and connected netatalk's atalkd and TashRouter together using it. This allowed me to seamlessly switch between Ethernet and WiFi on my Pi and avoided any issues with kernel level packet injection (RPi OS doesn't come with the macvtap module).
 

shirsch

Well-known member
So I've tried a direct connect using a crossover 8-pin cable and a pair of PhoneNet dongles. Same results with either: I can see four zones:

  • LtoUDP Network
  • Tashtalk Network
  • Ethernet Network
  • LocalTalk2ZoneA
The last of these is my netatalk server running on a dedicated system. When I try to login to my zone it cannot find the server. Ditto for all the others. An attempt at netbooting fails with a timeout. It's seeing something, but there's no communication taking place. This is what I see on the screen:
Code:
root@tashtalk:~/tashrouter# ./taprouter.py
router away!
2024-03-06 16:21:37,608 INFO: starting LtoudpPort...
2024-03-06 16:21:37,616 INFO: LToUDP assigned network number 1
2024-03-06 16:21:37,621 DEBUG: router adding: RoutingTableEntry(extended_network=False, network_min=1, network_max=1, distance=0, port=LToUDP, next_network=0, next_node=0)
2024-03-06 16:21:37,634 DEBUG: router adding network range 1-1 to zone LToUDP Network (now default zone for this range)
2024-03-06 16:21:37,641 INFO: starting TashTalkPort...
2024-03-06 16:21:37,647 INFO: ttyAMA0 assigned network number 2
2024-03-06 16:21:37,650 DEBUG: router adding: RoutingTableEntry(extended_network=False, network_min=2, network_max=2, distance=0, port=ttyAMA0, next_network=0, next_node=0)
2024-03-06 16:21:37,654 DEBUG: router adding network range 2-2 to zone TashTalk Network (now default zone for this range)
2024-03-06 16:21:37,663 INFO: starting TapPort...
2024-03-06 16:21:37,675 INFO: tap2 assigned network number range 3-5
2024-03-06 16:21:37,680 DEBUG: router adding: RoutingTableEntry(extended_network=True, network_min=3, network_max=5, distance=0, port=tap2, next_network=0, next_node=0)
2024-03-06 16:21:37,688 DEBUG: router adding network range 3-5 to zone EtherTalk Network (now default zone for this range)
2024-03-06 16:21:37,708 INFO: all ports started!
2024-03-06 16:21:37,712 INFO: starting EchoService...
2024-03-06 16:21:37,717 INFO: starting NameInformationService...
2024-03-06 16:21:37,722 INFO: starting RoutingTableAgingService...
2024-03-06 16:21:37,727 INFO: starting RtmpRespondingService...
2024-03-06 16:21:37,732 INFO: starting RtmpSendingService...
2024-03-06 16:21:37,737 INFO: starting ZipRespondingService...
2024-03-06 16:21:37,743 INFO: starting ZipSendingService...
2024-03-06 16:21:37,749 INFO: all services started!
2024-03-06 16:21:38,623 DEBUG: router adding: RoutingTableEntry(extended_network=False, network_min=256, network_max=256, distance=1, port=tap2, next_network=1, next_node=28)
2024-03-06 16:21:39,902 INFO: LToUDP claiming node address 254
2024-03-06 16:21:39,907 INFO: tap2 claiming address 5.229
2024-03-06 16:21:39,916 INFO: ttyAMA0 claiming node address 254
2024-03-06 16:21:47,764 DEBUG: router adding network range 256-256 to zone LocalTalk2ZoneA (now default zone for this range)

There is an active Gatorbox on the network that bridges a lab-common localtalk string to my ethernet network. When connected to that, the Apple 2e (in this case) can see the server and boot from it.

And, to be clear: This is with an ethernet connection using a USB-to-Ethernet dongle on the Pi. Wifi is not active.
 

NJRoadfan

Well-known member
Apple II netbooting is a bit quirky. It requires that the LocalTalk network the machine is connected to also be in the same zone as the netboot server in order to work. As a test, I would try something a bit more simple, like maybe a LocalTalk connected Mac or Apple II trying to connect to an AFP server or PAP printer on Ethernet.
 

shirsch

Well-known member
I apologize if I haven't been clear - long day of head banging! I am indeed using a single Apple IIe w/ workstation card connected through a pair of dongles to the DIN port of the tashtalk hat. There is an AFP server on the ethernet side of things. The logon program cannot find the server, which is called 'dockstar'. The netboot attempt was just a quick experiment when nothing else worked.
 

shirsch

Well-known member
More information: A lookup from the AFP server does not seem to find the tashtalk router.

Code:
$ ./nbplkup
                       dockstar:ProDOS16 Image                     1.163:3
                       dockstar:Apple //e Boot                     1.163:3
                       dockstar:AFPServer                          1.163:129
                       dockstar:Apple //gs                         1.163:3
                       dockstar:netatalk                           1.163:4
                       dockstar:Workstation                        1.163:4
               HP LaserJet 2200:SNMP Agent                         1.4:8
               HP LaserJet 2200:LaserWriter                        1.4:158
               HP LaserJet 2200:LaserJet 2200                      1.4:157
               HP LaserJet 2200:HP Zoner Responder                 1.4:156
                         quadra:A/UX                               185.182:128
                      <Unnamed>:Macintosh Quadra 650               185.182:252
                   Gator_Hirsch:GatorBox                           256.133:128
                   Gator_Hirsch:GatorBox CS                        256.133:128
                   Gator_Hirsch:SNMP Agent                         256.133:8
 
Top