关于在 Ubuntu VM(64 位)上安装 ARM 工具链的建议
Posted
技术标签:
【中文标题】关于在 Ubuntu VM(64 位)上安装 ARM 工具链的建议【英文标题】:Advice regarding installing ARM toolchain on Ubuntu VM (64bit) 【发布时间】:2014-04-11 13:46:36 【问题描述】:尝试在 Ubuntu 虚拟机上为 arm 平台编译 Linux 内核
$make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi-
失败如下
arm-none-linux-gnueabi-gcc: not found
尝试安装
$sudo apt-get install arm-none-linux-gnueabi-gcc
E: unable to locate package arm-none-linux-gnueabi-gcc
在哪里可以找到正确的包?如何将其包含在系统中? (我在网上发现了几个对我不起作用的链接)。如果您能提供正确的解决方案或参考,那就太好了。
【问题讨论】:
【参考方案1】:从https://sourcery.mentor.com/GNUToolchain/下载arm-2013.05-24-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
或https://sourcery.mentor.com/sgpp/lite/arm/portal/subscription?@template=lite
获取 arm-none-linux-gnueabi 工具链的正确版本(即针对 GNU/Linux
而不是 EABI
)。
解压
tar xvf arm-2013.05-24-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
打开 bashrc
vi .bashrc
最后添加下面的命令
export PATH=$PATH:path to toolchainarm-2013.05/bin
例如export PATH=$PATH:/home/vinay/under_linux/arm-2013.05/bin
保存并退出终端。
然后你可以交叉编译而不用每次导出。
也采取正确的工具链有两个工具链可供选择根据您的要求。
Cross compile error "arm-none-eabi-g++ cannot find entry symbol"
【讨论】:
sourcery.mentor.com/sgpp/lite/arm/portal/… ..它不是开源的..对吧? 下载精简版或者你可以从linaro-toolchain下载它的开源launchpad.net/linaro-toolchain-binaries【参考方案2】:Ubuntu 软件包名称是 gcc-arm-linux-gnueabi/gcc-arm-linux-gnueabihf。
对于构建内核,使用哪一个没有太大区别。对于构建其他任何东西,“gnueabihf”是硬浮动版本。对于任何现代 ARM 处理器(此声明不包括 Raspberry PI),这都是您想要的。
【讨论】:
找不到上面提到的包arm-linux-gnuabihf-gcc 抱歉,我一直对他们如何颠倒顺序感到困惑 - 它是 packages.ubuntu.com/search?keywords=gcc-arm-linux-gnueabihf。 我需要使用以下命令进行交叉编译..但这还不行..make menuconfig ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- 不,您当然需要将命令行调整为安装的二进制名称:arm-linux-gnueabihf- 而不是 arm-none-linux-gnueabi- gcc-arm-linux-gnueabihf 不足以为 aarch64 编译内核。该过程将失败并出现错误:“linux kernel unknown type name __uint128_t”以上是关于关于在 Ubuntu VM(64 位)上安装 ARM 工具链的建议的主要内容,如果未能解决你的问题,请参考以下文章