GRUB2 và kernel vga = tham số


16

Theo tài liệu này, việc sử dụng vga=tham số kernel không được chấp nhận kể từ GRUB2. Việc một số hạt nhân mới hơn dường như không còn hỗ trợ nó nữa trên một số bộ điều hợp nhất định không có gì đáng lo ngại vì card đồ họa tôi có từ bảy đến tám tuổi.

Vấn đề bây giờ là tôi muốn sử dụng chế độ văn bản có độ phân giải cao hơn, chẳng hạn như 80x50 thay vì 80x25 ký tự mặc định. Rõ ràng tất cả các chế độ đồ họa (VBE / VESA) không nằm trong câu hỏi dành cho card đồ họa này (ATI Rage XL) - danh sách các chế độ khả dụng chỉ hiển thị 0thông qua 6. 680x60nhưng trông khủng khiếp, vì vậy tôi muốn đi với 1(80x50).

Tôi đã thấy 80x50 và 80x60 hoạt động sau khi nhận được danh sách các chế độ khả dụng bất cứ khi nào chế độ mặc định không được hỗ trợ (với nhận xét mặc định được nêu ra GRUB_TERMINAL=console) và tôi được nhắc chọn.

Làm cách nào tôi có thể đặt chế độ, nếu tôi không phải cài đặt nó trên dòng lệnh kernel mọi lần sử dụng GRUB_GFXMODE(có hoặc không có vbemô-đun tải trước ) và GRUB_GFXPAYLOAD_LINUX=keepkhông thành công? Thất bại như trong: màn hình vẫn trống vì đó là chế độ đồ họa không hợp lệ cho thẻ tôi có trong máy này?

Ý tưởng của tôi sẽ là truyền nomodesetvào kernel, nhưng bộ tải khởi động sau đó vẫn phải đặt chế độ đồ họa. Và tôi không thể thấy bất kỳ tùy chọn nào ngoài vga=tham số kernel để làm điều đó.

Lưu ý: các lệnh vbetestvideotesttrên bảng điều khiển GRUB2 sẽ làm trống màn hình và sau đó màn hình chuyển sang chế độ ngủ sau khi tuyên bố không có đầu vào video. vbeinfovideoinfohiển thị một vài chế độ khả dụng khác với các chế độ được đề cập ở trên, nhưng không đề cập đến nơi nên đặt chế độ này. Ngoài ra, khi chuyển vga=1(không có nomodeset) trên dòng lệnh kernel, tôi thấy một cảnh báo rất ngắn gọn về việc nó bị phản đối, nhưng quá lâu để đọc hoàn toàn - và đầu ra không xuất hiện dmesg.



Các vgathông số áp dụng cho hạt nhân, chứ không phải để grub2. Cho dù grub2nhà phát triển đang cố gắng làm cho phức tạp đơn giản như thế nào , nó vẫn hoạt động miễn là các hạt nhân hiểu được tham số này.
ajeh

Câu trả lời:


9

Có thể nó bị phản đối bởi grub2, tuy nhiên nó vẫn hoạt động và phải tiếp tục hoạt động. Nó hoạt động với tôi bằng cách sử dụng grub2 và debian wheezy cũng như rhel7.3 (xác nhận 01-2017). Cũng theo tài liệu chính thức, nó không được phản đối:

https://www.kernel.org/doc/Documentation/x86/boot.txt

Nếu dòng lệnh được cung cấp bởi bộ tải khởi động được nhập bởi người dùng, người dùng có thể mong đợi các tùy chọn dòng lệnh sau hoạt động. Chúng thường không nên bị xóa khỏi dòng lệnh kernel mặc dù không phải tất cả chúng đều thực sự có ý nghĩa với kernel.

vga = ở đây là một số nguyên (ký hiệu C, là số thập phân, bát phân hoặc thập lục phân) hoặc một trong các chuỗi "bình thường" (có nghĩa là 0xFFFF), "ext" (có nghĩa là 0xFFFE) hoặc "hỏi" (có nghĩa là 0xFFFD). Giá trị này phải được nhập vào trường vid_mode, vì nó được sử dụng bởi kernel trước khi dòng lệnh được phân tích cú pháp.

https://www.kernel.org/doc/Documentation/svga.txt sẽ cho bạn biết tất cả những gì bạn cần biết. Dưới đây là một vài ví dụ về các nghị quyết tôi thường sử dụng:

vga=0x31b --> 1280x1024x32
vga=0x34d --> 1600x900x32
vga=0x31e --> 1600x1200x32

Để có danh sách các chế độ được hỗ trợ, hãy sử dụng:

vga=ask

Đối với màn hình 1024 × 768x24 mà tôi thấy hoạt động trên hầu hết các hệ thống và màn hình tôi sử dụng (lần này là số thập phân và hex):

vga=792
vga=0x318

1
Điều này hiệu quả với tôi khi tôi chỉnh sửa /etc/default/grubbằng cách thêm vga=792vào giá trị hiện có củaGRUB_CMDLINE_LINUX
Shashank Vyas

Một bản cập nhật Ubuntu hôm nay đã cài đặt công cụ khởi động UEFI grub mới và đề xuất thay đổi dòng lệnh để thêm vga=currentcùng với công cụ kết xuất sự cố. Tôi đã từ chối những thay đổi nhưng đến đây tự hỏi vga=currentcó nghĩa là gì .
WinEunuuchs2Unix

1

Tham số vga vẫn được hỗ trợ với các lệnh linux16 và initrd16, vì vậy nếu bạn thay đổi "linux" thành "linux16" hoặc "initrd" thành "initrd16", bạn có thể có hành vi cũ. Tôi không chắc những thay đổi khác gây ra, nhưng nó hoạt động đủ tốt với tôi. :-)


Đây là lời khuyên tuyệt vời! Chỉ cần nhấn e để chỉnh sửa trong grub2, sau đó điều hướng xuống nơi nó nói linux và đặt 16 ở cuối. Sau đó, bạn có thể đặt vga = hỏi ở cuối dòng. Nếu bộ đệm khung vẫn được bật trong kernel, có thể nó sẽ chuyển từ văn bản VGA nhanh sang chế độ đó khá sớm.
Alex Cannon
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.