프레임 버퍼 장치 없음 : 활성화하는 방법?


23

데비안 스퀴즈를 실행하는 헤드리스 홈 서버에서 PCMCIA 튜너 카드를 작동 시키려고합니다. 이제 캡처 할 올바른 명령 줄을 찾고 VLC를 사용하여 비디오를 네트워크로 엔드 스트림으로 트랜스 코딩하는 데 큰 어려움을 겪으면서 단계별로 진행하여 로컬 출력에서 ​​먼저 작업하기로 결정했습니다.

문제가 발생한 곳 입니다. 연결된 화면에 그래픽을 표시하기 위해 액세스 할 프레임 버퍼 장치 (/ dev / fb0)가없는 것 같습니다! 그리고 실제로 부팅시 Linux 펭귄 이미지가 없다는 것을 알았습니다 (화면이 연결되기 전에주의를 기울이지 않았지만 항상 꺼져 있고 어쨌든 컴퓨터는 항상 켜져 있습니다).

Linux 그래픽에 익숙하지 않으므로 다음을 이해하고 싶습니다.

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

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

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

문제에 대한 아이디어 / 의견이 있습니까?


1
일단 당신이 일을 /dev/fb0시작 하면 내 대답을 받아주십시오. 덜 일반적인 주제에 대해 실제 경험이있는 사람들을 거의 사용하지 말고 HQ 답변을 제공하십시오. 이들은 비교적 드문 주제 인 UNIX-SE에 존재하므로 전문가 수가 적습니다.
JM Becker

답변:


36

나는 이전에 Linux FB와 함께 일한 당신의 질문을 해결할 수 있습니다.

Linux가 FB를 수행하는 방법

  1. 먼저 하드웨어에 해당하는 커널에서 FrameBuffer를 지원해야합니다. 대부분의 최신 배포판은 커널 모듈을 통해 지원됩니다. 배포판에 부팅 로고가 미리 구성되어 있는지 여부는 중요하지 않습니다. 부트 로고를 사용하지 않고 FB를 지원합니다.

  2. 전용 그래픽 카드가 있는지는 중요하지 않으며 하드웨어 프레임 버퍼가 지원되는 한 통합 기능이 작동합니다.

  3. X가 필요하지 않습니다. X는 FrameBuffer를 갖는 가장 매력적인 측면입니다. 어떤 사람들은 더 잘 알지 못하기 때문에 오해를 피하기 위해 어떤 형태의 X를 옹호했습니다.

  4. 많은 사람들이 잘못 생각하는 FB를 직접 사용하지 않아도됩니다. FrameBuffer로 개발하기에 매우 훌륭한 라이브러리 DirectFB는 기본적인 가속 지원 기능이 있다는 것입니다. 완전한 기능을 갖춘 FB 기반 프로젝트 (웹 브라우저, 게임, GUI ...)를 시작하는 경우 항상 확인하는 것이 좋습니다.

하드웨어에만 해당

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

  2. 최상의 옵션은 하드웨어 별 KMS 드라이버입니다. 인텔의 주요 기능은 인텔 GMA이며 모듈의 이름을 잘 모르겠습니다. 배포판 문서에서 그 내용을 읽어야합니다. 이것이 최고의 성능을 발휘하는 FB 옵션입니다. 가능하면 개인적으로 항상 KMS를 먼저 사용합니다.

  3. 레거시 하드웨어 관련 FB 드라이버를 사용하십시오. 때때로 버그가 있으므로 권장되지 않습니다. 마지막 리조트가 필요하지 않으면이 옵션을 피할 것입니다.

나는 이것이 귀하의 모든 질문에 해당되며 그 /dev/fb0장치를 사용할 수 있도록 정보를 제공해야한다고 생각 합니다. 보다 구체적인 내용은 배포 세부 사항이 필요하며 경험이 많으면 RTFM 만 있으면됩니다. (이 글을 읽은 후).

