4.7.4到JZ2440开发板

一.编译环境搭建:

1.Linux源码下载https://www.kernel.org/
2.安装交叉编译工具链:
 ①手动下载配置工具链

  (1):解压 arm-linux-gcc-3.4.1.tar.bz2
    #tar -jxvf arm-linux-gcc-3.4.1.tar.bz2
    解压过程需要一段时间,解压后的文件形成了 ../temp/usr/local/ 文件夹,进入该文件夹,将arm文件夹拷贝到/usr/local/下
    # cd usr/local/
    #cp -rv arm /usr/local/
    现在交叉编译程序集都在/usr/local/arm/3.4.1/bin下面了

  (2):修改/etc/profile文件:

    # vim /etc/profile

    增加路径设置,在末尾添加如下,保存/etc/profile文件:
    export PATH=$PATH:/usr/local/arm/3.4.1/bin

  (3):立即使新的环境变量生效,不用重启电脑:

   对应方法二:# source /etc/profile

  (4): 检查是否将路径加入到PATH:

     # echo $PATH
    显示的内容中有/usr/local/arm/bin,说明已经将交叉编译器的路径加入PATH。
  (5).测试是否安装成功
  # arm-linux-gcc -v

 ②使用crosstoll-ng构建交叉编译工具链:
 
  (1)官网下载:
   (2)编译(确认/opt/cross/bin已经安装):./configure --prefix=/opt/cross    : 报错的话缺what装what
                      make                                  
                        make install
   

   (3)使用crosstool-ng构建交叉编译工具链:

    1. 在合适的地方新建一个crosstool-ng工作目录。这个目录将会存储工具链的配置文件,自动下载的文件,构建过程中产生的一些中间文件,最后建立在普通可读写目录:
    mkdir -p /home/sheldon/workspace/linux/crosstool

    2. 进入前面一步建立的目录:
    cd /home/sheldon/workspace/linux/crosstool

    3. 执行 ct-ng menuconfig进入配置界面:(找不到执行档就链接一下:sudo ln -s /opt/cross/bin/ct-ng /usr/bin/ct-ng)
    ct-ng menuconfig

移植Linux-4.7.4到JZ2440开发板

    

4.  选择‘Paths and misc options’菜单,激活’  Try features marked as EXPERIMENTAL’选项,这一步很重要

    5.  在‘Paths and misc options’ 菜单下,修改‘Directory containing customsource components’值,设置为你想要最终存放工具链的目录。
       (${HOME}/src) Local tarballs directory  # 指定制作编译器所需要的源码包的下载存放,可以修改成任意位置,请注意权限。现在指定到~/src下。
        (/opt/${CT_TARGET}) Prefix directory  # 制作好的编译器所放置的目录

    6.  返回主菜单,选择‘Target options’  , [*] Use EABI # 是否实用EABI方式,对某些指令采用异常的方式来处理(如除法指令),建议选中

    7.  ‘Target architecture ’选项选择‘ arm’;‘Endianness ’选项选择‘ Little endian’;‘Bitness’选项选择‘32-bit’。Floating point: (software) ---> # 对于很多ARM架构CPU来说是不支持硬浮点运算的,所以选择软件方式有更好的兼容性

    8.  返主菜单,选择‘Operating system’(跳过‘Toolchain options’,这里使用缺省选项就够了)

    9.  ‘Target OS’选择‘linux’, ‘Linuxkernel version’选项中选择你所使用的内核版本

    10. 返回主菜单,选择‘Binary utilities’

    11. 选择你需要的版本,笔者直接选择最高版本(如果需要编译Linaro版本,请先激活‘Show Linaro versions’选项)。

    12. 返回主菜单,选择‘C compiler’

    13. 选择你所使用的GCC版本(笔者选择5.1.0,如果需要编译Linaro版本,请先激活‘Show Linaro versions’选项),因为笔者需要使用GCC的一个新特性,所以激活‘Compile libsanitizer’选项,一般情况下,保持缺省值就够了。

    14. Toolchain options --->(tonghuix) Tuple's vendor string # 这里可以修改成你自己的个性化名称,最后会生成形如arm-yourname-linux-gnueabi这样的编译器前缀

    15. 其它选项用缺省值,退出并保存配置工具

    16. 执行ct-ng build编译工具链
      ct-ng build  

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/14932.html