本文转载自:http://blog.chinaunix.net/uid-25298908-id-120188.html

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

目标平台:SOC3210

一、获取源码包

1、zlib-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/

3、libpng-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

6、DirectFB-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      ——进入根文件系统ramdisk中。ramdisk的制作参考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

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

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        ——把可执行文件mkcramfs和cramfsck拷贝到/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烧写到SOC3210的mtd1分区上。

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

完成后重启,输入命令reboot。

六、在SOC3210上运行测试DirectFB样例

进到SOC3210的文件系统

#cd /usr/directfb/bin

#ls

#./df_andi

显示许多移动的企鹅。

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

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

至此移植完成。

移植DirectFB于SOC3210(龙芯)【转】的更多相关文章

  1. .NET Core 对龙芯的支持情况和对 .NET Core 开发嵌入式的思考

    目录 .NET Core 对龙芯的支持情况和对 .NET Core 开发嵌入式的思考 一,遗憾的尝试 二,.NET Core在嵌入式下的几点不足 三,.NET Core 龙芯移植的进展和资料 .NET ...

  2. 龙芯团队完成CoreCLR MIPS64移植,在github开源

    国产龙芯的软件生态之中.NET不会缺席,毕竟 C# 与 .NetCore/Mono 也是全球几大主流的编程语言和运行平台之一,最近一段时间听到太多的鼓吹政务领域不支持.NET, 大家都明白这是某些人为 ...

  3. 龙芯GO!龙芯平台上构建Go语言环境指南

    龙芯软件生态系列——龙芯GO!龙芯平台上构建Go语言环境指南2016-07-05 龙芯中科1初识Go语言Go语言是Google公司于2009年正式推出的一款开源的编程语言,是由Robert Gries ...

  4. [转帖]龙芯服务器部署WEB服务的体验和详细步骤

    龙芯服务器部署WEB服务的体验和详细步骤 2019年01月02日 18:40:34 weixin_40065369 阅读数 1733   版权声明:本文为博主原创文章,遵循CC 4.0 by-sa版权 ...

  5. 【转贴】龙芯内核发展策略 已经支持k8s

    龙芯内核发展策略 时间:2019-06-27 15:48  来源:未知   作者:龙芯中科   点击:1002次 http://www.loongson.cn/m/view.php?aid=1118 ...

  6. 龙芯软硬件培训个人总结-day2

     今天最后一天,主要培训了BSP,QT,KVM云计算相关的内容.大致总结了一些自己关注的点.培训的资料已上传至服务器,如果需要可关注下方二维码,后台直接回复“资料”获取.关于实战的资料还未导出,等导出 ...

  7. 龙芯开源社区上线.NET主页

    龙芯团队从2019年7 月份开始着手.NET Core的MIPS64支持研发,经过将近一年的研发,在2020年6月18日完成了里程碑性的工作,在github CoreCLR 仓库:https://gi ...

  8. 龙芯 loongnix20 rc2 初体验

    2021-07-24 v0.0.1 版权声明:原创文章,未经博主允许不得转载 3A5000 昨天发布啦,历史上的昨天是中共一大的第一天. 3A5000 的团购还没开始(大概还是3999左右整机的样子) ...

  9. 龙芯发布.NET 6.0.100开发者试用版

    龙芯在龙芯开源社区发布了LoongArch64-.NET-SDK-6.0.100开发者试用版 新闻 ,龙芯.NET基于上游社区 版本 适配支持龙芯平台架构. 目前支持LoongArch64架构和MIP ...

随机推荐

  1. P1418 选点问题

    题目描述 给出n个点,m条边,每个点能控制与其相连的所有的边,要求选出一些点,使得这些点能控制所有的边,并且点数最少.同时,任意一条边不能被两个点控制 输入输出格式 输入格式: 第一行给出两个正整数n ...

  2. Android 微信分享不出去?四步搞定!

    现在做的项目中集成了友盟分享,产品要求集成微信.朋友圈.QQ.QQ空间.短信这几个分享平台.按照友盟的文档集成一切都很顺利,集成成功以后测试QQ.QQ空间.短信都没有问题,唯独微信和朋友圈一直分享不出 ...

  3. Android 解决ScrollView嵌套RecyclerView导致滑动不流畅的问题

    最近做的项目中遇到了ScrollView嵌套RecyclerView,刚写完功能测试,直接卡出翔了,后来通过网上查找资料和 自己的实践,找出了两种方法解决这个问题. 首先来个最简单的方法: recyc ...

  4. JS高级——apply与call

    上下文调用模式 可以修改this的值,也就是可以修改函数的调用方式,apply.call可以修改函数调用上下文,也就是this的值 <script> var name = "莱昂 ...

  5. #2028 Lowest Common Multiple Plus

    http://acm.hdu.edu.cn/showproblem.php?pid=2028 应该是比较简单的一道题啊...求输入的数的最小公倍数. 先用百度来的(老师教的已经不知道跑哪去了)辗转相除 ...

  6. ICMP,ARP协议

    ICMP ICMP是(Internet Control Message Protocol)Internet控制报文协议.它是TCP/IP协议族的一个子协议,用于在IP主机.路由器之间传递控制消息.控制 ...

  7. 如何知道自己的CPU支持SLAT

    因为WP8 SDK发布,很多WP8的开发者们也开始陆续安装WP8的SDK的,然而安装WP8的SDK有很多软件和硬件的要求,其中有一个就是——要求CPU支持二级地址转换(SLAT),如果CPU不支持二级 ...

  8. 让System.Drawing.Bitmap可以在linux运行

    .net core的bitmap使用的是以下类库,但无法在linux运行 https://github.com/CoreCompat/CoreCompat 在linux运行需要安装runtime.li ...

  9. CAD把一个DWG文件中的多个图框一次性全部插入到打开的DWG文件中

    主要用到函数说明: _DMxDrawX::InsertBlock 向控件数据库中插入一个图块,不用它插入匿名块,详细说明如下: 参数 说明 BSTR pszDwgFileName 图块定义的dwg 文 ...

  10. Python os模块和time模块 day4

    一.os模块 print(os.listdir(r'/Users/smh/Desktop/整理'))#os.listdir() 列出某个目录下面的文件夹/文件 print(os.path.isfile ...