kms / drm을 사용하여 Linux에서 비디오 모드를 설정하는 방법은 무엇입니까?


12

Linux에서 비디오 모드를 낮은 수준으로 설정하려면 어떻게해야합니까? 내가 아는 한 사용자 공간에서 가장 낮은 계층은 DRM을 통해 KMS를 요청하는 것입니다. 이 올바른지? 그렇다면 어떻게 모드 스위치와 관련 "비디오 메모리"에 액세스 할 수 있습니까?


km 란 무엇입니까? 지금까지 KSM 또는 모드 전환에 대해 들어 보지 못했습니다.
BЈовић

KMS : Kernel-Mode-Setting link 입니다.

프레임 버퍼 / 콘솔을 의미합니까? 아니면 X11 / Xorg?
penguin359

@ penguin359 둘 중 하나입니다. libdrm을 직접 사용하는 한 가능하다면 X와 fb ... (PS : 바람직하게는 C ++를 통해)

4
@litro 무엇을 달성하려고합니까? 그리고 많은 배포판에서 km는 가능한 경우 자동으로 활성화되며 끄지 않습니다.
xenoterracide

답변:


3

들어 보지 못한 사람들을위한 KMS (커널 모드 설정)는 커널 모드 비디오 드라이버로 가능합니다. 이러한 커널 모드 비디오 드라이버는 기본적으로 연결된 모니터의 기본 해상도 인 프레임 버퍼 디스플레이를 구성합니다. 연결된 모니터가 둘 이상인 경우 각 모니터는 기본 해상도를 가지며 가상 콘솔은 두 모니터의 최소 너비와 높이로 제한됩니다.

KMS를 사용하면 프레임 버퍼가 생성되므로 프레임 버퍼 구성 항목 작동 해야 합니다. KMS 드라이버가 없기 때문에 현재 사용중인 시스템에서이를 확인할 수 없습니다. 하지만 나중에 KMS와 함께 시스템에있을 것이며 알려 드리겠습니다.

자세한 내용 은 프레임 버퍼video = boot up 매개 변수를 사용하여 모드 설정에 대한 커널 설명서 를 참조하십시오.


2

나는 당신이 정말로 당신의 요구를 알고 있는지 확신하지 못한다. ...하지만 최선을 다해 귀하의 질문에 대답하십시오.

모드를 설정하고 '비디오 메모리'를 쓰려고합니까? 이전 dos 모드 X 일처럼? 이것이 원하는 경우, Framebuffer로 프로그래밍해야합니다. 그렇게 말하면 DirectFB로 작업하는 것이 훨씬 좋습니다. DirectFB는 프레임 버퍼에서 가속 기능이있는 매우 얇은 레이어와 같습니다. 수준이 낮고 솔직히 응용 프로그램 작성을 원할 때만 큼 낮습니다. 모드를 설정하고보다 낮은 수준의 스타일로 제어 할 수 있습니다. 직접 스타일을 직접 제어하려면 Framebuffer raw를 작성해야하며 기본적으로 일부 비디오 램이 필요합니다. Framebuffer의 성능이 좋지 않다고 생각되면 스트레스를받을 수 없습니다. DirectFB를 확인하십시오. 누군가 KMS 드라이버를로드 한 경우 프레임 버퍼는 KMS / libdrm을 통해 설정됩니다.

이제 libdrm은 커널 DRM 작업을위한 사용자 공간 라이브러리입니다. 프레임 버퍼가 아니며 응용 프로그램 API가 아니며 시스템 장치 라이브러리입니다. 새 장치 드라이버를 만들려면 libdrm을 사용하는 것이 가장 좋습니다. 예를 들어, libdrm-radeon입니다. Linux는 DOS가 아니며 하드웨어와 직접 통신하는 유일한 방법은 커널을 통하는 것입니다. 모든 일반 응용 프로그램은 코드를 하드웨어로 직접 보내지 않으며 일부 lib / API / call에서 썽크해야합니다. FBUI와 같은 학문적 / 실험적 목적으로 커널 내부 접근 방식을 취한 프로젝트가 있습니다.

적어도 올바른 방향으로 당신을 가리킬 수 있기를 바랍니다. 나는 적어도 두 번의 이주 이전에 대답에 더 가깝지 않은 개념 이래이 질문을 따랐다. 더 많은 정보가 없다면 더 이상 말할 수있는 것이 없습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.