首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将Robert Nelson的Linux内核构建为Yocto(雏菊)中的beaglebone black

将Robert Nelson的Linux内核构建为Yocto(雏菊)中的beaglebone black
EN

Stack Overflow用户
提问于 2015-06-09 04:52:56
回答 1查看 2.3K关注 0票数 1

我试图从官方存储库https://github.com/beagleboard/linux中为beaglebone black构建Linux。

我能够获取并运行menuconfig,但是当我试图编译内核时,会出现错误。

下面是食谱文件的内容。

文件名:linux-yocto-chipse3.14.bb

/home/ankur/yocto_daisy/poky/meta-ybdevelop/recipes-example/linux路径path

代码语言:javascript
运行
复制
inherit kernel
require recipes-kernel/linux/linux-yocto.inc

BRANCH = "3.14"
# Override SRC_URI in a bbappend file to point at a different source # tree if you do not want to build from Linus' tree.
SRC_URI = "git://github.com/beagleboard/linux.git;branch=${BRANCH};nocheckout=1;name=machine"

LINUX_VERSION ?= "3.14"
LINUX_VERSION_EXTENSION ?= "-custom"

# Override SRCREV to point to a different commit in a bbappend file to # build a different release of the Linux kernel.
# tag: v3.4 76e10d158efb6d4516018846f60c2ab5501900bc
SRCREV_machine="76e10d158efb6d4516018846f60c2ab5501900bc"

PR = "r1"
PV = "${LINUX_VERSION}+git${SRCPV}"

# Override COMPATIBLE_MACHINE to include your machine in a bbappend # file. Leaving it empty here ensures an early explicit build failure.
COMPATIBLE_MACHINE = "beaglebone"

文件名:linux-yocto-chipse3.14.bbappend

/home/ankur/yocto_daisy/poky/meta-ybdevelop/recipes-example/linux文件路径:

代码语言:javascript
运行
复制
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}-${PV}:"
SRC_URI_append = " file://defconfig"

/home/ankur/yocto_daisy/poky/meta-ybdevelop/recipes-example/linux/linux-yocto-chipsee_3.14 配置路径:

有了上面的配置,我可以获取并打开获取的linux内核的menuconfig,我使用的命令如下所示,

代码语言:javascript
运行
复制
# bitbake linux-yocto-chipsee -c menuconfig

但是当我试图使用下面的命令编译Linux时,它会产生错误,

代码语言:javascript
运行
复制
# bitbake linux-yocto-chipsee -c compile

与gcc有关的错误:

代码语言:javascript
运行
复制
 /bin/sh: 1: arm-poky-linux-gnueabi-gcc: not found
| make[4]: *** [scripts/mod/empty.o] Error 127
| make[3]: *** [scripts/mod] Error 2
| make[3]: *** Waiting for unfinished jobs....
|   SHIPPED scripts/genksyms/lex.lex.c
|   Generating include/generated/mach-types.h
|   SHIPPED scripts/genksyms/keywords.hash.c
|   SHIPPED scripts/genksyms/parse.tab.h
|   SHIPPED scripts/genksyms/parse.tab.c
|   HOSTCC  scripts/genksyms/lex.lex.o
|   CC      kernel/bounds.s
| /bin/sh: 1: arm-poky-linux-gnueabi-gcc: not found

当我尝试使用下面的命令构建时,时间也失败了。

代码语言:javascript
运行
复制
# bitbake linux-yocto-chipsee -c build

ERROR: Multiple .bb files are due to be built which each provide virtual/kernel (/home/ankur/yocto_daisy/poky/meta-ybdevelop/recipes-example/linux/linux-yocto-chipsee_3.14.bb /home/ankur/yocto_daisy/poky/meta/recipes-kernel/linux/linux-yocto_3.14.bb).
 This usually means one provides something the other doesn't and should.
NOTE: Executing SetScene Tasks
NOTE: Executing RunQueue Tasks
ERROR: Function failed: do_compile (log file is located at /home/ankur/yocto_daisy/poky/build_fresh/tmp/work/beaglebone-poky-linux-gnueabi/linux-yocto-chipsee/3.14+gitAUTOINC+76e10d158e-r1/temp/log.do_compile.30878)
ERROR: Logfile of failure stored in: /home/ankur/yocto_daisy/poky/build_fresh/tmp/work/beaglebone-poky-linux-gnueabi/linux-yocto-chipsee/3.14+gitAUTOINC+76e10d158e-r1/temp/log.do_compile.30878