도움이 되었기를 바랍니다. 운이 좋으면 내 주제 중 하나에 대해 물어보십시오! 모두가 (의도적으로) Linux FrameBuffer를 사용하는 것은 아니기 때문에 이것은 UNIX-SE에서 무시 된 주제입니다.

참고 : UvesaFB 또는 VesaFB?

성능이 더 좋았 기 때문에 사람들이 uvesafbover를 읽었을 수 있습니다 vesafb. 이것은 일반적으로 사실이지만 현대 하드웨어의 현대 배포판에는 해당되지 않습니다. 그래픽 하드웨어가 보호 모드 VESA (VESA> = 2.0)를 지원하고 다소 최신 커널을 사용 vesafb하는 것이 좋습니다.


1
답변 주셔서 감사합니다! 깊이와 품질면에서 기대했던 것 이상입니다! 나는 당신과 같은 게시물 / 답변을 찾을 수있을 때 정말 감사합니다. 왜냐하면 그들은 특정 문제에 대한 해결책을 제공 할뿐만 아니라 내부 작업에 대한 일반적인 정보를 제공하므로 동일하거나 관련된 상황에서 다른 사람들에게 도움이 될 수 있습니다!
Federico

1
내 문제와 관련하여 만족스러운 결과를 얻 자마자 귀하의 의견을 바탕으로 검토하고 여기에 다시보고 할 것입니다.
Federico

3
따라서 modprobe vesa모듈에 시스템이 없기 때문에 실패했습니다 (여기서 질문하기 전에 시도한 것을 기억하십시오 FATAL: Module vesafb not found.)-> 이것이 내 하드웨어 또는 Linux 배포판과 관련이 있는지 이해해야합니다 (Debian Squeeze ). 좋은 소식은 modprobe uvesafb작동하고 /dev/fb0장치를 만드는 것 입니다. 그러나, 나는 당신의 대답을 읽었으므로, 올바른 방법을 설정하고 KMS 드라이버를 찾으려고 노력할 것입니다.
Federico

1
나는 당신의 의견을 표명했습니다. 마지막 의견을 해결하기 위해 솔루션 2에 대해 잘못되었습니다. X없이 KMS를 얻을 수는 있지만 실제 답변은 말 그대로 쓰레기에 빠져 버립니다. 올바른 하드웨어 모듈의 이름을이라고 inteldrmfb합니다. 몇 가지 빠른 조사를 수행했습니다. 저는 항상 ATI를 가지고 있으므로 인텔 GPU 관련 지원이 가장 중요하지 않습니다. 당신은 할 수 그것을 위해 패키지를 설치해야합니다,하지만 난 찾을 수 있는지 보자.
JM Becker

1
잠깐, 실수했다 ... 방금 인텔 넷북을 확인했는데 모듈은 i915이지만 inteldrmfb로 알려진 Framebuffer를로드합니다. 패키지를 설치하거나 패키지 libdrm-intel1가 설치되어 있는지 확인해야합니다.
JM Becker

10

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

우선, TechZilla에 기여한 모든 분들께 감사드립니다. 특히 그가 오래 전에 포기했을 것입니다.

따라서 기본적으로 커널 모듈이로드 될 때 활성화 모드 설정 ( modeset=1) 만하면i915 됩니다. 이는 일반적인 방법으로 수행 할 수 있습니다.

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

    # rmmod i915
    # modprobe i915 modeset=1
    

사실, 당신은 당신이 패키지를 설치하면 작업을 수행 할 필요가 없습니다 xserver-xorg-video-intel만듭니다, /etc/modprobe.d/i915-kms.conf포함을 options i915 modeset=1. 그러나 누군가가 X를 설치하지 않으려는 경우 (내 경우와 같이) KMS가 자동으로 활성화되지 않아 FrameBuffer 장치가 생성되지 않은 이유를 설명합니다 ...


