Linux Terminal Emulator

Riri Maiyuliani
7 min readNov 2, 2024

--

Assalamualaikum wr wb. Materi pembahasan pada artikel kali ini adalah tentang terminal emulator. Adapun terminal emulator adalah aplikasi yang dapat digunakan untuk berkomunikasi dengan perangkat lain yang pada umumnya menggunakan protokol UART. Contoh paling umum adalah berkomunikasi dengan arduino board, esp8266, esp32 dan lain sebagainya. Komunikasinya menggunakan perangkat berupa USB to serial converter, misalnya yang menggunakan chip FT232, CH340, PL2303, CP2102 dan lain sebagainya. Setelah memasang perangkat USB to serial ke komputer, maka bisa terlihat dimana perangkatnya berada seperti ini:

$ sudo dmesg | tail
[67466.302814] usb 4-1.2: New USB device found, idVendor=1a86, idProduct=7523, bcdDevice= 2.64
[67466.302829] usb 4-1.2: New USB device strings: Mfr=0, Product=2, SerialNumber=0
[67466.302835] usb 4-1.2: Product: USB Serial
[67466.367131] usbcore: registered new interface driver ch341
[67466.367158] usbserial: USB Serial support registered for ch341-uart
[67466.367182] ch341 4-1.2:1.0: ch341-uart converter detected
[67466.369104] usb 4-1.2: ch341-uart converter now attached to ttyUSB0

Namun yang dapat mengakses perangkat tersebut hanya root atau pengguna yang terdapat dalam grup dialout.

$ ls -l /dev/ttyUSB0
crw-rw----. 1 root dialout 188, 0 Oct 31 10:21 /dev/ttyUSB0

Agar dapat mengakses perangkat tersebut, tambahkan pengguna ke dalam grup dialout menggunakan perintah:

$ sudo usermod -aG dialout $(whoami)

Setelah menjalankan perintah di atas, maka perangkat USB to serial sudah bisa digunakan. Untuk mengaksesnya ada banyak aplikasi yang bisa digunakan. Berikut adalah beberpa aplikasi yang bisa digunakan.

  • Minicom

Minicom adalah aplikasi yang sangat umum digunakan digunakan untuk berkomunikasi menggunakan protokol serial/UART. Pada Fedora dan semacamnya yang menggunakan dnf, proses instalasinya cukup dengan perintah berikut ini:

$ sudo dnf -y install minicom

Setelah minicom ter-install, maka untuk menggunakannya seperti ini:

$ minicom -b 115200 -D /dev/ttyUSB0

Perintah di atas akan menjalankan minicom pada USB to serial converter yang berada pada /dev/ttyUSB0 dengan baudrate 115200 baud. Adapun hasilnya akan seperti ini:

Welcome to minicom 2.9

OPTIONS: I18n
Compiled on Jul 18 2024, 00:00:00.
Port /dev/ttyUSB0, 10:21:37

Press CTRL-A Z for help on special keys

Seperti petunjuk yang tertulis ketika minicom dijalankan, tekan Ctrl-A lalu Z untuk menampilkan menu bantuan seperti ini:

Misalnya untuk membersihkan layar, tekan Ctrl-A lalu tekan C. Sedangkan untuk keluar dari minicom, tekan Ctrl-A lalu X.

  • Picocom

Picocom adalah terminal emulator yang hampir sama dengan minicom. Bedanya adalah picocom, seperti namanya, lebih sederhana daripada minicom. Proses instalasinya cukup mudah pada Fedora, cukup menggunakan dnf:

$ sudo dnf -y install picocom

Cara menggunakan picocom juga tidak jauh beda dengan minicom. Untuk melihat opsi yang tersedia, gunakan opsi --help:

$ picocom --help
picocom v2024-07

Compiled-in options:
TTY_Q_SZ is 0
HIGH_BAUD is enabled
USE_FLOCK is enabled
LINENOISE is enabled
HISTFILE is: .picocom_history
USE_CUSTOM_BAUD is enabled

Usage is: picocom [options] <tty port device>
Options are:
--<b>aud <baudrate>
--<f>low x (=soft,xon/xoff) | h (=hard) | n (=none)
--parit<y> o (=odd) | e (=even) | n (=none)
--<d>atabits 5 | 6 | 7 | 8
--sto<p>bits 1 | 2
--<T>xdelay <nsec>
--<e>scape <char>
--<n>o-escape
--e<c>ho
--no<i>nit
--no<r>eset
--hang<u>p
--no<l>ock
--<s>end-cmd <command>
--recei<v>e-cmd <command>
--imap <map> (input mappings)
--omap <map> (output mappings)
--emap <map> (local-echo mappings)
--lo<g>file <filename>
--inits<t>ring <string>
--e<x>it-after <msec>
--e<X>it
--lower-rts
--raise-rts
--lower-dtr
--raise-dtr
--<M>inimal-cmds
--<q>uiet
--<V>ersion
--<h>elp
<map> is a comma-separated list of one or more of:
crlf : map CR --> LF
crcrlf : map CR --> CR + LF
igncr : ignore CR
lfcr : map LF --> CR
lfcrlf : map LF --> CR + LF
ignlf : ignore LF
bsdel : map BS --> DEL
delbs : map DEL --> BS
spchex : map special chars (excl. CR, LF & TAB) --> hex
tabhex : map TAB --> hex
crhex : map CR --> hex
lfhex : map LF --> hex
8bithex : map 8-bit chars --> hex
nrmhex : map normal ASCII chars --> hex
upper : map a-z --> A-Z
lower : map A-Z --> a-z
<?> indicates the equivalent short option.
Short options are prefixed by "-" instead of by "--".

