免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1160 | 回复: 0
打印 上一主题 下一主题

移植DirectFB于SOC3210(龙芯) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-02-15 14:02 |只看该作者 |倒序浏览

编译平台:龙芯、中标普华Linux桌面5

目标平台:SOC3210

一、获取源码包

1zlib-1.2.5.tar.bz2

http://sourceforge.net/projects/libpng/files/zlib/1.2.5/zlib-1.2.5.tar.bz2/download

2、freetype‐2.3.5.tar.bz2

http://download.savannah.gnu.org/releases/freetype/

3libpng-1.2.40.tar.bz2

http://sourceforge.net/projects/libpng/files/libpng12/older-releases/1.2.4 0/libpng-1.2.40.tar.bz2/download

4、jpegsrc.v6b.tar.gz

http://dir.filewatcher.com/d/GNU/Other/jpegsrc.v6b.tar.gz.613261.html

5、DirectFB-1.3.0.tar.gz

http://directfb.org/index.php?path=Main%2FDownloads&page=0

6DirectFB-examples-1.2.0.tar.gz

http://directfb.org/index.php?path=Main%2FDownloads&page=1

二、交叉编译与安装步骤

1、设置编译安装所需环境变量

$mkdir /usr/directfb ——创建安装目录

$export PREFIX=/usr/directfb ——设置安装路径

$export LDFLAGS=-L$PREFIX/lib  ——设置库文件路径

$export CFLAGS="-g -I$PREFIX/include"  ——设置头文件路径

$export CPPFLAGS="-g -I$PREFIX/include" ——设置头文件路径

$export PKG_CONFIG_PATH=$PREFIX/lib/pkgconfig ——设置配置信息文件路径

$mkdir /usr/directfb/include /usr/directfb/lib /usr/directfb/bin /usr/directfb/man /usr/directfb/man/man1 ——创建下列编译安装所需目录

2、编译安装zlib-1.2.5

$tar jxvf zlib-1.2.5.tar.bz2 

$cd zlib-1.2.5

$./configure  --prefix=$PREFIX 

$make

$make install

3、编译安装freetype‐2.3.5

$tar jxvf freetype‐2.3.5.tar.bz2

$cd freetype‐2.3.5

$./configure  --prefix=$PREFIX

$make

$make install

4编译安装libpng-1.2.40

$tar jxvf libpng-1.2.40.tar.bz2

$cd libpng-1.2.40

$./configure  --prefix=$PREFIX

$make

$make install

5、编译安装jpegsrc.v6b

$tar zxvf jpegsrc.v6b.tar.gz

$cd jpeg-6b

$./configure  --prefix=$PREFIX  --enable-shared

$make

$make install

6、编译安装DirectFB-1.3.0

$tar zxvf DirectFB-1.3.0.tar.gz

$cd DirectFB-1.3.0

$./configure  --prefix=$PREFIX 

$make

$make install

7、编译安装DirectFB样例DirectFB-examples-1.2.0

$tar zxvf DirectFB-examples-1.2.0.tar.gz

$cd DirectFB-examples-1.2.0

$./configure  --prefix=$PREFIX

$make

$make install

DirectFB与样例交叉编译完成。

三、本机运行测试

本机的硬件与软件平台与SOC3210是相同的,可以于本机先行运行测试。

$cd DirectFB-examples-1.2.0/src  或  cd /usr/directfb/bin

$ls

$./df_andi

全屏显示许多移动的企鹅。

类似运行测试其他例子,稳定通过。

四、制作文件系统

参考SOC3210的《制作ramdisk文件系统》的制作

1、busybox-1.1.0 ——制作根文件系统的工具

$tar jxvf busybox-1.1.0.tar.bz2

$cd busybox-1.1.0

$make menuconfig

出错提示:

>> Unable to find the Ncurses libraries. 

>> 

>> You must have Ncurses installed in order 

>> to use 'make menuconfig' 

2、安装ncurses-5.7

$tar zxvf  ncurses-5.7.tar.gz

$cd ncurses-5.7