2
"누르면서 KMS를 켜려면 어떻게해야합니까?"가 초기 질문이 아니기 때문에 여전히 내 대답을 받아 들여야합니다. 나는 당신의 첫 질문에 대답하고 당신이 의도 한 길을 가리키고 있다고 믿습니다. 다른 이유로, 당신은 '다른'사람들에게 답변을 수여하는 포인트 만 얻습니다. 아무도 가까워지지 않으면 자립하는 것이 좋지만이 경우에는 의미가 없습니다. 그래도 답변을 게시하거나 문제의 정보를 통합합니다. 어느 쪽이든 괜찮을 것입니다. 정말 도와 줘서 정말 기뻐요! KMS 솔루션이 일반 VESA보다 빠르기 때문에 KMS 솔루션이 작동하게되어 정말 기쁩니다.
JM Becker

1
방금 당신에게 받아 들여진 대답을 다시 바꿨습니다! 여기에 새로운 종류가 있기 때문에, 나는 무엇을해야할지 정확히 몰랐습니다. 문제 자체에 답을 넣고, 당신의 대답에 대한 의견을 제시하거나, 새로운 대답으로 게시하십시오. 나는 받아 들여진 새로운 답변을 만들어 사람들이 먼저 질문을 읽은 다음, 더 많은 투표를 한 다음 맨 위에 오는 답변을 읽게 될 것이라고 생각했습니다.
Federico

다른 답변은 철저하지만이 답변은 받아 들여야합니다. 저자가 얼마나 설득력있게 구걸하는지에 관계없이.
Moog


-2

멋진 데비안과 표준 커널이 포함 된 표준 데비안 설치라면 "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을 살펴보십시오. 완벽하지는 않지만 콘솔에서 멋진 그래픽 작업을 수행 할 수 있습니다.


3
많은 상황에서 더 이상 작동하지 않습니다. 이것은 내가 항상 이야기하는 대답입니다. GRUB2를 사용하는 경우 레거시 16감속으로 부팅 할 때만 작동합니다 . 또한 실제로는 더 이상 사용되지 않으므로 IT 부서에서 새로운 설정을 수행하지 마십시오. vga=하드웨어 모듈이 비활성화되어 /etc/modprobe.d/있고 많은 배포판이 미리 구성되어 있으면 오래된 가비지가 부팅되지 않습니다 .
JM Becker

다음 문제에서 svgalib-bin은 '/ dev / fb0'장치가 아닌 라이브러리입니다. svgalib를 원하는 것은 svgalib로 개발해야합니다. FB를 교체하는 데 사용할 수 있지만 FB를 '문자 그대로'대체하지는 않습니다. "부팅에 실패했습니다"라고 말했을 때 실제로 오류가 발생했습니다. "FB로드에 실패했습니다. 표준 vga로 대체 될 가능성이 있습니다"
JM Becker

3
이것은 실제로 당신의 잘못이 아닙니다. 우리 커뮤니티는 끔찍한 구식 문서를 남깁니다. 모든 사람이 인터넷을 통해 오래된 답변을 유인하여 짐승에게 현대적인 이해를 어렵게 만듭니다. 실제 답변은 새롭고 수년 동안 사용되지 않는 솔루션에 묻혀 있기 때문에 많은 사람들이 단순히 포기하기까지합니다.
JM Becker

1
"vga ="매개 변수는 스퀴즈를 사용할 때 작동합니다. 대체 된 것을 연구하는 대신 쉽고 빠른 수정이기 때문에 제안했습니다. kernel.org/doc/Documentation/kernel-parameters.txt에 "vga ="가 더 이상 사용되지 않는 것으로 표시되지 않습니다. 내가 아는 유일한 이유는 커널이 읽을 수있는 부팅 메시지가 거의 없기 때문이다. 혼란이 뒤 따른다. 우리는 무엇을 믿어야합니까?
aseq

1
그런데 svgalib 사용에 대한 제안은 사용자가 X를 사용하고 싶지 않기 때문에 svgalib의 범인을 이해하지만 다른 옵션은 거의 없습니다.
aseq
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.