arm 4.2.2交叉编译tinyx4.8.0

以下是在我机器上的cross compile 过程:

1.解压缩

tar -zxvf XFree86-4.8.0-src-1.tgz
tar -zxvf XFree86-4.8.0-src-2.tgz
tar -zxvf XFree86-4.8.0-src-3.tgz
tar -zxvf XFree86-4.8.0-src-4.tgz
tar -zxvf XFree86-4.8.0-src-5.tgz
tar -zxvf XFree86-4.8.0-src-6.tgz
tar -zxvf XFree86-4.8.0-src-7.tgz

2.建立目录

cd xc/config/util/
make lndir
cp lndir /usr/local/bin/

和xc在同一个目录下建立一个文件夹
mkdir armtinyx
cd armtinyx
lndir ../xc/

3.建立host.def修改cross.def

最后会贴出来

4.tslib

(1)在host.def中应加入如下语句:
#define TouchScreen YES
#define HasTsLib YES

(2)并将tslib.h文件拷入armtinyx/programs/Xserver/hw/tinyX/linux(解决找不到tslib.h错误)
(3)将交叉编译好的tslib的lib文件夹(几个.so文件)拷贝到交叉编辑环境的arm-linux/lib下(解决ld找不到-lts错误)
注意:编译tslib的交叉编译器必须也要和编译tinyx一样是带软浮点的,不然执行上步会报出浮点不一样的错误
(4)在armtinyx/programs/Xserver/hw/tinyx/tinyx.h文件里添加
#define TOUCHSCREEN

5.修改/armtinyx/lib/X11/Imakefile

#if (BuildServersOnly || !BuildX11Lib) && !XnestServer && !BuildGLXLibrary && !BuildClients && !XdmxServer
修改为
#if (BuildServersOnly || !BuildX11Lib) && !XnestServer && !BuildGLXLibrary && !BuildClients && !XdmxServer && !TinyXServer

6-编译
make World
make install

遇到的问题:

1

#error "Unsupported size of `int' type!"
#error "Unsupported size of `long' type!"


把armtinyx/lib/freetype2/freetype/config/ftconfig.h

#define FT_CHAR_BIT  CHAR_BIT
修改为
#define FT_CHAR_BIT  8

2

编译ucs2any 缺少libXaw.a,libXmu.a 等文件
修改armtinyx/fonts/util/Makefile
765行:DEPLIBS = $(DEPXAWLIB) $(DEPXMULIB) $(DEPXTOOLLIB) $(DEPXLIB)

DEPLIBS = 
如果是第一次编译,要在编译后才会有Makefile文件,
从新编译时会删除掉以前的文件,所以要等到文件被删除了之后又自动生成了的时候再改。

等以后有空测一下~

 

host.def

#define KDriveXServer       YES
#define TinyXServer     YES
#define XfbdevServer        YES
#undef CrossCompiling
#define CrossCompiling      YES
#define XF86Server        NO
#define XnestServer     NO
#define XVirtualFramebufferServer   NO
#define XdmxServer      NO
#define XprtServer      NO
#define BuildFontServer         NO
#define BuildFonts              YES
#define BuildXF86RushExt        NO
#define HasXdmAuth        NO
#define BuildDocs       NO
#define BuildIPv6       NO
#define HasMTRRSupport          NO
#define UseX86Emu               NO
#define XF86INT10_BUILD         X86INT10_STUB
#define XdecMultiDepthServer NO
#define XsunServer            NO
#define Xsun24Server          NO
#define XsunMonoServer        NO
#define XsunLynxServer        NO
#define XSavageServer         NO
#define XIgsServer            NO
#define XTridentServer        NO
#define XchipsServer          NO
#define Xmach64Server         NO
#define Xi810Server           NO
#define XSis530Server         NO
#define XTrioServer           NO
#define XipaqServer           NO
#define XTS300Server          NO
#define XItsyServer           NO
#define XvesaServer           NO
#define XDarwinServer         NO
#define XF86CardDrivers         fbdev
#define XInputDrivers       keyboard    mouse
#define ProjectRoot             /ext/X11R6
#define NothingOutsideProjectRoot   YES
#define BuildServersOnly YES
#define BuildRender             YES
#define UseRgbTxt               YES

#define OmitSnfSupport             YES
#define HasFreetype2        NO
#define HasFontconfig       NO
#define HasLibpng       NO
#define HasZlib         NO
#define HasExpat        NO
#define TouchScreen     YES
#define HasTsLib        YES

cross.def:

 

#if 1
#undef i386Architecture
#define Arm32Architecture

#undef OptimizedCDebugFlags
#define OptimizedCDebugFlags    -O2
#define ServerCDebugFlags       -O2
#undef StandardDefines
#define StandardDefines         -Dlinux -D__arm__ -D_POSIX_SOURCE \
                                -D_BSD_SOURCE -D_GNU_SOURCE -DX_LOCALE
#undef CcCmd
#define StdIncDir /usr/include/linux
#define PreIncDir
#undef PostIncDir
#define PostIncDir /usr/local/arm/4.2.2-eabi/usr/include
#define CcCmd arm-linux-gcc
#undef CplusplusCmd
#define HasCplusplus NO
#define CplusplusCmd 
#define DoRanlibCmd YES
#define RanlibCmd arm-linux-ranlib
#undef ExtraLoadFlags
#define ExtraLoadFlags
#define FbNoPixelAddrCode
#undef TermcapLibrary
#define TermcapLibrary -L/usr/lib -lncurses
#define NCursesLibName -L/usr/lib -lncurses

#undef LdPostLib
#define LdPostLib       -L/usr/local/arm/4.2.2-eabi/lib/

#undef ExtensionOSDefines
#define ExtensionOSDefines

#define ServerXdmcpDefines      /**/

#define HostCcCmd  cc
#endif
#include <cross.rules>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值