twelvetone12
Well-known member
While working on my "portable" version of AirTalk I had my Powerbook 100 hooked via USB to my PC using a makeshift adapter, so I could use tashtalkd and test stuff. "How cool would it be for the PC to be a node in the LocalTalk network" I thought, so I decided I would try my hand to write a Linux network driver.
Here it is in all it's alpha-bad-code glory:
What is it?
It is a Linux Line Discipline driver which ties a TashTalk on any serial port to the networking stack, using the built-in LocalTalk support. It will show up as lt0, which is compatible with the old ISA cards managed by the COPS driver. It is based (very heavily) on the SLIP driver, with parts from COPS and tashtalkd. Once you have your lt0 interface you can use it as a normal network interface on the system.
Does it work?
Sorta, but it still needs testing. It seems to properly receive packets and I can send them: I can send an AEP ping and have a response back.
Does it work with netatalk?
It should but for the moment I could not make it work, this would be the end goal through, but I'm not super expert in netatalk and it is quite a mess to figure out what is going on in the code (I can specify lt0 as an interface but packets get always routed to loopback).
How bad is the code?
Quite a bit I hacked it together so I could publish something presentable, there is quite a bit of work to clean up stuff.
I tested it on Linux 5.19 and 6.2. It should compile on Linux 5.15 if I did not do any inline declarations My TashTalk is connected via a FTDI usb adapter, so I did not yet test a "real" serial port.
How can I try it?
You adventurous I see
git clone https://bitbucket.org/twelvetone12/modtashtalk/src/master/
Then in another terminal:
In even another terminal
You should see the packet in TCP dump. If there is other stuff on the network, you should see that too. In raw.c I hardcoded "27" as the destination node for AEP, so if you have other nodes you could try pinging them and you should see a response!
And that's all for now, comments are welcome!
Here it is in all it's alpha-bad-code glory:
Bitbucket
bitbucket.org
What is it?
It is a Linux Line Discipline driver which ties a TashTalk on any serial port to the networking stack, using the built-in LocalTalk support. It will show up as lt0, which is compatible with the old ISA cards managed by the COPS driver. It is based (very heavily) on the SLIP driver, with parts from COPS and tashtalkd. Once you have your lt0 interface you can use it as a normal network interface on the system.
Does it work?
Sorta, but it still needs testing. It seems to properly receive packets and I can send them: I can send an AEP ping and have a response back.
Does it work with netatalk?
It should but for the moment I could not make it work, this would be the end goal through, but I'm not super expert in netatalk and it is quite a mess to figure out what is going on in the code (I can specify lt0 as an interface but packets get always routed to loopback).
How bad is the code?
Quite a bit I hacked it together so I could publish something presentable, there is quite a bit of work to clean up stuff.
I tested it on Linux 5.19 and 6.2. It should compile on Linux 5.15 if I did not do any inline declarations My TashTalk is connected via a FTDI usb adapter, so I did not yet test a "real" serial port.
How can I try it?
You adventurous I see
git clone https://bitbucket.org/twelvetone12/modtashtalk/src/master/
cd modtashtalk
make
./setup_and_run # This loads the module and lauches the line discipline, it blocks in fg
Then in another terminal:
sudo ifconfig lt0 up # if you specify an IP address, routing will implode
sudo tcpdump -i lt0 -vvvX
In even another terminal
cd modtashtalk
gcc -o raw raw.c
sudo ./raw lt0
You should see the packet in TCP dump. If there is other stuff on the network, you should see that too. In raw.c I hardcoded "27" as the destination node for AEP, so if you have other nodes you could try pinging them and you should see a response!
And that's all for now, comments are welcome!