具体来说,我已经检查了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的命令相同.
解决方法
>下载最新的内核.我的版本是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.有了这个,我能够成功启动并运行模块.它的优点是我们使用的是最新的内核.