
TiO adalah alat perangkat serial yang memiliki antarmuka baris perintah dan konfigurasi langsung untuk dengan mudah terhubung ke perangkat TTY serial untuk operasi I/O dasar.

Untuk membuat alat perangkat serial yang lebih sederhana untuk bekerja dengan perangkat TTY serial dengan lebih sedikit fokus pada fitur terminal/modem klasik dan lebih fokus pada kebutuhan pengembang dan peretas tertanam.
Tio awalnya dibuat sebagai alternatif untuk menyaring untuk menghubungkan ke perangkat serial ketika digunakan dalam kombinasi dengan TMUX.
Untuk detail penggunaan lebih lanjut, silakan lihat dokumentasi halaman pria di sini.
Antarmuka baris perintah langsung seperti yang tercermin dalam output dari tio --help :
Usage: tio [<options>] <tty-device|profile|tid>
Connect to TTY device directly or via configuration profile or topology ID.
Options:
-b, --baudrate <bps> Baud rate (default: 115200)
-d, --databits 5|6|7|8 Data bits (default: 8)
-f, --flow hard|soft|none Flow control (default: none)
-s, --stopbits 1|2 Stop bits (default: 1)
-p, --parity odd|even|none|mark|space Parity (default: none)
-o, --output-delay <ms> Output character delay (default: 0)
-O, --output-line-delay <ms> Output line delay (default: 0)
--line-pulse-duration <duration> Set line pulse duration
-a, --auto-connect new|latest|direct Automatic connect strategy (default: direct)
--exclude-devices <pattern> Exclude devices by pattern
--exclude-drivers <pattern> Exclude drivers by pattern
--exclude-tids <pattern> Exclude topology IDs by pattern
-n, --no-reconnect Do not reconnect
-e, --local-echo Enable local echo
--input-mode normal|hex|line Select input mode (default: normal)
--output-mode normal|hex|hexN Select output mode (default: normal)
-t, --timestamp Enable line timestamp
--timestamp-format <format> Set timestamp format (default: 24hour)
--timestamp-timeout <ms> Set timestamp timeout (default: 200)
-l, --list List available serial devices, TIDs, and profiles
-L, --log Enable log to file
--log-file <filename> Set log filename
--log-directory <path> Set log directory path for automatic named logs
--log-append Append to log file
--log-strip Strip control characters and escape sequences
-m, --map <flags> Map characters
-c, --color 0..255|bold|none|list Colorize tio text (default: bold)
-S, --socket <socket> Redirect I/O to socket
--rs-485 Enable RS-485 mode
--rs-485-config <config> Set RS-485 configuration
--alert bell|blink|none Alert on connect/disconnect (default: none)
--mute Mute tio messages
--script <string> Run script from string
--script-file <filename> Run script from file
--script-run once|always|never Run script on connect (default: always)
--exec <command> Execute shell command with I/O redirected to device
-v, --version Display version
-h, --help Display help
Options and profiles may be set via configuration file.
In session you can press ctrl-t ? to list available key commands.
See the man page for more details.
Secara default TIO secara otomatis terhubung ke perangkat TTY yang disediakan. Jika perangkat tidak ada, TIO akan menunggu untuk muncul dan kemudian terhubung. Jika koneksi hilang (misalnya perangkat dicabut), itu akan menunggu perangkat muncul kembali dan kemudian terhubung kembali. Namun, jika opsi --no-reconnect disediakan, TIO akan keluar jika perangkat tidak ada atau koneksi yang ditetapkan hilang.
Penggunaan khas adalah tanpa opsi:
$ tio /dev/ttyUSB0
Yang sesuai dengan opsi default yang umum digunakan:
$ tio --baudrate 115200 --databits 8 --flow none --stopbits 1 --parity none /dev/ttyUSB0
Daftar perangkat serial yang tersedia:
$ tio --list
Device TID Uptime [s] Driver Description
----------------- ---- ------------- ---------------- --------------------------
/dev/ttyS4 BaaB 19526.576 port 16550A UART
/dev/ttyS5 eV0Z 19525.845 port 16550A UART
/dev/ttyUSB1 bCC2 1023.274 ftdi_sio TTL232R-3V3
/dev/ttyUSB0 SPpw 978.527 ftdi_sio TTL232RG-VREG3V3
/dev/ttyACM0 i5q4 2.079 cdc_acm ST-Link VCP Ctrl
By-id
--------------------------------------------------------------------------------
/dev/serial/by-id/usb-FTDI_TTL232R-3V3_FTCHUV56-if00-port0
/dev/serial/by-id/usb-FTDI_TTL232RG-VREG3V3_FT1NELUB-if00-port0
/dev/serial/by-id/usb-STMicroelectronics_STLINK-V3_004900343438510234313939-if02
By-path
--------------------------------------------------------------------------------
/dev/serial/by-path/pci-0000:00:14.0-usb-0:8.1.3.1.4:1.0-port0
/dev/serial/by-path/pci-0000:00:14.0-usbv2-0:8.1.3.1.4:1.0-port0
/dev/serial/by-path/pci-0000:00:14.0-usbv2-0:6.4:1.0-port0
/dev/serial/by-path/pci-0000:00:14.0-usb-0:6.4:1.0-port0
/dev/serial/by-path/pci-0000:00:14.0-usbv2-0:6.3:1.2
/dev/serial/by-path/pci-0000:00:14.0-usb-0:6.3:1.2
Configuration profiles (/home/lundmar/.config/tio/config)
--------------------------------------------------------------------------------
rpi3 stm32 esp32 am64-evm
imx8mp-evk nucleo-h743zi2 usb-devices
Disarankan untuk menghubungkan perangkat TTY serial dengan ID:
$ tio /dev/serial/by-id/usb-FTDI_TTL232R-3V3_FTCHUV56-if00-port0
Catatan: Menggunakan perangkat serial dengan ID membantu memastikan bahwa TIO secara otomatis terhubung kembali ke perangkat serial yang sama saat dipasang kembali, bahkan ketika disebutkan secara berbeda.
Jika tidak ada perangkat serial dengan ID yang tersedia, disarankan untuk terhubung melalui Topologi ID (TID):
$ tio bCC2
Catatan: TID unik dan akan tetap sama selama perangkat port serial USB Anda terhubung ke topologi USB yang sama (port yang sama, hub yang sama, koneksi yang sama, dll.). Dengan cara ini mungkin bagi TIO untuk berhasil menyambung kembali ke perangkat yang sama.
Sambungkan secara otomatis ke perangkat serial baru yang muncul pertama:
$ tio --auto-connect new
Hubungkan secara otomatis ke perangkat serial terdaftar terbaru:
$ tio --auto-connect latest
Dimungkinkan untuk menggunakan opsi mengecualikan untuk mempengaruhi perangkat serial mana yang terlibat dalam strategi koneksi otomatis:
$ tio --auto-connect new --exclude-devices "/dev/ttyACM?,/dev/ttyUSB2"
Dan untuk mengecualikan driver berdasarkan pola:
$ tio --auto-connect new --exclude-drivers "cdc_acm,ftdi_sio"
Catatan: Pencocokan pola mendukung '*' dan '?'. Gunakan pemisahan koma untuk mendefinisikan beberapa pola.
Untuk memasukkan driver dengan pola tertentu cukup meniadakan opsi mengecualikan:
$ tio --auto-connect new --exclude-drivers !("cp2102")
Log untuk mengajukan dengan nama file autogenerated:
$ tio --log /dev/ttyUSB0
Log untuk mengajukan dengan nama file tertentu:
$ tio --log --log-file my-log.txt
Aktifkan cap waktu ISO8601 per baris:
$ tio --timestamp --timestamp-format iso8601 /dev/ttyUSB0
Output ke hex dengan lebar 16:
$ tio --output-mode hex16 /dev/ttyUSB0
Redirect I/O ke Socket Jaringan IPv4 di Port 4242:
$ tio --socket inet:4242 /dev/ttyUSB0
Data pipa ke perangkat serial:
$ cat data.bin | tio /dev/ttyUSB0
Memanipulasi garis modem di connect:
$ tio --script "set{DTR=high,RTS=low}; msleep(100); set{DTR=toggle,RTS=toggle}" /dev/ttyUSB0
Perintah pipa ke perangkat serial dan tunggu respons baris dalam 1 detik:
$ echo "*IDN?" | tio /dev/ttyACM0 --script "expect('rn', 1000)" --mute
KORAD KD3305P V4.2 SN:32475045
Berbagai perintah kunci sesi didukung. Saat TIO dimulai, tekan Ctrl-T? Untuk mendaftar perintah kunci yang tersedia.
[15:02:53.269] Key commands:
[15:02:53.269] ctrl-t ? List available key commands
[15:02:53.269] ctrl-t b Send break
[15:02:53.269] ctrl-t c Show configuration
[15:02:53.269] ctrl-t e Toggle local echo mode
[15:02:53.269] ctrl-t f Toggle log to file
[15:02:53.269] ctrl-t F Flush data I/O buffers
[15:02:53.269] ctrl-t g Toggle serial port line
[15:02:53.269] ctrl-t i Toggle input mode
[15:02:53.269] ctrl-t l Clear screen
[15:02:53.269] ctrl-t L Show line states
[15:02:53.269] ctrl-t m Change mapping of characters on input or output
[15:02:53.269] ctrl-t o Toggle output mode
[15:02:53.269] ctrl-t p Pulse serial port line
[15:02:53.269] ctrl-t q Quit
[15:02:53.269] ctrl-t r Run script
[15:02:53.269] ctrl-t R Execute shell command with I/O redirected to device
[15:02:53.269] ctrl-t s Show statistics
[15:02:53.269] ctrl-t t Toggle line timestamp mode
[15:02:53.269] ctrl-t v Show version
[15:02:53.269] ctrl-t x Send file via Xmodem
[15:02:53.269] ctrl-t y Send file via Ymodem
[15:02:53.269] ctrl-t ctrl-t Send ctrl-t character
Jika diperlukan, tombol awalan (CTRL-T) dapat dipetakan kembali melalui file konfigurasi.
Opsi dapat diatur melalui file konfigurasi yang pertama kali ditemukan di salah satu lokasi berikut dalam urutan yang tercantum:
File konfigurasi mendukung profil menggunakan bagian bernama yang dapat diaktifkan melalui baris perintah dengan nama atau pola. Profil menentukan perangkat TTY mana yang akan terhubung ke dan opsi lainnya.
Contoh file konfigurasi:
[default]
baudrate = 115200
databits = 8
parity = none
stopbits = 1
color = 10
[rpi3]
device = /dev/serial/by-id/usb-FTDI_TTL232R-3V3_FTGQVXBL-if00-port0
no-reconnect = true
log = true
log-file = rpi3.log
line-pulse-duration = DTR=200,RTS=150
color = 11
[svf2]
device = /dev/ttyUSB0
baudrate = 9600
script = expect("login: "); write("rootn"); expect("Password: "); write("rootn")
color = 12
[esp32]
device = /dev/serial/by-id/usb-0403_6014-if00-port0
script = set{DTR=high,RTS=low}; msleep(100); set{DTR=low,RTS=high}; msleep(100); set{RTS=low}
script-run = once
color = 13
[usb-devices]
pattern = ^usb([0-9]*)
device = /dev/ttyUSB%m1
color = 14
Untuk menggunakan profil tertentu dengan nama cukup mulai tio seperti itu:
$ tio rpi3
Atau dengan pencocokan pola:
$ tio usb12
Contoh file konfigurasi lain yang lebih rumit tersedia di sini.
Tio Suppots Lua Scripting Untuk mengotomatiskan interaksi dengan mudah dengan perangkat TTY.
Selain Lua Api Tio menyediakan fungsi -fungsi berikut:
expect(string, timeout)
Expect string - waits for string to match or timeout before continueing.
Supports regular expressions. Special characters must be escaped with '\'.
Timeout is in milliseconds, defaults to 0 meaning it will wait forever.
Returns 1 on successful match, 0 on timeout, or -1 on error.
On successful match it also returns the match string as second return value.
read(size, timeout)
Read from serial device. If timeout is 0 or not provided it will wait
forever until data is ready to read.
Returns number of bytes read on success, 0 on timeout, or -1 on error.
On success, returns read string as second return value.
read_line(timeout)
Read line from serial device. If timeout is 0 or not provided it will
wait forever until data is ready to read.
Returns number of bytes read on success, 0 on timeout, or -1 on error.
On success, returns the string that was read as second return value.
Also emits a single timestamp to stdout and log file per options.timestamp
and options.log.
write(string)
Write string to serial device.
Returns number of bytes written on success or -1 on error.
send(file, protocol)
Send file using x/y-modem protocol.
Protocol can be any of XMODEM_1K, XMODEM_CRC, YMODEM.
tty_search()
Search for serial devices.
Returns a table of number indexed tables, one for each serial device
found. Each of these tables contains the serial device information accessible
via the following string indexed elements "path", "tid", "uptime", "driver",
"description".
Returns nil if no serial devices are found.
set{line=state, ...}
Set state of one or multiple tty modem lines.
Line can be any of DTR, RTS, CTS, DSR, CD, RI
State is high, low, or toggle.
sleep(seconds)
Sleep for seconds.
msleep(ms)
Sleep for miliseconds.
exit(code)
Exit with exit code.
Paket untuk berbagai distribusi GNU/Linux tersedia. Silakan berkonsultasi dengan alat manajer paket Anda untuk menemukan dan menginstal TIO.
Jika Anda ingin melihat TIO termasuk dalam distribusi favorit Anda, silakan hubungi tim Pemelihara Paketnya.
Instal versi stabil terbaru:
$ snap install tio --classic
Catatan: Kurungan klasik saat ini diperlukan karena keterbatasan kerangka kerja Snapcraft. Lihat masalah #187 untuk diskusi.
Jika Anda telah menginstal buatan:
$ brew install tio
Jika Anda sudah menginstal MSYS2:
$ pacman -S tio
Rilis sumber terbaru dapat ditemukan di sini.
Sebelum menjalankan langkah -langkah instalasi, pastikan Anda menginstal perpustakaan GLIB dan LUA. Misalnya:
$ sudo apt install libglib2.0-dev liblua5.2-dev
Instal Langkah:
$ meson setup build
$ meson compile -C build
$ meson install -C build
Lihat meson_options.txt untuk opsi pembuatan spesifik TIO.
Catatan: Langkah -langkah pemasangan meson mungkin berbeda tergantung pada sistem spesifik Anda.
Mendapatkan kesalahan akses izin yang mencoba membuka perangkat serial Anda?
Tambahkan pengguna Anda ke grup yang memungkinkan akses perangkat serial secara permanen. Misalnya, untuk menambahkan pengguna Anda ke grup 'Dialout' Do:
sudo usermod -a -G dialout < username >Beralih ke grup "Dialout", sementara tetapi segera untuk sesi ini.
newgrp dialoutIni adalah proyek open source - semua kontribusi (laporan bug, kode, dokumen, ide, dll.) Dibawakan.
Harap gunakan fitur Github Issue Tracker dan Pull Request.
Juga, jika Anda menemukan perangkat lunak open source gratis ini berguna, jangan ragu untuk mempertimbangkan memberikan sumbangan pilihan Anda:

Kirim Laporan Bug melalui GitHub: https://github.com/tio/tio/issues
Kunjungi tio.github.io
TIO adalah gplv2+. Lihat file lisensi untuk lebih jelasnya.
Dipelihara oleh Martin Lund <[email protected]>
Lihat file penulis untuk daftar lengkap kontributor.