Chapter 17: Campus IT

This chapter records the working Linux setup for the Georgia Tech VPN and campus printers. Georgia Tech has two separate printing workflows:

  1. MyPrintCenter sends a held job to a release station.
  2. CODA Direct-IP sends a job immediately to one specific Toshiba printer.

Do not use the MyPrintCenter instructions for a CODA Direct-IP queue.

GT VPN on Linux

Current Workstation

This workstation uses the NetworkManager profile GT-GlobalProtect with the OpenConnect GlobalProtect protocol. Cisco Secure Client has been removed and is not required.

Clash may remain active. Clash manages proxy traffic, while OpenConnect adds the private GT network routes needed for Direct-IP printing. Do not configure vpn.gatech.edu as a Clash proxy.

The .zshrc helper owns the VPN for the lifetime of one blocking command:

gatech vpn

Complete the GT account and Duo prompts. If the gateway prompt offers DC and NI, select DC, which is the tested route for this profile. Keep the terminal open while using GT resources.

The command disconnects the VPN when it receives Ctrl-C, Ctrl-D, a terminal close, or the corresponding termination signal. Do not enter a password in the shell or save it in .zshrc.

Verify the connection when needed:

nmcli -t -f NAME,TYPE,DEVICE connection show --active
ip route get 128.61.238.18

For the CODA 6F printer, the route should use vpn0 when connected remotely.

MyPrintCenter Release Printing

Workflow: upload online -> find printer -> tap BuzzCard -> release job.

  1. Connect to GT Wi-Fi or the GT VPN.
  2. Open MyPrintCenter and upload a PDF.
  3. Set color, sides, and copies.
  4. At a print-release station, tap the BuzzCard, select the job, and press Print/Release. See the GT printing instructions.

Locations

Cost Reference

The January 27, 2025 GT rate sheet lists $0.04 per B&W page and $0.19 per color page. Check MyPrintCenter for the current balance and current rates before relying on those archived amounts.

CODA Toshiba Direct-IP Printing

Sources:

CODA uses the Toshiba e-BRIDGE CUPS driver and an AppSocket connection on TCP port 9100. It does not use MyPrintCenter, Hollister, or uniFLOW. A submitted job prints immediately without a BuzzCard release step.

Installed Configuration

The current workstation is already configured as follows:

Setting Value
Queue CODA-6F-E0609
Room CODA 6F E0609
Device URI socket://128.61.238.18:9100
Driver TOSHIBA ColorMFP
Defaults US Letter, color, long-edge duplex
Shared No

The CODA queue is intentionally not the system default printer. Its installed components are:

/usr/share/cups/model/Toshiba/TOSHIBA_ColorMFP_CUPS.ppd
/usr/lib/cups/filter/est6550_Authentication

Daily Printing Workflow

When outside the GT network, start the VPN in one terminal and leave it open:

gatech vpn

Print from an application by selecting CODA-6F-E0609, or use another terminal:

lp -d CODA-6F-E0609 document.pdf

Direct-IP jobs begin printing as soon as CUPS sends them. Check the queue before disconnecting the VPN:

lpstat -o CODA-6F-E0609

No output means that no jobs remain in the local queue. Then press Ctrl-C in the terminal running gatech vpn.

Cancel a pending job with its job ID:

cancel JOB_ID

Applications may override the queue defaults. Select one-sided printing in the application when duplex output is not wanted.

One-Time Ubuntu Setup or Repair

These steps apply to Ubuntu 22.04 and 24.04. Skip them on the current workstation unless the queue or driver has been removed.

Install CUPS and the supporting tools:

sudo apt update
sudo apt install cups netcat-openbsd unzip
sudo systemctl enable --now cups

Connect to the GT network or run gatech vpn, then test the target before installing anything:

nc -vz -w 3 128.61.238.18 9100

Download Color_Unix_Linux.zip from the official CODA printing page, then extract the normal CUPS archive:

cd ~/Downloads
unzip Color_Unix_Linux.zip -d gt-toshiba-driver
cd gt-toshiba-driver/Color_Unix_Linux/CUPS/Usa/normal

toshiba_stage="$(mktemp -d -t gt-toshiba.XXXXXX)"
tar -xf TOSHIBA_ColorMFP_CUPS.tar -C "$toshiba_stage"
gunzip "$toshiba_stage/usr/share/cups/model/Toshiba/TOSHIBA_ColorMFP_CUPS.gz"

Install only the CUPS PPD and filter:

sudo install -d -o root -g root -m 0755 \
  /usr/share/cups/model/Toshiba
sudo install -o root -g root -m 0644 \
  "$toshiba_stage/usr/share/cups/model/Toshiba/TOSHIBA_ColorMFP_CUPS" \
  /usr/share/cups/model/Toshiba/TOSHIBA_ColorMFP_CUPS.ppd
sudo install -o root -g root -m 0755 \
  "$toshiba_stage/usr/lib/cups/filter/est6550_Authentication" \
  /usr/lib/cups/filter/est6550_Authentication

The ZIP also contains LinuxFilter/Usa/linux.tar and estcoloradd. Do not use them for this setup. They configure the legacy LPD and /etc/printcap path, not the modern CUPS queue used here.

Create the Direct-IP queue without changing the system default printer:

sudo lpadmin \
  -p CODA-6F-E0609 \
  -E \
  -v socket://128.61.238.18:9100 \
  -i /usr/share/cups/model/Toshiba/TOSHIBA_ColorMFP_CUPS.ppd \
  -D "CODA 6F E0609 Toshiba" \
  -L "CODA E0609" \
  -o printer-is-shared=false \
  -o PageSize=Letter \
  -o Duplex=DuplexNoTumble

sudo systemctl restart cups
sudo cupsenable CODA-6F-E0609
sudo cupsaccept CODA-6F-E0609

Remove the temporary extraction directory after a successful installation:

find "$toshiba_stage" -depth -delete
unset toshiba_stage

For another CODA floor, use the current IP address from the official CODA page and choose a queue name that identifies its floor and room.

Validation and Troubleshooting

Confirm the queue, driver, and server-side defaults:

systemctl is-active cups
lpstat -p CODA-6F-E0609 -l
lpstat -v CODA-6F-E0609
cupstestppd -W all \
  /usr/share/cups/model/Toshiba/TOSHIBA_ColorMFP_CUPS.ppd
ipptool -tv \
  ipp://localhost/printers/CODA-6F-E0609 \
  /usr/share/cups/ipptool/get-printer-attributes.test | \
  grep -E '(media-default|sides-default|print-color-mode-default)'

Expected IPP defaults are:

media-default = na_letter_8.5x11in
sides-default = two-sided-long-edge
print-color-mode-default = color

The Toshiba PPD may warn about old, nonstandard page-size names while still reporting PASS. CUPS may also warn that PPD printer drivers are deprecated. Both are expected for this GT-provided legacy driver on the current CUPS version.

If a job does not print:

  1. Run ip route get 128.61.238.18 and confirm that remote traffic uses vpn0.
  2. Run nc -vz -w 3 128.61.238.18 9100. A failure here is a network or VPN problem, not a PPD problem.
  3. Run lpstat -o CODA-6F-E0609 and inspect any held job.
  4. Inspect recent CUPS messages with journalctl -u cups --since today.
  5. Keep the VPN active until the local queue is empty.

The installed configuration was validated with a local cupsfilter dry run. The full pipeline produced PostScript, Toshiba PJL, user, and job-name markers without submitting a physical print job.

Table of Content