Không có thiết bị bộ đệm khung: làm thế nào để kích hoạt nó?


23

Tôi đang cố gắng để thẻ điều chỉnh PCMCIA hoạt động trong máy chủ gia đình không đầu của tôi, chạy Debian Squeeze. Bây giờ, khi tôi gặp khó khăn rất lớn trong việc tìm ra dòng lệnh chính xác để nắm bắt, chuyển mã kết thúc truyền phát video đến mạng bằng VLC, tôi quyết định đi từng bước và làm việc đầu tiên trên đầu ra cục bộ.

Đó là vấn đề xuất hiện: dường như không có thiết bị bộ đệm khung (/ dev / fb0) để truy cập để hiển thị đồ họa trên màn hình đính kèm! Và thực sự tôi nhận thấy tôi không có hình ảnh chim cánh cụt Linux khi khởi động (trước đây không chú ý vì màn hình được gắn vào, nhưng luôn tắt và dù sao máy tính vẫn luôn bật).

Vì tôi không rành về đồ họa Linux, tôi muốn hiểu:

  • Điều này có liên quan đến phần cứng cụ thể của tôi (xem bên dưới)? Hoặc nó dành riêng cho Debian Squeeze / phiên bản kernel / ...?
  • Có một số trình điều khiển tôi cần để cài đặt / tải thủ công?

Bây giờ một số thông tin chung:

  • Máy tính không có card đồ họa chuyên dụng, nhưng chipset đồ họa nhúng (Intel G31 Express), được nhúng trên bo mạch chủ (Gigabyte G31M-ES2L)
  • Tôi không muốn cài đặt một máy chủ X đầy đủ tính năng, chỉ cần có một thiết bị bộ đệm khung cho thử nghiệm cụ thể này

Bất kỳ ý tưởng / ý kiến ​​về vấn đề này?


1
Một khi bạn đứng /dev/fb0dậy và chạy, hãy chắc chắn chấp nhận câu trả lời của tôi. Hiếm khi những người có kinh nghiệm thực tế về một chủ đề ít phổ biến hơn, hãy đi xung quanh để đưa ra câu trả lời HQ. Chúng tồn tại trên UNIX-SE, đây là một chủ đề tương đối hiếm gặp nên ít chuyên gia tồn tại.
JM Becker

Câu trả lời:


36

Tôi có thể giải quyết câu hỏi của bạn, trước đây đã làm việc với Linux FB.

Làm thế nào Linux không FB của nó.

  1. Trước tiên, bạn cần phải có hỗ trợ FrameBuffer trong kernel, tương ứng với phần cứng của bạn. Hầu hết các bản phân phối hiện đại đều có hỗ trợ thông qua các mô-đun hạt nhân. Không có vấn đề gì nếu bản phân phối của bạn được cấu hình sẵn với logo khởi động, tôi không sử dụng một cái và có hỗ trợ FB.

  2. Không có vấn đề gì nếu bạn có một card đồ họa chuyên dụng, tích hợp sẽ hoạt động miễn là Bộ đệm Framebuffer phần cứng được hỗ trợ.

  3. Bạn không cần X, đó là khía cạnh hấp dẫn nhất của việc có FrameBuffer. Một số người không biết rõ hơn, vì vậy họ ủng hộ một số dạng X để khắc phục những hiểu lầm của họ.

  4. Bạn không cần phải làm việc trực tiếp với FB, điều mà nhiều người cho là không chính xác. Một thư viện rất tuyệt vời để phát triển với FrameBuffer là DirectFBnó thậm chí còn có một số hỗ trợ tăng tốc cơ bản. Tôi luôn đề nghị ít nhất kiểm tra nó, nếu bạn đang bắt đầu một dự án dựa trên FB đầy đủ tính năng (Trình duyệt web, Trò chơi, GUI ...)

