리눅스 프레임버퍼 예제

콘솔 메시지와 시스템 출력을 제거하려면 커널 구성 “CONFIG_FRAMEBUFFER_CONSOLE”을 제거하여 프레임 버퍼 콘솔 지원을 커널에서 완전히 제거할 수 있습니다. 프레임 버퍼 드라이버는 Linux의 중간 계층으로, 사용자 공간 응용 프로그램에서 기본 비디오 장치의 복잡성을 숨깁니다. 사용자 공간의 관점에서 볼 때 디스플레이 장치를 읽기 또는 쓰기 위해 액세스해야 하는 경우 /dev/fb0와 같은 프레임 버퍼 장치만 액세스해야 합니다. 컴퓨터에 두 개 이상의 비디오 카드가 있는 경우 각 카드에 /dev/fb0.와 같은 별도의 장치 노드가 할당됩니다. /dev/fb1.. /dev/fbX(X는 장치의 소수인). framebuffer_virtual_memory: 코드에서 정의되지 는 않지만 실제로는 프레임 버퍼의 가상 메모리 주소입니다. 리소스 주소를 다시 매핑한 후 이 주소를 얻습니다. 다음 코드는 우리가이 주소를 얻는 방법을 보여줍니다: GUI 측면에서, 내가 발견 한 것에서, 사용자 정의 GUI 엔진의 많은 대부분 그냥 함께 비트 맵을 blit, 그리고 X11, 많은 다른 사람과 함께 (“MPlayer, 링크2, 넷서핑, fbida,[2] 및 FIM[3] 및 GGI와 같은 라이브러리 . 일부 대학 수업은 심지어 프레임 버퍼를 엉망으로 라즈베리 파이를 사용, 그리고 아키텍처가 매우 간단하기 때문에 거기에 몇 가지 유용한 독서가있다. 아팔리스 T30에 우리는 불행하게도 VGA는 엔비디아의 테그라 3 SoC에서 지원되지 않기 때문에 기본적으로 프레임 버퍼 콘솔에 대한 HDMI 인터페이스를 사용하고 있습니다. 병렬 RGB로 다시 전환하려면 (예를 들어, LVDS 또는 병렬 RGB 디스플레이를 사용하는 경우) 다음과 같이 진행 : 아래는 SDK가 리눅스 SDK 의 기사에서 설명한 대로 설정되어 가정 카이로를 확인 카이로와 위의 예제 코드를 구축하는 데 사용할 수있는 메이크 파일입니다.

우리는 여기에 하드웨어 관련 주제를 다루지 않았지만 매우 간단한 framebuffer 장치를 만드는 방법을 살펴보았습니다. 그러나 비디오 하드웨어를 담당하는 실제 프레임 버퍼 드라이버로 작업할 때는 프로브 함수의 모든 하드웨어 초기화 루틴을 제공해야 합니다. 당신은 어떤 프레임 버퍼 장치 드라이버의 코드를보고 싶다면, 당신은 리눅스 소스 트리의 드라이버 / 비디오 / fbdev / 폴더에서 찾을 수 있습니다. LittlevGL은 제한된 자원으로 마이크로 컨트롤러를 대상으로 하는 그래픽 라이브러리입니다. 그러나 Linux 작동 시스템을 실행하는 고급 마이크로프로세서 및 보드로 임베디드 GUI를 만드는 데 사용할 수 있습니다. 가장 잘 아는 프로세서 코어는 ARM Cortex A9(예: NXP i.MX6) 및 ARM Cortex A53(예: Raspbery PI 3)입니다. Linux의 프레임 버퍼 장치(일반적으로 /dev/fb0)를 사용하여 이 단일 보드 컴퓨터에 포함된 GUI를 만들 수 있습니다. 당신은 아직 LittlevGL 모르는 경우 여기에 대해 자세히 알아보기: LittlevGL 참고: 당신은 또한 콘솔을 제거하는 경우 = 직렬 콘솔 리눅스에 대한 항목은 다시 프레임 버퍼 콘솔로 대체됩니다. 사용 및 무효 콘솔(예: