在任何地方都有针对BeagleBone Black平台的可靠的Linux内核构建吗?我遵循了here以及其他许多地方的指示,但这些指示均无效。要么模块无法构建(.ko文件只是无法构建,在上面的链接中无法找到),或者内核缺少构建目标。我正在使用Linaro ARM编译器(arm-linux-gnueabihf-gcc)在32位x86 Ubuntu 14.04上进行交叉编译。

具体来说,我已经在BeagleBone Git repository,分支3.8、3.11、3.12、3.13和3.14处检查了源代码。我还检查了第3方git clone here。我遇到的问题如下:

  • 3.8:内核将编译(带有许多警告),但是由于在分支中运行patch.sh导致的修补过程中的错误,导致模块无法编译。
  • 3.11:内核将编译(带有许多警告),但不会编译uImage-dtb.am335x-boneblack Make目标。由于至少一个文件具有不正确的补丁程序而导致产生不正确的C语法,因此编译模块失败。
  • 3.12:内核将与模块一起编译(带有许多警告)。将内核和模块复制到板上的操作成功。引导内核失败,并且在U-Boot中的引导命令启动后立即停止引导。
  • 3.13、3.14:内核编译失败,出现许多语法错误。
  • TowerTech的
  • 3.8.13+:再次由于patch.sh的错误修补,内核编译成功(带有许多警告),模块编译失败。

  • 在我可以编译内核的情况下,我使用U-Boot的TFTP引导服务器将其复制到内存中的新的原始板上,然后在内存中引导内核。但是,没有一个成功编译的内核可以正常工作,因为它们缺少其模块/固件/dtb。是什么引起了不正确的修补?当然,编写代码和补丁的开发人员必须已经对其进行了测试,所以我的工作区可能出了点问题,尽管我现在无法想象。我使用的命令与链接1中的命令相同。

    最佳答案

    我也遵循了您提到的链接,并且能够启动BBB。我正在使用https://www.kernel.org/的mainline内核。以下是我遵循的步骤

  • 下载最新的内核。我的版本是3.18-rc4
  • 使用“omap2plus_defconfig”,这是beaglebone black
  • 的默认配置
  • Make命令是

    使ARCH = arm CROSS_COMPILE = arm-linux-gnueabi- omap2plus_defconfig -j4

    使ARCH = arm CROSS_COMPILE = arm-linux-gnueabi- uImage dtbs LOADADDR = 0x80008000 -j4。

    产生的图像存在于以下路径中。

    arch/arm/boot/uImage uImage

    arch/arm/boot/dts/am335x-boneblack.dtb
  • 之后,编译模块。

    使ARCH = arm CROSS_COMPILE = arm-linux-gnueabi-模块-j4
  • 我正在使用busybox和NFS服务器作为根

  • 使用的编译器是arm-linux-gnueabi-gcc。这样,我就可以成功启动并运行模块。它的优点是我们正在使用最新的可用内核。

    关于linux-kernel - 可靠地为BeagleBone Black构建Linux内核,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23766354/

    10-16 15:26