这是配合 TashTalk USB 使用的当前用户端程序。它内置一个 AFP 服务器,应当可以与几乎所有配备 LocalTalk 端口的 Mac 协同工作。它还能导入 StuffIt 压缩包和软盘镜像,并将其加载到共享路径中,同时保留资源分支(resource fork),供远程客户端使用。
此外,它还支持将支持 LocalTalk 的 LaserWriter、ImageWriter 和 StyleWriter 打印机以 AirPrint / IPP 打印机的形式共享到现代网络,也支持将现代打印机共享给经典 Mac。最新版本发布页面如下:
https://github.com/FeralFirmware/TailTalk/releases/latest
项目为几乎所有主要 AppleTalk 协议提供数据包解析器和全异步 API。
此外,它还支持搭配 TashTalk 运行,以服务 LocalTalk Mac。
AARP/DDP 底层既可在进程内运行(默认方式),也可在共享守护进程 tailtalkd 中运行。该守护进程持有网络接口,并通过 Unix 或 UDP 套接字上的 protobuf 协议,向多个客户端提供 DDP 套接字、寻址和路由规则——既可从 TailTalk(TalkStack::builder().daemon_unix(..))使用,也可供纯 C 客户端使用。详见 docs/daemon-protocol.md。
前置要求
本项目需要 Rust 1.90 或更高版本,可从 rustup.rs 安装。默认情况下,它会为你的操作系统和 CPU 架构安装匹配的编译器。
本项目使用 cargo-packager 为 Linux 构建 AppImage,为 macOS 构建 App bundle,为 Windows 构建安装程序。使用 cargo install cargo-packager 安装。
请确保按照 rustup 手册 的说明安装 Windows MSVC 前置依赖。
Windows 需要将 npcap SDK 保存到机器上的某个位置,可从 npcap.com 获取。将 LIB 环境变量指向解压后的 SDK 文件夹,例如:
C:\npcap-sdk-1.13\Lib\x64
前置依赖安装完成后,在本仓库根目录运行 cargo build --release 即可构建全部内容;若只构建 TailTalk GUI,则运行 cargo build -p tailtalk-gui --release。
构建完成后,二进制文件位于 target/release/。
Linux
cargo packager –release -f appimage -p tailtalk-gui
macOS
cargo packager –release -p tailtalk-gui
Windows
cargo packager –release -f nsis -p tailtalk-gui
构建产物将放置在 dist/ 目录中。
TashTalk USB 使用 Silicon Labs 的 CP210x USB 转 UART 桥接芯片(VID 10c4,PID ea60)。
cp210x 内核模块很可能已经安装,但默认情况下设备节点仅 root 可访问。要让普通用户无需 root 即可访问,可创建如下 udev 规则:
echo ‘SUBSYSTEM==“tty”, ATTRS{idVendor}==“10c4”, ATTRS{idProduct}==“ea60”, TAG+=“uaccess”’
| sudo tee /etc/udev/rules.d/99-tashtalk-usb.rules
sudo udevadm control –reload-rules && sudo udevadm trigger
运行上述命令后,拔出并重新插入 TashTalk USB 设备。它将显示为 /dev/ttyUSB0(或类似名称),且无需 root 即可访问。
从 Silicon Labs 安装 CP210x VCP Windows 驱动。
macOS 11 及更高版本已原生支持 CP2102N USB 芯片。对于 10.12 至 10.15 版本,则需要安装 Silicon Labs 的驱动程序才能识别该设备:https://www.silabs.com/software-and-tools/usb-to-uart-bridge-vcp-drivers?tab=downloads
在 macOS 上,由于系统自带 libpcap,EtherTalk 默认编译进 GUI。在 Linux 和 Windows 上则为可选功能:安装 libpcap(libpcap-dev)或 npcap SDK 后,使用 cargo build -p tailtalk-gui --features ethertalk 构建。
数据包捕获和注入通过 /dev/bpf* 进行,默认仅 root 可用。要以普通用户身份使用 EtherTalk,请安装 Wireshark 磁盘映像中附带的 ChmodBPF 软件包(或运行 brew install --cask wireshark-chmodbpf)。它会创建一个 access_bpf 组,将 BPF 设备划归该组,并将你加入该组。
组成员身份仅对新登录会话生效,因此之后需要注销并重新登录。在此之前,以及如果完全没有安装 ChmodBPF,GUI 会隐藏以太网接口选择器,而不是提供一个无法启动的传输选项。