KELP에서 이규명님의 임베디드 강좌에서 프레임버퍼 질문입니당~
프레임 버퍼 강좌를 보다가요
http://kelp.or.kr/korweblog/stories.php?story=02/11/09/8557035&topic=29
http://kelp.or.kr/korweblog/stories.php?story=02/11/09/8670820&topic=29
2장보고 있는데..
2장에서 첫번째 소스 컴파일 해서 실행을 할라고 했는데
No Such Device 가 나와요..
소스(긁어옴)
===============================
1 /*
2 * fbinfo.c : Frame buffer information viewer
3 *
4 * Copyright(C) 2002 holelee
5 *
6 */
7 #include <stdio.h>
8 #include <stdlib.h> /* for exit */
9 #include <unistd.h> /* for open/close .. */
10 #include <fcntl.h> /* for O_RDWR */
11 #include <sys/ioctl.h> /* for ioctl */
12 #include <linux/fb.h> /* for fb_var_screeninfo, FBIOGET_VSCREENINFO */
13 #define FBDEVFILE "/dev/fb"
14 int main()
15 {
16 int fbfd;
17 int ret;
18 struct fb_var_screeninfo fbvar;
19 struct fb_fix_screeninfo fbfix;
20 fbfd = open(FBDEVFILE, O_RDWR);
21 if(fbfd < 0)
22 {
23 perror("fbdev open");
24 exit(1);
25 }
26 ret = ioctl(fbfd, FBIOGET_VSCREENINFO, &fbvar);
27 if(ret < 0)
28 {
29 perror("fbdev ioctl(FSCREENINFO)");
30 exit(1);
31 }
32 ret = ioctl(fbfd, FBIOGET_FSCREENINFO, &fbfix);
33 if(ret < 0)
34 {
35 perror("fbdev ioctl(FSCREENINFO)");
36 exit(1);
37 }
38 printf("x-resolution : %d\n", fbvar.xres);
39 printf("y-resolution : %d\n", fbvar.yres);
40 printf("x-resolution(virtual) : %d\n", fbvar.xres_virtual);
41 printf("y-resolution(virtual) : %d\n", fbvar.yres_virtual);
42 printf("bpp : %d\n", fbvar.bits_per_pixel);
43 printf("length of frame buffer memory : %d\n", fbfix.smem_len);
44 close(fbfd);
45 exit(0);
46 return 0;
47 }
===============================
이 것을 모두 타이핑하고 컴파일하여 수행해 보시기 바랍니다.
우선 수행 중에 생길 수 있는 에러 메시지는 다음과 같습니다.
(1) fbdev open: Permission denied
=> root 권한이 없어서 생기는 메시지입니다.
(2) fbdev open: No such device
=> frame buffer driver가 제대로 올라가지 않아서 생기는 에러 메시지입니다.
혹 fbdev ioctl…어쩌구 하는 에러 메시지가 나온다면 그것은 frame buffer driver가 정상적인 동작을 하지 않아서 그런 것 같습니다.
그래서 lsmod 했더니
module size used by
rivafb 35148 0
vgastate 6272 1 rivafb
.... ..... .....
이렇게 되어 있고요
/dev/fb 링크를 보니깐 주넘버가 29번 이길래..
cat /proc/pci 해보니깐
주넘버 29번은 USB Controller 에 있고...
비디오는.. 아래처럼..
....
IRQ 17.
I/O at 0xd000 [0xd0ff]
I/O at 0xcc00 [0xcc3f]
Non-prefetchable 32 bit memory at 0xdffffa00 [0xdffffbff].
Non-prefetchable 32 bit memory at 0xdffff900 [0xdffff9ff].
Bus 1, device 0, function 0:
VGA compatible controller : nVidia Corporation NV17[GeForce4 MX 440-SE](rev163)
.....
주넘버가 0이 나와서요..
예제 소스를 실행을 할 수가 없어영..ㅡㅡ;
디바이스에 대한 개념이 아주 한참 부족한 저로서..
진도가 안나가서 답답해서요..
고수님들께 부탁드립니다...(리눅스 넘어려버용...)
혹시
정확한 에러 메시지를 전부 다 보여주실 수 있으신가요?
글을 보면, 에러 메시지가. [No Such Device]
라는 것 같은데,
글 내용중에
[/dev/fb]
는 있는 것 같네요?
잘은 모르겠지만, 우선
13번 이나 20번에 오타가 있는지 의심이 가구요.
만일 아니라면,
13번의 [dev/fb] 를 , 그냥 [/dev/fb0]로 해 보세요.
또, 만일 desktop에서 하고 계신다면,
부팅 할 때 framebuffer consol모드(정확한 명칭은 모릅니다만, 저 단어로 검색해 보세요)로 띄워서, framebuffer 가 활성화 되도록 해 보시죠.
그래도 안되심.... 고수님들의 답변을 기둘리심이... -_-;
덧글 : 왜 전 [~삼] 하는 말투가 반말로 느껴질까요. 저만 그런가...-_-;;;;;
Re: 혹시
아마도 나이 탓인듯 합니다만 :twisted:
------------------ P.S. --------------
지식은 오픈해서 검증받아야 산지식이된다고 동네 아저씨가 그러더라.
댓글 달기