最近准备开始arm9的开发项目,当然首先要建立其开发环境这里就是建立开发环境的记录。
1、从freescale官方网站下载L2.6.35_10.12.01_SDK_source_bundle.tar.gz这里包括了完整的开发所需要的源代码
2、在ubuntu上建立一个工作目录work并将软件解压缩到这里
3、解压缩里面的L2.6.35_10.12.01_SDK_source.tar.gz文件
4、按官方的ltib_build_host_setup.pdf文件安装
sudo aptitude -y install gettext libgtk2.0-dev rpm bison m4 libfreetype6-dev
sudo aptitude -y install libdbus-glib-1-dev liborbit2-dev intltool
sudo aptitude -y install ccache ncurses-dev zlib1g zlib1g-dev gcc g++ libtool
sudo aptitude -y install uuid-dev liblzo2-dev
sudo aptitude -y install tcl
5、运行./install脚本这里安装包会做一些配置工作
安装注意事项:
安装ncurses会提示错误,这里要安装libncurses-dev
另外还需要修改yes/ltib/bin/Ltibutils.pm文件第583行将
glob('/usr/lib/libz.so*;), 修改为 glob('/usr/lib/i386-linux-gnu/libz.so*'),
glob('/lib/libz.so*'), 修改为 glob('/lib/i386-linux-gnu/libz.so*'),
将第563行的
sub { -f '/usr/lib/libm.so' || -f '/usr/lib64/libz.so'}, 修改为 sub { -f '/usr/lib/i386-linux-gnu/libm.so' || -f '/usr/lib64/libz.so'},
还需要修改ltib文件的2388行删除--force-debian参数,这里rpm不认识这个指令会报错误
6、此时可以运行./ltib脚本不过此时还遇到了一个问题在编译lxdialog时遇到编译错误明显是ncurses的问题该问题的主要原因是-lncurses选型没有生效,修改如下:
将lkc-1.4-lxdialog.patch里面的3112行的
mconf_LIBS= -lncurses
mconf: $(mconf_OBJ) $(lxdialog_LIB)
$(CC) $(LDFLAGS) $(mconf_LIBS) $^ -o S@
修改为
mconf_LIBS=
mconf: $(mconf_OBJ) $(lxdialog_LIB)
$(CC) $(LDFLAGS) $(mconf_LIBS) $^ -o S@ -lncurses
如此编译可以继续
编译mtd-utils时遇到了mtd_utils编译错误解决方法如下
/opt/freescale/pkgs/mtd-utils/ubi-utils/old-utils/src
目录下的error.c第72行需要将77与83行注释掉
修改/opt/freescale/pkgs/mtd-utils/ubi-utils/old-utils/src目录下的
pfi2bin.c 320行处理ret变量
libubigen.c文件中的240行处理不正确的++语法
这里处理时需要先将压缩包解压缩修改后再重新打包
/opt/freescale/pkgs/sparse-0.4
parse.h文件中63行注释掉否则会提示重复定义
这里处理时需要先将压缩包解压缩修改后再重新打包
/home/llemmx/work/L2.6.35_10.12.01_ER_source/yes/ltib/dist/lfs-5.1/mux_server
目录下mux_server.spec文件的25行修改为mux_server.c -o mux_server -lpthread
另外还需要将/usr/include目录下运行一下命令
cd /usr/include
sudo ln -sf i386-linux-gnu/sys ./sys
7、经过以上修改ltib应该能够正常编译并且生成对应的内核文件,详细步骤参考LTIB_for_i.MX28__a_step-by-step_guide.pdf