Cài đặt chế độ hạt nhân so với Framebuffer?


24

Với KMS, trình điều khiển đồ họa được chuyển vào kernel. Vì bộ đệm khung đã có trong kernel, tôi sẽ không hy vọng điều này sẽ ảnh hưởng đến hoạt động của bộ đệm khung. Tuy nhiên, tôi đọc được rằng KMS thay thế fb, tăng fb, yêu cầu fb và yêu cầu hỗ trợ fb để được gỡ bỏ. Cái quái gì thế Câu trả lời tôi đang tìm kiếm là một lời giải thích về mối quan hệ giữa KMS và bộ đệm khung.

Tôi đã sử dụng uvesafb để có được độ phân giải gốc tại tty. Mục đích của tôi ở đây là để hiểu cách thức hoạt động trên một hệ thống với KMS. Nó cũng sẽ giúp bao quát những thứ như .. Có cuộn nhanh hơn với KMS không? Các tiện ích như fbterm và fbida có hoạt động giống nhau không? Ổn định có tốt hơn không?

Câu trả lời:


6

Trước hết, về cơ bản có hai loại trình điều khiển bộ đệm khung cổ điển:

  • Trình điều khiển phần cứng và phần sụn chung (ví dụ: vga, vesafb / uvesafb, efifb)
  • Trình điều khiển dành riêng cho phần cứng (ví dụ: Rivafb, atyfb)

Các trình điều khiển bộ đệm khung cổ điển đều có hỗ trợ chế độ cơ bản, nhưng chúng ít lộ diện nếu có bất kỳ sự hỗ trợ nào cho việc tích lũy phần cứng.

Với thiết kế X cổ điển, đây thực sự không phải là vấn đề: để tăng tốc 2D, máy chủ X chạy dưới quyền root và có thể truy cập trực tiếp vào phần cứng. Về cơ bản, nó hoàn toàn bỏ qua trình điều khiển bộ đệm khung. Đối với 3d (và hỗ trợ 2d trên các thẻ mới hơn), nó cũng sẽ sử dụng trình điều khiển DRM kernel để truy cập qua trung gian và bộ nhớ video được quản lý.

Trong thiết lập này, có hai vị trí đã thực hiện cài đặt chế độ: cả trong trình điều khiển bộ đệm khung nhân và trong máy chủ X không gian người dùng. Việc sao chép mã này (và chiến đấu không thường xuyên giữa các trình điều khiển, ví dụ như trên VT-switch) là không lý tưởng.

Ngoài ra, có hai trình điều khiển riêng biệt trong kernel cho cùng một phần cứng: trình điều khiển bộ đệm khung và trình điều khiển DRM. Trong một số trường hợp (ví dụ: intelfb trước km), bạn có thể tải cái này hoặc cái kia, nhưng không phải cả hai cùng một lúc.

KMS là giải pháp cho những vấn đề này. Nó:

  • Hợp nhất trình điều khiển bộ đệm khung dành riêng cho phần cứng và trình điều khiển drm thành một trình điều khiển duy nhất.
  • Cung cấp giao diện cho máy chủ X sử dụng để điều khiển chế độ, vì vậy máy chủ X không phải truy cập trực tiếp vào phần cứng. (Thật vậy, với KMS, máy chủ X không còn cần quyền root nữa.)

Một số lưu ý thú vị: Việc di chuyển đến KMS ngày nay thực sự bắt đầu vào khoảng năm 2004; xem email của Jon Smirl trên kiến ​​trúc điều khiển .

Để trả lời các câu hỏi cụ thể hơn của bạn:

  • Tốc độ nói chung sẽ không tệ hơn một trong những trình điều khiển chung không tương thích (ví dụ VGA, vesafb), nhưng bảng điều khiển văn bản bộ đệm khung KMS được thiết kế để thuận tiện và sử dụng khẩn cấp thay vì tốc độ và giao diện điều khiển không được tăng tốc hoàn toàn trên một số trình điều khiển. Ví dụ, các dòng dài được bọc khá tệ trên thẻ intel.
  • Các ứng dụng được thiết kế để sử dụng giao diện bộ đệm khung cũ vẫn sẽ hoạt động trên bộ đệm khung KMS.

3

KMS đặt độ phân giải và độ sâu hiển thị trong không gian kernel thay vì không gian người dùng. Vì vậy, có nó thay thế nó. Nó cho phép độ phân giải riêng trong bộ đệm khung.

Cài đặt chế độ hạt nhân


4
Các bài viết Wiki về KMS rất dễ tìm, nhưng những lời giải thích rất tệ. Làm thế nào KMS có thể thay thế fb và đồng thời cho phép nó? Các fb đã hỗ trợ độ phân giải gốc, vậy có gì khác nhau? Các tiện ích fb có hoạt động với KMS không?
dùng5184

Tôi không nghĩ bộ đệm khung hỗ trợ độ phân giải gốc, đặc biệt là khi màn hình là màn hình rộng. ví dụ: độ phân giải gốc của màn hình LCD của tôi là 1680x1050, tuy nhiên, bộ đệm khung chỉ phát hiện độ phân giải 1280x1024
LiuYan 刘
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.