$./configure --with-shared --with-normal   --with-libtool --enable-overwrite

$make

$make install

3、可以进入busybox-1.1.0

$make menuconfig

——进行配置

4、根据SOC3210的《制作ramdisk文件系统》步骤制作。

最后把"_install"目录改名为"ramdisk"

$mv _install ramdisk$cd ramdisk      ——进入根文件系统ramdiskramdisk的制作参考SOC3210文档

5、修改根文件系统

$cd ramdisk      ——进入根文件系统ramdisk

$cp /usr/directfb usr    ——必须把交叉编译后的directfb放于此目录,因为DirectFB编译时 已经把这个目录编译到程序中,无法后期设置。

$vi etc/profile

export LD_LIBRARY_PATH=/lib:/usr/lib改为:

  export LD_LIBRARY_PATH=/lib:/usr/lib:/usr/directfb/lib

——设置directfb程序所需库文件路径

否则SOC3210运行会报错,如error while loading shared libraries: libdirectfb-1.3.so.0

保存退出。

$mknod dev/fb0 c 29 0

——创建frame buffer的设备文件

否则SOC3210运行报错:

(!) DirectFB/FBDev: Error opening '/dev/fb0'!

     --> No such file or directory

(!) DirectFB/Core: Could not initialize 'system_core' core!

--> File not found!

$cd dev

$ln -s console tty0

——链接终端

否则SOC3210运行报错:

(!) DirectFB/core/vt: Couldn't open neither `/dev/tty0' nor `/dev/vc/0'!

     --> No such file or directory

(!) DirectFB/Core: Could not initialize 'system_core' core!

--> Initialization error!

$cd .. ——退到上一层

$vi usr/directfb/etc/directfbrc

directfbrcdirectfb程序运行时的配置文件。其具体参数可以参考:

http://www.directfb.org/docs/directfbrc.5.html

http://blog.chinaunix.net/u3/104335/showart_2061486.html

或者在终端上查看$man directfbrc

改为:

system = fbdev ——设定使用的图形系统linux frame buffer

fbdev = /dev/fb0 ——打开设定的frame buffer (/dev/fb0

wm = default ——设定窗口管理层,默认default(0)

mode = 320x240 ——设定默认的屏幕显示320x240

depth = 16 ——使用二进制位数设置每像素默认的像素深度16

pixelformat = RGB16 ——设置默认的像素格式

mouse-protocol = IMPS/2 ——为一个串口鼠标指定使用的协议

bg-color = 00FFFF ——控制背景的颜色

no-vt ——取消虚拟终端

保存退出。

6、cramfs-1.1   ——制作cramfs格式文件系统的工具

$tar zxvf cramfs-1.1.tar.gz

$cd cramfs-1.1

$make

$cp mkcramfs cramfsck  /bin        ——把可执行文件mkcramfscramfsck拷贝到/bin

7、制作cramfs格式文件系统

$cd .. ——退到上一层

$mkcramfs  ramdisk  ramdisk-cramfs.img

文件系统制作完成,得到文件系统的镜像文件ramdisk-cramfs.img

五、烧写文件系统到SOC3210

SOC3210上电。

SecureCRT终端中

PMON> set append 'g root=/dev/mtdblock1 rootfstype=cramfs noinitrd init=/linuxrc console=ttyS0,115200 display=truly320'

——设置启动参数

PMON> devcp  tftp://192.168.3.113/ramdisk-cramfs.img  /dev/mtd1

——通过tftp文件系统镜像文件ramdisk-cramfs.img烧写到SOC3210mtd1分区上。

关于TFTP的使用参考《Ubuntu-10.04下安装与使用TFTP

完成后重启,输入命令reboot

六、SOC3210运行测试DirectFB样例

进到SOC3210的文件系统

#cd /usr/directfb/bin

#ls

#./df_andi

显示许多移动的企鹅。

类似运行测试其他例子,稳定通过。

重启SOC3210,再运行测试,稳定通过。

至此移植完成

  

                                                                 ai011h

                                                               2011-02-15

 

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP