256 warna dalam konsol (tty)

11

Misalkan, saya punya sistem tanpa X server. Saya hanya bisa masuk dari konsol. Tampaknya, secara default konsol linux hanya mendukung 8 warna:

# tput colors
8

Apakah mungkin menggunakan 256 warna di konsol, sama seperti yang akan saya gunakan dalam emulator terminal (yaitu terminator)?

Saat googling, saya telah menemukan banyak pertanyaan serupa (banyak dari mereka berusia di atas 10 tahun), tetapi tidak ada jawaban yang jelas. Seseorang menyarankan untuk menggunakan framebuffer, beberapa orang lain menyarankan untuk menambahkan argumen TERM ke opsi boot kernel.

Saat ini, saya hanya memberikan satu opsi tambahan sebagai parameter boot kernel:

append="video=1280x720"

Saya percaya memberikan resolusi video hanya bekerja di kernel modern dengan kernel mode settingdukungan, tetapi saya tidak yakin tentang itu.

Apakah mungkin menggunakan 256 warna di konsol linux modern (tty)

Bagaimana?

Saya menggunakan Debian Wheezy dengan kernel 4.1

MEMPERBARUI:

berdasarkan saran dari @muru, saya sudah mencoba fbterm. Meskipun bekerja dengan 256 warna, ia memiliki font yang sangat jelek / kacau. Selain itu, ada kursor yang terus berkedip di sudut kiri bawah, yang menurut saya mengganggu.

Bisakah saya menggunakan 256 warna di konsol tanpa fbterm / framebuffer?

Dari mana asal batas 8 warna di konsol?

Martin Vegter
sumber
FbTerm tampaknya melakukannya: superuser.com/a/492078/334516 , askubuntu.com/a/57128/158442
muru
@muru - terima kasih atas sarannya. Saya telah memperbarui pertanyaan saya.
Martin Vegter
Tentu saja, jika Anda mengatur TERMuntuk xterm-256coloruntuk konsol Linux, Anda akan cukup membuka kaleng lain cacing. Tautan ini memberi petunjuk.
Thomas Dickey
RE: PEMBARUAN Saya tidak memiliki font "jelek / kacau", mungkin karena saya menggunakan font yang berbeda. Bisa jadi salah $TERM(harus fbterm sebelum Anda mulai fbterm) atau tidak mode video 32bit atau keduanya. Matikan kursor konsol sebelum memulai fbterm, dan nyalakan begitu Anda berada di sana, gunakan tput. unix.stackexchange.com/questions/220330/…
Paul Wratt
BTW Saya juga melihat fbtermsumbernya, dan itu akan menjadi sederhana (tetapi memakan waktu) untuk mengubah urutan kode escape untuk digunakan xterm-256colorsebagai gantinya ( fbterm-xterm). The $TERMjuga akan perlu inline dengan terminfodan termcapkonvensi penamaan ( fbterm-xterm-256coloratau fbterm-256color) untuk "slot" ke dalam script shell yang ada. Catatan yang fbtermdigunakan TERM=fbtermsebagai saklar untuk mengaktifkan opsi 256 warna, jika tidak 16 warna (atau mungkin sama dengan yang mendasarinya).
Paul Wratt

Jawaban:

2

Pertanyaan aktual terdiri dari dua item ini:

  • Bisakah saya menggunakan 256 warna di konsol tanpa fbterm / framebuffer?

  • Dari mana asal batas 8 warna di konsol?

Ke yang pertama: ternyata tidak. Semua pendekatan yang disarankan menggunakan fbterm. Ke yang kedua: itu berasal dari deskripsi terminal (alias "entri terminfo"). Untuk konsol Linux, dengan TERMset ke linux, yang mengatakan terminal mendukung 8 warna. tput mendapatkan informasinya dari basis data terminal.

Salah satu item dalam utas yang dikutip mengatakan bahwa fbterm menggunakan urutan pelarian yang berbeda untuk mengatur warna daripada xterm. Jika itu masalahnya (dan mengingat kecenderungan pengguna Emacs untuk hal-hal hardcode), tidak ada entri terminal yang cocok untuk fbterm.

Thomas Dickey
sumber
Emulator terminal kernel Linux telah mendapatkan beberapa dukungan SGR tambahan dalam beberapa tahun terakhir: github.com/torvalds/linux/commit/… github.com/torvalds/linux/commit/… github.com/torvalds/linux/commit/…
JdeBP
1
yakin - Anda mungkin belum membaca komentar lapor masuk: Karena keterbatasan perangkat keras konsol VGA, warna * diturunkan ke 16 latar depan dan 8 latar belakang. Pada konsol fbdev, dimungkinkan untuk mendukungnya tanpa kehilangan kualitas, tetapi menambahkannya membutuhkan kode yang cukup besar. *
Thomas Dickey
Saya sudah membaca komentar, sejak lama, itulah sebabnya saya menulis bahwa ia telah mendapatkan dukungan tambahan SGR . (-: Tetapi perhatikan bahwa dengan demikian tidak selalu batas 8 warna seperti yang Anda tulis pada tahun 2016. Di sini
JdeBP
Itu masih palet yang sama dari 8 ANSI dan 8 tebal / cerah ANSI seperti yang telah selama 25+ tahun (dan ncurses telah memiliki entri linux-16color sejak 2009 ).
Thomas Dickey
Saya sebelumnya telah melihat ke dalam sumber kernel (sekitar waktu OP), dan menganggapnya sebagai proses sederhana untuk memungkinkan 256 warna ( linux-256color). Tambalan itu tidak akan pernah diterima di hulu karena alasan yang sama seperti komentar Thomas Dickey di atas, "Karena keterbatasan perangkat keras". IE Linux harus bekerja pada common denominator terendah.
Paul Wratt