프레임버퍼 장치 없음: 활성화하는 방법은 무엇입니까?

프레임버퍼 장치 없음: 활성화하는 방법은 무엇입니까?

나는 Debian Squeeze를 실행하는 헤드리스 홈 서버에서 작동하도록 PCMCIA 튜너 카드를 구하려고 합니다. 이제 VLC를 사용하여 비디오를 캡처하고 트랜스코딩하고 네트워크로 스트리밍하는 데 적합한 명령줄을 찾는 데 어려움을 겪고 있기 때문에 로컬 출력을 먼저 처리하면서 단계별로 수행하기로 결정했습니다.

문제가 있는 곳은 다음과 같습니다.연결된 화면에 그래픽을 표시하기 위해 액세스할 수 있는 프레임 버퍼 장치(/dev/fb0)가 없는 것 같습니다!실제로 Linux Penguin 이미지 없이 부팅했다는 사실을 발견했습니다(화면이 연결되어 있지만 항상 꺼져 있고 어쨌든 컴퓨터가 항상 켜져 있기 때문에 이전에는 이를 눈치채지 못했습니다).

나는 Linux 그래픽에 익숙하지 않기 때문에 다음 사항을 알고 싶습니다.

  • 이것이 내 특정 하드웨어와 관련이 있습니까(아래 참조)? 아니면 Debian Squeeze/커널 버전/...에만 해당됩니까?
  • 수동으로 설치/로드해야 하는 드라이버가 있습니까?

이제 몇 가지 일반적인 정보:

  • 이 컴퓨터에는 전용 그래픽 카드가 없지만 마더보드(Gigabyte G31M-ES2L)에 내장 그래픽 칩셋(Intel G31 Express)이 내장되어 있습니다.
  • 나는 모든 기능을 갖춘 X 서버를 설치하고 싶지 않고 단지 이 특정 테스트를 위한 프레임 버퍼 장치만 설치하고 싶습니다.

이 문제에 대한 생각/의견이 있으십니까?

답변1

이전에 Linux FB를 사용해 본 적이 있으므로 귀하의 질문에 답변해 드릴 수 있습니다.

Linux는 FB를 어떻게 실행합니까?

  1. 먼저, 커널에는 하드웨어에 해당하는 FrameBuffer 지원이 있어야 합니다. 대부분의 최신 배포판은 커널 모듈을 통해 지원을 제공합니다. 배포판에 미리 구성된 시작 로고가 있는지 여부는 중요하지 않습니다. 저는 이를 사용하지 않으며 FB를 지원합니다.

  2. 전용 그래픽 카드가 있는지는 중요하지 않습니다. 통합 그래픽은 하드웨어 프레임 버퍼를 지원하는 한 작동합니다.

  3. FrameBuffer의 가장 매력적인 측면인 X가 필요하지 않습니다. 어떤 사람들은 잘 이해하지 못하기 때문에 자신의 오해를 해결하기 위해 어떤 형태의 X를 옹호합니다.

  4. FB를 직접 사용할 필요는 없습니다. 이는 많은 사람들이 하는 잘못된 가정입니다. FrameBuffer 개발을 위한 정말 훌륭한 라이브러리 DirectFB이며 몇 가지 기본적인 가속 지원도 제공합니다. FB(웹 브라우저, 게임, GUI...)를 기반으로 완전한 기능을 갖춘 프로젝트를 시작하는 경우 최소한 확인해 보는 것을 항상 권장합니다.

