主题 : mini2410平台下opengl&SDL开发环境搭建心得记录及问题咨询 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 17733
精华: 0
发帖: 10
金钱: 50 两
威望: 10 点
贡献值: 0 点
综合积分: 20 分
注册时间: 2010-04-01
最后登录: 2010-08-05
楼主  发表于: 2010-07-13 09:03

 mini2410平台下opengl&SDL开发环境搭建心得记录及问题咨询

开发平台:友善之臂micro2440开发板+Fedora9  
主机操作系统内核版本:2.6.25-14-fc9-i686
参考文献:(1)清秋梧桐  日志:“opengl&SDL” http://qqwt.blog.sohu.com/91060365.html
资料准备:picogl-20051108.tar;SDL-1.2.14.tar;arm-softfloat-linux.tar


1)    参照开发板说明书第5.3节,建立交叉编译环境
2)    参照开发板说明书第5.4节,解压安装源代码及其他工具
3)    将arm-softfloat-linux.tar解压到根目录下;
tar xvf arm-softfloat-linux-gcc-3.4.5.tar.bz2 -C /
说明:
a)    按照开发板说明书,所建立的交叉编译器版本为arm-linux-gcc-4.3.2;该版本编译器只支持矢量浮点,不支持软浮点。
b)    本次实验所采用的方法是:直接解压安装从网上下载来的交叉编译器;当然也可以按照参考文献中所述方法自己编译
4)    解压缩picogl,修改picogl的代码;具体如何修改代码参见参考文献
说明:
a)    本次实验中,picogl的目录为:/root/arm_Stu/opengl/PicoGL
b)    参考文献中提到:“为了让你的程序使用picogl更方便些,最好再改个地方include/GL/glx.h    #include GLX_IMPL_HEADER改为你喜欢的方式,指向backends/vesafb/glx_impl.h”
不是非常理解其中的意思,此处未作修改;
c)    修改LCD的配置,参照/opt/FriendlyARM/mini2440/linux-2.6.32.2/arch/arm/mach-s3c2440/mach-mini2440.c
5)    加入系统环境变量,运行命令gedit /root/.bashrc;添加如下内容
export PATH=$PATH:/usr/local/arm/4.3.2/bin:/usr/local/arm/gcc-3.4.5-glibc-2.3.6/arm-softfloat-linux/bin/:/opt/libSDL/bin
6)    配置,进入PicoGL目录
# cd PicoGL
#./configure --with-backend=vesafb --host=arm-softfloat-linux --prefix=/root/arm_Stu/opengl/builtPicoGL
7)    make;make_install
8)    在/root/arm_Stu/opengl/builtPicoGL /lib里就有PicoGL的库了,把动态库文件拷贝到arm-linux根文件系统的/lib里面,把/root/arm_Stu/opengl/builtPicoGL /bin里的程序拷贝到arm-linux文件系统的任何地方
9)    重新制作自己的文件系统,并将该文件系统安装到开发板上;
10)    将SDL-1.2.14.tar压缩文件拷贝到/root/arm_Stu/opengl/目录,并解压。解压后目录为SDL-1.2.14
11)    进入SDL-1.2.14目录,运行:   ./configure --disable-video-qtopia --disable-video-dummy --disable-video-fbcon --disable-video-dga --disable-arts --disable-esd --disable-alsa --disable-cdrom --disable-video-x11 --disable-nasm --target=arm-linux --host=arm-linux --enable-video-fbcon
注意:此处和参考文献(1)的内容有所不同;如果按照该参考文献的命令,则会出现提示SDL不支持视频的错误提示
12)    make,make_ install
13)    这时会在/usr/local/include中出现SDL文件夹 ,同时出现/usr/local/lib文件夹

将/root/arm_Stu/opengl/ SDL-1.2.14/test/testalpha.c 文件拷贝到你的程序目录 /usr/work/test
修改testalpha.c文件
#ifdef _WIN32_WCE
    /* Pocket PC */
    w = 240;
    h = 320;
