Làm cách nào để đặt chế độ video trong linux với kms / drm?


12

Làm cách nào tôi có thể đặt chế độ video trong Linux theo cách cấp thấp? Theo như tôi biết thì lớp thấp nhất trong không gian người dùng sẽ yêu cầu KMS thông qua DRM. Điều này có đúng không? Và nếu vậy, làm thế nào tôi có thể đạt được một chuyển đổi chế độ và truy cập vào "bộ nhớ video" liên quan?


Số km là gì? Cho đến nay tôi chưa nghe nói về KSM, hoặc chuyển đổi chế độ.
BЈовић

Ý tôi là liên kết KMS: Kernel-Mode-Settings .

Bạn có nghĩa là cho bộ đệm / bảng điều khiển? Hay cho X11 / Xorg?
chim cánh cụt359

@ chim cánh cụt Hoặc. X và fb nếu có thể miễn là tôi có thể sử dụng libdrm trực tiếp ... (PS: tốt nhất là qua C ++)

4
@litro bạn đang cố gắng đạt được điều gì? và trong nhiều km của distro sẽ tự kích hoạt nếu có và không tắt.
xenoterracide

Câu trả lời:


3

Cài đặt chế độ hạt nhân KMS, đối với những người chưa nghe nói về nó, thì trình điều khiển video ở chế độ kernel có thể thực hiện được. Các trình điều khiển video ở chế độ nhân này cấu hình một màn hình bộ đệm khung mà theo mặc định là độ phân giải gốc của (các) màn hình đính kèm. Nếu có nhiều hơn một màn hình được đính kèm, mỗi màn hình sẽ có độ phân giải riêng và bảng điều khiển ảo sẽ bị giới hạn về chiều rộng và chiều cao tối thiểu của cả hai màn hình.

Bởi vì việc sử dụng KMS dẫn đến bộ đệm khung, các mục cấu hình bộ đệm khung sẽ hoạt động. Tôi không thể xác minh điều này trên hệ thống mà tôi hiện đang sử dụng, vì nó không có trình điều khiển KMS. Nhưng tôi sẽ ở một hệ thống sau với KMS và tôi sẽ cho bạn biết.

Xem tài liệu kernel về các chế độ cài đặt với tham số video = boot up cho bộ đệm khung để biết thêm thông tin.


2

Tôi không chắc bạn thực sự biết những gì bạn hỏi, nếu không bạn sẽ thực hiện nó theo cách có thể trả lời được. ... Nhưng để làm hết sức mình, trả lời câu hỏi của bạn.

Bạn muốn đặt chế độ và tìm ra một số 'bộ nhớ video'? Giống như chế độ dos cũ X ngày ?? Nếu đây là những gì bạn muốn, bạn cần lập trình với Framebuffer. Như đã nói, nó sẽ hoạt động tốt hơn nhiều với DirectFB. DirectFB giống như một lớp rất mỏng, với khả năng tăng tốc, trên Framebuffer. Mức độ thấp của nó, và thực sự nó thấp đến mức bạn muốn viết ứng dụng một cách hợp lý. Bạn sẽ có thể đặt các chế độ và có quyền điều khiển theo kiểu cấp thấp hơn. Nếu bạn muốn điều khiển kiểu trực tiếp trực tiếp, bạn phải viết Framebuffer thô, về cơ bản bạn sẽ tạo ra một số ram video. Nếu bạn cảm thấy Framebuffer hoạt động kém, tôi không thể đủ căng thẳng, hãy xem DirectFB. Nếu ai đó đã tải trình điều khiển KMS, Framebuffer của họ được đặt qua KMS / libdrm.

Bây giờ đối với libdrm, đó là lib không gian người dùng để làm việc với DRM kernel. Nó không phải là Framebuffer, nó không phải là API ứng dụng, nó là một thư viện thiết bị hệ thống. Nếu bạn muốn tạo trình điều khiển thiết bị mới, libdrm là cách tuyệt đối để đi. Ví dụ, libdrm-radeon. Linux không phải là DOS, cách duy nhất để giao tiếp trực tiếp với phần cứng là thông qua kernel. Tất cả các ứng dụng thông thường không bao giờ gửi mã trực tiếp đến phần cứng, nó phải được xử lý trong một số lib / API / cuộc gọi. Có những dự án đã thực hiện phương pháp trong nhân, cho mục đích học thuật / thử nghiệm, chẳng hạn như FBUI.

Tôi hy vọng tôi ít nhất có thể chỉ cho bạn đi đúng hướng, nếu không bạn nên bình luận và cũng cập nhật câu hỏi của bạn. Tôi đã theo dõi câu hỏi này kể từ khi thụ thai, đó là ít nhất hai lần di chuyển trước đây và không có câu trả lời gần hơn. Không có thêm thông tin, thực sự không còn gì có thể nói nữa.

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.