Cụ thể cho phần cứng của bạn

  1. Sử dụng Vesa Generic FrameBuffer, các mô-đun của nó được gọi vesafb. Bạn có thể tải nó, nếu bạn có sẵn, với các lệnh modprobe vesafb. nhiều bản phân phối cấu hình sẵn nó bị vô hiệu hóa, bạn có thể đăng ký /etc/modprobe.d/. blacklist vesafbcó thể cần phải được nhận xét bằng một #, trong một blacklist-framebuffer.confhoặc một tệp danh sách đen khác.

  2. Tùy chọn tốt nhất, là trình điều khiển KMS dành riêng cho phần cứng. Cái chính của Intel là Intel GMA, không chắc mô-đun của nó được đặt tên là gì. Bạn sẽ cần phải đọc lên về nó từ các tài liệu phân phối của bạn. Đây là tùy chọn FB hoạt động tốt nhất, cá nhân tôi sẽ luôn đi KMS trước nếu có thể.

  3. Sử dụng Trình điều khiển FB dành riêng cho Phần cứng Di sản, Không được đề xuất vì đôi khi chúng có lỗi. Tôi sẽ tránh lựa chọn này, trừ khi cần đến biện pháp cuối cùng.

Tôi tin rằng điều này bao gồm tất cả các câu hỏi của bạn và nên cung cấp thông tin để cung cấp /dev/fb0thiết bị đó . Bất cứ điều gì cụ thể hơn sẽ cần chi tiết phân phối, và nếu bạn có chút kinh nghiệm, RTFM sẽ là tất cả những gì bạn cần. (sau khi đọc cái này).

Tôi hy vọng tôi đã giúp, Bạn may mắn hỏi bạn về một trong những chủ đề của tôi! Đây là một chủ đề bị bỏ qua trên UNIX-SE, vì không phải tất cả mọi người (cố ý) sử dụng Linux FrameBuffer.

LƯU Ý: UvesaFB Hoặc VesaFB?

Bạn có thể đã đọc mọi người sử dụng uvesafbhơn vesafb, vì nó có hiệu suất tốt hơn. Điều này nói chung đúng, nhưng không phải trong một bản phân phối hiện đại với Phần cứng hiện đại. Nếu Phần cứng đồ họa của bạn hỗ trợ chế độ được bảo vệ VESA (VESA> = 2.0) và bạn có một hạt nhân gần đây vesafbthì bây giờ là lựa chọn tốt hơn.


1
Rất cám ơn câu trả lời của bạn !!! Nó vượt xa những gì tôi mong đợi về chiều sâu và chất lượng !! Tôi thực sự đánh giá cao khi tôi có thể tìm thấy bài đăng / câu trả lời như của bạn bởi vì họ không chỉ đưa ra giải pháp cho vấn đề cụ thể, mà quan trọng hơn là họ cung cấp thông tin chung về công việc bên trong có thể hữu ích cho những người khác cho các tình huống tương tự hoặc liên quan !!
Federico

1
Về vấn đề của tôi, tôi sẽ xem xét vấn đề này dựa trên đầu vào của bạn và báo cáo lại tại đây ngay khi tôi nhận được kết quả thỏa mãn ...
Federico

3
Vì vậy, tôi đã thử modprobe vesa(mà tôi nhớ đã thử trước khi đặt câu hỏi ở đây) nhưng không thành công vì mô-đun không tồn tại trên hệ thống của tôi ( FATAL: Module vesafb not found.) -> sẽ phải hiểu nếu điều này có liên quan đến phần cứng hoặc bản phân phối Linux của tôi (Debian Squeeze ). Tin tốt là modprobe uvesafbhoạt động và tạo ra /dev/fb0thiết bị. Tuy nhiên, bây giờ tôi đã đọc câu trả lời của bạn, tôi sẽ cố gắng thiết lập mọi thứ theo cách phù hợp và tìm trình điều khiển KMS ...
Federico

