Tauri 1.0.0-beta.8 links webkit2gtk-4.0, unavailable on Ubuntu 26.04. Verified: builds and links libwebkit2gtk-4.1.so.0, libsoup-3.0.so.0, libjavascriptcoregtk-4.1.so.0 with no webkit-4.0 or libssl.1.1 refs. Workspace moved from yarn to npm; yarn.lock invalidated by this port. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2.2 KiB
nlink-cli — standalone TI-Nspire CX II link CLI (Linux)
A GUI-free command-line build extracted from n-link, for transferring files to/from a TI-Nspire CX II (CAS) over USB on Linux.
Built because:
- TiLP2 (distro
libticables1.3.6) does not support the CX II (USB PIDe022) — its probe reports "no devices found". - The prebuilt n-link 0.1.6
.debwon't run on Ubuntu 26.04 (needs the retiredlibssl.so.1.1+ WebKit2GTK 4.0). n-link is a Tauri/WebKit app.
This CLI reuses only n-link's self-contained cli.rs (upload/download/ls/mkdir/rmdir/
copy/move/upload-os), dropping Tauri/WebKit entirely.
Build
# one-time system deps
sudo apt-get install -y libusb-1.0-0-dev pkg-config
# Rust toolchain via rustup, then:
cargo build --release
# binary: target/release/n-link-cli
Cargo.toml uses a local [patch.crates-io] override of libnspire-sys
(../vendor/libnspire-sys) whose CX II NNSE handshake retry limit is raised from 10.
Run
./target/release/n-link-cli ls /
./target/release/n-link-cli download "/MyFile.tns" ./
./target/release/n-link-cli upload ./MyFile.tns "/"
./target/release/n-link-cli --help
System setup required (Linux)
- udev access for the CX II (
/etc/udev/rules.d/70-ti-nspire.rules):
(plus group/SUBSYSTEM=="usb", ATTRS{idVendor}=="0451", ENV{ID_MM_DEVICE_IGNORE}="1"uaccessfor PIDe022) — thenudevadm control --reload-rules && udevadm trigger. - ModemManager grabs the interface on plug; the
ID_MM_DEVICE_IGNORErule above tells it to leave TI devices alone. Restart it after adding the rule:sudo systemctl start ModemManager.
Known limitation
libnspire's CX II ("NavNet SE") protocol support has been frozen upstream since 2020
(lights0123/libnspire, last commit 2020-09-30; crates.io libnspire-sys 0.3.4 is the newest).
Against current (2026) CX II firmware the USB link and handshake work — real filenames
are transferred — but multi-packet stream transfers are unreliable and long operations
(e.g. listing a folder with many entries) can fail mid-transfer with Busy. Short transfers
are more likely to complete. This is a library/firmware-era mismatch, not a local
configuration problem.