On 11/01/2013 04:21 PM, Maxwell Bottiger wrote:
I have a custom kernel and drivers I built for an Atmel AT91SAM9x5ek system on a chip, and I'd like to use them with yocto to build a distribution.

The original documentation, support CD, etc are all based around an open embedded build from 2011, which doesn't seem to work any longer. Yocto looks like a great alternative, but wants to build the 3.10 kernel, which I don't think supports this SoC any longer. So, is there a straight forward method of building a standard Poky root filesystem, but with a custom recipe for the 2.6.39 kernel instead of the stock one?


I use a 2.6.35 kernel on my own overlay. One thing i ran into with an older kernel and new toolchain is the need for the -mno-unaligned-access compile flag.


My example:

recipies-kernel/linux/linux-yocto-custom_2.6.35.12.bb


inherit kernel
#require recipes-kernel/linux/linux-yocto.inc

LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7"
DEFAULT_PREFERENCE = "-1"


LINUX_VERSION = "2.6.35.12"
LINUX_VERSION_EXTENSION ?= "-custom"
KBRANCH = "master"
META = "meta"

SRC_URI = "git://my_url/linux-2.6.35.12.git;branch=${KBRANCH};branch=master;protocol=ssh;user=git"


SRC_URI += "file://defconfig"
SRC_URI += "file://extra-cflags-override.patch"

KERNEL_EXTRA_ARGS="LOADADDR=0x2000000  V=1 KCFLAGS=-mno-unaligned-access"


UBOOT_ENTRYPOINT="2000000"

SRCREV="master"


PV = "${LINUX_VERSION}"

PR = "r1"

S = "${WORKDIR}/git"
EXTRA_OEMAKE = "${PARALLEL_MAKE}"

# Override COMPATIBLE_MACHINE to include your machine in a bbappend
# file. Leaving it empty here ensures an early explicit build failure.
COMPATIBLE_MACHINE = "(xo1-mvs)"



kernel_do_configure() {
    # fixes extra + in /lib/modules/2.6.37+
    # $ scripts/setlocalversion . => +
    # $ make kernelversion => 2.6.37
    # $ make kernelrelease => 2.6.37+
    touch ${B}/.scmversion ${S}/.scmversion

    cp ${WORKDIR}/defconfig ${B}/.config

    if [ ! -z "${INITRAMFS_IMAGE}" ]; then
        for img in cpio.gz cpio.lzo cpio.lzma cpio.xz; do
if [ -e "${DEPLOY_DIR_IMAGE}/${INITRAMFS_IMAGE}-${MACHINE}.$img" ]; then cp "${DEPLOY_DIR_IMAGE}/${INITRAMFS_IMAGE}-${MACHINE}.$img" initramfs.$img
        fi
        done
      fi
}



_______________________________________________
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto

Reply via email to