귀하의 하드웨어에 특정한

  1. 모듈이 호출되는 Vesa Generic FrameBuffer를 사용하십시오 vesafb. 사용 가능한 경우 명령을 사용하여 로드할 수 있습니다 modprobe vesafb. 많은 배포판에는 이 기능이 비활성화되도록 사전 구성되어 있으며 체크인할 수 있습니다 /etc/modprobe.d/. 또는 다른 블랙리스트 파일에서 이를 사용하고 blacklist vesafb주석 처리해야 할 수도 있습니다.#blacklist-framebuffer.conf

  2. 가장 좋은 옵션은 하드웨어별 KMS 드라이버입니다. Intel의 주요 모듈은 Intel GMA입니다. 모듈 이름이 무엇인지는 확실하지 않습니다. 배포 문서에서 이에 대해 읽어야 합니다. 이것은 가장 성능이 좋은 FB 옵션이며 저는 개인적으로 가능하다면 항상 KMS를 먼저 선택합니다.

  3. 오래된 하드웨어 특정 FB 드라이버를 사용하는 것은 때때로 버그를 일으킬 수 있으므로 권장되지 않습니다. 최후의 수단을 제외하고는 이 옵션을 사용하지 않겠습니다.

/dev/fb0나는 이것이 귀하의 모든 질문을 다루고 장치를 사용할 수 있도록 정보를 제공해야 한다고 믿습니다. 더 구체적인 내용에는 배포 세부 정보가 필요하며, 경험이 있는 경우 RTFM만 있으면 됩니다. (이 기사를 읽은 후).

제가 도움이 되었기를 바랍니다. 운이 좋게도 제 주제 중 하나에 대해 질문하실 수 있습니다! 모든 사람이 (의도적으로) Linux FrameBuffer를 사용하는 것은 아니기 때문에 이것은 UNIX-SE에서 간과되는 주제입니다.

참고: UvesaFB 또는 VesaFB?

성능이 더 좋기 때문에 사람들 uvesafb이 이상을 사용한다는 내용을 읽어보셨을 것입니다 . vesafb이는 일반적으로 사실이지만 최신 하드웨어를 사용하는 최신 배포판에서는 그렇지 않습니다. 그래픽 하드웨어가 보호 모드 VESA(VESA >= 2.0)를 지원하고 최신 커널을 사용하는 경우 vesafb이제 더 나은 선택이 됩니다.

답변2

마침내 내 문제에 대한 해결책을 찾았습니다! !

우선, 모든 기여자, 특히 TechZilla와 그가 제공한 자세한 설명에 큰 감사를 드립니다. 이 설명이 없었다면 포기했을 것 같습니다!

그래서 기본적으로필요한 것은 모드 설정을 활성화하는 것뿐입니다( modeset=1) i915커널 모듈이 로드될 때. 이는 일반적인 방법으로 수행할 수 있습니다.

  • GRUB의 커널 매개변수를 통해
  • 구성 파일을 통해/etc/modprobe.d
  • 또는 명령줄에서:

    # rmmod i915
    # modprobe i915 modeset=1
    

실제로 패키지를 설치하면 아무것도 할 필요가 없으며 포함된 패키지가 xserver-xorg-video-intel생성됩니다 . 그러나 누군가 X를 설치하고 싶지 않으면(저의 경우처럼) KMS가 자동으로 활성화되지 않습니다. , FrameBuffer 장치가 생성되지 않는 이유를 설명합니다 .../etc/modprobe.d/i915-kms.confoptions i915 modeset=1

답변3

부가 기능과 표준 커널이 없는 표준 데비안 설치라면 "vga=792"(예: 24비트 1024×768)와 같은 커널 매개변수가 있는 프레임버퍼 장치를 사용하여 VGA 콘솔을 얻을 수 있습니다. . 물론 커널에서는 더 이상 사용되지 않는 것으로 보고하지만 작동합니다.

바라보다http://www.kernel.org/doc/Documentation/kernel-parameters.txt커널 매개변수의 경우. 흥미롭게도 "vga=" 매개변수 테이블은 더 이상 사용되지 않는 것으로 표시되지 않습니다.

변경 후에는 반드시 update-grub(2) 등을 다시 실행하십시오.

또한 확인해보세요http://packages.debian.org/squeeze/svgalib-bin완벽하지는 않지만 콘솔에서 멋진 그래픽 작업을 수행할 수 있습니다.

답변4

Xvfb(X Virtual Framebuffer)와 같은 가상 프레임버퍼를 사용해 볼 수 있습니다.

Squeeze의 xvfb 패키지에 대한 설명

관련 정보