간단한 프레임버퍼 테스트 코드인데 에러가 나네요..
글쓴이: hanna / 작성시간: 월, 2005/04/25 - 10:38오후
리눅스 프레임버퍼 프로그래밍 튜토리얼(http://www.sm5sxl.net/~mats/src/unix/graphics/fbtest/framebuffer.html)에 있는 소스 코드를 컴파일하고 실행하는데.. 에러가 나네요.. 머가 문제일지 모르겠습니다.. 참고로 데비안 우디를 사용하고 있고, 처음 부팅할때 펭귄그림 나오면 프레임버퍼를 지원하는 커널이라는데..
#include <unistd.h>
#include <stdio.h>
#include <fcntl.h>
#include <linux/fb.h>
#include <sys/mman.h>
int main()
{
int fbfd = 0;
struct fb_var_screeninfo vinfo;
struct fb_fix_screeninfo finfo;
long int screensize = 0;
char *fbp = 0;
fbfd = open("/dev/fb0", O_RDWR);
if (!fbfd) {
printf("Error: cannot open framebuffer device.\n");
exit(1);
}
printf("The framebuffer device was opened successfully.\n");
if (ioctl(fbfd, FBIOGET_FSCREENINFO, &finfo)) {
printf("Error reading fixed information.\n");
exit(2);
}
if (ioctl(fbfd, FBIOGET_VSCREENINFO, &vinfo)) {
printf("Error reading variable information.\n");
exit(3);
}
screensize = vinfo.xres * vinfo.yres * vinfo.bits_per_pixel / 8;
fbp = (char *)mmap(0, screensize, PROT_READ | PROT_WRITE, MAP_SHARED, fbfd, 0);
[b] if ((int)fbp == -1) {
/* ** 이 부분에서 에러입니다.. ** */
printf("Error: failed to map framebuffer device to memory.\n");
exit(4);
}[/b]
printf("The framebuffer device was mapped to memory successfully.\n");
munmap(fbp, screensize);
close(fbfd);
return 0;
}Forums:


mmap 할당을 못하나 보네요...우선 screensize가 어떠
mmap 할당을 못하나 보네요...
우선 screensize가 어떠한 값이 나오는지 채크해보시고,
mmap 할당해서 사용할 수 있는 권한이 있는지도
확인해보세요...(이를테면 root)
댓글 달기