我正在使用http://elinux.org/Building_BBB_Kernel此链接构建内核映像。
当我从上面的链接参考"执行此命令时make ARCH = arm CROSS_COMPILE = arm-linux-gnu-uImage-dtb.am335x-boneblack" 它抛出我的错误说"目标没有规则uImage-dtb.am335x-boneblack"
答案 0 :(得分:1)
你可能正在使用你正在提到的程序,这个程序就是为不同的内核源代码树编写的。
您引用的过程应该应用于Arago Linux内核 - 直接创建zImage + dtb包作为make目标似乎是标准arch / arm / boot / Makefile的patch,这个功能可能不是当前主线内核构建系统的一部分。
您可以手动执行修补程序正在执行的操作,即在创建uImage文件之前将dtb文件附加到zImage:
make ARCH=arm CROSS_COMPILE=arm-linux-gnu- zImage am335x-boneblack.dtb
cp arch/arm/boot/zImage arch/arm/boot/zImage.original
ls -l arch/arm/boot/zImage arch/arm/boot/dts/am335x-boneblack.dtb
-rw-rw-r-- 1 user user 29162 Oct 16 23:19 arch/arm/boot/dts/am335x-boneblack.dtb
-rwxrwxr-x 1 user user 2030848 Oct 16 23:21 arch/arm/boot/zImage
cat arch/arm/boot/zImage arch/arm/boot/dts/am335x-boneblack.dtb > arch/arm/boot/zImage-dtb
ls -l arch/arm/boot/zImage-dtb
-rw-rw-r-- 1 user user 2060010 Oct 16 23:25 arch/arm/boot/zImage-dtb
cp arch/arm/boot/zImage-dtb arch/arm/boot/zImage
make ARCH=arm CROSS_COMPILE=arm-linux-gnu- uImage LOADADDR=0x80008000
ls -l arch/arm/boot/uImage
-rw-rw-r-- 1 user user 2060074 Oct 16 23:27 arch/arm/boot/uImage
你会注意到uImage文件的长度正好比它构建的ZImage包大64个字节,这与标准u-boot头的长度相对应。
最后,我们可以将uImage包文件重命名为过程中使用的名称,并在需要的情况下恢复原始的非bundle zImage:
mv arch/arm/boot/uImage arch/arm/boot/uImage-dtb.am335x-boneblack
mv arch/arm/boot/zImage.original arch/arm/boot/zImage
另一种解决方案是修补arch / arm / boot / Makefile - 将它应用到我的3.17主线内核时,部分内容被拒绝,这意味着必须在makefile中进行更改,并为3.17添加新补丁创建/保存以供将来使用。
为了使捆绑uImage可用,您需要在内核配置文件中启用CONFIG_ARM_APPENDED_DTB - 归功于Srinivas Kandagatla。
答案 1 :(得分:1)
替代方法
看看Buildroot。它提供了BB目标:
make beaglebone_defconfig
make
您已完成基本的根文件系统和内核。然后你可以选择U-Boot来构建等.BR也将负责工具链。因此,在大多数情况下,您只需关闭BR repo,BR将自动下载编译其余部分。
答案 2 :(得分:1)
找到此页面,尝试通过以下指南找出类似的问题: http://processors.wiki.ti.com/index.php/Using_the_WL18xx_Cape_with_BeagleBone_Black
发现uImage没有找到目标的同样问题......
我认为如果没有使用用户电子邮件地址配置git,patch.sh会在git操作期间提前停止。我做了
git config --global user.email“your.email@here.com” (信用:http://wiki.beyondlogic.org/index.php/BeagleBoneBlack_Building_Kernel)
并成功重新尝试构建序列。
答案 3 :(得分:0)
我找到了一个适合我的解决方案。
发现于: Compiling the kernel of Beaglebone black
原因:git全局配置完整。
解决方案:
答案 4 :(得分:0)
要为beaglebone black构建内核,您必须从linaro's site下载相应的工具链。正确导出工具链后,必须运行./build_kernel.sh
脚本,该脚本不仅下载适合BBB的内核版本的正确分支,还构建内核映像,以及模块和dtbs(设备树二进制blob) )
我建议你点这个链接: https://eewiki.net/display/linuxonarm/BeagleBone+Black