1
Tôi đã bình chọn ý kiến ​​của bạn, tôi rất vui vì tôi có thể giúp đỡ!. Để giải quyết nhận xét cuối cùng của bạn, bạn không chính xác về giải pháp 2. Bạn có thể TUYỆT ĐỐI để có được một KMS mà không cần X, nhưng như tôi đã nói, các câu trả lời thực sự đang chìm trong rác. Tên của mô-đun phần cứng chính xác, được gọi inteldrmfb, tôi tìm thấy nó đang thực hiện một số nghiên cứu nhanh. Tôi luôn có ATI, vì vậy hỗ trợ liên quan đến GPU của Intel không phải là điểm mạnh nhất của tôi. Bạn có thể cần phải cài đặt một gói cho nó, nhưng tôi sẽ xem liệu tôi có thể tìm ra không.
JM Becker

1
Đợi đã, tôi đã nhầm lẫn ... Tôi vừa kiểm tra netbook Intel của tôi và mô-đun là i915, nhưng nó tải Framebuffer được gọi là inteldrmfb. Bạn có thể cần phải cài đặt gói libdrm-intel1hoặc kiểm tra xem nó đã được cài đặt chưa.
JM Becker

10

Cuối cùng tôi đã tìm ra giải pháp cho vấn đề của mình !!

Trước hết, rất nhiều lời cảm ơn đến tất cả những người đã đóng góp và đặc biệt là TechZilla và lời giải thích chi tiết mà anh ấy đã cung cấp mà tôi nghĩ rằng tôi sẽ từ bỏ từ lâu!

Vì vậy, về cơ bản, tất cả những gì cần làm là kích hoạt chế độ ( modeset=1) khi i915mô-đun hạt nhân tải. Điều này có thể được thực hiện theo những cách thông thường:

  • thông qua tham số kernel của GRUB,
  • thông qua một tập tin cấu hình trong /etc/modprobe.d
  • hoặc tại dòng lệnh:

    # rmmod i915
    # modprobe i915 modeset=1
    

Trong thực tế, bạn không cần phải làm bất cứ điều gì nếu bạn cài đặt gói xserver-xorg-video-intel, mà tạo ra /etc/modprobe.d/i915-kms.confchứa options i915 modeset=1. Tuy nhiên, nếu ai đó không muốn cài đặt X (như trong trường hợp của tôi), thì KMS không được bật tự động, điều này giải thích tại sao thiết bị FrameBuffer không được tạo ...


2
Bạn vẫn nên chấp nhận câu trả lời của tôi, bởi vì "làm thế nào để tôi bật KMS bằng cách bóp" không phải là câu hỏi ban đầu của bạn. Tôi tin rằng tôi đã trả lời câu hỏi ban đầu của bạn và chỉ cho bạn con đường dự định của bạn. Lý do khác, bạn chỉ nhận được điểm cho giải thưởng 'người khác'. Mặc dù nó rất tốt để tự thưởng nếu không có ai đến gần, trong trường hợp này nó không có ý nghĩa. Bạn vẫn giữ câu trả lời của mình được đăng, hoặc tích hợp thông tin trong câu hỏi. Dù bằng cách nào cũng sẽ ổn thôi. thực sự rất vui vì tôi đã giúp Tôi thực sự rất vui khi bạn có giải pháp KMS hoạt động, vì nó sẽ nhanh hơn VESA đơn giản.
JM Becker

1
Tôi chỉ thay đổi lại câu trả lời được chấp nhận cho bạn! Là loại người mới ở đây, tôi không biết chính xác phải làm gì: đặt giải pháp vào chính câu hỏi, trong một bình luận cho câu trả lời được chấp nhận của bạn hoặc đăng dưới dạng câu trả lời mới. Tôi hình dung rằng bằng cách tạo ra một câu trả lời mới được chấp nhận, mọi người sẽ đọc câu hỏi trước, sau đó là câu trả lời của bạn đứng đầu vì nó có nhiều câu trả lời hơn và sau đó là câu trả lời của tôi ...
Federico

Trong khi câu trả lời khác là kỹ lưỡng, đây nên là câu trả lời được chấp nhận. Bất kể làm thế nào hùng hồn tác giả cầu xin.
Moog