Contoh perintah untuk mengakses perangkat USB to serial yang terhubung pada ttyUSB0 dengan baudrate 115200 adalah seperti ini:

$ picocom -b 115200 /dev/ttyUSB0
  • Screen

Screen adalah salah satu aplikasi yang sering digunakan karena hampir semua distro linux menyediakan paketnya atau bahkan sudah default ada di dalam OSnya. Screen sering digunakan oleh sistem administrator ketika login pada server karena memiliki fitur detach, dimana sistem administrator bisa menjalankan perintah pada screen, lalu melakukan detach dan logout. Dan setelah login, bisa kembali ke proses yang dijalankan pada screen dengan melakukan attach pada sesi screen yang aktif. Tapi untuk artikel kali ini, saya hanya akan membahas cara menggunakan screen untuk komunikasi dengan perangkat yang menggunakan protokol UART. Instalasinya cukup mudah dengan perintah ini:

$ sudo dnf -y install screen

Cara menggunakannya pun relatif sama dengan terminal emulator CLI lainnya, yaitu seperti ini:

$ screen /dev/ttyUSB0 115200

Dan jika ingin menyimpan log sesi screen, gunakan opsi -L seperti ini:

$ screen -L /dev/ttyUSB0 115200

Untuk melakukan detach (keluar sementara) dari sesi screen, gunakan kombinasi perintah Ctrl-a lalu tekan d. Akan muncul informasi screen yang statusnya detached:

[detached from 26336.pts-3.mylaptop

Kemudian untuk melihat sesi screen yang sedang aktif, gunakan perintah seperti ini:

$ screen -ls
There is a screen on:
26336.pts-3.mylaptop (Detached)
1 Socket in /run/screen/S-riri.

Dan untuk mengaktifkan sesi screen tersebut (attach), cukup gunakan perintah:

$ screen -r
  • Tio

Tio tergolong terminal emulator yang pengembangannya masih baru dan dikembangkan sebagai alternatif dari screen. Tio sudah tersedia secara default pada repositori Fedora, jadi dapat di-install menggunakan dnf:

$ sudo dnf -y install tio

Untuk melihat opsi apa saja yang tersedia, cukup jalankan tio dengan opsi --help:

$ 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.

Cara menggunakannya hampir sama dengan terminal emulator CLI lainnya.

  • GTKTerm

GTKTerm adalah terminal emulator berbasis GUI. Proses instalasinya cukup mudah karena sudah tersedia pada repositori Fedora, sehingga dapat di-install menggunakan dnf:

$ sudo dnf -y install gtkterm

Ketika dijalankan untuk pertama kali, maka gtkterm akan membuat file konfigurasi default. Untuk mengubah konfigurasinya, cukup pilih menu Configuration -> Port atau tekan Shift+Ctrl+S , maka dialog konfigurasi akan muncul seperti ini:

  • PuTTY

PuTTY awalnya hanya dikembangkan untuk sistem operasi Microsoft Windows, namun saat ini sudah multiplatform dan tersedia juga versi native untuk Linux. Sama seperti instalasi screen, PuTTY bisa diinstall menggunakan dnf pada Fedora:

$ sudo dnf -y install putty

Ketika dijalankan, PuTTY akan menampilkan dialog konfigurasi untuk sesi yang akan dijalankan. Pada dialog tersebut cukup pilih opsi Serial, lalu isi bagian Serial line dan Speed.

Setelah semua konfigurasinya selesai diatur, lanjutkan dengan menekan tombol Open pada dialog konfigurasi tersebut untuk menjalankan sesinya.

  • Arduino Serial Monitor

Berbeda dengan aplikasi lainnya di atas, Arduino serial monitor adalah fitur yang terdapat pada Arduino IDE. Fitur tersebut memberikan kemudahan ketika melakukan development, misalnya untuk melihat output dari sensor. Untuk menjalankan serial monitor pada Arduino, cukup pilih menu Tools -> Serial Monitor pada Arduino IDE atau dengan menggunakan keyboard shortcut Ctrl+Shift+M. Jangan lupa untuk mengeset jenis board yang digunakan serta port dimana perangkat USB to serial terpasang.

Selain terminal emulator yang sudah disebutkan di atas, masih ada banyak terminal emulator lainnya yang dapat digunakan. Jadi silakan dieksplore lebih jauh. Demikian artikel singkat tentang terminal emulator pada Linux. Semoga bisa memberikan tambahan pengetahuan serta sebagai catatan pengingat, biar tidak lupa. Sekian, wassalam.

--

--

Riri Maiyuliani
Riri Maiyuliani

Written by Riri Maiyuliani

Dinas Pendidikan dan Kebudayaan Kabupaten Lima Puluh Kota

No responses yet