Mỳ ăn liền:
curl -s https://caochitam.github.io/resources/linux-script/resolution_changer.sh --output rc.sh & sudo bash rc.sh 1280 1024 0
Bạn chỉ cần thay đổi độ phân giải ở 2 tham số gần cuối. (1280 1024)
Màn hình cùi bắp của mình độ phân giải đúng là 1280x1024 nên mới để tham số như vậy.
Còn số 0 cuối cùng là dùng cho máy tính chỉ có một màn hình. Nếu bạn có nhiều hơn 1 port display đã được kết nối thì bỏ số 0 đi, và lúc chạy, script sẽ cho chọn cấu hình cổng mong muốn.
Script sẽ tạo 1 file /etc/init.d/change-resolutions
nên cần dùng đến sudo
.
Nếu không có sudo
, script vẫn chạy nhưng sẽ không lưu được file, nếu muốn lưu được file mà không cần sudo
, bạn có thể tải script về và sửa đường dẫn /etc/init.d/
về nơi mình có quyền là có thể chạy được.
File này cũng chẳng có gì quan trọng, nó chứa 2 lệnh xrandr tương ứng với độ phân giải và Port bạn chọn và lưu sẵn lại. Bạn chỉ cần tạo lệnh Startup cho file này là độ phân giải sẽ được cài đặt.
Cách thêm file /etc/init.d/change-resolutions
vào Start up thì bạn tự nghiên cứu vậy. Vì dường như là linux mỗi cái một khác mình làm script ko được.
Cách đơn giản nhất là thêm lệnh bash /etc/init.d/change-resolutions
vào Phần Startup Applications trong System Settings như hướng dẫn ở cuối bài.
Bài viết
Khi cài đặt Linux nhiều khi bạn sẽ gặp phải tình trạng màn hình chữ nào chữ nấy to đùng, lại còn mờ mờ nữa mà không biết làm sao thay đổi độ phân giải cho đúng.
Câu trả lời tất cả nằm ở đây: https://wiki.archlinux.org/index.php/Xrandr
Phần đầu của bài viết này nói về cách thay đổi giữa các độ phân giải mà hệ thống đã dò thấy. Cái này khá dễ, trong giao diện Setting của hệ điều hành cũng làm được.
Mục đáng chú ý nhất đó là:
Adding undetected resolutions - Thêm độ phân giải không được dò thấy
Trong tài liệu có hướng dẫn chạy dòng lệnh thay đổi độ phân giải chỉ trong phiên làm việc và thay đổi vĩnh viễn bằng file .conf
Mình xin tổng hợp lại như sau:
Step 1: Chạy lệnh cvt
để lấy Modeline
cvt 1280 1024
Thay số 1280 1024
bằng độ phân giải của màn hình bạn. Kết quả sẽ trả về dòng tương tự thế này:
# 1280x1024 59.89 Hz (CVT 1.31M4) hsync: 63.67 kHz; pclk: 109.00 MHz
Modeline "1280x1024_60.00" 109.00 1280 1368 1496 1712 1024 1027 1034 1063 -hsync +vsync
Mục đích ở bước này là ta lấy dòng Modeline "1280x .... vsync
Step 2: Chạy lệnh xrandr
để lấy tên monitor
xrandr
Kết quả trả về giống thế này:
Screen 0: minimum 8 x 8, current 1280 x 1024, maximum 32767 x 32767
HDMI1 disconnected (normal left inverted right x axis y axis)
VGA1 connected primary 1280x1024+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)
Ở đây mình dùng monitor tên là VGA1
, bạn dùng monitor nào thì nhớ lát nữa sửa trong file .conf
Step 3: Ghi lại cấu hình vào file .conf
Mở trình soạn thảo ở quyền root, tạo fie /etc/X11/xorg.conf.d/10-monitor.conf
và dán đoạn mã sau vào:
Section "Monitor"
Identifier "VGA1"
Modeline "1280x1024_60.00" 109.00 1280 1368 1496 1712 1024 1027 1034 1063 -hsync +vsync
Option "PreferredMode" "1280x1024_60.00"
EndSection
Section "Screen"
Identifier "Screen0"
Monitor "VGA1"
DefaultDepth 24
SubSection "Display"
Modes "1280x1024_60.00"
EndSubSection
EndSection
Section "Device"
Identifier "Device0"
Driver "intel"
EndSection
- Thay
Modeline
bằng đoạn Modeline lấy được trongStep 1
- Thay
VGA1
bằng monitor bạn chọn trongStep 2
- Thay
intel
bằng driver card đồ hoạ của bạn, ví dụ:nvidia
Lưu file lại và reboot. Enjoy!
Cách 2: Thay đổi độ phân giải tự động bằng Script
Thật ra cách này cũng chẳng sáng tạo gì sất, nhưng được cái nhanh gọn lẹ. Mô hình là sau khi chạy thử thanh đổi độ phân giải bằng 2 lệnh xrandr là --newmode
và --addmode
chúng ta chỉ cần lưu lại vào file .sh rồi cho nó chạy lúc khởi động là xong.
Bước 1: Chạy lệnh cvt để lấy Modeline
Bước 2: Chạy lệnh xrandr để lấy tên cổng màn hình đang dùng
Bước 3: Chạy lệnh xrandr --newmode
Chú ý: dán đoạn modeline lấy được từ lệnh cvt vào sau --newmode
xrandr --newmode "1280x1024_60.00" 109.00 1280 1368 1496 1712 1024 1027 1034
1063 -hsync +vsync
Bước 4: Chạy lệnh xrandr --addmode
Chú ý: Thay VGA-1 bằng cổng mà bạn đang sử dụng (nhìn thấy khi chạy lệnh xrandr), và tên mode “1280x1024_60.00” phải trùng với tên mới tạo trên dòng lệnh --newmode
xrandr --addmode VGA-1 1280x1024_60.00
Bước 5: Lưu 2 dòng lệnh thành công trên vào file script
Sau khi chạy 2 dòng lệnh nếu thay đổi độ phân giải thành công thì chúng ta lưu vào file scpipt với nội dung bắt đầu bằng dòng #!/bin/bash
#!/bin/bash
xrandr --newmode "1280x1024_60.00" 109.00 1280 1368 1496 1712 1024 1027 1034
1063 -hsync +vsync
xrandr --addmode VGA-1 1280x1024_60.00
Lưu lại với một tên bất kỳ đuôi .sh ở đây mình đặt là change_resolution.sh
Như vậy, bạn có thể chạy script này để đổi độ phân giải bất kỳ lúc nào với lệnh
bash /duong/dan/toi/file/change_resolution.sh
Bước 6: Tạo lệnh chạy lúc khởi động
Bây giờ bạn có thể vào google tìm cách chạy một script lúc khởi động. Ở đây mình dùng cách đơn giản nhất là
- Mở menu chính của hể điều hành (bấm phím Windows) tìm ứng dụng startup
- Tạo một startup command mới với nội dung
bash /duong/dan/toi/file/change_resolution.sh
- Đặt tên cho lệnh này. Ví dụ như “Change Resolution” chẳng hạn, lưu lại là OK.
Bước 7: Reboot và enjoy!