linux的Bitbake层显示在下面的输出

只需:

代码语言:javascript
运行
复制
# bitbake-layers show-recipes 'linux*'

Parsing recipes..done.
=== Available recipes matching linux*: ===
linux-dummy:
  meta                 1.0
linux-firmware:
  meta                 1:0.0+gitAUTOINC+600caefd83
linux-libc-headers:
  meta                 3.14
linux-yocto:
  meta                 3.14.4+gitAUTOINC+183622e809_0143c6ebb4
  meta                 3.10 (skipped)
  meta                 3.4 (skipped)
linux-yocto-chipsee:
  meta-ybdevelop       3.14+gitAUTOINC+76e10d158e
linux-yocto-dev:
  meta                 unknown (skipped)
linux-yocto-rt:
  meta                 3.10 (skipped)
  meta                 3.14 (skipped)
  meta                 3.4 (skipped)
linux-yocto-tiny:
  meta                 3.10 (skipped)
  meta                 3.14 (skipped)
  meta                 3.4 (skipped)
linuxdoc-tools-native:
  meta                 0.9.69
linuxptp:
  meta-oe              1.4

有什么帮助/指针/提示/建议来编译吗?

谢谢,

你好,安库

EN

回答 1

Stack Overflow用户

发布于 2015-06-14 19:13:37

有一段时间,我下载了Yocto_daisy(1.6)工具链,并将其安装在我的PC上。并编译了Yocto构建外部的Linux。这里有一些步骤。

在安装了ubuntu的virtualbox中,我遵循了以下步骤。

  1. 在Yocto_daisy构建核心图像-sato中,使用以下命令, 比特面包核心-图像-佐藤
  2. 制作带有根文件系统、SPL & U-Boot、uImage、dtb、uEnv.txt的微SD卡.
  3. 使用以下命令克隆beaglebone黑色Linux git克隆--深度=1 https://github.com/beagleboard/linux
  4. 从以下链接下载Yocto-1.6(雏菊)工具链。 http://downloads.yoctoproject.org/releases/yocto/yocto-1.6/toolchain/ 根据您的计算机类型从i686或x86_64下载 我下载了以下内容。 http://downloads.yoctoproject.org/releases/yocto/yocto-1.6/toolchain/i686/poky-eglibc-i686-core-image-sato-armv7a-vfp-neon-toolchain-1.6.sh
  5. 通过运行下载工具链脚本安装工具链。默认情况下,它安装到opt目录中,我将其安装在默认路径中。
  6. 在终端遍历到上面下载的Linux目录。并通过运行以下命令来设置工具链环境, 源/opt/poky/1.6/environment-setup-armv7a-vfp-neon-poky-linux-gnueabi
  7. 现在使用以下命令配置内核,

制作bb.org_defconfig

  1. 然后使用以下命令构建内核 制造uImage LOADADDR=0x80008000 -j4
  2. 现在我们将使用以下命令将模块安装到本地目录中, mkdir bbb_modules 导出INSTALL_MOD_PATH=/home/ankur/linux/bbb_modules/ 制作modules_install
  3. 在构建内核时,将uImage(从/arch/arm/ BOOT )和am335x-boneblack-bbb-exp-c.dtb(从/arch/arm/boot)复制到微SD卡的引导分区。

我的uEnv.txt看起来像这样

代码语言:javascript
运行
复制
Disable: HDMI
bootargs=console=ttyO1,115200n8 root=/dev/mmcblk0p2 rootfstype=ext4 rw rootwait;
bootcmd=mmc rescan ; mmc dev 0 ; fatload mmc 0 0x80007fc0 uImage ; fatload mmc 0 0x80F80000 am335x-boneblack-bbb-exp-c.dtb ; echo Ankur... ${bootcmd}; bootm 0x80007fc0 - 0x80F80000;
uenvcmd=boot;

11 .现在,使用以下命令,将模块从本地目录复制到微SD卡,

代码语言:javascript
运行
复制
cp -a /home/ankur/linux/bbb_modules/lib /media/ankur/ROOT/
sync
  1. 弹出卡片,将其放入Beaglbone并在BBB+LCD上使用。

我还没有得到触摸校准为LCD工作,但一旦我找到它,我将更新答案。

另一件悬而未决的事情是将上面的内核构建到Yocto构建系统中。一旦我做完这件事,我会更新答案。

希望这对有同样问题的人有帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30723261

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档