GNU/Linux >> Belajar Linux >  >> Linux

Layanan Systemd Manakah yang Memulai Konsol Teks di Perangkat Framebuffer?

Saya bekerja dengan platform tersemat dan harus memiliki /dev/fb0 clear untuk penggunaan saya sendiri (perangkat dapat diakses melalui konsol serial saat layar digunakan untuk menampilkan informasi, tanpa X.).

Saya sudah mengubah default.target dari grafis ke multi-pengguna, tetapi sekarang getty terbuka dengan prompt login pada perangkat framebuffer dan saya tidak dapat menemukan yang layanan itu. Saya tidak ingin menonaktifkan login konsol serial secara kebetulan, dan lsof tidak menampilkan apa pun dengan /dev/fb0 buka.

Distribusinya adalah Yocto Linux, jika itu bisa membantu.

Jawaban yang Diterima:

lsof tidak menampilkan apa pun dengan /dev/fb0 buka.

Ini tidak akan terjadi. Ada program emulator terminal yang dibangun ke dalam kernel Linux. Itu tidak bermanifestasi sebagai proses yang berjalan dengan pegangan file terbuka. Itu berlapis di atas framebuffer dan subsistem acara input, yang menggunakan antarmuka kernel internal untuk diakses. Ini menampilkan dirinya ke sistem mode aplikasi sebagai serangkaian terminal virtual kernel perangkat, /dev/tty1 Dan seterusnya; file pseudo di bawah /sys yang menunjukkan nomor KVT aktif; dan serangkaian perangkat penyangga video bergaya CGA, /dev/vcsa1 dan seterusnya.

Salah satu sistem mode aplikasi tersebut tentu saja adalah getty +logind sistem, yang dapat dikonfigurasi untuk beroperasi pada terminal virtual kernel ini, dan (seperti yang Anda temukan) secara default. Anda dapat dengan mudah menyingkirkan getty proses menggunakan mekanisme systemd yang terdokumentasi.

Di Sistem 5 init sistem, setiap getty akan menjadi catatan di /etc/inittab . Dalam init BSD sistem, setiap getty adalah catatan di /etc/ttys . Dalam sistem systemd, hal-hal sedikit tidak langsung.

  • Setan “login”, logind , tahu tentang hal-hal yang disebut "kursi" dalam bahasa gaul systemd. Nol “Kursi” adalah yang memiliki framebuffer utama dan semua terminal virtual kernel tersebut.
  • Untuk kursi itu, logind mencoba untuk memulai N layanan systemd, bernama [email protected] melalui [email protected]N.service . Nilai N diatur dalam NAutoVTs pengaturan di /etc/systemd/logind.conf .
  • Layanan systemd ini dibuat dari unit template layanan , bernama [email protected] . Parameter template adalah, seperti di atas, nama perangkat dari file perangkat terminal virtual kernel , di /dev/ .
  • [email protected] adalah, dalam konfigurasi default, tautan simbolis ke [email protected] .
  • Ini [email protected] yang menjelaskan menjalankan getty program, atur untuk melakukan input/outputnya melalui file perangkat terminal virtual kernel.

Jadi untuk menghentikan semua ini, kunjungi /etc/systemd/logind.conf dan konfigurasikan logind untuk tidak memulai secara otomatis autovt layanan (dan tidak memesan terminal virtual apa pun, jika Anda ingin mengetahuinya secara menyeluruh).

Terkait:Bagaimana cara mengubah ukuran halaman PDF?

Namun, itu bukan keseluruhannya. Program emulator terminal masih aktif di kernel, dan segala sesuatu mulai dari pesan log yang diarahkan ke kernel VT hingga flashing kursor secara teratur akan menyebabkan emulator terminal mengganggu penggunaan framebuffer Anda. Tapi itu masalah pengkodean program yang Anda miliki yang menggunakan framebuffer untuk bernegosiasi dengan program emulator terminal kernel, yang sudah dijawab di sini.

Omong-omong, login konsol serial terjadi melalui rute yang sangat berbeda. Sebuah generator membuat instance [email protected] unit template waktu boot, membuat instance sekali untuk setiap perangkat konsol kernel yang ditemukan, atau diberitahukan.

Bacaan lebih lanjut

  • Praktik terbaik untuk menyembunyikan konsol virtual saat merender video ke framebuffer
  • https://superuser.com/a/723442/38062
  • logind.conf . halaman manual systemd. freedesktop.org.
  • Sistem “multiseat”d. freedesktop.org.
  • systemd-getty-generator . halaman manual systemd. freedesktop.org.

Linux
  1. Pengganti Yang Benar Untuk Rc.local Di Systemd Daripada Membuat Ulang Rc.local?

  2. Linux – Bagaimana Kernel Linux Mengetahui Nomor Mayor dan Minor Perangkat?

  3. Linux – Bagaimana Cara Menentukan Modul Yang Menodai Kernel?

  1. Praktik Terbaik Untuk Menyembunyikan Konsol Virtual Saat Merender Video Ke Framebuffer?

  2. Bagaimana menghentikan layanan systemd

  3. Kate memberikan pesan debug di konsol tempat dimulainya

  1. Bagaimana cara menonaktifkan kernel yang masuk ke jurnal systemd?

  2. Cara mendapatkan alamat MAC perangkat yang tidak ada dalam jaringan

  3. Cara mendaftar Pohon Perangkat kernel