Integrate buildroot with BeagleBone github repository - linux

I am using Buildroot to produce root filesystem and kernel for my BeagleBone Black. Currently I provide my custom kernel to buildroot. But I noticed there is several ready-made kernels for BeagleBone Black on GitHub.
Since Buildroot allows to download kernel source directly from a git repository, I should be able just to point Buildroot to the BeagleBone's kernel repository on GitHub and Buildroot should download and compile the kernel for me.
Unfortunately the things are not so easy. When I specify BeagleBone's kernel repository in Buildroot, the kernel source is successfully cloned, but there is no default configuration and maybe some patch work is also necessary.
Did anybody try to integrate Buildroot with BeagleBone's GitHub's kernel sources?

Why don't you use the beaglebone_defconfig configuration provided by Buildroot. It uses a 4.4 kernel for the BeagleBone, fetched from git://git.ti.com/processor-sdk/processor-sdk-linux.git.

Related

Is there any .config file in Yocto similar to buildroot

I was using buildroot previously and now I am switching to Yocto. There is .config file generated by buildroot which contains all the packages that are going to be present in the file system, the compiler used, kernel version and bootloader etc.
Do we have something similar to this in Yocto. Or is there any bitbake command like make menuconfig.
I have seen some lines in recipes like the below:
if 'CONFIG_UBOOT=y\n' in features:
What is features here means
Thanks for your time
There is no .config in yocto, But yocto maintains a list of packages that are installed in the rootfs image in a .manifest files located at
Manifest Path: build/tmp/deploy/images/<machine>/<rootfs_image_name>.manifest.

Qemu-ARM user emulation. Error when using Go

I want to customize an image I created for an ARM device (Odroid C1+). Especially I want to checkout some git repositories and install their dependencies.
But when installing go libraries, this bug is happening: https://github.com/golang/go/issues/13024
Is there a workaround? Or do you know another user emulator (or similar) to do this?
A workaround would be to use full system emulation in QEMU - just find an ARM kernel that boots in qemu-system-arm and instead of chrooting into the file system from the host, do it from within QEMU.

Patching and compiling kernel, in which directory

I'm trying to apply a patch to my kernel source with limited success. The target machine is really some ARM device, but I haven't compiled a kernel before so I thought I'd start with an x86_64 kernel. This has been only marginally easier :)
Now, according to some tutorials, it seemed like we should use the source in /usr/src/linux-something. But when I tried to patch there I got
File Documentation/sysrq.txt is read-only; trying to patch anyway
patch: **** Can't create temporary file Documentation/sysrq.txt.oG1oiZW : Permission denied
even under sudo. So I tried just copying the patch and the linux source folder to my home directory and patched it from there. This worked. Why is this and will this have any weird side effects when compiling?
It seems you have no permission to /usr/src/linux-something. Download kernel source, put it anywere you could, then patch & compile it.
Build a x86_64 arch kernel from source which downloaded from kernel.org is well, if you wanna build an arm arch kernel for a special board, use buildroot or openwrt is better.
The package manager for some distributions installs the kernel source in /usr/src and distribution-specific build scripts may assume that the source is in that directory.
However, if you download vanilla kernel source from kernel.org, you should be able to build it anywhere.

embedded linux, initramfs with buildroot

in my embedded system I'd like to use initramfs to perform some special operation.
Someone managed to make initramfs work?
I'm using buildroot 2016.2, the kernel is from my provider and we are at 3.0.x. I've enabled initramfs, so I just have to pass the path to my cpio.
At the moment getty is not working.
can't opegetty: can't opegetty: can't opegetty:
and hang forever.
Any idea?could be a toolchain problem?
I have used the tag initrd because there is not "initramfs"

Changing the kernel header version for a Buildroot Raspberry Pi default configuration

I've successfully used buildroot (Buildroot 2016.05-git-01014-g4896b7c) with the raspberypi_defconfig to build a Raspberry Pi bootable image. This default configuration is set to use kernel header version 4.1.5 and it boots the Pi successfully.
My goal is to build a Blue Tooth driver for the Raspberry Pi but the code available requires a version of the kernel headers greater than 4.2.x. So I've modified buildroot's .config file to use a custom version of the kernel header 4.4.x series with the following (https://github.com/raspberrypi/linux.git) URL of custom repository (36bb5f17fc320d38d4e887aae8ff13806bb0f672) Custom repository version. This version was recently merged from the remote tracking branch 'stable/linux-4.4.y' into rpi-4.4.y. I've made no other changes to the .config file.
The Buildroot 'make' completes without error but the resultant image won't boot the Raspberry Pi.
Build using : Linux version 4.4.8 (ed#linux-dev) (gcc version 4.9.3 (Buildroot 2016.05-git-01014-g4896b7c)
During boot it only gets as far as the splash screen.
My question are:
1) Am I being too naive to expect the image based on the 4.4.8 kernel headers to boot at all?
2) What strategy can I use to try and diagnose why it won't boot?
3) What do others developers do in these circumstances?
I will appreciate your help with this problem.
Try the latest Buildroot master branch, we have very recently updated the raspberrypi_defconfig to the 4.4.8 kernel, and it has been successfully tested.

Resources