Meskipun ada beberapa pertanyaan yang ada tentang masalah ini (dari mana jawaban yang paling membantu adalah ini ) dan berbagai utas di forum lain, saya tidak dapat secara andal mengatur xrandr
pengaturan saya di Debian 7 di VirtualBox.
Saya mencoba menggunakan xrandr
untuk mengontrol pengaturan tampilan saya (daripada membiarkan lingkungan desktop saya mengotomatiskannya) karena saya menggunakan i3
window manager , yang tidak mengotomatiskan pengaturan tampilan atau menggunakan pengaturan tampilan lingkungan desktop Gnome.
Mendirikan:
Saya tidak yakin seberapa relevan semua ini, terutama perangkat kerasnya, karena saya rasa Debian tidak dapat mengakses banyak informasi tentang pengaturan monitor; sejauh yang saya tahu, VirtualBox hanya melaporkan keberadaan layar virtual seolah-olah mereka adalah monitor perangkat keras.
Perangkat keras
- Laptop Lenovo dengan grafis nVidia (Intel GPU terintegrasi tidak digunakan, AFAIK - ada pengaturan BIOS yang saya gunakan untuk menyelesaikan ini)
- Windows 7
- RAM 32GB
- Menggunakan driver nVidia terbaru (saya pikir) (340,84) - ini mungkin penting, karena saya mengaktifkan akselerasi 3D di VirtualBox (lihat di bawah), yang menurut saya memungkinkan OS tamu memiliki akses ke perangkat keras host
- TV Seiki 4K (digunakan sebagai monitor) melalui HDMI melalui stasiun dok (yang secara internal mengubah DisplayPort ke HDMI)
- Monitor Samsung SyncMaster 243T berubah menjadi vertikal
VirtualBox
- Menggunakan VirtualBox 4.3.20
- Tambahan tamu (versi yang sama) diinstal
- Hitungan monitor: 2 (ditugaskan untuk Seiki dan SyncMaster ketika dalam mode layar penuh)
- Memori video maksimum (128 MB) digunakan
- Akselerasi 3D diaktifkan
Pengaturan tamu
- Debian 7-bit 7
gnome
dangdm3
diinstal- WM yang disukai adalah
i3
Tingkah laku:
Ketika saya meluncurkan i3
dan meminta xrandr
, pengaturan tampilan default selalu tampak identik antara VBOX0
dan VBOX1
, dua "monitor" yang dilaporkan oleh VirtualBox xrandr
(setidaknya, itulah cara saya memahaminya; saya bisa melewatkan sesuatu). Perhatikan bahwa sejauh yang saya tahu, tidak ada cara yang baik untuk mengetahui VBOX # mana yang memantau kekurangan trial-and-error.
Biasanya ini termasuk resolusi yang masuk akal (jika sedikit di bawah asli) untuk SyncMaster vertikal saya, tetapi tidak ada resolusi 4K untuk Seiki. Opsi "ubah ukuran tamu tampilan" di VirtualBox tampaknya tidak mempengaruhi xrandr
.
Saya telah mencoba berbagai modifikasi skrip yang dijelaskan dalam jawaban yang ditautkan di atas , tetapi secara umum saya sepertinya mendapatkan berbagai xrandr
kesalahan. Saya belum menemukan banyak korelasi antara berbagai hal yang saya coba dan kesalahan yang saya dapatkan, tetapi di sini ada beberapa hal utama yang mungkin penting:
Script tweak
- (Biasanya) melewatkan
VBoxService
langkah-langkah restart (sepertinya tidak mengubahxrandr
perilaku) - Gunakan
xrandr --fb
opsi sebelumxrandr
perintah lain ; ini terkadang menghasilkan kesalahan "layar tertentu tidak cukup besar" yang tercantum di bawah ini - Gunakan 30 fps alih-alih 60 (4K melalui HDMI saat ini adalah max 30fps, tapi saya rasa ini tidak penting di VirtualBox; dalam hal apa pun saya pikir saya kadang-kadang berfungsi dan kadang gagal dua arah)
- Gunakan
cvt
alih-alihgtf
(ini pada dasarnya berperilaku sama) - Ganti nomor pertama yang diberikan oleh
gtf
(yang biasanya sekitar 200 atau 300) dengan angka yang lebih kecil, seperti100.00
(saya pikir ini bekerja sekali atau dua kali pada baris perintah, tetapi secara umum tampaknya tidak membuat perbedaan) - Mengacak nama mode baru menggunakan
$RANDOM
(Saya juga sudah mencoba berbagai cara lain mengutak-atik nama) --rmmode
Mode eksplisit sebelum membuatnya menggunakan--newmode
(ini muncul untuk mencegah kesalahan "font" yang tercantum di bawah)- Gunakan
--right-of
atau--left-of
ketika mengatur--output
s (karena layar biasanya dicerminkan secara default)
Pesan kesalahan
xrandr: specified screen 5120x2160 not large enough for output VBOX0 (3840x2160+3840+0) X Error of failed request: BadValue (integer parameter out of range for operation)
Saya mendapatkan yang ini sekarang ketika menjalankan kembali skrip setelah monitor telah dipaksa untuk resolusi yang tepat (menggunakan work-around yang dijelaskan pada bagian selanjutnya). Ini mengejutkan saya, karenaxrandr
melaporkan yang berikut:Screen 0: minimum 64 x 64, current 5120 x 2160, maximum 16384 x 16384
X Error of failed request: BadMatch (invalid parameter attributes)
Ini kadang-kadang terjadi ketika mencoba melakukan--newmode
. Mungkin itulah alasan paling umum kedua mengapa skrip gagal. Saya pikir itu mungkin disebabkan olehxrandr
"mengingat" nama mode dari upaya sebelumnya untuk mengatur itu, tetapi menggunakan$RANDOM
tidak tidak muncul untuk secara konsisten memecahkan masalah, sehingga mungkin beberapa masalah lain. (Saya kira itu mungkin bahkan dengan$RANDOM
ada tabrakan nama.) Saya belum melihat kesalahan ini sejak saya mulai menggunakan--rmmode
, tapi saya belum menjalankan skrip cukup sejak menambahkan perintah untuk memastikan bahwa itu membuat perbedaan untuk perilaku.X Error of failed request: BadMatch (invalid parameter attributes)
Ini kadang-kadang terjadi ketika mencoba melakukan--addmode
. Mungkin itulah alasan paling umum mengapa naskah ini gagal, dan itu membingungkan saya. Kadang-kadang secara manual (yaitu di terminal) mengeksekusi urutan perintah yang sama yang digunakan oleh skrip tampaknya menjadi solusi yang layak untuk kesalahan ini, yang aneh.
Solusi Gnome:
Saya telah menemukan bahwa jika saya masuk ke desktop Gnome, kemudian melakukan fungsi "Auto-resize guest display" dari VirtualBox, kemudian logout dan kembali i3
, dengan xrandr
biasanya menyertakan resolusi yang benar untuk Seiki dan SyncMaster dalam automatis yang dihasilkannya. daftar mode, dan resolusi 4K ditetapkan sebagai resolusi "pilihan" untuk setiap layar VBOX. Ini memungkinkan saya untuk hanya menggunakan xrandr --output [4K VBOX] --auto --left-of [SyncMaster VBOX]
, diikuti oleh xrandr --output [SyncMaster VBOX] --mode [SyncMaster resolution]
(perhatikan bahwa resolusi SyncMaster masih harus ditentukan secara manual, karena xrandr
melaporkan resolusi pilihan yang sama untuk keduanya VBOX#
tanpa memperhatikan kebenaran atau kewarasan).
Pemecahan masalah ini, setelah berkinerja, tampaknya tetap ada di seluruh shutdown dan reboot (yaitu, mode yang diinginkan masih ada dalam xrandr
daftar mode, meskipun saya masih perlu menjalankan dua xrandr
perintah setelah memulai i3
sesi), tetapi tidak selalu bertahan ketika hanya logout dan memulai i3
sesi baru . Perhatikan bahwa gdm3
layar masuk tidak pernah memiliki resolusi yang benar (sejauh yang saya lihat). Saya tidak punya komentar lebih lanjut tentang keanehan yang terjadi di sini.
EDIT: Pendekatan ini tampaknya tidak bisa skrip, dan perilaku itu sebenarnya tampaknya tidak konsisten.
Catatan lain:
- Saya tidak memiliki
xconf
file (atau serupa) dietc/X11
direktori saya . - Memperbaiki tampilan adalah masalah yang cukup umum, karena setiap kali saya mematikan salah satu monitor saya, VirtualBox membunuh salah satu monitor virtual layar penuh. (Urgh.)
Pertanyaan:
- Apakah ada cara untuk secara terprogram membedakan antara kemampuan perangkat keras yang sebenarnya (yaitu resolusi asli) dari monitor yang berbeda dari dalam VirtualBox?
- Mengapa saya melihat berbagai kesalahan ini? Apa yang terjadi
xrandr
, dll? - Apakah ada cara untuk secara andal mencapai resolusi layar penuh yang tepat tanpa mengharuskan saya memulai
gnome
sesi sebelumi3
sesi saya ?
Kemungkinan masalah terkait
- Penunjuk tetikus saya tidak dapat diandalkan sejajar dengan benar dengan tempat klik tampaknya terdeteksi; klik biasanya terjadi di bawah dan di sebelah kanan penunjuk. Setelah saya mengkonfigurasi layar dengan benar, masalah ini biasanya hilang, meskipun saat ini layar memiliki resolusi yang benar tetapi pointer masih sedikit mati.
- Ketika saya berhasil mendapatkan resolusi yang benar, layar sesekali berkedip-kedip. Ini menjengkelkan tapi layak ditinggali. Adakah yang tahu apa penyebabnya atau apakah itu bisa diperbaiki?
xrandr
kesalahan aneh .
.xinitrc
dan menggunakannya startx
? Saya menggunakan xmonad (yang, seperti yang saya mengerti, mirip dengan i3?) Yang saya mulai gunakan startx
. Semua xrandr
skrip saya selesai .xinit
sebelum window manager saya diluncurkan. Saya mendapatkan hasil yang luar biasa seperti itu. X siap untuk pergi, dan tidak ada lagi yang diluncurkan untuk mengganggu.
gdm3
dan telah i3
memilih sebagai lingkungan desktop default untuk akun saya.
xrandr --query
(a) ketika mendeteksi pengaturan tidak benar, dan (b) setelah Anda mendapatkan semuanya berfungsi dengan baik? Atau setidaknya satu dari semuanya bekerja dengan benar.