이 하드웨어가 실제로 어떻게 작동하는지에 대한 배경은 거의 없지만 이제는 Android 장치 용 Linux 프레임 버퍼 드라이버를 작성하는 방법을 배워야합니다.리눅스 프레임 버퍼 드라이버는 비디오 카드 드라이버입니까?
저는 리눅스 그래픽 스택에 혼란 스럽습니다. 필자가 이해하는 바에 따르면 데스크톱 컴퓨터에서 합성 윈도우 관리자는 DRM
과 상호 작용하여 특정 비디오 카드 드라이버에 데이터를 보냅니다. 반면에 어떤 종류의 컨트롤러가 GPU's
메모리에서 DMA
을 통해 검색하고 응답 here에서 제안한대로 모니터로 보냅니다. page 29
this 책의 다이어그램으로도 프레임 버퍼 드라이버가 실제 그래픽 장치 위에 있기 때문에 특정 비디오 카드 드라이버 (예 : nVidia
드라이버)와 상호 작용해야 할 필요가 있다고 생각했습니다.
하지만 임베디드 장치 용 프레임 버퍼 드라이버를 작성할 때 드라이버가 LCD
과 직접 접촉하는 것처럼 비디오 카드 드라이버 아래에있는 것처럼 보입니다.
프레임 버퍼 드라이버는 실제로 비디오 카드 드라이버입니까?
, 감사 :
포괄적 인 이야기 마틴 Fiedler는에 의해 신화화 리눅스 그래픽에 대한 자세한 내용을 확인할 수 있습니다. 따라서 프레임 버퍼 드라이버는 GPU 드라이버가 적고 nVidia 카드조차도 이러한 종류의 드라이버를 사용할 수있는 공통 인터페이스가 있어야합니다. 단, 이러한 카드의 3D 가속 기능은 어두운 비밀입니다. 또한 이것은 LCD가 내장 된 장치에도 적용됩니다. 즉 프레임 버퍼 드라이버가 LCD의 IC를 제어하지 않지만 SoC의 GPU를 제어합니까? –
KMS + fb를 제공하는 nvidia 카드 용 리버스 엔지니어링 '누보 (nouveau)'드라이버가 있지만 제한적이고 종종 불안정한 방식으로 3d 가속도가 있습니다.앞에서 언급했듯이 VESA가 가장 눈에 띄는 공용 인터페이스는 거의 없습니다. 임베디드 장치에서는 전용 GPU가 없을 수도 있습니다. LCD 컨트롤러와 직접 대화하는 드라이버의 예는 https://github.com/notro/fbtft/wiki를 참조하십시오. – ypnos