내가 지정한 메모리 주소 공간을 /dev/fb0에 매핑하는 Linux 드라이버를 작성하고 싶습니다.
드라이버는 Linux의 어느 부분에서 지정해야 합니까? drm이나 프레임버퍼, serverX 같은 거요? 내 드라이버에는 어떤 속성이 있어야 합니까?
답변1
드라이버는 Linux 커널 모듈입니다.
Linux 커널의 소스 코드를 다운로드하고 기존 프레임 버퍼 드라이버 코드를 살펴보세요 drivers/video/fbdev
(github여기) 그리고 Documentation/fb
(깃허브). Google에서 커널 모듈을 작성하고 간단한 모듈을 연습하는 방법에 대한 튜토리얼을 찾아보세요.
단지 메모리를 매핑하는 것만으로는 충분하지 않습니다. 뭔가를 구현해야 합니다 ioctl
.
커널 드라이버를 작성하는 것은 쉽지 않습니다. 이런 종류의 질문을 꼭 해야 한다면(지난 며칠 동안 많이 물어봤지만) 아마도 그렇게 할 수 없을 것입니다.
X는 X 프로토콜용 서버입니다. DRM 커널 모듈이나 프레임버퍼 드라이버( fbdev
X 드라이버 사용)를 통해 하드웨어를 사용할 수 있습니다 . 자세한 내용은 Google 온라인에서 쉽게 찾을 수 있습니다. /dev/fb0
프레임버퍼 장치이므로 X나 DRM에 대해 걱정할 필요가 없습니다.