Làm cách nào để định cấu hình màn hình theo cách thủ công trong CentOS7, được đính kèm qua KVM?


9

Tôi có cài đặt máy tính để bàn mới của CentOS7 với Gnome 3.

Tôi cần sử dụng máy này với KVM nhưng vì một số lý do, CentOS7 không thể phát hiện màn hình của tôi thông qua KVM mà tôi có, do đó, nó mặc định là "Hiển thị không xác định" ở độ phân giải 1024x768 (mọi thứ phát hiện và hoạt động ở độ phân giải cao hơn nếu tôi kết nối trực tiếp màn hình đến hệ thống).

Làm cách nào tôi có thể định cấu hình thủ công mọi thứ để tôi có thể sử dụng độ phân giải lớn hơn?

Tôi đã thử chỉnh sửa monitors.xmlvới độ phân giải mới, nhưng khi khởi động lại, CentOS7 đã từ chối thay đổi, nói rằng nó không thể phát hiện được và quay trở lại 1024x768.

Câu trả lời:


14

Tôi đã tìm thấy cơ sở của giải pháp tại đây: https://askubfox.com/questions/186288/how-to-detect-and-configure-an-output-with-xrandr

Trong các bản phân phối Linux hiện đại, bao gồm cả CentOS, thư viện xrandr chịu trách nhiệm cho những việc như độ phân giải màn hình, xoay và vv. Vì hệ thống của bạn không tự động phát hiện, bạn phải tự nói với nó về chế độ mà màn hình của bạn có khả năng.

Tôi gặp vấn đề tương tự với KVM và đầu ra mẫu là từ máy tính của tôi:

Bước 1:

Tìm tên của cổng của bạn. Đây sẽ là một cái gì đó như VGA1, HDMI1 hoặc như vậy. Bạn có thể tìm thấy nó từ /var/log/Xorg.0.log hoặc bạn có thể sử dụng tiện ích xrandr:

> xrandr
Screen 0: minimum 8 x 8, current 1024 x 768, maximum 32767 x 32767
DP1 disconnected (normal left inverted right x axis y axis)
HDMI1 disconnected (normal left inverted right x axis y axis)
VGA1 connected primary 1024x768+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
   1024x768      60.00* 
   800x600       60.32    56.25  
   848x480       60.00  
   640x480       59.94  
VIRTUAL1 disconnected (normal left inverted right x axis y axis)

KVM của tôi được kết nối với cổng VGA có tên VGA1. Vì KVM chặn tự động phát hiện, xrandr chỉ thấy độ phân giải 1024x768.

Bước 2:

Nói với xrandr về chế độ mới. Các chế độ chỉ đơn giản là các chuỗi có các tham số hiển thị video được đính kèm.

Bước 2.1

Tìm các thông số hiển thị bạn cần. Tôi muốn 1600x900 @ 60 Hz:

> gtf 1600 900 60 -x
# 1600x900 @ 60.00 Hz (GTF) hsync: 55.92 kHz; pclk: 119.00 MHz
  Modeline "1600x900_60.00"  119.00  1600 1696 1864 2128  900 901 904 932  -HSync +Vsync

Bước 2.2

Tạo chế độ mới với xrandr bằng các giá trị từ lệnh gtf:

> xrandr --newmode "1600x900" 119.00  1600 1696 1864 2128  900 901 904 932  -HSync +Vsync

Tham số đầu tiên là tên của chế độ mới - bạn thực sự có thể gọi nó là bất cứ thứ gì bạn thích, chỉ cần sử dụng cùng tên trong các bước tiếp theo.

Bước 3

Nói với xrandr rằng VGA1 hiểu chế độ được gọi là 1600x900:

> xrandr --addmode VGA1 1600x900

Bước 4

Nói với xrandr để chuyển sang chế độ mới.

> xrandr --output VGA1 --mode 1600x900

Lưu ý: nếu bạn mắc lỗi và màn hình của bạn không thực sự hiểu chế độ mới, bạn sẽ có một màn hình trống!

Nếu bạn nhận được một màn hình trống, bạn có thể phục hồi bằng cách gõ một cách mù quáng:

> xrandr --output VGA1 --mode 1024x768

Một cách khác là kết nối từ một máy tính khác thông qua SSH và thực hiện lệnh này thông qua SSH thay vì trên bảng điều khiển.

Bước 5

Tạo một tập lệnh tự động hóa các lệnh newmode, addmode và output, vì chúng sẽ không được bảo toàn trong quá trình khởi động lại.


