在ubuntu server 12.04上运行ltib

    因为工作的关系需要用到ltib,但是现在的版本只能在ubuntu9.04上运行,freescale手册也明确的告诉我对多支持到11.10,不过后来经过努力还是成功运行在12.04server上了。总的来说安装过程还是比较麻烦的,但是一次解决后不存在后期使用的问题。

 

1.首先是准备环境:

修改visudo(ltib会提示)

jingyang ALL = NOPASSWD: /bin/rpm, /opt/freescale/ltib/usr/bin/rpm

安装依赖包

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 dpkg

对于server版用户来说,只安装这些就足够,但是要仔细检查安装是否成功,否则会影响以后的安装。

 

2.执行./ltib -m config时遇到第一次报错:
    zlib    0  not installed

这是环境检查错误,没有找到zlib。虽然我们已经安装过zlib1g,但是ltib检查的是/lib/libz.so(12.04把GNU库都整理到/lib/i386-linux-gnu/),所以只需要从/lib/i386-linux-gnu/libz.so.1链过去,后面还有这类问题也是按照这个方法解决。

 

 3.编译工具lkc-1.4错误:

 提示信息
 gcc  -lncurses mconf.o zconf.tab.o lxdialog/lxdialog.a -o mconf
 lxdialog/lxdialog.a(checklist.o): In function `print_item':
 checklist.c:(.text+0x2e): undefined reference to `wmove'
 checklist.c:(.text+0x4a): undefined reference to `waddch'
 checklist.c:(.text+0x73): undefined reference to `wmove'
 checklist.c:(.text+0xc4): undefined reference to `wprintw'
 checklist.c:(.text+0xef): undefined reference to `wprintw'

这个问题看似是少安装了ncurses库,其实是lkc的makefile有问题,这里使用freescale社区的解决方法

https://community.freescale.com/servlet/JiveServlet/downloadBody/93454-102-3-2834/ubuntu-ltib-patch.tgz

帖子地址:https://community.freescale.com/thread/117194

这个patch修正了lkc和sparse两个问题,所以建议使用。

打过补丁删除/opt/freescale/ltib/usr/src/rpm/BUILD/lkc-1.4继续

 

4.找不到types.h,问题和找不到zlib一样,从/usr/include/i386-linux-gnu/sys/types.h连接过去就行

再次删除lkc然后继续。

 

4.这个时候应该可以看到menuconfig界面了,远程终端显示问题就改一下终端模式为xterm。

 

5.配置完开始正式编译前还有一个问题要解决,如果直接编译会看到这个错误

/opt/freescale/usr/local/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin/../lib/gcc/arm-fsl-linux-gnueabi/4.6.2/../../../../arm-fsl-linux-gnueabi/bin/ld: cannot find /lib/libc.so.6
/opt/freescale/usr/local/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin/../lib/gcc/arm-fsl-linux-gnueabi/4.6.2/../../../../arm-fsl-linux-gnueabi/bin/ld: cannot find /usr/lib/libc_nonshared.a
/opt/freescale/usr/local/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin/../lib/gcc/arm-fsl-linux-gnueabi/4.6.2/../../../../arm-fsl-linux-gnueabi/bin/ld: cannot find /lib/ld-linux.so.3

这个错误看似又是找不到目标板库文件,但检查后发现库在,cat ltib/rootfs/usr/lib/libc.so看到里面其实只是是路径,问题是原因是生成这些文件时脚本使用了file命令

    @ARGV = grep { `file $_` =~ m,ASCII C program text, } @ARGV;
    exit(0) unless @ARGV;
    $^I = ".bak";
    while(<>) {
        s,[\S/]+/,,g if m,^GROUP,;
        print;
    }

解决的办法是卸载file命令,重新安装file-4.26.tar

http://pkgs.fedoraproject.org/repo/pkgs/file/file-4.26.tar.gz/74cd5466416136da30a4e69f74dbc7a0/file-4.26.tar.gz

安装后测试

file rootfs/usr/lib/libc.so

ASCII C program text

识别出这个说明成功。

 

到这里可以开始编译目标板文件了。如果执行了所有步骤任然无法通过编译,可以尝试完全卸载ltib,然后重新安装。

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值