Giảm chuyển đổi chế độ video trong khi khởi động Linux


12

Khi tôi khởi động máy tính để bàn, chỉ có Linux trên đó, chế độ video và / hoặc phông chữ điều khiển sẽ được chuyển đổi bốn lần:

  • Khi GRUB khởi động, nó chuyển từ văn bản 80x25 sang chế độ đồ họa để có thể vẽ một nền đẹp phía sau menu của nó;
  • GRUB sau đó quay trở lại văn bản 80x25 sau khi tôi chọn thứ gì đó từ menu;
  • Khi trình điều khiển KMS cho thẻ video của tôi tải, nó sẽ chuyển sang chế độ văn bản có độ phân giải cao hơn nhiều (tôi không biết đây có phải là chế độ văn bản phần cứng hay không);
  • Cuối cùng X bắt đầu và nó đi đồ họa và giữ nguyên như vậy. Tôi nghĩ rằng công tắc cuối cùng này không thay đổi độ phân giải của chế độ video, chỉ có đồ họa.

Tôi muốn loại bỏ càng nhiều công tắc chế độ này càng tốt. Lý tưởng nhất là khi GRUB tiếp quản từ BIOS, nó sẽ chuyển trực tiếp đến cùng chế độ văn bản có độ phân giải cao mà trình điều khiển KMS chọn và màn hình sẽ ở chế độ đó cho đến khi X khởi động và hiển thị đồ họa. Tôi có ấn tượng rằng điều này là có thể bằng cách mucking với dòng lệnh kernel và / hoặc các tham số tải mô-đun bảng điều khiển GRUB, nhưng tôi không biết chi tiết.

GRUB 1.98 + 20100706, kernel 2.6.32.15 sử dụng trình điều khiển video Nouveau. Phân phối là Debian không ổn định. Xin vui lòng không có câu trả lời nào liên quan đến việc biên dịch lại bất cứ thứ gì hoặc kết hợp các kết hợp trình điều khiển / kernel kernel, tôi không quan tâm lắm đến vấn đề này.

EDIT: Tobu đề nghị cài đặt GRUB_GFXMODEđộ phân giải pixel đầy đủ của màn hình và GRUB_GFXPAYLOAD_LINUX=keepđể tránh chuyển đổi chế độ sau khi menu biến mất. Đây là một phần của những gì tôi muốn, nhưng nói chung là tồi tệ hơn. Không có công tắc chế độ sau menu, nhưng vẫn có một màn hình lại bị chậm một cách đau đớn (có lẽ tôi nên từ bỏ gfxmode của GRUB, nó quá chậm ở 1920x1200). Nghiêm trọng hơn, giờ đây đã có một chuyển đổi chế độ kép khi tải nouveaufb, cùng với các thông báo lỗi trông vui nhộn trongdmesg

[    5.923798] [drm] nouveau 0000:02:00.0: allocated 1920x1200 fb: 0x40250000, bo ffff8801ba5f4600
[    5.923802] fb: conflicting fb hw usage nouveaufb vs EFI VGA - removing generic driver
[    5.923821] [drm] nouveau 0000:02:00.0: PFIFO_INTR 0x00000010 - Ch 1
("PFIFO_INTR" message repeats 400+ times)
[    5.925609] Console: switching to colour dummy device 80x25
[    5.925802] Console: switching to colour frame buffer device 240x75

Tôi tò mò "đồ họa" là gì.
Tạm dừng cho đến khi có thông báo mới.

1
Đối với bất kỳ độ phân giải pixel nhất định, chế độ video có thể là đồ họa (mỗi pixel riêng lẻ có thể định địa chỉ) hoặc văn bản (mô phỏng thiết bị đầu cuối ô ký tự từ ngày cũ). Ý tôi là "đồ họa" là, công tắc chế độ video thứ tư tôi liệt kê đi từ văn bản sang đồ họa mà không thay đổi độ phân giải pixel, tôi nghĩ dù sao đi nữa.
zwol

Câu trả lời:


2

Plymouth được thiết kế để giúp về vấn đề này:

Ý tưởng là ngay từ đầu trong quá trình khởi động, chế độ gốc cho máy tính đã được đặt, plymouth sử dụng chế độ đó và chế độ đó duy trì trong suốt toàn bộ quá trình khởi động cho đến khi X bắt đầu. Lý tưởng nhất, mục tiêu là để thoát khỏi tất cả nhấp nháy trong khi khởi động.

Vì bạn chỉ cài đặt một hệ điều hành duy nhất, vô hiệu hóa các thay đổi độ phân giải grub (không có đồ họa nền) và ngay cả menu, để lại 80x25 sẽ không có thay đổi nào cho đến khi Plymouth tiếp quản.


1

Thăm dò độ phân giải và độ sâu màu của bạn:

xrandr -q
xdpyinfo | grep 'depth of root window' | awk '{ print $5 }'

Đặt GRUB_GFXMODE=<width>x<height>x<depth>trong /etc/default/grubđể độ phân giải menu grub khớp với độ phân giải KMS.

Có thể thêm GRUB_GFXPAYLOAD_LINUX=keepvào các mặc định là tốt, do đó không có bước trung gian sau menu grub và trước khi thiết lập KMS. X11 nên giữ những gì KMS sử dụng, có nghĩa là không có công tắc X11 để lo lắng.

Áp dụng các chỉnh sửa của bạn với

sudo update-grub

Cảm ơn! Điều này đã làm một phần của những gì tôi muốn, nhưng có tác dụng phụ tiêu cực làm cho nó tồi tệ hơn hiện trạng. Tôi đã thêm các chi tiết cho câu hỏi.
zwol

0

Bạn có thể kích hoạt KMS ngay sau GRUB và điều này thường sẽ bao gồm một tham số cho dòng lệnh kernel bật nó. Đối với intel, nó i910.modeset=1, nhưng ngoài bạn phải kiểm tra tài liệu phân phối của bạn về điều này.


KMS hoạt động từ khi trình điều khiển nouveau được tải, tôi tin, nhưng điều đó chỉ xảy ra trong quá trình quét thiết bị ban đầu của udev, một thời gian sau khi không gian người dùng đang chạy. Tôi đã loay hoay với các tùy chọn video = và vga = dòng lệnh một chút nhưng không gặp may.
zwol

Bạn có thể yêu cầu nó tải trước đó bằng phương pháp này
Daenyth

Không xây dựng lại kernel với nouveaumô-đun được biên dịch (quá nhiều rắc rối), điều tốt nhất tôi có thể làm là dính vào nouveau trong /etc/initramfs-tools/modules... nhưng tất cả những gì làm là chuyển công tắc chế độ kép trước đó, từ bên trong "Chờ đợi / dev được điền "sang phải sau" Đang tải, vui lòng đợi ... "Mục tiêu là loại bỏ các công tắc chế độ.
zwol

Trong trường hợp đó, bạn cần sử dụng bộ tải khởi động có khả năng KMS. Tôi nghĩ grub2 có thể làm điều này, nhưng nếu không, thì bạn hoàn toàn không gặp may.
Daenyth

grub2 không đặt chế độ và để nó được đặt (đó là những gì GRUB_GFXPAYLOAD_LINUX = giữ thành tích) nhưng điều đó không đủ tốt cho nouveau và / hoặc hệ thống con fb, do đó thông báo lỗi "Xung đột sử dụng fb hw". Ngẫu nhiên, chính xác hành vi tương tự với i915 trên máy tính xách tay của tôi.
zwol
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.