-2

Bạn có thể thử một bộ đệm khung ảo như Xvfb (bộ đệm khung ảo X).

Mô tả gói xvfb trong bóp


1. đây là FrameBuffer 'ảo', không phải là FrameBuffer phần cứng trực tiếp thực tế. 2. Đây là máy chủ X và cụ thể là câu hỏi không yêu cầu X.
JM Becker

-2

Miễn là đây là bản cài đặt debian tiêu chuẩn không có gì lạ mắt và hạt nhân tiêu chuẩn, bạn sẽ có thể nhận được bảng điều khiển VGA thuê sử dụng thiết bị bộ đệm khung với tham số kernel như "vga = 792" (có 24 bit 1024 × 768 ). Chắc chắn kernel báo cáo là không dùng nữa, nhưng nó hoạt động.

Xem http://www.kernel.org/doc/Documentation/kernel-parameter.txt để biết các tham số kernel. Điều thú vị là, paremeter "vga =" không hiển thị là không dùng nữa.

Đảm bảo chạy lại update-grub (2) và lượt thích sau khi thay đổi.

Ngoài ra, hãy xem http://packages.debian.org/squeeze/svgalib-bin nó không hoàn hảo nhưng nó cho phép bạn thực hiện một số công cụ đồ họa ưa thích trên bảng điều khiển.


3
Không, nó không hoạt động nữa, trong NHIỀU hoàn cảnh. Đây là câu trả lời mà tôi luôn nói về. Nếu bạn sử dụng GRUB2, điều này chỉ hoạt động khi khởi động với các 16giảm tốc kế thừa . Điều đó cũng không được chấp nhận, mà ít nhất là bạn thừa nhận, thực tế điều đó có nghĩa là KHÔNG LÀM BÀI TẬP MỚI VỚI NÓ. vga=Rác cũ sẽ không khởi động được, nếu bạn tắt các mô-đun phần cứng /etc/modprobe.d/và nhiều bản phân phối được cấu hình sẵn như vậy.
JM Becker

Vì vậy, vấn đề tiếp theo, svgalib-bin là một thư viện không phải là thiết bị '/ dev / fb0'. Bất cứ điều gì muốn có Svgalib, cần phải được phát triển với svgalib. Nó có thể được sử dụng để thay thế FB, nhưng nó không "thay thế" theo nghĩa đen của FB. Tôi thực sự đã mắc một lỗi bình luận cuối cùng, khi tôi nói "không khởi động được", ý tôi là "không tải được FB, có khả năng sẽ rơi vào vga chuẩn"
JM Becker

3
Đây thực sự không phải là lỗi của bạn, cộng đồng của chúng tôi để lại tài liệu lỗi thời khủng khiếp. Mọi người đều trả lời những câu trả lời cũ trên internet, khiến cho sự hiểu biết hiện đại trở nên khó khăn. Rất nhiều người thậm chí chỉ đơn giản là từ bỏ, bởi vì câu trả lời thực sự là mới và bị chôn vùi dưới nhiều năm của các giải pháp không dùng nữa.
JM Becker

1
Tham số "vga =" hoạt động khi sử dụng bóp. Tôi chỉ đề xuất nó vì nó là một sửa chữa nhanh chóng dễ dàng, thay vì nghiên cứu những gì nó được thay thế bằng. kernel.org/doc/Documentation/kernel-parameter.txt không hiển thị "vga =" như không dùng nữa. Lý do duy nhất tôi biết là do thông báo khởi động gần như không thể đọc được bởi kernel ... sự nhầm lẫn xảy ra ... vì vậy theo văn bản tại kernel.org "vga =" KHÔNG được phản đối. Chúng ta tin vào điều gì?
aseq

1
Nhân tiện, gợi ý của tôi về việc sử dụng svgalib là do người dùng không muốn sử dụng X. Tôi hiểu thủ phạm của svgalib, nhưng có một vài lựa chọn khác.
aseq
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.