Ale*_*all 9 linux-kernel beagleboneblack
是否可以在任何地方为BeagleBone Black平台构建可靠的Linux内核?我按照这里的说明,以及许多其他地方,没有一个工作.这两个模块都没有构建(.ko文件只是没有构建,在上面的链接的情况下找不到),或者缺少内核的构建目标.我在32位x86 Ubuntu 14.04上使用Linaro ARM编译器(arm-linux-gnueabihf-gcc)交叉编译.
具体来说,我已经检查了BeagleBone Git存储库的源代码,分支3.8,3.11,3.12,3.13和3.14.我也检查了第三方混帐克隆这里.我遇到的问题如下:
在我可以编译内核的情况下,我使用U-Boot中的TFTP引导服务器将其复制到内存中的新鲜的vanilla板上,并在内存中引导内核.但是,没有一个成功编译的内核可以正常工作,因为它们缺少模块/ firmware/dtbs.什么可能导致不正确的修补?当然,编写代码和补丁的开发人员必须对其进行测试,因此我的工作区可能有问题,但我无法想象此时的情况.我使用的命令与链接1的命令相同.
小智 8
我也按照你提到的链接,我能够启动BBB.我正在使用https://www.kernel.org/中的主线内核.以下是我遵循的步骤
命令是
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
使用的编译器是arm-linux-gnueabi-gcc.有了这个,我能够成功启动并运行模块.它的优点是我们使用的是最新的内核.
我终于能够使用新内核 3.14 启动 BBB
我使用的是预装了 debian 的 beagleboneblack rev C。
我基本上按照这里的步骤 http://dev.ardupilot.com/wiki/building-for-beaglebone-black-on-linux/
内核下载:(我没用git,带宽有限...) https://github.com/beagleboard/linux/archive/3.14.tar.gz
构建(在 Ubuntu 14.04 上完成):(我不确定某些步骤是否不相关或多余)
安装 mkimage
sudo apt-get install libssl-dev
wget ftp://ftp.denx.de/pub/u-boot/u-boot-latest.tar.bz2
tar -xjf u-boot-latest.tar.bz2
cd u-boot-2014.10/
make sandbox_defconfig tools-only
sudo install tools/mkimage /usr/local/bin
Run Code Online (Sandbox Code Playgroud)
从http://arago-project.org/git/projects/?p=am33x-cm3.git;a=tree;f=bin;h=75a5de7aa94ff6ccbfb1b3b9dc80bc2fe5b423bf;hb=refs/heads/下载 am335x-pm-firmware.bin掌握并复制到内核目录
构建内核
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- bb.org_defconfig
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- menuconfig
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- uImage dtbs LOADADDR=0x80008000 -j4
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- modules -j4
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- am335x-boneblack.dtb -j4
Run Code Online (Sandbox Code Playgroud)
安装模块
mkdir -p ../export/rootfs
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- INSTALL_MOD_PATH=../export/rootfs/ modules_install
Run Code Online (Sandbox Code Playgroud)
现在将模块复制到 beaglebone black 中的 /lib/modules/ 目录(为模块创建一个新目录)
cd ../export/rootfs/lib/modules/
rsync -avz 3.14.25/ root@192.168.1.3:/lib/modules/3.14.25/
Run Code Online (Sandbox Code Playgroud)
接下来是将zImage和am335x-boneblack.dtb复制到BBB
复制的zImage从arch/arm/boot到/boot/uboot/BBB的
将am335x-boneblack.dtb从复制arch/arm/boot/dts到/boot/uboot/dtbs
如果你直接用新的替换现有的zImage和am335x-boneblack.dtb,它们不起作用,你会遇到麻烦。我将新图像存储在 /boot/uboot 的文件夹中,并在 uboot 中操作环境变量以选择我想要的。
我知道,我可以使用 tftpserver ..
我希望它可以帮助某人。我花了很多时间在这上面应该很简单:(
是的,文档确实已经过时了(大约 2011 年或 2012 年初)并且非常令人困惑。首先,github/beagleboard/kernel 区域表示已弃用并使用 beagleboard/linux 作为内核。但是,它仍然被积极使用:1)添加尚未被内核树接受的补丁,2)专门为 beaglebone 开发版本添加内核配置。内核树中的 bb.org_defconfig 不会打开某些调试内容。
所以.. github/beagleboard/linux 和 github/beagleboard/kernel 都在 BBB 上为我(3.14)工作。如果你想要标准镜像,请使用“linux”;如果你想要一个花里胡哨的图像,请使用“kernel”。
此外,APT 中还有一个更新的交叉编译器,位于 gcc-arm-linux-gnueabihf。确保您有“hf”(硬浮点单元)版本。无需依赖 linaro。
项目启动后我将更新文档......
| 归档时间: |
|
| 查看次数: |
7600 次 |
| 最近记录: |