Chinaunix首页 | 论坛 | 博客
  • 博客访问: 493018
  • 博文数量: 154
  • 博客积分: 746
  • 博客等级: 入伍新兵
  • 技术积分: 1129
  • 用 户 组: 普通用户
  • 注册时间: 2011-05-20 09:20
个人简介

此生既入苦寒山,何妨再攀险峰!

文章分类

全部博文(154)

文章存档

2017年(1)

2016年(2)

2015年(25)

2014年(24)

2013年(8)

2012年(15)

2011年(79)

分类: LINUX

2014-07-27 22:29:52

                    转载请注明原创地址:http://blog.chinaunix.net/uid-25847519-id-4377577.html
一、交叉编译安装

    1、解压交叉编译工具:
        sudo tar -jxvf arm-2009q3-67-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 -C /opt/
    2、配置系统设置:
        在/etc/profile文件里面添加交叉编译工具链路径:
        vim /etc/profile
        加上 export PATH=$PATH:/opt/arm-2009q3/bin/  再把之前的交叉编译屏蔽
 遇到问题说明请见下面链接:

   blog.chinaunix.net/uid-25847519-id-4444238.html


    
二、内核编译操作:
1、解压 kernel_V1.0.05.tar.gz 内核包
    tar -zxf kernel_V1.0.05.tar.gz 得到kernel文件目录
2、编译内核
     cd kernel
     cp arch/arm/configs/aimer39_ak3918_defconfig .config
     make menuconfig
     make zImage
或者:

    mkdir build-39

    cd kernel
    make  O=../build-39  aimer39_ak3918_defconfig
     make  O=../build-39 menuconfig
    make j=4
 
出现:
LD      vmlinux
SYSMAP  System.map
SYSMAP  .tmp_System.map
OBJCOPY arch/arm/boot/Image
Kernel: arch/arm/boot/Image is ready
AS      arch/arm/boot/compressed/head.o
LZO     arch/arm/boot/compressed/piggy.lzo
/bin/sh: 1: lzop: not found
make[2]: *** [arch/arm/boot/compressed/piggy.lzo] 错误 1
make[1]: *** [arch/arm/boot/compressed/vmlinux] 错误 2
make: *** [zImage] 错误 2
解决:
    a、lzo安装
        1)、wget
        2)、 sudo su  
                tar xzvf lzo-2.06.tar.gz 
        3)、cd lzo-2.06
            ./configure --enable-shared 
        4)、make
              make install
    b、lzop安装:
        1)、wget ''
        2)、tar xzvf lzop-1.03.tar.gz 
        3)、cd lzop-1.03
            ./configure 
            ii)若出现configure: error: cannot compute sizeof (size_t)
                        See `config.log' for more details

                    这个问题的原因是linux在查找动态链接库时,忽视了/usr/local/lib中一系列*.so,将其添加到配置文件中,就可以解决。

                    解决办法(有root权限)

                            1、打开/etc/ld.so.conf这个配置文件

                            2、把下面这行内容添加进去

                /usr/local/lib

                            3、保存文件,执行命令:/sbin/ldconfig

                    (没有root权限)

                            对于非root用户来说,/etc/ld.so.conf是read-only的,想要解决这个问题也是有办法的。在vim74目录下先执行如下命
                            令:export LD_LIBRARY_PATH=/usr/local/lib/:$LD_LIBRARY_PATH // 为编译器设定额外的搜索路径,原理基本类似,
                            修改ld.so.conf的根本原因只是为了让编译器在make过程中去对应的路径下寻找依赖,这里直接指定搜索路径,是一个效果。

                            接下来, 就正常了
        4)、make
            make install


三、集成步骤操作如下:
    1、tar -zxf rootfs_V1.1.00.tar.gz
    2、cp boalib_V1.1.00.tar.gz wifilib_V1.1.00.tar.gz akmedialib_V1.1.00.tar.gz akuiolib_V1.1.00.tar.gz .1.00.tar.gz alsalib_V1.1.00.tar.gz         librootfs/
        cd librootfs/
        tar -zxf *拷贝过去的压缩包*
    3、tar -zxf ipcamera_V1.1.00.tar.gz
        cd ipcamera/
        make (cp: 无法 stat “akiperflib/*”: 没有该文件或目录   这个提示不要管,是开发人员调试用的)
        make install 
    4、cd demos
        tar -zxf recorder_V1.1.00.tar.gz    MediaPlayer_V1.1.00.tar.gz  Audio_Recorder_V1.1.00.tar.gz
        修改各个目录下面的Makefile:
            LOCAL_C_INCLUDES := ../../librootfs/akmedialib/include/akmedialib \
                ../../librootfs/alsalib/include
                LOCAL_LDFLAGS := -L../../librootfs/akmedialib/usr/lib \
                -L../../librootfs/alsalib/usr/lib
        改为:
                LOCAL_C_INCLUDES := ../../targetfs/librootfs/akmedialib/include/akmedialib \
                ../../targetfs/librootfs/alsalib/include
                LOCAL_LDFLAGS := -L../../targetfs/librootfs/akmedialib/usr/lib \
                -L../../targetfs/librootfs/alsalib/usr/lib
        分别 make
        拷贝各个目录下面生成的执行文件到
            cp -fa BUILD_recorder_EXEC/recorder ../../targetfs/ipcamera/rootfs/rootfs/usr/bin/   (recorder只是一个,还有两个目录)

四、生成文件系统:
    1、编译与文件系统制作:
        到ipcamera目录下面 make reinstall
        cd ipcamera
        make reinstall

        问题1:在制作文件系统时候出现下面问题  (是系统版本过低导致的)
                ./mkfs.jffs2: /lib/tls/i686/cmov/libc.so.6: version `GLIBC_2.8' not found (required by ./mkfs.jffs2)
        解决办法:
                我将ubuntu8.04一直更新到ubuntu12.04之后再去编译,就可以成功了。


阅读(2859) | 评论(0) | 转发(2) |
给主人留下些什么吧!~~