linux-kernel – BeagleBone Black的Linux内核的可靠构建

前端之家收集整理的这篇文章主要介绍了linux-kernel – BeagleBone Black的Linux内核的可靠构建前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
是否可以在任何地方为BeagleBone Black平台构建可靠的 Linux内核?我按照 here的说明,以及许多其他地方,但没有一个工作.这两个模块都没有构建(.ko文件只是没有构建,在上面的链接的情况下找不到),或者缺少内核的构建目标.我在32位x86 Ubuntu 14.04上使用Linaro ARM编译器(arm-linux-gnueabihf-gcc)交叉编译.

具体来说,我已经检查了BeagleBone Git repository,分支3.8,3.11,3.12,2.13和3.14的来源.我还检查了第三方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引导服务器将其复制到内存中的新鲜的vanilla板上,并在内存中引导内核.但是,没有一个成功编译的内核可以正常工作,因为它们缺少模块/ firmware / dtbs.什么可能导致不正确的修补?当然,编写代码和补丁的开发人员必须对其进行测试,因此我的工作空间可能有问题,但我无法想象此时的情况.我使用的命令与链接1的命令相同.

解决方法

我也按照你提到的链接,我能够启动BBB.我正在使用 https://www.kernel.org/的主线内核.以下是我遵循的步骤

>下载最新的内核.我的版本是3.18-rc4
>使用“omap2plus_defconfig”这是beaglebone black的默认配置
>制作命令

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

make ARCH = arm CROSS_COMPILE = arm-linux-gnueabi- uImage dtbs LOADADDR = 0x80008000 -j4.

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

arch / arm / boot / uImage uImage

弓/ ARM /开机/ DTS / am335x-boneblack.dtb
>之后编译模块.

make ARCH = arm CROSS_COMPILE = arm-linux-gnueabi- modules -j4
>我以root用户身份使用busyBox和NFS服务器

使用的编译器是arm-linux-gnueabi-gcc.有了这个,我能够成功启动并运行模块.它的优点是我们使用的是最新的内核.

猜你在找的Linux相关文章