交叉编译器制作
来源:互联网 发布:2016nba西决数据统计 编辑:程序博客网 时间:2024/06/05 04:16
1.1 下载交叉编译器源码包
到谷歌上搜索buildroot,直接到官网上下载源码包即可。
1.2上传源码包到linux服务器
从windows上传源码包到linux可以采用三种方法:
1.使用FTP服务器;
2.使用RZ命令;
3.使用第三方软件winscp;
使用cd命令切换到/opt目录下,linux安装第三方软件建议都安装在/opt目录下。
[Reagan@localhost opt]$ wget ftp://iot-yun.zicp.net/linux_tools/buildroot-2012.08-LingYunEmbLab-v1.3.0.bin
修改/opt目录的权限,因为默认情况下/opt目录只有root才有写的权限,所以先执行sudo chmod 777 /opt/
[Reagan@localhost ~]$ sudo chmod 777 /opt/
[Reagan@localhost opt]$ chmod a+x buildroot-2012.08-LingYunEmbLab-v1.3.0.bin
[Reagan@localhost opt]$ echo $PATH
[Reagan@localhost opt]$ ./buildroot-2012.08-LingYunEmbLab-v1.3.0.bin
第二章 配置交叉编译器选项
2.1配置交叉编译器的cpu类型
这里要注意的是:在Target Archtecture Variant选项中,我们是根据开发板的CPU来选择的。这里s3c2440的CPU是ARM920t,以后不一定使用s3c2440这个CPU,大家要根据具体情况而定。
2.2 配置build option选项
此处9texinfo没有 所以要使用yum install下载
------------------------------------------------------------------------------------------
郭工文档
------------------------------------------------------------------------------------------
[guowenxue@centos6 opt]$ cd buildroot-2012.08
[guowenxue@centos6 buildroot-2012.08]$ ls
board CHANGES configs dl fs Makefile support toolchain
boot Config.in COPYING docs linux package target
3,开始配置编译安装:
[guowenxue@centos6 buildroot-2012.08]$ export TERM=vt100 防止make menuconfig出现乱码
[guowenxue@centos6 buildroot-2012.08]$ make menuconfig 进行builroot配置
[guowenxue@centos6 buildroot-2012.08]$ make
编译的过程中可能会提示缺少某些命令(譬如g++,makeinfo,ncurses),这时就使用yum或rpm命令安装缺少的相应rpm包。
buildroot-2012.08 make menuconfig 选项配置说明
=======================
Target Architecture (ARM (little endian)) --->
Target Architecture Variant (arm920t) ---> 根据自己的CPU来选择
Target ABI (EABI) --->
Build options --->
($(TOPDIR)/dl) Download dir
($(TOPDIR)/arm920t) Host dir
[*] prefer static libraries
其它选项都不要选,如果是要设置值的地方就使用默认值
Toolchain --->
Kernel Headers (Linux 2.6 (manually specified version)) --->
(2.6.37) linux version 选定内核版本为2.6.37
... ...
[*] Enable compiler tls support
[*] Enable MMU support
[*] Use software floating point by default
[*] Enable large file (files > 2 GB) support
[*] Enable IPv6 support
[*] Enable RPC support
[*] Enable WCHAR support
[*] Enable C++ support
其它选项都不要选,如果是要设置值的地方就使用默认值
System configuration --->
Init system (None) ---> 把Busbyox编译去掉
这里面所有的都不要选,如果是要设置值的地方就使用默认值
Package Selection for the target --->
这里面所有的选项都不要选,除了:
Libraries --->
Compression and decompression --->
[*] lzo
-*- zlib
Host utilities --->
这里面所有的选项都不要选
Filesystem images --->
这里面所有的选项都不要选
Bootloaders --->
这里面所有的选项都不要选
Kernel ---
这里面所有的选项都不要选
编译完成成功最后结果说明:
=======================
... ... ...
touch /apps/buildroot-2012.08/output/target/etc/ld.so.conf
mkdir -p /apps/buildroot-2012.08/output/target/var/cache/ldconfig
if [ -x "/apps/buildroot-2012.08/arm920t/usr/bin/arm-unknown-linux-uclibcgnueabi-ldconfig" ]; \
then \
/apps/buildroot-2012.08/arm920t/usr/bin/arm-unknown-linux-uclibcgnueabi-ldconfig -r /apps/buildroot-2012.08/output/target; \
else \
/sbin/ldconfig -r /apps/buildroot-2012.08/output/target; \
fi
/apps/buildroot-2012.08/arm920t/usr/bin/arm-unknown-linux-uclibcgnueabi-ldconfig: /usr/lib/libstdc++.so.6.0.14-gdb.py is not a shared library, skipping
/apps/buildroot-2012.08/arm920t/usr/bin/arm-unknown-linux-uclibcgnueabi-ldconfig: can't resolve /usr/X11R6/lib in chroot .: No such file or directory
/apps/buildroot-2012.08/arm920t/usr/bin/arm-unknown-linux-uclibcgnueabi-ldconfig: skipping /usr/X11R6/lib: No such file or directory
( \
echo "NAME=Buildroot"; \
echo "VERSION=2012.08"; \
echo "ID=buildroot"; \
echo "VERSION_ID=2012.08"; \
echo "PRETTY_NAME=\"Buildroot 2012.08\"" \
) > /apps/buildroot-2012.08/output/target/etc/os-release
[guowenxue@centos6 buildroot-2012.08]$
[guowenxue@centos6 buildroot-2012.08]$ ls arm920t/usr/bin/
这时应该可以看到编译出来的交叉编译器工具链
[guowenxue@centos6 buildroot-2012.08]$ ls
board CHANGES configs dl fs Makefile support toolchain
boot Config.in COPYING docs linux package target
3,开始配置编译安装:
[guowenxue@centos6 buildroot-2012.08]$ export TERM=vt100 防止make menuconfig出现乱码
[guowenxue@centos6 buildroot-2012.08]$ make menuconfig 进行builroot配置
[guowenxue@centos6 buildroot-2012.08]$ make
编译的过程中可能会提示缺少某些命令(譬如g++,makeinfo,ncurses),这时就使用yum或rpm命令安装缺少的相应rpm包。
buildroot-2012.08 make menuconfig 选项配置说明
=======================
Target Architecture (ARM (little endian)) --->
Target Architecture Variant (arm920t) ---> 根据自己的CPU来选择
Target ABI (EABI) --->
Build options --->
($(TOPDIR)/dl) Download dir
($(TOPDIR)/arm920t) Host dir
[*] prefer static libraries
其它选项都不要选,如果是要设置值的地方就使用默认值
Toolchain --->
Kernel Headers (Linux 2.6 (manually specified version)) --->
(2.6.37) linux version 选定内核版本为2.6.37
... ...
[*] Enable compiler tls support
[*] Enable MMU support
[*] Use software floating point by default
[*] Enable large file (files > 2 GB) support
[*] Enable IPv6 support
[*] Enable RPC support
[*] Enable WCHAR support
[*] Enable C++ support
其它选项都不要选,如果是要设置值的地方就使用默认值
System configuration --->
Init system (None) ---> 把Busbyox编译去掉
这里面所有的都不要选,如果是要设置值的地方就使用默认值
Package Selection for the target --->
这里面所有的选项都不要选,除了:
Libraries --->
Compression and decompression --->
[*] lzo
-*- zlib
Host utilities --->
这里面所有的选项都不要选
Filesystem images --->
这里面所有的选项都不要选
Bootloaders --->
这里面所有的选项都不要选
Kernel ---
这里面所有的选项都不要选
编译完成成功最后结果说明:
=======================
... ... ...
touch /apps/buildroot-2012.08/output/target/etc/ld.so.conf
mkdir -p /apps/buildroot-2012.08/output/target/var/cache/ldconfig
if [ -x "/apps/buildroot-2012.08/arm920t/usr/bin/arm-unknown-linux-uclibcgnueabi-ldconfig" ]; \
then \
/apps/buildroot-2012.08/arm920t/usr/bin/arm-unknown-linux-uclibcgnueabi-ldconfig -r /apps/buildroot-2012.08/output/target; \
else \
/sbin/ldconfig -r /apps/buildroot-2012.08/output/target; \
fi
/apps/buildroot-2012.08/arm920t/usr/bin/arm-unknown-linux-uclibcgnueabi-ldconfig: /usr/lib/libstdc++.so.6.0.14-gdb.py is not a shared library, skipping
/apps/buildroot-2012.08/arm920t/usr/bin/arm-unknown-linux-uclibcgnueabi-ldconfig: can't resolve /usr/X11R6/lib in chroot .: No such file or directory
/apps/buildroot-2012.08/arm920t/usr/bin/arm-unknown-linux-uclibcgnueabi-ldconfig: skipping /usr/X11R6/lib: No such file or directory
( \
echo "NAME=Buildroot"; \
echo "VERSION=2012.08"; \
echo "ID=buildroot"; \
echo "VERSION_ID=2012.08"; \
echo "PRETTY_NAME=\"Buildroot 2012.08\"" \
) > /apps/buildroot-2012.08/output/target/etc/os-release
[guowenxue@centos6 buildroot-2012.08]$
[guowenxue@centos6 buildroot-2012.08]$ ls arm920t/usr/bin/
这时应该可以看到编译出来的交叉编译器工具链
第三章 配置交叉编译器出现的错误
(1)先用wget ftp://iot-yun.zicp.net/linux_tools/buildroot-2012.08-LingYunEmbLab-v1.3.0.bin直接把.bin文件下载到/opt/没运行出东西。后来把buildroot-2012.08-LingYunEmbLab-v1.3.0.bin下载到PC上,再用RZ下载下来就可以。
(2)maek时候
mkdir: 无法创建目录“/arm920t”:权限不够
make: ***[/arm920t/user/arm-unknown-linux-uclibcgnueabi/sysroot] 错误 1
解决办法:sudo make
0 0
- 交叉编译器制作流程
- 交叉编译器制作流程
- 制作交叉编译器
- 交叉编译器制作
- 交叉编译器制作
- 交叉编译器的制作
- 交叉编译器的制作
- 交叉编译器制作教程
- 交叉编译器的制作
- 交叉编译器的制作
- GCC交叉编译器的制作
- 如何制作Linux交叉编译器
- linux 制作交叉编译器arm920t
- linux交叉编译器的制作
- Crosstool-ng 制作交叉编译器
- linux下交叉编译器制作
- Buildroot-2012.08交叉编译器制作
- arm9+FL2440交叉编译器制作
- 防xss攻击总结
- 获取form表单所有输入内容
- Jetty简介
- Pow(x, n)
- Android中ListView实现多级分组显示的高效实现
- 交叉编译器制作
- php 根据某数组key计算和
- sobel算子原理与实现
- 如何使用Spark ALS实现协同过滤
- 1028. 人口普查(20)
- 团体程序设计天梯赛L3-008——喊山(bfs)
- Android 如何让EditText不自动获取焦点
- 也说自媒体
- 阿里云云服务器硬盘分区及挂载