Blackrose's Blog Blackrose's Blog

arm9上运行disko

in technologyread (357) 文章转载请注明来源!

由于工作需要用到一个GUI框架,部门的头扔过来一个disko,所以就开始了下面的内容。
公司用的是cortexA9的板子,已经移植好了。我自己有个micro2440的板子,所以就想在我的板子上也跑下。
如果不了解disko,就去官网看吧,我这里就不多说了。
http://www.diskohq.com/
官网上给出了一些信息,我来做一些补充。下面是官网给出的移植disko所需要的包:
disko required packages
g++
pkg-config
scons
libsigc++
libxml2 - minimal version 2.6
libpng - minimal version 1.2
freetype2

其中pkg-config是用来管理系统中库和头文件,scons是个构建工件,类似于make。
下面是包的依赖关系:
libxml2 --- depends on zlib
freetype --- depends on zlib
libpng --- depends on zlib
libcurl --- depends on zlib and openssl

知道这个后,就可以开始移植了
libpng-1.2.46.tar.gz
openssl-1.0.0d.tar.gz
curl-7.23.1.tar.bz2
libsigc++-2.2.10.tar.bz2
sqlite-src-3070500.zip
freetype-2.4.8.tar.bz2
libxml2-sources-2.7.8.tar.gz
zlib-1.2.5.tar.bz2
上面是我在移植的时候,各个软件的版本,大家可以参考下哦。

准备工作:
cd ~
mkdir disko-arm
cd disko-arm
mkdir source
这样做的目的是我们的所有库和头文件都在disko-arm下,方便使用。下载好的源码包在source目录下。

以下操作均在source目录下进行,我在编译的时候是把下面的命令都写在了shell脚本中,大家也可以自己手动输入。

1.compile sigc++
export CC=arm-linux-gcc
export HOST_DIR=/home/blackrose/disko-arm
./configure --prefix=${HOST_DIR} --with-gnu-ld --host=arm-linux
make
make install

2. compile zlib
export CC=arm-linux-gcc
export HOST_DIR=/home/blackrose/disko-arm
./configure --prefix=${HOST_DIR}
make
make install

3. compile openssl
export CC=arm-linux-gcc
export HOST_DIR=/home/blackrose/disko-arm
./Configure --prefix=${HOST_DIR} os/compiler:arm-linux-gcc
make
make install

4. compile libxml2
export CC=arm-linux-gcc
export HOST_DIR=/home/blackrose/disko-arm
./configure --prefix=${HOST_DIR} --with-gnu-ld --host=arm-linux \ --without-python --without-readline --with-zlib=${HOST_DIR}
make
make install

5. compile freetype
export CC=arm-linux-gcc
export CXX=arm-linux-g++
export HOST_DIR=/home/blackrose/disko-arm
./configure --prefix=${HOST_DIR} --with-gnu-ld --host=arm-linux
make
make install

6. compile libpng
export CC=arm-linux-gcc
export HOST_DIR=/home/blackrose/disko-arm
./configure --prefix=${HOST_DIR} --with-gnu-ld --host=arm-linux
make
make install

7. compile libcurl
export CC=arm-linux-gcc
export HOST_DIR=/home/blackrose/disko-arm
./configure --prefix=${HOST_DIR} --with-gnu-ld --host=arm-none-linux-gnueabi \
--disable-http --disable-ftp --disable-file --disable-ldap --disable-rts p \
--disable-proxy --disable-dict --disable-telnet --disable-tftp --disable -pop3 \
--disable-imap --disable-smtp --disable-sspi --disable-crypto-auth --dis able-cookies \
--without-ldap-lib --without-lber-lib --without-krb4 --without-spnego \
--without-gssapi --with-ssl --with-zlib=${HOST_DIR} \
--without-gnutls --without-polarssl --without-nss --without-ca-bundle \
--without-libssh2 --without-librtmp --without-libidn
make
make install

8. compile sqlie
export CC=arm-linux-gcc
export HOST_DIR=/home/blackrose/disko-arm
./configure --prefix=${HOST_DIR} --with-gnu-ld --host=arm-linux
make
make install

9. compile disko
编译之前要设置好以下变量
export CC=arm-linux-gcc
export CXX=arm-linux-g++
export PKG_CONFIG_PATH=/home/blackrose/disko-arm/lib/pkgconfig:/usr/lib/pkgconfig:$PKG_CONFIG_PATH
export LD_LIBRARY_PATH=/home/blackrose/disko-arm/lib:/usr/lib:$LD_LIBRARY_PATH

下载disko代码:
git clone git://www.diskohq.org/disko.git

disko使用的是scons做为构建工具,所以要先安装好scons
cd disko
scons -h
这时候会出现scons的配置选项,根据需求裁减即可。这里要说下的是,输入的选项,会保存在disko.conf这个文件中,所以你可以先写到disko.conf中,这样直接执行scons就可以了。顺便提下,scons的脚本是用python写的,可惜我不会python。

下面是我的disko.conf文件中的内容,可以做为参考。
prefix = '/home/blackrose/disko-arm/disko'
debug = True
cross = True
graphics_backend = 'fbdev'
graphics_outputtype = 'stdfb'
pixelformats = 'all'
media = 'none'
images = 'all'
enable_alsa = False

scons
scons install

文章二维码

扫描二维码,在手机上阅读!

发表新评论
仅有 1 条评论
  1. 77
    77
    回复

    顶你。 这个project真是有意思。 什么时候空了,我就把这个也移植到我的小板子上。 (我拿到了一个 mini 2440 的)

博客已萌萌哒运行
© 2018 由 Typecho 强力驱动.Theme by Yodu
前篇 后篇
雷姆
拉姆