1
Đây là vị trí trên - một viên ngọc thông tin quý hiếm về việc sử dụng xrandr. Một ngàn upvote cho bạn, thưa ông.
Paul

1
Làm việc cho tôi là tốt. Trên CentOS 7.
Mohammad Yaseen

2
Câu trả lời chính xác. Nhưng bây giờ, tôi có thể đặt các lệnh ở đâu để nó trở thành mặc định khi khởi động?
mivk

@SteliosAdamantidis Có. Lưu ý bước 5 cần quan tâm đến vấn đề đó.
Kevin Keane

1

Tôi đã có tình huống tương tự, và câu trả lời ở trên là một trong những giải thích đầy đủ hơn về cách khắc phục vấn đề này, nhưng tôi đã phải đi thêm một cấp độ nữa để Samsung 32 "của tôi hiển thị trong 2560x1440.

gtf là phương pháp được sử dụng ở trên để lấy thời gian, hoạt động chủ yếu, nhưng tôi sẽ không nhận cho tôi chế độ nào phù hợp với 2560x1440. Tôi đã sử dụng chương trình cvt, với công tắc -r (cần thiết cho việc này và không phù hợp với crt, chỉ các thiết bị có thể sống trong khi xóa trống).

~% cvt -r  2560 1440 60
# 2560x1440 59.95 Hz (CVT 3.69M9-R) hsync: 88.79 kHz; pclk: 241.50 MHz
Modeline "2560x1440R"  241.50  2560 2608 2640 2720  1440 1443 1448 1481 +hsync -vsync

Chế độ thời gian này, được sử dụng thay cho thông tin ở trên được cung cấp bởi gtf, hoạt động như một bùa mê. Tôi vẫn ước mình có thể làm cho cái này được "nướng" vào X11hệ thống, nhưng tôi đã tạo tập lệnh để tạo, thêm và sau đó chuyển sang chế độ, để nó hoạt động rất tốt.

Và đôi mắt già của tôi yêu màn hình khổng lồ. Không có gì vượt quá như ...

(Tập lệnh thực hiện chế độ thêm và chuyển đổi theo sau)

 #!/bin/bash
 # Used to get timing: cvt -r  2560 1440 60
xrandr --newmode  "2560x1440R"  241.50  2560 2608 2640 2720  1440 1443 1448 1481 +hsync -vsync
xrandr --addmode HDMI1 "25 60x1440R"
xrandr --output HDMI1 --mode "2560x1440R"

1

Tôi đồng ý rằng đây gần như là giải pháp. Điều này đặt màn hình của tôi ở độ phân giải đúng.

$ cvt 1920 1080 60
# 1920x1080 59.96 Hz (CVT 2.07M9) hsync: 67.16 kHz; pclk: 173.00 MHz
Modeline "1920x1080_60.00"  173.00  1920 2048 2248 2576  1080 1083 1088 1120 -hsync +vsync

Tuy nhiên với hai cột màu đen chính ở cả bên trái và bên phải màn hình. Tôi đoán một số loại overscan.

Vì vậy, tôi đã phải grep một số giá trị nhặt được trong khi khởi động từ xorg.log.

$ grep 1080 /var/log/Xorg.0.log
[  2316.000] (II) modeset(0): Modeline "1920x1080"x0.0  148.50  1920 2008 2052 2200  1080 1084 1089 1125 +hsync +vsync (67.5 kHz eP)

Vì vậy, sau khi thay thế các giá trị cvt, bằng các giá trị Xorg.0.log, tôi đã có bố cục màn hình phù hợp.

$ xrandr --newmode "1920x1080_60.00" 148.50  1920 2008 2052 2200  1080 1084 1089 1125 +hsync +vsync

0

Sau khi dành một vài giờ quý giá để thử các "giải pháp" trên, tôi đã gặp phải điều này:

http://elrepo.org/tiki/kernel-ml


Vì các liên kết có xu hướng bị cũ và chết, các câu trả lời chỉ liên kết không được coi là rất hữu ích ở đây. Có lẽ bạn có thể đi vào chi tiết về những gì bạn thực sự đã làm để giải quyết vấn đề trong câu trả lời của bạn, trong khi vẫn chỉ ra các tài nguyên giúp bạn trên đường đi. Bằng cách đó, mọi người sử dụng trang web này sẽ thấy câu trả lời trực tiếp, ngay cả khi liên kết khác biến mất.
Eric Renouf
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.