#else
    w = 640;
    h = 480;
#endif
改为:
#ifdef _WIN32_WCE
    /* Pocket PC */
    w = 240;
    h = 320;
#else
    w = 640;
    h = 480;
#endif


运行
arm-linux-gcc -o test test.c -I/usr/local/include/SDL/ -L/usr/local/lib/ -lSDL
生成 test可执行文件
14)将该test文件,以及/root/arm_Stu/opengl/ SDL-1.2.14/test目录中icon.bmp直接下载到开发板某一目录下(我是下载到根目录)

以下操作与开发板相关:
15)打开串口终端,我用的是secureCRT
16)将开发板设为nand flash启动 打开开发板电源
17)在控制台上运行:chmod 555 test
18)export LD_LIBRARY_PATH=/usr/local/lib
19)./test
现在就可以在屏幕上看到结果了!

但是在编译测试哦testgl.c文件后,当下到开发板中后,会提示“"No OpenGL support on this system”;想请问一下这是什么问题?

Testgl.c文件的基本流程如下:
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <math.h>

#include "SDL.h"

#ifdef __MACOS__
#define HAVE_OPENGL
#endif

#ifdef HAVE_OPENGL
#include "SDL_opengl.h"
        ...
        ...
        ...
#else /* HAVE_OPENGL */

int main(int argc, char *argv[])
{
    printf("No OpenGL support on this system\n");
    return 1;
}

#endif /* HAVE_OPENGL */    
[ 此帖被kasim在2010-07-13 15:28重新编辑 ]
自由,自强,共享,共创。
级别: 论坛版主
UID: 12573
精华: 27
发帖: 8838
金钱: 46490 两
威望: 9298 点
贡献值: 27 点
综合积分: 18216 分
注册时间: 2010-01-09
最后登录: 2019-07-16
1楼  发表于: 2010-07-13 10:35
似乎opengl需要硬件的支持才可以
新手如何向我们反馈有效的信息,以便解决问题,见此贴:
http://www.arm9home.net/read.php?tid-14431.html

[注]: 此处签名链接仅为指引方向,而非解答问题本身.
*無鈳取玳
级别: 论坛版主
UID: 27
精华: 12
发帖: 5398
金钱: 40120 两
威望: 17929 点
贡献值: 71 点
综合积分: 11036 分
注册时间: 2008-01-16
最后登录: 2014-11-22
2楼  发表于: 2010-07-13 15:26
#else /* HAVE_OPENGL */

int main(int argc, char *argv[])
{
    printf("No OpenGL support on this system\n");

看起来是SDL在配置过程中找不到OpenGL的库实现,HAVE_OPENGL看起来是根据OpenGL库检测结果来定义的。
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."
级别: 新手上路
UID: 17733
精华: 0
发帖: 10
金钱: 50 两
威望: 10 点
贡献值: 0 点
综合积分: 20 分
注册时间: 2010-04-01
最后登录: 2010-08-05
3楼  发表于: 2010-07-14 08:23
看来还是这里高手多!

在制作文件系统时,我已经将所有生成的PicoGL的库拷过去了啊
我怀疑是这句:
#ifdef __MACOS__
#define HAVE_OPENGL
#endif

__MACOS__是什么东西?看似是苹果操作系统的一个名称?
级别: 侠客
UID: 6350
精华: 2
发帖: 110
金钱: 895 两
威望: 486 点
贡献值: 2 点
综合积分: 260 分
注册时间: 2009-05-29
最后登录: 2016-10-11
4楼  发表于: 2010-07-14 15:05
顶,以前在E680上实现过SDL+PicoGL,只是速度奇慢。。。
级别: 新手上路
UID: 50337
精华: 0
发帖: 1
金钱: 5 两
威望: 1 点
贡献值: 0 点
综合积分: 2 分
注册时间: 2011-06-21
最后登录: 2011-06-21
5楼  发表于: 2011-06-21 16:39
哈哈,看到了,我也有相同的问题,希望高手出来解决一下,谢谢!!!!!