尝试在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
在哪里可以find正确的包裹? 如何将其包含在系统中? (我发现了一些线上的链接,对我来说不起作用)。 如果您能提供正确的解决scheme或参考,那将是非常好的。
或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 toolchain}arm-2013.05/bin
例如export PATH=$PATH:/home/vinay/under_linux/arm-2013.05/bin
保存并退出终端。
那么你可以交叉编译,而不需要每次导出。
另外拿正确的工具链有两个工具链可供选择根据您的要求。
交叉编译错误“arm-none-eabi-g ++找不到条目符号”
Ubuntu的软件包名称是gcc-arm-linux-gnueabi / gcc-arm-linux-gnueabihf。
为了构建内核,你使用哪一个并没有太大的区别。 为了构建其他任何东西,“gnueabihf”是硬浮点版本。 对于任何现代ARM处理器(这种说法不包括树莓派),这是你想要的。