arm交叉变异环境安装
来源:互联网 发布:oracle数据库覆盖导入 编辑:程序博客网 时间:2024/06/05 18:16
from:http://linux-sunxi.org/Toolchain
Toolchain
The toolchain is a set of binaries, system libraries and tools which allow you to build (in our case, cross-compile) u-boot and the kernel for a target platform. This will, to some limited extent, need to match the target rootfs. A large and incompatible change has taken place recently, through the Hard Float ABI. Now, two different debian and ubuntu ports are binary incompatible with each other.
Part of distributions
Ubuntu
Recent (from 12.04 on)
A complete cross toolchain is available as a package, just run:
apt-get install gcc-arm-linux-gnueabihf
Older
For older versions, you need to use an external repository.
add-apt-repository ppa:linaro-maintainers/toolchainapt-get updateapt-get install gcc-arm-linux-gnueabihf
Debian
Details on Cross-development Toolchains for Debian are at the Debian Wiki.
Note: Debian now has cross-toolchains in the archive, superseding those at emdebian.org
Currently (December 2015) available for unstable and testing in the standard repositories.
Install Cross Compiler and build utilities:
dpkg --add-architecture armhfapt-get updateapt-get install g++-arm-linux-gnueabihf
You might want additional tools for building a sunxi system that are not related to the cross-compiler:
apt-get install build-essential git debootstrap u-boot-tools device-tree-compiler
Fedora
A complete cross toolchain is available as a package, just run:
yum install gcc-arm-linux-gnu
Gentoo
The crossdev tool[1]is the standard way of dealing with crosscompilers in Gentoo. Command line options are used to specify any arbitrary mix of different versions of the kernel headers, glibc, binutils and gcc. You can also use the -S option instead (to pick whatever is considered to be stable at the moment), but in this case the crosscompiler will be also upgraded as part of the regular distribution updates, which might be a bit annoying.
ARM crosscompiler
Even though Gentoo normally uses armv7a-hardfloat-linux-gnueabi as the toolchain triplet on ARM, we can also use Debian alikearm-linux-gnueabihf variant in order to be able to use the compilation instructions from the linux-sunxi wiki as-is (without substituting the toolchain name).
emerge crossdevcrossdev --kernel =3.18 --libc =2.20-r2 --binutils =2.24-r3 --gcc =4.8.5 \ --genv 'USE="-fortran -mudflap -nls -openmp multilib" EXTRA_ECONF="--with-cpu=cortex-a8 --with-float=hard"' -t arm-linux-gnueabihf
ARM64 crosscompiler
emerge crossdevcrossdev --kernel =3.18 --libc =2.21-r1 --binutils =9999 --gcc =4.9.3 \ --genv 'USE="-fortran -mudflap -nls -openmp multilib -sanitize" EXTRA_ECONF="--enable-fix-cortex-a53-843419"' -t aarch64-linux-gnu
Note: binutils =9999 (fetch sources from git) should be replaced with =2.26 as soon as binutils 2.26 is added to portage. Such new binutils version is necessary for having a Cortex-A53 erratum 843419 workaround.
OpenRISC crosscompiler
If you have one of the Allwinner SoC variants with an additional OpenRISC core (for example A31 and H3 have it), then you might want to also build an OpenRISC crosscompiler too:
emerge crossdevmkdir -p /etc/portage/patches/cross-or1k-elf/gcc-5.2.0cd /etc/portage/patches/cross-or1k-elf/gcc-5.2.0wget https://gist.githubusercontent.com/ssvb/28e22f4086af26ec9cd0/raw/8d3d091177156a92497f31de3bfb3d7da9e52649/0001-OpenRISC-support-for-GCC-5.2.0.patchcrossdev --binutils =2.25.1-r1 --gcc =5.2.0 --libc =2.2.0.20150423 \ --genv 'USE="cxx multilib -fortran -mudflap -nls -openmp -sanitize"' \ -s4 -t or1k-elf
Please note that the upstream GCC does not support OpenRISC yet, so the OpenRISC code is still brewing inhttps://github.com/openrisc/or1k-gcc.git and we can solve this problem by just providing a patch for GCC in the/etc/portage/patches directory.
- ↑The Gentoo website has undergone a major overhaul as of April 2015. While a backup of the old content is still available, it seems to have left theGentoo Embedded Handbook in a non-functional state. You can still find a copyvia archive.org. The wiki article on Raspberry Pi Cross building might also be helpful.
Standalone
These standalone toolchains are big tarballs which come with everything you need.
Linaro toolchain
Download
Linaro has been very good at changing the location and availability of just about everything, making it very hard to keep a wiki up to date which refers to it. So the below download locations might be stale already.
Currently, the main selection page is here.
It lists the following toolchains:
- gcc-linaro 4.5 (4.5-2012.03):Test me
- gcc-linaro 4.6 (4.6-2013.05):Test me
- gcc-linaro 4.7 (4.7-2014.06):Test me
- gcc-linaro 4.8 (4.8-2014.04):Test me
- gcc-linaro 4.9 (4.9-2014.07):Test me (this link will go dead the quickest.)
When in doubt, try 4.7 first.
WARNING: Do not use the 4.8 gcc versions of the linaro toolchain to build legacy kernels (sunxi-3.4 etc.), those seem to have issues building the kernel. Use an earlier version instead. (TODO: Verify that this is still true today).
Usage
Take a gcc-linaro-<major>.<minor>-<year>.<month>.tar.xz file and untar it. You will find a bin directory in there. Temporarily add it to the environment you are building from:
export PATH="$PATH":/home/user/folder/gcc-linaro-arm-linux-gnueabihf-*_linux/bin/
no hardfloat?
Recent linaro toolchains are Hard Float (hf), this will be used throughout the wiki you see something like:
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-
Replace arm-linux-gnueabihf- with arm-linux-gnueabi- if your are not using a hardfloat toolchain.
Code Sourcery
Another option is to install the Sourcery toolchain from Code Sourcery (now in Mentor Graphics). Download Code Sourcery G++ 2010 9-50https://sourcery.mentor.com/sgpp/lite/arm/portal/release1600 (official link, email registration required)
Direct link:https://netst.org/pub/linux/ARM/CodeSourcery/arm-2010.09-50-arm-none-linux-gnueabi.bin (unofficial link)
chmod +x arm-2010.09-50-arm-none-linux-gnueabi.bin./arm-2010.09-50-arm-none-linux-gnueabi.bin
If you are using Ubuntu, you may need to switch to use bash shell (instead of dash shell)
sudo dpkg-reconfigure -plow dash ( then choose [No], this changes from using dash shell to using bash shell )
It will now install CodeSourcery with a GUI installer
Follow default settings and do Next , Next, Next, etc…
It should install in: ~/CodeSourcery/ ( for example: /home/penguin/CodeSourcery/ )
Make sure the CodeSourcery binaries are added to your path (if your username is penguin, then this should be correct):
echo "export PATH=~/CodeSourcery/Sourcery_G++_Lite/bin:\${PATH}" >> ~/.bashrcexport PATH=~/CodeSourcery/Sourcery_G++_Lite/bin:$PATH (or you can just spawn a new terminal window to update the path)echo $PATH (make sure your path is updated)
External links
- Homepage (mentor.com)
- Direct download (mentor.com)
- arm交叉变异环境安装
- arm交叉编译环境安装
- 安装交叉编译环境(ARM处理器)
- 安装交叉编译环境arm-linux-gcc
- 安装arm-linux-gcc交叉编译环境
- CentOS7 安装ARM Linux交叉编译环境
- arm 交叉编译环境
- ARM交叉编译环境
- ARM交叉编译环境
- Ubuntu配置安装ARM Linux交叉编译环境完整流程
- 在Ubuntu10.10下安装arm-linux交叉编译环境
- LTP在arm-linux-交叉编译环境上的安装
- 嵌入式 交叉编译环境安装arm-linux-gcc
- ARM Linux教程之四:安装交叉编译环境
- arm-linux-gcc交叉编译环境的安装
- ubuntu14.0安装arm-linux-gcc交叉编译环境
- ubuntu下安装arm-linux-gcc交叉编译环境
- ARM交叉编译器安装
- maven 中运行Junit单元测试
- 阿里云Ubuntu环境搭建Docker服务
- /usr/libexec/gconf-sanity-check-2退出状态256的解决(摘自 firefoxbug的专栏)
- Spring框架(一)
- 5/23 大神review菜鸡代码后的学习心得与近期任务
- arm交叉变异环境安装
- Dos界面 五步棋
- VS2010静态编译生成.exe可执行文件
- DataGridViewComboBoxColumn的使用示例
- URL请求对参数前端JS加密,后台JAVA解密
- solr4.7新建core
- Redis 列表(List)
- spark-streaming入门(一)
- Android视图切换动画库SwitchLayout的简单使用